Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
dockerscan — Der umfassendste Docker-Sicherheitsscanner | Kitploit
Tools/GitHubGitHub/cr0hn/dockerscan
SchwachstellenscannerContainer-SicherheitKonfigurationsprüfungCloud-SicherheitDevSecOpsSecret-ErkennungLieferkettensicherheit
GitHubcr0hn/dockerscan

dockerscan

Der umfassendste Docker-Sicherheitsscanner

Repository anzeigen
1.7k247vor 12h 37mVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
DockerScan Logo

DockerScan v2.0

Der umfassendste Docker-Sicherheitsscanner

License Go Version Version CI/CD Test Coverage Go Report Card Downloads

Von Daniel Garcia (cr0hn) | GitHub | Website


Funktionen • Installation • Schnellstart • Dokumentation • Anwendungsfälle • Neuerungen • Beitragen


📑 Inhaltsverzeichnis

  • Überblick
  • Funktionen
  • Neuerungen in v2.0
  • Installation
  • Schnellstart
  • Verwendung
    • Authentifizierung für private Registries
  • Sicherheitsscanner
  • Ausgabeformate
  • Anwendungsfälle
  • Vergleich
  • Architektur
  • Beitragen
  • Referenzen
  • Lizenz
  • Autor

🎯 Überblick

DockerScan v2.0 ist ein Sicherheitsscanner der nächsten Generation für Docker-Container und -Images, vollständig in Go neu geschrieben. Es kombiniert mehrere Sicherheitsprüftechniken basierend auf der aktuellen Forschung 2024–2025, Industriestandards (CIS Benchmark, NIST SP 800-190) und realen Angriffsmustern aus Produktionsumgebungen.

Warum DockerScan v2.0?

  • ✅ Umfassendster: Kombiniert mehr als 5 Sicherheitsprüftechniken in einem Werkzeug
  • ✅ Aktuellste Forschung: Basiert auf Supply-Chain-Angriffen und CVEs aus 2024–2025
  • ✅ Produktionsreif: SARIF-Ausgabe für CI/CD, Exit-Codes für Automatisierung
  • ✅ Blitzschnell: Geschrieben in Go mit gleichzeitiger Prüfung
  • ✅ Erweiterbar: Plugin-Architektur für benutzerdefinierte Scanner
  • ✅ Kostenlos und Open Source: BSD-3-Lizenz

🌟 Funktionen

🛡️ Sicherheitsprüfmodule

1. CIS Docker Benchmark v1.7.0

Vollständige Konformitätsprüfung mit mehr als 80 automatisierten Kontrollen:

  • ✅ Host-Konfigurationssicherheit (13 Prüfungen)
  • ✅ Docker-Daemon-Härtung (18 Prüfungen)
  • ✅ Datei- und Verzeichnisberechtigungen (9 Prüfungen)
  • ✅ Best Practices für Container-Images (13 Prüfungen)
  • ✅ Laufzeitsicherheitsvalidierung (31+ Prüfungen)
  • ✅ Sicherheitsbetriebskonformität

2. Supply-Chain-Angriffserkennung 🆕

Basiert auf realen Angriffskampagnen aus 2024:

  • ✅ Erkennung imageloser Container – Identifiziert bösartige Container ohne tatsächliche Layerebenen (4M+ auf Docker Hub gefunden)
  • ✅ Erkennung von Kryptowährungs-Minern – Erkennt Mining-Schadsoftware (120K+ schädliche Image-Pulls erkannt)
  • ✅ Erkennung von Hintertür-Bibliotheken – Fängt kompromittierte Abhängigkeiten ein (xz-utils, liblzma-Vorfälle)
  • ✅ Überprüfung von Image-Signaturen – Validiert Signaturen mit Notary/Cosign
  • ✅ Erkennung von Phishing-Inhalten – Durchsucht Dokumentation nach Social Engineering
  • ✅ Schädliche Netzwerkziele – Identifiziert C2-Server, Mining-Pools, Tor-Knoten

3. Erweiterte Geheimniserkennung 🔑

40+ Geheimnis-Muster einschließlich moderner APIs (Update 2024):

  • ✅ Cloud-Anbieter: AWS, GCP, Azure-Anmeldeinformationen
  • ✅ Versionskontrolle: GitHub, GitLab, Bitbucket-Tokens
  • ✅ KI/ML-APIs: OpenAI, Anthropic, Hugging Face-Schlüssel
  • ✅ Zahlungsdienste: Stripe, PayPal, Square-Schlüssel
  • ✅ Kommunikation: Slack, SendGrid, Twilio, Mailchimp
  • ✅ Authentifizierung: JWT-Tokens, OAuth-Tokens
  • ✅ Kryptografie: Private Schlüssel (RSA, SSH, PGP, EC, DSA), Zertifikate
  • ✅ Datenbanken: PostgreSQL, MySQL, MongoDB-Verbindungsstrings
  • ✅ Docker: Registry-Authentifizierungstokens
  • ✅ Entropieanalyse: Shannon-Entropieberechnung für unbekannte Geheimnisse (>4.5 Schwelle)

4. CVE- und Schwachstellenscanning 🚨

Erkennung kritischer CVEs aus 2024–2025:

  • ✅ CVE-2024-21626 – runc-Containerausbruch (CVSS 8.6)
  • ✅ CVE-2024-23651 – BuildKit-Cache-Vergiftung RCE (CVSS 9.1)
  • ✅ CVE-2024-23652 – BuildKit-Race-Condition (CVSS 7.5)
  • ✅ CVE-2024-23653 – BuildKit-Privilegienausweitung
  • ✅ CVE-2024-8695/8696 – Docker Desktop RCE (CVSS 8.8)
  • ✅ CVE-2025-9074 – Docker Desktop lokaler Zugriffsfehler
  • ✅ Erkennung von End-of-Life-Basisimages
  • ✅ Scanning bekannter verwundbarer Pakete

