zlacker

Qubes OS: A reasonably secure operating system

submitted by ploggi+(OP) on 2017-11-19 16:06:42 | 441 points 143 comments
[view article] [source] [go to bottom]

NOTE: showing posts with links only show all posts
1. snvzz+D3[view] [source] 2017-11-19 17:00:09
>>ploggi+(OP)
Their weakest point is the hypervisor, Xen, which while a better choice than Linux/KVM, is still extremely bloated and has a poor security history.

Thankfully, better designs such as seL4's VMM do exist, although it might need a little more work [1] until usable for the purpose.

[1] https://sel4.systems/Info/Roadmap/

12. mtgx+C5[view] [source] 2017-11-19 17:20:51
>>ploggi+(OP)
Version 4.0 should be out soon (at RC2 now):

https://www.qubes-os.org/news/2017/10/23/qubes-40-rc2/

Some exciting changes are coming:

https://www.qubes-os.org/news/2017/10/03/core3/

https://www.qubes-os.org/doc/releases/4.0/release-notes/

EDIT: Downvotes for providing relevant sources, really?

◧◩◪◨
13. hennse+O5[view] [source] [discussion] 2017-11-19 17:22:57
>>hennse+w5
Ah - https://www.theregister.co.uk/2017/11/09/aws_deletes_new_hyp...

Sorry for not googling before asking...

