<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Security Musings</title>
	
	<link>http://securitymusings.com</link>
	<description>Rants and raves from information security professionals</description>
	<lastBuildDate>Wed, 01 Feb 2012 21:41:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SecurityMusings" /><feedburner:info uri="securitymusings" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>SecurityMusings</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>How a Platform Using HTML5 Can Affect the Security of Your Website</title>
		<link>http://feedproxy.google.com/~r/SecurityMusings/~3/JWpkD8kmLkI/how-a-platform-using-html5-can-affect-the-security-of-your-website</link>
		<comments>http://securitymusings.com/article/3159/how-a-platform-using-html5-can-affect-the-security-of-your-website#comments</comments>
		<pubDate>Wed, 01 Feb 2012 19:57:33 +0000</pubDate>
		<dc:creator>Joey Tyson</dc:creator>
				<category><![CDATA[cool]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[localstorage]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3159</guid>
		<description><![CDATA[tl;dr Abstract To improve performance, particularly for mobile users, many websites have started caching app logic on client devices via HTML5 local storage. Unfortunately, this can make common injection vulnerabilities even more dangerous, as malicious code can invisibly persist in the cache. Real-world examples of this problem have now been discovered in third-party &#8220;widgets&#8221; embedded [...]]]></description>
			<content:encoded><![CDATA[<h3><span style="font-weight: bold; font-size: 120%">tl;dr Abstract</span></h3>
<p><em>To improve performance, particularly for mobile users, many websites have started caching app logic on client devices via HTML5 local storage. Unfortunately, this can make common injection vulnerabilities even more dangerous, as malicious code can invisibly persist in the cache. Real-world examples of this problem have now been discovered in third-party &#8220;widgets&#8221; embedded across many websites, creating security risks for the companies using such services &#8211; even if their sites are otherwise protected against attacks. Striking a balance between security and performance can be difficult, but certain precautions may help prevent an attacker from exploiting local storage caches.</em></p>
<h3><span style="font-weight: bold; font-size: 120%">Background</span></h3>
<p>Throughout the history of web development, people have found ways to use and abuse various technologies beyond their intended purposes. Before CSS gained widespread support, many developers created complex layouts with HTML tables. Now that browsers provide far more presentation-layer tools, one can recreate complex images using only CSS. Such tricks can at times be very helpful in overcoming the limits of a browser-based environment, but they can also inadvertently create security issues.</p>
<p><span id="more-3159"></span>One feature commonly classified as part of HTML5 is local storage, a method for saving content on a visitor&#8217;s device that offers more space and flexibility than previous options (such as cookies). While intended as a client-side analogue to database storage, local storage has increasingly served another purpose: code caching. If a web app routinely requires large blocks of JavaScript, it can avoid downloading those chunks every time a visitor returns to the app by saving a copy of them in local storage. This can provide a significant performance boost, particularly on mobile devices, where bandwidth and typical caches can be much more limited.</p>
<h3><span style="font-weight: bold; font-size: 120%">Local Storage Attacks</span></h3>
<p>However, this approach opens new possibilities for attacking the app. If the local storage can be compromised, an attacker could inject malicious code that persists in the client-side cache. This payload would then be executed by the web app each time a user opened the site &#8211; even if they&#8217;d previously closed the browser. In fact, eradicating such code can be quite difficult, and the victim website might not even be able to detect an ongoing attack. Artur Janc, a security engineer at Google, outlined these issues in <a href="http://events.ccc.de/congress/2011/Fahrplan/events/4811.en.html">a talk last December</a> (<a href="http://www.youtube.com/watch?v=ppFcSP2HWdE">video</a>) detailing many of the dangerous ramifications they present, but as Janc notes, such an attack was also previously described by <a href="http://www.cs.berkeley.edu/~dawnsong/papers/2010%20emperors%20new%20api.pdf">a paper from researchers at Berkeley</a> (PDF) in May 2010.</p>
<p>Given the restrictions on access to a site&#8217;s local storage, modifying code saved there would nearly always require another vulnerability in the app as an initial attack vector. However, just one entry point for injecting code in a page would be enough to change the cache, and such problems tend to be quite common across the web. Many of these vulnerabilities (described as cross-site scripting, or XSS) are &#8220;reflected&#8221;, in that they only change a particular request for content, but using local storage automatically makes them capable of launching persistent attacks. Essentially, caching code in HTML5 local storage actually makes any existing cross-site scripting vulnerabities more dangerous.</p>
<p>And as influential researcher Michal Zalewski <a href="http://lcamtuf.blogspot.com/2011/10/origin-is-forever.html">also noted a few months before</a> Janc&#8217;s presentation, &#8220;if content from the compromised origin is commonly embedded on third-party pages (think syndicated &#8216;like&#8217; buttons or advertisements), with some luck, attacker&#8217;s JavaScript may become practically invincible&#8221;. In this age of mash-ups, data from a variety of sources are often mixed together, creating implicit trust relationships that may have significant effects on the security of an app. When a developer includes third-party JavaScript on his or her site, that code has the same capabilities as any other script on the page. Of course, modifying a static file on a remote server is generally not possible, even if cross-site scripting issues are present. But what if a third-party script from a site with XSS problems also stored code in local storage?</p>
<h3><span style="font-weight: bold; font-size: 120%">Vulnerabilities in the Wild</span></h3>
<p>As it turns out, this is no longer a hypothetical situation. Apture was a start-up that provided pop-up boxes for exploring content related to highlighted terms in a page. The service garnered praise from various tech media outlets, and the company was bought out by Google a few months ago. Just over a week ago, Google shut down the embedded search functionality, which was still in use by several sites after the acquisition. Apture is one example of a third-party &#8220;widget&#8221; service that used local storage code caching &#8211; and a page on the same domain as those scripts had a reflected XSS vulnerability which could be used to inject malicious code in the cache. This code would then be executed in the context of the site using Apture, meaning the problem with Apture&#8217;s service affected the security of many sites across the web.</p>
<p>And while Apture&#8217;s widgets are now offline, another service still operating on high-profile sites was recently found to have a similar issue (though in this case, scripts were not executed from the original site&#8217;s origin). This problem has been reported and is currently being addressed by the service&#8217;s engineers.</p>
<h3><span style="font-weight: bold; font-size: 120%">Reducing Risk</span></h3>
<p>Ultimately, there isn&#8217;t a simple way of avoiding this type of vulnerability while still getting the performance gains of client-side code caching. Another new HTML feature, application cache, is actually geared towards precisely this use case and would be harder to compromise, but it can create UI warnings in some browsers, such as Firefox. (Such warnings are a good practice, but may be unwanted for third-party widgets.) Ideally, any data in local storage should be treated as untrusted, even if it&#8217;s just content instead of code. But if local storage is used for scripts, it should be accessed from a domain that only serves static files. This will help reduce the likelihood of an XSS vulnerability that would have direct access to local storage, though the overall structure of an app should be taken into account to prevent indirect access as well. Newer browsers also support features such as sandboxed inline frames and Content Security Policy that could help limit the impact of embedded widgets if they became compromised.</p>
<p>I think it&#8217;s important to note that many smart people, including those behind Apture, have used local storage for caching app logic &#8211; even Google and Bing use a similar technique on their mobile sites &#8211; and that in theory, this method should not make a website less secure. And for many web developers, it may not be immediately obvious why local storage data should not be trusted. This is another case where a clever trick that serves its primary goal very well has unintended consequences when considered in a broader context. It&#8217;s also an example of possibly making trade-offs which balance usability with risk. Understanding these conflicts and connections is part of what information security is all about &#8211; and what we do at <a href="http://geminisecurity.com/">Gemini</a> every day. As browser features continue to expand and sites continue to integrate services from other domains, it&#8217;s likely we&#8217;ll see many more examples of security issues evolving in complexity &#8211; and organizations will need to adapt to such changes while still reducing risk.</p>
<p><em>Special thanks to <a href="http://twitter.com/0x6D6172696F">@0x6D6172696F</a>, <a href="http://twitter.com/lcamtuf">@lcamtuf</a>, <a href="http://twitter.com/thekos">@theKos</a>, and <a href="http://twitter.com/kkotowicz">@kkotowicz</a> for their help with this research!</em></p>
<h3><span style="font-weight: bold; font-size: 120%">Technical Details</span></h3>
<p>For a site to use Apture widgets, the owner included a bit of JavaScript on their pages:</p>
<pre class="brush:js">&lt;script id="aptureScript"&gt;
(function (){var a=document.createElement("script");a.defer="true";
a.src="http://www.apture.com/js/apture.js?siteToken=XXXXXXX";
document.getElementsByTagName("head")[0].appendChild(a);})();
&lt;/script&gt;</pre>
<p>This dynamically loaded an external script hosted on apture.com with a site token specified. The external script included various parameters, such as title, logo, and search URLs that are associated with the account identified by the token. This code then loaded another script based on the user&#8217;s browser which actually began setting up the framework for Apture to integrate with the site&#8217;s content.</p>
<p>For browsers that support it, HTML5 cross-document messaging then came into play. The Apture script inserted an inline frame into the page that loaded a file from cdn.apture.com. A callback function allowed this iframe to pass messages back to the original window context where the script is running (the non-Apture site). This iframe then loaded the actual app logic and passed the code back to the original site via the cross-document messaging interface.</p>
<p>At this point, you&#8217;re probably wondering why Apture didn&#8217;t simply load the app logic as another script in the original page; in fact, that&#8217;s precisely what Apture did if the browser didn&#8217;t support newer HTML5 features. But Apture&#8217;s iframe setup allowed them to take advantage of another HTML5 innovation that made their service load much faster. Web storage functionality provides the localStorage object, a place to save key/value data on the client which allows for more space and flexibility than cookies. This storage is persistent across browser sessions, but is specific to each domain and access to it is restricted by a same-origin policy.</p>
<p>Apture used a localStorage object for cdn.apture.com not only to save data, such as an ID for tracking users, but to actually cache their app logic code. If the cdn.apture.com iframe detected that this cache already existed, it would simply load the code from localStorage rather than issue another HTTP request for the 272KB worth of JavaScript &#8211; saving time and bandwidth. Apture introduced this functionality in January 2011.</p>
<p>But how does one load code from localStorage? For Apture, with this line in the cross-domain callback function:</p>
<pre class="brush:js">window.execScript ? window.execScript(f) : window.eval(f);</pre>
<p>Seeing code such as this should immediately raise red flags in the mind of any web developer. Those familiar with browser security may have heard the adage that &#8220;eval is evil&#8221;, and it certainly applies here. The eval function (or the analogous execScript function also seen above) treats its input as valid JavaScript and simply executes it in the current window&#8217;s global context. If an attacker can send malicious code to the function, that code will also be executed &#8211; a class of vulnerabilities known as cross-site scripting (XSS).</p>
<p>In Apture&#8217;s case, though, the code came from the cdn.apture.com storage, so one might assume it can be trusted &#8211; in theory, only pages from cdn.apture.com can modify the localStorage cache. But once again, the power of cross-site scripting demonstrates that many seemingly trustworthy data sources are still potential avenues of attack. The presence of any XSS on a cdn.apture.com page, including reflected XSS, would allow an attacker to execute code in that domain&#8217;s context and thus modify the localStorage object.</p>
<p>As it turns out, Apture did have an exploitable XSS vulnerability. The cdn.apture.com domain actually mirrored www.apture.com, including a topic page that loaded a topic title from the URL path and a YouTube video ID from a GET parameter. Both of these values were included in the page without being escaped to prevent XSS. This example URL includes a script that appends &#8220;alert(document.cookie)&#8221; to the app logic in localStorage:</p>
<pre>http://cdn.apture.com/search/xss?yt=%22%3E%3Cscript%3Eif%28
window.x%21%3D1%29%7BlocalStorage%5B%27app-49971756%27%5D
%3DlocalStorage%5B%27app-49971756%27%5D%2b%22alert%28
document.cookie%29%3B%22%7Dwindow.x%3D1%3C%2fscript%3E</pre>
<p>The window.x logic ensures that the code only executes once, since the parameter appears in the topic page multiple times. In an actual attack, more code would likely be needed, as the specific localStorage key includes a version number that could change depending on the user. This does not stop the attack, however, as the correct version can be loaded by the script before making changes to localStorage.</p>
<p>Once this vulnerability is used to insert attack code into localStorage (e.g. if the above URL were loaded in an invisible iframe on an attacker&#8217;s site), visiting any site that had Apture&#8217;s widgets would cause the attack code to be loaded from the Apture iframe and executed in the context of the non-Apture site. And since this is essentially an example of DOM-based XSS (the code is loaded dynamically on the client side), requests sent to those sites&#8217; servers would not include any XSS fingerprints, such as &lt;script&gt; in a GET or POST parameter. In summary, the localStorage code caching turned one reflected XSS vulnerability on Apture&#8217;s site into persistent, client-side XSS across all domains using their service.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=How+a+Platform+Using+HTML5+Can+Affect+the+Security+of+Your+Website+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3159" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3159/how-a-platform-using-html5-can-affect-the-security-of-your-website&amp;t=How+a+Platform+Using+HTML5+Can+Affect+the+Security+of+Your+Website" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div><img src="http://feeds.feedburner.com/~r/SecurityMusings/~4/JWpkD8kmLkI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3159/how-a-platform-using-html5-can-affect-the-security-of-your-website/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://securitymusings.com/article/3159/how-a-platform-using-html5-can-affect-the-security-of-your-website</feedburner:origLink></item>
		<item>
		<title>Can’t close the barn door</title>
		<link>http://feedproxy.google.com/~r/SecurityMusings/~3/BnpCX_D54Ro/cant-close-the-barn-door</link>
		<comments>http://securitymusings.com/article/3156/cant-close-the-barn-door#comments</comments>
		<pubDate>Tue, 10 Jan 2012 15:48:19 +0000</pubDate>
		<dc:creator>Benjamin Hartley</dc:creator>
				<category><![CDATA[about]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[regulations]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3156</guid>
		<description><![CDATA[So, SOPA is the news of the day, in terms of the Internet and security; it has been for well over a month now. In case you’re not familiar, SOPA is the Stop Online Piracy Act. It will “authorize the U.S. Department of Justice to seek court orders against websites outside U.S. jurisdiction accused of [...]]]></description>
			<content:encoded><![CDATA[<p>So, SOPA is the news of the day, in terms of the Internet and security; it has been for well over a month now.<br />
In case you’re not familiar, SOPA is the Stop Online Piracy Act. It will “authorize the U.S. Department of Justice to seek court orders against websites outside U.S. jurisdiction accused of infringing on copyrights, or of enabling or facilitating copyright infringement.”</p>
<p>I won’t bore you with the typical arguments about how it’ll infringe on free speech, or weakens safe harbor, etc. These arguments have been made, and they may have some validity, but let’s talk technology.</p>
<p>SOPA is the most recent in a long line of legislation intended to regulate the internet. Such legislation is doomed to failure. The internet was designed to be impossible to regulate. SOPA focuses on preventing search engines from directing users to sites, and ordering domain name registrars to delist sites. While there are other provisions, these are the primary tools for stopping piracy outside of US jurisdiction. They’re supremely ineffective tools, because neither search engines nor DNSes are necessary for the function of the Internet.</p>
<p>To understand this, let’s step back and look at what the Internet really is.</p>
<p>The Internet, or rather its precursors, were created in the 1960s as a result of an initiative by DARPA – the Defense Advanced Research Projects Agency.  DARPA is notable for investing in all sorts of interesting projects that might have military applications – many are successful, and result in some of the most powerful technologies of our time. Granted, many are pretty off-the-wall and don’t look like they’ll ever amount to anything, but that’s the risk you take.<br />
The Internet was created to enable communications even against attempts to disrupt the network – even against the loss of most metropolitan areas, such as might happen during a nuclear war. This is actually very hard to do: you have to come up with a design that works even if all of your central nodes are gone.<br />
The Internet as we know it today has a number of elegant solutions which make it the most robust communications network ever known.<br />
The first is in the data packet. All data sent on the Internet is broken up into packets – even when it’s called “streaming”, it actually consists of content that has been broken up into separate packets which are then reassembled at the destination. Each packet, in turn, has a portion that says to where the information is going (the address) and a portion which contains the actual data (payload). This means that any given packet can be lost or corrupted, and the entire rest of the message will still get through. Granted, with encryption or compression this might be a moot point, but on the other hand with error correction it can actually be made even more robust.<br />
Beyond that, there are the routing protocols. Various routing protocols work somewhat differently in ways that are hard to describe, but they all serve roughly the same function. When a router receives a packet, it looks at the destination address and tries to find a route to that address. What’s especially clever is that if a given route fails, the router can then select an alternate route. In this way, the Internet can be self-healing. Bandwidth might drop as alternate routes are used, but so long as a path exists the message can still get through. And that path isn’t limited to even the same medium as was used in the past: Internet data can be sent over copper, satellite, radio, laser, physical media, even carrier pigeon!</p>
<p>Now, I haven’t mentioned DNS or search engines so far. That’s because we don’t need either.</p>
<p>DNS – Domain Name Service – is a technology that renders IP addresses into human-readable names. The addresses to which I alluded earlier are numerical. In IPv4 they’re a 32-bit binary number; in the newer IPv6 they’re a whopping 128 bits. Rendered into decimal, they’re a bit more manageable, but not by all that much – would you like to memorize strings of numbers like “192.168.15.106” for every website you visit? DNS is a service that your computer accesses which translates the much easier to recall names, like www.google.com into 74.125.227.147. It’s a nice convenience, but you don’t actually need it. And you’re not locked in to any one DNS server – you can set up your own, or you can actually use one that’s based outside of US jurisdiction.</p>
<p>And search engines?<br />
Same thing – they’re a convenience. There isn’t even a specification on what a search engine is. And as you doubtless know, you can use whatever search engine you like, again including ones that are based outside of US jurisdiction.</p>
<p>There are technical solutions to these oversights, of course. But, thanks to the structure of the Internet, there are workarounds for those as well. The Internet was designed to be hard to disrupt. From a technical standpoint, attempts to regulate the Internet are basically the same as trying to disrupt it; it’s simply not a technology which was designed to be regulated.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Can%E2%80%99t+close+the+barn+door+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3156" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3156/cant-close-the-barn-door&amp;t=Can%E2%80%99t+close+the+barn+door" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div><img src="http://feeds.feedburner.com/~r/SecurityMusings/~4/BnpCX_D54Ro" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3156/cant-close-the-barn-door/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://securitymusings.com/article/3156/cant-close-the-barn-door</feedburner:origLink></item>
		<item>
		<title>IP Geolocation</title>
		<link>http://feedproxy.google.com/~r/SecurityMusings/~3/VBzb2FHvVVE/ip-geolocation</link>
		<comments>http://securitymusings.com/article/3152/ip-geolocation#comments</comments>
		<pubDate>Tue, 10 Jan 2012 10:34:59 +0000</pubDate>
		<dc:creator>Laura Raderman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3152</guid>
		<description><![CDATA[While I did my thesis on this topic back in 2001, I haven&#8217;t used the knowledge or skills I gained from it much &#8211; or really at all. But I think it&#8217;s an interesting topic, and one that security folks and system administrators should at least be passingly familiar with. The technology has certainly changed [...]]]></description>
			<content:encoded><![CDATA[<p>While I did my thesis on this topic back in 2001, I haven&#8217;t used the knowledge or skills I gained from it much &#8211; or really at all.  But I think it&#8217;s an interesting topic, and one that security folks and system administrators should at least be passingly familiar with.  The technology has certainly changed since I did my thesis.</p>
<p>When you look at an IP address or even domain name in your logs &#8211; where is that person coming from?  You might need to know for forensics purposes, or even &#8220;cyberwarfare&#8221; purposes.  Keep in mind that spoofing an IP address isn&#8217;t rocket science, and just knowing if the IP address in your logs is the one doing the activity isn&#8217;t guaranteed.  However&#8230;  TCP traffic has a handshake, and in order for the replies to get somewhere, there has to be a valid &#8220;other end&#8221; of the connection.  That IP address has to be a part of the connection for anything that needs replies (UDP traffic and DDoS? you&#8217;re on your own).  The attacker may be using a bot net or another compromised machine, so just knowing the location of the IP address doesn&#8217;t give you the attacker (or file downloader&#8230;.)</p>
<p>Used to be you could make a really good guess at the location of an IP address based on a traceroute and noticing the routers that the traceroute went through.  You *might* get that information now &#8211; depends on if the backbone routers have ICMP turned off (most don&#8217;t) and how many hops you go through.  If you&#8217;re going to an IP on the same backbone provider (or a very well connected provider like Google), you won&#8217;t get much information from traceroute.  However, it&#8217;s a good first start.</p>
<p><img src="http://securitymusings.com/wp-content/uploads/2012/01/Screen-Shot-2012-01-09-at-3.47.55-PM-300x184.png" alt="Traceroute to sun.com" title="Traceroute" width="300" height="184" class="alignnone size-medium wp-image-3153" /></p>
<p>WHOIS may also be another helpful tool.  whois IPaddress will return different information than whois domainname.  The returned information will show who owns that IP address according to the RIRs (ARIN/RIPE).  Now, still not going to get you a jackpot every time, but it might.  If the IP address belongs to a large organization who has its own IP address space assigned, you&#8217;ll have at least the company (and maybe the location, depending on how the company assigns IP addresses).  You may also run into another wall if the whois search returns an ISP or hosting provider.</p>
<p>At this point, you&#8217;re slowly running out of free options.  There are several companies who specialize in geolocation and are happy to sell you the information, which is how most web sites and services find that out (except mobile devices, which are a whole &#8216;nother ballgame).  One service does provide a free database with less accuracy: http://ipinfodb.com/  It reliably figured out most of the IP addresses I tossed at it.</p>
<p>The big databases are put together in several ways: negotiating with ISPs and hosting providers to get the internal information (what dynamic IP space is assigned to the DC area vs the NY area), and just plain old brute work.  Anyone remember several of the web sites that&#8217;d ask you where you were located???  Guess who ran those, and where that data is now.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=IP+Geolocation+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3152" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3152/ip-geolocation&amp;t=IP+Geolocation" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div><img src="http://feeds.feedburner.com/~r/SecurityMusings/~4/VBzb2FHvVVE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3152/ip-geolocation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://securitymusings.com/article/3152/ip-geolocation</feedburner:origLink></item>
		<item>
		<title>Automation Device Security</title>
		<link>http://feedproxy.google.com/~r/SecurityMusings/~3/9svYY4tlSjs/automation-device-security</link>
		<comments>http://securitymusings.com/article/3147/automation-device-security#comments</comments>
		<pubDate>Fri, 23 Dec 2011 11:22:29 +0000</pubDate>
		<dc:creator>Laura Raderman</dc:creator>
				<category><![CDATA[hacking]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3147</guid>
		<description><![CDATA[The current &#8220;hot word&#8221; in security is SCADA (Supervisory Control And Data Acquisition) systems. The rumors of Russia attacking a water pump system in Illinois and the actual attack of a water treatment plant in Houston have all been in the news in the last few months. SCADA systems are used in many industrial applications [...]]]></description>
			<content:encoded><![CDATA[<p>The current &#8220;hot word&#8221; in security is SCADA (Supervisory Control And Data Acquisition) systems. The rumors of <a href="http://www.wired.com/threatlevel/2011/11/water-pump-hack-mystery-solved/">Russia attacking a water pump system in Illinois</a> and the <a href="http://threatpost.com/en_us/blogs/was-three-character-password-used-hack-south-houstons-water-treatment-plant-siemens-default-11">actual attack of a water treatment plant in Houston</a> have all been in the news in the last few months.  </p>
<p>SCADA systems are used in many industrial applications &#8211; water treatment, chemical manufacturing, product manufacturing, etc.  More and more industries are becoming automated with robots and all kinds of other neat technologies replacing humans (and theoretically human error).  Something has to control these systems, otherwise, you&#8217;re just replacing the labor force with folks who know how to control these automation tools.  But something important to take away is that SCADA systems can literally control life and death situations &#8211; water treatment, medical device manufacture, chemical creation.  If something goes wrong with these systems, the resulting device/product may kill someone.</p>
<p>The life and death situation is relatively new in the &#8220;hacker&#8221; community.  Generally, the goal is money, and while it would really suck to not have money in your bank account, it&#8217;s very rare that that situation would directly kill you.  What&#8217;s also new is that the makers of these automation tools have decided that having these tools connected to a network would be useful &#8211; without considering the security implications.</p>
<p>These devices have not historically been connected to a network.  A computer sat on the manufacturing floor that controlled the device(s), and humans walked up to the computer and programmed it, or read data from it, or whatever needed to be done.  Now, this computer is networked and takes commands from and sends data to other systems on the network.  Computers are fundamentally dumb things &#8211; they do what they&#8217;re told, and in the case of SCADA systems, don&#8217;t necessarily check to see who told them to do something.  So, if an attacker gets onto the same network that these automation devices are on and can figure out how to send commands (trivial for most attackers), they can make the device do what they want.</p>
<p>So, how do you protect against this?  Until the automation device makers come up with better security &#8211; you want to keep these devices in an &#8220;inner sanctum&#8221;, protected from the rest of your network.  Use a firewall with very specific rulesets &#8211; based on IP address or use sneakernet to transfer data from the systems on USB/hard drive.  At the same time, ask your vendors for timelines on when they expect to have security built into their systems.  You may not be able to replace all of your systems, but you can not buy from vendors who don&#8217;t take security seriously when you need new/replacement systems.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Automation+Device+Security+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3147" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3147/automation-device-security&amp;t=Automation+Device+Security" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div><img src="http://feeds.feedburner.com/~r/SecurityMusings/~4/9svYY4tlSjs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3147/automation-device-security/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://securitymusings.com/article/3147/automation-device-security</feedburner:origLink></item>
		<item>
		<title>Smart Phone Security Pointers</title>
		<link>http://feedproxy.google.com/~r/SecurityMusings/~3/PgWKUP3_r18/smart-phone-security-pointers</link>
		<comments>http://securitymusings.com/article/3134/smart-phone-security-pointers#comments</comments>
		<pubDate>Sat, 17 Dec 2011 02:35:50 +0000</pubDate>
		<dc:creator>Nick Staples</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[data protection]]></category>
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3134</guid>
		<description><![CDATA[Around this time of year, many people receive new devices and gadgets as gifts, and some of those gadgets turn out to be smart phones. But smart phone security is very tricky to pin down, as there are multiple vendors and platforms to take into consideration, not to mention the speed at which smart phone [...]]]></description>
			<content:encoded><![CDATA[<p>Around this time of year, many people receive new devices and gadgets as gifts, and some of those gadgets turn out to be smart phones. But smart phone security is very tricky to pin down, as there are multiple vendors and platforms to take into consideration, not to mention the speed at which smart phone technology is evolving. So when I came across this <a href="http://www.mcafee.com/us/resources/white-papers/foundstone/wp-top-10-iphone-security-tips.pdf">Top 10 iPhone Security Tips</a> whitepaper (pdf), I knew that it was probably a good thing that it attempts to target a specific platform. However, after reading through it, I think that many of the things McAfee points out can also apply to a Droid or BlackBerry. And so, by stripping away the platform-specific details, we arrive at a pretty decent list of things a new smart phone owner can do to achieve some basic smartphone security:</p>
<ul>
<li>Enable passcode/lock</li>
<p>Mobile phones have had passcode capabilities for a long time. Make sure you&#8217;re using it, since a passcode lock is often the first line of defense.</p>
<li>Erase all data before a return, repair, or resale</li>
<p>If you will no longer be the owner in possession of the device, it&#8217;s best to erase everything you can first. Everything. If you can do a factory reset, do so, because your phone constantly records information and there is always some data that isn&#8217;t easily found, let alone purged.</p>
<li>Regularly update firmware</li>
<p>I&#8217;m guilty of not doing this&#8211; sometimes the update notification will sit around for a week before I finally give it permission to run. But this is one of the easier things to do, since it&#8217;s mostly automatic.</p>
<li>Don&#8217;t run shady apps</li>
<p>Just like with a personal computer, if you run unknown or untrusted applications, you substantially increase your chances of getting <strong>got</strong>.  So if you don&#8217;t want to get got, be prudent about what apps you run on your device.</p>
<li>Take advantage of the web browser&#8217;s security</li>
<p>For smartphones with native web browser apps, be sure to use the security features to clear caches and stored passwords when it&#8217;s necessary. Just because a web browser is on a mobile device doesn&#8217;t mean it&#8217;s a security lightweight. Check out the &#8220;settings&#8221; or &#8220;options&#8221; to see just how much your mobile phone web browser can do to help you out.</p>
<li>If you&#8217;re not using it, disable it</li>
<p>I&#8217;m also guilty of leaving stuff running unnecessarily. Be careful about leaving debug mode enabled, Bluetooth and wifi on, etc.  Generally speaking, the more doors you leave unlocked, the lighter you sleep at night. Turning off unused services when they aren&#8217;t needed is a good habit to form, even outside the realm of security.</p>
<li>Secure that email</li>
<p>In addition to providing native web browser apps, many smartphones also come bundled with a native email app. Check the settings for these apps to take advantage of any security features they&#8217;re offering (such as SSL/TLS).</p>
<li>Use a phone tracker</li>
<p>The GPS can be bad for privacy if you are reckless with it. However, it can also be a powerful tool to help you recover a lost/stolen device. I believe the iPhone 4 has a built in device-finding service (complete with a remote wipe). But even if you have a different smartphone, there is almost certainly an app that provides some remote tracking for lost devices (i.e. <em>Where&#8217;s My Droid</em> app for Android).</ul>
<p>This certainly isn&#8217;t a comprehensive list, but it should be enough to get both new and old smartphone users thinking about general mobile device security in a healthy way.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Smart+Phone+Security+Pointers+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3134" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3134/smart-phone-security-pointers&amp;t=Smart+Phone+Security+Pointers" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div><img src="http://feeds.feedburner.com/~r/SecurityMusings/~4/PgWKUP3_r18" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3134/smart-phone-security-pointers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://securitymusings.com/article/3134/smart-phone-security-pointers</feedburner:origLink></item>
		<item>
		<title>Poor Promotional Practices</title>
		<link>http://feedproxy.google.com/~r/SecurityMusings/~3/_oyzkNZnUQ0/poor-promotional-practices</link>
		<comments>http://securitymusings.com/article/3129/poor-promotional-practices#comments</comments>
		<pubDate>Fri, 16 Dec 2011 19:11:14 +0000</pubDate>
		<dc:creator>Tim Donaworth</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3129</guid>
		<description><![CDATA[Sometimes emails aren't always what they seem. Sometimes they promise great things. Sometimes they follow through with these, but most times they do not. Read on for an example of what not to do in promotional emails and learn how you can further protect yourself from email fraud. ]]></description>
			<content:encoded><![CDATA[<p>I’m not too ashamed of myself to whore out a few select email addresses for personal gain, or even promote a certain company by liking or retweeting something if it will benefit me more than the actions required, but I always keep a hesitant nature towards most of these promotions. I mean who doesn’t like free money?</p>
<p>I received an email the other day supposedly sponsored by a reputable programmer-related site. What it entailed was signing up for a big vendor’s developer program. If I did so, they would send me a $15 gift certificate to one of the major online retailers. I’m trying to keep all parties in this matter anonymous simply because I do not want to promote anything involved in this so-called promotion, and the actual parties involved are irrelevant. The email went something like this:</p>
<blockquote><p>&nbsp;</p>
<p>Happy Holidays Developers!</p>
<p>Get a $15 [online retailer] Gift Certificate by joining the [vendor] Developer Program (no charge!)</p>
<p>Thanks to your [programmer site] participation, here’s all you have to do!</p>
<p>1.	Visit The [hyperlink to vendor site] and register at no cost!</p>
<p>2.	[vendor] will send you a validation email: confirm your registration following the URL provided in the email which will prompt you to choose a password</p>
<p>3.	Once you have chosen a password, [vendor] will then send you a password reset email: forward the password reset email and the sign up email address used to [promotional site email]</p>
<p>4.	Once verified on our end, a gift certificate will be sent to you promptly after the program ends!</p>
<p>Hurry! This is limited to the first 600 respondents, one per person.</p>
<p>For full terms and conditions please visit [marketing link to promotional site]</p></blockquote>
<p>Step 3 is the one that caught my eye here. You want me to forward you an email sent to me that allows me to reset my password? By doing this I would essentially be sending the promoter an email that contained a link with an embedded token allowing them to authenticate as myself and then change my password, essentially gaining access to my account at this vendor site. Mind you, this isn&#8217;t exactly a critical account. But still these are very poor security practices.</p>
<p>So, what&#8217;s to be learned from this? Pay attention to what&#8217;s being asked of you. If it seems slightly out of the ordinary, it probably is. Inboxes are being filled with more and more spam these days, some make it through, and some even seem legitimate. It&#8217;s up to the users to educate themselves on how to detect and avoid these types of situations. In closing, I&#8217;ll leave you with a list of things you can do to help protect yourself.</p>
<ul>
<li>If it seems too good to be true, it probably is. So use common sense people!</li>
<li>Do not click on links in emails &#8211; period! Just because it says it&#8217;s a link to SiteA doesn&#8217;t mean it&#8217;s actually going there.</li>
<li>Enable spam controls on your email client &#8211; if you&#8217;re using Outlook, Thunderbird, or even Gmail&#8217;s web interface &#8211; they are all pretty good at detecting what may or may not be spam.</li>
<li>Use multiple emails or use gmail&#8217;s &#8216;+&#8217; email features or mailnull to help sort out those mailing list emails and let you know which emails are being distributed to others.</li>
<li>Do not load images by default or at all.</li>
<li>Do not enable scripting at all!</li>
</ul>
<p>These are just the tip of the iceberg, but you get the idea. Help protect yourself and you&#8217;ll be helping to protect all of us.</p>
<p>&nbsp;</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Poor+Promotional+Practices+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3129" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3129/poor-promotional-practices&amp;t=Poor+Promotional+Practices" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div><img src="http://feeds.feedburner.com/~r/SecurityMusings/~4/_oyzkNZnUQ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3129/poor-promotional-practices/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://securitymusings.com/article/3129/poor-promotional-practices</feedburner:origLink></item>
		<item>
		<title>Physical Security still more important</title>
		<link>http://feedproxy.google.com/~r/SecurityMusings/~3/Kl0Esbkft4o/physical-security-still-more-important</link>
		<comments>http://securitymusings.com/article/3123/physical-security-still-more-important#comments</comments>
		<pubDate>Thu, 15 Dec 2011 17:30:14 +0000</pubDate>
		<dc:creator>Benjamin Hartley</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3123</guid>
		<description><![CDATA[I’ve mentioned Whole Disk Encryption in the past. There are a number of products, both free and paid, which will allow you to encrypt your entire hard disk, or the hard disks on your servers. In a recent study whole disk encryption (referred to as FDE in the study) has been shown to significantly hamper [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve mentioned Whole Disk Encryption in the <a href=http://securitymusings.com/article/2924/encrypt-your-portable-devices>past</a>. There are a number of products, both free and paid, which will allow you to encrypt your entire hard disk, or the hard disks on your servers.</p>
<p>In <a href=http://www.sciencedirect.com/science/article/pii/S1742287611000727>a recent study</a> whole disk encryption (referred to as FDE in the study) has been shown to significantly hamper investigation. Basically, the encryption is too good. Even with techniques like <a href=http://www.zdnet.com/blog/security/cryogenically-frozen-ram-bypasses-all-disk-encryption-methods/900>cryogenic RAM freezing</a> it’s often unlikely that the encryption can be bypassed.</p>
<p>But there’s a huge, gaping hole in such protection: you can’t USE encrypted data. For it to be accessible and usable, it has to be decrypted. (In other news, it is not possible to open properly locked doors, nor to pass through walls.)</p>
<p>And for the last few years, there has been a product out there which makes it possible to remove a computer without powering it down. This product is called <a href=http://www.wiebetech.com/products/HotPlug.php>HotPlug</a> and it can be used, in conjunction with a portable power source, to remove a machine without disrupting its functioning. Be sure to watch the video.</p>
<p>Of course, lawful search and seizures aren’t the problem <i>per se</i>. But this does show that WDE isn’t a panacea. As with any security, it needs to be backed up by other defenses as well. Physical control trumps software security anyway. Which means, unremarkably, that even the newest technology doesn’t necessarily provide more security than a good padlock.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Physical+Security+still+more+important+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3123" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3123/physical-security-still-more-important&amp;t=Physical+Security+still+more+important" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div><img src="http://feeds.feedburner.com/~r/SecurityMusings/~4/Kl0Esbkft4o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3123/physical-security-still-more-important/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://securitymusings.com/article/3123/physical-security-still-more-important</feedburner:origLink></item>
		<item>
		<title>Using a Mac with VMWare vSphere (ESXi) 5</title>
		<link>http://feedproxy.google.com/~r/SecurityMusings/~3/0A1mbIS2PbA/using-a-mac-with-vmware-vsphere-esxi-5</link>
		<comments>http://securitymusings.com/article/3110/using-a-mac-with-vmware-vsphere-esxi-5#comments</comments>
		<pubDate>Tue, 29 Nov 2011 21:07:14 +0000</pubDate>
		<dc:creator>Peter Hesse</dc:creator>
				<category><![CDATA[article]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Tutorial Tuesday]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[vmware macintosh client]]></category>
		<category><![CDATA[vsphere]]></category>
		<category><![CDATA[vsphere macintosh client]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3110</guid>
		<description><![CDATA[One of the biggest complaints I’ve had with VMWare vSphere and VMWare ESX/ESXi over the last few years is that managing my virtual machines from my Mac computer was a hassle. The VMWare management utilities are all Windows-only, and even the few web-based tools either do not work or are extremely limited from a Mac. While [...]]]></description>
			<content:encoded><![CDATA[<p>One of the biggest complaints I’ve had with VMWare vSphere and VMWare ESX/ESXi over the last few years is that managing my virtual machines from my Mac computer was a hassle. The VMWare management utilities are all Windows-only, and even the few web-based tools either do not work or are extremely limited from a Mac. While it isn’t perfect yet, VMWare vSphere 5 has made it so you can actually do just about anything you need to using a Macintosh computer; you just need to go through a few hurdles.</p>
<p>To enable the administration of your various virtual machines, storage, clusters, datacenters, and the like, you can now use the vSphere 5 Web Client. Before it can be used, it must be authorized; the best instructions I found for this are <a href="http://www.virtualizationadmin.com/articles-tutorials/vmware-esx-and-vsphere-articles/general/getting-starting-vsphere-5-web-client.html">here</a>. Follow the steps in the “<span style="color: #000080;">Authorizing the vSphere Web Client (Server)</span>” section. This is a one-time configuration necessary to enable the vSphere Web Client.</p>
<p>Once authenticated, you will see something that looks very similar to the Windows-based vSphere Client running in your browser.</p>
<p><a href="http://securitymusings.com/wp-content/uploads/2011/11/Screen-shot-2011-11-29-at-3.11.24-PM.png"><img class="aligncenter size-medium wp-image-3111" title="vSphere Web Client" src="http://securitymusings.com/wp-content/uploads/2011/11/Screen-shot-2011-11-29-at-3.11.24-PM-300x168.png" alt="vSphere Web Client" width="300" height="168" /></a></p>
<p>This will satisfy most of your management needs, but it leaves out an all-important capability; the ability to remotely view the console of the systems. There&#8217;s a Console button, but it won&#8217;t work on a Mac. Once you’ve installed a machine, you can typically enable some sort of remote desktop capability in the operating system, but what do you do before then? If you’re running Windows, you use the vSphere client and open a console, but on a Mac, you’re out of luck. Right? Wrong.</p>
<p>There is an under-documented feature of vSphere that allows the capability of opening up VNC connections from the host directly to the console of the virtual machine. To perform this, we first have to enable incoming connections to your vSphere server, as vSphere 5 has an integrated firewall. This is the one step you will actually need to use the Windows vSphere Client; everything else can be done using the Web Client. This step needs to be executed once for each vSphere or ESXi host running virtual machines you want to access using VNC.</p>
<p><span style="text-decoration: underline;">In the Windows vSphere client</span>, choose the host you wish to enable VNC connections on. Choose the <strong>Configuration</strong> tab and on the left choose <strong>Security Profile</strong>. On the right, next to <strong>Firewall</strong> click <strong>Properties…</strong> As VMWare does not include VNC as a protocol, it is not listed as an available option. However the ports allowed by the <strong>gdbserver</strong> protocol will suit our purposes. Check the box next to <strong>gdbserver</strong>. (<em>It is also wise to highlight the <strong>gdbserver</strong> line and click the <strong>Firewall…</strong> button and lock down where you will allow these VNC connections to take place from; in ours I restricted this to our intranet.</em>) Click <strong>OK</strong> and you’ve now enabled the incoming ports to be used for VNC.</p>
<p>Finally, enabling VNC access to the console machines is a matter of setting advanced configuration parameters on each virtual machine, which can only be done when the virtual machine is off. To open up the advanced configuration:</p>
<ul>
<li><span style="text-decoration: underline;">In the Windows vSphere client</span>, choose the machine, click <strong>Edit Settings…</strong>, click the <strong>Options</strong> tab, choose <strong>Advanced-&gt;General</strong> on the left, and click <strong>Configuration Parameters…</strong> on the right.</li>
<li><span style="text-decoration: underline;">In the Web client</span>, choose the machine, click Edit Settings… under the <strong>VM Hardware</strong> section, click <strong>VM Options</strong>, click <strong>Advanced</strong>, and click <strong>Edit Configuration…</strong>.</li>
</ul>
<p>In both cases, you now want to add three rows by clicking the <strong>Add Row</strong> button.</p>
<table style="background-color: #ffffcc; border: 1px solid black;">
<tr>
<td style="padding: 10px; border: 1px solid black;"><strong>Name</strong></td>
<td style="padding: 10px; border: 1px solid black;"><strong>Value</strong></td>
</tr>
<tr>
<td style="font-family: monospace; padding: 10px; border: 1px solid black;">RemoteDisplay.vnc.enabled</td>
<td style="font-family: monospace; padding: 10px; border: 1px solid black;">true</td>
</tr>
<tr>
<td style="font-family: monospace; padding: 10px; border: 1px solid black;">RemoteDisplay.vnc.port</td>
<td style="padding: 10px; border: 1px solid black;"><em>5900-5999 are the “standard” ports, choose one different from other VMs on the host.</em></td>
</tr>
<tr>
<td style="font-family: monospace; padding: 10px; border: 1px solid black;">RemoteDisplay.vnc.password</td>
<td style="padding: 10px; border: 1px solid black;"><em>the VNC password used to access the VNC session; only the first 8 characters are encrypted using the VNC protocol, and weakly at that. Don&#8217;t rely on this for security.</em></td>
</tr>
</table>
<p>Once you’ve added these rows and click OK, you can now use a VNC client to connect to the console of the machine. Power up the machine, and then using Finder on the Mac, choose Go-&gt;Connect to Server (or hit Command-K), and type the following:</p>
<p><strong>vnc://</strong><span style="color: #0000ff;"><em>&lt;ip or name of esxi host&gt;</em></span><strong>:</strong><span style="color: #800080;"><em>&lt;port chosen in configuration settings&gt;</em></span><strong>/</strong></p>
<p>and click <strong>Connect</strong>. You will be prompted for your password, and depending on your client/version of OSX you may receive a warning about how keystroke encryption is not enabled. Accept the warning, and you will see the console of the virtual machine! (And note, since Macs don’t already use the three-finger salute, you can safely just press Ctrl-Alt-Del in that VNC-window to log into Windows systems!)</p>
<p>Once you’ve installed the operating system of choice, and enabled that OS’ remote desktop capability, you may want to disable this VNC access. Just shut down the VM, go back into the advanced options and change the <span style="font-family: monospace;">RemoteDisplay.vnc.enabled</span> setting to <span style="font-family: monospace;">false</span>.</p>
<p>Hopefully at some point soon, VMWare will enable a true web-based console application (which doesn’t require host-specific plugins to be installed) to go with their nice new web client. Until then, this is a reasonable workaround for accessing virtual machines using a Mac.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Using+a+Mac+with+VMWare+vSphere+%28ESXi%29+5+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3110" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3110/using-a-mac-with-vmware-vsphere-esxi-5&amp;t=Using+a+Mac+with+VMWare+vSphere+%28ESXi%29+5" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div><img src="http://feeds.feedburner.com/~r/SecurityMusings/~4/0A1mbIS2PbA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3110/using-a-mac-with-vmware-vsphere-esxi-5/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://securitymusings.com/article/3110/using-a-mac-with-vmware-vsphere-esxi-5</feedburner:origLink></item>
		<item>
		<title>Test, don’t assume</title>
		<link>http://feedproxy.google.com/~r/SecurityMusings/~3/6m67VVbQrz8/test-dont-assume</link>
		<comments>http://securitymusings.com/article/3104/test-dont-assume#comments</comments>
		<pubDate>Tue, 22 Nov 2011 15:45:57 +0000</pubDate>
		<dc:creator>Benjamin Hartley</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3104</guid>
		<description><![CDATA[I am currently experimenting with my smartphone, to see if its Mobile Access Point Functionality allows it to function as a wireless router independent of Internet connection. In theory, it should – it is capable of providing internet access to four attached devices, and that suggests that it should have router functionality, meaning that the [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently experimenting with my smartphone, to see if its Mobile Access Point Functionality allows it to function as a wireless router independent of Internet connection. In theory, it should – it is capable of providing internet access to four attached devices, and that suggests that it should have router functionality, meaning that the attached devices should be able to talk with each other, rather than simply to the Internet. In practice, I know that sometimes seemingly important parts of networking implementations are, well, not implemented. The most egregious example, in my experience, was a commercial-grade firewall which was unable to pass UDP traffic under certain circumstances.</p>
<p>The lesson I learned then was that just because the hardware and software claim to be able to perform a function, it isn’t enough to assume that they actually work. Never assume – always test. Sometimes ports will be blocked; traffic won’t be passed, or there will be an absurd traffic shaping scheme that makes your particular application untenable. Sometimes these problems are resolvable, and sometimes they aren’t. This can be terribly vexing when trying to, for example, set up a VoIP connection.</p>
<p>But from a security standpoint, sometimes the reverse is even worse. What if the connection works, but the security doesn’t? This isn’t hypothetical. There have already been many cases of firewalls which implemented an IPv6 stack but didn’t apply the firewall rules to that stack – or expected a separate set of rules which had never been set up.  And, of course, there’s always the risk of a lazy predecessor who, in the rush to Make Things Work set allow *.* in the rules – would you notice? After all, nothing would stop working. Well, until your systems got infected.</p>
<p>Fortunately, there’s a host of tools to save you from this problem. Your first is simple Defense In Depth – relying not just on one company-wide firewall but also on an IDS, software firewalls, and anti-malware software, so one foolish implementation doesn’t leave you wide open. Second, there are scanning and simulation tools – mostly port mapping, but a few others besides – which will tell you what ports are open and what services are actually available. And if that’s not enough, a proper 3rd-party penetration test will probably find anything. But your best line of defense is in your own head – knowing how your network setup should work, being able to read the configurations you have, and knowing if the actual results match up.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Test%2C+don%E2%80%99t+assume+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3104" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3104/test-dont-assume&amp;t=Test%2C+don%E2%80%99t+assume" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div><img src="http://feeds.feedburner.com/~r/SecurityMusings/~4/6m67VVbQrz8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3104/test-dont-assume/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://securitymusings.com/article/3104/test-dont-assume</feedburner:origLink></item>
		<item>
		<title>GPG on Lion – only if you don’t use S/MIME</title>
		<link>http://feedproxy.google.com/~r/SecurityMusings/~3/eLwGtu4AmqQ/gpg-on-lion-only-if-you-dont-use-smime</link>
		<comments>http://securitymusings.com/article/3094/gpg-on-lion-only-if-you-dont-use-smime#comments</comments>
		<pubDate>Thu, 10 Nov 2011 19:57:05 +0000</pubDate>
		<dc:creator>Laura Raderman</dc:creator>
				<category><![CDATA[Technology & Tool Thursday]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3094</guid>
		<description><![CDATA[There&#8217;s a new GPGMail app &#8211; installed with GPGTools &#8211; that works on Lion: http://www.gpgtools.org/installer/index.html Unless you&#8217;ve got S/MIME set up. If you do have S/MIME set up, the bundle won&#8217;t display the settings, nor will it &#8220;work&#8221;. You&#8217;ll have a GPGMail preferences pane in Mail.app, but the only options you get are enabling OpenPGP [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a new GPGMail app &#8211; installed with GPGTools &#8211; that works on Lion: http://www.gpgtools.org/installer/index.html<br />
Unless you&#8217;ve got S/MIME set up.  If you do have S/MIME set up, the bundle won&#8217;t display the settings, nor will it &#8220;work&#8221;.  You&#8217;ll have a GPGMail preferences pane in Mail.app, but the only options you get are enabling OpenPGP under Composing and Reading.  You&#8217;re supposed to have the choice of keys, etc. </p>
<p>The previous GPGMail (a *long* time ago), allowed both S/MIME and OpenPGP, so this is a bit disappointing.  Their bug tracker has that functionality scheduled for (possibly) version 2.1, and I&#8217;ll be trying it again at that point.  </p>
<p>There are definitely challenges to having S/MIME and OpenPGP running the same mail client.  If you (accidentally) try to do both at the same time, you get garbage that most mail clients can&#8217;t understand &#8211; because each mail client/plugin applies the encryption in a different order, and the recipient&#8217;s mail client would have to know that order.  Now, if a person only has a PGP key or only has an S/MIME certificate, then it&#8217;s not that difficult &#8211; the mail client should select the appropriate encryption.</p>
<p>It is very nice to see that GPGMail is being developed actively again.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=GPG+on+Lion+%E2%80%93+only+if+you+don%E2%80%99t+use+S%2FMIME+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3094" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3094/gpg-on-lion-only-if-you-dont-use-smime&amp;t=GPG+on+Lion+%E2%80%93+only+if+you+don%E2%80%99t+use+S%2FMIME" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div><img src="http://feeds.feedburner.com/~r/SecurityMusings/~4/eLwGtu4AmqQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3094/gpg-on-lion-only-if-you-dont-use-smime/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://securitymusings.com/article/3094/gpg-on-lion-only-if-you-dont-use-smime</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 3.972 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-02-07 07:59:07 --><!-- Compression = gzip -->

