Marie-Hélène Burle
October 13, 2026
The landscape is evolving fast
This webinar is about communicating concepts
Tools are only shown as examples and which tools you chose depends on your OS, how important your data and your system are, and your personal risk tolerance
Cybersecurity is not new. What changed?
AI agents
Outside risk
➔ Finding exploits for cyberattacks has become a lot easier for a lot more actors
Inside risk
➔ New risks coming from inside your own system from your own agents
Multiple agents run in parallel in child threads
Demultiplies token usage and risks if poorly managed
AI agent = model + harness
LLM
The intelligent part
Passive text generator
Not a liability in itself
(beside hallucinations and disinformation)
Software infrastructure that turns the model into an actor
These function in a loop until a goal is reached:
Reason ➔ Act ➔ Check result ➔ Reason ➔ Act ➔ … ➔ Goal
OpenCode (open source)
Codex CLI (OpenAI, open source for Codex CLI only)
Claude Code (Anthropics, fully closed source)
Antigravity CLI (Google, fully closed source)
GitHub Copilot CLI (GitHub, fully closed source)
…
Data loss
Compromised system
Privacy breaches
Exposition of sensitive data
Agents keep finding vulnerabilities
Install patches as soon as they are released
(rolling distros might be at an advantage)
Make sure to update/install from trusted sources
Examples of backup tools:
BorgBackup (Python)
restic (Go) and its Rust implementation rustic
Vykar (Rust)
Kopia (Go)
Make sure that backups are encrypted if they are online
For all your projects
Consider using it for your system files
It will make undoing actions of agents A LOT easier
Example of open-source tool: KeePassXC
Randomly generated multi-word passphrases provide more entropy than short passwords while being easier to remember
What sensitive data do you have where?
Check your computer(s), phone, old/broken computers/phones, backup systems, files remote systems, online files (e.g. Google Drive, emails)
Does it need to be there?
Delete sensitive data where not needed
Who has access to your sensitive data?
Do they need to have access?
Remove access to shared online documents when not needed anymore
On shared systems, remove access from users who don’t need it
Learn the Linux permission system
➔ chown and chmod commands
For more subtle sharing, check access control lists (ACLs)
Not using RAM nor CPUs
More secure and more efficient
Hardware Security Module (HSM)
Self-Encrypting Drive (SED)
Files encryption
Directories encryption
File system encryption
Whole disk encryption
Not using RAM nor CPUs
More secure and more efficient
Hardware Security Module (HSM)
Self-Encrypting Drive (SED)
Files encryption
Directories encryption
File system encryption
Whole disk encryption
Open standard for cryptographic operations
Cross platform
Uses key pairs: public key to encrypt and private key to decrypt
Evolving with new algorithms and post-quantum cryptography
New format: RFC 9580 using Ed25519 elliptic curve algorithm
It is not the default in common applications
Make sure to use RFC 9580 when generating keys
OpenPGP is used by GnuPG, although now diverging from it
A more modern and robust Rust implementation is Sequoia PGP
Generate key pair:
List certificates and keys:
Encrypt files:
Decrypt:
Sequoia Chameleon is a reimplementation of the GnuPG interface so that existing software (email clients, scripts, etc.) can use Sequoia without code modifications
gpg-sq & gpgv-sq emulate gpg & gpgv
You can symlink gpg-sq to gpg to act as drop-in replacement:
To use the KeePassXC password manager to automatically use a pwd to mount, you could do:
A form of containment
Does not prevent unexpected behaviours but
reduces the blast radius
There are many tools
Not designed for sandboxing purposes
Kernel shared with the host (vulnerability)
Most require root privilege which adds exposure. Apptainer (rootless) is better
➔ Same level of inconvenience than microVM for less security
Harnesses come with a number of modes, options, and capabilities
Familiarize yourself with the harness you use
Models are changing so fast that any architecture around them becomes instantly obsolete
Companies rebuild their harness every couple of weeks
This is a very fast evolving topic
CLAUDE.md, AGENTS.md, GEMINI.md, etc. are files containing rules that agents read at the start of each sessions
Unfortunately, you cannot trust agents to follow instructions
Modular and reusable files containing instruction for specific tasks
⚠️ YOLO (“You Only Live Once”) mode removes all guardrails
Some harnesses allow to set hooks that run before certain commands
They can however be bypassed by agents using alternative utilities/methods/paths/etc.
Codex
on by default
Claude Code
off by default, controlled by agent (!!)
Antigravity CLI
Seatbelt on macOS, container on Windows, container with gVisor on Linux
If the sandbox is part of the harness, the agent might be able to control it (in the case of Claude Code, it absolutely can…)
Not to mention some exceptionally ridiculous design decisions…
🤨 … 🤣
If you don’t trust the agent, some constraints need to be outside the harness, out of reach of the agent
Everybody is experimenting
The sandbox outside the harness still contains the risks of API keys and sensitive data egress (data exfiltration)
There are more complex systems that isolate the agent and the data in separate microVMs
There is no consensus yet on tools and practices
bubblewrap is the engine behind Flatpak
Linux only
Installed on the clusters
You bind mount directories and set env variables needed
Everything else is out of reach
You end by launching a shell/tmux/your agent/your MCP servers
Example script:
#!/bin/bash
# Stop and exit quickly if something fails (easier to debug)
set -euo pipefail
# You could limit available commands here
SANDBOX_PATH="$HOME/.local/bin:/usr/local/bin:/usr/bin:/bin"
# use exec to replace current script by bwrap command instead of forking
# --ro-bind bind mounts paths read-only
# --bind bind mounts paths with write access
exec /usr/bin/bwrap \
--tmpfs /tmp \
--dev /dev \
--dir /dev/shm \
--tmpfs /dev/shm \
--proc /proc \
--hostname ptsbox --unshare-uts \
--ro-bind /bin /bin \
--ro-bind /lib /lib \
--ro-bind /lib64 /lib64 \
--ro-bind /usr/bin /usr/bin \
--ro-bind /usr/lib /usr/lib \
--ro-bind /usr/local/bin /usr/local/bin \
--ro-bind /usr/local/lib /usr/local/lib \
--ro-bind /etc/resolv.conf /etc/resolv.conf \
--ro-bind /etc/profile.d /etc/profile.d \
--ro-bind /etc/ssl/certs /etc/ssl/certs \
--ro-bind /etc/passwd /etc/passwd \
--ro-bind /etc/ld.so.cache /etc/ld.so.cache \
--ro-bind /etc/ld.so.conf /etc/ld.so.conf \
--ro-bind /etc/ld.so.conf.d /etc/ld.so.conf.d \
--ro-bind /etc/localtime /etc/localtime \
--ro-bind /usr/share/terminfo /usr/share/terminfo \
--ro-bind /usr/share/ca-certificates /usr/share/ca-certificates \
--ro-bind /etc/nsswitch.conf /etc/nsswitch.conf \
--ro-bind /etc/hosts /etc/hosts \
--ro-bind /etc/gai.conf /etc/gai.conf \
--ro-bind /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf \
--ro-bind /usr/share/zoneinfo /usr/share/zoneinfo \
--ro-bind $HOME/.bashrc $HOME/.bashrc \
--ro-bind $HOME/.gitconfig $HOME/.gitconfig \
--ro-bind $HOME/.local $HOME/.local \
--ro-bind /etc/ca-certificates /etc/ca-certificates \
--ro-bind "$XDG_RUNTIME_DIR/bus" "$XDG_RUNTIME_DIR/bus" \
--bind $HOME/.cache $HOME/.cache \
--bind "$PWD" "$PWD" \
--setenv HOME "$HOME" \
--setenv USER "$USER" \
--setenv PATH "$SANDBOX_PATH" \
--setenv XDG_RUNTIME_DIR "$XDG_RUNTIME_DIR" \
--setenv DBUS_SESSION_BUS_ADDRESS "unix:path=$XDG_RUNTIME_DIR/bus" \
--chdir "$PWD" \
--setenv TERM "$TERM" \
--setenv XDG_RUNTIME_DIR "$XDG_RUNTIME_DIR" \
--setenv DBUS_SESSION_BUS_ADDRESS "unix:path=$XDG_RUNTIME_DIR/bus" \
zshNow compare this from the launched Zsh vs a normal Zsh:
microsandbox is a cross-platform local microVM
Test installation with:
Can run TypeScript, Rust, Python, Go, Ruby, or from the CLI
We’ll use the CLI here
Uses OCI (Open Container Initiative) images from Docker Hub or other registry
Subcommands:
Navigate long help outputs with for instance:
msb run -t --name opencodebox --replace \
--cpus 2 --memory 2G --root-disk 4G \
--mount-dir .:/workspace:rw \
--workdir /workspace \
node:24-bookworm-slim -- sh -lc '
apt-get update &&
apt-get install -y --no-install-recommends ca-certificates git &&
npm install -g opencode-ai@1.18.4 &&
exec opencode
'Gives your agents new accesses and capabilities
Review carefully
Also needs to run inside your sandbox
Might help you troubleshoot if things go wrong