5. Laufzeitsicherheitsanalyse ⚙️

Härtungsprüfungen für Container-Laufzeit:

  • ✅ Linux-Fähigkeitsaudit – Erkennt gefährliche Fähigkeiten (CAP_SYS_ADMIN, CAP_NET_ADMIN usw.)
  • ✅ Seccomp-Profilvalidierung – Stellt sicher, dass Systemaufruffilter aktiviert sind
  • ✅ AppArmor/SELinux-Prüfungen – Überprüfung der obligatorischen Zugriffskontrolle
  • ✅ Erkennung privilegierter Container – Identifiziert Container mit vollständigem Host-Zugriff
  • ✅ Namespace-Isolation – Prüfungen von PID, IPC, Netzwerk, Benutzer-Namespace
  • ✅ Indikatoren für Containerausbrüche – Erkennt gängige Escape-Techniken

📊 Berichterstattung und Integration

  • JSON – Maschinenlesbare Ausgabe für Automatisierung
  • SARIF – Native Integration mit:
    • GitHub Security-Tab
    • Azure DevOps
    • VS Code-Erweiterungen
    • GitLab-Sicherheits-Dashboards
  • Schönes CLI – Farbcodierte Schweregrade mit Emojis
  • Exit-Codes – CI/CD-freundlich (0=bereinigt, 1=Warnungen, 2=kritisch)

🚀 Leistung

  • ⚡ 10x schneller als Python-Alternativen
  • 🔄 Gleichzeitiges Scannen mit Go-Goroutinen
  • 💾 Niedriger Speicherverbrauch (~50–100 MB)
  • 📦 Einzelne Binärdatei – Keine Abhängigkeiten

🆕 Neuerungen in v2.0?

DockerScan v2.0 ist eine komplette Neuentwicklung von Grund auf. Hier ist, was sich gegenüber v1.x geändert hat:

Wichtige Änderungen

Was von v1.x beibehalten wurde

  • ✅ Offensive Werkzeuge – Bild-Trojanisierungsfunktionen (kommen bald in v2.1)
  • ✅ Registry-Operationen – Push, Pull, Delete-Operationen (kommen bald in v2.1)
  • ✅ Netzwerkscanning – Docker-Registry-Erkennung (kommt bald in v2.1)

