awesome-qubes-os/README.md
2023-11-20 21:54:11 -05:00

44 KiB
Raw Blame History

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&G?~^^~?G&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#5!^::^^^^::^!YB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#P7^:::^^^^^^^^^^:::^75#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&G?~:::^^^^^^^^^^^^^^^^^^:::~?P&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&BJ!^::^^^^^^^^^^^^::^^^^^^^^^^^^::^~JG&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@#5!^:::^^^^^^^^^^^:::~77~^::^^^^^^^^^^^^::^!Y#@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@J^::^^^^^^^^^^^:::^7P#@@@@&P?~:::^^^^^^^^^^:::^Y@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!7!!~^^^^^^^::^!Y#@@@@@@@@@@@@#57^::^^^^^^~!?Y5YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!77777!~~^:~JB&@@@@@@@@@@@@@@@@@@&BY~^^!?J55555YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!77777777!Y@@@@@@@@@@@@@@@@@@@@@@@@@@PY55555555YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!77777777!B@@@@@@@@@@@@@@@@@@@@@@@@@@&Y55555555YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!77777777!B@@@@@@@@@@@@@@@@@@@@@@@@@@&Y55555555YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!77777777!B@@@@@@@@@@@@@@@@@@@@@@@@@@&Y55555555YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!77777777!B@@@@@@@@@@@@@@@@@@@@@@@@@@&Y55555555YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!77777777!B@@@@@@@@@@@@@@@@@@@@@@@@@@&Y55555555YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!77777777!G@@@@@@@@@@@@@@@@@@@@@@@@@@&Y55555555YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!77777777!?#@@@@@@@@@@@@@@@@@@@@@@@@&P555555555YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@G!777777777!!7YB&@@@@@@@@@@@@@@@@@#GP55555555555YB@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@#!!7777777777!!!!?5#&@@@@@@@@@&BP5YY555555555555Y#@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@#J!!!!7777777777!!!7JP#&@&BP5YY5555555555555Y5P#@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@&BY?!!!77777777777!!!7Y5Y5555555555555555G#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&GJ7!!!77777777777Y55555555555555555P#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#PJ7!!!7777777Y555555555555555555Y5PG#@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&B5?!!!!777Y5555Y55YY555555555555YY5&@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&BY?!!!Y555G#&@#GP555555555555P#@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#GPB#&@@@@@@@@&BP55555PG#&@@@@@@@@@@@@@@@@@@@@@@@@@@@

            _                                    ___      __                 ___  ___
           /_\__ __ _____ ___ ___ _ __  ___     /   \ _  _| |__  ___ ___    / _ \/ __|
          / _ \ V  V / -_|_-</ _ \ '  \/ -_)   | (_) | || | '_ \/ -_|_-<   | (_) \__ \
         /_/ \_\_/\_/\___/__/\___/_|_|_\___|    \__\_\\_,_|_.__/\___/__/    \___/|___/

Awesome Qubes OS Track Awesome ListAwesome

A security-focused desktop operating system that aims to provide security through isolation.

This list is a collection of tools, projects, images, and resources conforming to the Awesome Manifesto.

Contributions very welcome but first see Contributing.

Table of Contents

Qubes OS Websites

System Information & Requirements

  • Architecture - Qubes implements a security-by-compartmentalization approach.
  • Audio virtualization - VMs on Qubes OS have access to virtualized audio through the PulseAudio module.
  • Certified Hardware - We aim for these vendors to be as diverse as possible in terms of geography, cost, and availability.
  • Community-recommended hardware - Community-recommended computers.
  • Hardware compatibility list (HCL) - The HCL is a compilation of reports generated and submitted by users across various Qubes versions about their hardwares compatibility with Qubes.
  • System Requirements - User documentation / Choyhe attacker doesnt have access to all the software running in the other domains.
  • Security-critical code - A list of security-critical (i.e., trusted) code components in Qubes OS.
  • Storage pools - Qubes OS implements a security-by-isolation (or security-by-compartmentalization) approach by providing the ability to easily create many security domains.
  • Secondary storage - hese steps assume you have already created a separate volume group and thin pool (not thin volume) for your HDD.
  • Networking - In Qubes, the standard Xen networking is used, based on backend driver in the driver domain and frontend drivers in VMs.
  • Config files - These files are placed in /rw, which survives a VM restart. That way, they can be used to customize a single VM instead of all VMs based on the same template. The scripts here all run as root.
  • Disposable customization - A disposable can be based on any app qube.
  • How to install software in dom0 - How to install a specific package
  • How to make any file persistent (bind-dirs) - With bind-dirs any arbitrary files or folders can be made persistent in app qubes.
  • How to mount a Qubes partition from another OS - When a Qubes OS install is unbootable or booting it is otherwise undesirable, this process allows for the recovery of files stored within the system.
  • Installing contributed packages - This page is for users who wish to install contributed packages.
  • Managing qube kernels - By default, VMs kernels are provided by dom0.
  • Qubes service - Usage documentation is in the qvm-service man page.
  • RPC policies - This document explains the basics of RPC policies in Qubes.
  • Resize disk image - By default Qubes uses thin volumes for the disk images.
  • Standalones and HVMs - A standalone is a type of qube that is created by cloning a template. Unlike templates, however, standalones do not supply their root filesystems to other qubes.
  • Volume backup and revert - With Qubes, it is possible to revert one of a VMs storage volumes to a previous state using the automatic snapshot that is normally saved every time a VM is shutdown.

