Sunday, September 07, 2008

Microsoft executive "rebuts" our research!

Ah, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no feeling like seeing your name in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 news when drinking your morning coffee... In this piece some Steve Riley, a senior security strategist at Microsoft, decided to "rebute" our recent Black Hat presentations research results.

Mr. Riley had been quoted by ZDnet as saying:

"Her [Joanna Rutkowska] insistence is that you can replace cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor without anybody knowing... Our assertion is that this is incorrect," Riley told cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 audience. "First of all, to do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se attacks you need to become administrator at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 root. So that's going to be, on an appropriately configured machine, an exceedingly difficult thing to happen."

Apparently, Mr. Riley has never seen our Black Hat presentations (or slides at least) that he is referring to (oh, wait, that is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 typical case with all our "refuters", how come?)...

First, we never said anything about replacing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor. I really have no idea how this idea was born in Mr. Riley's head? Replacing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor - that would indeed be insane for us to do!

Second, it is not true that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker needs to become an administrator "at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 root" (he mean cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 root partition or administrative domain here I assume). The attack we presented in our second speech, that exploited a heap overflow in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor FLASK module, could have been conducted from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 unprivileged domain, as we demonstrated during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 presentation.

Mr. Riley continues with his vision:

"Because you [cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker] didn't subject your own replacement hypervisor through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 thorough design review that ours did, I'll bet your hypervisor is probably not going to implement 100 percent of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 functionality as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original one," Riley said. "There will be a gap or two and we will be able to detect that."

Well, if he only took cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 effort of looking into our slides, he would realize that, in case of XenBluePill, we were slipping it beneath (not replacing!) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original hypervisor, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original one as nested. So, all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 functionality of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original hypervisor was preserved.

Mr. Riley also shares some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r ground breaking thoughts in this article, but I think we can leave cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m uncommented ;)

This situation is pretty funny actually - we have here cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 words and feelings of some Microsoft executive vs. our three technical presentations, all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code that we released for those presentations, and also a few of our demos. Yet, it's apparently still worth getting into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 news and reporting what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 feeling of Mr. Riley are...

Let me, however, write one more time, that I'm (still) not a Microsoft hater. There are many people at Microsoft that I respect: Brandon Baker, Neil Clift, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 LSD guys, Mark Russinovich, and probably a few more that I just haven't had occasion to meet in person or maybe forgot about at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 moment. It's thus even more sad that people like Mr. Riley are also associated with Microsoft, even more cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 face of Microsoft for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 majority of people. Throwing a party in Vegas and Amsterdam once a year certainly is not enough to change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Microsoft's image in this case...

Interestingly, if Mr. Riley only attended our Xen 0wning Trilogy at Black Hat, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n he would notice that we were actually very positive about Hyper-V. Of course, I pointed out that Xen 3.3 certainly has a more secure architecture right now, but I also said that I knew (from talking to some MS engineers from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtualization group) that Hyper-V is going to implement similar features in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next version(s) and that this is very good. I also prized cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact it has only about 100k LOC (vs. about 300k LOC in Xen 3.3).

So, Mr. Senior Security Strategist, I suggest you do your homework more carefully next time before throwing mud at ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs and trying to negate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir work (and all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 efforts of Microsoft's PR people).

On a separate note, I found it quite unprofessional that ZDNet's Liam Tung and Tom Espiner, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 authors of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 news, didn't ask me for a commentary before publishing this. Not to mention that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y also misspelled Rafal's name and forgot to mention about Alex, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 third co-author of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 presentations.

Saturday, September 06, 2008

Xen 0wning Trilogy: code, demos and q35 attack details posted

We have posted all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code that we used last month during our Black Hat presentations about Xen security, and you can get it here. This includes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 full source code for:
1) The generic Xen Loadable Modules framework
2) Implementation of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two Xen Hypervisor Rootkits
3) The Q35 exploit
4) The FLASK heap overflow exploit
5) The BluePillBoot (with nested virtualization support on SVM)
6) The XenBluePill (with nested virtualization support on SVM)

Beware cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code is by far not user-friendly, it requires advanced Linux/Xen, C and system-level programming skills in order to tweak some constants and run it successfully on your system. Do not send us questions how to compile/run it, as we don’t have time to answer such questions. Also do not send questions how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code works – if you can’t figure it out by reading our slides and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it means you should probably spend more time on this yourself. 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, we would appreciate any constructive feedback.

The code is our gift to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 research community. There is no warranty and Invisible Things Lab takes no responsibility for any potential damage that this code might cause (e.g. by rebooting your machine) or any potential malicious usage of this code, or any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r code built on top of this code. We believe that by publishing this code we help to create more secure systems in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 future.

Additionally, we also posted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 full version of our second Black Hat talk, which now includes all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 slides about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Q35 bug and how we exploited it. Those slides had to be previously removed during our Black Hat presentation, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 patch was still unavailable during that time.

Tuesday, September 02, 2008

The three approaches to computer security

If we looked at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 computer systems and how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y try to provide security, I think we could categorize those attempts into three broad categories:

1) Security by Correctness
2) Security by Isolation
3) Security by Obscurity

Let's discuss those categories in more detail below.

Security by Correctness

The assumption here is obvious: if we can produce software that doesn't have bugs (nor any maliciously behaving code), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n we don't have security problems at all. The only problem is that we don't have any tools to make sure that a given code is correct (in terms of implementation, design and ethical behavior). But if we look at various efforts in computer science, we will notice a lot of effort has been made to achieve Security by Correctness: "safe" languages, code verifiers (although not sound ones, just heuristic based), developer's education, manual code audit, etc. Microsoft's famed Secure Development Life-cycle is all about Security by Correctness. The only problem is: all those approaches sometimes work and sometimes do not, sometimes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y miss some bug and also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are problems that I simple don't believe can be addresses by automatic code verifiers or even safe languages, like e.g. logic/design bugs or deciding on wheatear a given code behaves maliciously or not (after all this is an ethical problem in many cases, not a computer science problem).