Neu in v2.0.5 🔐

  • 🔑 Authentifizierung für private Registries – Vollständige Unterstützung zum Scannen von Images aus privaten Registries (behebt #24)
  • 🌐 Multi-Registry-Unterstützung – Docker Hub, GHCR, ECR, GCR, ACR, GitLab und selbstgehostete Registries
  • 🔐 Mehrere Authentifizierungsmethoden – Umgebungsvariablen (CI/CD), CLI-Flags (Testen), Docker-Konfigurationsdatei (nahtlos)
  • 🎯 Intelligente Priorisierung – CLI-Flags > ENV-Variablen > Docker-Konfiguration (automatische Auswahl)
  • 📝 Verbesserte Fehlermeldungen – Registry-spezifische Hinweise (ECR-Token-Ablauf, Ratenbegrenzungen, Zertifikate)
  • 🧪 Umfassende Tests – 64 Testfälle, 91,2% Abdeckung, getestet mit echter privater Registry
  • 📚 Vollständige Dokumentation – Beispiele für alle großen Cloud-Registries und Authentifizierungsmethoden

Neu in v2.0.4

  • 🗄️ CVE-Datenbankintegration – Lokale SQLite-Datenbank mit NVD-Daten (2,5 Jahre CVEs)
  • 🔄 Tägliche automatische Updates – GitHub Action aktualisiert die CVE-Datenbank jeden Tag
  • ⚡ Parallele CVE-Downloads – 4 Worker für schnellere Datenbankerstellung (nvd2sqlite)
  • 🔁 Wiederholung mit Backoff – Automatische Wiederholung bei ratenbegrenzten NVD-API-Anfragen
  • 📦 --from-file-Flag – Installieren der CVE-Datenbank aus lokaler Datei (offline/air-gapped)
  • 🔇 Quiet-Modus (-q) – Banner für CI/CD-Pipelines unterdrücken
  • 🧹 Weniger Fehlalarme – Verbesserte Geheimniserkennung mit Entropiefilterung

Warum die Neuentwicklung?

  1. Leistung – Go bietet 10x schnelleres Scannen mit Goroutinen
  2. Moderne Bedrohungen – Berücksichtigt Angriffsmuster aus 2024–2025
  3. Enterprise-Ready – SARIF-Ausgabe, Exit-Codes, einzelne Binärdateien
  4. Erweiterbarkeit – Saubere Plugin-Architektur für benutzerdefinierte Scanner
  5. Wartbarkeit – Typsicherheit, bessere Fehlerbehandlung, einfacher beizutragen

📦 Installation

Option 1: Vorkompilierte Binärdatei herunterladen (Empfohlen)

Vorkompilierte Binärdateien werden automatisch per GitHub Actions für jede Version erstellt und veröffentlicht.

Unterstützte Plattformen:

  • Linux: amd64, arm64, 386
  • macOS: amd64 (Intel), arm64 (Apple Silicon)
  • Windows: amd64, arm64, 386
  • FreeBSD: amd64

Linux (amd64)```bash

curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -o dockerscan chmod +x dockerscan sudo mv dockerscan /usr/local/bin/

root@kitploit:~
#### Linux (arm64)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-arm64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/

macOS (Intel)```bash

curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-amd64 -o dockerscan chmod +x dockerscan sudo mv dockerscan /usr/local/bin/

root@kitploit:~
#### macOS (Apple Silicon)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-arm64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/

Windows (PowerShell)```powershell

Invoke-WebRequest -Uri "https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-windows-amd64.exe" -OutFile "dockerscan.exe"

root@kitploit:~
#### Download überprüfen (Optional, aber empfohlen)```bash
# Download checksums
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/checksums.txt -o checksums.txt

# Verify (Linux/macOS)
sha256sum -c checksums.txt --ignore-missing

Option 2: Aus dem Quellcode erstellen```bash

Clone repository

git clone https://github.com/cr0hn/dockerscan cd dockerscan/dockerscan-v2

Build

make build

Install

sudo make install

Or build manually

go build -o bin/dockerscan ./cmd/dockerscan

root@kitploit:~
### Option 3: Go installieren```bash
go install github.com/cr0hn/dockerscan/v2/cmd/dockerscan@latest

🚀 Schnellstart

Erstmalige Einrichtung

Vor dem Scannen die CVE-Datenbank herunterladen (täglich aktualisiert, ~30 MB komprimiert):```bash

Download latest CVE database from GitHub

dockerscan update-db

root@kitploit:~
> **Tipp**: Die Datenbank wird täglich über GitHub Actions aktualisiert. Führen Sie `update-db` regelmäßig aus, um die neuesten CVE-Daten zu erhalten.

### Basis-Scan```bash
# Scan a Docker image
dockerscan nginx:latest

# Scan with specific scanners
dockerscan --scanners cis,secrets ubuntu:22.04

# Scan and save reports
dockerscan alpine:latest --output /tmp/reports

# Quiet mode (suppress banner)
dockerscan -q nginx:latest

Beispielausgabe```

╔══════════════════════════════════════════════════════════════════════════╗ ║ ██████╗ ██████╗ ██████╗██╗ ██╗███████╗██████╗ ███████╗ ██████╗ █████╗ ███╗ ██╗ ║ ██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗██╔════╝██╔════╝██╔══██╗████╗ ██║ ║ ██║ ██║██║ ██║██║ █████╔╝ █████╗ ██████╔╝███████╗██║ ███████║██╔██╗ ██║ ║ ██║ ██║██║ ██║██║ ██╔═██╗ ██╔══╝ ██╔══██╗╚════██║██║ ██╔══██║██║╚██╗██║ ║ ██████╔╝╚██████╔╝╚██████╗██║ ██╗███████╗██║ ██║███████║╚██████╗██║ ██║██║ ╚████║ ║ ║ ║ Advanced Docker Security Scanner v2.0.0 ║ ║ ║ ║ Author: Daniel Garcia (cr0hn) ║ ║ Website: https://cr0hn.com ║ ╚══════════════════════════════════════════════════════════════════════════════════════╝

🔍 Scanning image: nginx:latest

═══════════════════════════════════════════════════════════════════ SCAN RESULTS ═══════════════════════════════════════════════════════════════════

📊 Summary: Total Findings: 47 Duration: 2.3s

🔴 By Severity: Critical: 8 High: 15 Medium: 18 Low: 6

📁 By Category: CIS-Benchmark: 12 Secrets: 8 Supply-Chain: 5 Vulnerability: 10 Runtime-Security: 12

📄 JSON report saved to: dockerscan-report.json 📄 SARIF report saved to: dockerscan-report.sarif

root@kitploit:~
---

## 📖 Verwendung

### Befehlszeilenoptionen```bash
dockerscan [COMMAND] [OPTIONS] <IMAGE>

Commands:
  scan        Scan a Docker image (default)
  update-db   Download or update the CVE database
              Options: --from-file <path>  Install from local SQLite file
  version     Show version information
  help        Show help message

Options:
  -h, --help              Show help message
  -v, --version           Show version
  -q, --quiet             Suppress banner output (quiet mode)
  --scanners SCANNERS     Comma-separated list of scanners to run
                          (default: all)
                          Options: cis,secrets,supplychain,vulnerabilities,runtime
  --output DIR            Output directory for reports (default: .)
  --only-critical         Show only critical/high severity findings
  --verbose, -v           Show scan progress (scanner names, findings count, image pull status). Output to stderr.
  --debug                 Show verbose output plus internal errors and technical details. Output to stderr.

Authentication (for private registries):
  --registry-user <username>       Registry username
  --registry-password <password>   Registry password (not recommended, use env vars)
  --registry <url>                 Registry URL (optional, auto-detected from image)
  --docker-config <path>           Path to Docker config file (default: ~/.docker/config.json)

  Environment variables (recommended for CI/CD):
    DOCKER_USERNAME or REGISTRY_USERNAME     Registry username
    DOCKER_PASSWORD or REGISTRY_PASSWORD     Registry password or token
    DOCKER_REGISTRY or REGISTRY             Registry URL (optional)

Exit Codes:
  0   No issues found
  1   HIGH severity issues found
  2   CRITICAL severity found

Beispiele```bash

Scan with all scanners (default)

dockerscan myapp:latest

Only run specific scanners

dockerscan --scanners secrets,supplychain redis:7

Save reports to specific directory

dockerscan --output /var/reports postgres:14

Only show critical issues

dockerscan --only-critical production-app:v1.0

Ver progreso del scan (scanner names, findings count, image pull status)

dockerscan --verbose ubuntu:22.04

Debug detallado (errores internos, detalles técnicos)

dockerscan --debug ubuntu:22.04

Scan private registry images (see Authentication section below)

dockerscan ghcr.io/myorg/private-app:v1.0

root@kitploit:~
### 🔐 Private Registry-Authentifizierung

DockerScan unterstützt drei Methoden zur Authentifizierung bei privaten Registrierungen:

#### Methode 1: Docker Config-Datei (empfohlen für die lokale Nutzung)

Die bequemste Methode – verwendet Ihre vorhandenen Docker-Anmeldeinformationen:```bash
# First, authenticate with your registry using Docker
docker login ghcr.io
# Username: your-username
# Password: ghp_your-token-here

# Now DockerScan can use these credentials automatically
dockerscan ghcr.io/myorg/private-app:latest

DockerScan liest automatisch Anmeldeinformationen aus ~/.docker/config.json. Dies funktioniert mit allen Registries, bei denen Sie sich mit docker login angemeldet haben.

Credential-Helper werden vollständig unterstützt. DockerScan löst Anmeldeinformationen nativ über Folgendes auf:

  • credsStore — globaler Credential-Helper (z. B. osxkeychain auf macOS mit Docker Desktop, wincred auf Windows, pass auf Linux)
  • credHelpers — pro-Registry Credential-Helper (hat Vorrang vor credsStore)
  • Automatischer Fallback — falls das angegebene Helper-Binary nicht installiert ist, greift DockerScan auf den Klartext-auths-Block in config.json zurück

Auf macOS mit Docker Desktop funktioniert dies ohne zusätzliche Konfiguration sofort:```json { "credsStore": "osxkeychain" }

root@kitploit:~
DockerScan ruft `docker-credential-osxkeychain` transparent auf, um Tokens abzurufen, sodass Sie nie explizit Anmeldedaten übergeben müssen.

#### Methode 2: Umgebungsvariablen (empfohlen für CI/CD)

Am besten geeignet für automatisierte Umgebungen und CI/CD-Pipelines:```bash
# Set environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=mytoken

# Scan private image
dockerscan ghcr.io/myorg/private-app:latest

# Or use alternative variable names
export REGISTRY_USERNAME=myusername
export REGISTRY_PASSWORD=mytoken
dockerscan myregistry.example.com/app:v1.0

CI/CD Beispiel (GitHub Actions):```yaml

  • name: Scan private image env: DOCKER_USERNAME: ${{ secrets.REGISTRY_USERNAME }} DOCKER_PASSWORD: ${{ secrets.REGISTRY_TOKEN }} run: dockerscan ghcr.io/${{ github.repository }}:${{ github.sha }}
root@kitploit:~
#### Methode 3: Kommandozeilen-Flags (Nicht empfohlen)

Nur für schnelle Tests (Anmeldedaten in der Prozessliste sichtbar):```bash
dockerscan --registry-user myuser --registry-password mytoken ghcr.io/myorg/app:v1

Sicherheitshinweis: Diese Methode gibt Anmeldeinformationen in Ihrem Shell-Verlauf und der Prozessliste preis. Verwenden Sie stattdessen Umgebungsvariablen oder die Docker-Konfiguration.

Registrierungsspezifische Beispiele

Docker Hub (Private Repositories)```bash

Using Docker config

docker login docker.io dockerscan myusername/private-repo:latest

Using environment variables

export DOCKER_USERNAME=myusername export DOCKER_PASSWORD=dckr_pat_XXXXXXXXXXXXX dockerscan myusername/private-repo:latest

root@kitploit:~
#### GitHub Container Registry (GHCR)```bash
# Using Docker config
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
dockerscan ghcr.io/myorg/myapp:v1.0

# Using environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=ghp_XXXXXXXXXXXXXXXXXXXX
dockerscan ghcr.io/myorg/myapp:v1.0

AWS Elastic Container Registry (ECR)```bash

Get login credentials from AWS

aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin
123456789012.dkr.ecr.us-east-1.amazonaws.com

Scan ECR image

dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest

Or use environment variables with ECR credentials

export DOCKER_USERNAME=AWS export DOCKER_PASSWORD=$(aws ecr get-login-password --region us-east-1) dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest

root@kitploit:~
#### Google Container Registry (GCR) / Artifact Registry```bash
# Authenticate with gcloud
gcloud auth configure-docker gcr.io

# Scan GCR image
dockerscan gcr.io/my-project/myapp:latest

# For Artifact Registry
gcloud auth configure-docker us-docker.pkg.dev
dockerscan us-docker.pkg.dev/my-project/my-repo/myapp:latest

# Or use service account JSON key
export DOCKER_USERNAME=_json_key
export DOCKER_PASSWORD="$(cat service-account-key.json)"
dockerscan gcr.io/my-project/myapp:latest

Azure Container Registry (ACR)```bash

Login with Azure CLI

az acr login --name myregistry

Scan ACR image

dockerscan myregistry.azurecr.io/myapp:v1.0

Or use service principal credentials

export DOCKER_USERNAME= export DOCKER_PASSWORD= dockerscan myregistry.azurecr.io/myapp:v1.0

root@kitploit:~
#### GitLab Container Registry```bash
# Using Docker config
docker login registry.gitlab.com
dockerscan registry.gitlab.com/mygroup/myproject/myapp:latest

# Using environment variables with deploy token
export DOCKER_USERNAME=gitlab+deploy-token-1
export DOCKER_PASSWORD=DEPLOY_TOKEN_HERE
dockerscan registry.gitlab.com/mygroup/myproject/myapp:latest

Selbstgehostete/Private Registries```bash

Standard authentication

docker login myregistry.example.com:5000 dockerscan myregistry.example.com:5000/myapp:latest

With environment variables

export DOCKER_USERNAME=admin export DOCKER_PASSWORD=secret dockerscan myregistry.example.com:5000/myapp:latest

Insecure registries (not recommended for production)

Add to Docker daemon config: /etc/docker/daemon.json

{

"insecure-registries": ["myregistry.example.com:5000"]

}

root@kitploit:~
### Fehlerbehebung bei der Authentifizierung

#### Häufige Probleme

**1. Fehler "authentication required"**```bash
# Make sure you're logged in
docker login <registry>

# Or set environment variables
export DOCKER_USERNAME=your-username
export DOCKER_PASSWORD=your-token

2. Fehler "unauthorized: authentication failed"

  • Überprüfen Sie, ob Ihre Anmeldedaten korrekt sind.
  • Überprüfen Sie, ob Ihr Token abgelaufen ist (insbesondere bei Cloud-Anbietern).
  • Stellen Sie sicher, dass Ihr Konto Pull-Berechtigungen für das Image hat.

3. AWS ECR "authorization token has expired"```bash

ECR tokens expire after 12 hours - refresh them

aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin
123456789012.dkr.ecr.us-east-1.amazonaws.com

root@kitploit:~
**4. Ratenbegrenzung auf Docker Hub**
- Authentifizierung, um die Ratenlimits zu erhöhen (200 Pulls/6 Stunden für kostenlose Konten)
- Erwägen Sie die Nutzung eines Docker Hub Pro-Kontos für höhere Grenzen

**5. Zertifikatsfehler bei selbstsignierten Zertifikaten**
- Fügen Sie das CA-Zertifikat Ihrem System-Vertrauensspeicher hinzu
- Oder konfigurieren Sie Docker so, dass es der Registry vertraut (siehe Docker-Dokumentation)

---

## 🔍 Sicherheitsscanner

### CIS Docker Benchmark

Automatisierte Compliance-Prüfung gegen CIS Docker Benchmark v1.7.0:```bash
dockerscan --scanners cis nginx:latest

Checks include:

  • Container-Benutzer ist nicht root
  • Keine unnötigen Pakete installiert
  • HEALTHCHECK-Anweisung vorhanden
  • Spezifische Versionstags (nicht :latest)
  • Minimale exponierte Ports
  • Keine privilegierten Container
  • Linux-Capabilities eingeschränkt
  • Seccomp/AppArmor-Profile angewendet
  • Schreibgeschütztes Root-Dateisystem
  • Und 70+ weitere Prüfungen...

Supply Chain Security

Erkennung realer Supply-Chain-Angriffe:```bash dockerscan --scanners supplychain suspicious-image:1.0

root@kitploit:~
Erkennt:
- Bilder-lose Container (dokumentationsbasierte Angriffe)
- Kryptowährungs-Miner (xmrig, claymore, etc.)
- Backdoor-Bibliotheken (xz-utils Fall)
- Nicht signierte/unverifizierte Images
- Phishing-Versuche in Dokumentationen
- Verbindungen zu Mining-Pools, C2-Servern

### Geheimniserkennung

Hartcodierte Geheimnisse finden:```bash
dockerscan --scanners secrets webapp:prod

Findet:

  • Cloud-Anmeldeinformationen (AWS, GCP, Azure)
  • API-Schlüssel (40+ Dienste)
  • Private Schlüssel und Zertifikate
  • Datenbank-Anmeldeinformationen
  • Docker-Registry-Authentifizierung
  • Zeichenketten mit hoher Entropie (potenziell unbekannte Geheimnisse)

Schwachstellenscanning

Erkennt bekannte CVEs:```bash dockerscan --scanners vulnerabilities node:16

root@kitploit:~
Prüft auf:
- Kritische Docker-CVEs (2024-2025)
- Container-Ausbruch-Sicherheitslücken
- BuildKit RCE-Sicherheitslücken
- End-of-Life-Basis-Images
- Verwundbare Pakete

### Laufzeitsicherheit

Prüfung der Laufzeitkonfigurationen:```bash
dockerscan --scanners runtime running-container

Analysiert:

  • Linux capabilities (CAP_SYS_ADMIN, etc.)
  • Seccomp-Profile
  • AppArmor/SELinux-Richtlinien
  • Namespace-Isolation
  • Nutzung des privilegierten Modus

📁 Ausgabeformate

JSON-Ausgabe```json

{ "target": { "image_name": "nginx:latest" }, "start_time": "2024-11-22T10:30:00Z", "findings": [ { "id": "CIS-4.1", "title": "Container should not run as root", "severity": "HIGH", "category": "CIS-Benchmark", "description": "Running containers as root increases attack surface...", "remediation": "Use USER instruction in Dockerfile..." } ], "summary": { "total_findings": 47, "by_severity": { "CRITICAL": 8, "HIGH": 15 } } }

root@kitploit:~
### SARIF-Ausgabe

Kompatibel mit GitHub Security, Azure DevOps, VS Code:```json
{
  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "DockerScan",
          "version": "2.0.0"
        }
      },
      "results": [...]
    }
  ]
}

