Actions

Qubes-Whonix ™ Security

From Whonix


About this Qubes-Whonix Security Page
Support Status stable
Difficulty easy
Maintainer torjunkie
Support Support

Introduction[edit]

Ambox warning pn.svg.png Qubes R3.2 reached EOL on 28 March, 2019. It is strongly recommended to upgrade to Qubes R4.0 to stay safe.

The following list of actionable items can help to improve security and anonymity on the Qubes platform, and by extension Qubes-Whonix ™ users. It is advised to regularly consult either the Google Qubes forums or preferably the JavaScript-free option The Mail Archive. Additional channels exist for the latest security news and advice.

Security Domain[edit]

GPG and Software Packages[edit]

  • Always keep the system up-to-date in dom0, template VMs and standalone VMs.
  • Check gpg is enabled in config files (gpgcheck=1) if new Fedora repositories are installed.
  • Safely import new signing keys by checking it is the same from multiple sources.
  • Preferably only install packages from trusted sources, for example pre-configured Fedora, Debian, Whonix ™ and Qubes sources.
  • Untrusted or unverifiable programs should be installed in Standalone VMs or less trusted, cloned templates.

Hardware / Hardware Settings[edit]

  • Enable VT-d/IOMMU via BIOS to have DMA protection, [1] effective network isolation and the ability to assign PCIe devices to a HVM. Check it is running via dom0 (qubes-hcl-report). [2]
  • Ensure Intel VT-x or AMD-V is available, since it is required for running HVM domains, such as Windows-based AppVMs.
  • Prepare and utilize a USB qube to protect against side-channel attacks. [3]
  • Use a Yubikey to enhance the security of Qubes user authentication, mitigate the risk of password snooping and to improve USB keyboard security.
  • Prefer Intel Integrated Graphics Processing (IGP) units for greater system stability and security. [4]
  • Ensure computer hardware meets all other Qubes-Whonix ™ requirements for the best security, functionality and future compatibility with Qubes 4.X releases.

ISO and Qubes Version[edit]

  • Verify the authenticity and integrity of the Qubes iso download.
  • Prefer Qubes R4.0 over earlier releases, as fully virtualized (HVM or PVH) VMs provide greater protection against processor speculative execution bugs like the Meltdown and Spectre attacks, and other exploits. [5] [6]

Protecting User Data and Activities[edit]

  • For critical user data, protect against unintentional leaks by setting an empty NetVM field (set to "none") for the corresponding qube.
  • For sensitive activities, do not run trusted, high-value VMs in paralell with untrusted VMs. [7]
  • Observe the security context of colored windows borders in Qubes before running applications or manipulating data.
  • If paying in cryptocurrencies, utilize a “split” bitcoin wallet which creates an offline “cold storage” wallet and an online “watching only” wallet.
  • Avoid dual / multi-boot configurations in Qubes. The other OS could modify the unprotected /boot partition or firmware to maliciously compromise Qubes and/or spy on user activities.
  • Be careful when running command line operations. Refer to a suitable resource first, then proceed.
  • Use split-GPG for email to reduce the risk of key theft used for encryption / decryption and signing.
  • Do not allow Qubes-Whonix ™ or other VMs to completely "own" the full screen. [8]
  • Disable previews (thumbnails) when using a file manager like Nautilus, as this is a known attack vector.

Template and Other VMs[edit]

  • Never run applications in TemplateVMs or dom0, except updating tools or editors for configuration purposes (running applications poses security risks).
  • Avoid configuring network traffic between two qubes for security reasons.
  • Consider replacing passwordless root access with a dom0 user prompt. [9]
  • Consider leveraging the non-persistence of Qubes' templates to fend off malware by locking-down, quarantining and checking the contents of /rw private storage. [10] [11]
    • vm-boot-protect-root: suitable for service VMs like sys-usb and sys-net, as well as AppVMs such as untrusted, personal, banking, vault and so. [12]
    • vm-boot-protect: suitable for virtually any Debian or Fedora VM, such as Whonix ™ VMs, Standalone VMs and DispVMs.
    • Non-Linux VMs are currently unsupported for both modes.
  • Consider split dm-crypt to isolate device-mapper based secondary storage encryption (not the root filesystem) and LUKS header processing to DisposableVMs.
  • Consider running sys-net, sys-firewall and sys-usb as Static DisposableVMs.
  • Consider setting dom0 and all TemplateVMs to update over Tor by configuring this option on Qubes' first boot. [13] [14]
  • Prevent qubes which normally connect to clearnet from downloading repository metadata; see footnotes. [15] [16]
    • Disable the "Check for qube updates by default" option in Qube Manager Global settings: Qube ManagerSystemGlobal settingsUncheck Check for qube updates by default; and
    • Disable the qubes-update-check service for relevant TemplateVMs: Qubes ManagerRight-click TemplateVMQubes settingsServicesUncheck qubes-update-check. [17]
  • Disable cups in all TemplateVMs as well as in StandaloneVMs that have been created; see footnotes. [18] [19]