To sum it: I think that in some more or less distant future (some people think abuout a timeframe of 50 years or so), we would get rid of all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 implementation bugs, thanks to safe languages and/or sound code verifiers. But I don't believe we could assure correctness of software on any higher level of abstraction cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n implementation level.

Security by Isolation

Because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problems with effectively implementing Security by Correctness approach, people, from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 very beginning, has also taken anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r approach, which is based on isolation. The idea is to split a computer system into smaller pieces and make sure that each piece is separated from 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 ones, so that if it gets compromised/malfunctions, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it cannot affect 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 entities in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system. Early UNIX's user accounts and separate process address spaces, things that are now present in every modern OS, are examples of Security by Isolation.

Simple as it sound, in practice cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 isolation approach turned out to be very tricky to implement. One problem is how to partition cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system into meaningful pieces and how to set permissions for each piece. The ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r problem is implementation - e.g. if we take a contemporary consumer OS, like Vista, Linux or Mac OSX, all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m have monolithic kernels, meaning that a simple bug in any of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel components (think: hundreds of 3rd party drivers running cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re), allows to bypass of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 isolation mechanisms provided by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system (process separation, ACLs, etc).

Obviously cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem is because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernels are monolithic. Why not implement Security by Isolation on a kernel level cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n? Well, I would personally love that approach, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 industry simply took anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r course and decided that monolithic kernels are better cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n micro-kernels, because it's easier to write cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m and (arguably) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y offer better performance.

Many believe, including myself, that this landscape can be changed by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtualization technology. Thin bare-metal hypervisor, like e.g. Xen, can act like a micro kernel and enforce isolation between ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r components in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system - e.g. we can move drivers into a separate domain and isolate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system. But again cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are challenges here on both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 design- as well as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 implementation-level. For example, we should not put all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 drivers into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same domain, as this would provide little improvement in security. Also, how to make sure that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor itself is not buggy?

Security by Obscurity (or Security by Randomization)

Finally we have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Security by Obscurity approach that is based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 assumption that we cannot get rid of all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bugs (like in Security by Isolation approach), but at least we can make exploitation of those bugs very hard. So, it's all about making our system unfriendly to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker.

Examples of this approach include Address Space Layout Randomization (ASLR, present in all newer OSes, like Linux, Vista, OSX), StackGuard-like protections (again used by most contemporary OSes), pointer encryption (Windows and Linux) and probably some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r mechanisms that I can't remember at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 moment. Probably cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most extreme example of Security by Obscurity would be to use a compiler that generates heavily obfuscated binaries from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code and creates a unique (on a binary level) instances of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same system. Alex did his PhD on this topic and his an expert on compilers and obfuscators.

The obvious disadvantage of this approach is that it doesn't prevent cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bugs from being exploited - it only make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 meaningful exploitation very hard or even impossible. But if one is concerned also about e.g. DoS attacks, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n Security by Obscurity will not prevent cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in most cases. The ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r problem with obfuscating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 performance (compiler cannot optimize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code for speed) and maintenance (if we got a crash dump on an "obfuscated" Windows box, we couldn't count on help from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technical support). Finally cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a problem of proving that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole scheme is correct and that our obfuscator (or e.g. ASLR engine) doesn't introduce bugs to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 generated code and that we will not get random crashes later (that we would be most likely unable to debug, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code will be obfuscated).

I wonder if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above categorization is complete and if I haven't forgotten about something. If you know an example of a security approach that doesn't fit here (besides blacklisiting), please let me know!

Sunday, August 31, 2008

Teamwork & Crediting

As cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technology is getting more and more complex, security research, especially offensive security research on a system level, becoming more and more difficult to be done by one person. NX/XD, ASLR, various StackGuard-like things, VT-d, TXT, etc... - all those technologies leave less and less space for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interesting system-level attacks. 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, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 widespread "deployment" of Web 2.0 creates a whole new area to explore, but that is a whole different world (plus cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are still all those "human factor" attacks that exploit user stupidity, but again, this is a different area).

Our Xen 0wning Trilogy is a good example of how a team of researchers can still come up with interesting new system-level attacks against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 very recent and securely design system. Take XenBluePill as an example.

It has first been months of research and coding done by Alex and myself to support nested hardware virtualization on AMD. Then cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was months of Rafal's research about how to load code into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 running Xen on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fly ("Xen Loadable Modules"). That required ability to access Xen's memory in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first place and Rafal's way for doing that was to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DMA attack. But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it turned out that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen 3.3 uses VT-d protection to protect against this very kind of attacks. So cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n I came up with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "Q35 attack" that exploited a problem with recent Intel BIOSes on recent mocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rboards (details are coming this week). But I based my attack on a similar SMM attack that Rafal came up with a few months earlier on a different chipset, when he was looking into ways to compromise SMM handler, as we started thinking about HyperGuard project back cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n and Rafal was curious reliable cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SMM protection is. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 meantime, Alex "converted" our working New Blue Pill that had full support for nested virtualization but was essentially a Windows driver, into a piece of code that was completely OS-independent (own memory management, etc.). Then I finally took Rafal's XLM framework, added a few minor things that were needed to load our "Windows-independent Windows driver" into Xen using XLM, fixed some minor stuff and... it finally worked! But that was possible only because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 joint work by all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 three people togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r.

So, it is simply unfair to attribute all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 glory and fame for our research to "Rutkowska" or "Rutkowska and team", as many news portals did. Please don't forget to credit all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 co-authors! If you really would like to use a generic term, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n "Invisible Things Lab team" would probably serve better.

Speaking of our team, I also have an announcement that starting this month our team has officially been extended by yet anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r person: Rong Fan from Beijing, China.