💼 Anwendungsfälle

1. CI/CD-Pipeline-Integration

GitHub Actions:```yaml name: Docker Security Scan

on: [push]

jobs: security-scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3

root@kitploit:~
  - name: Build Docker image
    run: docker build -t myapp:${{ github.sha }} .

  - name: Install DockerScan
    run: |
      curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -o dockerscan
      chmod +x dockerscan

  - name: Update CVE Database
    run: ./dockerscan update-db

  - name: Run Security Scan
    run: ./dockerscan -q myapp:${{ github.sha }}

  - name: Upload SARIF results
    uses: github/codeql-action/upload-sarif@v2
    with:
      sarif_file: dockerscan-report.sarif
root@kitploit:~
**GitLab CI:**```yaml
docker-security-scan:
  stage: test
  script:
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
    - wget https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -O dockerscan
    - chmod +x dockerscan
    - ./dockerscan update-db
    - ./dockerscan -q $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  artifacts:
    reports:
      sast: dockerscan-report.sarif

2. Sicherheitsaudits```bash

Comprehensive audit of production images

for image in $(docker images --format "{{.Repository}}:{{.Tag}}"); do echo "Scanning $image..." dockerscan $image --output /audit-reports/ done

Generate summary report

cat /audit-reports/*.json | jq -s ' { total_images: length, total_findings: map(.summary.total_findings) | add, critical_findings: map(.summary.by_severity.CRITICAL // 0) | add } '

root@kitploit:~
### 3. **Validierung vor der Bereitstellung**```bash
# Fail deployment if critical issues found
dockerscan production-app:v2.0
exit_code=$?

