<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Social Hacking &#187; Google</title>
	<atom:link href="http://theharmonyguy.com/category/google/feed/" rel="self" type="application/rss+xml" />
	<link>http://theharmonyguy.com</link>
	<description>Investigating privacy and security issues in online social networking</description>
	<lastBuildDate>Fri, 20 Aug 2010 18:47:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Using Google Buzz Can Expose Your Gmail Address</title>
		<link>http://theharmonyguy.com/2010/02/12/using-google-buzz-can-expose-your-gmail-address/</link>
		<comments>http://theharmonyguy.com/2010/02/12/using-google-buzz-can-expose-your-gmail-address/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 06:46:41 +0000</pubDate>
		<dc:creator>theharmonyguy</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://theharmonyguy.com/?p=683</guid>
		<description><![CDATA[I&#8217;ve discovered another trick that may surprise some, this time relating to Google&#8217;s services. I don&#8217;t view the issue as a vulnerability, but it likely goes against user privacy expectations. In short, having a public Google profile (which you might have created when checking out Google Buzz) can allow others to figure out your Gmail [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve discovered another trick that may surprise some, this time relating to Google&#8217;s services. I don&#8217;t view the issue as a vulnerability, but it likely goes against user privacy expectations. In short, having a public Google profile (which you might have created when checking out Google Buzz) can allow others to figure out your Gmail address.</p>
<p>This really shouldn&#8217;t be that surprising, given that your username is generally consistent across Google services, and a public profile is <em>public</em>. But those who currently have numeric profile addresses (e.g. http://www.google.com/profiles/104424237445852766735) might think their profile is not easily tied to their username.</p>
<p>But by using Picasa, Google&#8217;s photo sharing service, it&#8217;s often quite simple to go from a numeric profile address to an actual username. To protect yourself from this access, visit the <a title="Picasa Web Albums" href="http://picasaweb.google.com/lh/settings">Picasa settings page</a>.  Under &#8220;Your gallery URL,&#8221; add a new username and select the new username for your gallery URL. Also, you may want to edit your nickname.</p>
<p>In my testing thus far, it matters little whether you&#8217;ve used Picasa before &#8211; if you have a Gmail account, Picasa is also enabled on your account. And while individual Picasa albums have privacy controls, I have not found a way to block simply loading your Picasa home page.</p>
<p>With the introduction of Buzz, Google is encouraging users to take advantage of Google profiles. But in the process, Google is tying together services that many users may have treated quite distinctly in the past. If you want your Gmail address to remain private, you need to manage properly the other Google services you use to avoid one of them exposing your Gmail username.</p>
<p><strong>Update (Feb. 13):</strong> It appears Google has adjusted their services to prevent the original URI trick from working. Previously, adding a profile number to picasaweb.google.com (e.g.  http://picasaweb.google.com/104424237445852766735) would either load a page with the username visible, the username embedded in the page&#8217;s source code (_user.name in JavaScript), or an error page in a few particular instances. One configuration that would simply produce an error page was if you had Picasa setup under a different username than your Gmail username, hence my advice. It now seems that using a numeric Picasa URI will either load an error page if the user does have Picasa setup or a page indicating the user does not have Picasa galleries but with no username anywhere in the page.</p>
<p>I&#8217;ve already done some preliminary testing to see if Google Reader could also be used to discover usernames, but so far that does not seem possible. Still, it&#8217;s wise to be cautious when using a tool that interacts with so many other services.</p>
]]></content:encoded>
			<wfw:commentRss>http://theharmonyguy.com/2010/02/12/using-google-buzz-can-expose-your-gmail-address/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Security in Syndicated and Federated Systems</title>
		<link>http://theharmonyguy.com/2009/12/08/security-in-syndicated-and-federated-systems/</link>
		<comments>http://theharmonyguy.com/2009/12/08/security-in-syndicated-and-federated-systems/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 03:32:05 +0000</pubDate>
		<dc:creator>theharmonyguy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://theharmonyguy.com/?p=576</guid>
		<description><![CDATA[In an amusing story earlier this year, a technology news reporter writing on a particular security problem unwittingly demonstrated the issue by publishing an article. ReadWriteWeb posted a story on cross-site scripting holes on McAfee&#8217;s web site, and the article included some sample code that could be used in an attack. Unfortunately, the New York [...]]]></description>
			<content:encoded><![CDATA[<p>In an <a title="Cross-Site Scripting Begets Cross-Site Scripting" href="http://www.securescience.net/blog/2009/05/cross-site-scripting-begets-cross-site.html">amusing story earlier this year</a>, a technology news reporter writing on a particular security problem unwittingly demonstrated the issue by publishing an article. ReadWriteWeb posted a story on cross-site scripting holes on McAfee&#8217;s web site, and the article included some sample code that could be used in an attack. Unfortunately, the New York Times syndicates some articles from RWW, including this one on XSS, and at the time did not filter code in RWW reports. Consequently, the sample code actually rendered in the New York Times version of the article, producing another example of cross-site scripting.</p>
<p>In broad strokes, a syndicated system occurs when one application or network loads content from another (one-way) while a federated system involves two applications or networks exchanging content in a fully interoperable fashion (two-way). RSS is a syndicated setup &#8211; your reader simply loads an XML feed from the site you subscribe to. E-mail is a federated system &#8211; many SMTP servers exchange messages with each other.</p>
<p>Both syndicated and federated systems have to deal with a potential security problem: outside content. Any time you load data (particualrly in a web application) that&#8217;s not under your control, you need to put in filters to avoid such issues as cross-site scripting. The problem here is not a matter of trust &#8211; I&#8217;m sure the New York Times considered ReadWriteWeb a trusted source. The problem is that other sources of content may not always provide what your application is expecting. Rather than assume the data&#8217;s formatted and encoded correctly, assume it&#8217;s not and take appropriate action. This is merely one example of the type of thinking security researchers routinely employ &#8211; and a mindset developers need to use more often.</p>
<p>I recently came across another minor example of syndication leading to XSS. The search engine Cuil recently announced that they were launching an opt-in feature to <a title="Searching Facebook More Intimately" href="http://www.technologyreview.com/web/24032/?a=f">index the posts of your friends</a> on Facebook and include those posts in your search results. Aside from the privacy ramifications (you may be surprised to learn that settings for uninstalled apps and Facebook Connect sites don&#8217;t seem to apply to Cuil&#8217;s search results), I wondered how secure Cuil&#8217;s implementation would be in practice.</p>
<p>Overall, the feature seems to work like most Facebook Connect sites, and thus poses no inherent security problems. However, I did find quickly that Cuil was not encoding the results from Facebook. That is, a friend could post a status saying, &#8220;testing &lt;script&gt;alert(document.cookie)&lt;/script&gt;&#8221; and searching for &#8220;testing&#8221; in Cuil would load the alert dialog. Obviously the impact of such an attack would be minimal, as it requires jumping through a few hoops first, but it again illustrates accidental XSS via syndicated content. Note that XSS in a Facebook Connect application would open the door to a FAXX-style attack.</p>
<p>An example of a federated system that causes me some concern is Google Wave. When I first started looking at Google Wave from a security standpoint, I admit that I did not fully understand the architecture of the product. In essence, Wave includes two distinct components &#8211; a server and a client. On the server end, Wave is an XMPP service that can communicate with any compatible setup. On the client side, Wave is the web interface hosted at wave.google.com for loading messages from servers.</p>
<p>Once I understood this division, I thought it even more important to discuss the security implications of gadgets within waves. I fully expect Google to address most, if not all, of the issues I raised regarding gadgets. (In fact, last time I checked, it appeared they had changed the domains of container iframes, stopping cross-gadget access). But if Wave really does catch on, Google&#8217;s client interface will not be the only one on the market. Since gadgets render as HTML/CSS/JavaScript, Wave clients will almost assuredly have some sort of web browser component. If the company that invented Wave did not factor in some of the security considerations I and others have noted in their original client, there&#8217;s a good chance other developers will not take into account similar issues unless people raise awareness.</p>
<p>However, security in Wave clients deals with only one direction of a federated system. I&#8217;m still wondering how certain aspects of federated waves will work in practice. For instance, from what I understand, each thread of messages in Wave will be stored on the server hosting the thread. What will happen if that server becomes suddenly unavailable? How will corporate record-keeping and e-discovery And while Google&#8217;s Wave servers will likely be quite secure, what about other servers?</p>
<p>Granted, some questions about Wave servers could be raised about similar systems, such as e-mail. But several of the decentralized aspects of Wave distinguish it from a typical e-mail setup, and could prove to be good experiments in light of proposals for decentralized social networking. I&#8217;ve long supported the idea of distributed social networking, but also felt it could lead to many performance and usability problems not found in a walled garden (I&#8217;ve been meaning to write a blog post entitled &#8220;In Defense of Walled Gardens&#8221; for at least a year). Wave may be one of the first large-scale attempts at building a distributed application somewhat akin to social networking.</p>
]]></content:encoded>
			<wfw:commentRss>http://theharmonyguy.com/2009/12/08/security-in-syndicated-and-federated-systems/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why I Started Hacking Google Wave</title>
		<link>http://theharmonyguy.com/2009/11/05/why-i-started-hacking-google-wave/</link>
		<comments>http://theharmonyguy.com/2009/11/05/why-i-started-hacking-google-wave/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 17:15:56 +0000</pubDate>
		<dc:creator>theharmonyguy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://theharmonyguy.com/?p=553</guid>
		<description><![CDATA[After I posted concerns over security in Google Wave, several responses came (including one from Google) emphasizing that Wave was &#8220;still in an early preview stage&#8221; and many bugs would be fixed before a wider release. I think that clarifying why I would bother discussing bugs in a preview product may raise a few important [...]]]></description>
			<content:encoded><![CDATA[<p>After I posted concerns over security in Google Wave, several responses came (including <a title="Comment on &quot;Cross-Gadget Security in Google Wave&quot;" href="http://theharmonyguy.com/2009/10/27/cross-gadget-security-in-google-wave/#comment-6553">one from Google</a>) emphasizing that Wave was &#8220;still in an early preview stage&#8221; and many bugs would be fixed before a wider release. I think that clarifying why I would bother discussing bugs in a preview product may raise a few important points about web application security.</p>
<p>First, let me be clear about one point: I would not pretend to know more about application security than the engineers, programmers, and scientists at Google. In addition, I would not want to imply that Google does not care about security or user privacy. I realize that Google takes security issues seriously and has the resources to build highly secure products.</p>
<p>But those realizations are also a source of confusion for me when I observe decisions made about Google Wave. As an outsider, I don&#8217;t understand why Wave would include the problems I&#8217;ve outlined. What I&#8217;ve posted does not involve clever hacks or specific parameters &#8211; these problems involve weaknesses in the overall framework of Wave. And such weaknesses relate to well-known issues in application security. In fact, Google has previously addressed deploying third-party code by developing <a title="google-caja - Project Hosting on Google Code" href="http://code.google.com/p/google-caja/">Caja</a> after the launch of OpenSocial.</p>
<p>Returning to the &#8220;it&#8217;s a preview&#8221; argument, though, I would first respond by saying that applications, particularly ones that allow users to embed untrusted third-party code, should include security from the very beginning. Starting with an open model and trying to add restrictions later on is a recipe for disaster.</p>
<p>A larger issue in Wave&#8217;s case, though, is that Google has often cast Wave as a reinvention of SMTP e-mail. <em>If you set expectations high, much will be expected of you.</em> If a company with the reputation, resources, and revenue of Google markets a product as a replacement for traditional e-mail, I&#8217;m going to evaluate its security even more closely than normal. In my view, the hype that has already built around Wave and the reach it&#8217;s already found (Novell is reportedly planning a <a title="Google Wave Is Coming to the Workplace" href="http://mashable.com/2009/11/04/novell-pulse/">Wave-based business product</a> in mid-2010) disallow the &#8220;preview&#8221; excuse.</p>
<p>In addition, if you&#8217;re going to reinvent e-mail, don&#8217;t forget lessons already learned from traditional e-mail. In a previous post, I outlined four major weaknesses I saw in Google Wave:</p>
<ol>
<li>Allowing scripts and iframes in gadgets with no limits apart from sandboxing</li>
<li>Lack of control over what content or users can be added to a wave</li>
<li>No simple mechanism for verifying gadget sources or features</li>
<li>Automatically loading gadgets when a wave is viewed</li>
</ol>
<p>Name one webmail interface that executes scripts in messages. Name one recent e-mail client that automatically loads content such as images in messages. Why were such considerations not part of Wave from the very start?</p>
<p>Of course, while Google has at least promised to include further permissions controls in Wave, such controls are one aspect of Wave <a title="Google embraces Wave's permission chaos" href="http://www.theregister.co.uk/2009/11/04/google_wave_enterprise2point0/">intentionally left out</a> in initial releases. While one can argue whether Google is correct in the merits of such collaboration, I&#8217;m a bit surprised that more of the security implications have not been raised before (at least not to my knowledge). When such changes will appear, though, remains to be seen. Personally, I find it a tad disconcerting that Google has similarly promised such updates as allowing users to turn off Wave&#8217;s real-time typing behavior, yet Wave has changed little since its announcement.</p>
<p>Still, I&#8217;m confident that Google will address at least some of the issues I&#8217;ve raised. If nothing else, I hope I&#8217;ve contributed to the public dialogue about Google Wave. I will add that Wave appears to include much security on the backend &#8211; most of the problems I&#8217;m seeing come in the client implementation. Let&#8217;s remember, though, that Wave <a title="Google Wave Sandbox is Now Open for Federation" href="http://www.readwriteweb.com/archives/google_wave_sandbox_is_now_open_for_federation.php">will be federated</a>. Another reason to bring up client security issues early is that other clients can learn from Google&#8217;s implementation. I&#8217;m rather concerned that if Wave interfaces proliferate, they may repeat many of the security problems seen in early e-mail interfaces.</p>
<p>I&#8217;m also concerned that Wave is not really addressing many of the issues that have plagued e-mail. The current &#8220;chaos&#8221; with Wave&#8217;s lack of permissions does not bode well for how it will handle spam, for instance. Whitelisting alone <a title="Spam and Google Wave" href="http://www.jgc.org/blog/2009/09/spam-and-google-wave.html">won&#8217;t do the trick</a>. In fact, I would argue that Wave is a collaboration tool, <a title="Collaboration is not Communication" href="http://log.emonk.net/post/213952350/collaboration-is-not-communication">not a communication tool</a>, and thus not a replacement for e-mail.</p>
<p>In conclusion, I&#8217;d simply add one more point. While it&#8217;s exciting to find exploits such as specific XSS holes on a web site, it&#8217;s often more important to raise awareness regarding larger security issues that relate to the overall framework of an application. That&#8217;s why I&#8217;ve discussed FAXX hacks so much, as they relate to the overall implementation of the Facebook Platform instead of particular vulnerabilities.</p>
<p>Similarly, my concerns about Google Wave thus far involve behaviors built into the current system that open the door for exploiting the privacy and security of users. Preview or not, Wave needs to address these high-level weaknesses if it&#8217;s going to match the hype.</p>
]]></content:encoded>
			<wfw:commentRss>http://theharmonyguy.com/2009/11/05/why-i-started-hacking-google-wave/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross-Gadget Security in Google Wave</title>
		<link>http://theharmonyguy.com/2009/10/27/cross-gadget-security-in-google-wave/</link>
		<comments>http://theharmonyguy.com/2009/10/27/cross-gadget-security-in-google-wave/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 11:57:00 +0000</pubDate>
		<dc:creator>theharmonyguy</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://theharmonyguy.com/?p=548</guid>
		<description><![CDATA[While examining the behavior of gadgets in Google Wave, I noticed another potential security problem in addition to the ones I&#8217;d already listed. Each gadget is loaded in a container iframe with a domain separate from the main page, preventing access to the DOM of the Wave interface itself. However, I also noticed that the [...]]]></description>
			<content:encoded><![CDATA[<p>While examining the behavior of gadgets in Google Wave, I noticed another potential security problem in addition to the ones I&#8217;d already listed. Each gadget is loaded in a container iframe with a domain separate from the main page, preventing access to the DOM of the Wave interface itself.</p>
<p>However, I also noticed that the container iframes for all of the gadgets I tested used the same domain. That allows one gadget to access the DOM of another gadget. Pictured below is a test gadget that generates an alert displaying the HTML source of the first gadget in the wave, in this case a Yes/No/Maybe gadget from Google.</p>
<div id="attachment_549" class="wp-caption aligncenter" style="width: 160px"><a href="http://theharmonyguy.com/wp-content/uploads/2009/10/wavecrossgadget.jpg"><img class="size-thumbnail wp-image-549" title="wavecrossgadget" src="http://theharmonyguy.com/wp-content/uploads/2009/10/wavecrossgadget-150x150.jpg" alt="A test gadget accessing the DOM of another gadget in Google Wave." width="150" height="150" /></a><p class="wp-caption-text">A test gadget accessing the DOM of another gadget in Google Wave.</p></div>
<p>What&#8217;s the danger in this sort of cross-gadget access? Consider that people have already created gadgets for accessing your Facebook and Twitter via gadgets. Granted, most of those gadgets have used iframes which load other sites, and thus cross-domain rules would prevent any data breaches. Also, one Twitter gadget I tried actually loaded using its own container URI instead of the standard Google server. But as developers continue to publish more powerful gadgets, cross-gadget access poses some serious risks for CSRF and data theft.</p>
]]></content:encoded>
			<wfw:commentRss>http://theharmonyguy.com/2009/10/27/cross-gadget-security-in-google-wave/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Wave as a Tool for Hacking</title>
		<link>http://theharmonyguy.com/2009/10/26/google-wave-as-a-tool-for-hacking/</link>
		<comments>http://theharmonyguy.com/2009/10/26/google-wave-as-a-tool-for-hacking/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 03:44:53 +0000</pubDate>
		<dc:creator>theharmonyguy</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://theharmonyguy.com/?p=544</guid>
		<description><![CDATA[Many security researchers are familiar with BeEF, a browser exploitation framework by Wade Alcorn. In short, BeEF is a program that brings together various types of code for taking advantage of known vulnerabilities in web browsers. If a target computer loads a certain bit of code within a web page, that code connects to a [...]]]></description>
			<content:encoded><![CDATA[<p>Many security researchers are familiar with <a title="BindShell.Net: BeEF" href="http://www.bindshell.net/tools/beef">BeEF</a>, a browser exploitation framework by Wade Alcorn. In short, BeEF is a program that brings together various types of code for taking advantage of known vulnerabilities in web browsers. If a target computer loads a certain bit of code within a web page, that code connects to a server control panel which can then execute certain attacks against the &#8220;zombie&#8221; machine.</p>
<p>After noting potential security issues with the gadgets in Google Wave, I set about to finally setup a BeEF testbed and see if Google Wave was as capable a platform for malware delivery as I suspected.</p>
<div id="attachment_545" class="wp-caption aligncenter" style="width: 390px"><a href="http://theharmonyguy.com/wp-content/uploads/2009/10/wavebeef.jpg"><img class="size-medium wp-image-545" title="wavebeef" src="http://theharmonyguy.com/wp-content/uploads/2009/10/wavebeef-380x400.jpg" alt="Example of a BeEF zombie spawned via Google Wave" width="380" height="400" /></a><p class="wp-caption-text">Example of a BeEF zombie spawned via Google Wave</p></div>
<p>The picture above shows the results. I successfully created a Google Wave gadget that creates a new BeEF zombie whenever someone views the wave. This does not allow for the keylogger function of BeEF, but I did send an alert dialog (as shown) and used the Chrome DoS function to crash the browser tab. (I could also detect that the zombie machine had Flash installed &#8211; imagine the possibilities of using Flash or PDF exploits in an auto-loaded gadget.)</p>
<p>What&#8217;s even more disconcerting is that BeEF can integrate with Metasploit to potentially take over a victim&#8217;s machine. I do not currently have Metasploit setup to test using Autopwn, but based on my experiences so far, I&#8217;m fairly confident such an attack would succeed.</p>
<p>All of these demonstrations about security and Google Wave point to four general weaknesses in Wave&#8217;s current structure:</p>
<ol>
<li>Allowing scripts and iframes in gadgets with no limits apart from sandboxing</li>
<li>Lack of control over what content or users can be added to a wave</li>
<li>No simple mechanism for verifying gadget sources or features</li>
<li>Automatically loading gadgets when a wave is viewed</li>
</ol>
<p>Any one of these issues would be cause for concern, but taken together they present such alarming possibilities as a user getting their computer hacked simply by viewing a wave. Whatever may be said about Google Wave&#8217;s usefulness, I have to conclude that the product is not ready for prime time until these types of problems are addressed.</p>
]]></content:encoded>
			<wfw:commentRss>http://theharmonyguy.com/2009/10/26/google-wave-as-a-tool-for-hacking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Have You Seen the New Facebook Gadget for Google Wave?</title>
		<link>http://theharmonyguy.com/2009/10/20/have-you-seen-the-new-facebook-gadget-for-google-wave/</link>
		<comments>http://theharmonyguy.com/2009/10/20/have-you-seen-the-new-facebook-gadget-for-google-wave/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 19:22:56 +0000</pubDate>
		<dc:creator>theharmonyguy</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://theharmonyguy.com/?p=533</guid>
		<description><![CDATA[The above screenshot shows an actual gadget inside a Wave that I created to demonstrate it. Imagine the possibilities of connecting Facebook with Google Wave. You could post information to your Facebook profile right from within Wave, or connect wave participants to Facebook profiles. If you came across this gadget in a wave you were [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://theharmonyguy.com/wp-content/uploads/2009/10/wavegadget.jpg"><img class="aligncenter size-medium wp-image-534" title="wavegadget" src="http://theharmonyguy.com/wp-content/uploads/2009/10/wavegadget-453x400.jpg" alt="wavegadget" width="453" height="400" /></a></p>
<p>The above screenshot shows an actual gadget inside a Wave that I created to demonstrate it. Imagine the possibilities of connecting Facebook with Google Wave. You could post information to your Facebook profile right from within Wave, or connect wave participants to Facebook profiles. If you came across this gadget in a wave you were viewing, wouldn&#8217;t you love to at least try it out?</p>
<p>There&#8217;s just one problem. The above gadget is fake. Not the screenshot, mind you &#8211; if you&#8217;re a Google Wave user, you can see the gadget in action by inserting the gadget http://theharmonyguy.com/facebook.xml into a wave. But nothing will happen when you try to connect.</p>
<p>And in this case, truly nothing will happen, since I&#8217;ve designed the gadget to be harmless &#8211; your login information is not sent anywhere. But I imagine many users would fall prey to such a trick, which could be easily adapted for phishing attacks. Ask yourself honestly, would you have tried to login? More importantly, if you came across such a gadget in a wave, how would you know whether it came from theharmonyguy.com, facebook.com, or a malicious host?</p>
<p>I post all this to raise a broader point than simply &#8220;beware of phishing attacks.&#8221; I realize that the balance between security and usability is a constant struggle for developers, or at least should be. Yet I&#8217;m somewhat concerned by the patterns we are training users to be accustomed to.</p>
<p>Case in point: chromeless gadgets within a wave that provide no indication of source. In some ways I almost feel that Google Wave is recreating the web browser. Browsers are applications that can load any sort of web page. Google Wave is an application that can load all sorts of web pages within waves. Yet many of the features developed for browsers to warn a user of insecure sites or phishing attacks (even as basic as the address bar, which shows the current domain) are not replicated when a user loads a gadget in Wave. Many have described Wave as a reinvention of e-mail. Reinventing a technology can be very beneficial, but let&#8217;s not forget lessons learned in the old technology &#8211; there&#8217;s a reason most e-mail clients don&#8217;t allow iframes and JavaScript, for instance.</p>
<p>I&#8217;m certainly not the first to raise these concerns; others have previously mentioned the danger of <a title="Google Gadget Login Forms = Not Good" href="http://blog.securityps.com/2009/04/google-gadget-login-forms-not-good.html">login forms on iGoogle gadgets</a>. Nor am I saying that I don&#8217;t want Google Wave to succeed. But if we&#8217;re going to reinvent a technology, let&#8217;s address some of these basic issues of user expectations and security precautions from the start.</p>
]]></content:encoded>
			<wfw:commentRss>http://theharmonyguy.com/2009/10/20/have-you-seen-the-new-facebook-gadget-for-google-wave/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>First Impressions on Security in Google Wave</title>
		<link>http://theharmonyguy.com/2009/10/19/first-impressions-on-security-in-google-wave/</link>
		<comments>http://theharmonyguy.com/2009/10/19/first-impressions-on-security-in-google-wave/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 02:16:39 +0000</pubDate>
		<dc:creator>theharmonyguy</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://theharmonyguy.com/?p=529</guid>
		<description><![CDATA[Nearly two years ago, many technology sites brimmed with hype over a new Google technology called OpenSocial. Bloggers questioned if OpenSocial would spell the end of Facebook. Amid all the discussion, I felt that many people were ignoring several serious issues regarding how OpenSocial would handle user data, privacy, and security. A few people brought [...]]]></description>
			<content:encoded><![CDATA[<p>Nearly two years ago, many technology sites brimmed with hype over a new Google technology called OpenSocial. Bloggers questioned if OpenSocial would spell the end of Facebook. Amid all the discussion, I felt that many people were ignoring several serious issues regarding how OpenSocial would handle user data, privacy, and security. A few people brought up questions on this topic, but until an actual implementation hit the market, no one seemed completely sure how OpenSocial would work in practice.</p>
<p>When I heard that Plaxo had brought an OpenSocial framework online, I decided to check out its security for myself. That led to the <a title="First OpenSocial Application Hacked Within 45 Minutes" href="http://www.techcrunch.com/2007/11/02/first-opensocial-application-hacked-within-45-minutes/">first hack of an OpenSocial application</a>, and my white-hat hacking hobby began. Admittedly, the &#8220;hack&#8221; came from poor coding practices on RockYou&#8217;s part, but highlighted the need for better authentication in OpenSocial, a problem corrected in later revisions. Still, the event was an inspiration, and led me to continue investigating my previous hacks of Facebook applications, which led to the more serious issues in this year&#8217;s FAXX hacks.</p>
<p>Memories of two years ago came back to mind yesterday when I received a Google Wave invite from a friend. Wave has received its share of hype, despite not being publicly available, though lately it&#8217;s drawn increasing criticism. Yet I&#8217;ve not seen many people explore the security or privacy implications of using the new platform. I decided to take advantage of the invite and start hacking Wave.</p>
<p>What I find was rather surprising, though not entirely unexpected. I&#8217;ve noticed several issues with the current version that could be exploited or create more serious problems in the future. Some will argue that bugs should be expected in early versions of a new product, and that future upgrades will improve the situation.  However, I would contend that some of the points raised here deal with basic aspects that should have been addressed from the very beginning. I would also add that I think Google overlooked an opportunity to add more social networking components to their system that could allow them to offer a stronger alternative to Facebook.</p>
<p>Anyway, here are a few of the problems with Google Wave I&#8217;ve noticed so far that I&#8217;ve not seen on several other lists of Wave criticisms:</p>
<ul>
<li><strong>Allowing iframes in waves.</strong> Creating a gadget that loads an iframe is a fairly trivial task. The iframe loads within a container iframe that separates it from the DOM for Wave itself. Still, one can load just about any page using such an iframe. This means that any attack requiring a user to load an infected page, such as my <a title="Initial Details on Facebook Attack" href="http://theharmonyguy.com/2009/06/23/initial-details-on-facebook-attack/">original demonstration of a FAXX hack</a>, can be automated, since viewing the wave loads the iframe page. This can also be easily adapted to make POST requests for CSRF attacks.</li>
<li><strong>Allowing invisible iframes in waves.</strong> Not only can a gadget include an iframe, it can style that iframe to be invisible, either hiding the attack from wave participants or to create a clickjacking attack within the gadget. Basically, while gadgets load in container iframes, they otherwise have free reign to include any HTML a coder desires. Note that allowing iframes could potentially let an attacker include code for finding browser exploits, which can then allow for malware delivery or even taking over a user&#8217;s system.</li>
<li><strong>Allowing scripts in waves.</strong> Once again, the scripts execute in a container iframe, so one cannot simply wreak havoc with the main application DOM. But scripts do open up several possibilities. In fact, I&#8217;ve already created a wave that forwards users to a particular page as soon as they view the wave, since the script is loaded automatically when someone views the wave.</li>
<li><strong>Allowing dynamic changes to gadgets.</strong> Google may argue that this problem is actually a feature. Essentially, a gadget is loaded dynamically from its source every time a wave is loaded. That means someone could insert an innocent-looking gadget into a wave, then the gadget owner could switch the gadget for a malicious one later on. In fact, since gadgets can be hosted anywhere, an included gadget could even be taken offline, taking away from one of Wave&#8217;s selling points (better preserving a record of communications).</li>
<li><strong>Allowing gadget access to participant information.</strong> Currently, a gadget can only access basic identifying information about who participates in a wave and who is viewing the wave when the gadget loads. However, one can already note several indications that Google will likely expand this functionality to resemble a more complete OpenSocial implementation. As with Facebook applications, allowing such unfettered access for any gadget on initialization raises a number of concerns.</li>
<li><strong>Not allowing users to be removed from a wave.</strong> I realize that since waves are shared among participants, removing users raises questions of who in the wave is authorized to make such decisions. Still, I find it a glaring oversight that the product includes no mechanism for removing a user whatsoever, especially considering that anyone can join a public wave.</li>
<li><strong>Allowing users to add anyone to a wave without approval.</strong> If I know the Google account you use for Wave, I can add you as a contact and add you to a wave, which will then appear in your inbox. This all happens without any action on your part. And if I include a malicious gadget, you will load that gadget as soon as you click on the new wave to find out what it&#8217;s about.</li>
</ul>
<p>Once again, many will argue that Google will eventually address these problems, and I certainly hope they do. But I find such oversights of basic security issues rather disconcerting. And while sites such as iGoogle have included &#8220;gadgets&#8221; with scripts for some time, Wave adds a new dimension in that such gadgets can be loaded with hardly any user interaction or approval.</p>
<p>One possible solution that people will raise is that Google can shut down accounts of known attackers or spammers, ensuring that each Wave user corresponds to a real person who will abide by certain rules, as Facebook has sought to do. But doesn&#8217;t this turn Google Wave into exactly the same kind of closed garden which Facebook&#8217;s critics have lambasted so often? Yet if Google is not the gatekeeper and opens up the system to users with Google accounts, what has Wave done to address spam and malicious attacks? In fact, as expounded above, if Wave is open to anyone, it provides a powerful new means for delivering malware and exploiting vulnerable users.</p>
<p>Again, I realize that Wave will probably include more privacy controls, such as who can add you to a wave without your permission. But if Google is not building such controls into the product to start with, how effective will they be when they do finally appear?</p>
]]></content:encoded>
			<wfw:commentRss>http://theharmonyguy.com/2009/10/19/first-impressions-on-security-in-google-wave/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