Rong is a software engineer, focusing on Intel's hardware virtualization technology (VT). A few months ago he wrote to me with some advanced questions regarding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 implementation of our New BluePill that we published after cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last year's Black Hat. Turned out that Rong, as part of his after-hour activity, is porting Bluepill to VT-x. After he succeeded, we decided to share our nested virtualization code for AMD with him so that he could investigate how to do it on VT-x. And about 2 months ago Rong succeeded with implementing full nested virtualization support for our NBP on Intel VT-x! During that time Rong has had an opportunity to find out that working with ITL is quite fun, so he decided to quit his job at Lenovo and joined ITL full time. Right now Rong is busy adding nested VT-x support to a normal Xen hypervisor.

So, Invisible Things Lab is all about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 team work. The whole idea behind ITL is to gacá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a bunch of smart people, so that we could all work on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most exciting problems togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r. Problems that might be too complex or time-consuming for just one person to solve. But it takes more cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n just money to get people to be creative and devote cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves to work. Getting recognition is one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 additional factors often needed. That's why ITL is not interested in "hiding" its employees, but racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r in promoting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir work and fairly crediting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m.

Tuesday, August 26, 2008

Intel patches cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Q35 bug

Yesterday Intel has published an official advisory that addresses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Q35 bug and attack, that we used during Black Hat as one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ways to subvert Xen 3.3 on a VT-d enabled system (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 alternative way was to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen-specific FLASK exploit, that worked even from an unprivileged domain).

One small clarification though: in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 advisory cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y stated that: "Software running administrative (ring 0) privilege can under certain circumstances change code running in System Management Mode." But in fact an attacker might also use this bug to directly modify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor memory, without jumping into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SMM first, just as we did it with our exploit. Also, in case of e.g. Linux systems, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Ring0 access is not strictly required to perform cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack, as it's just enough for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker to get access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PCI config space of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 device 0:0:0, which e.g. on Linux can be granted to usermode applications via cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iopl() system call.

You can download a new firmware for your mocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rboard from here.

Intel did a good job on handling this bug - not only cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y recognized cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 importance of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack, but also released cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 patch promptly. Quite positively surprising as for such a big company.

So, now we're free to publish all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 missing slides about how we exploit this vulnerability that we had to remove from our Black Hat presentation, as well as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exploit code. However, as I'm going to give 2 presentations at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 upcoming ISF conference in Sweden early next week, I thought it would be logical to wait with disclosing this material and present it at this conference, during my technical speech (I will also deliver cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 keynote for this conference). Of course, as soon as I will get back home (Thursday next week), we will publish cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 full slides, exploit codes and all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 demos, as promised earlier.

Speaking of speaking: also next month, Rafal will fly to Oregon, to Intel campus, for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel Virtualization Security Summit, where he will deliver a "compressed" version of our Xen 0wning Trilogy to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technical crowd of Intel employees. Rafal will provide some more details about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 HyperGuard project that we do in cooperation with Phoenix Technologies. Also, in October, Alex will visit Kuala Lumpur and present an updated Bluepilling cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen Hypervisor talk at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Hack In The Box conference.

Wednesday, August 20, 2008

Attacking Xen: DomU vs. Dom0 consideration

As it usually happens, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is some confusion regarding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacks presented in our Xen 0wning Trilogy. Some people think cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are possible only from Dom0 (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen's privileged, administrative domain) while some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r people have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 impression that all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacks are possible from any unprivileged domain (DomU in Xen’s terminology). The truth is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 middle though.

Most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacks we presented do indeed require that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker first obtained access to Dom0 and only from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re can launch furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r attacks. For example cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DMA attacks that allow to overwrite hypervisor memory do indeed assume Dom0 access. The same applies to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Q35 exploit - this one is similar to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above mentioned DMA attacks in that it also requires access to certain hardware (that is possible from Dom0), but has an advantage that can bypass cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor VT-d protection in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 recent Xen 3.3.

There are several reasons why those attacks are still very important though:
1) First note, that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 requirement for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker to have access to Dom0 in order to install e.g. hypervisor rootkits, is similar to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 requirement that in order to install a Windows or Linux rootkit, one first needs to obtain administrator's privileges. Yet we know that Windows or Linux rootkits is a serious security problem.

2) Concerning cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen-based systems specifically: over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last year several bugs have been discovered and published, that allowed an attacker to gain control of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Domain0 from an unprivileged domain (i.e. escape from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtual machine). Rafal has discovered one such bug in December 2007.

3) Recent versions of Xen make deliberate effort to protect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor even from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Dom0. On systems that have IOMMU support (e.g. Intel's VT-d), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor memory is protected from tampering using both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor's ring3/ring0 separation mechanism as well as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IOMMU protection. We showed that those protections can be bypassed.

The attempt to isolate hypervisor and protect it even from attacks originating from Dom0 is not surprising. After all if we would like to treat cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor as a root of trust, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n we should make sure that its code base is minimal. If we now allow Dom0 to effectively be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor (i.e. if we don't care about Dom0-to-hypervisor escalations) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n we should include all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Dom0 code to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor code base, when evaluating hypervisor security. This would result in our "extended hypervisor" having not ~300k lines of code (like current Xen does), but millions of lines of code!

Having said that all about how important it is to prevent all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 possible Dom0-to-hypervisor attacks, I should stress that we also presented an attack that does not require Dom0 access and that can be spawned from an unprivileged DomU domain. As far as I'm aware, Rafal's FLASK bug & exploit (presented in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 2nd presentation) was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first public example of a successful exploitation of an overflow in a bare-metal hypervisor. The bug was a heap overflow and Rafal presented some clever tricks of how to control cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen's heap allocations in order to make this bug exploitable.

Please note that all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rootkit-like stuff that we also presented, i.e. Rafal's Xen Loadable Modules framework and his hypervisor rootkits, as well as Alex's and mine XenBluePill, can all be used with all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above mentioned attacks. So, e.g. if we are on a machine that has VT-d support and run Xen 3.3 we can still use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Q35 attack and get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XLM framework running and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n use it to install e.g. XenBluePill on top of running Xen, as showed during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 3rd presentation. Similarly, we could use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 FLASK exploit and get XLM running again and again used it for installation of 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 stuff.

Hope this clears some confusion about our presentations. As already promised, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 codes and demos and full version of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 2nd talk slides (with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Q35 attack details) will be posted after Intel release cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 patch for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir mocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rboards. Stay tuned.

Friday, August 08, 2008

Our Xen 0wning Trilogy Highlights

Below you can find highlights of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 three presentations, collectively referred to as "Xen 0wning Trilogy", that Alex, Rafal and I gave today at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Black Hat conference in Las Vegas.

Talk #1

1) Practical implementation of reliable and portable DMA attacks from Domain 0 to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor memory.

2) Xen Loadable Modules :) A framework that allows to load arbitrary C code modules into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 running Xen hypervisor. It uses DMA attack from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous point to get access to Xen memory.