if [ $exit_code -eq 2 ]; then
  echo "❌ Critical vulnerabilities found. Deployment blocked."
  exit 1
elif [ $exit_code -eq 1 ]; then
  echo "⚠️  High severity issues found. Manual review required."
  # Send notification...
else
  echo "✅ No critical issues. Proceeding with deployment."
fi

4. Compliance-Berichterstattung```bash

Generate CIS compliance report

dockerscan --scanners cis --only-critical all-production-images:* > cis-compliance-report.txt

Weekly security scan for compliance

0 0 * * 0 /usr/local/bin/dockerscan --scanners cis,vulnerabilities production-images:latest --output /compliance/weekly/

root@kitploit:~
### 5. **Entwickler-Workflow**```bash
# Pre-commit hook
#!/bin/bash
# .git/hooks/pre-commit

docker build -t local-test:latest .
dockerscan --only-critical local-test:latest

if [ $? -ne 0 ]; then
  echo "❌ Docker security scan failed. Fix issues before committing."
  exit 1
fi

📊 Vergleich mit anderen Werkzeugen

Warum DockerScan wählen?

  • Umfassendste Lösung: Einziges Werkzeug, das CIS + Lieferkette + Geheimnisse + CVE + Laufzeit kombiniert
  • Aktuellste Forschung: Basiert auf realen Angriffen von 2024-2025
  • Keine Konfiguration erforderlich: Funktioniert sofort einsatzbereit
  • Entwicklerfreundlich: Schöne CLI-Ausgabe mit umsetzbaren Korrekturmaßnahmen
  • Unternehmensbereit: SARIF + Exit-Codes + JSON-Ausgabe