◧◩
15. Joachi+a6[view] [source] [discussion] 2017-11-19 17:26:30
>>bsdnoo+85
As an OpenBSD fan: consider Qubes instead if you want a "desktop" experience. OpenBSD works fine, but the open-source desktop is quite vulnerable (consider how many things need to go wrong for https://scarybeastsecurity.blogspot.nl/2016/12/redux-comprom...), and a lot of OpenBSD's hardening is in the (simpler) base system, not in GNOME / KDE / Firefox / Chrome / ...

Alternatively, consider not running a full-blown desktop or using Windows, which has grown a lot more secure since the Windows XP pre-SP2 days.

◧◩◪
19. snvzz+o6[view] [source] [discussion] 2017-11-19 17:28:46
>>dijit+c4
>Could you clarify "Better choice"?

KVM is, like VMware, a Type 2 hypervisor. [1]

Xen is a proper Type 1 hypervisor.

[1] https://microkerneldude.wordpress.com/2010/10/14/much-ado-ab...

◧◩
23. mtgx+R6[view] [source] [discussion] 2017-11-19 17:34:07
>>snvzz+D3
The Genode team proposed some integration with Qubes a while ago, but not sure if the discussion went anywhere from that:

https://secure-os.org/pipermail/desktops/2015-November/00000...

◧◩◪◨⬒⬓
31. ryacko+j9[view] [source] [discussion] 2017-11-19 17:58:26
>>standu+n7
Then from recent Defcon and Black Hat talks, they are an absymal failure. ( https://www.youtube.com/watch?v=lR0nh-TdpVg Memory Sinkhole - Unleashing An X86 Design Flaw Allowing Universal Privilege Escalation ) (I don't understand it beyond what everyone says it can achieve)

Intel should be considered to be totally unreliable and incompetent.

I mean, no one buys office store safes and expects their things to be secure in them. But a processor is a little more expensive than a cheap safe and holds more valuable things.

Edit: and besides, Fortezza is an SSL protocol option.

◧◩
33. akavel+Q9[view] [source] [discussion] 2017-11-19 18:06:59
>>Jeaye+E4
Me, I'd like to see such a marriage between NixOS and GenodeOS (which provides capabilities management and has the advantage of using a microkernel as base, so much smaller attack surface, aka TSB, than Xen + Linux)

http://www.genode.org/about/index

◧◩◪
34. walter+T9[view] [source] [discussion] 2017-11-19 18:08:02
>>mmreza+d5
Qubes mailing list thread about hypervisor choices:

https://groups.google.com/forum/m/#!topic/qubes-devel/jEe4pQ...

> It seems one major residing problem with KVM is the Linux kernel (which is large and vulnerable). A port of KVM to a thinner base layer would obviate those issues.

◧◩◪
39. Mathne+3b[view] [source] [discussion] 2017-11-19 18:25:13
>>akavel+Q9
An abandoned attempt: https://github.com/ehmry/genode-nix
43. toneth+ld[view] [source] 2017-11-19 18:52:15
>>ploggi+(OP)
I wish there was a way I could try it. The hardware requirements ...

https://www.qubes-os.org/doc/certified-hardware/

Is anyone running this on a laptop? I get the feeling after reading that page that this is really strictly desktop only. Maybe the page has not been updated in a bit?

45. AaronF+Gd[view] [source] 2017-11-19 18:55:31
>>ploggi+(OP)
I'm very excited that Microsoft is moving in the same direction. The feature Windows Defender Application Guard (WDAG) runs Windows applications, right now only the Edge browser, in a virtualization isolated container[1]. Under the hood it's using what Microsoft calls "Hyper-V Containers", which are lightweight virtual machines that share some host resources such as a read-only filesystem. The closest open source analogues to that are Intel(R) Clear Containers[2] and Qubes.

The closest you can get to Qubes on Windows would be to follow Microsoft's Privileged Access Workstation (PAW) guide, but it requires a lot of additional infrastructure[3]. That infrastructure allows you to do remote attestation of the virtual machines, but makes it costly to deploy in a SMB or homelab environment.

I don't expect it'll be very long before PAW and WDAG are usable at the same time, with colored window borders indicating the origin virtual machine. I hope this is on Microsoft's roadmap.

Video on privileged access workstation use, starting at a demo: https://youtu.be/3v8yQz2GWZw?t=41m48s

Video on privileged access workstation setup: https://www.youtube.com/watch?v=aPhfRTLXk_k

[1] https://docs.microsoft.com/en-us/windows/threat-protection/w...

[2] https://clearlinux.org/features/intel®-clear-containers

[3] https://docs.microsoft.com/en-us/windows-server/identity/sec...

◧◩◪◨
54. mmreza+rg[view] [source] [discussion] 2017-11-19 19:25:18
>>snvzz+26
way smaller compared to KVM/Linux's but compared to seL4's 10k LOC it is huge which is why seL4 is a good candidate as industry standard size for trustable hypervisor layer [1] but I am not sure how and what happened to L4Linux project other than being just an academic project!

https://www.sigops.org/sosp/sosp09/papers/klein-sosp09.pdf

◧◩
57. walter+qh[view] [source] [discussion] 2017-11-19 19:35:19
>>AaronF+Gd
HP has virt isolation for Chromium & IE, via Xen derivative from Bromium: http://www8.hp.com/us/en/hp-news/press-release.html?id=24054...
61. magnat+pi[view] [source] 2017-11-19 19:48:43
>>ploggi+(OP)
Joanna's (Qubes OS Founder) blog [1] is a gold mine when it comes to hardware-software boundary security. Especially "State considered harmful" [2] and "x86 considered harmful" [3] papers are eye-openers.

[1] https://blog.invisiblethings.org/

[2] https://blog.invisiblethings.org/papers/2015/state_harmful.p...

[3] https://blog.invisiblethings.org/papers/2015/x86_harmful.pdf

◧◩
64. kijiki+Fj[view] [source] [discussion] 2017-11-19 20:04:19
>>AaronF+Gd
https://cappsule.github.io/

It's unmaintained now, but it is basically the same idea as WDAG. Essentially similar to firejail but the container gets its own lightweight kernel and runs in a stripped down VM, so the attack surface is KVM, not all parts of the kernel that aren't firewalled off by SECCOMP.

◧◩◪
65. morgan+0k[view] [source] [discussion] 2017-11-19 20:07:37
>>bluepi+9c
I wouldn't trust that company at all, they lied and misrepresented themselves for nearly three years before finally claiming to make good on what they sold their customers. Beyond that, they didn't fix it themselves as they say, they relied on the work of other projects then claimed they did it alone.

Considering the researchers who actually disabled IME require physical access to the machine[1], Purism's claim that they can do it to previously sold devices with only a software update[2] stinks of BS to me.

[1] https://wiki.gentoo.org/wiki/Sakaki%27s_EFI_Install_Guide/Di...

[2] https://puri.sm/posts/purism-librem-laptops-completely-disab...

◧◩◪
66. floatb+3k[view] [source] [discussion] 2017-11-19 20:08:14
>>X86BSD+I8
Just like KVM, bhyve includes a whole unix kernel in the TCB. Sure it's a better one :) but still.

Tiny hypervisors like NOVA http://hypervisor.org, seL4-based are the ideal solution, but sadly no one seems to be pushing to make them usable and production-ready :(

69. notfed+Mm[view] [source] 2017-11-19 20:42:53
>>ploggi+(OP)
Note that while Qubes OS uses full-disk encryption, it runs on Xen, which does not support hibernate.

This means that, if you use this OS on a laptop, you'll be vulnerable to cold-boot attacks, even after you close your lid, unless you configure it to shutdown on lid close. (I.e., if a highly skilled adversary steals your laptop then, even if your laptop lid is closed, they will be able to read your RAM and therefore decrypt your entire hard drive.)

Despite the major security implications, it doesn't sound like a fix will be implemented any time soon. [1]

[1] https://github.com/QubesOS/qubes-issues/issues/2414

◧◩◪◨
75. goatsi+3p[view] [source] [discussion] 2017-11-19 21:12:30
>>parent+4n
Sound exactly like split-GPG

https://www.qubes-os.org/doc/split-gpg/

◧◩◪
78. dillon+7q[view] [source] [discussion] 2017-11-19 21:29:04
>>jstewa+wp
I believe I remember reading she aims at solving the issue of hardware and software vulnerabilities. I can't find the source, but she mentions that there's too much code out there that it would be impossible to secure everything.

Qubes' design means hardware and software are all separated so a vulnerability in one doesn't mean exposing another.

I like that in their docs they mention an approach they take and when it isn't secure[0]

That being said the main point of security contention is the admin (dom0).

[0]: https://www.qubes-os.org/doc/copy-paste/

◧◩
86. michae+Bs[view] [source] [discussion] 2017-11-19 22:00:14
>>AaronF+Gd
I think that "The closest you can get to Qubes on Windows" is what https://www.hysolate.com/ are building
◧◩◪◨
93. fghtr+5x[view] [source] [discussion] 2017-11-19 23:06:26
>>dillon+7q
I think you mean this paper:

https://blog.invisiblethings.org/papers/2015/state_harmful.p...

◧◩◪
94. fghtr+wx[view] [source] [discussion] 2017-11-19 23:12:41
>>0x17A+ci
Or LibreBoot T400 https://minifree.org/product/libreboot-t400/
◧◩◪◨
95. nickps+ZA[view] [source] [discussion] 2017-11-20 00:03:09
>>walter+T9
One of the trends I told Joanna about (i.e secure L4 kernels) led to folks developing exactly that. It was called KVM-L4. Here you go.

http://os.inf.tu-dresden.de/papers_ps/liebergeld-diplom.pdf

Complexity was still yoo high. Most in high-assurance security were trying stuff like Nova microhypervisor as a result. KVM on separation kernels might be worth further investigation for these platforms that will stay on KVM regardless.

◧◩
99. jlgadd+kE[view] [source] [discussion] 2017-11-20 00:42:18
>>mtgx+C5
> EDIT: Downvotes for providing relevant sources, really?

I only just now downvoted you.

From [0]:

> Please don't comment about the voting on comments. It never does any good, and it makes boring reading.

[0]: https://news.ycombinator.com/newsguidelines.html

◧◩
101. xkarga+zE[view] [source] [discussion] 2017-11-20 00:45:06
>>spiral+7o
FWIW, it seems that when you buy a Purism laptop there is an option to include a Qubes live usb in the deal. I just came across it while skimming through their website[1], not sure about anything else.

[1] https://puri.sm/shop/librem-13/ - see the Operating System choice

◧◩◪◨⬒⬓
108. fullde+EK[view] [source] [discussion] 2017-11-20 02:17:51
>>alasda+PI
Or how about the AM radio transmitter that is built into all x86 hardware - https://github.com/fulldecent/system-bus-radio
109. txgvnn+yM[view] [source] 2017-11-20 02:55:09
>>ploggi+(OP)
How about Subgraph OS? It has grsecurity patch, tor network, container isolate, firewall. It's another good choice also

https://subgraph.com

◧◩◪◨⬒⬓⬔⧯▣▦
116. nickps+iU[view] [source] [discussion] 2017-11-20 05:00:00
>>ryacko+AB
They're actually pretty simple if you're mostly trying to defeat software/firmware attacks. You just add some part to run in parallel with the processor, which can be arbitrarily simple or complex, that checks certain things about the data such as length or data type. The first one was implemented in 1961 hardware with it being secure from code injection until the invention of ROP. That's a long time. I'll add a modern take on that which led to a flexible mechanism that can do a dozen or maybe more policies.

http://www.smecc.org/The%20Architecture%20%20of%20the%20Burr...

http://www.crash-safe.org/papers.html

A more complex one is below that was also designed by one person for his dissertation. Knocks out all kinds of issues without modifying the processor. It has stuff to improve for sure but it think it proves the point pretty well. The stuff corporate teams were designing comes nowhere near this because they don't know much about high-security design. A critical part of that isn't features so much as a balancing act between what protection mechanisms do and don't that tries to minimize complexity to low as is possible.

https://theses.lib.vt.edu/theses/available/etd-10112006-2048...

And one open-source one on MIPS for capability-based security that runs FreeBSD:

https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/

A company or group of hardware volunteers could develop this into something at least as usable as a multi-core ARM CPU on RISC-V or OpenSPARC. It wouldn't take tons of money esp if they worked their way up in complexity. The hard stuff is already done. People just need to apply it. They could even pay these academics to do it for them with open-sourced results. They even get a huge discount on the EDA tools that can be six digits a seat.

You're right that Intel is screwing up and playing catchup cobbling together features. There was stuff in the available literature better than most of what they're doing. They even have a separation kernel from Wind River they're not employing. Managers without security expertise must be pushing a lot of this stuff.

◧◩
117. forapu+tU[view] [source] [discussion] 2017-11-20 05:04:29
>>toneth+ld
A least around a year ago, Purism shipped computers with Qubes and claimed to be the "only approved hardware vendor".

EDIT: See https://news.ycombinator.com/item?id=15735911

◧◩
118. feelin+5V[view] [source] [discussion] 2017-11-20 05:10:51
>>magnat+pi
I think the Qubes website is also quite useful for informational purposes.

Example, found through Qubes website: http://pete.akeo.ie/2011/06/crafting-bios-from-scratch.html

◧◩◪◨⬒⬓
128. pjmlp+oc1[view] [source] [discussion] 2017-11-20 10:41:12
>>walter+J91
It has common products with Citrix for Citrix XenServer, https://blogs.cisco.com/datacenter/citrix-synergy-round-up-c...
130. xtanx+tk1[view] [source] 2017-11-20 12:52:19
>>ploggi+(OP)
I've been running Qubes 3.2 for about 10 months on a intel skull canyon nuc. I love it.

I have separate vms for media and browsing, for music (spotify), development (python, rust), skype, personal email, work email and password manager.

It needs 16gb of ram to be able to run all of these at once and about 150gb of disk if you actually create separate template vms.

My only real pain was coping and pasting between all of these vms (you need to ctrl+c then ctrl+shift+c for copy and the ctrl+shift+v, ctrl+v for paste [1])

I solved that with a custom solution that automatically distributes the clipboard contents (for text only) to multiple vms (depending on the source of the clipboard change). I know it defeats the purpose of isolation for the clipboard but it's ok for my use case.

[1] https://www.qubes-os.org/doc/copy-paste/

◧◩◪
131. ohpaul+Sl1[view] [source] [discussion] 2017-11-20 13:07:38
>>akavel+Q9
Genode now has its own package management system with the 17.05 and 17.08 releases, informed/inspired by the work from Genode/Nix (linked in the other comment).

This means you can run Genode on NOVA with VirtualBox 5 fully integrated as the VMM, all with the improved Noux/POSIX interop components in place, and have a decent package management solution (that handles API compatibilities, multiple version installs, src vs binary deps, packages, and more). There's also Xen support with the most recent release (for cloud appliance work with Genode)

What's more, based on the roadmap and challenges, they should be bringing VirtualBox5 support to the seL4 kernel, and they even have a goal for being the virtualization foundation of QubesOS. https://genode.org/about/challenges

With the recent toolchain update and new package management system, its easier than ever to cook up your own Genode-based systems.

135. known+jB1[view] [source] 2017-11-20 15:33:39
>>ploggi+(OP)
I use https://en.wikipedia.org/wiki/Lightweight_Portable_Security
◧◩◪◨⬒⬓⬔⧯
136. jstewa+3H1[view] [source] [discussion] 2017-11-20 16:10:30
>>rdiddl+q11
PC x86 architecture (including the Mac), for at least the past 20 years, has been cost-optimized as a games/performance machine, not a security one. Until that changes, the more/less secure axis is always going to be heavily biased towards "less" on the PC, regardless of what you run on top of it.

In my own space, the approach has typically been to minimize attack surface by using the least amount of the simplest possible hardware we can get away with, then verifying the hell out of it. 8/16-bit micros, RS-232, no BIOS, aggressive shielding, and an extreme approach to the actor model. For things that need more horsepower, super-simple 32-bit micros, a real-time microkernel, and loads of QA. It's not perfect, and we leave a lot of performance on the table, but as far as security-per-man-hour-expended goes, I'd put it up against anything on the PC any day of the week.

nickpsecurity made a very good comment on designs circulating in the assurance/defense sectors: https://news.ycombinator.com/item?id=15571546

The best part of his comment was the quote from Brian Snow:

"The problem is innately difficult because from the beginning (ENIAC, 1944), due to the high cost of components, computers were built to share resources (memory, processors, buses, etc.). If you look for a one-word synopsis of computer design philosophy, it was and is sharing. In the security realm, the one word synopsis is separation: keeping the bad guys away from the good guys' stuff!

So today, making a computer secure requires imposing a "separation paradigm" on top of an architecture built to share. That is tough! Even when partially successful, the residual problem is going to be covert channels (i.e. side channels). We really need to focus on making a secure computer, not on making a computer secure -- the point of view changes your beginning assumptions and requirements."

◧◩◪◨⬒⬓⬔⧯▣▦
138. jstewa+3w2[view] [source] [discussion] 2017-11-20 22:51:30
>>pgaddi+uk2
Already answered that above.

Never said "Qubes sucks because it's not perfect." I have argued that the PC is too damn crufty and complicated to ever be "reasonably secure".

If I ever felt as though I had to protect myself from FBI[0] or ex-Mossad[1], I'd feel safer with an iPad and Signal than a PC running anything, and I say that as someone who doesn't particularly trust or care for Apple. You could also go full-Stallman[2], but that would probably be fairly error-prone if you didn't know as much about computers as RMS.

[0] https://www.theguardian.com/us-news/2015/may/12/revealed-fbi...

[1] https://www.newyorker.com/news/news-desk/harvey-weinsteins-a...

[2] https://stallman.org/stallman-computing.html

◧◩◪◨⬒⬓⬔⧯▣▦▧▨
140. jstewa+wL2[view] [source] [discussion] 2017-11-21 02:19:38
>>pgaddi+0A2
> FWIW I don't think you've answered the "What to use instead, then?" question.

If you need a workstation that is hardened against the big boys, I doubt such a thing exists, and it never will if people keep putting all of their hope in the next band-aid. It is also a damn shame, since it's not like this is a problem that needs two more generations of pure science to solve.

Hell, the B5000[0] was safer than the things we run today, and people didn't stop having better ideas about computing in 1961.

[0] https://en.wikipedia.org/wiki/Burroughs_large_systems

◧◩◪◨
143. akavel+H96[view] [source] [discussion] 2017-11-22 16:31:33
>>ohpaul+Sl1
Interesting, thanks for the info! Though from the article about the system (https://genode.org/documentation/developer-resources/package...), it's not clear to me how to:

a) tweak compilation flags of libraries & apps

b) describe full set of runtime config files of an app

and thus build a single full configuration of a whole system, like in NixOS.

Hm; or can this maybe somehow be solved with the "run scripts" mentioned at the end of the article? I'm even less than a noob with regards to Genode, so I'm not sure about that.

Or does the package manager only provide Nix-like functionality, with no way for NixOS-like features?

[go to top]