RousselTMLEARNING

Article · DevOps : de la découverte à l'expertise

DevSecOps : sécuriser la chaîne logicielle

1. Shift-left #

La sécurité est l'affaire de tous.

Principes #

Contrôles de sécurité dans le pipeline
Chaque contrôle est automatisé et donne un retour au développeur.

Le DevSecOps intègre la sécurité à chaque étape au lieu d'un audit en fin de projet. Une vulnérabilité détectée dans la pull request coûte quelques minutes ; la même découverte en production coûte un incident.

  • Modélisation des menaces au moment de la conception (STRIDE, quelques questions simples : que peut-il mal se passer ?).
  • Contrôles automatiques et rapides dans le pipeline, avec des seuils clairs.
  • Des correctifs proposés automatiquement (Dependabot, Renovate).
  • Une équipe sécurité qui outille et accompagne plutôt qu'elle ne bloque en fin de chaîne.

2. Les contrôles #

Ce que l'on analyse et avec quoi.

Panorama #

ContrôleCibleOutils open source
Détection de secretsdépôt et historique GitGitleaks, TruffleHog
SASTcode sourceSemgrep, CodeQL, SonarQube
SCAdépendances et licencesTrivy, Grype, OWASP Dependency-Check, Dependabot
Scan d'imagepaquets système et bibliothèques de l'imageTrivy, Grype
Scan d'IaCTerraform, Kubernetes, DockerfileCheckov, Trivy config, kube-linter
DASTapplication en cours d'exécutionOWASP ZAP
Runtimecomportement en productionFalco, Tetragon

En ligne de commande #

gitleaks detect --source . --redact                    # secrets
semgrep scan --config auto --error                      # SAST
trivy fs --scanners vuln,secret,misconfig --severity HIGH,CRITICAL --exit-code 1 .
trivy image --severity CRITICAL --exit-code 1 ghcr.io/mon-org/shop-api:3f9c2e1
checkov -d infra/                                       # IaC

Gérer les résultats #

Bonne Pratique : Bloquez seulement sur ce qui est grave et corrigeable (CRITICAL avec correctif disponible), affichez le reste. Un pipeline qui bloque sur des centaines d'alertes est rapidement contourné.

Documentez les exceptions (.trivyignore, annotations) avec une justification et une date d'expiration.

3. La chaîne d'approvisionnement logicielle #

Savoir ce que l'on livre, et le prouver.

SBOM #

Une SBOM (Software Bill of Materials) est l'inventaire de tous les composants d'un artefact, aux formats SPDX ou CycloneDX. Quand une nouvelle faille est publiée (Log4Shell), elle permet de savoir en minutes quelles images sont concernées.

syft ghcr.io/mon-org/shop-api:3f9c2e1 -o spdx-json > sbom.spdx.json
grype sbom:sbom.spdx.json       # analyser une SBOM existante

Signature et provenance #

# Cosign (Sigstore) : signature sans clé avec l'identité OIDC de la CI
cosign sign --yes ghcr.io/mon-org/shop-api@sha256:4b1c...
cosign attest --yes --type spdxjson --predicate sbom.spdx.json ghcr.io/mon-org/shop-api@sha256:4b1c...
cosign verify ghcr.io/mon-org/shop-api@sha256:4b1c... \
  --certificate-identity-regexp 'https://github.com/mon-org/.*' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

Le cadre SLSA définit des niveaux de garantie sur la provenance : build scripté, exécuté sur une plateforme de CI, attestation de provenance signée, build isolé et non falsifiable.

Politiques à l'admission #

# Kyverno : n'accepter que des images signées par notre CI
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata: { name: images-signees }
spec:
  validationFailureAction: Enforce
  rules:
    - name: verifier-signature
      match: { any: [{ resources: { kinds: [Pod] } }] }
      verifyImages:
        - imageReferences: ["ghcr.io/mon-org/*"]
          attestors:
            - entries:
                - keyless:
                    subject: "https://github.com/mon-org/*"
                    issuer: "https://token.actions.githubusercontent.com"

