Friday, December 14, 2012

Qubes 2 Beta 1 with initial Windows support has been released!


It's my pleasure to announce cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first Beta for Qubes Release 2 is now available for download.

This release introduces generic support for fully virtualized AppVMs (called HVMs in Xen parlance), and specifically initial support for Windows-based AppVMs integration. It's been quite a challenge to add support for secure HVMs to Qubes without breaking its security architecture, and I already wrote about it in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 past.

Generic support for HVMs means you can now install many different OSes as Qubes VMs, such as various Linux distros, BSD systems, and, of course, Windows. Essentially all you need is an installation ISO and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole process is similar to creating a VM in a program like Virtual Box or VMWare Workstation (although we believe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 underlying architecture for this is more secure in Qubes).

Additionally we provide a set of tools for Windows-based AppVMs (Windows 7 specifically) which allow for tight integration with 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 Qubes system. This currently includes support for secure (and policy controllable) clipboard and file exchanges between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Windows-based AppVMs and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r AppVMs, integration with Qubes advanced networking infrastructure, and PV drivers for faster operation. As of now cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is still no seamless app integration for Windows applications, so Windows VMs are presented as full-desktop-within-a-window, but we're aiming to add support for this in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next Betas.

Unlike cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of Qubes, which is distributed under a GPL v2 license, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Qubes Windows Support Tools are not open sourced and are distributed as binaries only, under a proprietary license. They are free to use for any Qubes 2 user. The tools are not part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Qubes 2 installation ISO (which is GPL), and are down loadable on demand.

More information about creating and using HVM domains, including Windows-based AppVMs, can be found in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wiki here.

To summary, here's a quick list of some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exciting new features that toady's release brings in:
  • Support for generic fully virtualized VMs (without qemu in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TCB!)
  • Support for Windows-based AppVMs integration (clipboard, file exchange, qrexec, pv drivers)
  • Secure audio input to select AppVMs (Hello Skype users!)
  • Clipboard is now also controlled by central policies, unified with ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r qrexec policies.
  • Out of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 box TorVM support
  • Experimental support for PVUSB
  • Updated Xorg packages in Dom0 to support new GPUs
  • DisposableVM customization support
  • ... and, as usual, various fixes and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r improvements :)
Existing users of Qubes R1 can upgrade without needing to reinstall – cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 upgrade procedure is described here. Standard installation is described here.

Enjoy!

PS. Please send all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technical questions to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 qubes-devel mailing list, instead posting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m as comments to this blog. Keep cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments here for more generic discussions.

PS2. As usual, I would like to remind that we have little control over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 servers that are used for Qubes ISO distributions and that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 downloads should be verified according to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 procedure described here. We always assume that even our own servers (git, wiki, yum) could be compromised, and yet this should not affect Qubes security in any way, because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 extensive use of digital signatures everywhere in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 development and distribution process.

Wednesday, September 12, 2012

How is Qubes OS different from...

Many people ask how does Qubes OS differ from ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r approaches to desktop security. Today I'm trying to answer cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most popular questions.
  • Why bocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r with Qubes OS, if any Linux/BSD already allows to setup different user accounts, or some form of light-weight containers or sandboxes, such as chroot, LXC, SELinux?
First, if you use Xorg or similar X-based server as your GUI server, and this is what nearly all Linux, and most 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 non-Windows OSes use, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you don't have any form of GUI-level isolation, which is essential for a desktop system. I wrote more about this surprising problem some time ago. Proper GUI-level isolation was one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main goals for Qubes.

Second, all mainstream desktop OSes, such as Windows, Linux, BSD, even OSX, are all based on a monolithic kernels, which present a significant security problem. This is because a typical monolithic kernel of a contemporary desktop OS contains tens of millions of lines of code, and to make it worse, most of this code is reachable from (untrusted) applications via all sorts of APIs, making cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack surface on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel huge. And it requires just one successful kernel exploit to own cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole system, bypassing any security mechanisms that might have been built on top of it, such as SELinux, LXC, etc.

Additionally, all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 various drivers, networking and USB stacks, are also hosted in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel, making attacks via buggy networking (e.g. via buggy 802.11 stacks or buggy firmware) or USB stacks a practical possibility. And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is essentially nothing one can do about it, when using an OS based on a monolithic kernel.