3) Two implementations of Xen Hypervisor Rootkits. This was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first time that working hypervisor rootkits have been presented (note cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 distinction between hypervisor rootkit vs. virtualization based rootkits).

Talk #2

1) Discussed how Xen 3.3 makes use of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel VT-d technology to protect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor.

2) Then we discussed how to bypass such VT-d protection on certain mocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rboards, like e.g. Intel DQ35 board.

3) An extra bonus: our attack from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous point allows also to subvert cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SMM handler and e.g. install an SMM rootkit in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system.

4) Discussed ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r Xen security mechanisms like driver domains, stub domains, PV GRUB and also attempted to quickly compare cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state of Xen security design with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Hyper-V and ESX hypervisor.

5) Showed an exploitable heap overflow bug in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor. The bug was in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 FLASK module -- cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NSA implementation of Xen Security Modules. FLASK, however, is not turned on by default, so even though we showed how to successfully exploit this heap overflow (which results in an escape from an unprivileged domain directly to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor), this is not a bug that can be used to 0wn The Planet. It shows, however, what happens when people start adding more and more code into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor.

6) Introduced HyperGuard -- a project done in cooperation with Phoenix Technologies. HyperGuard is going to be a SMM-based integrity scanner for Xen-like hypervisors. With HyperGuard we take a different approach cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r integrity scanners do -- racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than ensuring cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correctness of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code and data of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor, which might be very tricky, we instead ensure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no untrusted code in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor, which is a much simpler task.

Talk #3

1) Provided detailed description of how to implement nested hardware based virtualization on AMD-V and VT-x (a copy of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 slides from my RSA speech in April).

2) Showed how to use this nested virtualization to implement Blue Pill Boot, that can be used to virtualize 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 boot stage. We mentioned cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best defend against this kind of system compromises is a trusted boot mechanism, eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r SRTM or DRTM, as implemented e.g. by Xen's tboot.

3) Consequently we showed Xen Blue Pill that is able to move a running Xen system into a virtual machine on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fly. This, 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, cannot be prevented by neicá 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 SRTM nor DRTM technology. XBP is a good example that running a legitimate hypervisor doesn't always prevent bluepill-like malware from being installed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system.

4) Finally, discussed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XBP detection. First, we noted that all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "VMM detectors", proposed over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last years, that try to detect if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a hypervisor running above, are useless in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case of a bluepilled Xen system. The only one approach that could be used is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 direct timing analysis of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 #VMEXIT times in order to distinguish between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 native Xen case vs. bluepilled Xen case. We noted however, that direct timing analysis will not observe any differences when run from PV domains on AMD processors, and that it will observe little difference when run from HVM domains (7k vs. 5k cycles). The detection is easier on Intel processors, because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 unconditional #VMEXIT that we cannot get rid of.

All cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 three talks can be found here.

Monday, July 07, 2008

0wning Xen in Vegas!

At this year’s Black Hat conference in Las Vegas in August we will be presenting three talks about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor (in)security. The three presentations have been designed in such a way that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y complement each ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r and create one bigger entirety, thus cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can be referred as “Xen 0wning Trilogy” for brevity.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first presentation, Subverting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor, Rafal will discuss how to modify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen’s hypervisor memory and consequently how to use this ability to plant hypervisor rootkits inside Xen (everything on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fly, without rebooting Xen). Hypervisor rootkits are very different creatures from virtualization based rootkits (e.g. Bluepill). This will be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first public demonstration of practical VMM 0wning (proof of concept code will be released, of course).

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second talk, Detecting and Preventing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor subversions, Rafal and I will discuss various anti-subverting techniques (IOMMU, Xen’s driver- and stub- domains) and 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ý bet365y really can protect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen (or similar) hypervisor from compromises. After demonstrating that those mechanisms can be bypassed, we will switch to discussing hypervisor integrity scanning and will present some prototype solutions to this problem.

Our trilogy wouldn’t be complete without discussing virtualization based malware in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 context of bare-metal hypervisor compromises. Thus, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 third speech, Bluepilling cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor, Alex and I will discuss how to insert Bluepill on top of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 running Xen hypervisor. We will show how to do that both with and without restart (i.e. on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fly). To make this possible, our Bluepill needs to support full nested virtualization, so that Xen can still function properly. We will also discuss how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 “Bluepill detection” methods proposed over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last 2 years, as well as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 integrity scanning methods discussed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous speech, fit into this new scenario and how far we are from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stealth malware’s Holy Grail ;)

Special thanks to Black Hat organizers for scheduling all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 three presentations one after anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r in a dedicated Virtualization track on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 2nd day of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 conference (August 7th).

