DevShield ist ein separates Entwicklerwerkzeug von Anankelis zur Prüfung von npm- und pip-Abhängigkeitsinstallationen. Es ergänzt die Proxia-Browsererweiterung; für die Nutzung von Proxia benötigen Sie es nicht.
i
DevShield ist ein Prüfpunkt Werkzeug: Es schützt nur Installationen, die Sie darüber ausführen. Ein direkt ausgeführtes
npm ci bleibt unsichtbar. Sie härten Ihre CI und den freigegebenen lokalen Ablauf — nicht „installieren und überall sicher sein“.
Installieren
DevShield und Anleitung beziehen.
Kontaktieren Sie ANANKELIS oder Ihren Administrator für das passende Paket und die Installationsanleitung Ihrer Umgebung.
DevShield führt Ihren Befehl aus, wendet die aktivierten Prüfstufen an und schreibt (mit
--audit-log) ein lokales JSONL-Protokoll. Jede Stufe ist standardmäßig auf
warn gesetzt (nicht destruktiv); Sie erhöhen auf block
oder fail , wenn Sie härten möchten.
Jede ist unabhängig und standardmäßig nicht destruktiv. Zusammen decken sie die häufigsten Installationsangriffswege ab.
// 1 · Ausführung
Lifecycle-Skripte
--scripts-mode warn|block|fail
block deaktiviert npm-Installationsskripte (fügt
--ignore-scripts); fail verweigert (Exit 21) vor dem Start des Prozesses. Prüft auch npx / npm exec /
pnpm dlx als beliebige Codeausführung. pip: nur Warnungen.
Die Ebene, die Schadcode nach dem Muster Shai-Hulud / Axios stoppt.
// 2 · Integrität
Lockfile-Zustand
--preflight-lockfile [--lockfile-mode warn|fail]
Meldet (oder verweigert, Exit 22) ein fehlendes oder ungehashtes npm-Lockfile oder einen Befehl, der ändert
das Lockfile (npm install), statt es zu beachten (npm ci). Zustandsprüfung, keine Manipulationserkennung — npm prüft Hashes bereits. pip: bestmöglich, nur Warnungen.
// 3 · Geheimnisse
Geheimnis-Vorprüfung
--preflight-secrets [--preflight-mode warn|fail]
Meldet Umgebungsvariablen und Dateien mit Geheimnissen (.env,
.npmrc, .pypirc…) vor dem Start der Installation —
ohne die Werte jemals auszugeben. fail → Exit 20.
// 4 · Netzwerk
Ausgehender Proxy
--egress-proxy [--egress-mode warn|enforce]
Ein lokaler Proxy (127.0.0.1), über den die Installation läuft. enforce
blockiert (403) Verbindungen zu Hosts außerhalb der Freigabeliste. Kein MITM: Blockierung nach Host, niemals nach Inhalt.
warn protokolliert alles; ein Bindungsfehler im Modus enforce → Exit 23 (sicher verweigern).
Modi · scripts-mode
Modus
Wirkung
DEVSHIELD_MODE
warnStandard
Läuft unverändert; protokolliert ein lifecycle_scripts Ereignis.
nur Audit
block
Deaktiviert Skripte für npm (fügt --ignore-scripts + npm_config_ignore_scripts). pip / npx: nur Warnungen.
enforce
fail
Beendet sich 21 vor dem Prozessstart, falls Skripte ausgeführt würden. Unbekannter Befehl → verweigert (sicher verweigern).
enforce
!
Hinweis zur Abdeckung:block Die Skriptdeaktivierung ist verifiziert für npm. yarn Berry (v2+) ignoriert npm_config_* und beachtet --ignore-scriptsnicht; vor dem Einsatz mit pnpm/yarn prüfen.
Exitcodes
Ein Code je Verweigerung — in CI-Skripten nutzbar.
Code
Bedeutung
0
Unterprozess ausgeführt; keine Prüfstufe hat verweigert.
--lockfile-mode fail: Risiko beim Lockfile-Zustand.
23
--egress-mode enforce: Proxy konnte nicht starten (sicher verweigern).
10
prüfen / ausgehenden Verkehr beobachten: Ziel durch Richtlinie blockiert.
2
Nutzungs- oder Argumentfehler.
125 · 127
Fehler beim Schreiben des Audit-Protokolls (125) · Fehler bei der Befehlsausführung (127).
Einführung · zuerst CI
Der wertvollste Ansatzpunkt.
Hier treffen Lieferkettenangriffe tatsächlich ein; die Stelle ist zentral und kann nicht vergessen werden. Ersetzen Sie eine Zeile und lassen Sie den Build bei Risiken sicher scheitern:
Weitere Ansatzpunkte: ein Shell-Alias
(alias npm='devshield run … -- npm') für transparente lokale Nutzung; ein gemeinsames
Makefile / just Ziel für das Team; der Entwicklungscontainermit seinem
postCreateCommand.
Audit-Protokoll
Ein lokales, lesbares JSONL-Protokoll.
devshield audit read --audit-log <file> # Zusammenfassung aller Ereignissedevshield audit trace --audit-log <file> --context-id <id> # ein Befehl mit ausgehendem Verkehr
Ereignisse: command_run, lifecycle_scripts,
secret_preflight, lockfile_preflight,
egress_observation. Alles lokal; nichts wird übertragen.
Transparenz · was DevShield nicht ist
Eindämmung, kein Zauberstab.
// Umfang
Nur darüber ausgeführte Installationen
Kein systemweites Abfangen. Ein direktes npm ci ist unsichtbar. Der Shell-Alias kommt dem am nächsten, ist aber optional und umgehbar.
// Art
Eindämmung, keine Integrität
--scripts-mode stoppt Ausführung und Datenabfluss; es erkennt nicht, ob ein Paket ausgetauscht wurde. npm prüft die Integrität bereits bei der Installation.
// Netzwerk
Host, nicht Inhalt
Der Proxy blockiert nach Host:Port, ohne MITM. Er kann einen Download nicht von einem publish auf einem freigegebenen Host unterscheiden. github.com bleibt standardmäßig erlaubt.
// Zerstörung
Kein Dateisystemschutz
Ein postinstall , das Dateien löscht, wird nur gestoppt, wenn Skripte deaktiviert sind (block/fail). Netzwerkkontrolle hilft hier nicht.
Nutzen Sie DevShield, um Ihre CI und Ihren freigegebenen lokalen Ablauf zu härten, zusammen mit festgeschriebenem Lockfile und Paketprovenienz — nicht als „installieren und überall sicher sein“.