Monday, January 26, 2009

Closed Source Conspiracy

Many people in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 industry have an innate fear of closed source (AKA proprietary software), which especially applies to everything crypto-related.

The usual arguments go this way: this (proprietary) crypto software is bad, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vendor might have put some backdoors in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re. And: only cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 open source crypto software, which can be reviewed by anyone, can be trusted! So, after my recent post, quite a few people wrote to me and asked how I could defend such an evil thing as BitLocker, which is proprietary, and, even worse, comes from Microsoft?

I personally think this way of reasoning sucks. In majority of cases, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact something is distributed without cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 accompanying source code does not prevent ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs from analyzing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code. We do have advanced disassemblers and debuggers, and it is really not that difficult to make use of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m as many people think.

Of course, some heavily obfuscated programs can be extremely difficult to analyze. Also, analyzing a chipset's firmware, when you do not even know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 underlying CPU architecture and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 I/O map might be hard. But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se are special cases and do not apply to majority of software, that usually is not obfuscated at all.

It seems like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 argument of Backdoored Proprietary Software usually comes from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 open-source people, who are used to unlimited accesses to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code, and consequently do not usually have much experience with advanced reverse engineer techniques, simply because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y do not need cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir happy "Open Source Life". It's all Darwinism, after all ;)

On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hand, some things are hard to analyze, regardless of whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code is available or not, think: crypto. Also, how many of you who actively use open source crypto software, e.g. TrueCrypt or GnuPG, have actually reviewed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code? Anyone?

You might be thinking — maybe I haven't looked at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code myself, but because it is open source, zillions of ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r users already have reviewed it. And if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was some backdoor in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y would undoubtedly have found it already! Well, for all those open source fetishists, who blindly negate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value of anything that is not open source, I have only one word to say: Debian.

Keep in mind: I do not say closed source is more secure than open source — I only resist cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 open-source fundamentalism, that defines every proprietary software as inherently insecure, and everything open source as ultimately secure.

So, how should one (e.g. a government institution) verify security-level of a given crypto software, e.g. to ensure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are no built-in backdoors in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re? I personally doubt it could be performed by one team, as it just usually happens that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same people who might be exceptionally skilled in code review, system-level security, etc, at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same time are average cryptographers and vice-versa.

Imagine e.g. that you need to find out if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are any weaknesses in your system drive encryption software, something like BitLocker. Even if you get access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code, you still would have to analyze a lot of system-level details — how is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted boot implemented (SRTM? DRTM? TPM interaction?), which system software is trusted, how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 implementation withstands various not-crypto-related attacks (e.g. some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacks I described in my previous post), etc…

But this all is just system-level evaluation. What should come later is to analyze cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual crypto algorithms and protocols. Those later tasks fall into cryptography field and not into system-level security discipline, and consequently should be performed by some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r team, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 crypto experts.

