Zum Hauptinhalt springen

Befehlsmenü

Zu einer Seite springen oder den Katalog durchsuchen

KI-Tools & -Skripte

Dev Container Sicherheitsprüfung

Prüfen Sie devcontainer.json, bevor jemand es öffnet: privilegierte Container, Host-Befehle, die curl an bash weiterleiten, Secrets in env, eingebundene ~/.ssh und ~/.aws, der Docker-Socket, nicht fixierte Features, Root-Benutzer, offene Ports und weitreichender Codespaces-Zugriff.

$5.00

Das bekommst du: 1 Datei · 36.44 KB · ZIP

Kaufoptionen ansehen

Produktbeschreibung

"initializeCommand": "curl -fsSL https://... | bash" läuft nicht im Container: Es läuft auf Ihrem eigenen Rechner, jedes Mal, wenn jemand das Repository in einem Dev Container öffnet. Und ein Mount von ${localEnv:HOME}/.ssh übergibt Ihre privaten Schlüssel an jedes Paketinstallationsskript darin. Dieser Skill findet diese und zwölf weitere Dev-Container-Risiken, bevor jemand den Ordner öffnet, und sagt Ihnen, wie Sie jedes einzelne beheben.

Ihr Agent führt einen Scanner über .devcontainer/devcontainer.json, .devcontainer.json und die ordnerspezifischen Konfigurationen unter .devcontainer/ aus (VS Code Dev Containers, GitHub Codespaces, die devcontainer CLI). Er liest JSON mit Kommentaren und nachgestellten Kommas, kennt die Variablen ${localEnv:NAME} und ${containerEnv:NAME}, die String-, Array- und Objektformen von Lifecycle-Befehlen, Mount-Strings und Mount-Objekte, die docker-run-Optionen in runArgs, weiß, dass runArgs, appPort und workspaceMount nicht für Docker-Compose-Konfigurationen gelten, dass numerische appPort-Werte auf localhost bleiben und dass eine devcontainer-lock.json Features fixiert. Lokale Entwicklungspasswörter (postgres, devpass, rootpass), Einstellungen, die ein Secret betreffen (PASSWORD_HASHER), und Platzhalter (your-token, django-insecure-...) werden nicht als Secrets gemeldet. Er führt niemals docker, die devcontainer CLI oder einen gefundenen Befehl aus. Er liefert BLOCK, REVIEW oder NOT FLAGGED mit Datei, Zeile, Grund und einem sichereren Ansatz. Secrets werden nie ausgegeben.

Was geprüft wird

BLOCK (vor der Auslieferung beheben)

  • D01: ein initializeCommand (er läuft auf dem Host), der ein Skript herunterlädt und ausführt: curl | bash, bash <(curl ...), iwr | iex
  • D02: Passwörter, Tokens und Schlüssel, die in containerEnv, remoteEnv, Build-Argumenten, runArgs -e, Lifecycle-Befehlen (auch docker login -p, az login -p, sqlcmd -P und ein per echo an docker login --password-stdin übergebenes Literal), ${localEnv:NAME:default}-Standardwerten, der Eigenschaft secrets oder einer beliebigen Einstellung stehen (Secret-Namen, Passwörter in URLs, bekannte Token-Formate)
  • D03: Ihr Home-Ordner, ~/.ssh, ~/.aws, Anmeldungen für Cloud-CLIs und Docker, GnuPG, .npmrc, .netrc und andere Dateien mit Zugangsdaten, der Root-Ordner des Hosts oder /etc, in den Container eingebunden

