A Zero Trust Operating System
Eveything is VM... Everything is cool...
Limited Knowledge + Limited Scope
Let's explore!
Zero trust can be applied in an OS?
Isolate everything from everything!
1. Resize freely
2. Clipboard access
3. Audio
4. Built using Rust
(QEMU)
1. Save/resume VM
2. Identical CPU performance achievable
3. RAM Usage
4. GPU performance (virtio-gpu)
1. File shared via virtio-fs
2. Seamless video playback
3. Drag & drop
1. USB Passthrough (Webcam too)
2. Mic passthrough
3. PCI Passthrough
Better way to do this is using Pipewire
FROM ubuntu
# GUI Environment and basics
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y dhcpcd5 util-linux systemd systemd-sysv xorg i3-wm xterm sudo xss-lock ethtool pciutils netplan.io nano net-tools inetutils-ping iproute2
RUN systemctl disable gdm dhcpcd
COPY files/init /init
RUN chmod +x /init
RUN useradd -s /bin/bash -d /home/user/ -m -G sudo user
RUN chown -R user:user /home/user
# Install the package and configure launch command
ARG PACKAGES='firefox'
ARG COMMAND=firefox
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y $PACKAGES
# Autologin tty0 with user
RUN mkdir -p /etc/systemd/system/getty@tty1.service.d
COPY files/override.conf /etc/systemd/system/getty@tty1.service.d/override.conf
# Configure i3wm
COPY files/.xinitrc /home/user/.xinitrc
COPY files/config /etc/i3/config
COPY files/.bash_profile /home/user/.bash_profile
# Add command to script and autorun
RUN echo $COMMAND > /opt/app.sh
RUN chmod +x /opt/app.sh
RUN echo 'exec --no-startup-id /opt/app.sh' >> /etc/i3/config
#! /bin/bash
sudo rm fs/fs.tar fs/fs.qcow2
DOCKER_BUILDKIT=1 docker build --output "type=tar,dest=fs/fs.tar" .
sudo virt-make-fs --format=qcow2 --size=+500M fs/fs.tar fs/fs.qcow2
sudo chown user:user fs/fs.qcow2
#! /bin/bash
# Start Firefox using crosvm - start.sh
crosvm run -c 8 -m 4096 --disable-sandbox \
--gpu backend=virglrenderer,height=1080,width=1920 \
--tap-name tap_appvm1_in \
--rwroot fs/fs.qcow2 \
--display-window-keyboard \
--display-window-mouse \
-p 'init=/init net.ifnames=0 ip=10.99.1.2::10.99.1.1:255.255.255.0::eth0:off' \
--socket vm.sock \
--vhost-net \
bzImage
#! /bin/bash
# Start Firefox using qemu - start.sh
qemu-system-x86_64 -machine vmport=off \
-enable-kvm -cpu host -m 2048m -smp 8 \
-kernel bzImage \
-append "root=/dev/vda rw init=/init" \
-drive id=root,file=/mnt/ramdisk/fs.qcow2,format=qcow2,if=none \
-device virtio-rng-pci \
-device virtio-blk-pci,drive=root \
-nic user,model=virtio \
-vga virtio \
-soundhw hda \
-device virtio-tablet-pci,id=input2,bus=pci.0,addr=0x9 -spice port=0,disable-ticketing,image-compression=off,seamless-migration=on \
-spice gl=on,unix,addr=vm.sock,disable-ticketing \
-device virtio-serial -chardev spicevmc,id=vdagent,debug=0,name=vdagent \
-device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
-monitor unix:monitor.sock,server,nowait \
& remote-viewer spice+unix://vm.sock
Bugs still possible, but attack surface is lesser
AppVM doesn't have one!
Reduced attack surface
Alpine Dockerfile
400 MB for firefox
Device - DEVVM
- Ethernet, Wifi, Bluetooth
Networking - NETVM (Chainable)
- VPN, Tor, Host, stacking
- Firewall/IPS/IDS
Audio + Mic + Webcam - AVVM (Pipewire)
- Access log
- Linux/KVM base vs XEN
- Accelerated graphics with virtio-gpu, vulkan, etc.
while respecting user privacy
while respecting user privacy
vs VM for multiple apps
All apps have access to the files in VM
Exploited app -> Full VM burn
Only using virt stack
Exploits can't persist
Workspace is a full desktop environment
Head over to github.com/openw3b/vmpack
1. Reduce the size - slim and harden
2. Use nix
3. Privacy toggles and indicators
4. Compatibility with other Distro/Mac
5. Notifications
6. Improved window management
....
Contribute at github.com/openw3b/vmpack
A piece of software that allows a user to operate on a hardware and run additional software
A piece of software that allows a user to operate on a hardware and run additional software in a secure, defined way even when the user and additional software are not trusted
DesktopOS
MobileOS
Box
Apps & Services
Assistant
Federated Cloud ecosystem
Code github.com/openw3b
Donate donate@openw3b.org
Sponsor sponsor@openw3b.org
Support FOSS
Spread Love, peace and joy!
SaveSoil.com
Looking for co-founders and full-time volunteers too!
hello@openw3b.org
hello@openw3b.org