A Zero Trust Operating System
Eveything is VM... Everything is cool...
Let's explore!
A piece of software that allows a user to operate on a hardware and run additional software
also drivers, hardware, ...
Zero trust can be applied in an OS?
Isolate apps from everything else!
1. Resize freely
2. Clipboard access
3. Built using Rust
4. Audio server issues
5. Mouse issues
(QEMU)
1. Identical CPU performance achievable
2. RAM Usage (memory ballooning)
3. GPU performance (virtio-gpu)
4. Faster load times with save, resume
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
*We actually start crosvm using a management wrapper
#! /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
Device - DEVVM
- Ethernet, Wifi, Bluetooth
Networking - NETVM (Chainable)
- VPN, Tor, Host, stacking
- Firewall/IPS/IDS
Audio + Mic + Webcam - AVVM (Pipewire)
- Access log
vs VM for multiple apps
All apps have access to the files in VM
Exploited app -> Full VM burn
Exploits can't persist
Since everything runs in VMs, it can technically run anywhere
Everything happens in VM, bridged by middlewares. Easy to moniter
https://github.com/openw3b/vmpack
# Install vmpack
cd ~/
git clone git@github.com:Openw3b/vmpack.git .vmpack
ln -s ~/.vmpack/vmpack ~/.local/bin/vmpack
# Install Firefox
vmpack install firefox Fox1
Prerequisite: git docker libguestfs-tools socat virt-manager
AppVM doesn't have one!
Reduced attack surface
1. Reduce the size - slim and harden
2. App directory mounts. Fully immutable
3. Use nix
4. Privacy toggles and indicators
5. Compatibility with other Distros/Mac
6. Notifications, Applets
7. 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 in a secure, defined way even when the user and additional software are not trusted
DesktopOS - An easy, powerful and secure desktop OS
MobileOS - An easy, powerful and secure mobile OS
Box - A affordable, reliable and simple self-hosting
Apps & Services - Self hosted Cloud(services)
Assistant - Self hosted and private voice assistant
openw3b.org
#openw3b:matrix.org
This is Web3?
Free
Open source
Self hosted
Federated
Friendly
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!
Discuss #openw3b:matrix.org
We are a non-profit tech foundation!
hello@openw3b.org
hello@openw3b.org