Open-Source-Projekt · Supply-Chain-Sicherheit
SafeInstall
Das Install-Gate für die KI-Agenten-Ära.
Policy läuft zuerst. Dann der Paketmanager. Nicht umgekehrt.
SafeInstall ist ein quelloffenes Kommandozeilen-Werkzeug, das riskante Installationen für npm, pnpm und bun blockiert, bevor sie ausgeführt werden. Wir haben es entwickelt, weil KI-Coding-Agenten heute Pakete in Sekunden vorschlagen und installieren — ohne zu prüfen, wer sie veröffentlicht hat und was beim Installieren passiert.
MIT-Lizenz · Läuft lokal · Kein Cloud-Dienst · Kein Konto · Kostenlos
Zwischen „npm install" und „kompromittiert" liegt kein Prüfschritt
Bei jeder Paketinstallation passieren drei Dinge, die kaum jemand kontrolliert — und die in der Arbeit mit KI-Agenten deutlich häufiger geworden sind.
Installations-Skripte laufen sofort.
Ein Paket darf beim Installieren beliebigen Code ausführen — über preinstall, install oder postinstall. Dieser Code läuft, bevor eine einzige Zeile der eigenen Anwendung startet, mit den Rechten der Person am Rechner. Wer das Paket vorher nicht gelesen hat, hat es auch nicht geprüft.
KI-Agenten installieren ungeprüft.
Ein Coding-Agent schlägt ein Paket vor und führt den Befehl aus. Er prüft nicht das Veröffentlichungsdatum, liest keine Installations-Skripte, verifiziert keine Herkunft. Der Mensch bestätigt und macht weiter. Kommt der Paketname aus einer Halluzination oder einer manipulierten Anleitung, hat sich der Angreifer den Namen längst gesichert.
Klassische Scanner melden zu spät.
Schwachstellen-Datenbanken kennen nur, was bereits bekannt und veröffentlicht ist. Bei einem frisch kompromittierten Paket existiert zum Zeitpunkt der Installation noch kein Eintrag. Eine Schwachstellen-Datenbank warnt vor verlorenem Boden — sie ist kein Gate.
Ein Werkzeug, drei Verteidigungsschichten
SafeInstall setzt an drei Stellen an: bei den Menschen, die installieren, bei den Agenten, die es für sie tun — und bei den Dateien, die diese Agenten steuern.
Schicht 1 — Für Menschen, die installieren
Man stellt den Befehl voran: safeinstall pnpm add axios. Die Policy läuft, danach startet pnpm. Release-Alter, Installations-Skripte, Bezugsquelle und Vertrauens-Rückstufungen werden geprüft, bevor etwas auf die Festplatte geschrieben wird.
Schicht 2 — Für KI-Agenten, die installieren
Ein MCP-Server stellt Agenten das Werkzeug check_package bereit, das sie vor einer Installation aufrufen können. Zusätzlich fängt ein Shell-Guard Installationsbefehle in Claude Code, Codex und Cursor ab, bevor sie ausgeführt werden. Findet der MCP-Server keine Projekt-Konfiguration, fährt er bewusst ein schärferes Profil als die menschliche Nutzung: Typo-Squat- und Provenance-Kontinuitätsprüfung stehen dann auf blockieren — im Agenten-Betrieb zählt maximales Signal.
Schicht 3 — Für die Dateien, die Agenten programmieren
Das ist der Teil, den es sonst kaum gibt. Ein manipulierter Agent muss das Gate gar nicht bekämpfen — er kann einfach die Regeln umschreiben: die Konfiguration abschwächen, einen Hook löschen, eine unsichtbare Anweisung in AGENTS.md verstecken oder einen bösartigen MCP-Server registrieren. Diese Dateien steuern die nächste Agenten-Sitzung; sie sind der neue Persistenz-Mechanismus.
Die Agent Trust Surface legt dagegen eine Hash-Baseline dieser Dateien im Repository ab. SafeInstall gleicht den echten Zustand vor jeder Entscheidung dagegen ab — und verifiziert ihn zusätzlich in der CI bei jedem Pull Request, auf einer Maschine, die der Agent nicht kontrolliert. Änderungen, die den Schutz lockern, verlangen zwingend einen Menschen am Terminal.
So sieht das in der Praxis aus
Kein Dashboard, kein Bericht im Nachhinein — die Entscheidung fällt vor der Installation, im Terminal.
Zwei unabhängige Gründe, beide vor dem Schreibzugriff erkannt. Erlaubt die Policy den Vorgang, ruft SafeInstall den echten Paketmanager auf und tritt zur Seite.
Vier Prüfungen ab Werk, vier zuschaltbar
Diese Trennung ist bewusst. Ab Werk aktiv ist, was in nahezu jedem Projekt sinnvoll ist, ohne den Arbeitsfluss zu stören. Alles, was projektabhängig zu Fehlalarmen führen kann, ist standardmäßig aus und wird bewusst zugeschaltet.
Ab Werk aktiv
Release-Alter — blockiert Versionen, die jünger als 72 Stunden sind (konfigurierbar)
Installations-Skripte — preinstall, install, postinstall blockiert, bis explizit freigegeben
Bezugsquellen — Registry, Workspace, Datei und Verzeichnis erlaubt; Git- und URL-Quellen blockiert
Vertrauens-Rückstufung — erkennt den Wechsel von Registry zu Git/URL oder neu hinzugekommene Skripte bei einem Update
Zuschaltbar
Typo-Squat-Erkennung — Namensähnlichkeit zu bekannten, verbreiteten Paketen
Provenance-Verifikation — kryptografische Prüfung der Sigstore-Attestierung
Transitive Prüfung — untersucht den gesamten Abhängigkeitsbaum statt nur der direkten Pakete
Provenance-Kontinuität — erkennt, wenn eine neue Version die Attestierung der Vorgänger verliert oder plötzlich aus einem anderen Quell-Repository stammt
Unklare oder unvollständige Metadaten führen zur Blockade, nicht zur Freigabe. Im Zweifel gegen die Installation — das ist die Grundhaltung des Werkzeugs.
Drei Entscheidungen, die das Werkzeug prägen
Lokal statt Cloud.
SafeInstall läuft vollständig auf dem eigenen Rechner beziehungsweise in der eigenen CI. Es gibt keinen Dienst, an den Abhängigkeitsdaten gesendet werden, kein Konto und keine Telemetrie. Wer prüft, welche Pakete ein Unternehmen einsetzt, erfährt damit auch etwas über dieses Unternehmen — diese Information verlässt das Haus nicht.
Im Zweifel blockieren.
Ein Sicherheitswerkzeug, das bei unklarer Lage durchlässt, verschiebt das Risiko nur und erzeugt trügerische Sicherheit. SafeInstall entscheidet im Zweifel gegen die Installation. Das kostet gelegentlich einen bewussten Ausnahme-Eintrag — und genau dieser Eintrag ist dann eine dokumentierte Entscheidung statt einer stillen Annahme.
Menschen an den kritischen Stellen.
Jede Aktion, die den Schutz lockert, verlangt eine echte Person an einem echten Terminal. Die entsprechenden Befehle lesen ihre Bestätigung direkt vom kontrollierenden Terminal und verweigern den Dienst in CI-Umgebungen und bekannten Agenten-Kontexten. Ein Agent kann den Schutz nicht im Vorbeigehen abschalten.
Was SafeInstall nicht leistet
Ein Sicherheitswerkzeug, dessen Anbieter nur über Stärken spricht, ist schwer einzuschätzen. Deshalb hier die Grenzen, die wir selbst dokumentieren — sie stehen so auch in der öffentlichen Dokumentation.
Kompromittierte CI mit gültiger Provenance. Wird die Build-Pipeline eines legitimen Projekts selbst übernommen, entsteht eine korrekt attestierte Version aus dem richtigen Repository. Die Kontinuitätsprüfung sieht dort keinen Bruch. SafeInstall hebt die Hürde gegen das häufigste Angriffsmuster — es schließt nicht jede Tür.
Das Abfangen von Befehlen ist eine Schicht, keine Garantie. Der Shell-Guard greift auch dann, wenn ein Agent nicht kooperiert. Ein Programm, das der Agent selbst schreibt und startet, wird jedoch erst beim nächsten Abgleich erkannt — nicht im Moment des Aufrufs.
Lokal manipulationssichtbar, nicht manipulationssicher. Im eigenen Benutzerkonto kann ein hinreichend geschickter Angreifer Dateien umschreiben, die auch die Nutzerin oder der Nutzer umschreiben kann. Die belastbare Schicht ist die im Repository eingecheckte Baseline, die in der CI geprüft und im Pull Request von einem Menschen gelesen wird.
Diese Grenzen zu kennen ist Teil des Schutzes. Ein Werkzeug, dessen Reichweite man einschätzen kann, lässt sich richtig einsetzen.
Warum wir das gebaut haben
SafeInstall ist kein Nebenprodukt. Es ist die Antwort auf ein Problem, das wir in der täglichen Arbeit mit KI-gestützter Entwicklung selbst gesehen haben — und es ist öffentlich überprüfbar. Der vollständige Quellcode steht unter MIT-Lizenz auf GitHub. Jede Entscheidung, jede Grenze und jeder Kompromiss ist dort nachlesbar.
Wir halten das für den ehrlichsten Kompetenznachweis, den ein Technologieunternehmen erbringen kann: nicht die Behauptung, Sicherheit zu verstehen, sondern der einsehbare Code, an dem sich das überprüfen lässt.
Wenn Sie KI-Agenten in Ihrer Entwicklung einsetzen und wissen möchten, wo dabei Ihre Angriffsfläche liegt, sprechen Sie uns an.
Auf einen Blick
| Projekt | SafeInstall |
|---|---|
| Art | Open Source, MIT-Lizenz |
| Paket | safeinstall-cli (npm) |
| Paketmanager | npm, pnpm, bun |
| Voraussetzung | Node.js 20 oder neuer |
| Betrieb | Vollständig lokal — kein Cloud-Dienst, kein Konto |
| Quellcode | github.com/Mickdownunder/SafeInstall |
| Dokumentation | safeinstall.dev |
Sicherheit in KI-gestützter Entwicklung
Wir beraten Unternehmen, die KI-Agenten in der Softwareentwicklung einsetzen — von der Absicherung der Entwicklungsumgebung bis zur Frage, welche Kontrollen im Auslieferungsprozess tatsächlich greifen.
Cyntro Systems GmbH · Knittelfeld, Österreich