Downloading, Installing, Upgrading, and Building

How-to guides

Templates

  • archlinux-minimal template - This is a community guide, not an official guide.
  • Building a TemplateVM for a new OS - If you dont like using one of the existing templates because of specific administration, package management or other building needs, you can build a TemplateVM for your distribution of choice.
  • Debian templates - The Debian template is an officially supported template in Qubes OS.
  • Fedora templates - The Fedora template is the default template in Qubes OS.
  • NetBSD templates - Createa NetBSD template
  • Linux HVMs - Fixing Linux distro HVMs
  • Minimal templates - The minimal templates are lightweight versions of their standard template counterparts.
  • Multimedia template - Configuring a “Multimedia” TemplateVM
  • Pentesting: BlackArch - BlackArch Linux is an Arch Linux-based distribution for penetration testers and security researchers.
  • Pentesting: Kali - How to create a Kali Linux VM.
  • Pentesting: PTF - "The PenTesters Framework (PTF) is a Python script designed for Debian/Ubuntu/ArchLinux based distributions to create a similar and familiar distribution for Penetration Testing.
  • Template: Windows - Simple Windows install
  • Windows Qubes - Like any other unmodified OSes, Windows can be installed in Qubes as an HVM domain.
  • Tails OS - Tails stands for The Amnesic Incognito Live System. It is a live operating system that aims to preserve your privacy and anonymity.
  • Templates - In Getting Started, we covered the distinction in Qubes OS between where you install your software and where you run your software.
  • Template implementation - Describes template implementation.
  • Template manager - A template manager application.
  • Shadow qube - The below script will create a Qube, launch the Tor browser, wait for the browser to close, then remove the qube and its RAM pool.
  • USB Qubes - A USB qube acts as a secure handler for potentially malicious USB devices, preventing them from coming into contact with dom0 (which could otherwise be fatal to the security of the whole system). I
  • Xfce templates - If you would like to use Xfce (more lightweight compared to GNOME desktop environment) Linux distribution in your Qubes, you can install one of the available Xfce templates for Fedora, CentOS or Gentoo.

VM-Hardening

  • Kicksecure - The following list of actionable items can help to improve security on the Qubes platform, and by extension Kicksecure ™ for Qubes users.
  • Qcrypt -qcrypt is a multilayer encryption tool for Qubes OS.
  • Qubes-VM-hardening - Leverage Qubes template non-persistence to fend off malware at VM startup: Lock-down, quarantine and check contents of /rw private storage that affect the execution environment.
  • Anonymizing your MAC Address - Although the MAC address is not the only metadata broadcast by network hardware, changing your hardware's default MAC Address could be an important step in protecting privacy.
  • Anti Evil Maid (AEM) - A user who frequently travels with a Qubes laptop holding sensitive data may be at a much higher risk of Evil Maid attacks than a home user with a stationary Qubes desktop.
  • Data leaks - Firewalling in Qubes is not intended to be a leak-prevention mechanism.
  • Device handling security - Any additional ability a VM gains is additional attack surface.
  • Dom0 secure updates - Updating dom0
  • Firewall - Every Qube in Qubes is connected to the network via a FirewallVM, which is used to enforce network-level policies.
  • nft Firewall - This is an example for a TCP redirection, for UDP you would have to replace tcp by udp.
  • Passwordless root access in Qubes - In Qubes VMs there is no point in isolating the root account from the user account.
  • Reducing the fingerprint of the text-based web browser w3m - You can reduce the amount of information w3m gives about itself and the environment it is running in (and, by extension, you).
  • Running Tails in Qubes - Tails stands for The Amnesic Incognito Live System.
  • SaltStack (management software)
  • Signal - It uses end-to-end encryption to secure all communications.
  • Split GPG - Split GPG implements a concept similar to having a smart card with your private GPG keys, except that the role of the “smart card” is played by another Qubes app Qube.
  • Split SSH - Split SSH implements a concept similar to having a smart card with your private SSH keys, except that the role of the “smart card” is played by another Qubes AppVM.
  • Split dm-crypt - Instead of directly attaching an encrypted LUKS1 partition from a source VM such as sys-usb to a destination VM and decrypting it there.
  • U2F proxy - The Qubes U2F Proxy is a secure proxy intended to make use of U2F two-factor authentication devices with web browsers without exposing the browser to the full USB stack, not unlike the USB keyboard and mouse proxies implemented in Qubes.
  • Using Multi-Factor Authentication with Qubes - This page concerns multi-factor authentication for logging into external services, not for logging into Qubes itself.
  • Using OnlyKey with Qubes OS - The following setup instructions walk through the process of configuring dom0 and a USB qube so that OnlyKey will function as a keyboard and be able to communicate with the OnlyKey app (required for TOTP).
  • Qrexec: secure communication across domains - The qrexec framework is used by core Qubes components to implement communication between domains.
  • Qrexec: Qubes RPC internals - The qrexec framework consists of a number of processes communicating with each other using a common IPC protocol, described in detail below.
  • Qrexec: socket-based services - The qrexec allows implementing services not only as executable files, but also as Unix sockets.
  • Qubes memory manager (qmemman) - Provides automatic balancing of memory across participating PV and HVM domains, based on their memory demand
  • TUFF - We can think of a software update system as “secure” if:
  • YubiKey - Most use cases for the YubiKey can be achieved exactly as described by the manufacturer or other instructions found online.