In Qubes, 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 use Xen hypervisor to provide security isolation between domains, and Xen is just a few hundred of thousands lines of code. It also doesn't need to provide all sorts of APIs to applications, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor is essentially only interested in CPU scheduling, memory management and power management, and very few things beyond that. Most notably, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor knows nothing about networking, disk storage, filesystems, USB stacks, etc, as all those tasks are delegated to (often untrusted) service VMs.
  • How is Qubes better than just running a bunch of VMs in VMWare or Virtual Box?

First, products such as VMWare Workstation or Fusion, or Virtual Box, are all examples of type II hypervisors (sometimes called “hosted VMMs”), which means that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y run inside a normal OS, such as Windows, as ordinary processes and/or kernel modules. This means that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS-provided services for all sorts of things, from networking, USB stacks, to graphics output and keyboard and mouse input, which in turn implies cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can be only as secure as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hosting OS is. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hosting OS got compromised, perhaps via a bug in its DHCP client, or USB driver, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it is a game over, also for all your VMs.

Second, those popular consumer type II VMM systems have not been designed with security as a primary goal. Instead, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir main focus has been on easy of use, performance, and providing seamless integration of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 guest OS(es) with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 host OS. Especially cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latter, which involves lack of good method to identify which domain a given application belongs to (so, lack of trusted Window Manager), support for shared clipboards which every ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r VM can steal, insecure file sharing methods, and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs, all make it not a very desirable solution when strong domain isolation is important. (This is not to imply that Qubes doesn't support clipboard or file sharing between domains, it does – it's just that we do it in a secure way, at least so we believe). 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ý bet365re are many usability improvements in Qubes that are specific to multi-domain system, and which you won't find in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above mentioned products, such as trusted Window Manager that, while maintaining great seamless integration of all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 applications onto a common desktop, still allows cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user to always know which domain owns which window, support for advanced networking setups, per-domain policies, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 just mentioned secure mechanisms for clipboard and filesystem sharing, and many ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r. Qubes also focuses on making cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VMs light-weight so that it was possible to run really a lot of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same time, and also on mechanism to allow for secure filesystem sharing between domains (templates).

Finally, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 commercial hosted VMMs are really bloated pieces of code. They support everything and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kitchen sink (e.g. Open GL exposed to VMs, and various additional interfaces to allow e.g. drag and drop of files to/from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM), and so, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack surface on such a VMM system is orders of magnitude bigger than in case of Qubes OS.
  • How does Qubes compare to [your favourite academic microkernel]? 
While cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor can indeed be considered a microkernel if you're not a strict terminology freak, Qubes itself is much more than just cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor. Qubes is everything that is needed to build a reasonably secure desktop OS on top of a baremetal hypervisor (or microkernel). Theoretically, with just a few cosmetic changes (at least architecture-wise), Qubes could perhaps swap cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor for some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hypervisor or microkernel, such as perhaps Hyper-V, KVM, or some more exotic one. Thus, it makes little sense to compare Qubes with a hypervisor or microkernel project. What makes sense is to compare cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor, as used in Qubes, with some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hypervisor or microkernel.

Ok, so how does Xen compare with ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hypervisors or microkernels out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re? We think Xen is unique because it combines an elegant architecture (type I, baremetal, hypervisor) with a number of practical features, such as power management, support for Intel VT-d and driver domains, support for both para-virtualizaed, and fully-virtualized VMs, and many more, not found in e.g. academic microkernels/hypervisor projects, that ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise seem attractive from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 architecture point of view.
  • How is Qubes better than Google Chrome OS?
 First, Chrome OS is not a general purpose OS. Second, it's based on Linux with all its security limitation that are a result of using a monolithic kernel described above (e.g. all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 networking and USB stacks in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel without a possibility to deprivilige cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m). Not being a traditional general purpose OS, Chrome is able to avoid many of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 challenges of desktop computing, such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 need to define security domains, inter-domain file exchange (as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is essentially no filesystem visible to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user), and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs, which is good, of course. But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n again, Chrome OS is essentially just an environment to run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Chrome Browser, so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comparison to Qubes is a bit of a misunderstanding.