🏗️ Architektur

Projektstruktur```

dockerscan/ ├── logo.png # Project logo ├── cmd/ │ ├── dockerscan/ # Main CLI application │ │ └── main.go │ └── nvd2sqlite/ # CVE database builder tool │ └── main.go ├── data/ # CVE database (auto-updated daily) │ ├── latest.db.gz # Compressed SQLite database │ └── metadata.json # Database version info ├── internal/ │ ├── scanner/ # Extensible scanner framework │ │ ├── scanner.go # Scanner interface & registry │ │ ├── cis/ # CIS Benchmark implementation │ │ ├── secrets/ # Secrets detection │ │ ├── supplychain/ # Supply chain attacks │ │ ├── vulnerabilities/ # CVE scanning │ │ └── runtime/ # Runtime security │ ├── report/ # Report generators │ │ ├── json.go # JSON reporter │ │ └── sarif.go # SARIF reporter │ ├── models/ # Data models │ │ └── models.go # Findings, scan results, etc. │ └── config/ # Configuration │ └── config.go # App config & banner └── pkg/docker/ # Docker client wrapper └── client.go

root@kitploit:~
### CVE-Datenbank & nvd2sqlite-Tool

DockerScan verwendet eine lokale SQLite-Datenbank für CVE-Abfragen. Die Datenbank wird **automatisch täglich aktualisiert** über GitHub Actions und im Repository gehostet, sodass Sie immer Zugriff auf die neuesten CVE-Daten haben.

#### Datenbank-Funktionen

- 🗄️ **Vorgefertigte Datenbank** - Sofort einsatzbereit, keine manuelle Einrichtung erforderlich
- 🔄 **Tägliche Updates** - GitHub Action aktualisiert die Datenbank jeden Tag um 00:00 UTC
- 📅 **2,5 Jahre CVE-Daten** - Enthält CVEs von Mitte 2022 bis heute
- ⚡ **Schnelle Abfragen** - SQLite mit optimierten Indizes
- 🌐 **Gehostet auf GitHub** - Wird automatisch mit dem Befehl `update-db` heruntergeladen

#### Aktualisieren der Datenbank```bash
# Download latest database from GitHub (recommended)
dockerscan update-db

# Install from local file (for air-gapped/offline environments)
dockerscan update-db --from-file /path/to/cve-db.sqlite

Hinweis: Beim ersten Ausführen von dockerscan werden Sie aufgefordert, die Datenbank herunterzuladen. Danach können Sie sie regelmäßig mit update-db aktualisieren.

Manuelles Erstellen der Datenbank (nvd2sqlite)