Customization

  • AwesomeWM (window manager) - This is an rpm package for awesomewm with the patches for Qubes.
  • Brightness-Ajustment - Easy brightness adjustment
  • Bash completion - How to install bash completion for Qubes OS commands.
  • Custom icons - Place the custom folder icons ~/.local/share/icons is a persistent place to place the custom folder icons and so is /usr/share/icons.
  • DPI scaling - Qubes OS passes on dom0s screen resolution to VMs (this can be seen in the output of xrandr) but doesnt pass on dom0s dpi value.
  • i3 (window manager) - i3 is part of the stable repository (as of Qubes R3.1) and can be installed by using the dom0 update mechanism.
  • KDE (desktop environment) - KDE was the default desktop environment in Qubes
  • Qubes-GUI-Rust - Rust libraries for the Qubes OS GUI Protocol
  • Suckless dwm - How to install dwm in Qubes OS.
  • QubesOS Autostart Menu - Speed up system boot process with a custom launch script
  • Qubes-Scripts - Collection of custom scripts for Qubes OS.
  • PLayback performance - This guide will show you how to install the mpv player and use it with maximum performance.
  • sys-VPN notification setup - Get VPN stats as a desktop notification
  • Wayland agent - This is a GUI agent for Qubes OS that supports the [Wayland] display server protocol. Compared to X11, Wayland is vastly simpler and aims to ensure every frame is perfect.

GPU

Troubleshooting

Clearnet & Anonymous Networking

DNS

  • dnscrypt-proxy - Run dnscrypt-proxy inside of sys-net to encrypt and secure dns-requests.

Wireguard

  • Mullvad VPN (Fedora38 + WG) - Privacy-first VPN provider's guide for Qubes OS. This guide bears an optimal method for setting up a WG ProxyVM (i.e sys-vpn); you may substitute out Mullvad's WG configuration files in place of your own.
  • Wireguard setup - This guide assumes you are using a VPN service that has wireguard support.

OpenVPN

Anonymity

  • i2p-Whonix - Temporary way to run i2p on Qubes-Whonix.
  • ipfs - A peer-to-peer hypermedia protocol to make the web faster, safer, and more open.
  • Lokinet - Lokinet is the reference implementation of LLARP (low latency anonymous routing protocol), a layer 3 onion routing protocol.
  • Really disposable ram based qubes - You can use your QubesOS 𝚜𝚝𝚊𝚝𝚎𝚕𝚎𝚜𝚜 just like TailsOS, with persistent storage for VMs. That is pretty simple! It takes 6Gb of extra 𝚁𝙰𝙼 (for store root filesystem files).
  • Whonix - Qubes-Whonix ™ is the seamless combination of Qubes OS and Whonix™ for advanced security and anonymity.
  • How to bypass the GFW on Qubes OS when youre in China - The purpose of this article is to provide several feasible ways to bypass the GFW for you to choose.

Crypto

  • Split Bitcoin Wallet - A "split" bitcoin wallet is a strategy of protecting your bitcoin by having your wallet split into an offline "cold storage" wallet and an online "watching only" wallet.
  • Awesome-DeSci - A curated list of awesome Decentralized Science (DeSci) resources, projects, articles and more.

Kernels

  • eBPF - eBPF is a revolutionary technology with origins in the Linux kernel that can run sandboxed programs in an operating system kernel.