Footnotes[edit]

  1. Qubes FAQ:

    DMA is mechanism for PCI devices to access system memory (read/write). Without VT-d, any PCI device can access all the memory, regardless to which VM it is assigned (or if it is left in dom0). Most PCI devices allow the driver to request an arbitrary DMA operation (like “put received network packets at this address in memory”, or “get this memory area and send it to the network”). So, without VT-d, it gives unlimited access to the whole system. Now, it is only a matter of knowing where to read/write to take over the system, instead of just crashing. But since you can read the whole memory, it isn’t that hard.

  2. The Qubes wiki notes:

    If VT-d is not active, attempt to activate it by selecting the VT-d flag within the BIOS settings. If your processor/BIOS does not allow VT-d activation you still enjoy much better security than alternative systems, but you may be vulnerable to DMA attacks. Next time you buy a computer consult our HCL (Hardware Compatibility List) and possibly contribute to it.

  3. Automatically configured in Qubes R4, but an optional configuration in R3.2.
  4. Proprietary binary blobs of other GPU manufacturers pose security risks and the available open source drivers are notoriously unstable in Qubes.
  5. Qubes R3.2 and earlier versions rely on para-virtualized (PV) VMs.
  6. For instance, this recent security bug allows an attacker to escape from a PV domain and exploit the dom0 hypervisor. It only affects Qubes R3.2, since Qubes R4 only runs untrusted code in PVH or HVM domains by default.
  7. A successful exploit of the untrusted qube provides an avenue for attacking the sensitive qube.
  8. Without visible, colored decorations drawn by each VM window, a malicious application might only pretend to release the full screen (while the screen appears normal), or the full desktop may be emulated so users are tricked into entering sensitive information into false "trusted" domains.
  9. There might be potential attacks against the hypervisor or daemons/backends in dom0 that require root access. Qubes founder Joanna Rutkowska initially assessed there was limited benefit from isolating the root account from the user account, because all user data is already accessible from the latter. However, she later changed her opinion on the matter; see here.
  10. vm-boot-protect.service:

    • Acts at VM startup before private volume /rw mounts
    • User: Protect /home desktop & shell startup executables
    • Root: Quarantine all /rw configs & scripts, with whitelisting
    • Re-deploy custom or default files to /rw on each boot
    • SHA256 hash checking against unwanted changes
    • Provides rescue shell on error or request
    • Works with template-based AppVMs, sys-net and sys-vpn
  11. Disabling of Qubes' default passwordless-root is also required.
  12. If regular Linux applications like Firefox, Chromium, KeePassXC, office/media applications and Thunderbird are used without tailored Qubes-specific settings in /rw, then no configuration should be necessary.
  13. https://github.com/QubesOS/qubes-issues/issues/1159#issuecomment-167432121
  14. This option has been available since Qubes R3.1 and prevents adversaries from easily learning which packages are installed or updated / upgraded. The dom0 UpdateVM can also be changed in Qube Manager Global settings.
  15. https://www.mail-archive.com/qubes-users@googlegroups.com/msg27567.html

    It is the qubes that perform update checks and then notify dom0 accordingly. So if you have a qube connected to clearnet it will check over clearnet. You can disable this in clearnet connected qubes - it's the qubes-update-check service. Or you can disable globally in qubes-global-settings.

  16. This removes any time-based correlation by adversaries, which might otherwise occur when package updates over Tor happen shortly after clearnet repository metadata is downloaded.
  17. Tests have shown that both settings must be disabled to prevent clearnet repository metadata downloads and update notifications.
  18. https://github.com/QubesOS/qubes-issues/issues/5179
  19. In TemplateVM / StandaloneVM.
    sudo systemctl mask cups
    Now cups will no longer needlessly autostart in every VM. If it is necessary to use a dedicated printing VM later on, follow these steps to start cups.
    sudo systemctl unmask cups
    sudo systemctl start cups
    These two commands can probably be automated using /etc/rc.local.

No user support in comments. See Support. Comments will be deleted after some time. Specifically after comments have been addressed in form of wiki enhancements. See Wiki Comments Policy.


Add your comment
Whonix welcomes all comments. If you do not want to be anonymous, register or log in. It is free.


Random News:

Want to help create awesome, up-to-date screenshots for the Whonix wiki? Help is most welcome!


https | (forcing) onion

Follow: Twitter | Facebook | gab.ai | Stay Tuned | Whonix News

Share: Twitter | Facebook

This is a wiki. Want to improve this page? Help is welcome and volunteer contributions are happily considered! Read, understand and agree to Conditions for Contributions to Whonix ™, then Edit! Edits are held for moderation.

Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP. Whonix ™ is a trademark. Whonix ™ is a licensee of the Open Invention Network. Unless otherwise noted, the content of this page is copyrighted and licensed under the same Freedom Software license as Whonix ™ itself. (Why?)

Whonix ™ is a derivative of and not affiliated with Debian. Debian is a registered trademark owned by Software in the Public Interest, Inc.

Whonix ™ is produced independently from the Tor® anonymity software and carries no guarantee from The Tor Project about quality, suitability or anything else.

By using our website, you acknowledge that you have read, understood and agreed to our Privacy Policy, Cookie Policy, Terms of Service, and E-Sign Consent. Whonix ™ is provided by ENCRYPTED SUPPORT LP. See Imprint.