So, no doubt, it is not an easy task, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is not C/C++ source code available, is usually one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 minor headaches (a good example is our attack on TXT, where we were able to discover bugs in Intel's specific system software, which, of course, is not open source).

Wednesday, January 21, 2009

Why do I miss Microsoft BitLocker?

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous post, I wrote cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only one thing I really miss after I've switched from Vista to Mac is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker Driver Encryption. I thought it might be interesting for ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs to understand my position, so below I describe why I think BitLocker is so cool, and why I think ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r system disk encryption software sucks.

So, it's all about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Trusted Boot. BitLocker does make use of a trusted boot process, while all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r system encryption software I'm aware of, does not. But why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted boot feature is so useful? Let's start with a quick digression about what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted boot process is…

Trusted boot can be implemented using eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a Static Root of Trust or a Dynamic Root of Trust.

The Static Root of Trust approach (also known as Static Root of Trust Measurement or SRTM) is pretty straightforward — cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system starts booting from some immutable piece of firmware code that we assume is always trusted (hence cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 static root) and that initiates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 measurement process, in which each component measures cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next one in a chain. So, e.g. this immutable piece of firmware will first calculate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hash of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS and extend a TPM's PCR register with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value of this hash. Then cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS does cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PCI EEPROMs and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBR, before handling execution to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. Then cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bootloader measures cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS loader before executing it. And so on.

An alternative method to implementing trusted boot is to use Dynamic Root of Trust (often called Dynamic Root of Trust Measurement or DRTM). Intel's TXT technology, formerly LaGrande, is an example of a DRTM (more precisely: TXT is more than just DRTM, but DRTM is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 central concept on which TXT is built). We will be talking a lot about TXT next month at Black Hat in DC :) This will include discussion of why DRTM might sometimes be preferred over SRTM and, of course, what are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 challenges with both.

Essentially, both SRTM and DRTM, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 context of a trusted boot, are supposed to provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same: assurance cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system that just booted is actually cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system that we wanted to boot (i.e. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted one) and not some modified system (e.g. compromised by an MBR virus).

BitLocker uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Static Root of Trust Measurement. SRTM can really make sense when we combine it with eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r TPM sealing or attestation feature. BitLocker uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 former to make sure that only cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted system can get access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 disk decryption key. In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words: BitLocker relies on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM that it will unseal (release) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 decryption key (needed to decrypt cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system partition) when and only when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state of chosen PCR registers is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same is it was when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 decryption key was sealed into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM.

Ok, why is this trusted boot process so important for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system disk encryption software? Because it protects against a simple two-stage attack:
  1. You leave your laptop (can be even fully powered down) in a hotel room and go down for a breakfast… Meanwhile an Evil Maid enters your room. She holds an Evil USB stick in her hand and plugs it into your laptop and presses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 power button. The system starts and boots from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USB. An Evil version of something similar to our BluePillBoot gets installed into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBR (or to a PCI EEPROM). This Evil Program has only one task — to sniff out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 encryption software's password/PIN and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n report it back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 maid next time she comes...
  2. So, you come back to your room to brush your teeth after cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 breakfast. Obviously you cannot refrain from not turning on your laptop for a while. You just need to enter your disk encryption passphrase/PIN/whatever. Your encryption software happily displays cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prompt, like if nothing happened. After all how could it possibly know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Evil Program, like BluePillBoot, has just been loaded a moment ago from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBR or a PCI EEPROM? It can not! So, you enter cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 valid password, your system gets cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 decryption key and you can get access to your encrypted system...
  3. But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you have an appointment at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hotel SPA (at least this little fun you can have on a business trip, right?). Obviously you don't want to look so geeky and you won't take your laptop with you to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SPA, will you? The Evil Maid just waited for this occasion… She sneaks again into your room and powers up your laptop. She presses a magic key combo, which results in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Evil Program displaying cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sniffed decryption password. Now, depending on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir level of subtleness, she could eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r steal your whole laptop or only some more important data from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 laptop. Your system disk encryption software is completely useless against her now.
(Yes, I know that's 3 bullets, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Evil Maid had to sneak into your room only twice:)

So, why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker would not allow for this simple attack? Because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker software should actually be able to know that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system gets compromised (by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Evil Program) since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last boot. BitLocker should cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n refuse to display a password prompt. And even if it didn't and asked cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password, still it should not be able to get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual decryption key out from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 values in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 certain PCR register(s) will be wrong (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y will now account for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 modified hashes of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBR or PCI EEPROM or BIOS). The bottom line is: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 maid is not getting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 decryption key (just as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user now), which is what this is all about.

At least this is how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker should work. I shall add a disclaimer here, that neicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r myself, nor anybody from my team, have looked into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker implementation. We have not, because, as of yet, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re have been no customers interested in this kind of BitLocker implementation evaluation. Also, I should add that Microsoft has not paid me to write this article. I simply hope this might positively stimulate ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r vendors, like e.g. TrueCrypt (Hi David!), or Apple, to add SRTM or, better yet, DRTM, to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir system encryption products.

Of course, when we consider an idiot-attack, that involves simply garbbing somebody's laptop and running away with it (i.e. without any prior preparation like our Evil Maid did), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n probably all system disk encryption software would be just good enough (assuming it doesn't have any bugs in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 crypto code).

Some people might argue that using a BIOS password would be just as good as using trusted boot. After all, if we disable booting from alternate media in BIOS (e.g. from USB sticks) and lock down cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS using a password (i.e. using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Power-On password, not just cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS supervisor password), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above two-stage attacks should not be feasible. Those people might argue, that even if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Evil Maid had cleared cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CMOS memory (by removing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CMOS battery from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rboard), still cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y would be able to notice that something is wrong — cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS would not longer be asking for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password, or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password would be different from what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y used before.

That is a valid point, but relaying on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS password to provide security for all your data might not be such a good idea. First problem is that all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOSes have had a long history of various default or "maintenance" passwords (I actually do not know how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 situation looks today with those default passwords). Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r problem is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker might first clear cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CMOS memory, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n modify her Evil MBR program to also display a fake BIOS password prompt, that would accept anything cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user enters. This way cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user will not be alerted that something is wrong and will be willing to provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 real password for drive decryption when prompted later by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual drive encryption software.

One might ask why can't cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 similar attack against BitLocker? Even if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 real BitLocker uses trusted boot process, we can still infect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBR, display cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fake BitLocker PIN prompt and this way get into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 possession of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's PIN.

This attack, however, can be spotted by an inquisitive user — after all, if he or she knows cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y provided cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correct PIN, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it would be suspicious not to see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system being booted (and it won't boot, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fake BitLocker will not be able to retrieve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM). If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fake BitLocker wanted to boot cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS (so that user didn't suspect anything), it would have to remove itself from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n reboot cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system. Again this should alert cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user that something wrong is going on.

There is also a much more elegant way of defending against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above attack (with fake BitLocker prompt) — but I'd racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r let Microsoft to figure it out by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves ;)

By cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way, contrary to a popular belief cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker doesn't protect your computer from boot-stage infections, e.g. MBR viruses or BIOS/PCI rootkits. As we have been pointing out since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first edition of our Understanding Stealth Malware training at Black Hat in August 2007, BitLocker should not be thought as of a system integrity protection. This is because it is trivial, for any malware that already got access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 running Vista, to re-seal cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker key to arbitrary new system firmware/MBR configuration. Everybody can try it by going to Control Panel/BitLocker Driver Encryption, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n clicking on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "Turn Off BitLocker" and choosing "Disable BitLocker Drive Encryption". This will simply save your disk decryption key in plaintext, allowing you to e.g. reflash your BIOS, boot Vista again and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n to enable BitLocker again (this would generate a new key and seal it to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new PCR values).


This functionality has been provided obviously to allow user to update his or her firmware. But what is important to keep in mind is that this process of disabling BitLocker doesn't involve entering any special password or PIN (e.g. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker's PIN). It just enough that you are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 default user with admin rights or some malware running in this context. Pity cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y decided on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 simplest solution here. But still BitLocker is simply cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one coolest thing in Vista and something I really miss on all ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r OSes...

