Aller au contenu

Kubescape

Kubescape est une plateforme open-source de gestion de la posture de sécurité Kubernetes par ARMO (projet en incubation CNCF). Elle fournit l’analyse des risques, le balayage de conformité, la détection des mauvaises configurations et l’analyse des vulnérabilités dans les IDE, les pipelines CI/CD et les clusters en cours d’exécution.

CommandeDescription
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | bashInstaller la dernière version (macOS/Linux)
brew install kubescapeInstaller via Homebrew (macOS)
scoop install kubescapeInstaller via Scoop (Windows)
docker run -it kubescape/kubescape:latest kubescape --helpExécuter Kubescape dans Docker
kubescape versionAfficher la version installée
kubescape downloadTélécharger les frameworks et les politiques
kubescape download --frameworksTélécharger tous les frameworks
CommandeDescription
kubescape scanBalayer le cluster actuel en utilisant kubeconfig
kubescape scan --kubeconfig /path/to/kubeconfigBalayer le cluster avec kubeconfig spécifique
kubescape scan -f manifest.yamlBalayer le fichier manifeste YAML
kubescape scan -f *.yamlBalayer plusieurs fichiers manifestes
kubescape scan -d ./k8s-configs/Balayer tous les manifestes dans le répertoire
kubescape scan --helm /path/to/chartBalayer la charte Helm avant le déploiement
kubescape scan --include-namespaces default,kube-systemBalayer uniquement les espaces de noms spécifiques
kubescape scan --exclude-namespaces kube-node-leaseExclure les espaces de noms du scan
kubescape scan --severity high,criticalAfficher uniquement les problèmes de haute/critique gravité
kubescape scan --pod-runtime containerdSpécifier le runtime du conteneur (docker, containerd, cri-o)
CommandeDescription
kubescape scan framework nsaBalayer contre le guide de durcissement Kubernetes NSA-CISA
kubescape scan framework cisBalayer contre le benchmark CIS Kubernetes
kubescape scan framework mitreBalayer contre le framework MITRE ATT&CK
kubescape scan framework pci-dssBalayer contre la conformité PCI-DSS
kubescape scan framework soc2Balayer contre la conformité SOC2
kubescape scan framework hipaaBalayer contre la conformité HIPAA
kubescape scan -f manifest.yaml -f nsa,cis,mitreBalayer le manifeste contre plusieurs frameworks
kubescape scan --list-frameworksLister tous les frameworks disponibles
CommandeDescription
kubescape scan image gcr.io/project/image:tagBalayer l’image du conteneur pour les vulnérabilités
kubescape scan image --image-scan-concurrency 5 image1 image2Balayer plusieurs images en parallèle
kubescape scan -f manifest.yaml --include-image-scanningBalayer les manifestes et toutes les images référencées
kubescape scan image --severity critical --only-vulnerabilitiesAfficher uniquement les vulnérabilités critiques
kubescape scan image --image-registry-credentials user:pass@registry:5000Balayer les images du registre privé
kubescape scan -f manifest.yaml --image-scan-cacheMettre en cache les analyses d’images pour les exécutions répétées
CommandeDescription
kubescape scan -o json > report.jsonRésultats de sortie au format JSON
kubescape scan -o pdf > report.pdfGénérer un rapport PDF
kubescape scan -o html > report.htmlGénérer un rapport HTML
kubescape scan -o sarif > report.sarifSortie au format SARIF (pour les outils CI/CD)
kubescape scan -o pretty-jsonSortie JSON au format élégant
kubescape scan --output-file report.json -o jsonEnregistrer la sortie dans un fichier
kubescape scan -o json | jq '.results[] | select(.severity=="critical")'Filtrer les résultats JSON avec jq
CommandeDescription
kubescape scan --fail-threshold 80Échouer le pipeline si le score de risque est inférieur à 80
kubescape scan --fail-threshold 70 --severity criticalPasserelle du pipeline sur les résultats critiques
kubescape scan -f manifest.yaml --fail-threshold 85 -o sarifGénérer SARIF + passerelle dans GitHub Actions
kubescape scan --fail-on-compliance-failureÉchouer si les frameworks de conformité échouent
kubescape scan -o json --format-by-severitySortie groupée par niveau de gravité
- name: Run Kubescape security scan
  uses: kubescape/github-action@v2
  with:
    kubeconfig: ${{ secrets.KUBECONFIG }}
    frameworks: nsa,cis
    fail-threshold: 80
    output-format: sarif
    output-file: kubescape-report.sarif

- name: Upload SARIF to GitHub Security
  uses: github/codeql-action/upload-sarif@v2
  with:
    sarif_file: kubescape-report.sarif
