<?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>Perimeter Grid &#187; hardware</title> <atom:link href="http://perimetergrid.com/wp/category/hardware/feed/" rel="self" type="application/rss+xml" /><link>http://perimetergrid.com/wp</link> <description>Building Security in a Networked World</description> <lastBuildDate>Sat, 13 Aug 2011 06:02:53 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <item><title>DefCon 19, Day 3</title><link>http://perimetergrid.com/wp/2011/08/12/defcon-19-day-3/</link> <comments>http://perimetergrid.com/wp/2011/08/12/defcon-19-day-3/#comments</comments> <pubDate>Sat, 13 Aug 2011 06:02:53 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[attacks]]></category> <category><![CDATA[hardware]]></category> <category><![CDATA[networks]]></category> <category><![CDATA[physical security]]></category> <category><![CDATA[products]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/?p=149</guid> <description><![CDATA[Sunday was interesting &#8212; this was actually the first DefCon I have attended (and I&#8217;ve been to the last five) where Sunday was actually busy. Normally Sunday feels very empty &#8212; most people have gone home, and the ones that are still around are too hung over to go to the morning sessions. I was [...]<p></p> ]]></description> <content:encoded><![CDATA[<p>Sunday was interesting &#8212; this was actually the first DefCon I have attended (and I&#8217;ve been to the last five) where Sunday was actually <em>busy</em>.  Normally Sunday feels very empty &#8212; most people have gone home, and the ones that are still around are too hung over to go to the morning sessions.  I was not <em>quite</em> hung over enough to miss the morning sessions, so off I went.  I&#8217;d imagine a lot of people took advantage of DefCon TV, though.</p><p>I started the day with Whit Diffie &#038; Moxie Marlinspike&#8217;s Q&#038;A session in Track 1.  There was no topic in the program; instead, they just both answered questions about SSL and cryptography.  One interesting detail: one of the reasons RSA has become more successful (or at least frequently used) than Diffie-Hellman was that Diffie himself favored it, on account of certain attacks for which RSA is more favorable (though Diffie-Hellman is better against others.)  A lot of the discussion, though, was about Moxie&#8217;s notary system proposal.  I have to give Moxie credit here &#8212; though I&#8217;m still not sure that I agree with his proposal, I probably spent more time debating it with people than I spent talking about any other presentation this weekend.  It certainly spawned a lot of conversation.</p><p>Paul Craig&#8217;s <a
href="http://ikat.ha.cked.net/">iKAT tool</a> is always interesting, and he presented a new version.  The previous one only attacked Windows kiosks, and now he&#8217;s cross-platform.  Essentially, the principle is that Internet kiosks are designed with the threat model of defending the kiosk from the user&#8230; and not defending it from the Internet.  Thus, iKAT is an Internet site that can be used by the user to attack his own machine, under the assumption that his own machine is some sort of locked-down Internet kiosk with restricted permissions.  iKAT allows the user to take full administrative control of most of them, either just to get unrestricted Internet orb, if he&#8217;s less friendly, to Trojan the card-reader.</p><p>Next, Alva Duckwall presented <a
href="https://www.defcon.org/html/defcon-19/dc-19-speakers.html#Duckwall" title="A Bridge Too Far">A Bridge Too Far</a>, a talk on bypassing 802.1x via creating a layer-2 transparent bridge.  This was actually a rather cool talk, and coupled very well with yesterday&#8217;s talk on exploiting hotel VoIP via VLAN-hopping by cloning the phone.  With all the focus being on Layer-3 protocols these days, it&#8217;s cool to see that you can still do some interesting stuff at Layer-2.</p><p>There was a talk in the afternoon on <a
href="https://www.defcon.org/html/defcon-19/dc-19-speakers.html#Dinaburg">bit-squatting</a> &#8212; essentially, a binary version of typosquatting wherein you register a domain that&#8217;s a 1-bit error off from a legitimate domain, not intending to catch user error but rather to catch hardware and network errors.  1-bit errors are fairly common, at least when multiplied by billions of Internet users.  I didn&#8217;t attend the talk because I felt that all the interesting material was basically contained in the title &#8212; the moral of the story is going to be that you should probably register the 1-bit-off domain names of your own if you&#8217;re going to create a highly-targeted site like a banking site.  Talking to people who did attend&#8230; the consensus was that it shouldn&#8217;t have been a 50-minute talk.</p><p>Instead, I visited <a
href="https://www.defcon.org/html/defcon-19/dc-19-speakers.html#datagram">datagram&#8217;s talk on tamper-evident devices</a>.  Most of them, well, aren&#8217;t tamper-evident, at least not against a skilled attacker.  The attacks range from very obvious (stretching plastic, razoring up adhesive) to requiring more knowledge (dissolving adhesive with a wide variety of organic and inorganic solvents) to very clever.  Note that during the Tamper Evident contest at DefCon, wherein people tried to bypass a wide variety of anti-tampering seals and devices&#8230; none of the seals or devices successfully resisted attack.</p><p>I followed this up with a talk by the DefCon NOC on <a
href="https://www.defcon.org/html/defcon-19/dc-19-speakers.html#Bryan">Building the DefCon network</a>.  It&#8217;s an interesting challenge &#8212; building a high-bandwidth network, wired and wireless, for use by 12,000 people, many of whom will be actively attacking it, given only 3 days, using only hardware you can afford to keep in a box 51 weeks of the year.   Considering their constraints they do a remarkable job.  This year&#8217;s secure wireless was, so far as anyone could tell, actually secure&#8230; and possibly safer than using GSM or CDMA in this environment (GSM is definitely broken, and the not-quite-confirmed rumor is that CDMA users were hit by an 0day MitM this year, too.)  DefCon TV was a huge hit, even though it did not successfully reach all rooms.</p><p>The last talk of the day was Jayson Street&#8217;s dramatically-titled <a
href="https://www.defcon.org/html/defcon-19/dc-19-speakers.html#Street">&#8220;Steal Everything, Kill Everyone, Cause Total Financial Ruin!&#8221;</a> It was sometimes amusing, but overall it was mostly a self-aggrandizing pentester talking about various (mostly physical) exploits he had pulled off.  Not really any valuable content for a security pro, though your average non-security person would probably be shocked at how trivially exploitable most systems are.</p><p>Having spent pretty much the whole weekend at DefCon events, I decided to go back down to the Strip, see a show, and have some delicious steak frites and wine at the Paris.  It was a nice ending to a packed weekend.</p><p>Overall, DefCon this weekend was a huge success (I&#8217;m making a note here.)  The Rio was a great environment, much better than the Riviera, with enough room to grow and real food to eat.  Staying in the conference hotel and having a group to enjoy DefCon with made it a much more fun experience than past years; both will be things I&#8217;ll be sure to repeat.  (Incidentally, Google Plus is a great tool for attending a con with a group &#8212; it&#8217;s like having your own private Twitter &#8212; though I can&#8217;t say that I have found much <em>else</em> it&#8217;s good for yet.)  Speaking of Twitter, while it&#8217;s been indefensible for DefCon in prior years, at this point since everyone has a smartphone and a Twitter account the #defcon hashtag actually has so much traffic it&#8217;s almost impossible to keep track of.  Every time you bring it up there are hundreds of new tweets.</p><p>I think the new non-electronic badges were a success.  While perhaps less &#8220;cool&#8221; than the electronic ones, far more people participated in the badge contest this year than have ever participated in hacking the electronic badges, and while badge lines did run 2-3 hours, at least they were available before the con started.  At some point, DefCon management needs to learn that the conference is growing 10%+ per year and that they need to order enough badges for growth; considering the much lower cost of non-electronic badges, perhaps they&#8217;ll do that next year.  The lines are entirely unnecessary &#8212; they exist only because everybody knows that badges have been under-ordered and people at the back of the line won&#8217;t get one.  Without this pressure to get badges <I>first</I>, the infamous LineCon could be avoided.</p><p>DC303 and Rapid7 threw great parties.  However, most of the fun I had was around the Rio pools &#8212; having them open until 2am was great, though even later would be nice (and allowing alcohol instead of having everyone smuggle it in would be an improvement, though I&#8217;m not holding my breath on that one.)  Finally, thanks to DC206 for a great time, a lot of very interesting conversation, and confusing the hell out of taxi drivers.</p><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2011/08/12/defcon-19-day-3/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>BlackHat 2009, Day 2</title><link>http://perimetergrid.com/wp/2009/08/13/blackhat-2009-day-2/</link> <comments>http://perimetergrid.com/wp/2009/08/13/blackhat-2009-day-2/#comments</comments> <pubDate>Thu, 13 Aug 2009 21:04:57 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[anonymity]]></category> <category><![CDATA[attacks]]></category> <category><![CDATA[crypto]]></category> <category><![CDATA[hardware]]></category> <category><![CDATA[industry]]></category> <category><![CDATA[legal]]></category> <category><![CDATA[networks]]></category> <category><![CDATA[passwords]]></category> <category><![CDATA[risk]]></category> <category><![CDATA[society]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/?p=92</guid> <description><![CDATA[The Thursday keynote was given by Bob Lentz, a Deputy Assistant Secretary of Defense for the United States. His main point was the paradigm shift from network-centric security to what he called content-centric security, and the fact that this devalues the protections around network perimeters. Static defenses don&#8217;t work when all the services being used [...]<p></p> ]]></description> <content:encoded><![CDATA[<p>The Thursday keynote was given by Bob Lentz, a Deputy Assistant Secretary of Defense for the United States.  His main point was the paradigm shift from network-centric security to what he called content-centric security, and the fact that this devalues the protections around network perimeters.  Static defenses don&#8217;t work when all the services being used are distributed and not found behind your firewall; the adversary is effectively always inside your firewall.  Other notable but less positive things from the speech included that the Department of Defense considers &#8220;reducing anonymity&#8221; a strategic goal, and that the government still likes to prefix &#8220;cyber-&#8221; on everything, creating &#8220;cyberczar,&#8221; &#8220;cybertime,&#8221; &#8220;cyber green movement,&#8221; and even &#8220;cyber&#8221; as a standalone noun.</p><p>This year, BlackHat had an entire Cloud Computing track, running all day on Thursday, of which I attended a great deal.  Part of my job involves protecting cloud computing services, so it seemed very relevant, and it&#8217;s certainly a hot topic in the industry right now.  It began with <a
href="http://www.blackhat.com/html/bh-usa-09/bh-usa-09-speakers.html#Stamos">Alex Stamos, Nathan Wilcox, and Andrew Becherer</a> presenting a lecture on cloud computing models and vulnerabilities.</p><p>They defined cloud computing as not just virtualization, but including general-purpose hosts, central management, application mobility, distributed data, low-touch provisioning, and soft failover.  They looked at three different cloud models: Software as a Service, Platform as a Service, and Infrastructure as a Service, and the differences &amp; vulnerabilities in each.</p><p>The Software as a Service (SaaS) model is to outsource everything.  From a security perspective it&#8217;s not necessarily a bad idea &#8212; the cloud provider probably has a lot more security people than the average company.  On the other hand, you also outsource all your data &#8212; the recent Twitter &#8220;breach&#8221; via somebody logging into Twitter&#8217;s Google Docs account shows the risks this can entail.  You lose the perimeter, endpoint management, the ability to use better authentication than simple passwords, credential quality controls, password reset processes, and realtime anomaly detection (though you hope the cloud provider has some of these things.)  It puts all your eggs in one basket &#8212; if someone can read your email, they can access all your data.  SaaS products include Office Live, Google Apps, and Salesforce.com.  None of these have decent audit &amp; rollback capability; Google Apps at least provides login history (though you have to write code &amp; call an API to get at it) but still no read/write level auditing.  Salesforce.com offers some write logging.  However, the biggest flaw with SaaS models may well be authentication &#8212; all your security relies on a password, with all the vulnerability that entails, and you can&#8217;t even set a strong password policy (for all the good it would do you.)  Google Apps actually lets you use a SAML-based SSO system; with other SaaS apps the best you can do is set a strong password policy via employee education.</p><p>Another issue with SaaS providers is the legal concerns &#8212; the cloud service EULAs tend to promise basically nothing and disclaim all liability.  Also, they forbid malicious traffic &#8212; even pentesting your own app.  There&#8217;s also decreased protection from search and subpoena.  Since the data is stored with someone else, there&#8217;s no Constitutional protection from search, and even statutory protection is usually only for &#8220;communication.&#8221;  Are Google Docs communication?  Courts haven&#8217;t really defined this yet.  The net result of this is that there&#8217;s no need for a warrant, probable cause, or even notice of a search &#8212; you can&#8217;t fight a seizure before it happens, but only after the fact.</p><p>Platform as a Service (PaaS) is the model of having a common development platform provided, yet allowing people to customize their applications.  This is the model of Google AppEngine, Force.com, and (maybe) Windows Azure.  (Azure is a unique case, kind of halfway between PaaS and IaaS; I&#8217;ll come back to this.)  This section of the presentation was rather odd, as they really looked at the common web vulnerabilities (CSRF, XSS, SQL injection) and investigated how the platform protected you from them.  In short, the answer is that they don&#8217;t.  Some of the platforms have some inherent protection available (e.g. Windows Azure apps are typically ASP.NET, which has some built-in XSRF protection via ViewStateUserKey, XSS protection via encoders, and SQL injection via LINQ), but it&#8217;s up to the developer to actually use them.  I found this section somewhat lacking, because it wasn&#8217;t really about the cloud platforms at all, but rather the common web technologies sitting on them.</p><p>The Infrastructure as a Service (IaaS) model is that taken by Amazon EC2 and similar services.  It provides virtual machines with short-lived instances, non-persistent local storage, and available helper services.  Though the presenters thought of Azure as very much a PaaS model, I think it&#8217;s a little fuzzier here &#8212; while Azure does not allow you to choose an operating system (the Windows Azure OS runs on every VM), it does not constrain you to anywhere near the degree of Google AppEngine or Force.com, as you can run arbitrary native code on it.  It would be impossible to use AppEngine or Force.com to run anything but a web site; Azure is like EC2 in that it could be used for any flexible computing task, not just web sites.</p><p>The problems with IaaS services are usually hypervisor flaws or problems in the helper services.  However, they brought up something very new here that I don&#8217;t think any of the current cloud providers consider &#8212; lack of entropy.  Virtual hardware has mostly deterministic timings &#8212; input events don&#8217;t exist and block device events are abstracted.  Thus, entropy is generated very slowly if at all.  What&#8217;s more, in the case of Amazon EC2, since OS images are available to everyone, an attacker can get a copy of the stored entropy pool you&#8217;re using (which will never update after the image is originally created, thus depriving the system of another source of entropy) and eliminate it as well.  The net result of this is that pseudo-random number generators &#8212; even cryptographically strong ones &#8212; are unreliable and may be predictable.  This attack may or may not be practical given the specifics of the system in question, but for now you may not want to build your online casino or public key infrastructure in an IaaS environment!  Cloud providers may actually have to have random number generation as a helper service as well, supported by <a
href="http://en.wikipedia.org/wiki/Hardware_random_number_generator">quantum hardware</a>.</p><p>Next, <a
href="http://www.blackhat.com/html/bh-usa-09/bh-usa-09-speakers.html#Grossman">Jeremiah Grossman and Trey Ford</a> presented a sequel to last year&#8217;s talk on &#8220;making money the black hat way.&#8221;  Essentially, it was a survey of interesting hacks-for-profit that have been carried out recently.  They noted that hacking activity is up this year (layoffs create more hackers?) and that 69% of attacks are discovered only because a 3rd party tells the company it&#8217;s been hacked.</p><p>Some of the interesting ones: eBay gave away 1000 items for $1 in a &#8220;Holiday Doorbusters&#8221; promotion.  However, almost 100% of them were bought by bots, which was evident because the items were purchased before the item description page was even viewed.  StrongWebmail.com had a contest to give $10,000 to whoever could hack into the CEO&#8217;s webmail account; rather than attacking the servers, the winners of the contest sent the CEO phishing mail with an XSRF in it that stole the contents of the account.  (Amusingly, they got him to open the mail by labeling it &#8220;I think I won.&#8221;)  Grossman &amp; Ford also brought up cookie-stuffing, a type of affiliate fraud that&#8217;s been around for many years; it&#8217;s a well-known technique in the affiliate marketing world (basically you spoof the referrer while iframing the advertiser&#8217;s site on your site, then drive traffic to your site in ways that would not please the advertiser if they knew about it) but was apparently new to most of the BlackHat audience.  They also brought up the technique of using embedded site search to fake authority links, another well-known &#8220;black hat&#8221; SEO technique.  Marketers have apparently also begun spamming Google Maps with fake businesses, so as to come up first in &#8220;local searches&#8221; with their web-based and not-remotely-local businesses.  A man in Britain used Google Earth to find all the lead roofs in London, then steal the lead tile in the middle of the night.</p><p>Some of the more ambitious hacks were more intriguing, though.  One man discovered that you could order &#8220;advance replacements&#8221; for broken iPods from Apple just by giving them a credit card number as collateral; he used low-balance anonymous Visa gift cards to get 9,000 iPods.  Another group put their garage band music in the Amazon and iTunes stores using Tunecore, then bought hundreds of downloads of their own album with stolen credit cards (thus getting a big check from Tunecore.)  One thing to note is that these people got caught only because <em>they weren&#8217;t trying not to</em>.  The iPod guy shipped all 9,000 to his home address; the Tunecore fraud was so blatant as to get this garage band&#8217;s album onto Amazon and iTunes top-10 bestsellers.</p><p>Finally, in South America, the system for getting logging permits for the Amazon rain forest was put online.  An investigation discovered that <em>107 different logging companies</em> had hired hackers to compromise the site, which was full of common web vulnerabilities.  All told, 1.7 million cubic feet of lumber were smuggled out of the country.  Scary permit systems in the United States that are now protected only by a web site: entrance visas, hazardous material transport, and open burning permits.</p><p>Next, <a
href="http://www.blackhat.com/html/bh-usa-09/bh-usa-09-speakers.html#Meer">Haroon Meer, Nick Arvanitis, and Marco Slaviero</a> presented a talk on &#8220;Clobbering the Cloud.&#8221;  This SensePost talk covered much of the same material as the iSec Partners talk earlier in the day.  Their primary risk factors for cloud computing were as follows: lack of transparency from cloud providers (opaque EULAs), people don&#8217;t want to store regulated data in the cloud, vendor lock-in especially if the vendor goes out of business or stops offering the service, availability concerns (not just servers being down, but also things like password lockout from DoS attacks), monoculture issues (worms and cascading compromise are a big concern when you have thousands of perfectly-identical boxes), and trust in the cloud provider &#8212; you have to trust your cloud provider implicitly not to lose your data or have system failures.  In addition, there&#8217;s the problem that the cloud is available to the bad guys, too &#8212; cloud boxes can be used for click fraud, DoS, or spamming (for a short time Amazon EC2 was the net&#8217;s #1 spammer.)  Finally, the security of your environment is all in the hands of the account owner, who authenticates with nothing more than a password, and is (in most companies) probably a non-technical executive.  Breaking into the CIO&#8217;s email now makes you the global administrator of the company&#8217;s entire infrastructure.</p><p>The presenters then went into more detail about attacks on Amazon Web Services (EC2, S3, SQS, and DevPay) in particular.  I can understand why they chose AWS; due to its flexibility, it&#8217;s certainly the most fun of the cloud services for a hacker to play with (though Windows Azure is getting there, too.)  EC2 is based on a modified Xen hypervisor, and supports running any OS you want that can run in that environment.  Amazon provides 47 OS images, but users have contributed over 72,000 more, and an EC2 user can choose to boot any of them.  Sometimes user images have interesting things in them, like other user&#8217;s EC2 credentials, for example.</p><p>Scanning EC2 is prohibited, but you can start up one of the images and scan it yourself via an SSH tunnel (or even have the machine scan itself.)  They found 646 Nessus critical vulns in Amazon&#8217;s public images; you can also steal Amazon&#8217;s own Windows activation keys off their images.  The DevPay system is interesting; it&#8217;s supposed to allow a user to make an image then charge other users for its use (e.g. to resell an application on EC2.)  However, the presenters found you could get a DevPay image and modify its ancestor info (stored in the image itself) so as to credit use of it to you rather than the original author, then reregister it for others to use.</p><p>Simply putting up pre-owned (pun intended) images for others&#8217; use can be an attack on AWS.  If you prop up a box with a good name (e.g. &#8220;Ubuntu 9.04 Standard Image, All Patches&#8221;) and a low-numbered ID (so it shows up at the top of the list), and people will use your image to host their apps!  You can get a low-numbered ID simply by registering repeatedly; since it&#8217;s a hash, eventually you&#8217;ll get lucky and have one start with zero.  You can only have 20 images per account, but you can create 20 accounts in 3 minutes, so there&#8217;s no effective limit.</p><p>After that talk, I went over to the mobile track to hear <a
href="http://www.blackhat.com/html/bh-usa-09/bh-usa-09-speakers.html#Burns">Jesse Burns</a> talk about Android.  Android interests me because I&#8217;d really like a phone that behaves like a computer (i.e. a device I own) rather than like a toy the phone company is reluctantly allowing me to touch, and Android&#8217;s open-source nature has real potential to give me that.  It&#8217;s not that I trust Google any more than any other wireless provider, just that the platform seems much more hackable and thus inherently harder to control.</p><p>Android has a dual security model &#8212; Android permissions on various privileges, plus Linux permissions on the filesystem.  Applications have their own UIDs/GIDs and are thus somewhat isolated from each other. A package (application) is made up of Activities (GUIs,) Services (background tasks,) Broadcast Receivers (event handlers,) Content Providers (databases,) and Instrumentations (used for testing.)  For interprocess communication, there are Intents, which are sets of name-value pairs with routing information.  Applications are written in Java, but they&#8217;re not applets (i.e. no Java sandbox.)</p><p>Available attack surfaces for a malicious app include other apps, system services under privileged accounts (like the clipboard or the surfaceflinger, which draws the UI and owns the screen,) the binder (the inter-process communication system, similar to domain sockets,) and anonymous shared memory.  There are a variety of tools available &#8212; one can just install a bash shell on Android (either interactively or over the wire or network,) use logcat to look at logs, view Android system properties, check the /proc and /sys filesystems, run dmesg to get kernel output, and all the usual Linux attacks.  There&#8217;s also a file in /data/system/packages.xml that contains data about every installed app, including the location of the app and its manifest.  /proc/binder contains a transaction log of the inter-process communication, and /proc/binder/proc contains data of all the processes themselves.</p><p>Another interesting detail about Android is the &#8220;secret code&#8221; handler.  When you dial *#*#somenumber#*#*, this triggers the secret code handler for that number, which can do pretty much whatever an app wants it to do.  The only secret codes on &#8220;stock&#8221; Android are 8351 and 8350, which turn voice dialer logging on and off, respectively.  However, wireless providers may add additional codes &#8212; the presenter found some in T-Mobile&#8217;s MyFaves app, for example.  Finally, the presenter had a series of Android hacking apps he&#8217;d developed &#8212; Manifest Explorer (to view the system manifest and the manifest of each app, such as to see what events they react to,) Package Play (to see the parts of a package or to directly activate Activities,) Intent Sniffer (to view Intents as they&#8217;re routed at runtime,) and Ill Intent (an Intent fuzzer.)</p><p>The last presentation of the day was <a
href="http://www.blackhat.com/html/bh-usa-09/bh-usa-09-speakers.html#Schneier">Bruce Schneier</a>, whose talk was entitled Reconceptualizing Security.  Mostly, he gave the same speech he always does, about fear, psychology, security vs. security theater, why we mis-estimate risk, etc.; pick up a copy of <em>Beyond Fear</em> or <em>Secrets and Lies</em> if you want the details.  However, during Q&amp;A he did also talk about the attack on AES-256 that was just demonstrated.  It&#8217;s a feasible attack on 10 rounds of AES-256 (out of 14,) in 2<sup>42</sup> time.  It&#8217;s a related-key attack that works only on 256-bit keys (not on shorter ones,) so there&#8217;s no reason to panic right now, but it does show that the margin of safety on AES is smaller than we thought.  There may need to be a Double-AES in the same way Triple-DES was devised as a stopgap until a new cryptosystem is developed.  Alternately, the standard could be changed to increase the number of rounds, but that would require replacing or updating all the AES-based crypto hardware out there.</p><p>And that wrapped up BlackHat 2009.  Overall, there was nothing as Earth-shattering as last year&#8217;s DNS exploit, though it turns out that the SSL issues are pretty nasty.  After BlackHat, I hit the Microsoft Security Researcher Appreciation Party at Christian Audigier, which was actually a pretty good party this year without any of the problems of previous years.  It&#8217;s only drawback was that it only ran two hours.  However, at this point DefCon festivities had begun, so there was still plenty going on; my next post will get into DefCon 17.</p><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2009/08/13/blackhat-2009-day-2/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>BlackHat 2008, Day 1</title><link>http://perimetergrid.com/wp/2008/08/06/blackhat-2008-day-1/</link> <comments>http://perimetergrid.com/wp/2008/08/06/blackhat-2008-day-1/#comments</comments> <pubDate>Thu, 07 Aug 2008 06:21:10 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[attacks]]></category> <category><![CDATA[hardware]]></category> <category><![CDATA[industry]]></category> <category><![CDATA[mitigations]]></category> <category><![CDATA[SOA/XML]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/?p=63</guid> <description><![CDATA[Today was the first day of this year&#8217;s BlackHat Briefings in Las Vegas. The biggest security conference of the year, it&#8217;s always an interesting place to be and often involves the release of new and previously unknown exploits. The keynote speaker was Ian Angell, of the London School of Economics, who was speaking, ostensibly, about [...]<p></p> ]]></description> <content:encoded><![CDATA[<p>Today was the first day of this year&#8217;s <a
href="http://www.blackhat.com/">BlackHat Briefings</a> in Las Vegas.  The biggest security conference of the year, it&#8217;s always an interesting place to be and often involves the release of new and previously unknown exploits.</p><p>The keynote speaker was <a
href="http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Angell">Ian Angell</a>, of the London School of Economics, who was speaking, ostensibly, about risk.  He is described as having &#8220;very radical and constructive&#8221; views on the subject.  His primary point was that when you put together a bunch of parts into a system, it often goes off the rails &#8212; every action leads not just to a reaction, but a loop wherein the unintended consequences feedback into themselves.  This makes control very difficult (he brought up Goodhart&#8217;s Law, &#8220;any observed statistical regularity will tend to collapse when pressure is placed on it for control purposes.)  The IT industry is obsessed with providing more information, but omnipresent computer screens distract and cause errors in judgment &#8212; people come to rely entirely on the system, suspending independent thought and just blindly following the machine, while simultaneously missing details in the information overload.</p><p>Humans are obsessed with categorization &#8212; the attempt to treat the similar as identical.  We deal with complexity by dropping less-significant relationships from our mental models &#8212; but those relationships still exist, and this creates uncertainty and risk.  Not just computer systems have this problem; bureaucracy is the most effective way to deal with <em>normal </em>situations, but as anyone who has dealt with one knows, it is terrible at dealing with anything out of the ordinary.</p><p>However, for all this, I found Professor Angell basically useless.  He&#8217;s comes across as very smart and amusing, but he points out problems without the slightest inkling of a solution.  Yes, systems create complexity, from which comes risk.  Shall we then abandon IT security in favor of a hunter-gatherer society?   I don&#8217;t think I could get an answer on that from him.</p><p>The next presentation was by <a
href="http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Dhanjani">Billy Rios and Nitesh Dhanjani</a> on the phishing culture and community.  They observed some phishing code and noticed common strings, and thought to do a Google search on them with the intent of finding other places that phishing code was in use.  Instead, they found thousands of credit card numbers, SSNs, and other identity information all over the Internet, in public forums, searchable on Google.  The phishers throw around identities constantly, just to prove their authenticity.  Meanwhile, they phish each other constantly &#8212; most of the phishing kits they found had back-doors in them or secret code to email a copy of all identities captured to their author.  They&#8217;re not hackers at all; they generally know just enough to upload a kit someone else wrote to a site someone else hacked and collect the information.  Also, ironically, the Google anti-malware blacklist turns out to be a fantastic way to find already-hacked sites to put phishing kits on &#8212; it&#8217;s full of Administrative logins and passwords.</p><p>This was followed by Dan Kaminsky&#8217;s DNS update, which I&#8217;m going to discuss in a separate post; for all its hype, I think it lived up to it.  Faulty DNS is a Really Bad Thing.</p><p><a
href="http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Dhanjani">Michael Ossmann</a> had a presentation to give on software radio and the future of wireless security.  Unfortunately, it was long on software radio and short on security.  He mostly spoke about the <a
href="http://www.ettus.com/">USRP</a>, a piece of open-source hardware (also available pre-built for $700) that gives full software radio capabilities to a PC.  It can capture a significant amount of bandwidth in a range up into the 2.4 GHz band.  Ossmann&#8217;s demonstration of this involved doing packet-capture on Project 25 radios, and a replay attack on a remote-control toy.  Essentially, command-line tools can capture radio on most frequencies, and then (as it&#8217;s just a bitstream) DSP techniques can manipulate it arbitrarily.</p><p>While his speech had very little about security in it, the implications are significant in the long term.  Making a good radio means either using very expensive analog components, or using cheap analog components and a lot of CPU power.  In a few years, &#8220;a lot of CPU power&#8221; will be available on your phone, just given the rate at which CPUs improve.  Wireless (802.11) security didn&#8217;t become a big issue as soon as it was possible to crack WEP (i.e. almost instantly) &#8212; it became a big issue when wireless cards with raw packet injection and monitor mode started to be cheap and ubiquitous.  Wireless hacking takes a $700 USRP now; it&#8217;ll take a cell phone in 5 years (since as CPUs get more powerful, software radio gets cheaper than hardware, it&#8217;s only a matter of time until radios in phones and such are pure software, and thus reprogrammable.)  You can see the beginning of this in <a
href="http://wiki.thc.org/gsm">THC&#8217;s GSM Project</a>.  If the cell phone network finds itself, security-wise, as badly off as 802.11 is today, it could be a frightening thing.<a
href="http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Stamos"></a></p><p><a
href="http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Stamos">Alex Stamos</a> and company from iSec Partners had a presentation on Rich Internet Application frameworks.  Rich Internet Applications aren&#8217;t well-defined, but they contain one or more of the following: AJAX UIs, local storage, an offline mode, running outside the browser, access to hardware resources, or the general appearance of a thick-client app.  Adobe, Microsoft, and others have created various apps and tools to help developers create these rich web apps.</p><p>Adobe AIR is the most full-featured of them &#8212; an AIR application runs in a full desktop runtime based on Flash.  There&#8217;s no sandboxing &#8212; a locally-installed AIR app has the full powers of the user, like an ActiveX control.  You can develop them in Flash, Flex, or JavaScript.  However, AIR apps can be launched from the web by ordinary Flash files (assuming the app is already installed on your computer.)  There is a remote mode, for running directly off the web with reduced privileges, but there&#8217;s a method for communicating and even passing objects between the local (full-trust) and remote modes.  Overall, it&#8217;s a scary thing, in the way that EXEs are scary (i.e. it&#8217;s insecure, but not any more insecure than everything else.)</p><p>Microsoft&#8217;s Silverlight is rather more restricted; it&#8217;s closer to Flash than to AIR.  Silverlight apps can be written in XAML with any .NET language, and use a scaled-down .NET runtime.  There is socket support, like Flash, but it is limited to certain sockets (4502-4534) and requires a policy file (clientaccesspolicy.xml) on the target server, even if the target server is the same site it came from.</p><p>Google Gears is even less functional than Flash and Silverlight; it&#8217;s essentially running HTML and JavaScript from the local machine.  There is local storage, and data sync with an API and SQLite for relational-database-like storage.  Also, it has the ability to run processes in a threadpool outside the browser, so as not to get shut down by the browsers&#8217; tight-loop detection.  Bizarrely, it allows the app author to customize the installation warning dialog, making it quite easy to convince people to install weird Gears apps.  It would be good for distributed malware, like cryptanalysis.</p><p>Yahoo! Browser Plus is designed to make it easy to write browser plugins, which is kind of like making it easy to make bombs.  There are some things that shouldn&#8217;t be easy, because the less of them, the better, and browser plugins (almost all of which seem to be adware/spyware) are one of them.  BrowserPlus add-ons are initialized by an HTTP call to Yahoo!, and run with full trust.  It&#8217;s like ActveX with a built-in Ruby interpreter (an old, buggy one, even.)</p><p>Finally, Mozilla Prism is a site-specific browser with the browser UI stripped off.  Formerly known as WebRunner, it&#8217;s used to &#8220;desktopize&#8221; web apps.  The risk here is comparitively low, though the script has XPCOM privileges (basically, control over the browser itself, like a Firefox extension would have.)</p><p>You can also just use HTML5 for some rich functionality, like local storage.  There is DOM storage, allowing you to persist up to 5MB of data locally, as well as SQLite-based database functionality.  DOM storage is essentially the ability to save immense cookies that are subject to SQL injection attacks.  The W3C has had better ideas.  Also, unlike cookies, you can&#8217;t easily turn DOM storage off (there&#8217;s a Firefox about:config setting, but nowhere in the UI.)  As mobile devices bundle Webkit browsers (like Safari), they&#8217;ll be subject to this type of storage &#8212; it would be pretty easy to DoS a mobile device by writing dozens of 5MB cookies.</p><p>So, what does all this lead to?  A host of new security issues we never had to think about before, of course!   The RIA data stores are vulnerable to XSS &#8212; if your email or other personal data is in an AIR or Gears app, and someone gets an XSS on the sites the apps come from, they can steal your entire data store.  You can have SQL injection against JavaScript now, thanks to SQLite databases.  The same Flash-based XSS attacks we&#8217;ve seen now work on Silverlight and AIR as well.</p><p>On the bright side, they had some good prescriptive guidance for app developers:</p><ol><li>Don&#8217;t use predictably-named data stores</li><li>Parameterize SQL, even on local SQLite stores</li><li>Domain-lock sites if possible</li><li>Don&#8217;t use AIR when Flash/Flex/Silverlight/etc. will do fine</li><li>Let users opt out of RIA functionality</li></ol><p>Finally, <a
href="http://www.blackhat.com/html/bh-usa-08/bh-usa-08-speakers.html#Miller">Ty Miller</a> had some shellcode to show us &#8212; reverse DNS tunnelling staged-loading shellcode, in fact.  The trend in vulnerabilities has been toward client-side exploits of late, now that socket-based servers have been hardened significantly.  However, if you do buffer-overflow a client app and get it to execute shellcode, the challenge is often getting a connection back to the attacker.  Clients are often behind firewalls, proxies, NATs, or all three.</p><p>Of the common shellcode techniques (port binding, callback, find-socket, address reuse, download &amp; execute, and HTTP tunneling), only one (HTTP tunneling) works reliably with client apps &#8212; and Metasploit&#8217;s HTTP tunneling shellcode only works on IE6 with ActiveX enabled.  DNS tunneling (like Kaminsky&#8217;s OzymanDNS from 2004) would also get back &#8212; and even more reliably than HTTP, since it wouldn&#8217;t need to worry about authenticated proxies.</p><p>DNS gets through everything.  When you make a DNS request, it goes to your company or ISP&#8217;s DNS server, which forwards it on to a top-level server (like .com) and then to the DNS server that owns the domain name.  Practically everything makes DNS lookups (as Dan Kaminsky went into today), and nothing works if they&#8217;re blocked, so any computer is all but guaranteed to have DNS access.  With a malicious DNS server, you can actually tunnel arbitrary data through DNS.</p><p>Miller&#8217;s shellcode consisted of a tiny first stage which finds kernel32, creates pipes for STDIN and STDOUT, then makes an nslookup (yes, it shells out to nslookup) for a TXT record on the malicious DNS server.  The TXT record type can be extremely long, and the record it gets back contains the second-stage shellcode and a command to run.  The second stage shellcode runs the command, captures the output, and sends it back in fragmented DNS requests.  It then polls periodically for more commands to run.  The DNS requests all have a sequence number in them, guaranteeing that they don&#8217;t get cached and always get through.</p><p>He&#8217;s making his code available at <a
href="http://projectshellcode.com">projectshellcode.com</a>, a site where he hopes to focus shellcode research and start a collection.  I think this is of dubious value (unlike exploits, shellcode is not really very useful to security folks on the &#8220;good guys&#8217;&#8221; side most of the time), but it&#8217;ll be interesting to take a look at what he&#8217;s come up with.</p><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2008/08/06/blackhat-2008-day-1/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Two-Factor Auth for World of Warcraft</title><link>http://perimetergrid.com/wp/2008/06/30/two-factor-auth-for-world-of-warcraft/</link> <comments>http://perimetergrid.com/wp/2008/06/30/two-factor-auth-for-world-of-warcraft/#comments</comments> <pubDate>Mon, 30 Jun 2008 21:25:25 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[attacks]]></category> <category><![CDATA[authentication]]></category> <category><![CDATA[hardware]]></category> <category><![CDATA[passwords]]></category> <category><![CDATA[products]]></category> <category><![CDATA[risk]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/?p=51</guid> <description><![CDATA[Blizzard Entertainment, makers of the phenomenally-successful multiplayer game World of Warcraft, have introduced two-factor authentication for logging into the game.  For $6.50, they&#8217;ll sell you a dynamic password keychain token called the Blizzard Authenticator, which looks much like the RSA keyfobs many in the IT industry use to log into their corporate VPNs. It may [...]<p></p> ]]></description> <content:encoded><![CDATA[<p>Blizzard Entertainment, makers of the phenomenally-successful multiplayer game World of Warcraft, have <a
href="http://www.blizzard.com/us/press/080626-auth.html">introduced two-factor authentication for logging into the game</a>.  For $6.50, they&#8217;ll sell you a dynamic password keychain token called the <a
href="http://www.blizzard.com/store/details.xml?id=1100000182">Blizzard Authenticator</a>, which looks much like the RSA keyfobs many in the IT industry use to log into their corporate VPNs.</p><p>It may seem silly to use two-factor auth for a video game.  However, with 12 million players, World of Warcraft is a big business, and stolen accounts are worth money.  Logging into someone else&#8217;s account, looting it for virtual money and supplies, then selling them on the <a
href="http://www.mmoex.com/">open market</a> can easily net $50 per account, more for particularly lucrative ones.  What&#8217;s more, the account itself can be sold to offshore &#8220;gold farmers&#8221; who have a constant need for accounts as Blizzard revokes theirs for Terms of Service violations.  Considering that a stolen credit card number is usually worth only about $10, WoW accounts are actually pretty good targets for theft.</p><p>People steal these accounts via installing old-fashioned key loggers &#8212; Trojan Horses attached to downloaded software that monitor the user and steal their password when they log into WoW.  Generally these keyloggers are attached to fake WoW cheat programs with names like &#8220;<a
href="http://www.youtube.com/watch?v=xldumHDIHeo">WoW stat changer</a>&#8220;, or modern recreations of some early real cheats that no longer work (the &#8220;speed hack&#8221; and &#8220;teleport hack.&#8221;)  Aspiring cheaters download and install these applications and are disappointed to find they don&#8217;t work, but don&#8217;t realize that their account has been stolen when the app was run.</p><p>The best mitigation to this would, of course, be not to download dubious cheat programs for World of Warcraft.  However, since downloading and installing UI add-ons is a normal activity by WoW players, it is perhaps a bit much to expect players to know the difference between a safe UI add-on (written in Blizzard&#8217;s LUA scripting language) and an unsafe one (with real executable code.)  So Blizzard offers a two-factor token, which renders a stolen password useless &#8212; since the dynamic passwords change every minute and are not reusable, keyloggers can no longer steal accounts.  If you&#8217;re a World of Warcraft player who downloads &amp; runs a lot of not-very-trustworthy Internet software, $6.50 is a small price to pay for security.</p><p>The ironic thing about this is that most <em>banks </em>won&#8217;t offer this level of security to their customers.  The loss of my World of Warcraft account would be a minor inconvenience (Blizzard keeps backups, after all, and can &#8220;roll back&#8221; a player&#8217;s account to a previous state upon request), while the theft of bank accounts and credit cards would be much more serious.  Yet my bank offers only passwords for protection, and other <a
href="http://perimetergrid.com/wp/2007/10/30/passwords-arent-secure-two-factor-auth-on-a-credit-card/">banks&#8217; &#8220;two-factor authentication&#8221; isn&#8217;t really</a> (&#8220;something you know&#8221; and &#8220;something else you know&#8221; is not two factors, it&#8217;s one factor repeated twice.)  Banks usually cite cost as the reason, and at the $90 for an RSA token, that sounds reasonable &#8212; but if Blizzard can put out their own tokens at $6.50, banks could, too.  The real reason is that the banks do not want to inconvenience their customers by making them carry around an additional object for access to their accounts.  For the most part, customers care more about convenience than security, and many customers would be locked of their accounts by losing a token than would be saved from theft.  (For that matter, customers don&#8217;t even know it when their bank account <em>isn&#8217;t </em>stolen because of a security measure, so they have no perceived benefit at all.)</p><p>Blizzard&#8217;s answer to the convenience/security tradeoff is to give customers the option &#8212; you can get an Authenticator if you want one, or just use passwords otherwise.  Banks don&#8217;t want to do this, though, because it would make password-only customers <em>feel insecure</em>.  The availability of a token might make them realize how unsafe a password alone is, and they might decide to forgo online banking altogether.  This is the last thing banks want &#8212; online banking is much cheaper than tellers.</p><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2008/06/30/two-factor-auth-for-world-of-warcraft/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Surveillance and Ubiquity</title><link>http://perimetergrid.com/wp/2008/04/10/surveillance-and-ubiquity/</link> <comments>http://perimetergrid.com/wp/2008/04/10/surveillance-and-ubiquity/#comments</comments> <pubDate>Thu, 10 Apr 2008 18:07:08 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[anonymity]]></category> <category><![CDATA[hardware]]></category> <category><![CDATA[legal]]></category> <category><![CDATA[privacy]]></category> <category><![CDATA[risk]]></category> <category><![CDATA[society]]></category> <category><![CDATA[terrorism]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/?p=45</guid> <description><![CDATA[HexView has an article about tracking vehicles with RFID tire pressure monitors. The devices are found in tires and transmit tire pressure to the engine control module, which sounds innocuous enough, but to prevent modules from reading neighboring cars&#8217; tires by accident, they also transmit a unique ID. Thus, you can follow a car around [...]<p></p> ]]></description> <content:encoded><![CDATA[<p><a
href="http://www.hexview.com/sdp/node/44">HexView</a> has an article about tracking vehicles with RFID tire pressure monitors.  The devices are found in tires and transmit tire pressure to the engine control module, which sounds innocuous enough, but to prevent modules from reading neighboring cars&#8217; tires by accident, they also transmit a unique ID.  Thus, you can follow a car around town based on its ID, turning tire pressure monitors into tracking devices.</p><p>RFID devices are becoming more and more common, and this trend will continue &#8212; they&#8217;re too convenient for many purposes for the security risks around them to stop them.  You may not want every consumer good you buy to be tagged with an ID that lets people watch your shopping from 100 yards away, but the scenario of being able to check out at the grocery store by instantaneously scanning every item in your cart simultaneously is too compelling for people to resist.</p><p><a
href="http://www.schneier.com">Bruce Schneier</a> has a post on <a
href="http://www.schneier.com/blog/archives/2008/04/the_ineffective.html">the ineffectiveness of security cameras</a>, but while calling them ineffective it does note that criminals moved their crimes to somewhere the cameras couldn&#8217;t see.  This may be &#8220;ineffective&#8221; for a government camera system designed to deter crime, but it&#8217;s <em>precisely</em> what privately-owned security cameras are meant to do &#8212; make a target unappealing so criminals go elsewhere.  This actually shows that cameras <em>do</em> deter crime&#8230; but only where they can see it.</p><p>However, both of these technologies can have pernicious effects, too.  The HexView article points out that you could use the RFID tire monitors to commit murder &#8212; set a bomb with a radio trigger that goes off when the &#8220;right&#8221; car drives over it.  It would also be just as useful to private investigators spying on citizens as it is to law enforcement chasing down criminals.  And speaking of law enforcement, these cameras create a dangerous imbalance in their favor &#8212; the camera evidence is all under their control, and thus can come up when needed to prove a perpetrator&#8217;s guilt yet be conveniently lost in cases of police brutality, abuse of power, corruption etc.</p><p>This is an interesting time for surveillance &#8212; police and government surveillance ability is skyrocketing (London is practically blanketed in cameras at this point, as the British seem much less uncomfortable with them than Americans are) but it is still largely in the hands of authority figures.  This is dangerous because of how fast the change is coming &#8212; our criminal laws and sentencing structures are based on the principle that <em>most criminals get away with it</em>.  A $75 fine for speeding seems pretty reasonable, but what if that fine were levied every time a car hit 1 mph over the speed limit?  Most of us would get fined a dozen times a day, every day, despite not even meaning to speed, because our behaviors are based on the idea that we probably won&#8217;t get caught and that even if we are police are unlikely to punish us for very minor transgressions.  If people were caught for speeding <em>every time</em>, and fined <em>every time</em>, a $75 fine would be absurd &#8212; the fine could probably be under $1 and still bring in a few hundred dollars a month from every citizen.  What is the right legal structure here?  I can see two possibilities:</p><ul><li>Raise the speed limits to the speeds we really think no one should exceed, and continue to fine every time.  Maybe you should get charged every time you exceed, say, 85 on a highway or 55 on a city street.  Set them high enough that there&#8217;s no leeway required.</li><li>Leave the speed limits where they are but set the fine really low, say a $0.25 per minute of speeding.  This makes speeding discretionary &#8212; you can obey the law, or not, but if you choose not to you pay a penalty.  This is a fundamental change in the whole idea of crime and punishment, and itself has some pernicious consequences &#8212; it means that a certain income level can render you &#8220;above the law,&#8221; which is not a good thing.  Obviously some crimes (such as murder) should not be treated as discretionary, but for traffic violations it could make sense.</li></ul><p>It&#8217;s not just traffic laws that are like this; consider the War on Drugs.  If every person who ever smoked marijuana went to prison, we would have a nation of felons &#8212; there&#8217;d be few people left who could vote, get security clearances, hold most jobs, etc.  The RIAA lawsuits against file-sharers are a good example of what happens when technology that catches everyone gets used to enforce laws designed under the assumption that only the worst and most flagrant criminals will be caught &#8212; people being hit by millions of dollars in fines for using technology to do something that wouldn&#8217;t even raise an eyelash if done by old, physical means (e.g. posting a song on BitTorrent vs. handing it to a friend on a cassette tape.)</p><p>A surveillance society needs a different kind of jurisprudence &#8212; one that sets punishments that fit the crime even if applied every time.  On the bright side, actually doing this would lower crime rates tremendously due to the psychology of criminals.  Escalating punishments does little to deter crime because criminals are risk-seekers &#8212; they do not expect to get caught.   Even a small punishment can be a strong deterrent if applied every time &#8212; if criminals are usually caught, such that all criminals have some first-hand experience with being caught and punished, it would break this idea.  On the not so bright side, a surveillance society must have very liberal laws to avoid being a police state &#8212; our current legal system, applied to everyone every time, would result in tyranny.  We all break 10 laws a day, it&#8217;s only sloppy enforcement that allows us to live our lives.  Unfortunately, the technology for ubiquitous enforcement will come well before the legal system changes to make it livable do.</p><p>What&#8217;s interesting to me is what will happen when surveillance becomes even more common: that is, when it is no longer monopolized by authority.  This has already started with cellular phones.   Almost everyone carries around a device which, while primarily for communication, contains a camera and often a voice recorder and videocamera as well.  Everyone is equipped to carry out impromptu surveillance at any time.  Devices like <a
href="http://www.thinkgeek.com/gadgets/electronic/a0f3/">these glasses from ThinkGeek</a> (found via <a
href="http://feeds.feedburner.com/~r/boingboing/iBag/~3/266129101/camera-glasses-on-sa.html">BoingBoing</a>) coupled with the rapidly falling cost of storage capacity will change this to everyone <em>actually</em> carrying out impromptu surveillance <em>all </em>the time.  This will have a chilling effect on human behavior at first &#8212; would you act differently if you knew everyone around you was videotaping everything you did?  Everything you say will, indeed, be able to be used against you, and not just in a court of law.  However, look at what young people put on MySpace and Facebook these days &#8212; the next generation <em>does not have the assumption of privacy</em>.  They&#8217;ve grown up in a world where they know everything goes on a permanent record, and have simply accepted it.  Sure, they&#8217;ll be occasionally shocked by it (e.g. the first time their party photos on MySpace disqualify them from a job), but the knowledge of permanence has not stopped them from sharing themselves, and eventually the rest of us will adjust, too.</p><p>Consider what the democratization of surveillance does to government power.  When we&#8217;re all recording, someone is watching the watchers.  Corruption, abuse of power, etc. all rely on the fact that authority figures can get away with crimes because they are more reliable witnesses in court than their victims are.  When everything is on the record &#8212; and not just the official record, but <em>everyone&#8217;s </em>record &#8212; police and government officials become compelled to act within the law.  While this may not be much of an impediment in truly totalitarian societies like China where the courts are as corrupt as everyone else, it&#8217;s a very strong bulwark of freedom in any society with an independent judiciary and a liberal tradition like the Untied States and Europe.  This is the next generation of surveillance &#8212; everyone sucking in light and sound from their glasses, or lapel pens, or even <a
href="http://uwnews.org/article.asp?articleid=39094">contact lenses</a>, recording every moment of their lives on multi-terabyte devices that fit in their pockets.  It&#8217;s probably only 5-7 years away, and it washes away the current problems of a surveillance society and replaces them with new ones.</p><p>I think this cycle will continue for some time.  After all, once we&#8217;re past the era of democratized surveillance, computer graphics and artificial intelligence technology will improve to the point that ordinary people can modify their recordings to create perfect video of events that never happened, indistinguishable from the real thing.  What happens to recordings in law courts then, when they cease to be reliable evidence and become hearsay?  Tapes will become the new eyewitnesses, known to be unreliable and requiring corroboration from others.  When it becomes truly easy to make forged video, perhaps we will have emerged from the surveillance society from the other side &#8212; why bother to record anything when there&#8217;s no way to tell if it&#8217;s real?  Sometimes the only way out is through.</p><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2008/04/10/surveillance-and-ubiquity/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Whole-Disk Encryption Cracked</title><link>http://perimetergrid.com/wp/2008/02/28/whole-disk-encryption-cracked/</link> <comments>http://perimetergrid.com/wp/2008/02/28/whole-disk-encryption-cracked/#comments</comments> <pubDate>Thu, 28 Feb 2008 18:19:10 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[attacks]]></category> <category><![CDATA[crypto]]></category> <category><![CDATA[hardware]]></category> <category><![CDATA[mitigations]]></category> <category><![CDATA[physical security]]></category> <category><![CDATA[products]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/2008/02/28/whole-disk-encryption-cracked/</guid> <description><![CDATA[Early this week, some researchers at Princeton University&#8217;s Center for Information Technology Policy released a fascinating video of whole-disk encryption being cracked quite quickly and easily. Whole-disk encryption products &#8212; such as PGP Whole Disk Encryption, TrueCrypt System Encryption, and Windows Vista&#8217;s BitLocker &#8212; work by encrypting the entire hard disk with a symmetric key, [...]<p></p> ]]></description> <content:encoded><![CDATA[<p>Early this week, some researchers at Princeton University&#8217;s Center for Information Technology Policy released a <a
href="http://citp.princeton.edu/memory/">fascinating video</a> of whole-disk encryption being cracked quite quickly and easily.</p><p>Whole-disk encryption products &#8212; such as <a
href="http://www.pgp.com/products/wholediskencryption/">PGP Whole Disk Encryption</a>, <a
href="http://www.truecrypt.org/docs/?s=system-encryption">TrueCrypt System Encryption</a>, and <a
href="http://www.microsoft.com/windows/products/windowsvista/features/details/bitlocker.mspx">Windows Vista&#8217;s BitLocker</a> &#8212; work by encrypting the entire hard disk with a symmetric key, save for a small loader.  When the computer is powered on, the loader prompts the user for a password or other authenticator (like a smart card or a certificate on a USB keyfob), which is used to decrypt the key.  Assuming the correct authenticator is provided, the key is decrypted and then the OS is booted from the encrypted drive.  The key remains in memory until the machine is powered off, since continuous access to the key is required to access the drive.</p><p>The purpose of whole-disk encryption is to protect against an attacker bypassing all of the operating system&#8217;s defenses (logins &amp; passwords, filesystem ACLs, etc.) by simply pulling out the hard disk and putting it in another computer (or, equivalently, booting up a LiveCD on the system) such that the operating system isn&#8217;t loaded at all.  Instead, the drive is mounted into an OS the attacker controls, where he has the ability to change ACLs, bypass logins, etc.  With whole-disk encryption, you can&#8217;t do this &#8212; even if you steal a laptop, without the boot password the entire drive contains nothing but a useless encrypted bitstream.</p><p>(As a side note, Vista BitLocker has a mode in which the symmetric key is stored in the TPM of the laptop, so no boot password is required.  At first this seems useless &#8212; why encrypt if decryption is automatic? &#8212; but it does provide protection against simply stealing the hard disk or booting into another OS.  The OS being booted must be in that specific computer, as only it has the TPM, and must be BitLocker-aware and capable of getting the key from the TPM.  It&#8217;s not completely secure in the stolen-laptop scenario, but neither is it useless.)</p><p>The Princeton group&#8217;s attack on whole-disk encryption relies on a little-known fact &#8212; computer memory (DRAM) is not wiped out when the system is powered off.  Rather, it becomes unreliable, decaying over a period of seconds to minutes as it gets randomized bit by bit.  It turns out that if cooled to a very low temperature, this decay is slowed considerably, to the point of being stable for tens of minutes.  Thus, the attack is as follows: get access to a laptop that is <em>currently operating </em>(so that the whole-disk encryption key is in memory), spray the RAM with an inverted compressed air can to cool it to -50 degrees Celsius, and power the system off.  Either move the RAM to a system with a custom OS, or attach an external drive to the system and boot off that.  The custom OS boots with a minimal memory footprint and then copies everything from RAM to a file on disk.  Thus, in less than a minute a &#8220;snapshot&#8221; of RAM has been taken.  This snapshot can then be inspected to locate prospective cryptographic keys and try them on the target drive.  Some knowledge of the particular whole-disk encryption product being used would be needed to find the exact spot in memory where the key is, and some error-correction techniques must be used in case a bit or two has been flipped, but it reduces the problem from cryptographically impossible to something that can be cracked in a few minutes or at worst hours.</p><p>So is this the end of whole-disk encryption?  No, not at all.  First of all, whole-disk encryption still successfully protects computers that are powered off (or in hibernation) &#8212; in that state, the computer does not have a copy of the encryption key available to it until the user re-enters his password.  In most stolen-laptop scenarios, the computer isn&#8217;t running at the time!  Whole-disk encryption is still a critical mitigation in the case of portable computers containing confidential data, and enterprises and government agencies would do well to implement it.  Of course, the best mitigation for this is to <em>not carry confidential data around on your laptop</em>.  It always strikes me as absurd when some government employee loses millions of confidential records on a stolen laptop &#8212; why did they need to have millions of records to carry around with them?  Do they really need all of those on-the-go?  It&#8217;s possible that in a minority of cases they do, and in those cases encryption is imperative (either of the whole-disk variety or on the file), but in most cases they&#8217;d have been better off leaving those files at the office.</p><p>Second, this is only a concern in <em>targeted attacks</em>.  If a typical thief rips off your laptop and discovers whole-disk encryption in place, they&#8217;re not going to execute this attack and get at your data.  Instead, they&#8217;ll just reformat the hard drive and sell the laptop as hardware.  The only reason someone would carry out this attack is if they knew that your laptop in particular contained valuable data and thus set out to steal it specifically.  In other words, if you&#8217;re a <em>spy</em>, and your laptop is classified TOP SECRET UMBRA, you have to worry about this attack.  If you have a typical corporate desktop and aren&#8217;t widely known to carry around your company&#8217;s entire credit card database, whole-disk encryption will probably protect you just fine.</p><p>There are several things that can be done, both by end-users and whole-disk encryption vendors, to mitigate this attack.  For end-users:</p><ul><li>If using Vista BitLocker, do not use the automatic mode &#8212; choose a mode that requires the use of a USB keyfob or a password to unlock.  This makes this attack ineffective when the system is entirely powered off.</li><li>Do not use sleep/suspend-to-RAM when the computer is not actually in your hands &#8212; either power off or use hibernate.  In a sleep or suspend-to-RAM scenario, the whole-disk encryption key is still maintained in memory and can be recovered.</li><li>If you have a few truly critical files, use file encryption (such as Windows&#8217;s Encrypted File System or PGP&#8217;s file encryption) on those files with a different password than that used on the whole-disk encryption.</li></ul><p>For makers of whole-disk encryption software:</p><ul><li>Provide an option to re-encrypt the symmetric key during sleep or screen-saver activity.  This would mean the the laptop would need to be stolen during a truly active state; however, it would also inconvenience the user with more frequent password prompts.</li><li>Consider the cryptographic key expansion mitigation described in the <a
href="http://citp.princeton.edu.nyud.net/pub/coldboot.pdf">Princeton research paper</a>.  It vastly increases the chances of even a small amount of decay of memory rendering the key unrecoverable.  Of course, it does so at the cost of performance (by requiring an additional hashing and XOR operation every time the key must be used.)</li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2008/02/28/whole-disk-encryption-cracked/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>OS-Based Mitigations Against Common Attacks</title><link>http://perimetergrid.com/wp/2008/02/04/os-based-mitigations-against-common-attacks/</link> <comments>http://perimetergrid.com/wp/2008/02/04/os-based-mitigations-against-common-attacks/#comments</comments> <pubDate>Mon, 04 Feb 2008 23:41:44 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[attacks]]></category> <category><![CDATA[hardware]]></category> <category><![CDATA[mitigations]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/2008/02/04/os-based-mitigations-against-common-attacks/</guid> <description><![CDATA[In my last post about finding a job in information security, when discussing application security, I off-handedly mentioned several mitigation technologies &#8212; GS, DEP, SAL, and ASLR. These are technologies developed by OS vendors to provide system-wide protection against common attacks, and are things every application developer should know about when dealing with native (unmanaged) [...]<p></p> ]]></description> <content:encoded><![CDATA[<p>In my last post about <a
href="http://perimetergrid.com/wp/2008/01/31/how-to-get-a-job-in-information-security/">finding a job in information security</a>, when discussing application security, I off-handedly mentioned several mitigation technologies &#8212; GS, DEP, SAL, and ASLR.  These are technologies developed by OS vendors to provide system-wide protection against common attacks, and are things every application developer should know about when dealing with native (unmanaged) code.</p><p>The scourge of C and C++ apps for the last decade and a half has been the <a
href="http://en.wikipedia.org/wiki/Buffer_overflow">stack buffer overflow</a>.  This is an attack wherein the attacker discovers that an application is trying to fit some piece of user input into a spot in memory without first checking to see if it will fit.  In the most common scenario, the spot in memory is a local variable, which means that carefully-crafted input can overwrite the return pointer on the stack with a user-selected value.  If this is done, when the function finishes it will transfer execution to the user-provided input, which can then take control of the running process and do anything that that process&#8217;s owner is capable of.  If the process is an OS service, running with a privileged account like root on a UNIX/Linux system or Administrator/SYSTEM on a Windows system, it may be able to take full control of the system.  I first learned this attack in Aleph One&#8217;s classic Phrack article, <a
href="http://insecure.org/stf/smashstack.html">Smashing the Stack for Fun and Profit</a>, written in 1996.</p><p>Application developers have been told for many years now to be very careful when allocating memory and copying data, especially strings, to prevent these exploits.  However, it&#8217;s relatively difficult, so developers continue to make the same mistakes.  In addition, the attackers get more creative, and have found variations on this attack that are even harder to avoid.  Luckily, OS developers have also been busy trying to find global mitigations for these attacks, so that developers <em>can&#8217;t </em>make these mistakes, and the whole computing ecosystem becomes safer.</p><h2>Stack Canaries</h2><p>The first common OS-based mitigation technology is the stack canary.  On Windows, this mitigation is activated via the /GS compiler option (for Guard Stack); Solaris also incorporates a similar mechanism called StackGhost, while the latest GCC compiler on Linux has a stack protection feature called PPC.  Of the major OS&#8217;s currently in use, only Mac OS X is missing a stack canary feature.</p><p>Whenever a function is called, a stack frame is created in memory for the function call.  The stack frame is arranged as follows:</p><table
border="1"><tr><td>Local Variables</td><td>Saved EBP</td><td>Saved EIP</td><td>Arguments</td></tr></table><p>Each portion of the frame is just large enough for its contents.  EIP is the instruction pointer &#8212; whatever EIP points to, the processor executes.  The Saved EIP is the return pointer &#8212; when the function returns, that saved value is placed into EIP.</p><p>A buffer overflow occurs when the attacker tricks the application into placing something into a local variable that is too large to fit.  It thus overflows its bounds, overwriting the saved registers.  Since the saved EIP has been overwritten, when the function returns, execution jumps to whatever value the attacker wants.  However, in a /GS-compiled binary, this is much more difficult, as the stack frame instead looks like this:</p><table
border="1"><tr><td>Local Variables</td><td>Canary</td><td>Saved EBP</td><td>Saved EIP</td><td>Arguments</td></tr></table><p>The canary is basically an arbitrary random number.  However, the system remembers what it was when the stack frame was entered, and before returning to the saved EIP, it checks to make sure the canary value hasn&#8217;t changed.  This poses a problem for the attacker, because it&#8217;s in the way!  Any value large enough to overwrite the saved EIP will also overwrite the canary, and the attacker doesn&#8217;t know what the canary value is.  In order to get it, he would need to execute some code to read it&#8230; and he can&#8217;t execute code with the canary in the way.  Thus, stack buffer overflows are prevented.</p><p>Some creative attackers figured out that you could still sometimes do some damage by overwriting not the saved EIP, but the function arguments.  If a function makes use of delegation and receives function pointers in arguments, you could sometimes still execute code this way, because they would be used <em>during </em>the function, and /GS only checks the canary when the function <em>returns</em>.  Thus, in recent versions of Visual Studio, /GS also causes the system to make a copy of the arguments when a stack frame is created, placed <em>before </em>the local variables.  The copy is used until the function exits; thus, overwriting the arguments does nothing until the function returns, at which time the canary is checked, and any corruption is detected.</p><h2>Hardware Data Execution Protection</h2><p>Another mitigation added for buffer overflow prevention is what Microsoft calls Data Execution Protection (DEP), which makes use of Intel and AMD&#8217;s NX (No-Execute) flag on recent CPUs.  On NX-enabled CPUs, each memory page is marked as either code (executable) or data (not executable,) and a fatal error occurs if EIP ever points into a data page.  A compiler flag in Visual Studio 2005 and greater (/NXCOMPAT) enables this feature on an application; Linux compilers have also added a similar feature.</p><p>The entire stack is marked as a data page, which normally prevents stack overflows.  While the attacker can overwrite EIP, he can&#8217;t make it jump execution into his own input, so he can&#8217;t execute his own code &#8212; only code already in the process.  However, once again, enterprising hackers have found a way around it &#8212; what is called the &#8220;return to libc&#8221; attack.  They overwrite the saved EIP with an address pointing to kernel32!VirtualProtect(), the function that marks pages as code or data!  With carefully crafted arguments, they can actually instruct VirtualProtect to mark the stack as code, then return into their code.  On the bright side, this is very difficult, and won&#8217;t work if the exploitable buffer is a string, because the required arguments are full of null bytes.</p><p>A more elaborate attack can call into ntdll!NtSetInformationProcess and disable NX for the entire process.  The advantage to this is that it can be done without null bytes (though it&#8217;s very complicated), so it can go through strings.  The disadvantage, though, is that it won&#8217;t likely work on a securely-configured production server.  If NX is set globally enabled in boot.ini, ntdll!NtSetInformationProcess is unable to override it.</p><p>Though I&#8217;ve mentioned Windows-specific function names here, there are Linux equivalents that can be used in attacks.  (Indeed, it&#8217;s called the &#8220;return to libc&#8221; attack because of the name of the UNIX/Linux C runtime library.)</p><h2>Address Space Layout Randomization</h2><p>All of these evasions of NX protection require being able to instruct the system to jump directly into system functions.  Doing this requires <em>address prediction </em>&#8211; you have to know where in memory the system functions <em>are </em>so you can jump to them.  Even in the simple stack-smashing exploit, the attacker still needs to know where the stack is in order to place that value into the saved EIP.  Address Space Layout Randomization (ASLR) is a relatively new technology that makes address prediction nearly impossible by making libraries load into different locations on every reboot.  If the attacker doesn&#8217;t know where the libraries are, he generally cannot jump to them with any reliability.</p><p>ASLR is enabled on Windows using the linker flag /DYNAMICBASE.   OpenBSD has ASLR by default; Linux implementations have a weak form of ASLR but can be upgraded to full ASLR using various popular kernel patch.  Once again, Mac OS X is the only major OS missing this mitigation, though changes in OS X 10.5 imply they are preparing to add it in a future version.</p><p>ASLR randomizes where libraries are found, so that it is very difficult to predict where they are.  It does, however, have a few weaknesses:</p><ol><li>In many cases, executable files themselves are not randomized.  Thus, attackers are prevented from jumping to system functions, but can still jump to functions in the executable file.</li><li>Only the high-order bytes of addresses are randomized; the attacker can still jump to anything within 16 memory pages of known address space.</li><li>It may be possible to brute-force the location of a library by simply trying all the addresses if you have a section of code that will permit this.</li></ol><p>Case #3 is very difficult on Windows, since there are no forking daemons and if a service is made to crash several times in a row it will stop restarting (precisely to prevent this sort of brute-forcing.)  However, on UNIX/Linux systems, this is possible, and it may be possible on Windows, too, if the code being exploited eats exceptions (i.e. it has an exception handler that discards errors and keeps the service running.)</p><h2>Safe Structured Exception Handling</h2><p>On Windows C++ applications, there&#8217;s another way around the stack canaries &#8212; exploiting Structured Exception Handling.  When SEH is used, the stack looks like this:</p><table
border="1"><tr><td>Local Variables</td><td>SEH Next</td><td>SEH Ret</td><td>Canary</td><td>Saved EBP</td><td>Saved EIP</td><td>Arguments</td></tr></table><p>Those SEH pointers are found before the canary, and thus can be overwritten.  It&#8217;s possible to craft values for those pointers that point into the stack, and then force an exception to occur.  When the exception happens, the pointers are followed and arbitrary code is run.  Stack canaries don&#8217;t help with this (and the canary can&#8217;t be put before the SEH pointers, because in a sense they <em>are </em>local variables, just not ones declared by the programmer), though NX still does.  However, since NX is not available on all processors (nor enabled on all processes), Microsoft also introduced the /SafeSEH compiler flag.</p><p>In a /SafeSEH process, when execution begins, the system asks all the libraries in a process to find all of their possible exception handlers and write them to a table.  Before ever jumping to an SEH Next pointer, it verifies that the pointer points to something on the table.  Thus, if the attacker overwrites this pointer, it does no good &#8212; he can&#8217;t run anything that isn&#8217;t an exception handler.</p><p>There is a problem with this, though &#8212; it only works if every library used by an application was compiled with /SafeSEH and records its exception handlers on the table.  If even one library didn&#8217;t, then the system can&#8217;t verify the pointers &#8212; they might well be pointing to an exception handler that just wasn&#8217;t registered.</p><p>There are no non-Windows equivalents to /SafeSEH, as the SEH method of exception handling is a Windows-specific construct.</p><h2>Security Annotation Language</h2><p>Ideally, we wouldn&#8217;t need all these mitigations because we wouldn&#8217;t be writing buffer overflows in the first place.  However, when writing complex code, they can be very hard to see.   We would prefer that the compiler just detect the overflows at compile-time, but the compiler doesn&#8217;t always know how our variables will be used, and thus cannot determine where an overflow may lie.</p><p>Microsoft&#8217;s Security Annotation Language (<a
href="http://blogs.msdn.com/michael_howard/archive/2006/05/19/602077.aspx">discussed in detail on Michael Howard&#8217;s blog here</a>) allows the developer to &#8220;hint&#8221; to the compiler how all the arguments to a function are used.  The developer uses SAL annotations on each function declaration, specifying if arguments are input or output, if they can be NULL, how long their buffers are, etc.  These &#8220;hints&#8221; (actually compiler macros) allow the compiler to verify that no buffer overruns are being introduced.</p><p>It&#8217;s more work for the developer, as they have to put some thought into the annotations, and a company making use of SAL has to enforce its use (i.e. no checking in functions that aren&#8217;t annotated.)  However, while it&#8217;s work, it&#8217;s not difficult &#8212; unlike checking for buffer overruns manually, which is <em>very </em>difficult.  With properly-annotated functions, most buffer overruns can be caught at compile time, and fixed before the application is ever released.  Unfortunately, SAL has not seen much use outside of Microsoft itself, due to the extra developer overhead.  It&#8217;s easier to get people to add a few compiler &amp; linker flags than to change the way they program.</p><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2008/02/04/os-based-mitigations-against-common-attacks/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Passwords Aren&#8217;t Secure; Two-Factor Auth on a Credit Card</title><link>http://perimetergrid.com/wp/2007/10/30/passwords-arent-secure-two-factor-auth-on-a-credit-card/</link> <comments>http://perimetergrid.com/wp/2007/10/30/passwords-arent-secure-two-factor-auth-on-a-credit-card/#comments</comments> <pubDate>Tue, 30 Oct 2007 20:41:23 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[authentication]]></category> <category><![CDATA[hardware]]></category> <category><![CDATA[passwords]]></category> <category><![CDATA[products]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/2007/10/30/passwords-arent-secure-two-factor-auth-on-a-credit-card/</guid> <description><![CDATA[A pair of companies called Innovative Card Technologies and eMue Technologies have put out a press release for a one-time-password token embedded in a credit card. Essentially, they embed a smart chip and an LCD display inside a bank card. When you need the password to your account (such as to log into online banking), [...]<p></p> ]]></description> <content:encoded><![CDATA[<p>A pair of companies called <a
href="http://www.incardtech.com/">Innovative Card Technologies</a> and <a
href="http://www.emue.com/">eMue Technologies</a> have put out a press release for a one-time-password token <a
href="http://www.infosecurityproductsguide.com/technology/2007/InnovativeCardTechnologies.html">embedded in a credit card</a>.</p><p>Essentially, they embed a smart chip and an LCD display inside a bank card.  When you need the password to your account (such as to log into online banking), you type your PIN into the card itself, and the display shows your password.  This provides true two-factor authentication (something you have &#8212; the card &#8212; and something you know &#8212; the PIN) for online financial transactions, and is tamper-resistant.</p><p>Now, OTP tokens are not new.  RSA has been producing the SecurID line for over a decade.  However, they have not been widely adopted for online banking because of bulk and inconvenience.  Nobody wants to have an extra device (they&#8217;re usually keychain fobs) that they have to find every time they log into their bank&#8217;s website.  People want this even less because of the lack of standardization &#8212; you&#8217;d need one for <em>every </em>bank or credit card you have, and you&#8217;d need to be able to tell them apart.  Embedding it in the card itself, though, solves this customer inconvenience.  After all, you have the card on you anyway.</p><p>The trick now is to get banks to actually adopt this thing.  This is very convenient for customers, and makes them substantially more secure.  However, it requires the banks to actually buy the devices for all their customers &#8212; and eMue/InCard don&#8217;t say on their web site what they cost.  An RSA SecurID keychain fob, however, costs $86, so I wouldn&#8217;t be terribly surprised if the cost to the banks of these cards is similar.  And because of the costs, banks, like corporations, are inclined to go for what Alex at <a
href="http://worsethanfailure.com">Worse Than Failure</a> whimsically calls &#8220;<a
href="http://worsethanfailure.com/Articles/WishItWas-TwoFactor-.aspx">Wish-It-Was-Two-Factor Authentication</a>:&#8221; simply requiring you to provide something you know, and&#8230; something else you know.</p><p>The problem is that passwords are simply not very secure anymore.  There was a time when even a modest password (say, an 8-letter combination not found in the dictionary) was pretty secure against most attackers.  However, that time has passed; there are too many ways to crack a password.  For example, if I want a user&#8217;s password so I can log into his online banking site, I could:</p><ol><li>Lure him to my website, which installs spyware on his machine which records what he types.</li><li>Intercept his communication to the website and grab the password (mitigated by SSL login)</li><li>Steal his session cookies and hijack the session (mitigated by using SSL beginning-to-end on the website &#8212; common for banks/financial institutions, but rare for online email and other sites)</li><li>Wait for him to sign onto a public wireless hotspot, spoof the bank&#8217;s website, and steal the password with a man-in-the-middle attack (gets past the mitigations in #2 and #3)</li><li>Break into his email account, tell the website I &#8220;forgot&#8221; my password, and read the password-reset email it sends</li><li>Break into the banking website itself and get the encrypted password file.  Admittedly, in this case I probably don&#8217;t even need to get his password anymore.  But if I do, I can then use a rainbow table to break the encryption in seconds.  A 12-character password with numbers and symbols still falls in seconds.</li><li>Break into any other website the user subscribes to; chances are he uses the same password on all of them</li><li>Send a phishing email tricking the user into supplying me with his password.  He won&#8217;t fall for that?  Send one asking him to sign up for some other service and create a username and password, then see #6</li></ol><p>Password strength is irrelevant.  Today, there&#8217;s really only two levels of password strength:</p><ol><li>Guessable &#8212; blank, &#8220;password,&#8221; &#8220;secret,&#8221; your pet&#8217;s name, your wife&#8217;s birthday, a dictionary word</li><li>Not guessable &#8212; something meaningful only to you</li></ol><p>There is not much variation in #2 &#8212; whether your password is &#8220;i like cheese&#8221; or &#8220;jR3&amp;sJ7#iK9(wV2$&#8221; makes little difference (it makes no difference whatsoever to the 8 attacks listed above), but the former is far easier to remember.  The problem with passwords isn&#8217;t that they&#8217;re too short, or not complex enough &#8212; it&#8217;s that a password is <em>just data</em>, and there are many ways to steal data.</p><p>So why do banks and corporate IT departments keep harping on longer, more complicated passwords?  Why do banks require you to answer &#8220;secret questions?&#8221;  (Technically called cognitive passwords &#8212; things like &#8220;what was your high school&#8217;s mascot?&#8221; &#8212; these are really just extra passwords, only required to be easily guessable.)  Simple &#8212; it passes the cost, both in money and in effort, on to you.  Asking the customer to answer extra questions, or the IT user to remember harder passwords, puts the onus of maintaining security on them.  The IT department or bank doesn&#8217;t have to do anything at all to implement these &#8220;solutions&#8221; &#8212; it just asks you to do it.  In the case of banks, there&#8217;s the added benefit of making people believe (falsely) that they are more secure by jumping through these hoops.</p><p>The problem is that these methods don&#8217;t actually do anything.  Asking for &#8220;something you know and something else you know&#8221; is pointless; whatever method is used to steal the first password can also steal the cognitive password.  Requiring strong passwords mitigates only against attack #6 above (stolen password database), and these days it doesn&#8217;t do even that (if your password is under 14 characters I can crack it in seconds with a rainbow table; even if the hashes are salted, preventing that sort of attack, distributed cracking with GPU offload will still get it in days.)  What is needed is true two-factor authentication &#8212; not just for banks, but for anything online for which real authentication is required.</p><p>Unfortunately, this requires banks to shoulder the cost of providing either a token or a biometric reader to all their customers.  The token is the simpler solution, though it has the disadvantage that, since there is no common token infrastructure out there, every bank or site has to do it.  A biometric solution would scale better (one reader for every site,) but has a first-mover problem (which bank is going to give you the reader, thereby subsidizing all the other banks you use?) and may have robustness issues.  This token-on-a-card technology is a good way to provide real security without inconveniencing the customer, and I hope to see it go somewhere.</p><p>Unfortunately, this is a case where the &#8220;<a
href="http://en.wikipedia.org/wiki/Security_theater">security theater</a>&#8221; (as <a
href="http://www.schneier.com/">Bruce Schneier</a> calls it in <a
href="http://www.amazon.com/exec/obidos/ASIN/0387026207/counterpane/"><em>Beyond Fear</em></a>) interferes with real security.  Banks have been telling us that their sites are secure, and their silly questions keep us safe.  How do they now convince us that we&#8217;re not safe and we need to prefer the bank with the token-on-a-card?  Without competitive pressure, there&#8217;s little incentive for banks to spend the money &#8212; but banks are loath to exert competitive pressure that harms public trust in the banking system.</p><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2007/10/30/passwords-arent-secure-two-factor-auth-on-a-credit-card/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Password Cracking Moves to the GPU</title><link>http://perimetergrid.com/wp/2007/10/24/password-cracking-moves-to-the-gpu/</link> <comments>http://perimetergrid.com/wp/2007/10/24/password-cracking-moves-to-the-gpu/#comments</comments> <pubDate>Thu, 25 Oct 2007 03:00:44 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[authentication]]></category> <category><![CDATA[hardware]]></category> <category><![CDATA[passwords]]></category> <category><![CDATA[products]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/2007/10/24/password-cracking-moves-to-the-gpu/</guid> <description><![CDATA[A company called Elcomsoft has just put out a press release promoting the newest version of their Distributed Password Recovery tool, which is now capable of making use of the GPU (graphics processing unit) on modern 3D video cards for breaking password hashes. Password hashes have been weak for quite a while now &#8212; as [...]<p></p> ]]></description> <content:encoded><![CDATA[<p>A company called <a
href="http://www.elcomsoft.com">Elcomsoft</a> has just put out a <a
href="http://www.elcomsoft.com/EDPR/gpu_en.pdf">press release</a> promoting the newest version of their <a
href="http://www.elcomsoft.com/edpr.html?r1=pr&amp;r2=gpu_071022">Distributed Password Recovery </a>tool, which is now capable of making use of the GPU (graphics processing unit) on modern 3D video cards for breaking password hashes.</p><p>Password hashes have been weak for quite a while now &#8212; as far back as 1997, it was practical, if you got a hold of the SAM hive from a Windows machine or the shadow file from a UNIX machine, to brute-force crack the passwords stored inside so long as they were relatively short and didn&#8217;t make use of obscure characters (hence all those &#8220;password complexity&#8221; guidelines urging you to use long, incomprehensible passwords.)  However, at this point you could usually crack even a strong password in a few weeks using a desktop machine.  This development cuts password cracking time by a factor of 20 or more.</p><p>Why is the GPU so much better than the CPU for cracking password hashes?  Parallelism.  Rendering a screen of graphics essentially consists of doing one task &#8212; figuring out what color a pixel on the screen should be &#8212; many, many times every second.  As a result, graphics cards are optimized for doing many simple tasks simultaneously.  CPUs, on the other hand, can do one task much faster than a GPU, but only do one thing at a time (multitasking is largely an illusion, as the CPU switches between tasks very quickly.)  We&#8217;re just now seeing dual-core and quad-core CPUs, but a &#8220;dual-core GPU&#8221; would be nonsensical &#8212; they&#8217;ve got 10 or more processing pipelines already.</p><p>The <a
href="http://www.elcomsoft.com/edpr.html?r1=pr&amp;r2=gpu_071022">Elcomsoft software</a> further speeds up password cracking by allowing you to offload processing to many different machines, so each box tries a different section of the keyspace. If you have access to many machines, this can make it a very quick task.</p><p>Of course, sometimes you don&#8217;t need to go through this much work to crack a password.  For any Windows password 14 characters or shorter, you can already crack it in seconds with a <a
href="http://www.antsight.com/zsl/rainbowcrack/#Rainbow%20Table">rainbow table attack</a>.  There are even online services that will do it for you for a small fee &#8212; you input the hash and PayPal a few bucks to them, they give you the password; if you&#8217;re willing to spend a few days on BitTorrent getting 64+ GB of data, you can get your own <a
href="http://rainbowtables.shmoo.com/">rainbow table</a> for free.</p><p>So how do you make a safe password, when a table can crack it in seconds or new software in days, no matter how good it is?  You don&#8217;t.  There is basically no such thing as a strong password anymore &#8212; there is the total insecurity of having <em>no </em>password, or the moderate security of having <em>a</em> password.  If someone manages to break into a server that your password works on, they <em>will</em> get your password if they want it.  Not re-using passwords on multiple sites and servers is thus quite important if you care about what&#8217;s on it (we all use the same password on random registrations on the Internet, but you shouldn&#8217;t use that password for banking, too.)  However, the only long-term solution to this is two-factor authentication; the password alone just isn&#8217;t enough anymore.</p><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2007/10/24/password-cracking-moves-to-the-gpu/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>SCADA Hacking Renders Vital Infrastructure Vulnerable</title><link>http://perimetergrid.com/wp/2007/10/23/scada-hacking-renders-vital-infrastructure-vulnerable/</link> <comments>http://perimetergrid.com/wp/2007/10/23/scada-hacking-renders-vital-infrastructure-vulnerable/#comments</comments> <pubDate>Wed, 24 Oct 2007 03:00:44 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[hardware]]></category> <category><![CDATA[risk]]></category> <category><![CDATA[SOA/XML]]></category> <category><![CDATA[terrorism]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/2007/10/23/scada-hacking-renders-vital-infrastructure-vulnerable/</guid> <description><![CDATA[Forbes.com recently had an article called &#8220;America&#8217;s Hackable Backbone&#8221; regarding the recent surge in SCADA hacking. SCADA, Supervisory Control And Data Acquisition, is a truly ancient protocol, in use for over 20 years, which was not remotely designed with security in mind. At the time, SCADA was used only on dedicated networks that lacked any [...]<p></p> ]]></description> <content:encoded><![CDATA[<p>Forbes.com recently had an article called <a
href="http://www.forbes.com/2007/08/22/scada-hackers-infrastructure-tech-security-cx_ag_0822hack.html">&#8220;America&#8217;s Hackable Backbone&#8221;</a> regarding the recent surge in SCADA hacking. <a
href="http://en.wikipedia.org/wiki/SCADA">SCADA</a>, Supervisory Control And Data Acquisition, is a truly ancient protocol, in use for over 20 years, which was not remotely designed with security in mind.  At the time, SCADA was used only on dedicated networks that lacked any connectivity to a network to which you could attach a general-purpose computer.  Thus, the security it relied on was a combination of physical security &#8212; you needed to tap a line to get in &#8212; and obscurity &#8212; if you did get in, you&#8217;d need to both know SCADA and know the particular &#8220;magic names&#8221; of the devices you were trying to control.</p><p>I saw Ganesh Devarajan&#8217;s presentation on SCADA hacking at DefCon back in August.  The protocol is relatively simple &#8212; simple enough to figure it out just running a sniffer for a while.  And the things controlled by these systems can be utterly critical &#8212; nuclear power plants, subway systems, pipelines, manufacturing plants, etc.  Some of what Devarajan demonstrated was attacking through simple fuzzing &#8212; just throwing masses of junk data into the systems and seeing what happens, since the input (presumed to come from trusted sources on a private network) is seldom validated.  When fuzzing makes something fall over, that&#8217;s almost certainly a sign that a buffer overflow vulnerability lurks there &#8212; so even if you can&#8217;t stop the subway with a SCADA command, you can probably execute arbitrary code with one, and <em>that</em> can do anything (though it is, admittedly, significantly harder.)</p><p>However, as Forbes points out, you don&#8217;t need to really know how to control the system to extort ransom out of someone &#8212; the mere threat of controlling, say, a water treatment plant may get you what you want.</p><p>Fixing these systems normally requires replacing them &#8212; they&#8217;re so old that updating to a more modern system is seldom an option.  Likewise, encryption is a decade out of reach for these systems.  At the very least, they need to be completely isolated &#8212; a computer that can access a SCADA system should not be connected to a computer that can access the Internet.  This creates a potential path for an attacker.  Unfortunately, companies are moving in the <em>opposite</em> direction &#8212; rather than replacing and isolating SCADA, they&#8217;re wrapping it in XML, so that modern applications can use web services to manipulate SCADA systems.  This makes sense from a usability perspective &#8212; just because your oil pipeline&#8217;s valves use 20-year-old control software doesn&#8217;t mean your engineers have to be working on 20-year old green-monochome-screened DOS boxes to operate them.  However, from a security perspective it makes things even worse.  The machines running these apps are on corporate LANs with Internet connectivity &#8212; and hacking SCADA wrapped in XML is every bit as easy as hacking raw SCADA.  Putting something in XML doesn&#8217;t render it more secure &#8212; indeed, the accompanying metadata often makes it easier to decipher.</p><p>The real worry of these systems is that as the SCADA networks become more integrated with the Internet (SCADA over TCP/IP is already normal, and SCADA over XML is growing), we come closer to a world in which those action-movie scenarios where a hacker breaks into a computer and starts blowing up power plants, manipulating traffic lights, etc. are actually possible.  Right now, &#8220;hacker terrorism&#8221; is mostly a financial threat &#8212; there&#8217;s little you can do to life safety from an Internet terminal most of the time.  It would be preferable to keep it that way.</p><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2007/10/23/scada-hacking-renders-vital-infrastructure-vulnerable/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Steal Cars Electronically</title><link>http://perimetergrid.com/wp/2007/10/21/steal-cars-electronically/</link> <comments>http://perimetergrid.com/wp/2007/10/21/steal-cars-electronically/#comments</comments> <pubDate>Mon, 22 Oct 2007 03:00:59 +0000</pubDate> <dc:creator>Grant Bugher</dc:creator> <category><![CDATA[attacks]]></category> <category><![CDATA[crypto]]></category> <category><![CDATA[hardware]]></category> <category><![CDATA[physical security]]></category><guid
isPermaLink="false">http://perimetergrid.com/wp/2007/10/21/steal-cars-electronically/</guid> <description><![CDATA[At Crypty 2007 in August, Eli Beeham, et. al. presented a paper called &#8220;How to Steal Cars,&#8221; describing how they have bypassed the KeyLoq remote keyless entry system &#8212; the system used in the majority of the remote keyless entry key fobs. These systems are supposed to be secure &#8212; they use a 32-bit block [...]<p></p> ]]></description> <content:encoded><![CDATA[<p>At Crypty 2007 in August, Eli Beeham, et. al. presented a paper called &#8220;<a
href="http://www.cosic.esat.kuleuven.be/keeloq/keeloq-rump.pdf">How to Steal Cars</a>,&#8221; describing how they have bypassed the KeyLoq remote keyless entry system &#8212; the system used in the majority of the remote keyless entry key fobs.  These systems are supposed to be secure &#8212; they use a 32-bit block cipher to transmit a 64-bit key from the key fob, which, if it matches, unlocks the car.  The key consists of an XOR of a car identifier (not secret, can be eavesdropped on) and a manufacturer key (secret.)   It should take 2<sup>64</sup> iterations to crack the key &#8212; not really practical.</p><p>However, these researchers found a flaw in the cryptosystem.  Due to a flawed protocol, they can mounting a chosen-plaintext attack on 2<sup>16</sup> keys (requires about 65 minutes access to the car.)  And once they have that, there&#8217;s a cryptanalytic attack on the manufacturer key (that&#8217;s a bit more cryptographically strenuous; they took 2 days to do it using 50 dual-core Opterons), which makes unlocking <em>any</em> car by that manufacturer very easy.</p><p>But do we care?  Car thieves aren&#8217;t going to run up to your car with a radio antenna, spend 65 minutes gathering data, run back to their PC and run a cracking app, then come back and steal your car.  It&#8217;s easier to just pick the lock, use a slim jim, or break a window.  (Actually, these things are <em>frighteningly</em> easy, much more so than most people imagine; key-based locks are not very secure.)  However, the risk isn&#8217;t from single attackers &#8212; it&#8217;s that this turns cars from having a <em>physical</em> lock to a <em>software</em> lock. Now that this attack is known, someone could make an effort to gather manufacturer keys from many car manufacturers and model years, and create a simple piece of software which (when paired with an appropriate-frequency radio antenna) opens any car by those manufacturers.  The bad thing about software hacks to things that aren&#8217;t general-purpose computers is that they&#8217;re really hard to fix.  If someone does come out with Car Unlocker for Windows Mobile PCs (or even cell phones), what do you do about it?  You can&#8217;t just download a patch to your <em>car</em>.  Manufacturers will change the keys in future cars, but there&#8217;s nothing to be done about current ones.  One guy isn&#8217;t going to do this to steal one car&#8230; but someone might do it for organized crime to steal <em>many </em>cars.</p><p>It&#8217;s dangerous to embed cryptographic keys.  Key management and rotation is actually a much, much harder problem than strong cryptography &#8212; it&#8217;s one thing to make the key hard to break, it&#8217;s quite another to be able to change it when it&#8217;s broken.  (And if the target is high-value enough, it&#8217;s a <em>when</em>, not an if &#8212; just ask the  RIAA and MPAA&#8217;s DRM developers.)</p><p></p> ]]></content:encoded> <wfw:commentRss>http://perimetergrid.com/wp/2007/10/21/steal-cars-electronically/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using xcache
Page Caching using xcache (User agent is rejected)
Database Caching 10/18 queries in 0.054 seconds using disk: basic

Served from: perimetergrid.com @ 2012-02-04 07:31:03 -->