Microkernels

  • OpenXT - OpenXT is an open-source development toolkit for hardware-assisted security research and appliance integration.
  • Qubes-linux-kernel - Qubes package for Linux kernel.
  • seL4 - seL4 is a high-assurance, high-performance operating system microkernel.

Unikernels

  • Awesome-Unikernels - Secure, lightweight and high performance approach to application delivery.
  • ClickOS - Efficient network function virtualization platform, optimized for Xen and developed by NEC.
  • Clive - Research project from Rey Juan Carlos University (Madrid), developed in Go.
  • HaLVM - Port of Glasgow Haskell compiler producing Xen optimized unikernels.
  • Mini-OS - Reference kernel distributed with Xen.
  • Qubes-Mirage-Firewall - A unikernel that can run as a Qubes OS ProxyVM, replacing sys-firewall.

Unikernel-like

  • Drawbridge - Research prototype platform from Microsoft.
  • Graphene - Library OS optimized for Intel SGX.

Exploitation Tools

  • Awesome-Fuzzing - A curated list of references to awesome Fuzzing for security testing. Additionally there is a collection of freely available academic papers, tools and so on.
  • AFL++ - AFL++ is a superior fork to Google's AFL - more speed, more and better mutations, more and better instrumentation, custom module support, etc.
  • Bonzai - It's like a modular, multicall BusyBox builder for Go with built in completion and embedded documentation support.
  • CodeQL - Discover vulnerabilities across a codebase with CodeQL.
  • Joern - Joern is a platform for analyzing source code, bytecode, and binary executables. It generates code property graphs (CPGs), a graph representation of code for cross-language code analysis.
  • Hyperdbg - HyperDbg Debugger is an open-source, community-driven, hypervisor-assisted, user-mode, and kernel-mode Windows debugger with a focus on using modern hardware technologies. It is a debugger designed for analyzing, fuzzing, and reversing.
  • LeechCore - The LeechCore Memory Acquisition Library focuses on Physical Memory Acquisition using various hardware and software based methods.
    • LeechCore-Plugins - This repository contains various plugins for LeechCore - Physical Memory Acquisition Library.
  • Libvmi - LibVMI is a C library with Python bindings that makes it easy to monitor the low-level details of a running virtual machine.
  • Lldb - LLDB is a next generation, high-performance debugger.
  • Memflow - memflow is a library that enables introspection of various machines (hardware, virtual machines, memory dumps) in a generic fashion.
  • Capstone - Capstone is a lightweight multi-platform, multi-architecture disassembly framework.
  • Coredump - Access Microsoft Windows Coredump files.
  • Kvm - KVM memflow connector.
  • Pcileech - Access pcileech interface.
  • Qemu_procfs - Access QEMU Physical memory.
  • Unicorn - Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework.
  • MemProcFS - MemProcFS is an easy and convenient way of viewing physical memory as files in a virtual file system.
    • MemProcFS-Plugins - This repository contains various non-core plugins for MemProcFS - The Memory Process File System.
  • Microlibvmi - A cross-platform unified Virtual Machine Introspection API library.
  • Radare2 - Libre Reversing Framework for Unix Geeks.
  • Volatility3 - Volatility is the world's most widely used framework for extracting digital artifacts from volatile memory (RAM) samples.

Optics and Extra Info

Xen Exploitation

Web articles

Qubes OS Server

Qubes OS Legends

Training and Materials

  • Training-materials - A Collection of training materials for Qubes OS.
  • Qubes-diagrams - Qubes OS architecture diagrams.
  • Qubes-artwork - This repository contains various artworks for Qubes OS.
  • pwn.college - pwn.college is an education platform for students (and other interested parties) to learn about, and practice, core cybersecurity concepts in a hands-on fashion.
  • Anonymous Planet - The Hitchhikers Guide to Online Anonymity: the comprehensive guide for online anonymity and OpSec.
  • The Book of Secret Knowledge - A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools, and more.
  • xn0px90 - Qubes training every second and fourth weekends of every month, from Friday to Monday, covering beginner, intermediate, and advanced levels.

Streamers

  • Infosecstreams - An actively maintained activity-based-autosorted list of InfoSec Streamers
  • xn0px90 - First Full Time Info-Sec Qubes-OS Streamer!

Companies using Qubes OS

  • Qubes Partners - The Qubes Project relies greatly on the generous support of the organizations, companies, and individuals who have become Qubes Partners.

Social media

The Qubes OS Project has a presence on the following social media platforms:

Releases

Adventure Further

:|: ADVENTURE FURTHER :|: HACK ALL THE THINGS :|: TRUST NOTHING :|: WITH <3! ~X

Contributing

Contribution guidelines can be found here.

License

Creative Commons License

This work is licensed under a Creative Commons Attribution 1.0 Generic.