
Le scanner de sécurité Docker le plus complet
Par Daniel Garcia (cr0hn) | GitHub | Site Web
Fonctionnalités • Installation • Démarrage rapide • Documentation • Cas d'utilisation • Nouveautés • Contribuer
DockerScan v2.0 est un scanner de sécurité nouvelle génération pour les conteneurs et images Docker, entièrement réécrit en Go. Il combine plusieurs techniques de scan de sécurité basées sur les dernières recherches 2024‑2025, les normes du secteur (CIS Benchmark, NIST SP 800‑190) et des schémas d’attaque réels découverts en production.
Vérification complète de conformité avec plus de 80 contrôles automatisés :
Basée sur des campagnes d’attaque réelles de 2024 :
40+ motifs de secrets incluant les API modernes (mise à jour 2024) :
Détection des CVE critiques 2024‑2025 :
Vérifications de durcissement de l’exécution des conteneurs :
DockerScan v2.0 est une réécriture complète à partir de zéro. Voici ce qui a changé depuis v1.x :
--from-file – Installer la base CVE depuis un fichier local (hors ligne/air‑gapped)-q) – Supprimer la bannière pour les pipelines CI/CDLes binaires pré‑compilés sont automatiquement construits et publiés via GitHub Actions pour chaque tag de version.
Plateformes supportées :
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"
#### Vérifier le téléchargement (Optionnel mais recommandé)```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 Install```bash
go install github.com/cr0hn/dockerscan/v2/cmd/dockerscan@latest
Avant de lancer l'analyse, téléchargez la base de données CVE (mise à jour quotidiennement, ~30 Mo compressée) :```bash
dockerscan update-db
> **Astuce** : La base de données est mise à jour quotidiennement via GitHub Actions. Exécutez `update-db` périodiquement pour obtenir les dernières données CVE.
### Analyse de base```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
---
## 📖 Utilisation
### Options de ligne de commande```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
### 🔐 Authentification au registre privé
DockerScan prend en charge trois méthodes d'authentification auprès des registres privés :
#### Méthode 1 : Fichier de configuration Docker (recommandé pour une utilisation locale)
La méthode la plus pratique - utilise vos informations d'identification Docker existantes :```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 lit automatiquement les identifiants depuis ~/.docker/config.json. Cela fonctionne avec tous les registres dans lesquels vous vous êtes connecté via docker login.
Les gestionnaires d'identifiants sont entièrement pris en charge. DockerScan résout nativement les identifiants via :
credsStore — gestionnaire d'identifiants global (par ex. osxkeychain sur macOS avec Docker Desktop, wincred sur Windows, pass sur Linux)credHelpers — gestionnaires d'identifiants par registre (prioritaires sur credsStore)auths en texte clair dans config.jsonSur macOS avec Docker Desktop, cela fonctionne immédiatement sans configuration supplémentaire :```json { "credsStore": "osxkeychain" }
DockerScan appellera `docker-credential-osxkeychain` de manière transparente pour récupérer les jetons, vous n'avez donc jamais besoin de passer explicitement des identifiants.
#### Méthode 2 : Variables d'environnement (Recommandé pour CI/CD)
Idéal pour les environnements automatisés et les pipelines CI/CD :```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
Exemple CI/CD (GitHub Actions):```yaml
#### Méthode 3 : Options en ligne de commande (non recommandée)
Pour tests rapides uniquement (identifiants visibles dans la liste des processus) :```bash
dockerscan --registry-user myuser --registry-password mytoken ghcr.io/myorg/app:v1
Avertissement de sécurité : Cette méthode expose les identifiants dans votre historique de shell et la liste des processus. Utilisez plutôt des variables d'environnement ou la configuration Docker.
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
### Dépannage de l'authentification
#### Problèmes courants
**1. Erreur « authentification requise »**```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. Erreur « 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. Limitation de débit sur Docker Hub**
- Authentifiez-vous pour augmenter les limites de débit (200 téléchargements/6 heures pour les comptes gratuits)
- Envisagez d'utiliser un compte Docker Hub Pro pour des limites plus élevées
**5. Erreurs de certificat avec des certificats auto-signés**
- Ajoutez le certificat CA à votre magasin de confiance système
- Ou configurez Docker pour faire confiance au registre (voir la documentation Docker)
---
## 🔍 Scanners de sécurité
### CIS Docker Benchmark
Vérification automatisée de conformité par rapport au CIS Docker Benchmark v1.7.0 :```bash
dockerscan --scanners cis nginx:latest
Les vérifications incluent :
:latest)Détectez les attaques réelles sur la chaîne d'approvisionnement :```bash dockerscan --scanners supplychain suspicious-image:1.0
Détecte :
- Conteneurs sans image (attaques basées uniquement sur la documentation)
- Mineurs de cryptomonnaies (xmrig, claymore, etc.)
- Bibliothèques piégées (cas xz-utils)
- Images non signées/non vérifiées
- Tentatives de phishing dans la documentation
- Connexions à des pools miniers, serveurs C2
### Détection des secrets
Trouver des secrets codés en dur :```bash
dockerscan --scanners secrets webapp:prod
Détecte :
Détecter les CVE connues :```bash dockerscan --scanners vulnerabilities node:16
Vérifie :
- CVEs Docker critiques (2024-2025)
- Vulnérabilités d'évasion de conteneur
- Vulnérabilités RCE de BuildKit
- Images de base en fin de vie
- Paquets vulnérables
### Sécurité d'exécution
Auditer les configurations d'exécution :```bash
dockerscan --scanners runtime running-container
Analyse :
{ "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 Output
Compatible avec 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. **Validation pré-déploiement**```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. **Workflow du développeur**```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
### Base de données CVE et outil nvd2sqlite
DockerScan utilise une base de données SQLite locale pour les recherches de CVE. La base de données est **automatiquement mise à jour quotidiennement** via GitHub Actions et hébergée dans le dépôt, vous avez donc toujours accès aux dernières données CVE.
#### Fonctionnalités de la base de données
- 🗄️ **Base de données pré-construite** - Prête à l'emploi, aucune configuration manuelle requise
- 🔄 **Mises à jour quotidiennes** - L'action GitHub met à jour la base de données tous les jours à 00:00 UTC
- 📅 **2,5 ans de données CVE** - Couvre les CVE de mi-2022 à aujourd'hui
- ⚡ **Recherches rapides** - SQLite avec index optimisés
- 🌐 **Hébergé sur GitHub** - Téléchargé automatiquement avec la commande `update-db`
#### Mise à jour de la base de données```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
Note : La première fois que vous exécutez
dockerscan, il vous invitera à télécharger la base de données. Ensuite, vous pouvez la mettre à jour périodiquement avecupdate-db.
Pour les utilisateurs avancés, vous pouvez construire la base de données CVE directement depuis NVD :```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
**Fonctionnalités de nvd2sqlite :**
- ⚡ **4 workers de téléchargement en parallèle** pour des téléchargements plus rapides
- 🔄 **Nouvelle tentative automatique avec backoff exponentiel** pour la limitation de taux (HTTP 429)
- 📦 **Téléchargements dans un répertoire temporaire**, puis traite séquentiellement
- 🗄️ **Sortie SQLite** avec des tables indexées pour des recherches rapides
---
### Extensibilité
Ajouter un nouveau scanner est simple :```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())
Les contributions sont les bienvenues ! DockerScan est conçu pour être extensible.
git checkout -b feature/amazing-scanner)internal/scanner/git 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
### Ajout de Nouveaux Scanners
Nous accueillons tout particulièrement :
- Intégration avec les bases de données de vulnérabilités (NVD, GitHub Security Advisories)
- Scan de sécurité Kubernetes
- Sécurité des registres de conteneurs
- Analyse de sécurité Docker Compose
- Scan IaC (Dockerfiles)
---
## 📚 Références
### Normes et Références
- [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) - Guide de sécurité des conteneurs d'applications
- [OWASP Docker Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html)
### Recherche et CVEs
- [4M Malicious Imageless Containers](https://thehackernews.com/2024/04/millions-of-malicious-imageless.html) - The Hacker News, avril 2024
- [Supply Chain Attacks Using Container Images](https://www.aquasec.com/blog/supply-chain-threats-using-container-images/) - Aqua Security
- [CVE-2024-21626: Évasion de conteneur runc](https://nvd.nist.gov/vuln/detail/CVE-2024-21626) - NIST NVD
- [CVE-2024-23651: RCE BuildKit](https://nvd.nist.gov/vuln/detail/CVE-2024-23651) - NIST NVD
- [xz-utils Backdoor (mars 2024)](https://www.openwall.com/lists/oss-security/2024/03/29/4) - OpenWall
### Outils et Projets
- [Trivy](https://github.com/aquasecurity/trivy) - Scanner de vulnérabilités
- [Docker Bench Security](https://github.com/docker/docker-bench-security) - Script de benchmark CIS
- [Cosign](https://github.com/sigstore/cosign) - Signature et vérification de conteneurs
- [Spécification SARIF](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) - Format de résultats d'analyse statique
---
## 📄 Licence
Ce projet est sous licence **DockerScan Proprietary Source-Available License**.
### Ce que cela signifie
✅ **Vous POUVEZ (Gratuitement) :**
- Utiliser DockerScan **gratuitement** pour le scan de sécurité interne
- L'utiliser dans vos **pipelines CI/CD** et workflows de sécurité
- **Modifier, forker et contribuer** à la communauté
- L'utiliser à des fins **éducatives et de recherche**
- L'utiliser comme **outil dans des services professionnels** (conseil, audits de sécurité, tests d'intrusion)
- **L'intégrer** dans d'autres produits où il est un composant auxiliaire
❌ **Vous NE POUVEZ PAS (sans autorisation écrite expresse ou licence commerciale) :**
- Proposer **le scan Docker en tant que SaaS commercial**
- **Vendre des instances hébergées** de DockerScan
- Construire une **plateforme commerciale** principalement basée sur DockerScan
- Créer un **service géré payant** où DockerScan est l'offre principale
### Pourquoi cette licence ?
Cette licence protège la durabilité du projet en :
- ✅ Accordant la **liberté** d'utiliser le logiciel à des fins légitimes
- ❌ Empêchant le **parasitage nuisible** où les entreprises profitent en l'offrant comme service sans contribuer en retour
- 💰 Assurant que le projet reste **durable** grâce à des licences commerciales pour les utilisations concurrentes
- 🔓 Gardant le **code source disponible** pour la transparence et les contributions de la communauté
**Ce n'est PAS open source** - c'est **source-disponible** avec des restrictions sur l'utilisation commerciale concurrente.
### Licence Commerciale
**Requis pour :**
- Offres SaaS ou hébergées
- Plateformes commerciales utilisant DockerScan comme fonctionnalité principale
- Revente ou redistribution en tant que produit commercial
- Services gérés où DockerScan est l'offre principale
**Contact pour licence commerciale :**
📧 Email : cr0hn [at] cr0hn.com
🌐 Site Web : https://cr0hn.com
💼 Conditions de licence flexibles disponibles pour les entreprises et les startups
Voir le fichier [LICENSE](https://github.com/cr0hn/dockerscan/blob/HEAD/LICENSE) pour les termes juridiques complets.
---
## 👤 Auteur
<div align="center">
### **Daniel Garcia (cr0hn)**
[](https://cr0hn.com)
[](https://github.com/cr0hn)
[](https://twitter.com/ggdaniel)
**Chercheur en sécurité | Développeur Open Source | Expert en sécurité Docker**
</div>
---
## 🙏 Remerciements
Remerciements particuliers à :
- La communauté de sécurité Docker
- CIS pour le Docker Benchmark
- NIST pour SP 800-190
- Les chercheurs en sécurité qui ont découvert les attaques de la chaîne d'approvisionnement de 2024
- Tous les contributeurs et utilisateurs de DockerScan
---
## 📞 Support
- **Problèmes** : [GitHub Issues](https://github.com/cr0hn/dockerscan/issues)
- **Discussions** : [GitHub Discussions](https://github.com/cr0hn/dockerscan/discussions)
- **Sécurité** : Signaler les vulnérabilités à [email protected]
---
<div align="center">
**⭐ Si vous trouvez DockerScan utile, veuillez mettre une étoile au dépôt ! ⭐**
*Rendre la sécurité Docker accessible à tous*
[⬆ Retour en haut](#-dockerscan-v20)
</div>
| Fonctionnalité | v1.x (Python) | v2.0 (Go) |
|---|
| Langage | Python 3.5+ | Go 1.21+ |
| Performances | ~500 images/heure | ~5000 images/heure |
| Utilisation mémoire | 200‑500 Mo | 50‑100 Mo |
| Distribution | pip install + dépendances | Binaire unique |
| Scanners de sécurité | 2 modules | 5 modules |
| CIS Benchmark | Partiel | Complet v1.7.0 (80+ vérifications) |
| Chaîne d’approvisionnement | ❌ Non disponible | ✅ Basé sur les recherches 2024 |
| Motifs de secrets | 10 motifs | 40+ motifs |
| Détection CVE | Basique | CVE 2024‑2025 |
| Sécurité à l’exécution | ❌ Non disponible | ✅ Audit complet des capacités |
| Sortie SARIF | ❌ Non disponible | ✅ Support complet |
| Intégration CI/CD | Manuel | Natif (codes de sortie, SARIF) |
| Fonctionnalité | DockerScan v2.0 | Trivy | Clair | Snyk | Grype |
|---|
| CIS Benchmark v1.7 | ✅ Complet (80+ vérifications) | ❌ | ❌ | Partiel | ❌ |
| Détection de la chaîne d'approvisionnement (2024) | ✅ Oui | ❌ | ❌ | ❌ | ❌ |
| Analyse des secrets | ✅ 40+ motifs | Basique | ❌ | ✅ | ❌ |
| Base de données CVE | ✅ CVE 2024-2025 | ✅ | ✅ | ✅ | ✅ |
| Sécurité runtime | ✅ Complète | ❌ | ❌ | ❌ | ❌ |
| Sortie SARIF | ✅ | ✅ | ❌ | ✅ | ✅ |
| Vitesse (Go) | ⚡ Très rapide | ⚡ Très rapide | 🐌 Lent | ⚡ Rapide | ⚡ Très rapide |
| Extensible | ✅ Système de plugins | Limité | Limité | ❌ | Limité |
| Codes de sortie | ✅ Prêt CI/CD | ✅ | Partiel | ✅ | ✅ |
| Coût | 🆓 Gratuit | 🆓 Gratuit | 🆓 Gratuit | 💰 Niveaux payants | 🆓 Gratuit |
| Mode hors ligne | ✅ | ✅ | ❌ | ❌ | ✅ |
| Licence | Propriétaire source-disponible | Apache-2.0 | Apache-2.0 | Propriétaire | Apache-2.0 |