It’s worth noting that we chose Xen as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 target not because we think it’s insecure and worthless. On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 contrary, we believe Xen is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most secure bare-metal hypervisor out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re (especially with all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 goodies in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 upcoming Xen 3.3). Still we believe that it needs some improvements when it comes to security. We hope that our presentations will help making Xen (and similar hypervisors) more secure.

Tuesday, July 01, 2008

Rafal Wojtczuk joins Invisible Things Lab

I’m very happy to announce that a well known researcher, Rafal Wojtczuk, will join our team this month.

For anybody who is serious about OS security research it is hard not to know Rafal’s work. I remember reading his Defeating Solar Designer non-executable stack patch article somewhere around 1998, when I was still a Linux newbie, learning shell programming back at that time ;)

Since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n Rafal published many ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r articles, advisories and exploits, mostly Linux-related. To mention just a few – cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 *BSD procfs vulnerability (2000), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Linux Ptrace vulnerability (2001), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 famous Advanced return-into-lib(c) paper (2002), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vulnerability in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SELinux (2003), a tool for automatic integer overflow discovery in Win32 binaries (2005) and many ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs. He’s also known for his libnids project.

Recently Rafal has been doing a lot of research in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 area of virtualization and VMM security. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 recent months he found vulnerabilities that potentially allowed to escape a VM jail in all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 major virtualization software from Microsoft, VMWare and, of course, Xen.

I wrote “and, of course, Xen”, as Rafal will be presenting a talk at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 upcoming Black Hat about Subverting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor. His talk will be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first one in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 series of 3 presentations about Xen (in)security that Invisible Things Lab prepared for this year’s Black Hat. Stay tuned for more details in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 coming days.

Rafal has been with McAfee Avert Labs until this month.

Tuesday, May 20, 2008

1984?

I can't believe this is happening for real...

So, how can we enforce Google to never do read() on a /var/users/john_smith/heath_records.db? How about a read() implemented from within a kernel-level via RAW-disk access that would never be logged?

I wonder when we would get anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cool service from Google, e.g. "Google Thoughts", where people would be able to store cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir most private and personal thoughts, so that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y could "access and managed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m from all over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world", "in a secure fashion", of course. Right, add cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Thought Police to this picture and welcome to Orwell's Oceania!

There is a difference between using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Web for blog writing vs. giving away all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 private aspects of your life for free to some corporation in an unencrypted form. I wonder whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 people who understands cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 notion of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 local hard disk will be vaporized some time...

Wednesday, April 30, 2008

Vegas Training 2008

Last year we debuted with our Understanding Stealth Malware training at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Black Hat Vegas. We had about 70 participants and I think it was a reasonable success, especially that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 training was announced very late. Since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n we have done a couple of on-site classes and also have been continually updating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 training.

During our 2nd public edition, at Black Hat Europe 2008 in March this year, we significantly extended cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 part about virtualization, e.g. by adding discussion of nested virtualization on AMD-v and showing and analyzing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual code for implementing this. Also we have used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 New Blue Pill code with VT-x support (previously it worked only on AMD-V), making it possible to use both AMD and Intel machines for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 class. This allowed us to offer this training in a "Bring Your Own Laptop" fashion, that we know is much preferred by attendees, who simply feel better when using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own, known, work environment.

At cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 upcoming Black Hat Vegas 2008 we are also going to offer this class. That would be our 3rd public edition. Again, we hope to improve it even more beyond what we have presented at BH Europe 2008. Similarly as last time, we will not provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 computers, but racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r expect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attendees to bring cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own systems. At cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of this article are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 requirements that should be met by your machine, if you would like to use it during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 training and be able to do all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exercises. Of course, you should back up all your important data before coming to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 class, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 computer might become corrupt after doing some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exercises (although this has never happened so far).

There will be only one class offered on August 4/5 (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 weekday class). You can view cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 detailed training agenda that we used for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BH Europe class in March here. Please note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exact shape of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Vegas class is subject to be a bit different, as we are planning to add new material again.

This might be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 very last chance for you to attended this specific training, as it's quite possible that next year we will be offering some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r class, focused on Virtualization security entirely. Don't worry, however, if you don't get a seat in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Vegas class, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is still a chance to have that class presented on-site in your town.

You can register for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Vegas training here.

See you in Vegas!

Hardware Requirements
  1. 64-bit (x64) AMD or Intel processor with hardware virtualization support (AMD-v or VT-x)
  2. DVD-ROM
  3. 2GB RAM (for convenient work with VMWare)
Software Requirement
  1. 64-bit Vista OS (primary OS, non virtualized)
  2. Windows Driver Kit (WDK) 6000 or newer (available via MSDN subscription).
  3. VMWare Workstation 6.x or VMWare Player 2.x (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latter is free)
  4. Optionally: IDA Pro 5.x disassembler (for exercises that involve finding bugs in drivers)
AMD Processors
Most modern AMD mobile processors, like e.g. AMD Turion and Athlon, used in modern laptops support AMD-v technology. Unfortunately cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no single place on AMD website that would provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 complete description of all CPUs that support AMD-v technology or provide an answer whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a given model does support it. When in doubt use google and always verify with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CHKSVMX program described below.

Intel Processors
Most modern Intel processors used in notebooks support Intel VT-x virtualization technology, this include Core 2 Solo, Core 2 Duo (except T5500, T5550 and T5750 models) and Core 2 Extreme. You can check your own model starting at this website, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n chose your processor family and chose "Specifications" tab. Make sure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor supports "Intel® 64 architecture" and "Intel® Virtualization Technology".