Technical aspects aside, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is always cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 privacy concern associated with running everything in a browser – why would all my private data be managed and accessible to some 3rd party organizations and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir administrators?
  • How is Qubes better than [your favorite commercial military-grade certified secure OS]?
You must have heard about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 super secure military-grade, formally verified, 100% certified, and generally “unbreakable” operating systems made by companies such as Green Hills, Lynx Works, and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs. How do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y compare to Qubes OS?

Really, I have no idea. For a mere mortal like myself (and perhaps not a US citizen), it seems impossible to get any more technical documentation of those systems (anything beyond cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 marketing pseudo-technical gibberish), not to mention a trial copy to play with...

Thus, from my point of view, those systems are just a vaporware. If you, my dear reader, are privileged enough to have access to such system, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n good for you, but don't expect me to treat seriously a security product that is not available for a wider audience to touch and play with... (And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Chineese surely have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 copies already to play with ;)
  • How is Qubes different than Bromium's “micro virtualization” solution?
Many people asked recently about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Bromium's upcoming product and how it differs from Qubes OS. Unfortunately cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are few public information available on this product – essentially cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is one not-very-technical whitepaper and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are Ian Pratt's presentation slides from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 recent XenSummit about u-Xen, apparently a hypervisor that is to be ultimately used in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir upcoming product.

The whitepaper suggests that Bromium is based on a hosted (type II) hypervisor running within a normal Window OS, and that this hypervisor is used to spawn a new “micro VM” for each new “task”, where apparently cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 task might be something as granular as opening a new tab in a Web browser, which makes it somehow similar to Google Chrome's approach. Clearly, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Bromium's main goal seem to be to automate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process of creating separation domains, which is in contrast with what we do on Qubes OS, where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user is required to define cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 domains explicitly.

The Pratt's slides provide also some technical insight into how Bromium intends to secure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir hypervisor. As just discussed above, a hosted hypervisor must normally trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hosting OS, in this case Windows, which, for obvious reasons, is not a good idea from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security standpoint. Pratt, however, clearly states that “host (...) can not interfere with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 privacy or integrity of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor or ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r guests” (slide #8). This is a strong statement, so let's take a closer look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir approach to this problem.

The Bromium's idea of how to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir hypervisor (and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VMs) protected from a potentially malicious host OS is not really breakthrough: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 slides suggest to “deprivilege cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 host into a VT-container” (I think cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 verb to bluepill is now an accepted term for such action ;), and to remove cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 host's access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor pages (via EPT), as well as protect DMA access from devices via VT-d, plus to make this all sensible, use DRTM scheme such as Intel TXT, to load such a hypervisor from within a potentially untrusted OS.

So, what's wrong with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea of a load-on-cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365-fly-secure-VMM-system? Isn't Ian Pratt correct that one could protect its memory and execution from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interference of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 host? Actually that is possible – Intel TXT, VT-x, VT-d, and EPT give us means to achieve that (although cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are a number of catches here). But he's missing one important point: it's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 untrusted OS that still owns and manages cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 input devices (e.g. via USB stacks and drivers) and, most importantly, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output (via cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GUI subsystem and drivers). Ensuring that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 host OS cannot interfere (e.g. sniff cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen of trusted applications) might be very difficult, or even impossible, in practice.

If I ever was to break cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security of such a system, I would just follow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 simple way:
1) Infect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 host e.g. via one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 many USB attacks (remember cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y cannot have sandboxed USB driver domain, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y have only a type II hosted hypervisor),
2) Hook somewhere into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GUI subsystem and keep recoding all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interesting data from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen...
... or something like that ;)

There are also many ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r things that needs to be answered and which cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 publicly available documents are silent about, such as e.g. how does cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system handle installation of new applications? How is clipboard and file exchange between (micro)VMs handled? How large are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interfaces exposed to each (micro)VM? For now, without a solid documentation available, and without any code to play with, it is just anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r vaporware for me. (Interestingly cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re seem to be Bromium's Beta program, which however doesn't seem to be working, at least not for me -- I tried to signup twice, but never got any confirmation or response...?)
  • How is Qubes different from Xen Client?
In many aspects, Xen Client might be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most similar product to Qubes OS. Like Qubes, it is based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor and so it is also a standalone OS, that one must install instead of one's favorite system, and also, like Qubes, it is targeted for desktop systems, and also offers a possibility to run a few VMs at a time.