Monday, January 05, 2009

Attacking Intel® Trusted Execution Technology



Press people: please read our press release first and also refer to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 disclaimer at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of this blog post. Thank you!

Update: 1/5/2009 19:21 CEST: minor typos/spelling corrections. Thanks to Jarred for point out some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 typos.

A word about Trusted Computing
The term Trusted Computing and related technologies, like Palladium, Trusted Platform Module, LaGrande, have always caused lots of controversy in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IT world. Most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fear, however, has been a result of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lack of understanding of how a particular technology really works.

Nevercá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365less, Trusted Computing is becoming part of our lives, whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r we want it or not. These days almost every new laptop comes with an on-board Trusted Platform Module (TPM). Microsoft's Palladium initiative have been renamed so many times in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 recent years, that probably even people working at Microsoft are confused now. Nevercá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365less, some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Palladium technologies made cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir way into Vista, and Microsoft BitLocker is, without doubt, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most successful, widely deployed product that is based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea of Trusted Computing. (In fact cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Bitlocker is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only one thing that I really have been missing since I switched from Vista to Mac some time ago).

On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hardware side, besides cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 famed TPM, we also have had cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 LaGrande technology, that is often connected with things such as Remote Attestation, Protected Execution and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r scary terms…

A word about Trusted Execution Technology
LaGrande, recently renamed Trusted Execution Technology (TXT), is Intel's response to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Trusted Computing trend. TXT is currently part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vPro™ brand, and for about a year now users can buy a vPro/TXT compatible hardware in regular computer stores (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first one was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DQ35J desktop board with certain Core 2 Duo processors, which I was able to buy at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of 2007 — remember that TXT requires support from both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPU and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset).

TXT is not an alternative to TPM, in fact TXT heavily relies on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM to provide basic services like e.g. secure storage of measurements done by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TXT. Also, Palladium, or whatever it is called cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se days, is not a competition to TXT. Intel TXT can provide building blocks to e.g. Vista Bitlocker, arguably making it more secure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it is now (Current Bitlocker implementation, AFAIK, relies on a so called Static Root of Trust for Measurement, which requires TPM, but not TXT).

What kind of measurement would TXT like to store in our TPM? Well, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole TXT is, in fact, all about making and storing software measurements, or, using a more familiar language, secure hashes of certain software components.

The sole purpose of Intel TXT technology is to provide a trusted way for loading and executing system software, e.g. Operating System kernel or Virtualization Machine Monitor. What is extraordinary here is that TXT doesn't make any assumptions about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system before loading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 software, thus making it possible for a user to ensure secure load of an OS or VMM, even in a potentially compromised machine.

In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words, our system can be all full of boot sector viruses and BIOS rootkits, and god-knows-what-else, and still TXT should allow to load a clean VMM (or OS kernel) in a secure way, immune to all those rootkits present in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system in a moment just before cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 load process. This TXT-supported load process is called Late Launch, and is implemented via a special new CPU instruction called SENTER.