Für fortgeschrittene Benutzer können Sie die CVE-Datenbank direkt aus der NVD erstellen:```bash

Build the tool

make build # Builds both dockerscan and nvd2sqlite

Download CVEs (last 2.5 years by default)

./bin/nvd2sqlite --output data/cve-db.sqlite --verbose

With NVD API key (10x faster - 50 req/30sec vs 5 req/30sec)

NVD_API_KEY=your-key ./bin/nvd2sqlite --output data/cve-db.sqlite --verbose

Custom date range

./bin/nvd2sqlite --output data/cve-db.sqlite
--start-date 2023-01-01
--end-date 2024-12-31

root@kitploit:~
**nvd2sqlite Funktionen:**
- ⚡ **4 parallele Download-Worker** für schnellere Downloads
- 🔄 **Automatischer Wiederholungsversuch mit exponentiellem Backoff** bei Ratenbegrenzung (HTTP 429)
- 📦 **Downloads in ein temporäres Verzeichnis**, dann sequentielle Verarbeitung
- 🗄️ **SQLite-Ausgabe** mit indizierten Tabellen für schnelle Abfragen

---

### Erweiterbarkeit

Das Hinzufügen eines neuen Scanners ist einfach:```go
package myscan

import (
    "context"
    "github.com/cr0hn/dockerscan/v2/internal/models"
    "github.com/cr0hn/dockerscan/v2/internal/scanner"
)

type MyScanner struct {
    scanner.BaseScanner
}

func NewMyScanner() *MyScanner {
    return &MyScanner{
        BaseScanner: scanner.NewBaseScanner(
            "my-scanner",
            "Description of my scanner",
            true, // enabled
        ),
    }
}

func (s *MyScanner) Scan(ctx context.Context, target models.ScanTarget) ([]models.Finding, error) {
    var findings []models.Finding

    // Your scanning logic here...

    return findings, nil
}

// Register in main.go:
// registry.Register(myscan.NewMyScanner())

🤝 Mitwirken

Beiträge sind willkommen! DockerScan ist erweiterbar konzipiert.

So kannst du beitragen

  1. Forke das Repository
  2. Erstelle einen Feature-Branch (git checkout -b feature/amazing-scanner)
  3. Füge deinen Scanner in internal/scanner/ hinzu
  4. Schreibe Tests (wir halten 90%+ Abdeckung)
  5. Commite deine Änderungen (git commit -am 'Add amazing scanner')
  6. Push auf den Branch (git push origin feature/amazing-scanner)
  7. Öffne einen Pull Request