Using Mac for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 training
You can very easily use MacBook or MacBook Pro for this training. You can easily install Windows on a second partition using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Boot Camp program that ships with all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 newer Macs. You simply start Boot Camp application when running Mac OS X and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it automatically shrinks your current Mac partition, creates a new one for Windows, and asks to insert cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 installation media and reboots cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system and you cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n perform normal Windows setup (after installation is complete your Vista should find all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 necessary drivers via Windows Update). You might also want to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 free AutoHotKey program for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right-click emulation on your newly installed Vista. Please don't worry that Boot Camp tells that you should install a 32-bit Vista - you can ignore this and insert a 64-bit Vista installation disk.

Testing your machine with CHKSVMX
We have prepared a special little program, CHKSVMX, to test whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a given machine indeed supports hardware virtualization technology. The CHKSVMX program can be downloaded from here

The program doesn't introduce any persistent changes to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS and doesn't require any installation procedure. It checks for virtualization support (on both AMD and Intel processors) not only by reading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPUID information but also by trying to actually enable virtualization mode and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n disable it again. Although most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 laptops available cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se days support hardware virtualization, in many cases this feature is disabled or locked down in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtualization is reported as "locked", please try to enable it in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS. Please note that in most cases you will have to fully power down your system for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS changes to take effect (reboot is not enough)!

Additionally CHKSVMX checks whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a 64-bit edition of Windows is running, as such OS is required for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 training.

DISCLAIMER: The test program is digitally signed with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Invisible Things Lab's certificate and we assure that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 program does not perform any malicious actions. ITL is, however, not responsible for any accidental damage or system instability issues cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 test program might cause.

Monday, April 14, 2008

Research Obfuscated

Update 07-Sept-2008: Four months later after writing his open letter to me (see below), Christofer Hoff experienced on his own difficult it is for one to control cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 press, making sure it correctly reports what you say. In this blog entry he describes how he was terribly misquoted by a report after his Black Hat presentation and he also explicitly admits that "[I] was essentially correct in [my] assertion during our last debate that you cannot control cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 press, despite best efforts." and that "[he] humbly submit[s] to [me] on that point." :)

This article has been brought to my attention recently. It’s an “Open Letter to Joanna Rutkowska”, by Christofer Hoff over at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 “Rational Survivability” blog. I decided to spend time reading and answering this piece as 1) technorati.com reported cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 blog’s authority as above 100 which suggests it has a reasonable number of readers, and also 2) because I believe this is a good example of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 social engineering techniques used by my opponents and I couldn’t refrain myself from not commenting about this. Besides I felt a bit flattered that some individual decided to write an “Open Letter” to me, sort of like if I was a prime minister or some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r important person ;)

Let me now analyze cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 letter, point by point:
  1. Fire rules! The first thing that Hoff accuses me of in his letter is myself being an irresponsible individual, not caring about safety of my audience (not a joke!):
    “As cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 room filled to over capacity before your talk began, you were upset and couldn't seem to understand why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 conference organizers would not let people spill over from seats and sit on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 floor and in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 aisles to hear you speak. The fact that fire and safety codes prohibit packing a room beyond capacity was something you attributed to people being "...crazy in America." Go figure.”
    Dear Christofer, if you only read my recent blog post about this very specific incident, read thoroughly shall I say, you would notice this paragraph undoubtedly:
    “Interestingly it was perfectly ok for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 additional people to stay in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 room, provided cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y arranged for additional chairs for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves. In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words it was fine for people to sit and block cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main aisle, provided cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y sit on chairs, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y couldn’t stay and sit on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same aisle without having a chair (maybe a "certificated" chair also), as that would be against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fire regulations!”
    Conclusion: I was not so much picking upon cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fire regulations that forced people to leave cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 room, but racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idiotic rule, that allowed those same people to stay in this very same room, provided cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y also had additional chairs with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m.

  2. Type I vs. Type II hypervisors confusion. Hoff cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n switches to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual content of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 presentation and writes this:
    “When I spoke to you at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of your presentation and made sure that I understood correctly that you were referring specifically to type-2 hosted virtualization on specific Intel and AMD chipsets, you conceded that this was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case.”
    This simply is an incorrect statement! On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 contrary, when describing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security implications of nested virtualization (which was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual new thing I was presenting at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RSA), I explicitly gave an example of how this could be used to compromise type I hypervisors. Kindly refer to slides 85-90 of my presentation that can be downloaded here.

    I said that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code we posted on bluepillproject.org indeed targets type II hypervisors and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only reason for that being that it has been built on top of our New Blue Pill code that was designed as a Windows kernel driver.

  3. Shit not giving. Mr. Hoff goes even furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r:
    “When I attempted to suggest that while really interesting and intriguing, your presentation was not only confusing to many people but also excluded somewhere north of 80% of how most adopters have deployed virtualization (type-1 "bare-metal" vs. type-2 hosted) as well as excluding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 market-leading virtualization platform, your response (and I quote directly) was: I don't give a shit, I'm a researcher.
    Now that was a hard blow! I understand that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 usage of such a slang expression by an Eastern European female during an informal conversation with a native speaker must have made an impression on him! However, I couldn’t give such an answer to this very question, simply because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reasons given in point #2 (see above).

    If I remember correctly, I indeed used this very American expression to answer somebody’s concern (undoubtedly our Christofer Hoff’s) that most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 type I hypervisors out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are based on monolithic hypervisor architecture, and not on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 micro-hypervisor architecture (and that I should not try to convince people to switch to micro-hypervisor architecture). In that context it makes it more logical for me to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 “I’m a researcher” as an excuse for not caring so much that most people use monolithic based hypervisors. Obviously, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 usage of micro-hypervisors would allow to better secure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole VMM infrastructure. And I also said, that I don’t care what people are using today, because I try to help to build a product that would be secure in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 future (Phoenix’s HyperCore).

  4. No obfuscation postulate. Hoff cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n comes up with some postulates that:
    “[I], as a researcher who is also actively courting publicity for commercial gain and speaking at conferences like RSA which are less technical and more "executive" in nature, you have a responsibility to clarify and not obfuscate (intentionally or ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 facts surrounding your research.”
    This postulate is cleverly constructed because it also contains an embedded accusation of me being a commercially motivated researcher. Well, I never tried to hide that fact, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reason for this is very simple: I consider security research as my job, and one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 primary goals of any job is to… bring commercial gain to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 individual doing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 job.

    Second, I really don’t understand what Hoff means by asking me to not obfuscate my research?! Maybe he was just disappointed that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 presentation was too technical for an average CISSP to understand it? But, well, this presentation was classified as “Advanced Technical”, which was displayed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 conference program. I still did my best so that, say 70% of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 material, was understandable to an average IT people, but, come on, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re always must be some deep technical meat in any non-keynote-presentation, at least this is my idea for how a conference should look like.

  5. Commercially motivated. Hoff accuses me of presenting commercial product, i.e. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Phoenix’s HyperSpace, during my speech:
    “No less than five times during your presentation, you highlighted marketing material in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 form of graphics from Phoenix, positioned cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir upcoming products and announced/credited both Phoenix and AMD as funding your research.”
    Well, let me tell you this – this was one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main reasons why I decided to speak at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RSA – just to announce this very product that I try to help to secure. Why would that be wrong?

    BTW, I have no idea how Mr. Hoff concluded that AMD was founding my research. I never said that, nor did I have it in my slides. Needles to say, AMD has not been founding my research. NOTE: interestingly I consider this particular mistake by Hoff to be accidental – at least I don’t see how this could be connected to any PR campaign, in contrast to 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 incorrectness he made use of.

  6. Independence. Hoff, for some reason, apparently known only to him, tries to argue that I’m not an “independent researcher”:
    “I think it's only fair to point out that given your performance, you're not only an "independent researcher" but more so an "independent contractor." Using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "I'm a researcher" excuse doesn't cut it.”
    “I know it's subtle and lots of folks are funded by third parties, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y also do a much better job of drawing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 line than you do.”
    Well, I found this one to be particularly amusing, as, for at least several years now, I have not claimed I have been an independent researcher.

  7. Final hit. You might have been wondering by now – why this gentleman, nah, I think “cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 guy” would fit better here, so why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 guy decided to spent so much time to write all those points, all those quasi-arguments and why he made so many “mistakes”? Well he seems to give an answer right in this paragraph:
    “I care very much that your research as presented to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 press and at conferences like RSA isn't only built to be understood by highly skilled technicians or researchers because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 continued thrashing that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y generate without recourse is doing more harm than good, quite frankly.”
    Aha, now all is clear. May I ask cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n, which virtualization vendor you write PR for? ;)