kubescape_scan:
  stage: security
  image: kubescape/kubescape:latest
  script:
    - kubescape scan framework nsa --fail-threshold 80 -o sarif > report.sarif
    - kubescape scan framework cis --fail-threshold 75 -o json > cis-report.json
  artifacts:
    reports:
      sast: report.sarif
    paths:
      - cis-report.json
stage('Security: Kubescape') {
    steps {
        sh '''
            kubescape scan -f k8s-manifests/ \
              --fail-threshold 80 \
              -o sarif > kubescape-report.sarif \
              -o json > kubescape-report.json
        '''
        archiveArtifacts artifacts: '*-report.*'
    }
}
CommandeDescription
kubescape download --output-dir ./offline-dataTélécharger tous les frameworks dans le répertoire local
kubescape download --frameworks nsa,cis --output-dir ./fwTélécharger les frameworks spécifiques hors ligne
kubescape scan -f manifest.yaml --offline --frameworks-dir ./offline-dataBalayer en utilisant les frameworks téléchargés
kubescape scan -d manifests/ --offline --frameworks-dir ./offline-dataScan de répertoire hors ligne
CommandeDescription
kubescape configAfficher la configuration actuelle
kubescape config set <key> <value>Définir la valeur de configuration
kubescape config get <key>Obtenir la valeur de configuration
kubescape config -p ~/.kubescape/configUtiliser le chemin du fichier de configuration personnalisée
kubescape scan -c ./custom-config.yamlBalayer avec configuration personnalisée
CommandeDescription
kubescape operator installInstaller l’opérateur Kubescape dans le cluster
kubescape operator install --namespace kubescapeInstaller l’opérateur dans un espace de noms spécifique
kubescape operator uninstallSupprimer l’opérateur Kubescape
kubectl get deployment -n kubescapeVérifier l’installation de l’opérateur
kubectl logs -n kubescape -l app=kubescape-operatorAfficher les journaux de l’opérateur
kubescape operator statusVérifier l’état de l’opérateur
CommandeDescription
kubescape scan --exceptions exceptions.jsonAppliquer les règles d’exception au balayage
kubescape scan --enable-controls <control-id>Activer les contrôles spécifiques
kubescape scan --disable-controls <control-id>Désactiver les contrôles spécifiques
kubescape scan --controls <id1>,<id2>Exécuter uniquement les contrôles spécifiés
kubescape scan --list-controlsLister tous les contrôles disponibles
kubescape scan --list-controls --framework nsaLister les contrôles du framework NSA

Exemple de fichier d’exception (exceptions.json)

Section intitulée « Exemple de fichier d’exception (exceptions.json) »
{
  "exceptions": [
    {
      "ruleID": "C-0001",
      "namespace": "test-namespace",
      "resources": ["deployment/test-app"],
      "justification": "Development environment exemption"
    }
  ]
}
CommandeDescription
kubescape scan --verboseAfficher la sortie de débogage détaillée
kubescape scan --log-level debugDéfinir le niveau de journalisation (debug, info, warn, error)
kubescape scan --submitEnvoyer les résultats du balayage à Kubescape Cloud
kubescape scan --account <account-id>Envoyer vers un compte cloud spécifique
kubescape scan --keep-localBalayer sans envoyer au cloud
kubescape scan --max-workers 10Contrôler les travailleurs de traitement parallèle
kubescape scan --timeout 300Définir le délai d’expiration en secondes
PratiqueDescription
Versionner les manifestesToujours versionner les manifestes Kubernetes; balayer avant le déploiement
Passerelle sur le score de risqueDéfinir --fail-threshold dans CI/CD; utiliser 75-85 selon la tolérance au risque de l’organisation
Balayage multi-frameworkUtiliser NSA + CIS + MITRE; aborder en premier les résultats de plus haute priorité
Balayage régulier des imagesBalayer les images de conteneur dans la chaîne d’approvisionnement; détecter les CVE tôt
Isolation de l’espace de nomsUtiliser --include-namespaces pour concentrer les balayages; exclure les espaces de noms du système
Hors ligne dans les environnements sécurisésTélécharger les frameworks hors ligne pour les clusters isolés par air
Surveiller dans le tempsSuivre les scores de risque dans les balayages; investiguer les régressions
Justification des exceptionsDocumenter les exceptions; examiner périodiquement pour supprimer
Helm pré-déploiementExécuter kubescape scan --helm sur les graphiques avant Helm install
Activer RBACVérifier que ServiceAccount a les autorisations minimales requises
Utiliser la sortie SARIFIntégrer les rapports SARIF dans l’IDE, GitHub et les systèmes SIEM
Examiner les détails du contrôleUtiliser kubescape scan --list-controls pour comprendre le but de chaque contrôle