Entwicklung```bash

Clone and setup

git clone https://github.com/cr0hn/dockerscan cd dockerscan/dockerscan-v2

Install dependencies

make deps

Run tests

make test

Run with coverage

make coverage

Build

make build

Format code

make fmt

Lint

make lint

root@kitploit:~
### Neue Scanner hinzufügen

Wir begrüßen besonders:
- Integration mit Schwachstellendatenbanken (NVD, GitHub Security Advisories)
- Kubernetes-Sicherheitsscans
- Container-Registry-Sicherheit
- Docker Compose Sicherheitsanalyse
- IaC-Scans (Dockerfiles)

---

## 📚 Referenzen

### Standards & Benchmarks

- [CIS Docker Benchmark v1.7.0](https://www.cisecurity.org/benchmark/docker) – Center for Internet Security
- [NIST SP 800-190](https://csrc.nist.gov/publications/detail/sp/800-190/final) – Leitfaden zur Sicherheit von Anwendungscontainern
- [OWASP Docker Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html)

### Forschung & CVEs

- [4M bösartige imagelose Container](https://thehackernews.com/2024/04/millions-of-malicious-imageless.html) – The Hacker News, April 2024
- [Lieferkettenangriffe mit Container-Images](https://www.aquasec.com/blog/supply-chain-threats-using-container-images/) – Aqua Security
- [CVE-2024-21626: runc Container-Escape](https://nvd.nist.gov/vuln/detail/CVE-2024-21626) – NIST NVD
- [CVE-2024-23651: BuildKit-RCE](https://nvd.nist.gov/vuln/detail/CVE-2024-23651) – NIST NVD
- [xz-utils Hintertür (März 2024)](https://www.openwall.com/lists/oss-security/2024/03/29/4) – OpenWall

### Werkzeuge & Projekte

- [Trivy](https://github.com/aquasecurity/trivy) – Schwachstellenscanner
- [Docker Bench Security](https://github.com/docker/docker-bench-security) – CIS-Benchmark-Skript
- [Cosign](https://github.com/sigstore/cosign) – Containersignierung und -verifizierung
- [SARIF-Spezifikation](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) – Static Analysis Results Format

---

## 📄 Lizenz

Dieses Projekt ist unter der **DockerScan Proprietary Source-Available License** lizenziert.

### Was bedeutet das?

✅ **Sie DÜRFEN (kostenlos):**
- DockerScan **kostenlos** für interne Sicherheitsscans nutzen
- Es in Ihren **CI/CD-Pipelines** und Sicherheits-Workflows verwenden
- **Ändern, forken und zur Community beitragen**
- Es für **Bildungs- und Forschungszwecke** nutzen
- Es als **Werkzeug in professionellen Dienstleistungen** (Beratung, Sicherheitsaudits, Pentests) einsetzen
- Es in andere Produkte **integrieren**, wenn es eine ergänzende Komponente ist

❌ **Sie DÜRFEN NICHT** (ohne ausdrückliche schriftliche Genehmigung oder kommerzielle Lizenz):
- **Docker-Scans als kommerziellen SaaS** anbieten
- **Gehostete Instanzen** von DockerScan verkaufen
- Eine **kommerzielle Plattform** aufbauen, die hauptsächlich auf DockerScan basiert
- Einen **bezahlten verwalteten Dienst** erstellen, bei dem DockerScan das Hauptangebot ist

### Warum diese Lizenz?

Diese Lizenz schützt die Nachhaltigkeit des Projekts, indem:
- ✅ **Freiheit** zur Nutzung der Software für legitime Zwecke gewährt wird
- ❌ **Schädliches Trittbrettfahren** verhindert wird, bei dem Unternehmen profitieren, indem sie es als Dienst anbieten, ohne etwas zurückzugeben
- 💰 Sichergestellt wird, dass das Projekt durch **kommerzielle Lizenzierung** für konkurrierende Nutzungen **nachhaltig** bleibt
- 🔓 Der **Quellcode verfügbar** bleibt für Transparenz und Community-Beiträge

**Dies ist KEINE Open-Source-Software** – es ist **quellverfügbar** mit Einschränkungen für kommerzielle Konkurrenznutzung.

### Kommerzielle Lizenzierung

**Erforderlich für:**
- SaaS- oder gehostete Angebote
- Kommerzielle Plattformen, die DockerScan als Hauptfunktion nutzen
- Weiterverkauf oder Weiterverteilung als kommerzielles Produkt
- Verwaltete Dienste, bei denen DockerScan das Kernangebot ist

**Kontakt für kommerzielle Lizenzierung:**

📧 E-Mail: cr0hn [at] cr0hn.com
🌐 Website: https://cr0hn.com
💼 Flexible Lizenzbedingungen für Unternehmen und Startups verfügbar

Vollständige rechtliche Bedingungen in der Datei [LICENSE](https://github.com/cr0hn/dockerscan/blob/HEAD/LICENSE).

---

## 👤 Autor

<div align="center">

### **Daniel Garcia (cr0hn)**

[![Website](https://img.shields.io/badge/Website-cr0hn.com-blue?style=for-the-badge&logo=google-chrome)](https://cr0hn.com)
[![GitHub](https://img.shields.io/badge/GitHub-cr0hn-black?style=for-the-badge&logo=github)](https://github.com/cr0hn)
[![Twitter](https://img.shields.io/badge/Twitter-@ggdaniel-1DA1F2?style=for-the-badge&logo=twitter)](https://twitter.com/ggdaniel)

**Sicherheitsforscher | Open-Source-Entwickler | Docker-Sicherheitsexperte**

</div>

---

## 🙏 Danksagungen

Besonderer Dank geht an:
- Die Docker-Sicherheits-Community
- CIS für den Docker-Benchmark
- NIST für SP 800-190
- Sicherheitsforscher, die die Lieferkettenangriffe 2024 entdeckt haben
- Alle Mitwirkenden und Benutzer von DockerScan

---

## 📞 Unterstützung

- **Issues**: [GitHub Issues](https://github.com/cr0hn/dockerscan/issues)
- **Diskussionen**: [GitHub Discussions](https://github.com/cr0hn/dockerscan/discussions)
- **Sicherheit**: Melden Sie Schwachstellen an [email protected]

---

<div align="center">

**⭐ Wenn Sie DockerScan nützlich finden, geben Sie dem Repository bitte einen Stern! ⭐**

*Docker-Sicherheit für alle zugänglich machen*

[⬆ Zurück zum Anfang](#-dockerscan-v20)

</div>
Tool herunterladen
Eigenschaftv1.x (Python)v2.0 (Go)
SprachePython 3.5+Go 1.21+
Leistung~500 Images/Stunde~5000 Images/Stunde
Speichernutzung200–500 MB50–100 MB
Verteilungpip install + AbhängigkeitenEinzelne Binärdatei
Sicherheitsscanner2 Module5 Module
CIS-BenchmarkTeilweiseVollständig v1.7.0 (80+ Prüfungen)
Supply Chain❌ Nicht verfügbar✅ Basierend auf 2024-Forschung
Geheimnis-Muster10 Muster40+ Muster
CVE-ErkennungBasisCVEs 2024–2025
Laufzeitsicherheit❌ Nicht verfügbar✅ Vollständiges Fähigkeitsaudit
SARIF-Ausgabe❌ Nicht verfügbar✅ Vollständige Unterstützung
CI/CD-IntegrationManuellNativ (Exit-Codes, SARIF)
FunktionDockerScan v2.0TrivyClairSnykGrype
CIS Benchmark v1.7✅ Vollständig (80+ Prüfungen)❌❌Teilweise❌
Erkennung von Lieferkettenangriffen (2024)✅ Ja❌❌❌❌
Geheimnisüberprüfung✅ 40+ MusterBasis❌✅❌
CVE-Datenbank✅ 2024-2025 CVEs✅✅✅✅
Laufzeitsicherheit✅ Vollständig❌❌❌❌
SARIF-Ausgabe✅✅❌✅✅
Geschwindigkeit (Go)⚡ Sehr schnell⚡ Sehr schnell🐌 Langsam⚡ Schnell⚡ Sehr schnell
Erweiterbar✅ Plugin-SystemEingeschränktEingeschränkt❌Eingeschränkt
Exit-Codes✅ CI/CD bereit✅Teilweise✅✅
Kosten🆓 Kostenlos🆓 Kostenlos🆓 Kostenlos💰 Kostenpflichtige Stufen🆓 Kostenlos
Offline-Modus✅✅❌❌✅
LizenzProprietär, Quelltext verfügbarApache-2.0Apache-2.0ProprietärApache-2.0