However, XenClient has been designed with a different goal in mind, namely as a “Virtual Desktops To Go” solution, while Qubes has been designed to provide seamless experience for secure multi-domain desktop system. As a result, lots of focus in Qubes has been put on creating trusted GUI subsystem, support for advanced networking configurations, secure inter-VM clipboard and file sharing, secure method to reuse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same filesystem as a basis for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 AppVMs, and also to optimize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 AppVMs so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y start almost instantly and take little memory, so that one could easily run many of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same time. All those things seem to be missing from Xen Client (as well as solid technical documentation about its design).

***
I surely have missed a few ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r products or approaches -- feel free to point cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m out in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments, and I might write a continuation post one day.

Monday, September 03, 2012

Introducing Qubes 1.0!

After nearly three years of work, I have a pleasure to announce that Qubes 1.0 has finally been released! To see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 installation instructions and to get an ISO, please go to this page.

I would like to thank all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 developers who have worked on this project. Creating Qubes OS has been a great challenge, especially for such a small team as ours, but ultimately, I'm very glad with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final outcome – it really is a stable and reasonably secure desktop OS. In fact I cannot think of any more secure alternative...

I use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 term “reasonably secure”, because when it comes to defensive security it's difficult to use definite statements (“secure”, “unbreakable”, etc), unless one can formally prove cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole design and implementation to be 100% secure.

Unfortunately, contrary to common belief, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are no general purpose, desktop OSes, that would be formally proven to be secure. At cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 very best, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are some parts that are formally verified, such as some microkernels, but not whole OSes. And what good is saying that our microkernel is formally verified, if we continue to use a bloated and buggy X server as our GUI subsystem? After all, a GUI subsystem has access to all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user inputs and output, thus it is as much security sensitive, as is 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 microkernel! Or power management subsystem, or filesystem server, or trusted boot scheme, or ... a dozens of ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r elements, which just cannot be forgotten if one wants to talk about a truly secure OS. As said before, I know of no general-purpose desktop OS that would be formally proven, and thus that could be called “secure”. You can also read more about challenges with formal verification microkernels in this article, and especially in this comment from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 seL4 project leader.

In Qubes OS we took a practical approach and we have tried to focus on all those sensitive parts of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS, and to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m reasonably secure. And, of course, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first place, we tried to minimize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 amount of those trusted parts, in which Qubes really stands out, I think.

So, we believe Qubes OS represents a reasonably secure OS. In fact I'm not aware of any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r solution currently on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 market that would come close when it comes to secure desktop environment. But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n again, I'm biased, of course ;)

I wouldn't call Qubes OS “safe”, however, at least not at this stage. By “safe” I mean a product that is “safe to use”, which also implies “easy to use”, “not requiring special skills”, and thus harmless in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hands of an inexperienced user. I think that Apple iOS is a good example of such a “safe” OS – it automatically puts each application into its own sandbox, essentially not relaying on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user to make any security decisions. However, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 isolation that each such sandbox provides is far from being secure, as various practical attacks have proven, and which is mostly a result of exposing too fat APIs to each sandbox, as I understand. In Qubes OS, it's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user that is responsible for making all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security decisions – how to partition her digital life into security domains, what network and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r permissions each domain might have, whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r to open a given document in a Disposable VM, etc. This provides for great flexibility for more advanced users, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 price to pay is that Qubes OS requires some skills and thinking to actually make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's data more secure.

Generally Qubes OS is an advanced tool for implementing Security by Isolation approach on your desktop, using domains implemented as lightweight Xen VMs. It tries to marry two contradictory goals: how to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 isolation between domains as strong as possible, mainly due to clever architecture that minimizes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 amount of trusted code, and how to make this isolation as seamless and easy as possible. Again, how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user is going to take advantage of this isolation is totally left up to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user. I realize this might be a tricky part for some users and some usage scenarios, yet, 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, this seems to be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most flexible and powerful approach we could provide.

Thus people should realize that by mere fact of using Qubes OS cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y won't become automatically more secure – it's how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are going to use it might make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m significantly more secure. A hypocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365tical exploit for your favourite web browser would work against Firefox running inside one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Qubes VMs just as well as it worked for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same browser running on normal Linux. The difference that Qubes makes, is that this attacked browser might be just your for-personal-use-only browser which is isolated from your for-work-use-only-browser, and for-banking-use-only-browser.