4. Secrets #

Le premier vecteur de compromission.

Règles #

  • Aucun secret dans Git, les images ou les journaux ; détection en pre-commit et dans la CI.
  • Un gestionnaire de secrets (Vault, AWS Secrets Manager, Azure Key Vault, External Secrets Operator).
  • Des identifiants courts et automatiques (OIDC, rôles cloud) plutôt que des clés longues.
  • Rotation régulière et immédiate en cas de fuite : supprimer le commit ne suffit pas, le secret doit être révoqué.
Erreur Courante : Un secret poussé sur un dépôt public est collecté par des robots en quelques minutes. Révoquez-le d'abord, nettoyez l'historique ensuite.

📄 DevSecOps : sécuriser la chaîne logicielle de bout en bout →

Mon suivi

  • ⏱ Durée estimée : ≈ 8 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

✉️ Poser une question

Glossaire de la formation

DevOps

Culture, mouvement et pratiques visant à unifier le développement logiciel (Dev) et l'administration des infrastructures informatiques (Ops).Découvrir...

DevSecOps

Intégration native de la sécurité (Security) dès la conception et tout au long du cycle de vie DevOps (approche "Shift-Left").Voir comment intégrer la...

AIOps (Artificial Intelligence for IT Operations)

Utilisation de l'intelligence artificielle et de l'apprentissage automatique pour automatiser et améliorer les opérations informatiques (ex: détection...

NoOps

Concept où l'environnement informatique est tellement automatisé et abstrait (ex: Serverless, PaaS) qu'il ne nécessite quasiment plus d'équipe opérati...

GitOps

Pratique de déploiement continu où un dépôt Git sert de source unique de vérité déclarative pour l'infrastructure et les applications.Maîtriser le dép...

FinOps (Financial Operations)

Culture de responsabilité financière du Cloud visant à maximiser la valeur métier en optimisant les coûts. Elle permet une collaboration étroite entre...

SRE (Site Reliability Engineering)

Discipline qui applique les principes de l'ingénierie logicielle aux problématiques d'exploitation. Le but est de créer des systèmes hautement scalabl...

Platform Engineering

Discipline consistant à concevoir et construire des chaînes d'outils et des flux de travail permettant aux développeurs de gérer leur infrastructure e...

Articles recommandés

Mur de la confusion

Le 'mur de la confusion' (ou 'wall of confusion') est une métaphore souvent utilisée dans le cont...

Soutien Logistique Intégré

Soutien Logistique Intégré (SLI) (L'Integrated Logistics Support (ILS) en anglais), est une appro...

Application 12 Facteurs

Un guide détaillé sur la méthodologie des 12 facteurs pour le développement d'applications modern...

Le framework CALMS : Les 5 piliers du DevOps

Découvrez le framework CALMS, le socle indispensable pour réussir votre transformation DevOps à t...

Bonnes pratiques DevOps : culture, CI/CD, infrastructure as code et mesure

Bonnes pratiques DevOps : culture et collaboration, intégration et livraison continues, trunk-bas...

Tests de charge avec Grafana k6 : pourquoi et quels types de tests

Pourquoi tester la performance avant la production, les types de tests (smoke, charge, stress, pi...

Écrire des scripts k6 : requêtes, vérifications, scénarios et exécuteurs

La structure d'un script k6 (init, setup, default, teardown), les requêtes HTTP, les checks, les ...

Seuils, métriques et résultats d'un test k6

Lire le résumé d'un test k6, comprendre les métriques intégrées (http_req_duration, http_req_fail...

Observer un test k6 : Prometheus, Grafana et corrélation avec le système testé

Envoyer les résultats de k6 dans Prometheus (remote write) ou en OpenTelemetry, les visualiser da...