It's a good place to mention that AMD has its own version of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 late launch implemented via SKINIT instruction. We haven't looked at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 AMD technology thoroughly yet, so I will refrain from commenting on this.

The late launch is a pretty amazing thing, when we think about. It promises to effectively provide all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 benefits of a computer restart without actually restarting it.

It is hard to overemphasize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potential impact that a technology such as TXT could have on computer security. One can immediately see that it could eliminate all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system-level persistent malware — in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words we can easily build systems (VMMs or even standard OSes) that would be immune to attacks that try to compromise system binaries on disk, or attack cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system right from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bootloader or BIOS. Combining this with VT-x and VT-d technologies, system developers (for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first time, at least as far as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "PC" platform is considered) have gotten extremely strong tools into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir hands that should allow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to create really secure VMMs and OSes…

Hopefully by now, my Dear Reader, you should have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 feeling what kind of an animal Intel TXT is and how desperately cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world needs it...

And now, we are going to move on and show practical attacks on current TXT implementations... :)

Attacking Intel TXT!
Ok, not in this post today, but racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 upcoming Black Hat conference in Washington, DC in February. Over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 recent months, Rafal and I have been looking at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel TXT technology as part of a work done for a customer, to see if this could be used to improve security of a product, from a typical user's perspective. We figured out that it definitely could, but that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are also some issues…

And those "issues" gave us a starting point in developing a proof-of-concept (albeit very reliable) exploit that shows how we can bypass trusted boot process implemented by Intel's tboot.

Tboot, which is also part of (scroll down to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 page) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor, can be though of as a reference implementation of TXT-based system loader, that could be used to securely load eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Linux kernel, when run on a vPro/TXT compatible hardware.

[copy-and-paste from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 press release follows]

Our attack comprises two stages. The first stage requires an implementation flaw in a specific system software. The second stage of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack is possible thanks to a certain design decision made in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current TXT release.

While evaluating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 effectiveness of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel® TXT technology, as part of a work done for a customer, we have identified several implementation flaws in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel's system software, which allowed to conduct cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above mentioned stage-one attack. We have provided Intel with extensive description of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 flaws in December 2008, and Intel is currently working on fixing those vulnerabilities.


We have also been in touch with Intel about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 possibility of conducting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second-stage attack since November 2008. In December, after providing Intel with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 details about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first-stage attack, Intel promised to release, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 coming weeks, an updated TXT specification for developers that would explain how to design cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir TXT-based loaders in such a way that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are immune to our attack. Intel claims cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current Intel® TXT release does contain cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 basic building blocks that could be used to prevent our second-stage attack and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 release of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 additional specification would make it feasible in practice.


More details in February in DC :)

TXT useless?
Some people are skeptical about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TXT technology, and not only because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Irrational Fear of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Trusted Computing (IFTC), but racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y point out to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 complexity of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole technology. The complexity is bad, because 1) it leaves more space for potential attacks, and 2) it discourages developers (ISVs) from using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technology in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir products (e.g. neicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r Microsoft, nor VMWare make use of TXT in any of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir bare-metal hypervisors, even though TXT is very well suited for this kind of software).

It is true that TXT is a very complex technology (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SENTER instruction is probably cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 masterpiece of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CISC architecture!), but I personally like it. In my opinion this is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first technology available for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PC platform that has cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potential to really change something, much more cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NX-feature did a few years ago. Before people will run to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comment box — if you would like to argue about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 usefulness/uselessness of Trusted Computing/TXT, please base your opinions on technical facts (read cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 spec!) and not on your feelings!

Disclaimer (for press)

Starting January 2009, we (at Invisible Things Lab), decided to issue press releases in addition to this blog. The general rule is: press releases are written for journalists, while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 blog is mainly written for ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r researchers, security enthusiast, etc.

The wording of our press releases is carefully chosen to minimize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potential of a possible misinterpretation. The press releases carry less information, but, we think, are better suited for a more general public, that doesn't have background in computer science, programming and security.

The blog is written in a much more casual way, without thinking for half an hour on every sentence. The articles on this blog might present some facts as extremely exciting, because e.g. for me, a person deeply involved in a system-level security research, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y indeed might be very exciting, which might not be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case for a general audience. I sometimes might also use shortcuts, metaphors, or irony, and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r figures of speech, that might not necessarily be obvious for a more general public.

If you are a journalist and you think you just found something very sensational on my blog, I would suggest that you double-check with me, before writing about it.

Thank you for your cooperation.
Joanna Rutkowska,
Founder and CEO,
Invisible Things Lab.