
Sicherheit für das moderne Zeitalter der KI: Verteidigung gegen böswillige KI-Agenten und schädliche npm-Pakete
Sicherheit für das moderne KI-Zeitalter.
Keine Sicherheitsebene ist perfekt. airgap ist noch experimentell. Beiträge willkommen!
airgap startet ein Zielprogramm (z. B. einen KI-Coding-Agenten) in einem eigenen
Mount-Namespace und ersetzt transparent Geheimnisse durch geschwärzte Versionen. Ein
Programm, das unter airgap läuft, kann geschützte Dateien weiterhin lesen und
ändern, sieht aber nie die tatsächlichen Geheimnisse. Bisher schützt airgap:
.env und .env.* (z. B. .env.local, .env.production) — erkannt über den
Dateinamen. Werte werden zu <redacted value> geschwärzt, während Schlüssel sichtbar bleiben;
Änderungen, Hinzufügungen und Löschungen werden zurück in die echte Datei geschrieben.BEGIN/END-Marker erhalten bleiben..npmrc — erkannt über den Dateinamen. Auth-Token- und Passwort-Werte
(_authToken, _auth, _password, einschließlich der pro-Registry-Form
//registry/:_authToken) werden zu <redacted value> geschwärzt, während
Registries, Scopes, email und Kommentare sichtbar bleiben; Änderungen werden
zurück in die echte Datei geschrieben.Weitere Geheimnistypen werden hinzugefügt.
Diese werden überall unter dem Arbeitsverzeichnis oder Ihrem Home-Verzeichnis
($HOME) geschwärzt – also sind sowohl das .env eines Projekts als auch die ~/.ssh-Keys
abgedeckt. Die Erkennung ist dynamisch: Auch Dateien, die nach dem Start erstellt werden, werden erfasst.
Vergleichen Sie den Inhalt von .env mit und ohne Verwendung von airgap:
$ cat .env
API_KEY=sk-live-9f8c2a1b4e7d
DB_PASSWORD=hunter2
$ airgap cat .env
API_KEY=<redacted value>
DB_PASSWORD=<redacted value>
Mit einem KI-Agenten:
$ airgap claude
show me ./test/fixtures/.env contents
Read 1 file
Here's the file:
DATABASE_URL="<redacted value>"
API_KEY="<redacted value>"
AWS_SECRET_ACCESS_KEY="<redacted value>"
DEBUG="<redacted value>"
...
Eine zusätzliche Schicht schützt vor bösartigen Paketen: airgap fragt nach Ihrer
Genehmigung, wenn unerwartete Dateien zugegriffen werden – zum Beispiel durch ein bösartiges
npm-Installationsskript.
Wenn das Gate aktiv ist, fragt airgap Sie, ob Sie das erste Lesen jeder neuen Datei erlauben oder ablehnen möchten. Die Zustimmung zu einer Datei gewährt nur diese Datei; Entscheidungen gelten für die Laufzeit. Jeder Paketmanager enthält eine Liste vorab genehmigter Dateien.
Zum Beispiel beim Installieren eines bösartigen Pakets, dessen postinstall-Skript
versucht, Ihre SSH-Schlüssel und .env zu lesen:
$ airgap npm install
...
airgap: npm wants to read the file /home/you/.ssh/id_rsa — allow? [y/N] n
airgap: npm wants to read the file /home/you/.env — allow? [y/N] n
Antworten Sie mit n, um den Zugriff abzulehnen.
airgap verwendet Mount-Namespaces und ein FUSE-Overlay,
beides Linux-Funktionen.cargo install airgap
airgap <program> [args...]
airgap führt <program> mit [args...] aus, wobei argv, die
Umgebung und das Arbeitsverzeichnis unverändert übergeben werden. Wenn <program> beendet wird,
beendet sich airgap mit demselben Exit-Code.
Um Ihren KI-Agenten immer unter airgap auszuführen, legen Sie in Ihrer Shell-Konfiguration
(~/.bashrc, ~/.zshrc, ...) einen Alias an:
alias claude="airgap claude"
alias opencode="airgap opencode"
Jetzt läuft claude (oder opencode) transparent innerhalb von airgap.
Führen Sie Ihren Paketmanager unter airgap aus, um sich vor bösartigen Installations-
skripten zu schützen. Oder legen Sie einen Alias in Ihrer Shell-Konfiguration an:
alias npm="airgap npm"
Wenn Sie ein Sicherheitsproblem melden oder eine Frage stellen möchten, senden Sie eine E-Mail an [email protected].