Finally, even though Qubes has been created by a reasonably skilled team of people, it should not be considered bug free. In fact, over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last 3 years we already found 3 serious bugs/attacks affecting Qubes OS – one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 very code we created, and two ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r in Intel hardware. Again, we tried as much as possible to limit cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 amount of code that is security sensitive in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first place, yet we are just humans ;) So, I'm very curious to see ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs' attempts to break Qubes – I think it might make for a very interesting research. A good starting point for such research might be this page. And I know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are individuals out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re who apparently only been waiting for Qubes 1.0 to come out, to get some glory (yet, it's not clear to me why to attack qemu, which is not part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TCB in Qubes, but I guess great minds have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own mysteries ;)

In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words, please enjoy Qubes OS 1.0, hopefully it could make your digital life safer!

Please send all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technical questions regarding Qubes to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 qubes-devel mailing list. Do not send cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to me directly, nor post cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in this blog's comments.

Saturday, July 21, 2012

Qubes 1.0 Release Candidate 1!

I would like to announce cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 release of Qubes RC1. The installation ISO and instructions can be found here.



This release is expected to essentially be identical to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final 1.0 release, which will likely follow in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 coming weeks, except for some minor, cosmetic fixes.

Comparing to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous Beta 3 release, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 major changes and improvements in this version include:
  • A much improved Qubes Manager, that now allows to configure and manage almost every aspect of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Qubes system using a simple and intuitive GUI.
  • All cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VMs are now based on Fedora 17 template.
  • Cleaned up and improved command lines tools for both Dom0 and for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VMs.
  • Updated Dom0 and VM kernels are now based on 3.2.7-pvops kernel, which offer better hardware and power management support.
  • Convenient menu improvements, that include e.g. a handy icon for launching a Disposable Web browser in a Disposable VM.
  • Support for “yum proxy”, which smartly allows to update packages in a template VM (or ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r updateable VM), without requiring to grant general HTTP access for this VM. This has been a problem before, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Fedora repos use hundreds of mirrored yum servers, and it wasn't possible to setup a single rule in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 firewall VM to allow only access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 yum servers, and nothing else. Now, this is possible, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 primary application is to prevent user mistakes, e.g. against using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 temaplate VM for Web Browsing.
  • We also added support for an opt-in fullscreen mode for select VMs.
  • ...plus lots of ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r improvements and fixes under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hood. As can be seen in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wiki, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re has been over 200 tickets closed as part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 work on this release!
So, again, this is almost cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final release, please test it and report any problems to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mailing list, so that we could fix cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m before Qubes 1.0 comes out officially.

Wednesday, June 27, 2012

Some comments on "Operation High Roller"

About a year ago I wrote about Why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 US "password revolution" won't work, where I pointed out that a massive move towards two-factor aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication will not solve any of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 identity cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ft problems that users experience today. Specifically, I wrote:
[People] don't understand that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 [compromised] operating system can impersonate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user at will!
The compromised OS could have saved your PIN to this [smart] card when you used it previously (even if you configured it not to do so!) and now,  immediately, it could use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 inserted card to aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticate as you to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bank and start issuing transactions on your behalf. And you won't even notice this all, because in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 meantime it will show you a faked screen of your banking account. After all, it fully controls cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen.
The bottom line is that we cannot secure our digital lives, if our client operating systems could not be secured first.
But introduction of tokens won't make our operating systems any more secure!

This article sparked lots of controversy with many people, who considered it a fallacy to criticize two factor aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication...

Today, I came across cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 news about Operation High Roller, discovered recently by McAfee and Guardian Analytics. They released a paper with some details about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacks and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware deployed. Some interesting quotes:
All of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 instances that involved High Roller malware could bypass complex multi-stage aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication. Unlike recent attacks that collect simple form aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication data—a security challenge question, a one-time token, or PIN—this attack can get past cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 extensive physical (“something you have”) aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication required by swiping a card in a reader and typing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 input into a field (see Two-factor Aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication sidebar).
The attack asks cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 victim to supply cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 information required to get around cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 physical controls of smartcard reader plus pin pad entry to generate a one-time password (or digital token).
Having collected all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 information it requires for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire transfer, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware stalls cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user and executes its transaction in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 background using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 legitimate digital token.
Multiple after-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ý bet365ft behaviors hide evidence of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 transaction from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user. For example, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client-side malware kills cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 links to printable statements. It also searches for and erases confirmation
emails and email copies of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 statement. Finally, it also changes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 transactions, transaction values, and account balance in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 statement displayed on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 victim’s screen so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 amounts are what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 account holder expects to see.

Defensive security is a difficult game, because one doesn't immediately see whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a given solution works or not. This is in stark contrast to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r engineering disciplines (and to offensive security) where one usually have immediate feedback on whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r something works well or not.

Say you want to build a redundant long-range video downlink for your unmanned, remotely operated helicopter -- you can throw in lots of money buying various high-gain antennas, circular antennas, antenna trackers, diversity systems, etc., but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n ultimately you can verify your creation immediately by going into a field and trying to fly a few miles away, and see whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r you loose cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vision (usually in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 middle of some life-threatening manoeuvre) or not. At least you can draw some lines of how good your solution is ("I can fly up to one mile away, but not more, unless cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re aren't that many trees around and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 air is dry enough").

With security, especially with computer security, it is so different, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no immediate feedback. This results in various vendors pitching cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir products as wonderful solutions that just solve all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 worlds problems, even though what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're saying in those marketing materials might be pure nonsense... (BTW, congrats to Simon Crosby for apparently creating a Windows-hosted VMM in below 10k LOC! ;)

The often made mistake is to say: "Perhaps cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a way to attack this solution, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n again, how much of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wild implements such attacks?" This is a classical thinking in our industry, and in my opinion, an inexcusable mistake! Let me say it clearly:

It doesn't matter whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wild does -- it matters what it could potentially do!

So, if we can do a quick brainstorming session and point out potential attacks within 1 hour against some technology/product X, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n, if we don't see a solution how to prevent cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m generically, we should not bocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r and implement product X, because it will be defeated, sooner or later. Let's not waste time on useless solutions, life's too short!

Saturday, March 03, 2012

Windows support coming to Qubes!

Ok, let's start with a screenshot :)


While cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 “Qubes 1.0” branch is currently in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final development and testing, we have already started working on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Next Big Feature, which is a support for HVM domains (hardware, or VT-x virtualized domains). This allows to run e.g. Windows VMs under Qubes. You might be wondering what so special about this, if Xen has been supporting HVM domains, and specifically Windows VMs for a long time, and Qubes uses Xen hypervisor, so why haven't we had Windows support since day one?

The are a couple of things that we don't like about HVM support in Xen (and also in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r VMMs), which include: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 need to run device emulator (AKA qemu) in Dom0, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 need to use crappy VNC, or a similar protocol to access cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM's framebuffer, or alternatively, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 crazy idea (from security point of view, that is) of using a pass-through graphics for a VM, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lack of support for disaggregated architecture where backends, e.g. network backends, run in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r domains than Dom0. In fact even cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen “stubdomain” feature, introduced a few years ago, that was supposed to be a solution allowing to move cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 qemu out of Dom0, in practice turned out to be quite disappointing, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 qemu in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stub domain still requires an accompanying process of anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r qemu in Dom0, somehow negating all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security benefits this architecture is supposed to bring... And not to mention cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 omni present assumption that backends run always in Dom0, hardcoded in a few places in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stubdomain code.

So, we didn't like it and that's why Qubes had no Windows support for long time. But this has now changed, as we have just finished cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 1st stage implementation of HVM support in Qubes, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way we like it, without any security compromises. In our implementation we've completely eliminated all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 qemu remains from Dom0 (it's running in a micro stub domain), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 graphics virtualization fully integrates with our very slim GUI daemon (we didn't have to modify our GUI daemon at all!), using our Xen-optimized, zero-copy, minimalist GUI protocol, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 networking is also fully integrated with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Qubes diaggregated networking architecture that uses isolated domains for all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 networking stacks and drivers. Of course, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are still some rough edges, such as no clipboard support, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtualization is currently in a “per-desktop” mode, racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than in a “per-window” mode, which is used for PV domains. But, rest assured, we are working on those things right now...

This code is currently not public, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plan is to release it only after Qubes 1.0 release, eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r as an upgrade, or as Qubes 2.0. All cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dom0 code for HVM support will likely remain GPL, while any Windows-specific code (agent code) will likely be proprietary.

Monday, February 06, 2012

Qubes Beta 3!

-->
A new ISO with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 just released Qubes Beta 3 is now available for download here.

Beta 3 fixes lots of annoying problems discovered in Beta 2 and earlier releases, and also implements a bunch of useful feature:

This includes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 qvm-block tool and infrastructure for easy attachment of block devices to any AppVM, no matter which system VM is handling cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual USB controller. So, this allows to have untrusted USB domain(s), almost seamlessly integrated in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 desktop system. One can consider to use it in order to prevent various USB attacks. The next release (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 1.0) will bring this feature to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Qubes GUI manager as well, making it easy to use for non-command-line users too.

Also, we have now introduced fully automatic Qubes build system, that allows to build all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Qubes packages, and also create cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 installation ISO, with just one command. More information on this system and on how to use it can be found in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wiki.

We have also updated to Fedora 15-based template as a default. Unfortunately F16-based template would require too much work to get all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Gnome 3 stuff working correctly. (The challenge here, is that we don't run a normal Windows and Desktop manager in every domain, in order to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VMs light weight, and so we need to sometimes work around various problems this causes...).

Finally, we have added two new Qubes-specific applications:
  • A plugin for Thunderbird (it is automatically installed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 template), that allows for one click opening of attachments in Disposable VMs, as well as one-click saving of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attachment to select VM.
  • And something we call “split GPG”, that I will describe in a separate article later.
Those Qubes-specific applications are based on our Qubes RPC, introduced in Beta 2.

This is likely cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last release before cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 “final 1.0”, that is scheduled to follow soon (TM). The only major work for 1.0 is GUI manager improvements to expose most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Qubes functionality via clickable GUI, and command line tools cleanup and documentation. Plus testing and bugfixing :)

And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next thing we will be working on will be support for HVM domains, e.g. Windows. This work is starting actually just about now, but code will be released only after Qubes 1.0.

Saturday, January 21, 2012

Thoughts on DeepSafe


Several people asked me recently what I though about DeepSafe. So, below I present my opinion...

First, for any AV system (or Host IPS, or Personal Firewall, etc) to work effectively, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are three problems that must be addressed:
  1. How to protect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 AV agent (code and data) from tampering (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 OS)?
  2. How can cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 AV agent get reliable access to (sensitive pieces of) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system memory and registers, and/or provide reliable memory protection for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 (sensitive pieces of) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS.
  3. What are those "sensitive pieces of” memory that should be monitored or protected?
From reading various PR materials, it seems like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 #1 above is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 primary differentiation factor for DeepSafe (DS). So, let's consider this problem in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 context of e.g. a Windows OS. In order to protect its code and data, DS uses, as it is heavily advertised, Intel VT-x virtualization technology. Now, that sounds really secure -- after all what can be more secure than a hardware virtualization, right? ;)

But VT-x (including EPT) is only about CPU virtualization, which in our case translates to protecting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DS memory and registers from CPU-originating accesses. But, as every regular to this blog knows, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is also anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r method of accessing memory on any PC system, and this is through DMA transactions from devices. The OS (so also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel malware) is free to program one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 many devices in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system to issue DMA reads or writes to any physical memory it wants...

Now, in order to protect some portion of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system memory (DRAM, cache) against DMA accesses, we have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel VT-d technology... So, one would think that DS must be also using VT-d in order to protect itself.

Very well, let's assume cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DeepSafe is not a total ripoff, and that it implements also VT-d protection for its agent, although I haven't found this mentioned in any of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 public papers or press materials I found on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 web...

This, however, would be a bit complex to do correctly, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS (so, also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel malware) still has a full control over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset (MCH), which is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entity... that controls cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VT-d.

Now, in order to prevent cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS (or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel malware) from playing with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset for fun and profit, and e.g. disabling VT-d protection, DS would have to virtualize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset.

If you look at some consumer VMMs, such as VMware or Xen/Qemu, you would see that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y all virtualize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir guests (of course), but that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y provide this way is some kind of an ancient Pentium MCH. I don't think any of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 consumers would be especially happy if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y found out that after installing DS on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir brand new 2012 laptop, Windows suddenly see a Pentium-era chipset... And this is not without a reason – chipsets, specifically MCHs, are one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most complex devices, perhaps only beaten by GPUs in this category. There are virtually hundreds of configuration registers exposed by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset, some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m control cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VT-d, some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r control system memory maps and permissions, PCIe configuration, and many ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r things that I even have no idea about, and this all makes virtualizing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset a very challenging task.

So, it's eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r that McAfee and Intel found some interesting way of how to securely virtualize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset while preserving all of its (very rich) functionality, or that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y... don't bocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r with VT-d protection and chipset virtualization at all, assuming that even without VT-d, DeepSafe is good enough and “rises cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bar” anyway (sarcasm intended).

(Can somebody from McAfee or Intel confirm in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments below what does DP really do?)

Anyway, let's assume cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y do have VT-d protection and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y do virtualize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset somehow...

Now, we're moving on to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 #2 point from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 list of tasks above -- about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reliable
memory access or reliable protection.

So, let say that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DS agent decided that some part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system memory, e.g. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IDT table, is sensitive and should be monitored/protected. So it sets up EPT traps to trigger an VT-x/EPT intercept on any access to that memory (or IDT base register), in order to find kernel malware that tried to modify IDT. That sounds really nice, but what if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware uses DMA to modify IDT? DS would not be able to catch such access! (So far we considered cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365, hypocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365tical, use of VT-d only to protect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DS agent code).

One might think that DS is programming VT-d to sandbox each and every device in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system (so including GPU, USB controllers, NICs, SATA, etc) so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y never be allowed to touch any of those sensitive parts of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system, such as IDT. Let's assume cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y do it this way...

And here we've arrived to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last point from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 list at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning: which of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system memory constitutes those "sensitive pieces" that should be protected/monitored? IDT? Sure. What about all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code sections of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel modules? Yes. Are we fine now? Well, no, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware can hook some pointers ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 well known IDT. Some public NDIS data structure? Ok, we can add those to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protected areas. But, what about some undocumented NDIS structures? And this is just NDIS subsystem, one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 many subsystems in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Windows kernel... When we think about it, it should be intuitively obvious that in a general purpose Operating System like Windows, it is not possible (at least for 3rd party) to make a satisfactory list of all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sensitive pieces of memory that should be monitored/protected, in order to detect all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system compromises.

Greg Hoglund, Jamie Butler, Alex Tereshkin, and myself, have been researching this area actively in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 early years of this millennium. In addition to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Alex's paper linked above, you might also check out one of my last slides from this period.

I don't think anything has changed since that time. It was also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reason why I gave up on writing Windows compromise detectors, or forensic tools, and moved on to researching ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r ways to secure OSes, which finally gave birth to Qubes OS, many years later.

So, back to DS -- in order to provide a somehow satisfactory protection level for your general purpose OS, such as Windows, it would need to:
  1. Use VT-d to protect its own memory,
  1. Virtualize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset, at least some (sensitive) parts of it,
  1. Program VT-d permissions for each device to exclude all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sensitive areas in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system that should be protected, and also protect one device from DMAing into/from anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r device memory (e.g. NIC stealing GPU framebuffer, or inserting instructions to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GPU instruction buffer, or keystrokes to USB controller buffer). Ideally, this could be done by programming VT-d to grant each device only access to its own DMA buffer, but as far as I know, this would be very hard to implement, if not impossible for a 3rd party, on a Windows OS (in contrast to Linux, which mostly support this model). Please correct me, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 recent Windows version allows for such use of VT-d.
  1. Finally, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most hard thing to solve, how to define all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "sensitive pieces of memory" in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system that should be protected and/or monitored? Although this is a somehow more generic problem, not specific to DS, but applying to any A/V, HIPS, or forensic tool.
So, is DeepSafe anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r piece of crap not worth any special attention, or has McAfee and Intel came up with some novel methods, e.g. for chipset virtualization, and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r problems? Unless I see some technical info to backup cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latter, I would have to assume, unfortunately, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 former. But I would like to be mistaken – after all DeepSafe seems to be just a new incarnation of my Bluepill ;)