REVIEW (vor dem Release prüfen)

  • D11: privilegierte Container ("privileged": true, --privileged in runArgs oder das docker-in-docker-Feature, das diesen Modus aktiviert)
  • D12: der eingebundene Docker- oder Podman-Socket oder das docker-outside-of-docker-Feature, das ihn einbindet
  • D13: onCreateCommand, postCreateCommand und die anderen Einrichtungsbefehle, die einen Download an eine Shell weiterleiten
  • D14: Images ohne Tag oder mit :latest sowie Features ohne Version, mit :latest oder als Tarball-URL angegeben (sofern keine devcontainer-lock.json sie fixiert)
  • D15: Capabilities über die Docker-Standards hinaus (SYS_PTRACE allein ist in Ordnung), Host-Geräte sowie deaktiviertes seccomp, AppArmor oder SELinux (die Debugger-Konfiguration aus SYS_PTRACE plus seccomp=unconfined wird nicht gemeldet)
  • D16: Host-Namespaces für Netzwerk, PID, IPC, UTS, Benutzer oder cgroup
  • D17: remoteUser, containerUser oder runArgs --user auf root gesetzt
  • D18: ein initializeCommand, der ein Programm oder Skript auf dem Host ausführt (mkdir, touch, cp, docker pull und ähnliche einfache Schritte sind in Ordnung)
  • D19: ~/.kube, ~/.minikube, /proc, /sys, /dev, /var/lib/docker, /run, /boot oder /lib/modules vom Host eingebunden
  • D20: Ports, die auf allen Netzwerkschnittstellen veröffentlicht werden (runArgs -p oder -P, appPort-Strings ohne 127.0.0.1)
  • D21: Codespaces-Repository-Berechtigungen mit write-all, Schreibzugriff auf owner/* oder Schreibrechten für workflows

Was enthalten ist

  • Der Scanner (Python 3.9+, nur Standardbibliothek)
  • Ein Regelhandbuch mit Grund, sichererem Ansatz und offizieller Quelle für jede Regel
  • Ein riskantes und ein sicheres Beispielprojekt (ein API-Dev-Container und ein Dev Container mit Cluster-Tools) sowie der echte Bericht, den der Scanner für das riskante Projekt erzeugt

Grenzen

Es werden nur devcontainer.json-Dateien gelesen: Das Dockerfile, die in dockerComposeFile genannten Docker-Compose-Dateien, Installationsskripte von Features, Einstellungen, die Images und Features über ihre eigenen Metadaten hinzufügen (außer den Docker-Features in D11 und D12), und Skripte, die von Befehlen aufgerufen werden, werden nicht gelesen. Befehle werden als Text abgeglichen, daher wird ein Skript, das in eine Datei heruntergeladen und in einem späteren Schritt ausgeführt wird, nicht gemeldet. Major-Versions-Tags wie :1 gelten als fixiert, obwohl der Herausgeber sie verschieben kann; nur ein Digest oder eine devcontainer-lock.json fixiert ein Feature exakt. Privilegierter Modus und Docker-Socket sind REVIEW, nicht BLOCK: Beide übergeben den Docker-Host an Code im Container, aber beide sind bewusste, dokumentierte Wege, Docker in einem Dev Container auszuführen (die offiziellen Vorlagen docker-in-docker und docker-outside-of-docker nutzen sie), daher erhält der privilegierte Modus dieselbe Stufe, egal ob er ausgeschrieben oder durch das Feature aktiviert wird. Das Einbinden des gesamten Home-Ordners (ein Beispiel aus der VS-Code-Dokumentation) ist BLOCK, weil jeder Schlüssel darin im Container lesbar wird. NOT FLAGGED ist keine Garantie.

Inhalt

Eine ZIP-Datei mit 11 Dateien: SKILL.md, der Scanner in scripts/ (4 Python-Dateien), references/rules.md (jede Regel mit Grund und sichererem Ansatz) und examples/ (4 Beispieldateien plus report.md, die echte Scanner-Ausgabe für das riskante Beispiel).

So verwenden Sie es: Dies ist ein Agent-Skill: ein Ordner mit einer SKILL.md-Datei und Python-Skripten, die ein KI-Coding-Agent wie Claude Code, Cursor oder Codex CLI ausführen kann. Entpacken Sie ihn in den Skills-Ordner Ihres Agenten (für Claude Code: ~/.claude/skills/) und bitten Sie dann Ihren Agenten, Ihr Projekt zu prüfen. Die Skripte laufen auch eigenständig mit Python 3.9 oder neuer, ohne dass etwas installiert werden muss. Sie lesen nur Ihre Dateien: kein Netzwerkzugriff, und nichts wird irgendwohin gesendet.

Das bekommst du

1 Datei · 36.44 KB

  • devcontainer-safety-check-1.0.0.zipZIP · 36.44 KB
LizenzKommerzielle Nutzung erlaubt
PaketprüfungBestanden

Getly hat die hochgeladenen Dateien geöffnet und nichts gefunden, was das Öffnen verhindern würde. Das ist kein Virenscan und keine Qualitätsbewertung.

Veröffentlicht12. Nov. 2026
Dateigröße36.44 KB
DateiformatZIP
Versionv1.0

Tags

devcontainercodespacesdockersecuritydevopsai agent skill
R
RR HH

Häufige Fragen

Erhalte ich sofort Zugriff?

Ja. Dies ist ein digitales Produkt - du kannst es direkt nach dem Kauf aus deiner Bibliothek herunterladen.

Darf ich es für kommerzielle Projekte nutzen?

Ja. Kommerzielle Nutzung ist erlaubt: im eigenen Business und in dem, was du verkaufst. Die Datei selbst darfst du nicht weiterverkaufen oder verbreiten.

Wie sind die Rückerstattungsbedingungen?

Du kannst innerhalb von 30 Tagen eine Rückerstattung anfordern. Stimmt etwas nicht, fordere sie bei deiner Bestellung an - das Getly-Team prüft sie.

Welche Dateiformate und -größen erhalte ich?

Du lädst 1 Datei herunter - ZIP - insgesamt 36.44 KB.

Erhalte ich kostenlose Updates?

Ja - wenn der Verkäufer eine neue Version veröffentlicht, kannst du die aktuellen Dateien kostenlos erneut aus deiner Bibliothek herunterladen. Aktuelle Änderungen findest du im Changelog.

Preis

$5.00