So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n Hoff quotes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Forbes article that was written after my presentation and accuses me that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 article (written by some Forbes reporter) was too sensationalist. I definitely agree cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 article was very sensationalist (but correct) and when I saw cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 article I even got angry and even wanted to write a blog about it (but as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 article was actually correct, I had no good arguments to use against it). And you know why I was so angry? Because I actually spent over 40 minutes with this very Forbes reporter in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RSA’s speaker’s lounge just after my speech, I spent that time on clarifying to that guy what my presentation was about and what it was not about and what was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main message of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 presentation. Still, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reporter had his own vision of how to write about it (i.e. make it into a sensation) and I hardly, as it turned out, could do anything about it…

So, what was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main massage of my presentation? Interestingly Mr. Hoff forgot to mention that… Let me cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n remind it here (a curious reader might want to have a look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 slide #96 in my presentation):
  • Virtualization technology could be used to improve security on desktop systems

  • However cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are non-trivial challenges in making this all working well...

  • ... and not to introduce security problems instead...

Additionally, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message I was trying to pass during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole presentation was:
“Keep hypervisors simple, do not put drivers cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, as ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise we would get to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same point where we are with current OSes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se days, i.e. no kernel security at all!”
Now I wonder, maybe Christofer Hoff doesn’t do PR for any VMM vendor, maybe he just didn’t listen carefully to my presentation. Maybe he’s just one of those many guys who always know in advance what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y want to hear and selectively pick up only those facts that match cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir state of mind? Ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise, why would he not realize that my presentation was actually a pro-virtualization one and needed no (false) counter-arguments?

Saturday, April 12, 2008

The Most Stupid Security News Ever

Seems like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BBC reporters have a shortage of subjects to write about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se days… Maybe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next winter we will also be able to read about how many snowflakes fell during Christmas all over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world or something like that (which BTW, would still be way more interesting that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 news quoted above).

I remember that some time ago, a group of researchers used automatic generators to create a few tens of thousands of variants of some malware, just to do some testing of A/V engines. And I remember how all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 A/V people were complaining how irresponsible that was bla bla bla, as now cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y would have to work after hours to fight all this new malware. What a BS!

For any given class of a bug (think: exploits), or a file infection method (think: viruses), or a system compromise technique (think: rootkits, stealth malware), one can come up with pretty much infinite number of examples that would be exploiting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 specific bug, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 specific file infection method, or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 specific system compromise technique. One virus would display you a “Hello, you’re being 0wned, sir.” Message, while 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 one would just flash your keyboard leds. Sure, two different beings, but if exploiting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same mechanisms, also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protection against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same.

But, I know, it looks so cool in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 news to read: “The number of viruses, worms and trojans in circulation has topped cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one million mark”. It’s most definitely a good way to scare all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 housewives and make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to rush to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 computer shop at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 coroner to buy cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 brand new A/V product that already can detect 99.9% out of all those scary things out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re.

Wednesday, April 09, 2008

The RSA Absurd

Today I was giving a speech at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RSA Conference in San Francisco. The RSA is a really big conference and also seems to me like a very well organized one – e.g. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y have all those computers at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 registration hall where you put your name and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it immediately says to which check-in counter you should proceed and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n when you get 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 already have a badge waiting for you. Pretty cool stuff.

So my speech turned out to be scheduled in a very small room, say with seats for 100-200 people only (I haven't counted exactly). But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it turned out that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are more people interested in seeing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 speech, so, as it usually happens on conferences, people started seating on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 floor and also standing at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 back of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 room. I would say cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was about 30% overflow, but still cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y could fit ok in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 room. And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n came this guy from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 conference and said that all people who don’t have a seat should leave cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 room! It turned out that this is a fire regulation.

Interestingly it was perfectly ok for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 additional people to stay in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 room, provided cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y arranged for additional chairs for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves. In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words it was fine for people to sit and block cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main aisle, provided cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y sit on chairs, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y couldn’t stay and sit on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same aisle without having a chair (maybe a "certificated" chair also), as that would be against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fire regulations!

Yes, I know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are more examples of stupid pseudo-security rules (think airports), but, come on, this is on of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most well known security conference...

That situation annoyed me so much (because, of course, it turned out to be impossible to arrange for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 additional chairs, so all those people had to leave) that I decided to submit this story to my blog using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 totally unsecured public WiFi in my hotel. It was really unwise for me to do that, as Google’s Blogger uses HTTPS only for aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication (i.e. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 login screen) but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it switches back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 good old plain text HTTP, making it possible for some evil guy sitting in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lobby to hijack my session. Is it that I miss something here or Google simple forgot that it is 2008 and not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 90’s anymore? Anyway, I'm just taking this risk bravely, hoping that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potential attacker, seeing my determination here, would refrain cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves from compromising this blog.

I know, I know, instead of complaining about Google, I should just move my blog to some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r place. One day that’s gonna happen for sure :)

Monday, March 31, 2008

Kick Ass Hypervisor Nesting!

Remember how at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Black Hat Vegas 2007 I said that we still didn't support virtualization of full VMMs, like e.g. Virtual PC 2007 with hardware virtualization enabled, and that currently we could only run very simple hypervisors inside our New Blue Pill (like e.g. ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r NBPs inside NBP)? Remember how I said that we were working on this and should have a solution in about 2 months from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n?

So, just about 2 weeks ago we did it! We can now virtualize complex hypervisors, like e.g. Virtual PC 2007 or Virtual Box with SVM turned on (BTW, we can also run VMWare Workstation, but that doesn't count, as on AMD processors it doesn't make use of SVM instructions). We also have a prototype code that allows to run nested hypervisors on VT-x but that code requires a bit of more polishing (oh, didn’t you know that our NBP also supports VT-x cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se days?).

I couldn't resist not to use my favorite Matrix analogy to describe what we do here: imagine Neo, who bravely followed The White Rabbit and finally decided to swallow The Red Pill, eventually awakes on The Nebuchadnezzar ship just to find out later that this whole "real world" is... just anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r Matrix...

I don't have a nice Matrix picture for that, so instead I will just show you a picture of a Virtual PC 2007 running inside an already bluepilled Vista and running Windows XP as its own guest. You can see that we use our "bpknock" testing program just to show we can intercept events in both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 guest (i.e. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Vista that hosts cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VPC hypervisor) as well as in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 nested guest (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XP running inside cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Virtual PC). This bpknock program simply executes CPUID instruction with some magic value in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RAX register and NBP intercepts that and answers with a magic RAX. BTW, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was no special reason to chose CPUID instruction for that, normally we don't need to intercept CPUID on AMD at all, so we could have chosen pretty much anything else, e.g. magic output to some magic I/O port.



It's worth mentioning that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r working example of nested hardware virtualization I'm aware of is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IBM z/VM hypervisor for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IBM z series mainframe. If anybody knows any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r example, please send me a link.

The research on nested virtualization has been supported by Phoenix Technologies, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 nested virtualization has also some positive applications. Phoenix is working on a cool product called HyperSpace. It consists of a hypervisor (called cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "HyperCore") that allows running a few unmodified OSes inside hardware virtual machines so users can switch between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m just like if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y were virtual spaces on Mac or Linux. At cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re will be two virtual machines available: one running standard Vista and 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 one based on Linux, that would contain some useful functionality like e.g. a Web browser, an email client and a multimedia suite, and also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re would be something called cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "ManageSpace" to manage this all.

So, how this is going to be different from e.g. XEN? The difference is that XEN is focused on server applications, while HyperSpace is intended for notebooks, which means it puts lots of efforts to offer comparable graphics (and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r devices) performance as we have on normal non-virtualized laptops. This all will be possible because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 recent virtualization technology advances like e.g. VT-d/IOMMU.

At cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RSA conference in San Francisco next week, I will be giving a speech that will discuss some technical problems we had to solve in order to get hardware nested hypervisoring working on AMD and also how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 situation looks on Intel. I will also discuss how this changes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security battlefield and why virtualization vendors should care.

Back to Blue Pill -- cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 brand new source code with full virtualization support on AMD is now available on bluepillproject.org (you will need WDK6000 or newer to build it). Note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 (experimental) code for nested virtualization on Intel VT-x has been removed in this public version, leaving only cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 basic functionality if we run NBP on an Intel processor.

Also, please note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code for AMD-v, even though it proved to be very stable, is still just a proof of concept. This means for example, that we don’t do any error-checks in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SVM instruction handlers, so it’s trivial for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 nested hypervisor to simply crash cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole system if executing one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SVM instructions with incorrect arguments or in an incorrect situation (e.g. CPL > 0). But that is hardly a problem for Blue Pill, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 guest isolation has never been a goal here. Of course, this could be simply addressed by adding a few more lines of code to each handler that would check for error conditions and inject #UD or #GP back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 nested hypervisor if it executed something incorrectly. Of course, we’re too lazy to code that ;)

So, what’s next? Well, we hope to show something even cooler at this year’s Black Hat Vegas, but I won’t say anything more now.