
Der umfassendste Docker-Sicherheitsscanner
Von Daniel Garcia (cr0hn) | GitHub | Website
Funktionen • Installation • Schnellstart • Dokumentation • Anwendungsfälle • Neuerungen • Beitragen
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.
Vollständige Konformitätsprüfung mit mehr als 80 automatisierten Kontrollen:
Basiert auf realen Angriffskampagnen aus 2024:
40+ Geheimnis-Muster einschließlich moderner APIs (Update 2024):
Erkennung kritischer CVEs aus 2024–2025:
Härtungsprüfungen für Container-Laufzeit:
DockerScan v2.0 ist eine komplette Neuentwicklung von Grund auf. Hier ist, was sich gegenüber v1.x geändert hat:
--from-file-Flag – Installieren der CVE-Datenbank aus lokaler Datei (offline/air-gapped)-q) – Banner für CI/CD-Pipelines unterdrückenVorkompilierte Binärdateien werden automatisch per GitHub Actions für jede Version erstellt und veröffentlicht.
Unterstützte Plattformen:
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -o dockerscan chmod +x dockerscan sudo mv dockerscan /usr/local/bin/
#### 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/
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-amd64 -o dockerscan chmod +x dockerscan sudo mv dockerscan /usr/local/bin/
#### 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/
Invoke-WebRequest -Uri "https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-windows-amd64.exe" -OutFile "dockerscan.exe"
#### 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
git clone https://github.com/cr0hn/dockerscan cd dockerscan/dockerscan-v2
make build
sudo make install
go build -o bin/dockerscan ./cmd/dockerscan
### Option 3: Go installieren```bash
go install github.com/cr0hn/dockerscan/v2/cmd/dockerscan@latest
Vor dem Scannen die CVE-Datenbank herunterladen (täglich aktualisiert, ~30 MB komprimiert):```bash
dockerscan update-db
> **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
╔══════════════════════════════════════════════════════════════════════════╗ ║ ██████╗ ██████╗ ██████╗██╗ ██╗███████╗██████╗ ███████╗ ██████╗ █████╗ ███╗ ██╗ ║ ██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗██╔════╝██╔════╝██╔══██╗████╗ ██║ ║ ██║ ██║██║ ██║██║ █████╔╝ █████╗ ██████╔╝███████╗██║ ███████║██╔██╗ ██║ ║ ██║ ██║██║ ██║██║ ██╔═██╗ ██╔══╝ ██╔══██╗╚════██║██║ ██╔══██║██║╚██╗██║ ║ ██████╔╝╚██████╔╝╚██████╗██║ ██╗███████╗██║ ██║███████║╚██████╗██║ ██║██║ ╚████║ ║ ║ ║ 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
---
## 📖 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
dockerscan myapp:latest
dockerscan --scanners secrets,supplychain redis:7
dockerscan --output /var/reports postgres:14
dockerscan --only-critical production-app:v1.0
dockerscan --verbose ubuntu:22.04
dockerscan --debug ubuntu:22.04
dockerscan ghcr.io/myorg/private-app:v1.0
### 🔐 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)auths-Block in config.json zurückAuf macOS mit Docker Desktop funktioniert dies ohne zusätzliche Konfiguration sofort:```json { "credsStore": "osxkeychain" }
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
#### 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.
docker login docker.io dockerscan myusername/private-repo:latest
export DOCKER_USERNAME=myusername export DOCKER_PASSWORD=dckr_pat_XXXXXXXXXXXXX dockerscan myusername/private-repo:latest
#### 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 ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin
123456789012.dkr.ecr.us-east-1.amazonaws.com
dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest
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
#### 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
az acr login --name myregistry
dockerscan myregistry.azurecr.io/myapp:v1.0
export DOCKER_USERNAME= export DOCKER_PASSWORD= dockerscan myregistry.azurecr.io/myapp:v1.0
#### 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
docker login myregistry.example.com:5000 dockerscan myregistry.example.com:5000/myapp:latest
export DOCKER_USERNAME=admin export DOCKER_PASSWORD=secret dockerscan myregistry.example.com:5000/myapp:latest
### 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"
3. AWS ECR "authorization token has expired"```bash
aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin
123456789012.dkr.ecr.us-east-1.amazonaws.com
**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:
:latest)Erkennung realer Supply-Chain-Angriffe:```bash dockerscan --scanners supplychain suspicious-image:1.0
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:
Erkennt bekannte CVEs:```bash dockerscan --scanners vulnerabilities node:16
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:
{ "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 } } }
### 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": [...]
}
]
}
GitHub Actions:```yaml name: Docker Security Scan
on: [push]
jobs: security-scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3
- 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
**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
for image in $(docker images --format "{{.Repository}}:{{.Tag}}"); do echo "Scanning $image..." dockerscan $image --output /audit-reports/ done
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 } '
### 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
dockerscan --scanners cis --only-critical all-production-images:* > cis-compliance-report.txt
0 0 * * 0 /usr/local/bin/dockerscan --scanners cis,vulnerabilities production-images:latest --output /compliance/weekly/
### 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
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
### 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
dockerscanwerden Sie aufgefordert, die Datenbank herunterzuladen. Danach können Sie sie regelmäßig mitupdate-dbaktualisieren.
Für fortgeschrittene Benutzer können Sie die CVE-Datenbank direkt aus der NVD erstellen:```bash
make build # Builds both dockerscan and nvd2sqlite
./bin/nvd2sqlite --output data/cve-db.sqlite --verbose
NVD_API_KEY=your-key ./bin/nvd2sqlite --output data/cve-db.sqlite --verbose
./bin/nvd2sqlite --output data/cve-db.sqlite
--start-date 2023-01-01
--end-date 2024-12-31
**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())
Beiträge sind willkommen! DockerScan ist erweiterbar konzipiert.
git checkout -b feature/amazing-scanner)internal/scanner/ hinzugit commit -am 'Add amazing scanner')git push origin feature/amazing-scanner)git clone https://github.com/cr0hn/dockerscan cd dockerscan/dockerscan-v2
make deps
make test
make coverage
make build
make fmt
make lint
### 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)**
[](https://cr0hn.com)
[](https://github.com/cr0hn)
[](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>
| Eigenschaft | v1.x (Python) | v2.0 (Go) |
|---|
| Sprache | Python 3.5+ | Go 1.21+ |
| Leistung | ~500 Images/Stunde | ~5000 Images/Stunde |
| Speichernutzung | 200–500 MB | 50–100 MB |
| Verteilung | pip install + Abhängigkeiten | Einzelne Binärdatei |
| Sicherheitsscanner | 2 Module | 5 Module |
| CIS-Benchmark | Teilweise | Vollständig v1.7.0 (80+ Prüfungen) |
| Supply Chain | ❌ Nicht verfügbar | ✅ Basierend auf 2024-Forschung |
| Geheimnis-Muster | 10 Muster | 40+ Muster |
| CVE-Erkennung | Basis | CVEs 2024–2025 |
| Laufzeitsicherheit | ❌ Nicht verfügbar | ✅ Vollständiges Fähigkeitsaudit |
| SARIF-Ausgabe | ❌ Nicht verfügbar | ✅ Vollständige Unterstützung |
| CI/CD-Integration | Manuell | Nativ (Exit-Codes, SARIF) |
| Funktion | DockerScan v2.0 | Trivy | Clair | Snyk | Grype |
|---|
| CIS Benchmark v1.7 | ✅ Vollständig (80+ Prüfungen) | ❌ | ❌ | Teilweise | ❌ |
| Erkennung von Lieferkettenangriffen (2024) | ✅ Ja | ❌ | ❌ | ❌ | ❌ |
| Geheimnisüberprüfung | ✅ 40+ Muster | Basis | ❌ | ✅ | ❌ |
| CVE-Datenbank | ✅ 2024-2025 CVEs | ✅ | ✅ | ✅ | ✅ |
| Laufzeitsicherheit | ✅ Vollständig | ❌ | ❌ | ❌ | ❌ |
| SARIF-Ausgabe | ✅ | ✅ | ❌ | ✅ | ✅ |
| Geschwindigkeit (Go) | ⚡ Sehr schnell | ⚡ Sehr schnell | 🐌 Langsam | ⚡ Schnell | ⚡ Sehr schnell |
| Erweiterbar | ✅ Plugin-System | Eingeschränkt | Eingeschränkt | ❌ | Eingeschränkt |
| Exit-Codes | ✅ CI/CD bereit | ✅ | Teilweise | ✅ | ✅ |
| Kosten | 🆓 Kostenlos | 🆓 Kostenlos | 🆓 Kostenlos | 💰 Kostenpflichtige Stufen | 🆓 Kostenlos |
| Offline-Modus | ✅ | ✅ | ❌ | ❌ | ✅ |
| Lizenz | Proprietär, Quelltext verfügbar | Apache-2.0 | Apache-2.0 | Proprietär | Apache-2.0 |