{
  "version": "1.0.0-rc.4",
  "count": 412,
  "exigences": [
    {
      "id": "SOCLE-APP-AST-1",
      "n": 1,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "AST",
      "famille_nom": "Tests de sécurité applicative (AST)",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "SAST exécuté à chaque build ; findings critiques bloquants.",
      "preuve": "Job SAST bloquant ; tickets sur findings critiques.",
      "outils": [
        "Semgrep",
        "CodeQL",
        "OWASP ZAP",
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "SSDF PW.8",
        "OWASP DSOMM",
        "OWASP ASVS v5.0.0"
      ],
      "menaces": [
        "Une entrée non validée est interprétée comme du code ou une requête (SQL, commande, XSS, LDAP), permettant l'exécution ou l'accès non autorisé. C'est la classe de failles applicatives la plus répandue (OWASP Top 10 2025, A03).",
        "Des données non fiables sont désérialisées sans contrôle, permettant l'exécution de code ou la manipulation d'objets. Les frameworks qui désérialisent automatiquement amplifient le risque (cas Spring4Shell, GoAnywhere)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/tests-de-securite-applicative-ast/#socle-app-ast-1"
    },
    {
      "id": "SOCLE-APP-AST-2",
      "n": 2,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "AST",
      "famille_nom": "Tests de sécurité applicative (AST)",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "DAST des surfaces exposées, planifié et exécuté avant release.",
      "preuve": "Rapport DAST daté avant chaque release majeure.",
      "outils": [
        "Semgrep",
        "CodeQL",
        "OWASP ZAP",
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "SSDF PW.8",
        "OWASP DSOMM"
      ],
      "menaces": [
        "Une vulnérabilité exploitable atteint la production parce qu'aucun test dynamique (DAST / IAST) ne l'a détectée avant la mise en service. Le test des surfaces exposées avant release est la parade (OWASP DSOMM).",
        "Un contrôle d'accès incomplet ou contournable laisse un utilisateur accéder à des données ou actions non autorisées (élévation horizontale ou verticale). C'est la première catégorie du Top 10 OWASP 2025 (A01)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/tests-de-securite-applicative-ast/#socle-app-ast-2"
    },
    {
      "id": "SOCLE-APP-AST-3",
      "n": 3,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "AST",
      "famille_nom": "Tests de sécurité applicative (AST)",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "SCA des dépendances applicatives relié à la gestion des vulnérabilités.",
      "preuve": "Findings SCA suivis dans le processus de gestion des vulnérabilités.",
      "outils": [
        "Semgrep",
        "CodeQL",
        "OWASP ZAP",
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "OWASP CICD-SEC-3",
        "OWASP ASVS v5.0.0",
        "SSDF PW.4"
      ],
      "menaces": [
        "Une bibliothèque applicative porteuse d'une vulnérabilité connue est exploitée faute de détection (SCA) et de mise à jour. L'absence d'inventaire et de correctif transforme une CVE publique en brèche (cas Log4Shell, Equifax)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/tests-de-securite-applicative-ast/#socle-app-ast-3"
    },
    {
      "id": "SOCLE-APP-AST-4",
      "n": 4,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "AST",
      "famille_nom": "Tests de sécurité applicative (AST)",
      "famille_ordre": 3,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "tests interactifs (IAST) ou fuzzing sur les composants critiques.",
      "preuve": "Campagne de fuzzing ou IAST sur les composants critiques.",
      "outils": [
        "AFL++",
        "libFuzzer",
        "OSS-Fuzz"
      ],
      "standards": [
        "SSDF PW.8",
        "OWASP DSOMM"
      ],
      "menaces": [
        "Une vulnérabilité exploitable atteint la production parce qu'aucun test dynamique (DAST / IAST) ne l'a détectée avant la mise en service. Le test des surfaces exposées avant release est la parade (OWASP DSOMM)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/tests-de-securite-applicative-ast/#socle-app-ast-4"
    },
    {
      "id": "SOCLE-APP-AST-5",
      "n": 5,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "AST",
      "famille_nom": "Tests de sécurité applicative (AST)",
      "famille_ordre": 3,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "couverture des tests de sécurité mesurée, avec seuils par niveau de criticité.",
      "preuve": "Indicateur de couverture des tests de sécurité.",
      "outils": [
        "Semgrep",
        "CodeQL",
        "OWASP ZAP",
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "OWASP DSOMM",
        "OWASP SAMM"
      ],
      "menaces": [
        "Une vulnérabilité exploitable atteint la production parce qu'aucun test dynamique (DAST / IAST) ne l'a détectée avant la mise en service. Le test des surfaces exposées avant release est la parade (OWASP DSOMM)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/tests-de-securite-applicative-ast/#socle-app-ast-5"
    },
    {
      "id": "SOCLE-APP-COD-1",
      "n": 1,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "COD",
      "famille_nom": "Codage sûr",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "règles de codage sûr documentées (validation des entrées, encodage des sorties, gestion des erreurs).",
      "preuve": "Guide de codage sûr ; adoption vérifiée en revue.",
      "outils": [
        "Semgrep",
        "CodeQL",
        "Gitleaks"
      ],
      "standards": [
        "SAFECode",
        "OWASP ASVS v5.0.0",
        "OWASP Top 10 2025"
      ],
      "menaces": [
        "Une entrée non validée est interprétée comme du code ou une requête (SQL, commande, XSS, LDAP), permettant l'exécution ou l'accès non autorisé. C'est la classe de failles applicatives la plus répandue (OWASP Top 10 2025, A03).",
        "Un contrôle d'accès incomplet ou contournable laisse un utilisateur accéder à des données ou actions non autorisées (élévation horizontale ou verticale). C'est la première catégorie du Top 10 OWASP 2025 (A01)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/codage-sur/#socle-app-cod-1"
    },
    {
      "id": "SOCLE-APP-COD-2",
      "n": 2,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "COD",
      "famille_nom": "Codage sûr",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "aucun secret en clair dans le code, détecté en pré-commit et en CI.",
      "preuve": "Configuration de détection de secrets ; historique nettoyé.",
      "outils": [
        "Semgrep",
        "CodeQL",
        "Gitleaks"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP ASVS v5.0.0"
      ],
      "menaces": [
        "Une clé, un jeton ou un mot de passe est commité dans le code et exposé à quiconque accède au dépôt ou à l'artefact. La détection en pré-commit et en CI est la parade."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/codage-sur/#socle-app-cod-2"
    },
    {
      "id": "SOCLE-APP-COD-3",
      "n": 3,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "COD",
      "famille_nom": "Codage sûr",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "usage de fonctions et requêtes sûres (requêtes paramétrées, anti-patterns proscrits).",
      "preuve": "Règles d'analyse interdisant les fonctions dangereuses.",
      "outils": [
        "Semgrep",
        "CodeQL",
        "Gitleaks"
      ],
      "standards": [
        "SAFECode",
        "OWASP ASVS v5.0.0",
        "OWASP Top 10 2025"
      ],
      "menaces": [
        "Une entrée non validée est interprétée comme du code ou une requête (SQL, commande, XSS, LDAP), permettant l'exécution ou l'accès non autorisé. C'est la classe de failles applicatives la plus répandue (OWASP Top 10 2025, A03).",
        "Des données non fiables sont désérialisées sans contrôle, permettant l'exécution de code ou la manipulation d'objets. Les frameworks qui désérialisent automatiquement amplifient le risque (cas Spring4Shell, GoAnywhere)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/codage-sur/#socle-app-cod-3"
    },
    {
      "id": "SOCLE-APP-COD-4",
      "n": 4,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "COD",
      "famille_nom": "Codage sûr",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "linting de sécurité avec règles adaptées au contexte applicatif.",
      "preuve": "Configuration de linting de sécurité dans le dépôt.",
      "outils": [
        "Semgrep",
        "CodeQL",
        "Gitleaks"
      ],
      "standards": [
        "OWASP DSOMM",
        "SSDF PW.8"
      ],
      "menaces": [
        "Une entrée non validée est interprétée comme du code ou une requête (SQL, commande, XSS, LDAP), permettant l'exécution ou l'accès non autorisé. C'est la classe de failles applicatives la plus répandue (OWASP Top 10 2025, A03)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/codage-sur/#socle-app-cod-4"
    },
    {
      "id": "SOCLE-APP-COD-5",
      "n": 5,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "COD",
      "famille_nom": "Codage sûr",
      "famille_ordre": 2,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "revue de code orientée sécurité obligatoire sur les composants sensibles.",
      "preuve": "Politique de revue ; trace de revue sécurité sur composants sensibles.",
      "outils": [
        "Semgrep",
        "CodeQL",
        "Gitleaks"
      ],
      "standards": [
        "SSDF PW.7",
        "OWASP SAMM"
      ],
      "menaces": [
        "Une faille de conception ou de logique métier (contrôles manquants, hypothèses erronées) passe inaperçue faute de modélisation des menaces et de revue de sécurité. Aucun scanner ne la détecte : elle relève de la conception (Microsoft SDL, OWASP SAMM)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/codage-sur/#socle-app-cod-5"
    },
    {
      "id": "SOCLE-APP-DSN-1",
      "n": 1,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "DSN",
      "famille_nom": "Conception & modélisation des menaces",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "référentiel de sécurité applicative (OWASP ASVS) adopté et adapté à la criticité.",
      "preuve": "Niveau ASVS cible déclaré par application.",
      "outils": [],
      "standards": [
        "OWASP ASVS v5.0.0",
        "OWASP SAMM"
      ],
      "menaces": [
        "Une entrée non validée est interprétée comme du code ou une requête (SQL, commande, XSS, LDAP), permettant l'exécution ou l'accès non autorisé. C'est la classe de failles applicatives la plus répandue (OWASP Top 10 2025, A03)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/conception-modelisation-des-menaces/#socle-app-dsn-1"
    },
    {
      "id": "SOCLE-APP-DSN-2",
      "n": 2,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "DSN",
      "famille_nom": "Conception & modélisation des menaces",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "modélisation des menaces documentée pour authentification, paiement et données personnelles.",
      "preuve": "Diagrammes de flux et menaces identifiées pour ces fonctions.",
      "outils": [],
      "standards": [
        "Microsoft SDL",
        "OWASP SAMM",
        "SSDF PW.1"
      ],
      "menaces": [
        "Une faille de conception ou de logique métier (contrôles manquants, hypothèses erronées) passe inaperçue faute de modélisation des menaces et de revue de sécurité. Aucun scanner ne la détecte : elle relève de la conception (Microsoft SDL, OWASP SAMM).",
        "Un contrôle d'accès incomplet ou contournable laisse un utilisateur accéder à des données ou actions non autorisées (élévation horizontale ou verticale). C'est la première catégorie du Top 10 OWASP 2025 (A01)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/conception-modelisation-des-menaces/#socle-app-dsn-2"
    },
    {
      "id": "SOCLE-APP-DSN-3",
      "n": 3,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "DSN",
      "famille_nom": "Conception & modélisation des menaces",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "revue d'architecture de sécurité avant les évolutions majeures.",
      "preuve": "Compte rendu de revue d'architecture de sécurité.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "SSDF PW.2"
      ],
      "menaces": [
        "Une faille de conception ou de logique métier (contrôles manquants, hypothèses erronées) passe inaperçue faute de modélisation des menaces et de revue de sécurité. Aucun scanner ne la détecte : elle relève de la conception (Microsoft SDL, OWASP SAMM)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/conception-modelisation-des-menaces/#socle-app-dsn-3"
    },
    {
      "id": "SOCLE-APP-DSN-4",
      "n": 4,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "DSN",
      "famille_nom": "Conception & modélisation des menaces",
      "famille_ordre": 1,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "exigences de sécurité dérivées d'un modèle de menace formel et vérifiées en fin de cycle.",
      "preuve": "Traçabilité exigence vers menace vers test.",
      "outils": [],
      "standards": [
        "SSDF PW.1",
        "OWASP ASVS v5.0.0"
      ],
      "menaces": [
        "Une faille de conception ou de logique métier (contrôles manquants, hypothèses erronées) passe inaperçue faute de modélisation des menaces et de revue de sécurité. Aucun scanner ne la détecte : elle relève de la conception (Microsoft SDL, OWASP SAMM)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/conception-modelisation-des-menaces/#socle-app-dsn-4"
    },
    {
      "id": "SOCLE-APP-GEN-1",
      "n": 1,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "exigences de sécurité applicative définies et tracées dès la conception.",
      "preuve": "Liste d'exigences de sécurité par fonctionnalité ; trace en backlog.",
      "outils": [
        "Semgrep",
        "OSV-Scanner"
      ],
      "standards": [
        "SSDF PW.1",
        "OWASP SAMM",
        "OWASP ASVS v5.0.0",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Une faille de conception ou de logique métier (contrôles manquants, hypothèses erronées) passe inaperçue faute de modélisation des menaces et de revue de sécurité. Aucun scanner ne la détecte : elle relève de la conception (Microsoft SDL, OWASP SAMM).",
        "Un contrôle d'accès incomplet ou contournable laisse un utilisateur accéder à des données ou actions non autorisées (élévation horizontale ou verticale). C'est la première catégorie du Top 10 OWASP 2025 (A01)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/#socle-app-gen-1"
    },
    {
      "id": "SOCLE-APP-GEN-2",
      "n": 2,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "analyse statique (SAST) intégrée au pipeline et exécutée à chaque build.",
      "preuve": "Configuration CI montrant le job SAST ; rapport daté.",
      "outils": [
        "Semgrep",
        "OSV-Scanner"
      ],
      "standards": [
        "SSDF PW.8",
        "OWASP DSOMM",
        "OWASP ASVS v5.0.0",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Une entrée non validée est interprétée comme du code ou une requête (SQL, commande, XSS, LDAP), permettant l'exécution ou l'accès non autorisé. C'est la classe de failles applicatives la plus répandue (OWASP Top 10 2025, A03).",
        "Des données non fiables sont désérialisées sans contrôle, permettant l'exécution de code ou la manipulation d'objets. Les frameworks qui désérialisent automatiquement amplifient le risque (cas Spring4Shell, GoAnywhere)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/#socle-app-gen-2"
    },
    {
      "id": "SOCLE-APP-GEN-3",
      "n": 3,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "analyse de composition (SCA) des dépendances applicatives, avec seuils de blocage.",
      "preuve": "Rapport SCA ; politique de seuils ; build bloqué sur vulnérabilité critique.",
      "outils": [
        "Semgrep",
        "OSV-Scanner"
      ],
      "standards": [
        "OWASP CICD-SEC-3",
        "OWASP ASVS v5.0.0",
        "SSDF PW.4",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Une bibliothèque applicative porteuse d'une vulnérabilité connue est exploitée faute de détection (SCA) et de mise à jour. L'absence d'inventaire et de correctif transforme une CVE publique en brèche (cas Log4Shell, Equifax)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/#socle-app-gen-3"
    },
    {
      "id": "SOCLE-APP-GEN-4",
      "n": 4,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "modélisation des menaces des composants sensibles, revue et tenue à jour.",
      "preuve": "Modèle de menace daté pour les fonctionnalités sensibles.",
      "outils": [
        "Semgrep",
        "OSV-Scanner"
      ],
      "standards": [
        "SSDF PW.1",
        "Microsoft SDL",
        "OWASP SAMM",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Une faille de conception ou de logique métier (contrôles manquants, hypothèses erronées) passe inaperçue faute de modélisation des menaces et de revue de sécurité. Aucun scanner ne la détecte : elle relève de la conception (Microsoft SDL, OWASP SAMM)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/#socle-app-gen-4"
    },
    {
      "id": "SOCLE-APP-GEN-5",
      "n": 5,
      "domaine": "APP",
      "domaine_nom": "Sécurité applicative",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "tests dynamiques (DAST) des applications exposées avant mise en production.",
      "preuve": "Rapport DAST avant release ; suivi des findings.",
      "outils": [
        "Semgrep",
        "OSV-Scanner"
      ],
      "standards": [
        "SSDF PW.8",
        "OWASP DSOMM",
        "OWASP ASVS v5.0.0",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Une vulnérabilité exploitable atteint la production parce qu'aucun test dynamique (DAST / IAST) ne l'a détectée avant la mise en service. Le test des surfaces exposées avant release est la parade (OWASP DSOMM)."
      ],
      "href": "/docs/securiser/socle/referentiel/securite-applicative/#socle-app-gen-5"
    },
    {
      "id": "SOCLE-CLD-CHF-1",
      "n": 1,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CHF",
      "famille_nom": "Chiffrement & clés",
      "famille_ordre": 6,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "chiffrement des flux en transit (TLS conforme) sur les services exposés ; aucun listener en clair.",
      "preuve": "Listeners HTTPS/SSL (TLS) ; redirection du trafic en clair.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 10.2.a",
        "SecNumCloud 10.2.c",
        "ANSSI-BP-028 R72",
        "CIS AWS Foundations 2.1.1"
      ],
      "menaces": [
        "L'attaquant accède aux objets d'un stockage cloud (buckets, volumes) mal protégés pour exfiltrer des données. Une exposition publique ou des droits trop larges suffisent (ATT&CK T1530)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/chiffrement-cles/#socle-cld-chf-1"
    },
    {
      "id": "SOCLE-CLD-CHF-2",
      "n": 2,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CHF",
      "famille_nom": "Chiffrement & clés",
      "famille_ordre": 6,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "chiffrement au repos sur les volumes et le stockage objet, empêchant la récupération des données à la réallocation/recyclage des médias.",
      "preuve": "Chiffrement au repos activé (volumes, buckets) avec gestion de clés conforme.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 10.1.a",
        "SecNumCloud 10.1.b",
        "CSA CCM CEK-03",
        "CSA CCM CEK-04",
        "CIS AWS Foundations 2.2.1"
      ],
      "menaces": [
        "L'attaquant accède aux objets d'un stockage cloud (buckets, volumes) mal protégés pour exfiltrer des données. Une exposition publique ou des droits trop larges suffisent (ATT&CK T1530)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/chiffrement-cles/#socle-cld-chf-2"
    },
    {
      "id": "SOCLE-CLD-CHF-3",
      "n": 3,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CHF",
      "famille_nom": "Chiffrement & clés",
      "famille_ordre": 6,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "sante"
      ],
      "texte": "clés cryptographiques conformes aux règles ANSSI ; accès aux clés et secrets protégé par conteneur de sécurité (HSM/KMS).",
      "preuve": "Clés conformes [CRYPTO_B2] ; accès aux clés protégé (HSM/KMS, séparation des rôles).",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 10.5.a",
        "SecNumCloud 10.5.c",
        "CSA CCM CEK-10",
        "CSA CCM CEK-12",
        "CSA CCM CEK-21"
      ],
      "menaces": [
        "Les secrets stockés dans un coffre cloud (Secrets Manager, Key Vault) sont lus grâce à des droits excessifs ou un rôle compromis. Le coffre concentre la valeur : un accès indu y donne les clés du royaume (ATT&CK T1555.006)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/chiffrement-cles/#socle-cld-chf-3"
    },
    {
      "id": "SOCLE-CLD-CHF-4",
      "n": 4,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CHF",
      "famille_nom": "Chiffrement & clés",
      "famille_ordre": 6,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "clés de chiffrement gérées par le client (BYOK/HYOK) pour les données sensibles, hors du contrôle exclusif du fournisseur.",
      "preuve": "Gestion des clés par le client (BYOK/HYOK) documentée pour les données sensibles.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 10.5.a",
        "SecNumCloud 10.5.c",
        "CSA CCM CEK-08"
      ],
      "menaces": [
        "L'attaquant accède aux objets d'un stockage cloud (buckets, volumes) mal protégés pour exfiltrer des données. Une exposition publique ou des droits trop larges suffisent (ATT&CK T1530).",
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/chiffrement-cles/#socle-cld-chf-4"
    },
    {
      "id": "SOCLE-CLD-CHF-5",
      "n": 5,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CHF",
      "famille_nom": "Chiffrement & clés",
      "famille_ordre": 6,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "certificats issus d'une autorité de certification d'un État membre de l'Union européenne.",
      "preuve": "Chaîne de certificats ancrée sur une AC d'un État membre de l'UE.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 10.6.a"
      ],
      "menaces": [
        "L'attaquant accède aux objets d'un stockage cloud (buckets, volumes) mal protégés pour exfiltrer des données. Une exposition publique ou des droits trop larges suffisent (ATT&CK T1530).",
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/chiffrement-cles/#socle-cld-chf-5"
    },
    {
      "id": "SOCLE-CLD-CMP-1",
      "n": 1,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CMP",
      "famille_nom": "Compute & instances",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "chaque instance est associée à un groupe de sécurité restrictif (refus par défaut).",
      "preuve": "Chaque instance porte un groupe de sécurité ; refus par défaut vérifié.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 13.2.e",
        "ANSSI-BP-028 R37",
        "ISO 27017 (CLD.9.5.2)"
      ],
      "menaces": [
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/compute-instances/#socle-cld-cmp-1"
    },
    {
      "id": "SOCLE-CLD-CMP-2",
      "n": 2,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CMP",
      "famille_nom": "Compute & instances",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "métadonnées d'instance (IMDS) protégées : IMDSv2 imposé (hop limit à 1, IMDSv1 désactivé) là où il existe ; à défaut, blocage réseau de l'IMDS pour les charges sans besoin.",
      "preuve": "Selon le cloud : IMDSv2+hop limit (AWS) ou blocage réseau IMDS + rôle minimal (Outscale) ; pas de secret en user-data. Réf. references/standards/metadata-cloud.md.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 10.5.c",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un job de build atteint le service de métadonnées d'instance (IMDS) pour récupérer les identifiants de rôle de la machine et pivoter vers le cloud. Sans IMDSv2 ni blocage réseau, le pipeline hérite des droits de l'hôte (ATT&CK T1552.005).",
        "Depuis un cluster Kubernetes, l'attaquant pivote vers le plan cloud sous-jacent via l'IMDS ou des identités de nœud, étendant l'accès au tenant. La frontière cluster / cloud est un chemin d'escalade (OWASP K08, ATT&CK T1552.005)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/compute-instances/#socle-cld-cmp-2"
    },
    {
      "id": "SOCLE-CLD-CMP-3",
      "n": 3,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CMP",
      "famille_nom": "Compute & instances",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "séparation des environnements de production et de développement/hors-production.",
      "preuve": "Environnements de production et de développement séparés (logiquement ou physiquement).",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 12.3.a",
        "CSA CCM IVS-05"
      ],
      "menaces": [
        "L'attaquant modifie la configuration du compute (images, instances, groupes) pour persister ou affaiblir la posture. L'infrastructure mutable devient un point d'ancrage (ATT&CK T1578)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/compute-instances/#socle-cld-cmp-3"
    },
    {
      "id": "SOCLE-CLD-CMP-4",
      "n": 4,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CMP",
      "famille_nom": "Compute & instances",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "mesures de détection, prévention et remédiation des codes malveillants, couvrant les postes et les flux entrants.",
      "preuve": "Protection anti-codes malveillants déployée (postes + flux entrants).",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 12.4.a",
        "SecNumCloud 12.4.b"
      ],
      "menaces": [
        "Un conteneur malveillant est déployé dans le cluster ou le service cloud pour exécuter du code dans le périmètre de confiance. Les droits de déploiement détournés introduisent la charge (ATT&CK T1610)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/compute-instances/#socle-cld-cmp-4"
    },
    {
      "id": "SOCLE-CLD-CMP-5",
      "n": 5,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CMP",
      "famille_nom": "Compute & instances",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "veille et suivi des vulnérabilités des logiciels et systèmes ; évaluation de l'exposition et traitement du risque.",
      "preuve": "Processus de veille vulnérabilités ; exposition évaluée et traitée.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 12.11.a",
        "SecNumCloud 12.11.b"
      ],
      "menaces": [
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/compute-instances/#socle-cld-cmp-5"
    },
    {
      "id": "SOCLE-CLD-CMP-6",
      "n": 6,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CMP",
      "famille_nom": "Compute & instances",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "tâches d'administration réalisées depuis des terminaux dédiés et durcis, réservés à cet usage.",
      "preuve": "Postes d'administration dédiés et durcis (conformes [NT_ADMIN]).",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 12.12.a",
        "SecNumCloud 12.12.b",
        "ISO 27017 (CLD.12.1.5)"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/compute-instances/#socle-cld-cmp-6"
    },
    {
      "id": "SOCLE-CLD-CMP-7",
      "n": 7,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CMP",
      "famille_nom": "Compute & instances",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "durcissement de l'OS hôte/invité, de l'hyperviseur et du plan de contrôle selon les bonnes pratiques (CIS / ANSSI).",
      "preuve": "Configuration durcie (OS/hyperviseur/plan de contrôle) vérifiée selon référentiel (CIS/ANSSI).",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "CSA CCM IVS-04",
        "SecNumCloud 5.1.b",
        "ISO 27017 (CLD.9.5.2)"
      ],
      "menaces": [
        "L'attaquant modifie la configuration du compute (images, instances, groupes) pour persister ou affaiblir la posture. L'infrastructure mutable devient un point d'ancrage (ATT&CK T1578).",
        "Un conteneur exploite une mauvaise configuration ou une faille pour s'échapper vers le nœud hôte du cluster et atteindre d'autres charges. Le cloisonnement du cluster est rompu (ATT&CK T1611).",
        "Un attaquant ayant obtenu l'exécution sur un hôte implante une persistance furtive au niveau du noyau ou du système : programme eBPF malveillant, extension système (systemd-sysext), module noyau ou hook de chargement. Le code survit aux redéploiements applicatifs, masque ses processus et connexions, et intercepte secrets et trafic. Les contrôles applicatifs et l'analyse d'image ne le voient pas : il vit sous la charge de travail, dans le plan hôte."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/compute-instances/#socle-cld-cmp-7"
    },
    {
      "id": "SOCLE-CLD-CMP-8",
      "n": 8,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CMP",
      "famille_nom": "Compute & instances",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "rôle d'instance (identité machine cloud) au strict minimum de privilèges.",
      "preuve": "Revue des rôles d'instance ; absence de droits larges.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 10.5.c",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un job de build atteint le service de métadonnées d'instance (IMDS) pour récupérer les identifiants de rôle de la machine et pivoter vers le cloud. Sans IMDSv2 ni blocage réseau, le pipeline hérite des droits de l'hôte (ATT&CK T1552.005).",
        "Depuis un cluster Kubernetes, l'attaquant pivote vers le plan cloud sous-jacent via l'IMDS ou des identités de nœud, étendant l'accès au tenant. La frontière cluster / cloud est un chemin d'escalade (OWASP K08, ATT&CK T1552.005)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/compute-instances/#socle-cld-cmp-8"
    },
    {
      "id": "SOCLE-CLD-CMP-9",
      "n": 9,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "CMP",
      "famille_nom": "Compute & instances",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "aucun secret en clair dans les user-data des instances.",
      "preuve": "Inspection des user-data ; aucun secret présent.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 10.5.c",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un job de build atteint le service de métadonnées d'instance (IMDS) pour récupérer les identifiants de rôle de la machine et pivoter vers le cloud. Sans IMDSv2 ni blocage réseau, le pipeline hérite des droits de l'hôte (ATT&CK T1552.005)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/compute-instances/#socle-cld-cmp-9"
    },
    {
      "id": "SOCLE-CLD-GEN-1",
      "n": 1,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "inventaire des comptes et ressources cloud tenu à jour ; posture de l'infrastructure d'exécution auditée en continu (CSPM).",
      "preuve": "Inventaire des comptes/ressources cloud ; rapports d'audit de posture (CSPM) datés.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 8.1",
        "CIS Controls v8",
        "ISO 27001 (A.5.9)",
        "PCI-DSS Req 1",
        "HDS"
      ],
      "menaces": [
        "L'attaquant crée un instantané ou clone d'un disque, d'une base ou d'une image et le partage vers son compte pour en extraire les données. La fonctionnalité de sauvegarde sert de canal d'exfiltration (ATT&CK T1578.001).",
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496).",
        "L'attaquant opère dans des régions cloud non utilisées ni surveillées par l'organisation pour échapper à la détection. Les angles morts géographiques deviennent une base arrière (ATT&CK T1535).",
        "L'attaquant modifie la configuration du compute (images, instances, groupes) pour persister ou affaiblir la posture. L'infrastructure mutable devient un point d'ancrage (ATT&CK T1578)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/#socle-cld-gen-1"
    },
    {
      "id": "SOCLE-CLD-GEN-2",
      "n": 2,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "IAM cloud au moindre privilège : MFA sur les accès d'administration, pas de clé d'accès longue durée non tournée, pas de privilège joker.",
      "preuve": "Politiques IAM cloud (moindre privilège), configuration MFA, inventaire et rotation des clés.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 9.1.a",
        "SecNumCloud 9.5.a",
        "ANSSI-BP-028",
        "CIS Controls v8 6.8",
        "PCI-DSS Req 1",
        "HDS"
      ],
      "menaces": [
        "Une combinaison de permissions IAM individuellement anodines forme un chemin d'élévation ou d'accès non prévu (combinaison toxique). Le risque émerge de l'assemblage des droits, pas d'une permission isolée (ATT&CK T1078.004)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/#socle-cld-gen-2"
    },
    {
      "id": "SOCLE-CLD-GEN-3",
      "n": 3,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "aucune ressource exposée publiquement par défaut : ports d'administration fermés sur Internet, stockage objet privé.",
      "preuve": "Revue des groupes de sécurité et des ACL de stockage : absence d'exposition publique.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 13.2",
        "SecNumCloud 13.3",
        "ANSSI-BP-028 R67",
        "CIS Controls v8 4.4",
        "PCI-DSS Req 1",
        "HDS"
      ],
      "menaces": [
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/#socle-cld-gen-3"
    },
    {
      "id": "SOCLE-CLD-GEN-4",
      "n": 4,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "chiffrement au repos et en transit activé ; journalisation des événements de sécurité centralisée.",
      "preuve": "Preuves de chiffrement au repos/transit ; configuration de la journalisation centralisée.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 10.1",
        "SecNumCloud 10.2",
        "SecNumCloud 12.1",
        "PCI-DSS Req 1",
        "HDS"
      ],
      "menaces": [
        "L'attaquant accède aux objets d'un stockage cloud (buckets, volumes) mal protégés pour exfiltrer des données. Une exposition publique ou des droits trop larges suffisent (ATT&CK T1530)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/#socle-cld-gen-4"
    },
    {
      "id": "SOCLE-CLD-GVN-1",
      "n": 1,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "ressources étiquetées (propriétaire, projet, environnement) pour l'inventaire et la responsabilité.",
      "preuve": "Étiquettes obligatoires présentes (propriétaire, projet, environnement).",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "SecNumCloud 8.1.a",
        "ANSSI-BP-028 R1",
        "ISO 27017 (CLD.6.3.1)"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-1"
    },
    {
      "id": "SOCLE-CLD-GVN-10",
      "n": 10,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "demandes d'accès des autorités encadrées : transparence, notification au client quand le droit l'autorise, vérification de la base légale et de la juridiction (résistance à l'extraterritorialité).",
      "preuve": "Procédure de traitement des réquisitions ; registre des demandes ; notification client documentée.",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "BSI C5 (INQ)",
        "SecNumCloud 19.6.a",
        "SecNumCloud 19.2.c"
      ],
      "menaces": [
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-10"
    },
    {
      "id": "SOCLE-CLD-GVN-11",
      "n": 11,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "réversibilité et portabilité : export des données en formats ouverts et documentés, sans verrouillage propriétaire ; capacité de récupération en fin de contrat.",
      "preuve": "Plan de réversibilité ; formats d'export ouverts ; test de récupération des données.",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "BSI C5 (PI)",
        "SecNumCloud 19.1.g"
      ],
      "menaces": [
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-11"
    },
    {
      "id": "SOCLE-CLD-GVN-12",
      "n": 12,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "sante"
      ],
      "texte": "restitution et suppression des données personnelles en fin de contrat (réversibilité PII).",
      "preuve": "Procédure de restitution/suppression PII ; preuve d'exécution en fin de contrat.",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "ISO/IEC 27018",
        "SecNumCloud 19.5.a",
        "SecNumCloud 15.1.b"
      ],
      "menaces": [
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-12"
    },
    {
      "id": "SOCLE-CLD-GVN-2",
      "n": 2,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "socle d'hygiène informatique ANSSI (niveau renforcé) appliqué à l'infrastructure d'exécution.",
      "preuve": "Configuration de l'infra conforme au guide d'hygiène ANSSI (niveau renforcé).",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "SecNumCloud 5.1.b",
        "ANSSI [HYGIENE]"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-2"
    },
    {
      "id": "SOCLE-CLD-GVN-3",
      "n": 3,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "localisation du stockage, du traitement et de l'administration des données dans l'Union européenne.",
      "preuve": "Régions et plan de contrôle localisés UE ; administration/supervision opérées depuis l'UE.",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "SecNumCloud 19.2.b",
        "SecNumCloud 19.2.c",
        "SecNumCloud 19.2.d"
      ],
      "menaces": [
        "L'attaquant opère dans des régions cloud non utilisées ni surveillées par l'organisation pour échapper à la détection. Les angles morts géographiques deviennent une base arrière (ATT&CK T1535).",
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-3"
    },
    {
      "id": "SOCLE-CLD-GVN-4",
      "n": 4,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "fournisseur établi dans l'UE et soustrait à un contrôle capitalistique extra-UE déterminant ; exposition aux lois extraterritoriales évaluée.",
      "preuve": "Établissement UE ; structure capitalistique sous les plafonds extra-UE ; analyse d'extraterritorialité.",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "SecNumCloud 19.6.a",
        "SecNumCloud 19.6.b"
      ],
      "menaces": [
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-4"
    },
    {
      "id": "SOCLE-CLD-GVN-5",
      "n": 5,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "programme d'audit de l'infrastructure (configuration + test d'intrusion des interfaces d'administration exposées) ; audit PASSI annuel en contexte qualifié.",
      "preuve": "Programme d'audit pluriannuel ; rapport d'audit PASSI annuel.",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "SecNumCloud 18.2.1.a"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-5"
    },
    {
      "id": "SOCLE-CLD-GVN-6",
      "n": 6,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "sante"
      ],
      "texte": "transparence sur la localisation des données personnelles et la liste des sous-traitants.",
      "preuve": "Documentation de localisation des PII et des sous-traitants ; procédure de restitution/suppression.",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "ISO/IEC 27018",
        "SecNumCloud 19.5.a",
        "SecNumCloud 15.1.b"
      ],
      "menaces": [
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-6"
    },
    {
      "id": "SOCLE-CLD-GVN-7",
      "n": 7,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "notification au client en cas d'accès ou de divulgation des données personnelles ; pas d'usage des PII à des fins de marketing sans consentement.",
      "preuve": "Procédure de notification d'accès/divulgation des PII ; absence d'usage secondaire non consenti.",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "ISO/IEC 27018",
        "SecNumCloud 16.2.c"
      ],
      "menaces": [
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-7"
    },
    {
      "id": "SOCLE-CLD-GVN-8",
      "n": 8,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "régions cloud non utilisées désactivées ou restreintes (ex. SCP region-deny) pour réduire la surface d'attaque et la collecte furtive.",
      "preuve": "Restriction effective des régions non utilisées (réf. ATT&CK T1535).",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "CSA CCM IVS-06"
      ],
      "menaces": [
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496).",
        "L'attaquant opère dans des régions cloud non utilisées ni surveillées par l'organisation pour échapper à la détection. Les angles morts géographiques deviennent une base arrière (ATT&CK T1535)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-8"
    },
    {
      "id": "SOCLE-CLD-GVN-9",
      "n": 9,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire cloud",
      "famille_ordre": 8,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "couverture complète de la découverte cloud (tous comptes, régions et ressources) rapprochée de l'inventaire pour détecter les actifs non gérés (shadow IT).",
      "preuve": "Découverte exhaustive (comptes/régions) ; écarts inventaire/découverte traités (shadow IT).",
      "outils": [
        "Pépin"
      ],
      "standards": [
        "SecNumCloud 8.1.a",
        "CSA Top Threats 2024 #9"
      ],
      "menaces": [
        "L'attaquant opère dans des régions cloud non utilisées ni surveillées par l'organisation pour échapper à la détection. Les angles morts géographiques deviennent une base arrière (ATT&CK T1535)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/gouvernance-inventaire-cloud/#socle-cld-gvn-9"
    },
    {
      "id": "SOCLE-CLD-IAM-1",
      "n": 1,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "interdire les identités et clés à privilèges excessifs : politiques sans action/ressource joker (« * », NotAction/NotResource), aucune clé d'API rattachée au compte root.",
      "preuve": "Revue des politiques IAM (absence de joker/anti-pattern) ; absence de clé rattachée au root.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "SecNumCloud 9.3.a",
        "SecNumCloud 9.3.f",
        "ANSSI-BP-028 R10",
        "ANSSI-BP-028 R13",
        "CSA CCM IAM-05",
        "CIS Controls v8 6.7",
        "CIS Controls v8 6.8"
      ],
      "menaces": [
        "Une combinaison de permissions IAM individuellement anodines forme un chemin d'élévation ou d'accès non prévu (combinaison toxique). Le risque émerge de l'assemblage des droits, pas d'une permission isolée (ATT&CK T1078.004).",
        "L'attaquant modifie la configuration du compute (images, instances, groupes) pour persister ou affaiblir la posture. L'infrastructure mutable devient un point d'ancrage (ATT&CK T1578)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-1"
    },
    {
      "id": "SOCLE-CLD-IAM-10",
      "n": 10,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "identités uniques et nominatives : aucun compte partagé ; toute action rattachable à un individu.",
      "preuve": "Comptes nominatifs ; absence de comptes génériques partagés ; traçabilité par identité.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "CSA CCM IAM-13",
        "SecNumCloud 9.5.d",
        "ISO 27001 (A.5.16)"
      ],
      "menaces": [
        "L'attaquant crée des identifiants, rôles ou comptes cloud supplémentaires pour conserver un accès durable, même après remédiation de l'intrusion initiale (ATT&CK T1098). La persistance s'ancre dans l'IAM du tenant."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-10"
    },
    {
      "id": "SOCLE-CLD-IAM-11",
      "n": 11,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "politique de mots de passe robuste (longueur, complexité, anti-rejeu) quand l'authentification par mot de passe est utilisée.",
      "preuve": "Politique de mots de passe robuste appliquée (conforme [NT_MDP]).",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "CSA CCM IAM-02",
        "CSA CCM IAM-15",
        "SecNumCloud 9.5.a"
      ],
      "menaces": [
        "Le MFA est contourné ou désactivé (enregistrement d'un facteur attaquant, exceptions) pour pérenniser un accès aux comptes. L'authentification forte annulée rouvre les comptes (ATT&CK T1556.006)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-11"
    },
    {
      "id": "SOCLE-CLD-IAM-12",
      "n": 12,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "aucune politique IAM ne permet une élévation de privilèges (PassRole non scopé, droits de création/modification de politiques ou de rôles, etc.) ; chemins de privesc identifiés et fermés.",
      "preuve": "Analyse des politiques IAM : absence de combinaison permettant une escalade (réf. labs type iam-vulnerable).",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "CSA CCM IAM-05",
        "CSA CCM IAM-16",
        "CIS Controls v8 6.8"
      ],
      "menaces": [
        "Une combinaison de permissions IAM individuellement anodines forme un chemin d'élévation ou d'accès non prévu (combinaison toxique). Le risque émerge de l'assemblage des droits, pas d'une permission isolée (ATT&CK T1078.004).",
        "L'attaquant crée des identifiants, rôles ou comptes cloud supplémentaires pour conserver un accès durable, même après remédiation de l'intrusion initiale (ATT&CK T1098). La persistance s'ancre dans l'IAM du tenant.",
        "Un mécanisme d'élévation juste-à-temps (JIT) est détourné pour obtenir des privilèges au-delà du besoin, le temps d'agir. La commodité du JIT devient un chemin d'élévation (ATT&CK T1548.005)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-12"
    },
    {
      "id": "SOCLE-CLD-IAM-13",
      "n": 13,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "désactivation des identifiants inutilisés : clés d'accès inactives et comptes dormants supprimés ou désactivés au-delà d'un seuil défini.",
      "preuve": "Revue des clés/identités inactives ; désactivation au-delà du seuil documenté.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "CSA CCM IAM-07",
        "CSA CCM IAM-08"
      ],
      "menaces": [
        "L'attaquant crée des identifiants, rôles ou comptes cloud supplémentaires pour conserver un accès durable, même après remédiation de l'intrusion initiale (ATT&CK T1098). La persistance s'ancre dans l'IAM du tenant."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-13"
    },
    {
      "id": "SOCLE-CLD-IAM-14",
      "n": 14,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "cartographie et réduction des chemins d'attaque IAM (combinaisons toxiques identité → ressource), au-delà du contrôle unitaire des politiques.",
      "preuve": "Analyse des chemins d'attaque/élévation (graphe IAM) ; combinaisons toxiques traitées.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "CSA CCM IAM-05",
        "CSA CCM IAM-09"
      ],
      "menaces": [
        "Une combinaison de permissions IAM individuellement anodines forme un chemin d'élévation ou d'accès non prévu (combinaison toxique). Le risque émerge de l'assemblage des droits, pas d'une permission isolée (ATT&CK T1078.004)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-14"
    },
    {
      "id": "SOCLE-CLD-IAM-15",
      "n": 15,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "accès privilégié juste-à-temps (JIT) : élévation temporaire, approuvée et tracée ; aucun privilège d'administration permanent.",
      "preuve": "Mécanisme JIT en place ; absence de rôles d'admin permanents ; élévations tracées.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "CSA CCM IAM-10",
        "SecNumCloud 9.6.a"
      ],
      "menaces": [
        "Un mécanisme d'élévation juste-à-temps (JIT) est détourné pour obtenir des privilèges au-delà du besoin, le temps d'agir. La commodité du JIT devient un chemin d'élévation (ATT&CK T1548.005)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-15"
    },
    {
      "id": "SOCLE-CLD-IAM-16",
      "n": 16,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "réduction des permissions effectives jamais utilisées (right-sizing des entitlements) sur la base de l'usage observé.",
      "preuve": "Analyse des permissions effectives vs usage ; droits inutilisés retirés.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "CSA CCM IAM-05",
        "CSA CCM IAM-08"
      ],
      "menaces": [
        "Une combinaison de permissions IAM individuellement anodines forme un chemin d'élévation ou d'accès non prévu (combinaison toxique). Le risque émerge de l'assemblage des droits, pas d'une permission isolée (ATT&CK T1078.004)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-16"
    },
    {
      "id": "SOCLE-CLD-IAM-2",
      "n": 2,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "clés d'accès longue durée assorties d'une expiration et d'une rotation ; préférer une identité courte (OIDC) aux secrets statiques.",
      "preuve": "Politique d'expiration/rotation des clés ; usage d'identités OIDC courtes.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "SecNumCloud 9.5.a",
        "SecNumCloud 9.3.g",
        "ANSSI-BP-028 R11",
        "CIS Controls v8 5.3"
      ],
      "menaces": [
        "Une combinaison de permissions IAM individuellement anodines forme un chemin d'élévation ou d'accès non prévu (combinaison toxique). Le risque émerge de l'assemblage des droits, pas d'une permission isolée (ATT&CK T1078.004)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-2"
    },
    {
      "id": "SOCLE-CLD-IAM-3",
      "n": 3,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "authentification multifacteur (MFA) imposée sur tous les accès d'administration et la console cloud.",
      "preuve": "Configuration MFA sur les comptes d'administration et la console ; double facteur pour l'admin.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "SecNumCloud 9.5.a",
        "SecNumCloud 9.6.f",
        "CSA CCM IAM-14",
        "CIS Controls v8 6.5"
      ],
      "menaces": [
        "Le MFA est contourné ou désactivé (enregistrement d'un facteur attaquant, exceptions) pour pérenniser un accès aux comptes. L'authentification forte annulée rouvre les comptes (ATT&CK T1556.006)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-3"
    },
    {
      "id": "SOCLE-CLD-IAM-4",
      "n": 4,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "accès à l'API du compte restreint par liste d'adresses IP : au moins une règle définie, aucune ouverte à 0.0.0.0/0 - sans quoi une clé fuitée est exploitable de partout.",
      "preuve": "Liste d'accès API restreinte à des IP légitimes ; pas de règle ouverte à Internet.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "SecNumCloud 9.6.d",
        "SecNumCloud 13.2.e",
        "ANSSI-BP-028 R67"
      ],
      "menaces": [
        "Une combinaison de permissions IAM individuellement anodines forme un chemin d'élévation ou d'accès non prévu (combinaison toxique). Le risque émerge de l'assemblage des droits, pas d'une permission isolée (ATT&CK T1078.004).",
        "L'attaquant crée des identifiants, rôles ou comptes cloud supplémentaires pour conserver un accès durable, même après remédiation de l'intrusion initiale (ATT&CK T1098). La persistance s'ancre dans l'IAM du tenant."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-4"
    },
    {
      "id": "SOCLE-CLD-IAM-5",
      "n": 5,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "blocage du compte après un nombre limité de tentatives d'authentification infructueuses.",
      "preuve": "Politique de verrouillage de compte configurée sur l'IAM cloud.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "SecNumCloud 9.5.b"
      ],
      "menaces": [
        "Le MFA est contourné ou désactivé (enregistrement d'un facteur attaquant, exceptions) pour pérenniser un accès aux comptes. L'authentification forte annulée rouvre les comptes (ATT&CK T1556.006)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-5"
    },
    {
      "id": "SOCLE-CLD-IAM-6",
      "n": 6,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "interfaces et API d'administration non exposées sur un réseau public ; accès via bastion ou plage d'administration restreinte.",
      "preuve": "Interfaces d'admin non joignables depuis Internet ; accès restreint (bastion / CIDR d'admin).",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "SecNumCloud 9.6.d",
        "SecNumCloud 5.3.c"
      ],
      "menaces": [
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496).",
        "L'attaquant utilise les API d'administration (kubectl exec, équivalents) pour exécuter des commandes dans des conteneurs en place. Les droits d'exec mal restreints donnent un accès direct aux charges (ATT&CK T1609)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-6"
    },
    {
      "id": "SOCLE-CLD-IAM-7",
      "n": 7,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "flux d'administration authentifiés et chiffrés de bout en bout.",
      "preuve": "Flux d'administration via canal authentifié et chiffré (TLS/SSH).",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "SecNumCloud 9.6.e",
        "SecNumCloud 10.2.c"
      ],
      "menaces": [
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-7"
    },
    {
      "id": "SOCLE-CLD-IAM-8",
      "n": 8,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "revue périodique (au moins annuelle) des droits d'accès cloud ; retrait à la sortie ; capacité de révocation/suspension.",
      "preuve": "Revue documentée des droits ; procédure de retrait/révocation testée.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "SecNumCloud 9.4.a",
        "SecNumCloud 9.3.g",
        "CSA CCM IAM-07",
        "CSA CCM IAM-08"
      ],
      "menaces": [
        "L'attaquant crée des identifiants, rôles ou comptes cloud supplémentaires pour conserver un accès durable, même après remédiation de l'intrusion initiale (ATT&CK T1098). La persistance s'ancre dans l'IAM du tenant."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-8"
    },
    {
      "id": "SOCLE-CLD-IAM-9",
      "n": 9,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "IAM",
      "famille_nom": "IAM & accès cloud",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "séparation des tâches : aucun cumul de droits incompatibles ; comptes d'administration distincts des comptes d'usage courant.",
      "preuve": "Droits incompatibles définis ; comptes d'admin séparés des comptes utilisateurs.",
      "outils": [
        "Pépin",
        "Prowler",
        "ScoutSuite"
      ],
      "standards": [
        "SecNumCloud 9.3.f",
        "SecNumCloud 9.6.a",
        "CSA CCM IAM-04",
        "CSA CCM IAM-09"
      ],
      "menaces": [
        "Une combinaison de permissions IAM individuellement anodines forme un chemin d'élévation ou d'accès non prévu (combinaison toxique). Le risque émerge de l'assemblage des droits, pas d'une permission isolée (ATT&CK T1078.004)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/iam-acces-cloud/#socle-cld-iam-9"
    },
    {
      "id": "SOCLE-CLD-K8S-1",
      "n": 1,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "serveur d'API du cluster Kubernetes managé non exposé à Internet (liste d'autorisation restreinte).",
      "preuve": "Liste d'autorisation de l'API server restreinte aux CIDR d'administration.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "SecNumCloud 9.6.d",
        "ANSSI-BP-028 R12",
        "CIS Controls v8 13.4"
      ],
      "menaces": [
        "Un conteneur malveillant est déployé dans le cluster ou le service cloud pour exécuter du code dans le périmètre de confiance. Les droits de déploiement détournés introduisent la charge (ATT&CK T1610).",
        "L'attaquant utilise les API d'administration (kubectl exec, équivalents) pour exécuter des commandes dans des conteneurs en place. Les droits d'exec mal restreints donnent un accès direct aux charges (ATT&CK T1609)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-1"
    },
    {
      "id": "SOCLE-CLD-K8S-10",
      "n": 10,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "secrets Kubernetes gérés via un coffre externe ; jamais en clair dans les manifests ou les variables d'environnement ; montés en fichiers et tournés.",
      "preuve": "Secrets via coffre externe (CSI/External Secrets) ; absence de secret en clair dans les manifests/env.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "CIS Kubernetes Benchmark 5.4.1",
        "CIS Kubernetes Benchmark 5.4.2",
        "OWASP Kubernetes K03"
      ],
      "menaces": [
        "Les secrets stockés dans un coffre cloud (Secrets Manager, Key Vault) sont lus grâce à des droits excessifs ou un rôle compromis. Le coffre concentre la valeur : un accès indu y donne les clés du royaume (ATT&CK T1555.006).",
        "Depuis un cluster Kubernetes, l'attaquant pivote vers le plan cloud sous-jacent via l'IMDS ou des identités de nœud, étendant l'accès au tenant. La frontière cluster / cloud est un chemin d'escalade (OWASP K08, ATT&CK T1552.005)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-10"
    },
    {
      "id": "SOCLE-CLD-K8S-11",
      "n": 11,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "contrôleur de politiques d'admission au niveau cluster (OPA Gatekeeper / Kyverno) en mode bloquant, au-delà des Pod Security Standards.",
      "preuve": "Contrôleur de politiques d'admission déployé en mode enforce ; politiques versionnées.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "CIS Kubernetes Benchmark 5.2.1",
        "OWASP Kubernetes K04"
      ],
      "menaces": [
        "Un conteneur malveillant est déployé dans le cluster ou le service cloud pour exécuter du code dans le périmètre de confiance. Les droits de déploiement détournés introduisent la charge (ATT&CK T1610)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-11"
    },
    {
      "id": "SOCLE-CLD-K8S-12",
      "n": 12,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "identités des pods (IRSA / Workload Identity) scopées au strict nécessaire ; aucun accès cloud large ni accès aux métadonnées (IMDS) du nœud depuis un pod.",
      "preuve": "Rôles cloud liés aux pods au moindre privilège ; IMDS du nœud non joignable depuis les pods.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "CSA CCM IAM-05",
        "OWASP Kubernetes K08"
      ],
      "menaces": [
        "Depuis un cluster Kubernetes, l'attaquant pivote vers le plan cloud sous-jacent via l'IMDS ou des identités de nœud, étendant l'accès au tenant. La frontière cluster / cloud est un chemin d'escalade (OWASP K08, ATT&CK T1552.005)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-12"
    },
    {
      "id": "SOCLE-CLD-K8S-2",
      "n": 2,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "plan de contrôle du cluster Kubernetes managé en haute disponibilité (multi-AZ / multi-master) pour résister à la perte d'une zone.",
      "preuve": "Plan de contrôle Kubernetes managé réparti sur plusieurs zones.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "SecNumCloud 17.2.a",
        "CIS Controls v8 11"
      ],
      "menaces": [
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-2"
    },
    {
      "id": "SOCLE-CLD-K8S-3",
      "n": 3,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "hygiène de cycle de vie du cluster Kubernetes managé : mises à jour/patches automatiques, version supportée, protection contre la suppression accidentelle.",
      "preuve": "Auto-upgrade activé, version supportée, protection de suppression en place.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "SecNumCloud 12.11.a",
        "ANSSI-BP-028 R12",
        "CIS Controls v8 7.3"
      ],
      "menaces": [
        "Un conteneur exploite une mauvaise configuration ou une faille pour s'échapper vers le nœud hôte du cluster et atteindre d'autres charges. Le cloisonnement du cluster est rompu (ATT&CK T1611)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-3"
    },
    {
      "id": "SOCLE-CLD-K8S-4",
      "n": 4,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "RBAC Kubernetes au moindre privilège : rôle cluster-admin réservé au strict nécessaire, pas de joker dans les Roles/ClusterRoles, service accounts par défaut non utilisés, jetons de SA montés uniquement si nécessaire.",
      "preuve": "Revue RBAC du cluster : cluster-admin restreint, absence de joker, SA par défaut inutilisés.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "CIS Kubernetes Benchmark 5.1.1",
        "CIS Kubernetes Benchmark 5.1.3",
        "CIS Kubernetes Benchmark 5.1.5",
        "CIS Kubernetes Benchmark 5.1.6"
      ],
      "menaces": [
        "Un conteneur malveillant est déployé dans le cluster ou le service cloud pour exécuter du code dans le périmètre de confiance. Les droits de déploiement détournés introduisent la charge (ATT&CK T1610).",
        "L'attaquant utilise les API d'administration (kubectl exec, équivalents) pour exécuter des commandes dans des conteneurs en place. Les droits d'exec mal restreints donnent un accès direct aux charges (ATT&CK T1609)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-4"
    },
    {
      "id": "SOCLE-CLD-K8S-5",
      "n": 5,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "Pod Security Standards appliqués : pas de conteneur privilégié, pas d'élévation de privilèges, exécution non-root, pas de capacités ajoutées ni de volume HostPath ; profil seccomp RuntimeDefault et Security Context.",
      "preuve": "Contrôleur d'admission (Pod Security / politiques) imposant non-root, non-privilégié, seccomp RuntimeDefault.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "CIS Kubernetes Benchmark 5.2.2",
        "CIS Kubernetes Benchmark 5.2.6",
        "CIS Kubernetes Benchmark 5.2.7",
        "CIS Kubernetes Benchmark 5.2.9",
        "CIS Kubernetes Benchmark 5.2.12",
        "CIS Kubernetes Benchmark 4.2.14"
      ],
      "menaces": [
        "Un conteneur malveillant est déployé dans le cluster ou le service cloud pour exécuter du code dans le périmètre de confiance. Les droits de déploiement détournés introduisent la charge (ATT&CK T1610).",
        "Un conteneur exploite une mauvaise configuration ou une faille pour s'échapper vers le nœud hôte du cluster et atteindre d'autres charges. Le cloisonnement du cluster est rompu (ATT&CK T1611)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-5"
    },
    {
      "id": "SOCLE-CLD-K8S-6",
      "n": 6,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "politiques réseau (NetworkPolicy) définies sur toutes les namespaces (refus par défaut) ; CNI compatible.",
      "preuve": "NetworkPolicies default-deny présentes sur chaque namespace.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "CIS Kubernetes Benchmark 5.3.1",
        "CIS Kubernetes Benchmark 5.3.2",
        "CSA CCM IVS-06"
      ],
      "menaces": [
        "Depuis un cluster Kubernetes, l'attaquant pivote vers le plan cloud sous-jacent via l'IMDS ou des identités de nœud, étendant l'accès au tenant. La frontière cluster / cloud est un chemin d'escalade (OWASP K08, ATT&CK T1552.005)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-6"
    },
    {
      "id": "SOCLE-CLD-K8S-7",
      "n": 7,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "durcissement de l'API server Kubernetes : authentification anonyme désactivée, autorisation RBAC, journalisation d'audit activée.",
      "preuve": "API server : anonymous-auth=false, authorization-mode RBAC, audit-log actif.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "CIS Kubernetes Benchmark 1.2.1",
        "CIS Kubernetes Benchmark 1.2.8",
        "CIS Kubernetes Benchmark 1.2.16",
        "CIS Kubernetes Benchmark 3.2.1"
      ],
      "menaces": [
        "L'attaquant utilise les API d'administration (kubectl exec, équivalents) pour exécuter des commandes dans des conteneurs en place. Les droits d'exec mal restreints donnent un accès direct aux charges (ATT&CK T1609)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-7"
    },
    {
      "id": "SOCLE-CLD-K8S-8",
      "n": 8,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "chiffrement au repos des secrets dans etcd via un fournisseur de chiffrement (KMS).",
      "preuve": "encryption-provider-config (KMS) activé pour les secrets etcd.",
      "outils": [
        "kube-bench",
        "Kubescape"
      ],
      "standards": [
        "CIS Kubernetes Benchmark 1.2.27",
        "CIS Kubernetes Benchmark 1.2.28",
        "SecNumCloud 10.1.a"
      ],
      "menaces": [
        "Les secrets stockés dans un coffre cloud (Secrets Manager, Key Vault) sont lus grâce à des droits excessifs ou un rôle compromis. Le coffre concentre la valeur : un accès indu y donne les clés du royaume (ATT&CK T1555.006)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-8"
    },
    {
      "id": "SOCLE-CLD-K8S-9",
      "n": 9,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "K8S",
      "famille_nom": "Orchestration Kubernetes",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "contrôle d'admission imposant des images signées et issues d'un registre autorisé ; déploiement d'images non conformes refusé.",
      "preuve": "Contrôleur d'admission (provenance/signature, allowlist de registres) actif et bloquant.",
      "outils": [
        "Kyverno",
        "cosign"
      ],
      "standards": [
        "CIS Kubernetes Benchmark 5.5.1",
        "CSA CCM IVS-04"
      ],
      "menaces": [
        "Un conteneur malveillant est déployé dans le cluster ou le service cloud pour exécuter du code dans le périmètre de confiance. Les droits de déploiement détournés introduisent la charge (ATT&CK T1610)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/orchestration-kubernetes/#socle-cld-k8s-9"
    },
    {
      "id": "SOCLE-CLD-LOG-1",
      "n": 1,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "LOG",
      "famille_nom": "Journalisation & audit",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "politique de journalisation définie : sources, événements collectés (activité des utilisateurs, modifications de droits, anti-codes malveillants, exceptions, échecs), protection des journaux.",
      "preuve": "Politique de journalisation documentée ; événements de sécurité effectivement collectés.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 12.6.a",
        "SecNumCloud 12.6.b",
        "CSA CCM LOG-01",
        "CSA CCM LOG-07",
        "CIS AWS Foundations 3.1"
      ],
      "menaces": [
        "L'attaquant crée des identifiants, rôles ou comptes cloud supplémentaires pour conserver un accès durable, même après remédiation de l'intrusion initiale (ATT&CK T1098). La persistance s'ancre dans l'IAM du tenant.",
        "L'attaquant désactive ou altère la journalisation (CloudTrail, Audit Logs) pour effacer ses traces et aveugler la détection. La perte de journaux compromet l'investigation et la preuve (ATT&CK T1562).",
        "Le MFA est contourné ou désactivé (enregistrement d'un facteur attaquant, exceptions) pour pérenniser un accès aux comptes. L'authentification forte annulée rouvre les comptes (ATT&CK T1556.006).",
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496).",
        "L'attaquant modifie la configuration du compute (images, instances, groupes) pour persister ou affaiblir la posture. L'infrastructure mutable devient un point d'ancrage (ATT&CK T1578)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/journalisation-audit/#socle-cld-log-1"
    },
    {
      "id": "SOCLE-CLD-LOG-2",
      "n": 2,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "LOG",
      "famille_nom": "Journalisation & audit",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "conservation des journaux pendant au moins six mois, sous réserve des obligations légales.",
      "preuve": "Rétention des journaux ≥ 6 mois configurée et vérifiée.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 12.6.c",
        "CSA CCM LOG-02"
      ],
      "menaces": [
        "L'attaquant désactive ou altère la journalisation (CloudTrail, Audit Logs) pour effacer ses traces et aveugler la détection. La perte de journaux compromet l'investigation et la preuve (ATT&CK T1562)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/journalisation-audit/#socle-cld-log-2"
    },
    {
      "id": "SOCLE-CLD-LOG-3",
      "n": 3,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "LOG",
      "famille_nom": "Journalisation & audit",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "journaux transférés vers un serveur central dédié, sur une machine distincte de celle qui les génère ; intégrité et confidentialité protégées.",
      "preuve": "Journalisation centralisée sur machine dédiée ; protection en intégrité/confidentialité.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 12.7.a",
        "SecNumCloud 12.7.c",
        "CSA CCM LOG-04",
        "CSA CCM LOG-09",
        "CIS AWS Foundations 3.2"
      ],
      "menaces": [
        "L'attaquant désactive ou altère la journalisation (CloudTrail, Audit Logs) pour effacer ses traces et aveugler la détection. La perte de journaux compromet l'investigation et la preuve (ATT&CK T1562)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/journalisation-audit/#socle-cld-log-3"
    },
    {
      "id": "SOCLE-CLD-LOG-4",
      "n": 4,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "LOG",
      "famille_nom": "Journalisation & audit",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "synchronisation des horloges sur une source de temps fiable ; horodatage de chaque événement journalisé.",
      "preuve": "Source de temps synchronisée ; événements horodatés.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 12.8.a",
        "SecNumCloud 12.8.b",
        "CSA CCM LOG-06"
      ],
      "menaces": [
        "L'attaquant désactive ou altère la journalisation (CloudTrail, Audit Logs) pour effacer ses traces et aveugler la détection. La perte de journaux compromet l'investigation et la preuve (ATT&CK T1562)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/journalisation-audit/#socle-cld-log-4"
    },
    {
      "id": "SOCLE-CLD-LOG-5",
      "n": 5,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "LOG",
      "famille_nom": "Journalisation & audit",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "analyse et corrélation des événements pour détecter les incidents ; sondes de détection sur les interconnexions tiers/publiques ; alarmes traitées au moins quotidiennement.",
      "preuve": "Infrastructure d'analyse/corrélation ; sondes sur interconnexions ; traitement quotidien des alarmes.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 12.9.a",
        "SecNumCloud 12.9.c",
        "SecNumCloud 13.3.a",
        "CSA CCM LOG-05",
        "CSA CCM LOG-13",
        "ISO 27017 (CLD.12.4.5)"
      ],
      "menaces": [
        "L'attaquant désactive ou altère la journalisation (CloudTrail, Audit Logs) pour effacer ses traces et aveugler la détection. La perte de journaux compromet l'investigation et la preuve (ATT&CK T1562)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/journalisation-audit/#socle-cld-log-5"
    },
    {
      "id": "SOCLE-CLD-LOG-6",
      "n": 6,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "LOG",
      "famille_nom": "Journalisation & audit",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "journaux de flux réseau (flux VPC/sous-réseaux) activés pour la détection et l'investigation.",
      "preuve": "Flow logs réseau activés et collectés (détection/forensique).",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "CSA CCM LOG-03",
        "SecNumCloud 13.3.a"
      ],
      "menaces": [
        "Les données sont copiées vers un compte ou abonnement cloud contrôlé par l'attaquant, contournant les contrôles de sortie classiques. L'exfiltration reste interne au cloud, difficile à repérer (ATT&CK T1537)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/journalisation-audit/#socle-cld-log-6"
    },
    {
      "id": "SOCLE-CLD-LOG-7",
      "n": 7,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "LOG",
      "famille_nom": "Journalisation & audit",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "journaux protégés contre la désactivation et l'altération : validation d'intégrité, immutabilité, alerte sur arrêt ou modification de la journalisation.",
      "preuve": "Validation d'intégrité/immutabilité des journaux ; alerte sur désactivation (réf. ATT&CK T1685.002).",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "CIS AWS Foundations 3.2",
        "CSA CCM LOG-02"
      ],
      "menaces": [
        "L'attaquant crée des identifiants, rôles ou comptes cloud supplémentaires pour conserver un accès durable, même après remédiation de l'intrusion initiale (ATT&CK T1098). La persistance s'ancre dans l'IAM du tenant.",
        "L'attaquant désactive ou altère la journalisation (CloudTrail, Audit Logs) pour effacer ses traces et aveugler la détection. La perte de journaux compromet l'investigation et la preuve (ATT&CK T1562)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/journalisation-audit/#socle-cld-log-7"
    },
    {
      "id": "SOCLE-CLD-NET-1",
      "n": 1,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "NET",
      "famille_nom": "Exposition & filtrage réseau",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "ports d'administration (SSH, RDP) jamais ouverts à 0.0.0.0/0 : source restreinte à un CIDR d'administration ou à un bastion.",
      "preuve": "Règles de filtrage : ports d'administration restreints à des sources légitimes.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 13.2.e",
        "ANSSI-BP-028 R65",
        "ANSSI-BP-028 R67",
        "CIS Controls v8 4.4"
      ],
      "menaces": [
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/exposition-filtrage-reseau/#socle-cld-net-1"
    },
    {
      "id": "SOCLE-CLD-NET-2",
      "n": 2,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "NET",
      "famille_nom": "Exposition & filtrage réseau",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "aucune règle n'autorise l'ensemble des ports et protocoles depuis Internet (any/any).",
      "preuve": "Absence de règle any/any entrante depuis 0.0.0.0/0.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 13.2.e",
        "ANSSI-BP-028 R65",
        "ANSSI-BP-028 R67",
        "CIS Controls v8 4.4"
      ],
      "menaces": [
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/exposition-filtrage-reseau/#socle-cld-net-2"
    },
    {
      "id": "SOCLE-CLD-NET-3",
      "n": 3,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "NET",
      "famille_nom": "Exposition & filtrage réseau",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "machine portant une IP publique et un filtrage ouvert : exposition directe à Internet proscrite.",
      "preuve": "Aucune instance avec IP publique et groupe de sécurité ouvert à 0.0.0.0/0.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 13.1.a",
        "ANSSI-BP-028 R68",
        "ISO 27017 (CLD.9.5.2)",
        "ISO 27017 (CLD.13.1.4)"
      ],
      "menaces": [
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/exposition-filtrage-reseau/#socle-cld-net-3"
    },
    {
      "id": "SOCLE-CLD-NET-4",
      "n": 4,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "NET",
      "famille_nom": "Exposition & filtrage réseau",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "filtrage sortant maîtrisé : pas de règle de sortie tout-trafic vers 0.0.0.0/0 sans justification (limiter l'exfiltration et les rappels C2).",
      "preuve": "Règles de sortie restreintes ; absence de tout-trafic egress non justifié vers 0.0.0.0/0.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 13.1.a",
        "CIS Controls v8 4.4"
      ],
      "menaces": [
        "Les données sont copiées vers un compte ou abonnement cloud contrôlé par l'attaquant, contournant les contrôles de sortie classiques. L'exfiltration reste interne au cloud, difficile à repérer (ATT&CK T1537).",
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/exposition-filtrage-reseau/#socle-cld-net-4"
    },
    {
      "id": "SOCLE-CLD-NET-5",
      "n": 5,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "NET",
      "famille_nom": "Exposition & filtrage réseau",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "cartographie réseau tenue à jour (schéma niveau 3, interconnexions tiers/publiques) et matrice des flux autorisés (services, protocoles, ports + justification) ; revue au moins annuelle.",
      "preuve": "Cartographie réseau et matrice de flux documentées ; revue annuelle datée.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 13.1.a",
        "SecNumCloud 13.1.b",
        "CSA CCM IVS-08",
        "ISO 27017 (CLD.13.1.4)"
      ],
      "menaces": [
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/exposition-filtrage-reseau/#socle-cld-net-5"
    },
    {
      "id": "SOCLE-CLD-NET-6",
      "n": 6,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "NET",
      "famille_nom": "Exposition & filtrage réseau",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "filtrage de toutes les interfaces d'administration et de supervision : seules les connexions légitimes de la matrice de flux sont admises (refus par défaut) ; pare-feu applicatif devant toute interface d'admin exposée.",
      "preuve": "Filtrage des interfaces d'admin conforme à la matrice ; pare-feu applicatif en place.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 13.2.e",
        "SecNumCloud 13.2.d"
      ],
      "menaces": [
        "L'attaquant utilise les ressources de calcul du tenant pour du minage de cryptomonnaie, générant un coût et signalant souvent une compromission plus large. L'abus financier est parfois le seul symptôme visible (ATT&CK T1496)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/exposition-filtrage-reseau/#socle-cld-net-6"
    },
    {
      "id": "SOCLE-CLD-NET-7",
      "n": 7,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "NET",
      "famille_nom": "Exposition & filtrage réseau",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "cloisonnement des flux internes vis-à-vis des autres SI (séparation physique ou par chiffrement) ; flux d'administration en tunnel chiffré si non cloisonnés physiquement.",
      "preuve": "Flux internes cloisonnés ; flux d'admin en tunnel chiffré le cas échéant.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 13.2.a",
        "SecNumCloud 13.2.b",
        "SecNumCloud 13.2.c",
        "ISO 27017 (CLD.9.5.1)",
        "CSA CCM IVS-06"
      ],
      "menaces": [
        "Les données sont copiées vers un compte ou abonnement cloud contrôlé par l'attaquant, contournant les contrôles de sortie classiques. L'exfiltration reste interne au cloud, difficile à repérer (ATT&CK T1537)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/exposition-filtrage-reseau/#socle-cld-net-7"
    },
    {
      "id": "SOCLE-CLD-NET-8",
      "n": 8,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "NET",
      "famille_nom": "Exposition & filtrage réseau",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "défense réseau en profondeur : détection et réponse aux attaques réseau (IDS/IPS, WAF) en complément du filtrage.",
      "preuve": "Dispositifs de détection/réponse réseau (IDS/IPS, WAF) déployés et supervisés.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "CSA CCM IVS-09",
        "CSA CCM IVS-03"
      ],
      "menaces": [
        "Les données sont copiées vers un compte ou abonnement cloud contrôlé par l'attaquant, contournant les contrôles de sortie classiques. L'exfiltration reste interne au cloud, difficile à repérer (ATT&CK T1537)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/exposition-filtrage-reseau/#socle-cld-net-8"
    },
    {
      "id": "SOCLE-CLD-NET-9",
      "n": 9,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "NET",
      "famille_nom": "Exposition & filtrage réseau",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "interfaces, API et ressources de service exposées inventoriées et authentifiées : aucun endpoint de service, URL de fonction, base de données ou partage inter-comptes accessible sans authentification.",
      "preuve": "Inventaire des interfaces/API exposées ; absence d'accès non authentifié (endpoints, fonctions, DB, partages).",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 9.6.d",
        "CSA Top Threats 2024 #3",
        "CSA Top Threats 2024 #10"
      ],
      "menaces": [
        "Les données sont copiées vers un compte ou abonnement cloud contrôlé par l'attaquant, contournant les contrôles de sortie classiques. L'exfiltration reste interne au cloud, difficile à repérer (ATT&CK T1537)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/exposition-filtrage-reseau/#socle-cld-net-9"
    },
    {
      "id": "SOCLE-CLD-STO-1",
      "n": 1,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "STO",
      "famille_nom": "Stockage & données",
      "famille_ordre": 5,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "stockage objet privé par défaut : aucun bucket accessible publiquement (ACL au groupe AllUsers, politique publique).",
      "preuve": "ACL et politiques de buckets : absence d'accès public (AllUsers).",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 9.7.a",
        "ANSSI-BP-028 R1",
        "CIS Controls v8 3.3",
        "ISO 27017 (CLD.9.5.1)",
        "CIS AWS Foundations 2.1.4"
      ],
      "menaces": [
        "L'attaquant accède aux objets d'un stockage cloud (buckets, volumes) mal protégés pour exfiltrer des données. Une exposition publique ou des droits trop larges suffisent (ATT&CK T1530)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/stockage-donnees/#socle-cld-sto-1"
    },
    {
      "id": "SOCLE-CLD-STO-2",
      "n": 2,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "STO",
      "famille_nom": "Stockage & données",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "instantanés (snapshots) et images disque non partagés publiquement.",
      "preuve": "Aucun instantané/image partagé publiquement.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 9.7.a",
        "ANSSI-BP-028 R1",
        "CIS Controls v8 3.3",
        "ISO 27017 (CLD.9.5.1)"
      ],
      "menaces": [
        "L'attaquant crée un instantané ou clone d'un disque, d'une base ou d'une image et le partage vers son compte pour en extraire les données. La fonctionnalité de sauvegarde sert de canal d'exfiltration (ATT&CK T1578.001)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/stockage-donnees/#socle-cld-sto-2"
    },
    {
      "id": "SOCLE-CLD-STO-3",
      "n": 3,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "STO",
      "famille_nom": "Stockage & données",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "sante"
      ],
      "texte": "sauvegarde régulière des données et de la configuration, chiffrée, avec test de restauration et rétention documentée.",
      "preuve": "Politique de sauvegarde chiffrée ; preuve de test de restauration daté.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 17.2.a",
        "SecNumCloud 17.3.a",
        "SecNumCloud 17.6.a",
        "ANSSI-BP-028 R69"
      ],
      "menaces": [
        "L'attaquant accède aux objets d'un stockage cloud (buckets, volumes) mal protégés pour exfiltrer des données. Une exposition publique ou des droits trop larges suffisent (ATT&CK T1530).",
        "Données et sauvegardes cloud sont chiffrées ou détruites pour extorsion ou sabotage, en exploitant des droits étendus sur le stockage et les clés. La résilience (sauvegardes immuables hors périmètre) conditionne la survie (ATT&CK T1486 / T1490)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/stockage-donnees/#socle-cld-sto-3"
    },
    {
      "id": "SOCLE-CLD-STO-4",
      "n": 4,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "STO",
      "famille_nom": "Stockage & données",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "versioning du stockage objet activé : conservation des versions pour récupérer après suppression ou écrasement (accidentel ou malveillant, ex. rançongiciel).",
      "preuve": "Versioning activé sur les buckets de données critiques.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 17.6.a",
        "CIS Controls v8 11.1"
      ],
      "menaces": [
        "Données et sauvegardes cloud sont chiffrées ou détruites pour extorsion ou sabotage, en exploitant des droits étendus sur le stockage et les clés. La résilience (sauvegardes immuables hors périmètre) conditionne la survie (ATT&CK T1486 / T1490)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/stockage-donnees/#socle-cld-sto-4"
    },
    {
      "id": "SOCLE-CLD-STO-5",
      "n": 5,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "STO",
      "famille_nom": "Stockage & données",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "sauvegarde hors-ligne de la configuration de l'infrastructure (résilience face à un rançongiciel).",
      "preuve": "Sauvegarde de configuration conservée hors-ligne / immuable.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 17.5.a"
      ],
      "menaces": [
        "Données et sauvegardes cloud sont chiffrées ou détruites pour extorsion ou sabotage, en exploitant des droits étendus sur le stockage et les clés. La résilience (sauvegardes immuables hors périmètre) conditionne la survie (ATT&CK T1486 / T1490)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/stockage-donnees/#socle-cld-sto-5"
    },
    {
      "id": "SOCLE-CLD-STO-6",
      "n": 6,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "STO",
      "famille_nom": "Stockage & données",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "effacement sécurisé des données et destruction des clés de chiffrement en fin de contrat ou à la réallocation des ressources.",
      "preuve": "Procédure d'effacement sécurisé ; destruction des clés documentée.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 19.4.a",
        "SecNumCloud 10.1.a",
        "ISO 27017 (CLD.8.1.5)"
      ],
      "menaces": [
        "L'attaquant accède aux objets d'un stockage cloud (buckets, volumes) mal protégés pour exfiltrer des données. Une exposition publique ou des droits trop larges suffisent (ATT&CK T1530)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/stockage-donnees/#socle-cld-sto-6"
    },
    {
      "id": "SOCLE-CLD-STO-7",
      "n": 7,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "STO",
      "famille_nom": "Stockage & données",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "découverte et classification des données sensibles stockées dans le cloud ; exposition de ces données identifiée.",
      "preuve": "Cartographie des données sensibles (classification) et de leur exposition.",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 8.3.a",
        "ISO/IEC 27018"
      ],
      "menaces": [
        "L'attaquant accède aux objets d'un stockage cloud (buckets, volumes) mal protégés pour exfiltrer des données. Une exposition publique ou des droits trop larges suffisent (ATT&CK T1530)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/stockage-donnees/#socle-cld-sto-7"
    },
    {
      "id": "SOCLE-CLD-STO-8",
      "n": 8,
      "domaine": "CLD",
      "domaine_nom": "Posture cloud & infrastructure d'exécution",
      "famille": "STO",
      "famille_nom": "Stockage & données",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "immutabilité des sauvegardes et objets critiques (object lock / WORM, MFA delete) contre la suppression ou le chiffrement malveillant.",
      "preuve": "Object lock / WORM activé sur les sauvegardes critiques (résilience rançongiciel).",
      "outils": [
        "Pépin",
        "Prowler"
      ],
      "standards": [
        "SecNumCloud 12.3",
        "CIS Controls v8 11.1"
      ],
      "menaces": [
        "Données et sauvegardes cloud sont chiffrées ou détruites pour extorsion ou sabotage, en exploitant des droits étendus sur le stockage et les clés. La résilience (sauvegardes immuables hors périmètre) conditionne la survie (ATT&CK T1486 / T1490)."
      ],
      "href": "/docs/securiser/socle/referentiel/cloud/stockage-donnees/#socle-cld-sto-8"
    },
    {
      "id": "SOCLE-CLT-DOC-1",
      "n": 1,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "DOC",
      "famille_nom": "Documentation & partage de connaissance",
      "famille_ordre": 5,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "runbooks et procédures opérationnelles de sécurité à jour pour les composants critiques (build, déploiement, réponse à incident).",
      "preuve": "Runbooks et procédures opérationnelles de sécurité à jour pour les composants critiques (build, déploiement, réponse à incident).",
      "outils": [],
      "standards": [
        "ISO 27001 (A.5.37)",
        "OWASP SAMM",
        "SSDF PO.2"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/documentation-partage-de-connaissance/#socle-clt-doc-1"
    },
    {
      "id": "SOCLE-CLT-DOC-2",
      "n": 2,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "DOC",
      "famille_nom": "Documentation & partage de connaissance",
      "famille_ordre": 5,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "décisions d'architecture de sécurité tracées (ADR) et accessibles à l'équipe.",
      "preuve": "Décisions d'architecture de sécurité tracées (ADR) et accessibles à l'équipe.",
      "outils": [],
      "standards": [
        "ISO 27001 (A.5.37)",
        "OWASP SAMM",
        "SSDF PO.2"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/documentation-partage-de-connaissance/#socle-clt-doc-2"
    },
    {
      "id": "SOCLE-CLT-DOC-3",
      "n": 3,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "DOC",
      "famille_nom": "Documentation & partage de connaissance",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "base de connaissance de sécurité partagée et maintenue (pratiques, configurations de référence, retours d'incidents).",
      "preuve": "Base de connaissance de sécurité partagée et maintenue (pratiques, configurations de référence, retours d'incidents).",
      "outils": [],
      "standards": [
        "ISO 27001 (A.5.37)",
        "OWASP SAMM",
        "SSDF PO.2"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/documentation-partage-de-connaissance/#socle-clt-doc-3"
    },
    {
      "id": "SOCLE-CLT-DOC-4",
      "n": 4,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "DOC",
      "famille_nom": "Documentation & partage de connaissance",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "documentation revue périodiquement et datée ; pas de document obsolète faisant autorité.",
      "preuve": "Documentation revue périodiquement et datée ; pas de document obsolète faisant autorité.",
      "outils": [],
      "standards": [
        "ISO 27001 (A.5.37)",
        "OWASP SAMM",
        "SSDF PO.2"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/documentation-partage-de-connaissance/#socle-clt-doc-4"
    },
    {
      "id": "SOCLE-CLT-FOR-1",
      "n": 1,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "FOR",
      "famille_nom": "Formation & sensibilisation",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "parcours de formation sécurité adapté aux rôles (dev, ops, PO).",
      "preuve": "Parcours par rôle ; suivi des complétions.",
      "outils": [],
      "standards": [
        "SSDF PO.2",
        "OWASP SAMM",
        "SAFECode"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/formation-sensibilisation/#socle-clt-for-1"
    },
    {
      "id": "SOCLE-CLT-FOR-2",
      "n": 2,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "FOR",
      "famille_nom": "Formation & sensibilisation",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "formation au codage sûr renouvelée périodiquement et tracée.",
      "preuve": "Sessions de codage sûr datées et tracées.",
      "outils": [],
      "standards": [
        "SAFECode",
        "OWASP SAMM",
        "SSDF PO.2"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/formation-sensibilisation/#socle-clt-for-2"
    },
    {
      "id": "SOCLE-CLT-FOR-3",
      "n": 3,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "FOR",
      "famille_nom": "Formation & sensibilisation",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "exercices pratiques (drills, CTF internes) pour ancrer les réflexes.",
      "preuve": "Comptes rendus d'exercices.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "OWASP DSOMM"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/formation-sensibilisation/#socle-clt-for-3"
    },
    {
      "id": "SOCLE-CLT-FOR-4",
      "n": 4,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "FOR",
      "famille_nom": "Formation & sensibilisation",
      "famille_ordre": 2,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "programme de montée en compétence mesuré (évaluation des acquis).",
      "preuve": "Évaluation des acquis avant et après formation.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "BSIMM (Governance)"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/formation-sensibilisation/#socle-clt-for-4"
    },
    {
      "id": "SOCLE-CLT-GEN-1",
      "n": 1,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "responsabilité de la sécurité attribuée (ownership) dans les équipes produit.",
      "preuve": "Organigramme ou RACI désignant les responsables sécurité par produit.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "SSDF PO.2",
        "BSIMM (Governance)"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/#socle-clt-gen-1"
    },
    {
      "id": "SOCLE-CLT-GEN-2",
      "n": 2,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "formation à la sécurité du développement pour développeurs et ops, renouvelée.",
      "preuve": "Plan de formation ; registre de participation daté.",
      "outils": [],
      "standards": [
        "SSDF PO.2",
        "OWASP SAMM",
        "SAFECode"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/#socle-clt-gen-2"
    },
    {
      "id": "SOCLE-CLT-GEN-3",
      "n": 3,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "sécurité intégrée à la definition of done (critères de sortie sécurité).",
      "preuve": "Definition of done incluant des critères de sécurité.",
      "outils": [],
      "standards": [
        "OWASP DSOMM",
        "SSDF PO.3"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/#socle-clt-gen-3"
    },
    {
      "id": "SOCLE-CLT-GEN-4",
      "n": 4,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "indicateurs de posture DevSecOps suivis et revus (couverture, délais de correction).",
      "preuve": "Tableau de bord d'indicateurs revu périodiquement.",
      "outils": [],
      "standards": [
        "OWASP DSOMM",
        "OWASP SAMM",
        "BSIMM (Governance)"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/#socle-clt-gen-4"
    },
    {
      "id": "SOCLE-CLT-GEN-5",
      "n": 5,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "référents sécurité (security champions) désignés et animés.",
      "preuve": "Liste des champions ; cadence d'animation.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "BSIMM (Governance)",
        "OWASP DSOMM"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/#socle-clt-gen-5"
    },
    {
      "id": "SOCLE-CLT-MET-1",
      "n": 1,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "MET",
      "famille_nom": "Métriques & pilotage",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "indicateurs de sécurité définis (MTTR des vulnérabilités, couverture SAST/SCA, dette).",
      "preuve": "Définition et suivi des indicateurs clés.",
      "outils": [],
      "standards": [
        "OWASP DSOMM",
        "OWASP SAMM"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/metriques-pilotage/#socle-clt-met-1"
    },
    {
      "id": "SOCLE-CLT-MET-2",
      "n": 2,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "MET",
      "famille_nom": "Métriques & pilotage",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "métriques de vélocité sécurisée inspirées de DORA.",
      "preuve": "Tableau de bord de vélocité intégrant la sécurité.",
      "outils": [],
      "standards": [
        "OWASP DSOMM"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/metriques-pilotage/#socle-clt-met-2"
    },
    {
      "id": "SOCLE-CLT-MET-3",
      "n": 3,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "MET",
      "famille_nom": "Métriques & pilotage",
      "famille_ordre": 4,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "tableau de bord de posture par produit, revu en gouvernance.",
      "preuve": "Tableau de bord par produit présenté en gouvernance.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "BSIMM (Governance)",
        "ISO 27001"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/metriques-pilotage/#socle-clt-met-3"
    },
    {
      "id": "SOCLE-CLT-OWN-1",
      "n": 1,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "OWN",
      "famille_nom": "Ownership & shift-left",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "chaque produit a un responsable sécurité identifié.",
      "preuve": "Responsable sécurité nommé par produit.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "SSDF PO.2"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/ownership-shift-left/#socle-clt-own-1"
    },
    {
      "id": "SOCLE-CLT-OWN-2",
      "n": 2,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "OWN",
      "famille_nom": "Ownership & shift-left",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "les équipes produit traitent leurs findings (shift-left), avec appui d'une équipe transverse.",
      "preuve": "Findings assignés aux équipes produit ; SLA suivis.",
      "outils": [],
      "standards": [
        "OWASP DSOMM",
        "SSDF PO.3"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/ownership-shift-left/#socle-clt-own-2"
    },
    {
      "id": "SOCLE-CLT-OWN-3",
      "n": 3,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "OWN",
      "famille_nom": "Ownership & shift-left",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "réseau de security champions outillé et reconnu.",
      "preuve": "Programme de champions documenté.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "BSIMM (Governance)"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/ownership-shift-left/#socle-clt-own-3"
    },
    {
      "id": "SOCLE-CLT-OWN-4",
      "n": 4,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "OWN",
      "famille_nom": "Ownership & shift-left",
      "famille_ordre": 1,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "objectifs de sécurité intégrés aux objectifs produit et revus en direction.",
      "preuve": "Objectifs de sécurité dans les OKR produit ; revue de direction.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "ISO 27001"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/ownership-shift-left/#socle-clt-own-4"
    },
    {
      "id": "SOCLE-CLT-PRO-1",
      "n": 1,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "PRO",
      "famille_nom": "Processus & rituels",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "sécurité présente dans les rituels (revue, planification) sans bloquer la vélocité.",
      "preuve": "Ordre du jour des rituels incluant la sécurité.",
      "outils": [],
      "standards": [
        "OWASP DSOMM",
        "SSDF PO.3"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/processus-rituels/#socle-clt-pro-1"
    },
    {
      "id": "SOCLE-CLT-PRO-2",
      "n": 2,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "PRO",
      "famille_nom": "Processus & rituels",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "gates de sécurité définies et acceptées (critères, exceptions tracées).",
      "preuve": "Politique de gates ; registre des exceptions.",
      "outils": [],
      "standards": [
        "OWASP DSOMM",
        "NIST 800-204D"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/processus-rituels/#socle-clt-pro-2"
    },
    {
      "id": "SOCLE-CLT-PRO-3",
      "n": 3,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "PRO",
      "famille_nom": "Processus & rituels",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "rétrospectives post-incident sans recherche de coupable (blameless).",
      "preuve": "Comptes rendus post-incident blameless.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "SSDF RV.3"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/processus-rituels/#socle-clt-pro-3"
    },
    {
      "id": "SOCLE-CLT-PRO-4",
      "n": 4,
      "domaine": "CLT",
      "domaine_nom": "Culture, organisation & processus",
      "famille": "PRO",
      "famille_nom": "Processus & rituels",
      "famille_ordre": 3,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "amélioration continue pilotée par les retours d'incidents et d'audits.",
      "preuve": "Plan d'amélioration alimenté par incidents et audits.",
      "outils": [],
      "standards": [
        "ISO 27001",
        "OWASP SAMM"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/culture/processus-rituels/#socle-clt-pro-4"
    },
    {
      "id": "SOCLE-DPL-ADM-1",
      "n": 1,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "ADM",
      "famille_nom": "Contrôle d'admission",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "vérification de signature de l'image/artefact avant déploiement.",
      "preuve": "Vérification de signature à l'admission (cosign/policy-controller).",
      "outils": [
        "Kyverno",
        "Gatekeeper"
      ],
      "standards": [
        "Sigstore",
        "SLSA (vérification)",
        "SLSA"
      ],
      "menaces": [
        "Le build est compromis en amont, si bien que la provenance est techniquement valide mais atteste d'un artefact malveillant. La provenance prouve l'origine, pas l'innocuité : un build corrompu produit une attestation correcte d'un mauvais résultat.",
        "Un artefact non signé, non scanné ou hors politique passe le contrôle d'admission et entre en production. Le dernier filtre avant l'exécution laisse passer ce qu'il devait bloquer."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-adm-1"
    },
    {
      "id": "SOCLE-DPL-ADM-2",
      "n": 2,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "ADM",
      "famille_nom": "Contrôle d'admission",
      "famille_ordre": 1,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "admission restreinte aux artefacts à provenance non falsifiable (L3) pour les charges sensibles.",
      "preuve": "Admission restreinte aux artefacts à provenance L3 pour les charges sensibles.",
      "outils": [
        "Kyverno",
        "Gatekeeper"
      ],
      "standards": [
        "SLSA Build L3",
        "OPA/Kyverno"
      ],
      "menaces": [
        "Le build est compromis en amont, si bien que la provenance est techniquement valide mais atteste d'un artefact malveillant. La provenance prouve l'origine, pas l'innocuité : un build corrompu produit une attestation correcte d'un mauvais résultat.",
        "Un artefact non signé, non scanné ou hors politique passe le contrôle d'admission et entre en production. Le dernier filtre avant l'exécution laisse passer ce qu'il devait bloquer."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-adm-2"
    },
    {
      "id": "SOCLE-DPL-CFG-1",
      "n": 1,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "CFG",
      "famille_nom": "Politiques de configuration sécurisée",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "contrôleur d'admission de politiques (OPA Gatekeeper / Kyverno) en mode bloquant.",
      "preuve": "Contrôleur d'admission (OPA Gatekeeper/Kyverno) en mode bloquant.",
      "outils": [
        "Checkov",
        "KICS",
        "Conftest"
      ],
      "standards": [
        "OPA/Kyverno",
        "NIST 800-204D"
      ],
      "menaces": [
        "Un artefact non signé, non scanné ou hors politique passe le contrôle d'admission et entre en production. Le dernier filtre avant l'exécution laisse passer ce qu'il devait bloquer.",
        "La politique d'admission (vérification de signature, provenance, conformité) est contournée ou désactivée, laissant déployer des artefacts non vérifiés. Une exception ou une faille de configuration neutralise le garde-fou."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-cfg-1"
    },
    {
      "id": "SOCLE-DPL-CFG-2",
      "n": 2,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "CFG",
      "famille_nom": "Politiques de configuration sécurisée",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "segmentation réseau des charges (network policies, default-deny).",
      "preuve": "Network policies default-deny appliquées.",
      "outils": [
        "Checkov",
        "KICS",
        "Conftest"
      ],
      "standards": [
        "NSA/CISA K8s Hardening",
        "NIST 800-207"
      ],
      "menaces": [
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-cfg-2"
    },
    {
      "id": "SOCLE-DPL-CFG-3",
      "n": 3,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "CFG",
      "famille_nom": "Politiques de configuration sécurisée",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "profils d'exécution durcis (seccomp, AppArmor, système de fichiers en lecture seule).",
      "preuve": "Profils seccomp/AppArmor et FS lecture seule appliqués.",
      "outils": [
        "Checkov",
        "KICS",
        "Conftest"
      ],
      "standards": [
        "CIS K8s",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Le manifeste de déploiement est mal configuré (privilèges excessifs, montages sensibles, réseau ouvert), exposant la charge dès sa mise en service. La faiblesse n'est pas dans l'artefact mais dans la façon dont il est déployé (CIS Kubernetes)."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-cfg-3"
    },
    {
      "id": "SOCLE-DPL-GEN-1",
      "n": 1,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "contrôle d'admission : seuls les artefacts signés et conformes sont déployés.",
      "preuve": "Politique d'admission : seuls les artefacts signés et conformes sont déployés.",
      "outils": [
        "Kyverno",
        "Gatekeeper"
      ],
      "standards": [
        "SLSA (vérification)",
        "OWASP CICD-SEC-9",
        "OPA/Kyverno",
        "PCI-DSS Req 2",
        "HDS"
      ],
      "menaces": [
        "Le consommateur n'utilise ni la signature ni la provenance avant de consommer un artefact, annulant tout le bénéfice de leur génération. La chaîne de confiance ne tient que si le dernier maillon vérifie.",
        "Un artefact non signé, non scanné ou hors politique passe le contrôle d'admission et entre en production. Le dernier filtre avant l'exécution laisse passer ce qu'il devait bloquer.",
        "La politique d'admission (vérification de signature, provenance, conformité) est contournée ou désactivée, laissant déployer des artefacts non vérifiés. Une exception ou une faille de configuration neutralise le garde-fou."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-gen-1"
    },
    {
      "id": "SOCLE-DPL-GEN-2",
      "n": 2,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "séparation des privilèges de déploiement ; pas d'accès prod non contrôlé depuis le CI.",
      "preuve": "Séparation des privilèges de déploiement ; absence d'accès prod non contrôlé depuis le CI.",
      "outils": [
        "Kyverno",
        "Gatekeeper"
      ],
      "standards": [
        "OWASP CICD-SEC-2",
        "OWASP CICD-SEC-5",
        "NIST 800-207",
        "PCI-DSS Req 2",
        "HDS"
      ],
      "menaces": [
        "Le manifeste de déploiement est mal configuré (privilèges excessifs, montages sensibles, réseau ouvert), exposant la charge dès sa mise en service. La faiblesse n'est pas dans l'artefact mais dans la façon dont il est déployé (CIS Kubernetes).",
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-gen-2"
    },
    {
      "id": "SOCLE-DPL-GEN-3",
      "n": 3,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "politiques de configuration sécurisée à l'admission (pas de privileged, etc.).",
      "preuve": "Politiques d'admission de configuration sécurisée (pas de privileged, etc.).",
      "outils": [
        "Kyverno",
        "Gatekeeper"
      ],
      "standards": [
        "CIS K8s",
        "NSA/CISA K8s Hardening",
        "PCI-DSS Req 2",
        "HDS"
      ],
      "menaces": [
        "Le manifeste de déploiement est mal configuré (privilèges excessifs, montages sensibles, réseau ouvert), exposant la charge dès sa mise en service. La faiblesse n'est pas dans l'artefact mais dans la façon dont il est déployé (CIS Kubernetes)."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-gen-3"
    },
    {
      "id": "SOCLE-DPL-GEN-4",
      "n": 4,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "vérification de provenance à l'admission contre un builder et une source attendus (allowlist), pas la simple présence d'une attestation.",
      "preuve": "Politique d'admission vérifiant la provenance contre builder/source attendus (allowlist).",
      "outils": [
        "Kyverno",
        "Gatekeeper"
      ],
      "standards": [
        "SLSA (vérification)",
        "in-toto",
        "OPA/Kyverno",
        "PCI-DSS Req 2",
        "HDS"
      ],
      "menaces": [
        "Le build est lancé depuis une source ou un fork non officiel, produisant un artefact d'apparence légitime à partir de code non vérifié. L'origine du build n'est pas garantie sans provenance liant artefact et source.",
        "L'attestation de provenance est forgée ou altérée pour faire croire qu'un artefact provient d'un build légitime. Sans provenance non falsifiable (build isolé, signature), la traçabilité est trompeuse.",
        "Le build est compromis en amont, si bien que la provenance est techniquement valide mais atteste d'un artefact malveillant. La provenance prouve l'origine, pas l'innocuité : un build corrompu produit une attestation correcte d'un mauvais résultat.",
        "Le consommateur n'utilise ni la signature ni la provenance avant de consommer un artefact, annulant tout le bénéfice de leur génération. La chaîne de confiance ne tient que si le dernier maillon vérifie.",
        "L'attaquant publie avec des identifiants d'éditeur valides (volés ou détournés), rendant la publication indistinguable d'une légitime côté registre. La détection repose alors sur le comportement, pas sur l'authentification.",
        "La politique d'admission (vérification de signature, provenance, conformité) est contournée ou désactivée, laissant déployer des artefacts non vérifiés. Une exception ou une faille de configuration neutralise le garde-fou."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-gen-4"
    },
    {
      "id": "SOCLE-DPL-RBK-1",
      "n": 1,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "RBK",
      "famille_nom": "Intégrité, observabilité & rollback",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "artefacts déployés par digest immuable (jamais de tag mutable).",
      "preuve": "Déploiement par digest immuable.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-9",
        "SLSA"
      ],
      "menaces": [
        "L'artefact est modifié après sa construction mais avant sa publication ou son déploiement, échappant aux contrôles appliqués au code source. Sans intégrité de bout en bout, l'artefact livré diffère de celui qui a été buildé.",
        "Un tag mutable (latest, une version) est réécrit pour pointer vers un artefact malveillant, livré aux consommateurs qui font confiance au tag plutôt qu'au digest. La mutabilité brise l'immuabilité attendue d'une version publiée."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-rbk-1"
    },
    {
      "id": "SOCLE-DPL-RBK-2",
      "n": 2,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "RBK",
      "famille_nom": "Intégrité, observabilité & rollback",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "détection de dérive (drift) entre l'état désiré et l'état réel.",
      "preuve": "Dispositif de détection de dérive (drift).",
      "outils": [
        "Argo CD",
        "Flux"
      ],
      "standards": [
        "NIST 800-204D",
        "OWASP CICD-SEC-10"
      ],
      "menaces": [
        "L'artefact est modifié après sa construction mais avant sa publication ou son déploiement, échappant aux contrôles appliqués au code source. Sans intégrité de bout en bout, l'artefact livré diffère de celui qui a été buildé.",
        "Un artefact non signé, non scanné ou hors politique passe le contrôle d'admission et entre en production. Le dernier filtre avant l'exécution laisse passer ce qu'il devait bloquer."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-rbk-2"
    },
    {
      "id": "SOCLE-DPL-RBK-3",
      "n": 3,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "RBK",
      "famille_nom": "Intégrité, observabilité & rollback",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "capacité de rollback et de blocage d'urgence d'un déploiement.",
      "preuve": "Procédure de rollback et de blocage d'urgence testée.",
      "outils": [],
      "standards": [
        "SSDF RV.2",
        "NIST 800-204D"
      ],
      "menaces": [
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-rbk-3"
    },
    {
      "id": "SOCLE-DPL-SEP-1",
      "n": 1,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "SEP",
      "famille_nom": "Séparation & moindre privilège du déploiement",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "déploiement par identité courte / approbation ; aucun credential prod de longue durée dans le pipeline.",
      "preuve": "Déploiement par identité courte/approbation ; pas de credential prod longue durée dans le pipeline.",
      "outils": [],
      "standards": [
        "NIST 800-207",
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Le manifeste de déploiement est mal configuré (privilèges excessifs, montages sensibles, réseau ouvert), exposant la charge dès sa mise en service. La faiblesse n'est pas dans l'artefact mais dans la façon dont il est déployé (CIS Kubernetes).",
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-sep-1"
    },
    {
      "id": "SOCLE-DPL-SEP-2",
      "n": 2,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "SEP",
      "famille_nom": "Séparation & moindre privilège du déploiement",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "déploiement déclaratif (GitOps) tracé et réconcilié.",
      "preuve": "Déploiement GitOps tracé et réconcilié.",
      "outils": [
        "Argo CD",
        "Flux"
      ],
      "standards": [
        "NIST 800-204D",
        "SSDF PO.3"
      ],
      "menaces": [
        "Le manifeste de déploiement est mal configuré (privilèges excessifs, montages sensibles, réseau ouvert), exposant la charge dès sa mise en service. La faiblesse n'est pas dans l'artefact mais dans la façon dont il est déployé (CIS Kubernetes)."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-sep-2"
    },
    {
      "id": "SOCLE-DPL-SEP-3",
      "n": 3,
      "domaine": "DPL",
      "domaine_nom": "Déploiement & admission",
      "famille": "SEP",
      "famille_nom": "Séparation & moindre privilège du déploiement",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "RBAC du cluster / de l'environnement au moindre privilège.",
      "preuve": "RBAC cluster/environnement au moindre privilège.",
      "outils": [],
      "standards": [
        "CIS K8s",
        "NIST 800-207"
      ],
      "menaces": [
        "Le manifeste de déploiement est mal configuré (privilèges excessifs, montages sensibles, réseau ouvert), exposant la charge dès sa mise en service. La faiblesse n'est pas dans l'artefact mais dans la façon dont il est déployé (CIS Kubernetes)."
      ],
      "href": "/docs/securiser/socle/referentiel/deploiement/#socle-dpl-sep-3"
    },
    {
      "id": "SOCLE-FRN-CTR-1",
      "n": 1,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "CTR",
      "famille_nom": "Gouvernance & contractuel",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "clauses de sécurité dans le contrat : exigences, responsabilités, périmètre.",
      "preuve": "Contrat fournisseur comportant des clauses de sécurité explicites.",
      "outils": [],
      "standards": [
        "NIS2 art.21",
        "CRA",
        "ISO 27001",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/gouvernance-contractuel/#socle-frn-ctr-1"
    },
    {
      "id": "SOCLE-FRN-CTR-2",
      "n": 2,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "CTR",
      "famille_nom": "Gouvernance & contractuel",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "droit d'audit et obligation de transparence du fournisseur.",
      "preuve": "Clause de droit d'audit ; preuves de transparence obtenues.",
      "outils": [],
      "standards": [
        "NIS2 art.21",
        "ISO 27001",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/gouvernance-contractuel/#socle-frn-ctr-2"
    },
    {
      "id": "SOCLE-FRN-CTR-3",
      "n": 3,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "CTR",
      "famille_nom": "Gouvernance & contractuel",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "obligation de notification d'incident et délais, alignés CRA/NIS2.",
      "preuve": "Clause de notification d'incident avec délais contractuels.",
      "outils": [],
      "standards": [
        "NIS2 art.21",
        "CRA",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Le canal par lequel le logiciel est distribué (site de téléchargement, CDN, miroir, mise à jour) est compromis pour livrer une version trojanisée aux utilisateurs finaux. La compromission frappe en aval de la production, au plus près des victimes."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/gouvernance-contractuel/#socle-frn-ctr-3"
    },
    {
      "id": "SOCLE-FRN-CTR-4",
      "n": 4,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "CTR",
      "famille_nom": "Gouvernance & contractuel",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "engagement de conformité CRA / NIS2 du fournisseur.",
      "preuve": "Engagement contractuel de conformité CRA/NIS2.",
      "outils": [],
      "standards": [
        "CRA",
        "NIS2 art.21",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/gouvernance-contractuel/#socle-frn-ctr-4"
    },
    {
      "id": "SOCLE-FRN-DEV-1",
      "n": 1,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "DEV",
      "famille_nom": "Développement sécurisé du fournisseur",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "cycle de développement sécurisé documenté (référentiel SSDF).",
      "preuve": "Documentation du SDLC sécurisé du fournisseur (réf. SSDF).",
      "outils": [],
      "standards": [
        "SSDF",
        "NIS2 art.21",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/developpement-securise-du-fournisseur/#socle-frn-dev-1"
    },
    {
      "id": "SOCLE-FRN-DEV-2",
      "n": 2,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "DEV",
      "famille_nom": "Développement sécurisé du fournisseur",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "gestion des vulnérabilités : processus, délais de correction, politique de divulgation.",
      "preuve": "Politique de gestion des vulnérabilités et de divulgation du fournisseur.",
      "outils": [],
      "standards": [
        "SSDF RV",
        "CRA",
        "CSAF",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/developpement-securise-du-fournisseur/#socle-frn-dev-2"
    },
    {
      "id": "SOCLE-FRN-DEV-3",
      "n": 3,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "DEV",
      "famille_nom": "Développement sécurisé du fournisseur",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "pratiques de sécurité du pipeline cohérentes avec l'OWASP CI/CD Top 10.",
      "preuve": "Éléments attestant des pratiques CI/CD du fournisseur.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-1",
        "SSDF PO.3",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Poisoned Pipeline Execution directe : l'attaquant modifie la définition du pipeline (fichier de CI) pour y injecter des commandes exécutées avec les privilèges du build. Le contrôle du fichier de workflow donne le contrôle de l'exécution."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/developpement-securise-du-fournisseur/#socle-frn-dev-3"
    },
    {
      "id": "SOCLE-FRN-DLV-1",
      "n": 1,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "DLV",
      "famille_nom": "Provenance & intégrité des livrables",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "SBOM fourni à chaque livraison (CycloneDX ou SPDX).",
      "preuve": "SBOM reçu pour chaque livraison du fournisseur.",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "CRA",
        "CycloneDX (ECMA-424)",
        "SPDX",
        "SSDF PS.3",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "Le canal par lequel le logiciel est distribué (site de téléchargement, CDN, miroir, mise à jour) est compromis pour livrer une version trojanisée aux utilisateurs finaux. La compromission frappe en aval de la production, au plus près des victimes."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/provenance-integrite-des-livrables/#socle-frn-dlv-1"
    },
    {
      "id": "SOCLE-FRN-DLV-2",
      "n": 2,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "DLV",
      "famille_nom": "Provenance & intégrité des livrables",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "artefacts signés et attestations de provenance (niveau SLSA déclaré et vérifiable).",
      "preuve": "Signatures et attestations de provenance vérifiées à la réception.",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "SLSA Build L2-L3",
        "in-toto",
        "Sigstore",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "L'attestation de provenance est forgée ou altérée pour faire croire qu'un artefact provient d'un build légitime. Sans provenance non falsifiable (build isolé, signature), la traçabilité est trompeuse.",
        "Un installeur officiel et signé est modifié à la source ou au build pour embarquer une charge, distribué via le canal légitime (cas CCleaner, 3CX). La signature valide endort la méfiance."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/provenance-integrite-des-livrables/#socle-frn-dlv-2"
    },
    {
      "id": "SOCLE-FRN-DLV-3",
      "n": 3,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "DLV",
      "famille_nom": "Provenance & intégrité des livrables",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "intégrité vérifiable à la réception (signature, checksum, registre de confiance).",
      "preuve": "Procédure de vérification d'intégrité des livrables fournisseur.",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "SLSA (vérification)",
        "OWASP CICD-SEC-9",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Le canal par lequel le logiciel est distribué (site de téléchargement, CDN, miroir, mise à jour) est compromis pour livrer une version trojanisée aux utilisateurs finaux. La compromission frappe en aval de la production, au plus près des victimes."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/provenance-integrite-des-livrables/#socle-frn-dlv-3"
    },
    {
      "id": "SOCLE-FRN-GEN-1",
      "n": 1,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "tiering des fournisseurs et composants tiers par criticité.",
      "preuve": "Tiering des fournisseurs et composants tiers par criticité.",
      "outils": [],
      "standards": [
        "NIST 800-161 (SR)",
        "NIS2 art.21"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile.",
        "Le mainteneur saborde délibérément son propre composant pour des raisons idéologiques ou politiques (protestware) : code destructeur, messages, ou comportements ciblant certains utilisateurs. La confiance accordée au paquet se retourne contre ses consommateurs lors d'une simple mise à jour (cas node-ipc).",
        "Une dépendance est retirée ou dépubliée (unpublish, yank), cassant les builds et poussant à des substitutions hâtives, parfois vers un remplacement malveillant. La disponibilité de la chaîne est attaquée (cas left-pad)."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/#socle-frn-gen-1"
    },
    {
      "id": "SOCLE-FRN-GEN-2",
      "n": 2,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "évaluation de sécurité proportionnée des fournisseurs critiques.",
      "preuve": "Dossiers d'évaluation de sécurité des fournisseurs critiques.",
      "outils": [],
      "standards": [
        "NIST 800-161 (SR)",
        "CRA",
        "ISO 5230/18974"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile.",
        "Une application OAuth ou intégration SaaS de confiance, au-delà du SCM/CI (CRM, support, observabilité), est compromise ou abusée : consentement OAuth détourné, jetons volés, contournement MFA, pour persister et exfiltrer des données (ex. campagne Salesloft/Drift 2025). La confiance accordée à une intégration tierce devient un accès latéral au SI."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/#socle-frn-gen-2"
    },
    {
      "id": "SOCLE-FRN-GEN-3",
      "n": 3,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "SBOM et attestations exigés des fournisseurs critiques.",
      "preuve": "SBOM et attestations obtenus des fournisseurs critiques.",
      "outils": [],
      "standards": [
        "CRA",
        "SLSA",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "Le canal par lequel le logiciel est distribué (site de téléchargement, CDN, miroir, mise à jour) est compromis pour livrer une version trojanisée aux utilisateurs finaux. La compromission frappe en aval de la production, au plus près des victimes."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/#socle-frn-gen-3"
    },
    {
      "id": "SOCLE-FRN-GEN-4",
      "n": 4,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "clauses contractuelles de sécurité et de notification d'incident.",
      "preuve": "Clauses contractuelles de sécurité et de notification d'incident.",
      "outils": [],
      "standards": [
        "NIS2 art.21",
        "CRA",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Le canal par lequel le logiciel est distribué (site de téléchargement, CDN, miroir, mise à jour) est compromis pour livrer une version trojanisée aux utilisateurs finaux. La compromission frappe en aval de la production, au plus près des victimes."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/#socle-frn-gen-4"
    },
    {
      "id": "SOCLE-FRN-GEN-5",
      "n": 5,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "gouvernance des autorisations OAuth des applications SaaS tierces (CRM, support, marketing) au-delà du SCM/CI : consentements au moindre privilège, inventaire des octrois à l'échelle du tenant, révocation et rotation des jetons de rafraîchissement.",
      "preuve": "Inventaire des applications OAuth autorisées au niveau tenant (portées, propriétaire) ; procédure de révocation testée ; rotation des refresh tokens.",
      "outils": [
        "ScoutSuite",
        "Prowler"
      ],
      "standards": [
        "OWASP CICD-SEC-8",
        "NIST 800-207",
        "NIS2 art.21"
      ],
      "menaces": [
        "Une application OAuth ou intégration SaaS de confiance, au-delà du SCM/CI (CRM, support, observabilité), est compromise ou abusée : consentement OAuth détourné, jetons volés, contournement MFA, pour persister et exfiltrer des données (ex. campagne Salesloft/Drift 2025). La confiance accordée à une intégration tierce devient un accès latéral au SI."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/#socle-frn-gen-5"
    },
    {
      "id": "SOCLE-FRN-OSS-1",
      "n": 1,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "OSS",
      "famille_nom": "Gestion des dépendances open-source",
      "famille_ordre": 4,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "politique de consommation OSS maîtrisée (référentiel S2C2F).",
      "preuve": "Politique de consommation OSS du fournisseur (réf. S2C2F).",
      "outils": [
        "OpenSSF Scorecard"
      ],
      "standards": [
        "S2C2F",
        "OWASP CICD-SEC-3",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Un paquet malveillant porte un nom très proche d'un paquet légitime (faute de frappe, tiret, ordre des mots) pour être installé par erreur. L'attaque mise sur l'inattention au moment d'ajouter une dépendance.",
        "Un paquet exécute du code arbitraire via ses scripts de cycle de vie (postinstall, preinstall) dès l'installation, avant tout usage. L'ajout d'une dépendance suffit à déclencher la charge."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/gestion-des-dependances-open-source/#socle-frn-oss-1"
    },
    {
      "id": "SOCLE-FRN-OSS-2",
      "n": 2,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "OSS",
      "famille_nom": "Gestion des dépendances open-source",
      "famille_ordre": 4,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "suivi des vulnérabilités des dépendances (OSV) et capacité de réaction.",
      "preuve": "Dispositif de suivi des vulnérabilités de dépendances et délais de réaction.",
      "outils": [
        "OpenSSF Scorecard"
      ],
      "standards": [
        "OSV",
        "SSDF RV.1",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "Une dépendance est retirée ou dépubliée (unpublish, yank), cassant les builds et poussant à des substitutions hâtives, parfois vers un remplacement malveillant. La disponibilité de la chaîne est attaquée (cas left-pad)."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/gestion-des-dependances-open-source/#socle-frn-oss-2"
    },
    {
      "id": "SOCLE-FRN-OSS-3",
      "n": 3,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "OSS",
      "famille_nom": "Gestion des dépendances open-source",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "verrouillage des versions et reproductibilité des dépendances.",
      "preuve": "Lockfiles et preuve de reproductibilité fournis.",
      "outils": [
        "OpenSSF Scorecard"
      ],
      "standards": [
        "S2C2F",
        "SLSA",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/gestion-des-dependances-open-source/#socle-frn-oss-3"
    },
    {
      "id": "SOCLE-FRN-SOV-1",
      "n": 1,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "SOV",
      "famille_nom": "Souveraineté & localisation",
      "famille_ordre": 6,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "sante"
      ],
      "texte": "localisation de l'hébergement et des données ; juridiction applicable documentée.",
      "preuve": "Documentation de localisation des données et de la juridiction applicable.",
      "outils": [],
      "standards": [
        "SecNumCloud (ANSSI)",
        "NIS2 art.21",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/souverainete-localisation/#socle-frn-sov-1"
    },
    {
      "id": "SOCLE-FRN-SOV-2",
      "n": 2,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "SOV",
      "famille_nom": "Souveraineté & localisation",
      "famille_ordre": 6,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "capacité de réversibilité souveraine ; maîtrise de la dépendance aux hyperscalers.",
      "preuve": "Démonstration de réversibilité souveraine.",
      "outils": [],
      "standards": [
        "SecNumCloud (ANSSI)",
        "ANSSI",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Une dépendance est retirée ou dépubliée (unpublish, yank), cassant les builds et poussant à des substitutions hâtives, parfois vers un remplacement malveillant. La disponibilité de la chaîne est attaquée (cas left-pad).",
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/souverainete-localisation/#socle-frn-sov-2"
    },
    {
      "id": "SOCLE-FRN-SOV-3",
      "n": 3,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "SOV",
      "famille_nom": "Souveraineté & localisation",
      "famille_ordre": 6,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "qualification adaptée (ex. SecNumCloud) selon la sensibilité.",
      "preuve": "Attestation de qualification adaptée (ex. SecNumCloud) selon la sensibilité.",
      "outils": [],
      "standards": [
        "SecNumCloud (ANSSI)",
        "ReCyF",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Une autorité étrangère contraint légalement un fournisseur cloud (CLOUD Act, FISA) à divulguer des données hébergées, hors du cadre juridique national. Le risque n'est pas technique mais juridique : la souveraineté de l'hébergement (SecNumCloud) y répond."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/souverainete-localisation/#socle-frn-sov-3"
    },
    {
      "id": "SOCLE-FRN-SUP-1",
      "n": 1,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "SUP",
      "famille_nom": "Continuité, support & réponse",
      "famille_ordre": 5,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "engagement de support et de maintenance de sécurité (durée, EOL annoncée).",
      "preuve": "Engagement de support et calendrier d'EOL documentés.",
      "outils": [],
      "standards": [
        "CRA",
        "NIS2 art.21",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Une dépendance est retirée ou dépubliée (unpublish, yank), cassant les builds et poussant à des substitutions hâtives, parfois vers un remplacement malveillant. La disponibilité de la chaîne est attaquée (cas left-pad)."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/continuite-support-reponse/#socle-frn-sup-1"
    },
    {
      "id": "SOCLE-FRN-SUP-2",
      "n": 2,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "SUP",
      "famille_nom": "Continuité, support & réponse",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "procédure et délais de réponse à incident du fournisseur.",
      "preuve": "Procédure de réponse à incident du fournisseur, avec délais.",
      "outils": [],
      "standards": [
        "NIS2 art.21",
        "ISO 27001",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Le canal par lequel le logiciel est distribué (site de téléchargement, CDN, miroir, mise à jour) est compromis pour livrer une version trojanisée aux utilisateurs finaux. La compromission frappe en aval de la production, au plus près des victimes."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/continuite-support-reponse/#socle-frn-sup-2"
    },
    {
      "id": "SOCLE-FRN-SUP-3",
      "n": 3,
      "domaine": "FRN",
      "domaine_nom": "Fournisseurs & composants tiers",
      "famille": "SUP",
      "famille_nom": "Continuité, support & réponse",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "sante"
      ],
      "texte": "plan de réversibilité / sortie : récupération des données, désengagement.",
      "preuve": "Plan de réversibilité et de désengagement documenté.",
      "outils": [],
      "standards": [
        "NIS2 art.21",
        "ISO 27001",
        "NIST 800-161 (SR)"
      ],
      "menaces": [
        "Une dépendance est retirée ou dépubliée (unpublish, yank), cassant les builds et poussant à des substitutions hâtives, parfois vers un remplacement malveillant. La disponibilité de la chaîne est attaquée (cas left-pad)."
      ],
      "href": "/docs/securiser/socle/referentiel/fournisseurs/continuite-support-reponse/#socle-frn-sup-3"
    },
    {
      "id": "SOCLE-GOV-GEN-1",
      "n": 1,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "inventaire des produits et chaînes de build, avec tiering par criticité, tenu à jour.",
      "preuve": "Inventaire des produits et chaînes de build avec tiering par criticité ; horodatage de dernière mise à jour.",
      "outils": [],
      "standards": [
        "SSDF PO.1",
        "ISO 27001 (A.5.9)",
        "NIST 800-161 (SR)",
        "BSIMM (Governance)",
        "PCI-DSS Req 12",
        "HDS"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-gen-1"
    },
    {
      "id": "SOCLE-GOV-GEN-2",
      "n": 2,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "politique de sécurité de la chaîne logicielle formalisée ; rôles et responsabilités définis.",
      "preuve": "Politique de sécurité de la chaîne logicielle documentée ; matrice des rôles et responsabilités.",
      "outils": [],
      "standards": [
        "ISO 27001",
        "SSDF PO.2",
        "NIS2 art.21",
        "NIST 800-161 (SR)",
        "BSIMM (Governance)",
        "PCI-DSS Req 12",
        "HDS"
      ],
      "menaces": [
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact.",
        "Une exception aux règles de protection (ex. fichiers de documentation exemptés de revue) est exploitée via un fichier déguisé pour faire passer du code non revu. Les angles morts de la politique deviennent une porte d'entrée.",
        "Un artefact légitime est utilisé de façon non prévue ou dans un contexte non sécurisé, créant un risque que la chaîne technique ne couvre pas. La sécurité dépend aussi de l'usage, pas seulement de la fabrication."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-gen-2"
    },
    {
      "id": "SOCLE-GOV-GEN-3",
      "n": 3,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "conformité réglementaire suivie (CRA, NIS2/ReCyF) : écarts identifiés et pilotés.",
      "preuve": "Registre de conformité (CRA, NIS2/ReCyF) : écarts identifiés et plan de mise en conformité suivi.",
      "outils": [],
      "standards": [
        "CRA",
        "NIS2 art.21",
        "ReCyF",
        "NIST 800-161 (SR)",
        "BSIMM (Governance)",
        "PCI-DSS Req 12",
        "HDS"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-gen-3"
    },
    {
      "id": "SOCLE-GOV-GEN-4",
      "n": 4,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "threat modeling de la chaîne réalisé et tenu à jour.",
      "preuve": "Modèle de menace de la chaîne documenté, daté et revu.",
      "outils": [],
      "standards": [
        "SSDF PW.1",
        "OWASP SAMM",
        "MITRE ATT&CK",
        "NIST 800-161 (SR)",
        "BSIMM (Governance)",
        "PCI-DSS Req 12",
        "HDS"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile.",
        "Le mainteneur saborde délibérément son propre composant pour des raisons idéologiques ou politiques (protestware) : code destructeur, messages, ou comportements ciblant certains utilisateurs. La confiance accordée au paquet se retourne contre ses consommateurs lors d'une simple mise à jour (cas node-ipc).",
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-gen-4"
    },
    {
      "id": "SOCLE-GOV-GEN-5",
      "n": 5,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "maturité mesurée via un modèle reconnu (SAMM/DSOMM) ; trajectoire définie.",
      "preuve": "Évaluation de maturité (SAMM/DSOMM) et trajectoire cible documentées.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "OWASP DSOMM",
        "NIST 800-161 (SR)",
        "BSIMM (Governance)",
        "PCI-DSS Req 12",
        "HDS"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-gen-5"
    },
    {
      "id": "SOCLE-GOV-GEN-6",
      "n": 6,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": true,
      "profils": [
        "souverain",
        "paiement",
        "sante"
      ],
      "texte": "préparation à l'audit ex ante (ANSSI) : posture documentée et chiffrée.",
      "preuve": "Dossier de préparation à l'audit ex ante : posture documentée et chiffrée.",
      "outils": [],
      "standards": [
        "NIS2 / ReCyF",
        "ISO 27001",
        "NIST 800-161 (SR)",
        "BSIMM (Governance)",
        "PCI-DSS Req 12",
        "HDS"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-gen-6"
    },
    {
      "id": "SOCLE-GOV-INV-1",
      "n": 1,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "INV",
      "famille_nom": "Inventaire & cartographie",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "cartographie des chaînes de build/déploiement (flux, dépôts, runners, registres, fournisseurs).",
      "preuve": "Cartographie des chaînes de build/déploiement (flux, dépôts, runners, registres, fournisseurs).",
      "outils": [],
      "standards": [
        "SSDF PO.1",
        "ISO 27001 (A.5.9)"
      ],
      "menaces": [
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact.",
        "Une dépendance est retirée ou dépubliée (unpublish, yank), cassant les builds et poussant à des substitutions hâtives, parfois vers un remplacement malveillant. La disponibilité de la chaîne est attaquée (cas left-pad)."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-inv-1"
    },
    {
      "id": "SOCLE-GOV-INV-2",
      "n": 2,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "INV",
      "famille_nom": "Inventaire & cartographie",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "identification des dépendances et fournisseurs critiques (concentration, points uniques de défaillance).",
      "preuve": "Identification des dépendances et fournisseurs critiques.",
      "outils": [],
      "standards": [
        "SSDF PO.1",
        "NIS2 art.21"
      ],
      "menaces": [
        "Le mainteneur saborde délibérément son propre composant pour des raisons idéologiques ou politiques (protestware) : code destructeur, messages, ou comportements ciblant certains utilisateurs. La confiance accordée au paquet se retourne contre ses consommateurs lors d'une simple mise à jour (cas node-ipc).",
        "Une dépendance est retirée ou dépubliée (unpublish, yank), cassant les builds et poussant à des substitutions hâtives, parfois vers un remplacement malveillant. La disponibilité de la chaîne est attaquée (cas left-pad)."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-inv-2"
    },
    {
      "id": "SOCLE-GOV-INV-3",
      "n": 3,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "INV",
      "famille_nom": "Inventaire & cartographie",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "inventaire tenu à jour (revue périodique, déclencheurs de mise à jour).",
      "preuve": "Inventaire tenu à jour (revue périodique).",
      "outils": [],
      "standards": [
        "ISO 27001",
        "SSDF PO.1"
      ],
      "menaces": [
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact.",
        "Une dépendance est retirée ou dépubliée (unpublish, yank), cassant les builds et poussant à des substitutions hâtives, parfois vers un remplacement malveillant. La disponibilité de la chaîne est attaquée (cas left-pad)."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-inv-3"
    },
    {
      "id": "SOCLE-GOV-POL-1",
      "n": 1,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "POL",
      "famille_nom": "Politique & responsabilités",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "politique de la chaîne logicielle approuvée par la direction, diffusée et revue périodiquement.",
      "preuve": "Politique approuvée par la direction, diffusée et revue.",
      "outils": [],
      "standards": [
        "ISO 27001",
        "SSDF PO.2",
        "NIS2 art.21"
      ],
      "menaces": [
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact.",
        "Un artefact légitime est utilisé de façon non prévue ou dans un contexte non sécurisé, créant un risque que la chaîne technique ne couvre pas. La sécurité dépend aussi de l'usage, pas seulement de la fabrication."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-pol-1"
    },
    {
      "id": "SOCLE-GOV-POL-2",
      "n": 2,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "POL",
      "famille_nom": "Politique & responsabilités",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "rôles et responsabilités définis (RACI), avec un sponsor au niveau direction.",
      "preuve": "RACI documenté ; sponsor direction.",
      "outils": [],
      "standards": [
        "ISO 27001",
        "SSDF PO.2"
      ],
      "menaces": [
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-pol-2"
    },
    {
      "id": "SOCLE-GOV-POL-3",
      "n": 3,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "POL",
      "famille_nom": "Politique & responsabilités",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "sensibilisation et formation des équipes (dev, ops, achats) à la sécurité de la chaîne.",
      "preuve": "Plan de formation/sensibilisation à la sécurité de la chaîne.",
      "outils": [],
      "standards": [
        "SSDF PO.2",
        "OWASP SAMM"
      ],
      "menaces": [
        "Un artefact légitime est utilisé de façon non prévue ou dans un contexte non sécurisé, créant un risque que la chaîne technique ne couvre pas. La sécurité dépend aussi de l'usage, pas seulement de la fabrication."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-pol-3"
    },
    {
      "id": "SOCLE-GOV-POL-4",
      "n": 4,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "POL",
      "famille_nom": "Politique & responsabilités",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "exigences de sécurité de la chaîne intégrées aux marchés et contrats.",
      "preuve": "Clauses de sécurité de la chaîne dans les marchés/contrats.",
      "outils": [],
      "standards": [
        "NIS2 art.21",
        "CRA"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile.",
        "Un artefact légitime est utilisé de façon non prévue ou dans un contexte non sécurisé, créant un risque que la chaîne technique ne couvre pas. La sécurité dépend aussi de l'usage, pas seulement de la fabrication."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-pol-4"
    },
    {
      "id": "SOCLE-GOV-REG-1",
      "n": 1,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "REG",
      "famille_nom": "Conformité réglementaire",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "suivi de conformité CRA et NIS2/ReCyF : écarts identifiés, plan piloté, échéances datées.",
      "preuve": "Registre de conformité CRA/NIS2/ReCyF : écarts, plan, échéances.",
      "outils": [],
      "standards": [
        "CRA",
        "NIS2 art.21",
        "ReCyF"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-reg-1"
    },
    {
      "id": "SOCLE-GOV-REG-2",
      "n": 2,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "REG",
      "famille_nom": "Conformité réglementaire",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "preuves de conformité maintenues et produisibles (posture par domaine, niveau atteint).",
      "preuve": "Preuves de conformité maintenues et produisibles.",
      "outils": [],
      "standards": [
        "ISO 27001",
        "NIS2 / ReCyF"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-reg-2"
    },
    {
      "id": "SOCLE-GOV-REG-3",
      "n": 3,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "REG",
      "famille_nom": "Conformité réglementaire",
      "famille_ordre": 3,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "capacité de produire le dossier d'audit ex ante (ANSSI/ReCyF) en temps limité ; exercice à blanc réalisé.",
      "preuve": "Exercice d'audit ex ante à blanc réalisé ; dossier produisible en temps limité.",
      "outils": [],
      "standards": [
        "NIS2 / ReCyF",
        "ISO 27001"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-reg-3"
    },
    {
      "id": "SOCLE-GOV-RSK-1",
      "n": 1,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "RSK",
      "famille_nom": "Risque & maturité",
      "famille_ordre": 4,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "threat modeling de la chaîne logicielle réalisé, tenu à jour et relié au corpus de menaces.",
      "preuve": "Threat model de la chaîne, à jour, relié au corpus de menaces.",
      "outils": [],
      "standards": [
        "SSDF PW.1",
        "OWASP SAMM",
        "MITRE ATT&CK"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile.",
        "Le mainteneur saborde délibérément son propre composant pour des raisons idéologiques ou politiques (protestware) : code destructeur, messages, ou comportements ciblant certains utilisateurs. La confiance accordée au paquet se retourne contre ses consommateurs lors d'une simple mise à jour (cas node-ipc).",
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-rsk-1"
    },
    {
      "id": "SOCLE-GOV-RSK-2",
      "n": 2,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "RSK",
      "famille_nom": "Risque & maturité",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "maturité mesurée (SAMM/DSOMM) avec trajectoire et métriques suivies.",
      "preuve": "Évaluation de maturité (SAMM/DSOMM) et trajectoire.",
      "outils": [],
      "standards": [
        "OWASP SAMM",
        "OWASP DSOMM"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-rsk-2"
    },
    {
      "id": "SOCLE-GOV-RSK-3",
      "n": 3,
      "domaine": "GOV",
      "domaine_nom": "Gouvernance & conformité",
      "famille": "RSK",
      "famille_nom": "Risque & maturité",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "indicateurs de risque de la chaîne (KRI) suivis et reportés à la direction.",
      "preuve": "Tableau de bord des indicateurs de risque (KRI) reportés à la direction.",
      "outils": [],
      "standards": [
        "ISO 27001",
        "OWASP SAMM"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile."
      ],
      "href": "/docs/securiser/socle/referentiel/gouvernance/#socle-gov-rsk-3"
    },
    {
      "id": "SOCLE-IA-GEN-1",
      "n": 1,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "inventaire des usages d'IA dans le SDLC (assistants, agents, modèles).",
      "preuve": "Inventaire des usages d'IA dans le SDLC (assistants, agents, modèles).",
      "outils": [
        "Semgrep",
        "OSV-Scanner"
      ],
      "standards": [
        "ISO 42001",
        "NIST AI RMF (MAP)"
      ],
      "menaces": [
        "Une bibliothèque de l'écosystème IA (serving, orchestration, agents) est compromise comme n'importe quelle dépendance, mais avec un accès privilégié aux données et aux modèles. La surface supply chain classique appliquée à la pile IA.",
        "Un outil, skill ou serveur MCP exposé à un agent est piégé pour exécuter des actions malveillantes ou exfiltrer des données lorsqu'il est invoqué. L'agent, en appelant l'outil de confiance, déclenche la charge (ATLAS)."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-gen-1"
    },
    {
      "id": "SOCLE-IA-GEN-2",
      "n": 2,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "revue de sécurité des suggestions / sorties d'IA avant intégration.",
      "preuve": "Procédure de revue de sécurité des sorties d'IA avant intégration.",
      "outils": [
        "Semgrep",
        "OSV-Scanner"
      ],
      "standards": [
        "OWASP AISVS",
        "NIST 800-218A"
      ],
      "menaces": [
        "Un modèle ou artefact ML téléchargé contient une charge (poids piégés, code de désérialisation) exécutée au chargement ou produisant des sorties dangereuses. Le modèle est une dépendance à part entière, rarement vérifiée.",
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051)."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-gen-2"
    },
    {
      "id": "SOCLE-IA-GEN-3",
      "n": 3,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "maîtrise des risques LLM / agentiques (injection, exécution non sûre).",
      "preuve": "Mesures de maîtrise des risques LLM/agentiques (injection, exécution non sûre).",
      "outils": [
        "Semgrep",
        "OSV-Scanner"
      ],
      "standards": [
        "OWASP LLM Top 10",
        "OWASP Agentic Top 10",
        "MITRE ATLAS"
      ],
      "menaces": [
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051).",
        "Une source indexée par un système RAG est empoisonnée pour injecter de fausses informations ou des instructions cachées dans le contexte du modèle. La base de connaissances de confiance devient un vecteur d'injection indirecte."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-gen-3"
    },
    {
      "id": "SOCLE-IA-GEN-4",
      "n": 4,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "l'augmentation par IA n'affaiblit pas les garde-fous CI/CD existants.",
      "preuve": "Preuve que les garde-fous CI/CD restent effectifs avec l'augmentation par IA.",
      "outils": [
        "Semgrep",
        "OSV-Scanner"
      ],
      "standards": [
        "OWASP AISVS",
        "OWASP ASVS v5.0.0"
      ],
      "menaces": [
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051)."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-gen-4"
    },
    {
      "id": "SOCLE-IA-GEN-5",
      "n": 5,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "serving IA souverain (auto-hébergé) pour les données sensibles, sur infrastructure approuvée et listée au périmètre.",
      "preuve": "Configuration de serving souverain (self-hosté) pour données sensibles ; absence d'exfiltration.",
      "outils": [],
      "standards": [
        "ISO 42001"
      ],
      "menaces": [
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051).",
        "Un agent ou un système RAG est manipulé pour collecter et exfiltrer des secrets accessibles via son contexte, ses outils ou sa configuration. Les droits étendus de l'agent en font un collecteur de credentials."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-gen-5"
    },
    {
      "id": "SOCLE-IA-GEN-6",
      "n": 6,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "flux sortants du service d'inférence IA filtrés et journalisés (prévention d'exfiltration).",
      "preuve": "Politique réseau egress du service d'inférence + journaux des flux sortants.",
      "outils": [
        "Cilium"
      ],
      "standards": [
        "ISO 42001"
      ],
      "menaces": [
        "Un agent ou un système RAG est manipulé pour collecter et exfiltrer des secrets accessibles via son contexte, ses outils ou sa configuration. Les droits étendus de l'agent en font un collecteur de credentials."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-gen-6"
    },
    {
      "id": "SOCLE-IA-GVN-1",
      "n": 1,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire des usages IA",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "politique d'usage de l'IA (cas autorisés, données permises, responsabilités).",
      "preuve": "Politique d'usage de l'IA documentée (cas autorisés, données, responsabilités).",
      "outils": [],
      "standards": [
        "ISO 42001",
        "NIST AI RMF (GOVERN)"
      ],
      "menaces": [
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051)."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-gvn-1"
    },
    {
      "id": "SOCLE-IA-GVN-2",
      "n": 2,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "GVN",
      "famille_nom": "Gouvernance & inventaire des usages IA",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "évaluation des risques IA par usage (criticité, impact).",
      "preuve": "Évaluation des risques IA par usage.",
      "outils": [],
      "standards": [
        "NIST AI RMF",
        "ISO 42001"
      ],
      "menaces": [
        "Un modèle ou artefact ML téléchargé contient une charge (poids piégés, code de désérialisation) exécutée au chargement ou produisant des sorties dangereuses. Le modèle est une dépendance à part entière, rarement vérifiée.",
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051)."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-gvn-2"
    },
    {
      "id": "SOCLE-IA-LLM-1",
      "n": 1,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "LLM",
      "famille_nom": "Risques LLM & agentiques",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "maîtrise des risques LLM (injection de prompt, fuite de données, sorties non sûres).",
      "preuve": "Mesures de maîtrise des risques LLM (injection, fuite, sorties).",
      "outils": [],
      "standards": [
        "OWASP LLM Top 10",
        "MITRE ATLAS"
      ],
      "menaces": [
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051).",
        "Une source indexée par un système RAG est empoisonnée pour injecter de fausses informations ou des instructions cachées dans le contexte du modèle. La base de connaissances de confiance devient un vecteur d'injection indirecte."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-llm-1"
    },
    {
      "id": "SOCLE-IA-LLM-2",
      "n": 2,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "LLM",
      "famille_nom": "Risques LLM & agentiques",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "maîtrise des risques agentiques (exécution d'outils, actions non autorisées, périmètre).",
      "preuve": "Mesures de maîtrise des risques agentiques (outils, actions, périmètre).",
      "outils": [],
      "standards": [
        "OWASP Agentic Top 10",
        "MITRE ATLAS"
      ],
      "menaces": [
        "Un outil, skill ou serveur MCP exposé à un agent est piégé pour exécuter des actions malveillantes ou exfiltrer des données lorsqu'il est invoqué. L'agent, en appelant l'outil de confiance, déclenche la charge (ATLAS)."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-llm-2"
    },
    {
      "id": "SOCLE-IA-LLM-3",
      "n": 3,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "LLM",
      "famille_nom": "Risques LLM & agentiques",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "moindre privilège et confinement des agents IA (outils, secrets, réseau).",
      "preuve": "Confinement des agents IA (outils, secrets, réseau) au moindre privilège.",
      "outils": [],
      "standards": [
        "NIST 800-207",
        "OWASP Agentic Top 10"
      ],
      "menaces": [
        "Un outil, skill ou serveur MCP exposé à un agent est piégé pour exécuter des actions malveillantes ou exfiltrer des données lorsqu'il est invoqué. L'agent, en appelant l'outil de confiance, déclenche la charge (ATLAS).",
        "La configuration d'un agent IA est modifiée pour installer une instruction ou un outil persistant, réactivé à chaque exécution. La persistance s'installe dans la configuration plutôt que dans le code (ATLAS Modify AI Agent Configuration).",
        "Un agent ou un système RAG est manipulé pour collecter et exfiltrer des secrets accessibles via son contexte, ses outils ou sa configuration. Les droits étendus de l'agent en font un collecteur de credentials."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-llm-3"
    },
    {
      "id": "SOCLE-IA-LLM-4",
      "n": 4,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "LLM",
      "famille_nom": "Risques LLM & agentiques",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "validation humaine des actions sensibles d'un agent (human-in-the-loop).",
      "preuve": "Validation humaine des actions sensibles d'un agent.",
      "outils": [],
      "standards": [
        "OWASP Agentic Top 10",
        "ISO 42001"
      ],
      "menaces": [
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051).",
        "Un outil, skill ou serveur MCP exposé à un agent est piégé pour exécuter des actions malveillantes ou exfiltrer des données lorsqu'il est invoqué. L'agent, en appelant l'outil de confiance, déclenche la charge (ATLAS)."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-llm-4"
    },
    {
      "id": "SOCLE-IA-MLB-1",
      "n": 1,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "MLB",
      "famille_nom": "Chaîne ML & provenance des modèles (MLBOM)",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "inventaire des modèles, jeux de données et dépendances ML (MLBOM).",
      "preuve": "MLBOM : inventaire des modèles, datasets et dépendances ML.",
      "outils": [
        "cdxgen"
      ],
      "standards": [
        "CycloneDX (ECMA-424)",
        "ISO 42001"
      ],
      "menaces": [
        "Des données d'entraînement sont manipulées pour induire un comportement malveillant ou biaisé dans le modèle résultant (ATLAS AML.T0020). La compromission est en amont, dans le jeu de données, invisible à l'inspection du modèle seul."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-mlb-1"
    },
    {
      "id": "SOCLE-IA-MLB-2",
      "n": 2,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "MLB",
      "famille_nom": "Chaîne ML & provenance des modèles (MLBOM)",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "provenance et intégrité des modèles consommés (origine, signature/empreinte).",
      "preuve": "Provenance et intégrité des modèles consommés (signature/empreinte).",
      "outils": [
        "cdxgen"
      ],
      "standards": [
        "SLSA",
        "Sigstore",
        "S2C2F"
      ],
      "menaces": [
        "Un modèle ou artefact ML téléchargé contient une charge (poids piégés, code de désérialisation) exécutée au chargement ou produisant des sorties dangereuses. Le modèle est une dépendance à part entière, rarement vérifiée.",
        "Une bibliothèque de l'écosystème IA (serving, orchestration, agents) est compromise comme n'importe quelle dépendance, mais avec un accès privilégié aux données et aux modèles. La surface supply chain classique appliquée à la pile IA."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-mlb-2"
    },
    {
      "id": "SOCLE-IA-MLB-3",
      "n": 3,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "MLB",
      "famille_nom": "Chaîne ML & provenance des modèles (MLBOM)",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "évaluation des modèles / jeux de données tiers (licence, biais, empoisonnement).",
      "preuve": "Évaluation des modèles/datasets tiers (licence, biais, empoisonnement).",
      "outils": [
        "cdxgen"
      ],
      "standards": [
        "ISO 42001",
        "MITRE ATLAS"
      ],
      "menaces": [
        "Des données d'entraînement sont manipulées pour induire un comportement malveillant ou biaisé dans le modèle résultant (ATLAS AML.T0020). La compromission est en amont, dans le jeu de données, invisible à l'inspection du modèle seul.",
        "Un modèle ou artefact ML téléchargé contient une charge (poids piégés, code de désérialisation) exécutée au chargement ou produisant des sorties dangereuses. Le modèle est une dépendance à part entière, rarement vérifiée."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-mlb-3"
    },
    {
      "id": "SOCLE-IA-MLB-4",
      "n": 4,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "MLB",
      "famille_nom": "Chaîne ML & provenance des modèles (MLBOM)",
      "famille_ordre": 4,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "provenance vérifiable de la chaîne d'entraînement pour les modèles sensibles.",
      "preuve": "Provenance vérifiable de la chaîne d'entraînement pour modèles sensibles.",
      "outils": [
        "cdxgen"
      ],
      "standards": [
        "SLSA",
        "ISO 42001"
      ],
      "menaces": [
        "Un modèle ou artefact ML téléchargé contient une charge (poids piégés, code de désérialisation) exécutée au chargement ou produisant des sorties dangereuses. Le modèle est une dépendance à part entière, rarement vérifiée."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-mlb-4"
    },
    {
      "id": "SOCLE-IA-REV-1",
      "n": 1,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "REV",
      "famille_nom": "Revue & garde-fous d'intégration",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "traçabilité du code généré par IA (origine, revue) dans la provenance.",
      "preuve": "Traçabilité du code généré par IA dans la provenance.",
      "outils": [],
      "standards": [
        "NIST 800-218A",
        "SLSA (Source)"
      ],
      "menaces": [
        "Une donnée contrôlée par l'attaquant (titre de PR, nom de branche, message de commit) est interpolée sans échappement dans un script de workflow, provoquant une exécution de commande dans le pipeline. C'est l'injection classique portée au CI.",
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051)."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-rev-1"
    },
    {
      "id": "SOCLE-IA-REV-2",
      "n": 2,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "REV",
      "famille_nom": "Revue & garde-fous d'intégration",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "SAST/SCA appliqués au code généré par IA comme à tout autre code.",
      "preuve": "SAST/SCA appliqués au code généré par IA.",
      "outils": [],
      "standards": [
        "SSDF PW.7",
        "OWASP AISVS"
      ],
      "menaces": [
        "Une donnée contrôlée par l'attaquant (titre de PR, nom de branche, message de commit) est interpolée sans échappement dans un script de workflow, provoquant une exécution de commande dans le pipeline. C'est l'injection classique portée au CI.",
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051)."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-rev-2"
    },
    {
      "id": "SOCLE-IA-SOV-1",
      "n": 1,
      "domaine": "IA",
      "domaine_nom": "IA dans le SDLC",
      "famille": "SOV",
      "famille_nom": "Souveraineté & confidentialité",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "maîtrise des données envoyées aux services d'IA (pas de données sensibles non autorisées).",
      "preuve": "Contrôle des données envoyées aux services d'IA.",
      "outils": [],
      "standards": [
        "ISO 42001",
        "NIST AI RMF"
      ],
      "menaces": [
        "Une instruction malveillante, fournie directement ou cachée dans un contenu consommé par le modèle, détourne son comportement (exfiltration, actions non voulues). L'injection de prompt est la faille structurelle des systèmes à LLM (OWASP LLM01, ATLAS AML.T0051).",
        "Un agent ou un système RAG est manipulé pour collecter et exfiltrer des secrets accessibles via son contexte, ses outils ou sa configuration. Les droits étendus de l'agent en font un collecteur de credentials."
      ],
      "href": "/docs/securiser/socle/referentiel/ia/#socle-ia-sov-1"
    },
    {
      "id": "SOCLE-INT-ACT-1",
      "n": 1,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "ACT",
      "famille_nom": "Chaîne d'outils & actions CI",
      "famille_ordre": 4,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "permissions minimales des jobs CI (jeton scopé en lecture par défaut).",
      "preuve": "Configuration des permissions de jobs CI (jeton en lecture par défaut).",
      "outils": [
        "zizmor",
        "poutine"
      ],
      "standards": [
        "OWASP CICD-SEC-2",
        "OWASP CICD-SEC-5"
      ],
      "menaces": [
        "Poisoned Pipeline Execution directe : l'attaquant modifie la définition du pipeline (fichier de CI) pour y injecter des commandes exécutées avec les privilèges du build. Le contrôle du fichier de workflow donne le contrôle de l'exécution.",
        "Pendant un job, l'attaquant lit en mémoire le jeton OIDC court ou les identifiants fédérés pour s'authentifier auprès de services en aval. L'éphémérité du jeton ne protège pas si le job lui-même est compromis."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/chaine-d-outils-actions-ci/#socle-int-act-1"
    },
    {
      "id": "SOCLE-INT-ACT-2",
      "n": 2,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "ACT",
      "famille_nom": "Chaîne d'outils & actions CI",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "analyse statique des workflows CI (détection de schémas dangereux).",
      "preuve": "Rapport d'analyse statique des workflows CI.",
      "outils": [
        "zizmor",
        "poutine"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "OWASP CICD-SEC-1"
      ],
      "menaces": [
        "Une donnée contrôlée par l'attaquant (titre de PR, nom de branche, message de commit) est interpolée sans échappement dans un script de workflow, provoquant une exécution de commande dans le pipeline. C'est l'injection classique portée au CI."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/chaine-d-outils-actions-ci/#socle-int-act-2"
    },
    {
      "id": "SOCLE-INT-BLD-1",
      "n": 1,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "BLD",
      "famille_nom": "Build sécurisé & provenance",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "build sur plateforme hébergée, tracée et isolée, générant une provenance.",
      "preuve": "Plateforme de build hébergée et tracée ; provenance générée.",
      "outils": [
        "slsa-github-generator"
      ],
      "standards": [
        "SLSA Build L2",
        "NIST 800-204D",
        "SSDF PW.6"
      ],
      "menaces": [
        "Le build est lancé depuis une source ou un fork non officiel, produisant un artefact d'apparence légitime à partir de code non vérifié. L'origine du build n'est pas garantie sans provenance liant artefact et source."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/build-securise-provenance/#socle-int-bld-1"
    },
    {
      "id": "SOCLE-INT-BLD-2",
      "n": 2,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "BLD",
      "famille_nom": "Build sécurisé & provenance",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "provenance d'artefact générée et attachée (in-toto), vérifiable par les consommateurs.",
      "preuve": "Attestation de provenance in-toto attachée et vérifiable.",
      "outils": [
        "slsa-github-generator"
      ],
      "standards": [
        "SLSA Build L2-L3",
        "in-toto"
      ],
      "menaces": [
        "Le build est lancé depuis une source ou un fork non officiel, produisant un artefact d'apparence légitime à partir de code non vérifié. L'origine du build n'est pas garantie sans provenance liant artefact et source.",
        "L'attestation de provenance est forgée ou altérée pour faire croire qu'un artefact provient d'un build légitime. Sans provenance non falsifiable (build isolé, signature), la traçabilité est trompeuse."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/build-securise-provenance/#socle-int-bld-2"
    },
    {
      "id": "SOCLE-INT-BLD-3",
      "n": 3,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "BLD",
      "famille_nom": "Build sécurisé & provenance",
      "famille_ordre": 3,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "build hermétique et isolé (dépendances pré-fetchées, pas d'accès réseau non maîtrisé) pour les artefacts sensibles.",
      "preuve": "Preuve de build hermétique/isolé (dépendances pré-fetchées, réseau maîtrisé).",
      "outils": [
        "Bazel"
      ],
      "standards": [
        "SLSA Build L3",
        "ANSSI"
      ],
      "menaces": [
        "Un attaquant écrit dans un cache partagé du CI (dépendances, couches d'image, artefacts intermédiaires) une charge réutilisée par d'autres builds. Le cache, supposé sûr, propage la compromission entre exécutions ou projets.",
        "Le build est lancé depuis une source ou un fork non officiel, produisant un artefact d'apparence légitime à partir de code non vérifié. L'origine du build n'est pas garantie sans provenance liant artefact et source."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/build-securise-provenance/#socle-int-bld-3"
    },
    {
      "id": "SOCLE-INT-BLD-4",
      "n": 4,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "BLD",
      "famille_nom": "Build sécurisé & provenance",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "build reproductible (résultat déterministe vérifiable).",
      "preuve": "Attestation de reproductibilité du build.",
      "outils": [
        "slsa-github-generator"
      ],
      "standards": [
        "SLSA",
        "SSDF PW.6"
      ],
      "menaces": [
        "Un installeur officiel et signé est modifié à la source ou au build pour embarquer une charge, distribué via le canal légitime (cas CCleaner, 3CX). La signature valide endort la méfiance."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/build-securise-provenance/#socle-int-bld-4"
    },
    {
      "id": "SOCLE-INT-DEP-1",
      "n": 1,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "DEP",
      "famille_nom": "Inventaire & composition des dépendances",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "inventaire des dépendances directes et transitives à chaque build (analyse de composition).",
      "preuve": "Rapport SCA listant dépendances directes et transitives à chaque build.",
      "outils": [
        "OSV-Scanner",
        "Trivy",
        "Dependency-Track",
        "Renovate"
      ],
      "standards": [
        "OWASP A03",
        "S2C2F",
        "OSV",
        "OWASP SCVS"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/inventaire-composition-des-dependances/#socle-int-dep-1"
    },
    {
      "id": "SOCLE-INT-DEP-2",
      "n": 2,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "DEP",
      "famille_nom": "Inventaire & composition des dépendances",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "SBOM de build généré et conservé pour chaque artefact.",
      "preuve": "SBOM de build (CycloneDX/SPDX) conservé par artefact.",
      "outils": [
        "OSV-Scanner",
        "Trivy",
        "Dependency-Track",
        "Renovate"
      ],
      "standards": [
        "CRA",
        "CycloneDX (ECMA-424)",
        "SPDX",
        "SSDF PS.3"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/inventaire-composition-des-dependances/#socle-int-dep-2"
    },
    {
      "id": "SOCLE-INT-DEP-3",
      "n": 3,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "DEP",
      "famille_nom": "Inventaire & composition des dépendances",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "graphe de provenance des dépendances (origine, intégrité) tracé.",
      "preuve": "Graphe de provenance des dépendances (origine, intégrité).",
      "outils": [
        "OSV-Scanner",
        "Trivy",
        "Dependency-Track",
        "Renovate"
      ],
      "standards": [
        "S2C2F",
        "SLSA",
        "OWASP SCVS"
      ],
      "menaces": [
        "Un paquet public est publié sous le nom d'un paquet interne ; le gestionnaire, mal configuré, préfère la version publique de plus haut numéro et tire le code de l'attaquant. La confusion entre registre interne et public livre l'exécution au build.",
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/inventaire-composition-des-dependances/#socle-int-dep-3"
    },
    {
      "id": "SOCLE-INT-GEN-1",
      "n": 1,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "analyse de composition (SCA) des dépendances à chaque build.",
      "preuve": "Rapport d'analyse de composition (SCA) produit à chaque build.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "OWASP A03",
        "S2C2F",
        "OSV",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "Une bibliothèque de l'écosystème IA (serving, orchestration, agents) est compromise comme n'importe quelle dépendance, mais avec un accès privilégié aux données et aux modèles. La surface supply chain classique appliquée à la pile IA."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-1"
    },
    {
      "id": "SOCLE-INT-GEN-10",
      "n": 10,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "provenance et builder des images de base vérifiés avant usage.",
      "preuve": "Vérification de provenance/builder tracée pour les images de base.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "CIS Benchmarks",
        "SLSA",
        "OWASP CICD-SEC-9",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "L'image de base utilisée pour construire les conteneurs contient une charge malveillante ou une vulnérabilité, héritée par tous les artefacts qui en dérivent. Le socle d'exécution contamine toute la production.",
        "Une version malveillante persiste dans des miroirs ou caches même après retrait à la source, continuant d'être servie aux clients qui s'y approvisionnent. Le retrait à la source ne suffit pas à éradiquer la menace."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-10"
    },
    {
      "id": "SOCLE-INT-GEN-11",
      "n": 11,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "images analysées (malware et secrets, pas seulement CVE) avant usage.",
      "preuve": "Rapport de scan image (malware + secrets) avant promotion.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "CIS Benchmarks",
        "SLSA",
        "OWASP CICD-SEC-9",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "L'image de base utilisée pour construire les conteneurs contient une charge malveillante ou une vulnérabilité, héritée par tous les artefacts qui en dérivent. Le socle d'exécution contamine toute la production."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-11"
    },
    {
      "id": "SOCLE-INT-GEN-2",
      "n": 2,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "versions verrouillées (lockfiles) ; provenance des dépendances maîtrisée.",
      "preuve": "Lockfiles versionnés ; configuration de provenance des dépendances.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "S2C2F",
        "OWASP CICD-SEC-3",
        "SLSA",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Un paquet public est publié sous le nom d'un paquet interne ; le gestionnaire, mal configuré, préfère la version publique de plus haut numéro et tire le code de l'attaquant. La confusion entre registre interne et public livre l'exécution au build.",
        "Une bibliothèque applicative porteuse d'une vulnérabilité connue est exploitée faute de détection (SCA) et de mise à jour. L'absence d'inventaire et de correctif transforme une CVE publique en brèche (cas Log4Shell, Equifax)."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-2"
    },
    {
      "id": "SOCLE-INT-GEN-3",
      "n": 3,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "consommation OSS via miroir/proxy interne contrôlé (pas de tirage direct non filtré).",
      "preuve": "Configuration du miroir/proxy interne ; preuve d'absence de tirage direct non filtré.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "S2C2F",
        "OWASP CICD-SEC-3",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Un paquet public est publié sous le nom d'un paquet interne ; le gestionnaire, mal configuré, préfère la version publique de plus haut numéro et tire le code de l'attaquant. La confusion entre registre interne et public livre l'exécution au build.",
        "Une dépendance est retirée ou dépubliée (unpublish, yank), cassant les builds et poussant à des substitutions hâtives, parfois vers un remplacement malveillant. La disponibilité de la chaîne est attaquée (cas left-pad).",
        "Le registre de paquets ou un miroir est compromis, permettant d'altérer ou de substituer des artefacts pour tous ses utilisateurs. L'infrastructure de distribution devient le point de défaillance unique.",
        "Une version malveillante persiste dans des miroirs ou caches même après retrait à la source, continuant d'être servie aux clients qui s'y approvisionnent. Le retrait à la source ne suffit pas à éradiquer la menace."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-3"
    },
    {
      "id": "SOCLE-INT-GEN-4",
      "n": 4,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "SAST intégré au pipeline, seuils bloquants sur criticités hautes.",
      "preuve": "Intégration SAST au pipeline ; seuils bloquants configurés sur criticités hautes.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "OWASP ASVS v5.0.0",
        "SSDF PW.7",
        "SSDF PW.8",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Une donnée contrôlée par l'attaquant (titre de PR, nom de branche, message de commit) est interpolée sans échappement dans un script de workflow, provoquant une exécution de commande dans le pipeline. C'est l'injection classique portée au CI.",
        "Un plugin ou une extension de l'outil de build (Gradle, Maven, bundler) exécute du code au moment de la construction, hors de toute revue du code applicatif. Le build devient un vecteur d'exécution tierce."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-4"
    },
    {
      "id": "SOCLE-INT-GEN-5",
      "n": 5,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "détection des dépendances malveillantes / typosquatting (analyse comportementale, pas seulement CVE) ; délai de quarantaine (cooldown) avant adoption d'une nouvelle version.",
      "preuve": "Outil de détection de dépendances malveillantes/typosquatting ; politique de cooldown configurée.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "S2C2F",
        "OSV",
        "OWASP A03",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Le mainteneur saborde délibérément son propre composant pour des raisons idéologiques ou politiques (protestware) : code destructeur, messages, ou comportements ciblant certains utilisateurs. La confiance accordée au paquet se retourne contre ses consommateurs lors d'une simple mise à jour (cas node-ipc).",
        "Un paquet malveillant porte un nom très proche d'un paquet légitime (faute de frappe, tiret, ordre des mots) pour être installé par erreur. L'attaque mise sur l'inattention au moment d'ajouter une dépendance.",
        "L'attaquant usurpe la réputation d'un projet légitime (nom de marque, étoiles, métadonnées pointant vers un dépôt populaire) pour faire passer un paquet malveillant pour de confiance. La crédibilité empruntée trompe l'évaluation.",
        "Le consommateur choisit, par erreur ou tromperie, un paquet ou une version différente de celle voulue (homonyme, mauvais canal, mauvaise version). L'erreur de sélection court-circuite toutes les protections en amont.",
        "Une bibliothèque de l'écosystème IA (serving, orchestration, agents) est compromise comme n'importe quelle dépendance, mais avec un accès privilégié aux données et aux modèles. La surface supply chain classique appliquée à la pile IA."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-5"
    },
    {
      "id": "SOCLE-INT-GEN-6",
      "n": 6,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "build sur plateforme hébergée et tracée, générant une provenance.",
      "preuve": "Plateforme de build hébergée et tracée ; provenance générée.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "SLSA Build L2",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Le build est lancé depuis une source ou un fork non officiel, produisant un artefact d'apparence légitime à partir de code non vérifié. L'origine du build n'est pas garantie sans provenance liant artefact et source.",
        "Le build est compromis en amont, si bien que la provenance est techniquement valide mais atteste d'un artefact malveillant. La provenance prouve l'origine, pas l'innocuité : un build corrompu produit une attestation correcte d'un mauvais résultat."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-6"
    },
    {
      "id": "SOCLE-INT-GEN-7",
      "n": 7,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "images de base et d'outils CI épinglées par digest (jamais de tag mutable).",
      "preuve": "Images CI épinglées par digest ; vérification de provenance/builder ; scan malware.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "CIS Benchmarks",
        "SLSA",
        "OWASP CICD-SEC-9",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Un attaquant écrit dans un cache partagé du CI (dépendances, couches d'image, artefacts intermédiaires) une charge réutilisée par d'autres builds. Le cache, supposé sûr, propage la compromission entre exécutions ou projets.",
        "L'image de base utilisée pour construire les conteneurs contient une charge malveillante ou une vulnérabilité, héritée par tous les artefacts qui en dérivent. Le socle d'exécution contamine toute la production.",
        "Un tag mutable (latest, une version) est réécrit pour pointer vers un artefact malveillant, livré aux consommateurs qui font confiance au tag plutôt qu'au digest. La mutabilité brise l'immuabilité attendue d'une version publiée.",
        "L'attaquant publie avec des identifiants d'éditeur valides (volés ou détournés), rendant la publication indistinguable d'une légitime côté registre. La détection repose alors sur le comportement, pas sur l'authentification.",
        "Le canal par lequel le logiciel est distribué (site de téléchargement, CDN, miroir, mise à jour) est compromis pour livrer une version trojanisée aux utilisateurs finaux. La compromission frappe en aval de la production, au plus près des victimes.",
        "Une version malveillante persiste dans des miroirs ou caches même après retrait à la source, continuant d'être servie aux clients qui s'y approvisionnent. Le retrait à la source ne suffit pas à éradiquer la menace."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-7"
    },
    {
      "id": "SOCLE-INT-GEN-8",
      "n": 8,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "actions/steps CI tiers épinglés par commit SHA, depuis une liste autorisée.",
      "preuve": "Actions/steps tiers épinglés par commit SHA ; liste autorisée.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "OWASP CICD-SEC-3",
        "OWASP CICD-SEC-4",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Une action ou un step tiers référencé par tag mutable (non épinglé par digest) est remplacé par une version malveillante, exécutée dans tous les pipelines qui l'utilisent. Le défaut d'épinglage transforme une dépendance CI en porte dérobée (cas tj-actions)."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-8"
    },
    {
      "id": "SOCLE-INT-GEN-9",
      "n": 9,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "outils détournables de la chaîne (CLI, linters, formateurs, runners de test ; réf. LOTP) inventoriés et durcis : fonctionnalités d'exécution de code arbitraire désactivées ou confinées.",
      "preuve": "Inventaire des outils détournables (LOTP) ; preuve de désactivation/confinement de l'exécution arbitraire.",
      "outils": [
        "OSV-Scanner",
        "Trivy"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "LOTP",
        "CNCF SSC (Materials & Build)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Un linter, formateur, framework de test ou outil de build exécute du code arbitraire par conception, via un fichier de configuration, un plugin ou une variable d'environnement contrôlés par l'attaquant (Living Off the Pipeline). Aucune faille n'est nécessaire : la fonctionnalité légitime sert d'exécution.",
        "Une donnée contrôlée par l'attaquant (titre de PR, nom de branche, message de commit) est interpolée sans échappement dans un script de workflow, provoquant une exécution de commande dans le pipeline. C'est l'injection classique portée au CI.",
        "Un paquet exécute du code arbitraire via ses scripts de cycle de vie (postinstall, preinstall) dès l'installation, avant tout usage. L'ajout d'une dépendance suffit à déclencher la charge.",
        "Un plugin ou une extension de l'outil de build (Gradle, Maven, bundler) exécute du code au moment de la construction, hors de toute revue du code applicatif. Le build devient un vecteur d'exécution tierce.",
        "Poisoned Pipeline Execution indirecte : l'injection passe par un fichier consommé par le pipeline (Makefile, script, configuration d'outil) plutôt que par le fichier de CI. Le résultat est identique : exécution de code attaquant dans le pipeline."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/#socle-int-gen-9"
    },
    {
      "id": "SOCLE-INT-OSS-1",
      "n": 1,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "OSS",
      "famille_nom": "Ingestion OSS maîtrisée",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "délai de quarantaine (cooldown) avant adoption d'une nouvelle version de dépendance.",
      "preuve": "Politique de cooldown configurée avant adoption d'une nouvelle version.",
      "outils": [
        "OpenSSF Scorecard"
      ],
      "standards": [
        "S2C2F",
        "OWASP A03"
      ],
      "menaces": [
        "Le mainteneur saborde délibérément son propre composant pour des raisons idéologiques ou politiques (protestware) : code destructeur, messages, ou comportements ciblant certains utilisateurs. La confiance accordée au paquet se retourne contre ses consommateurs lors d'une simple mise à jour (cas node-ipc).",
        "Un paquet malveillant porte un nom très proche d'un paquet légitime (faute de frappe, tiret, ordre des mots) pour être installé par erreur. L'attaque mise sur l'inattention au moment d'ajouter une dépendance.",
        "Un paquet exécute du code arbitraire via ses scripts de cycle de vie (postinstall, preinstall) dès l'installation, avant tout usage. L'ajout d'une dépendance suffit à déclencher la charge."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/ingestion-oss-maitrisee/#socle-int-oss-1"
    },
    {
      "id": "SOCLE-INT-OSS-2",
      "n": 2,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "OSS",
      "famille_nom": "Ingestion OSS maîtrisée",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "allowlist des registres et sources de paquets autorisés.",
      "preuve": "Allowlist des registres et sources de paquets autorisés.",
      "outils": [
        "OpenSSF Scorecard"
      ],
      "standards": [
        "S2C2F",
        "OWASP CICD-SEC-3"
      ],
      "menaces": [
        "Un paquet public est publié sous le nom d'un paquet interne ; le gestionnaire, mal configuré, préfère la version publique de plus haut numéro et tire le code de l'attaquant. La confusion entre registre interne et public livre l'exécution au build."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/ingestion-oss-maitrisee/#socle-int-oss-2"
    },
    {
      "id": "SOCLE-INT-OSS-3",
      "n": 3,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "OSS",
      "famille_nom": "Ingestion OSS maîtrisée",
      "famille_ordre": 2,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "reconstruction depuis les sources des dépendances critiques (pas de confiance aveugle aux binaires amont).",
      "preuve": "Pipeline de rebuild from source documenté pour les dépendances critiques ; artefacts reconstruits comparés à l'amont.",
      "outils": [
        "Bazel"
      ],
      "standards": [
        "S2C2F (Rebuild)",
        "SLSA Build L3",
        "CNCF SSC (Materials & Build)"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/ingestion-oss-maitrisee/#socle-int-oss-3"
    },
    {
      "id": "SOCLE-INT-OSS-4",
      "n": 4,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "OSS",
      "famille_nom": "Ingestion OSS maîtrisée",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "correctifs de sécurité des dépendances remontés en amont (contribution upstream) plutôt que forks privés divergents non maintenus.",
      "preuve": "Politique de contribution upstream ; suivi des correctifs proposés/acceptés ou des forks temporaires tracés et résorbés.",
      "outils": [],
      "standards": [
        "S2C2F (Fix + Upstream)",
        "OpenChain ISO/IEC 5230"
      ],
      "menaces": [],
      "href": "/docs/securiser/socle/referentiel/integration/ingestion-oss-maitrisee/#socle-int-oss-4"
    },
    {
      "id": "SOCLE-INT-VER-1",
      "n": 1,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "VER",
      "famille_nom": "Vérification du code & des configurations",
      "famille_ordre": 5,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "détection de secrets dans le code et l'historique (pré-commit + CI).",
      "preuve": "Hooks de détection de secrets (pré-commit + CI) ; scan d'historique.",
      "outils": [
        "OSV-Scanner",
        "cosign"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP ASVS v5.0.0 (V13)"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/verification-du-code-des-configurations/#socle-int-ver-1"
    },
    {
      "id": "SOCLE-INT-VER-2",
      "n": 2,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "VER",
      "famille_nom": "Vérification du code & des configurations",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "analyse de configuration IaC (politiques de sécurité, absence de mauvaise configuration).",
      "preuve": "Rapport d'analyse de configuration IaC.",
      "outils": [
        "OSV-Scanner",
        "cosign"
      ],
      "standards": [
        "CIS Benchmarks",
        "NIST 800-204D"
      ],
      "menaces": [
        "Le manifeste de déploiement est mal configuré (privilèges excessifs, montages sensibles, réseau ouvert), exposant la charge dès sa mise en service. La faiblesse n'est pas dans l'artefact mais dans la façon dont il est déployé (CIS Kubernetes)."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/verification-du-code-des-configurations/#socle-int-ver-2"
    },
    {
      "id": "SOCLE-INT-VER-3",
      "n": 3,
      "domaine": "INT",
      "domaine_nom": "Intégration : dépendances & build",
      "famille": "VER",
      "famille_nom": "Vérification du code & des configurations",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "analyse de composition étendue (licences, qualité, score de maintenance).",
      "preuve": "Analyse de composition étendue (licences, score de maintenance).",
      "outils": [
        "OSV-Scanner",
        "cosign"
      ],
      "standards": [
        "OWASP SCVS",
        "OpenSSF Scorecard"
      ],
      "menaces": [
        "Le mainteneur saborde délibérément son propre composant pour des raisons idéologiques ou politiques (protestware) : code destructeur, messages, ou comportements ciblant certains utilisateurs. La confiance accordée au paquet se retourne contre ses consommateurs lors d'une simple mise à jour (cas node-ipc).",
        "Une dépendance est retirée ou dépubliée (unpublish, yank), cassant les builds et poussant à des substitutions hâtives, parfois vers un remplacement malveillant. La disponibilité de la chaîne est attaquée (cas left-pad)."
      ],
      "href": "/docs/securiser/socle/referentiel/integration/verification-du-code-des-configurations/#socle-int-ver-3"
    },
    {
      "id": "SOCLE-ORC-EPH-1",
      "n": 1,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EPH",
      "famille_nom": "Éphémérité & cycle de vie",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "un runner exécute un seul job puis est détruit ; aucune réutilisation entre jobs.",
      "preuve": "Config d'autoscaling en mode usage unique (--ephemeral / runners jetables) ; aucun runner réutilisé entre jobs.",
      "outils": [
        "Harden-Runner",
        "actions-runner-controller"
      ],
      "standards": [
        "SLSA Build L3 (isolation)",
        "OWASP CICD-SEC-4",
        "SSDF PO.5"
      ],
      "menaces": [
        "Un runner auto-hébergé non éphémère conserve un état entre jobs (fichiers, secrets, processus), permettant à un job compromis de piéger les suivants ou d'exfiltrer des données d'autres pipelines. La persistance du runner est l'angle mort."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/ephemerite-cycle-de-vie/#socle-orc-eph-1"
    },
    {
      "id": "SOCLE-ORC-EPH-2",
      "n": 2,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EPH",
      "famille_nom": "Éphémérité & cycle de vie",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "autoscaling sur runners éphémères ; runners persistants proscrits pour les charges non fiables.",
      "preuve": "Inventaire des runners : tous éphémères ; aucun runner persistant rattaché à des charges non fiables.",
      "outils": [
        "Harden-Runner",
        "actions-runner-controller"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "OWASP CICD-SEC-7",
        "SSDF PO.5"
      ],
      "menaces": [
        "Un runner auto-hébergé non éphémère conserve un état entre jobs (fichiers, secrets, processus), permettant à un job compromis de piéger les suivants ou d'exfiltrer des données d'autres pipelines. La persistance du runner est l'angle mort."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/ephemerite-cycle-de-vie/#socle-orc-eph-2"
    },
    {
      "id": "SOCLE-ORC-EPH-3",
      "n": 3,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EPH",
      "famille_nom": "Éphémérité & cycle de vie",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "aucun état (workspace, cache, fichiers temporaires, secrets) ne persiste après le job.",
      "preuve": "Preuve de nettoyage post-job ; inspection d'un runner après exécution sans résidu.",
      "outils": [
        "Harden-Runner",
        "actions-runner-controller"
      ],
      "standards": [
        "OWASP CICD-SEC-7",
        "SLSA Build L3 (isolation)",
        "SSDF PO.5"
      ],
      "menaces": [
        "Un attaquant écrit dans un cache partagé du CI (dépendances, couches d'image, artefacts intermédiaires) une charge réutilisée par d'autres builds. Le cache, supposé sûr, propage la compromission entre exécutions ou projets.",
        "Un runner auto-hébergé non éphémère conserve un état entre jobs (fichiers, secrets, processus), permettant à un job compromis de piéger les suivants ou d'exfiltrer des données d'autres pipelines. La persistance du runner est l'angle mort.",
        "Un job compromis balaie la mémoire ou l'environnement du runner pour récolter les secrets d'autres étapes ou pipelines. Le partage de runner sans isolation expose les secrets transverses."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/ephemerite-cycle-de-vie/#socle-orc-eph-3"
    },
    {
      "id": "SOCLE-ORC-EPH-4",
      "n": 4,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EPH",
      "famille_nom": "Éphémérité & cycle de vie",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "environnement reconstruit depuis une image immuable à chaque provisionnement.",
      "preuve": "Référence d'image immuable + horodatage de (re)création à chaque provisionnement.",
      "outils": [
        "Harden-Runner",
        "actions-runner-controller"
      ],
      "standards": [
        "OWASP CICD-SEC-7",
        "CIS Benchmarks (infra immuable)",
        "SSDF PW.6"
      ],
      "menaces": [
        "Un attaquant écrit dans un cache partagé du CI (dépendances, couches d'image, artefacts intermédiaires) une charge réutilisée par d'autres builds. Le cache, supposé sûr, propage la compromission entre exécutions ou projets.",
        "Un runner auto-hébergé non éphémère conserve un état entre jobs (fichiers, secrets, processus), permettant à un job compromis de piéger les suivants ou d'exfiltrer des données d'autres pipelines. La persistance du runner est l'angle mort."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/ephemerite-cycle-de-vie/#socle-orc-eph-4"
    },
    {
      "id": "SOCLE-ORC-EPH-5",
      "n": 5,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EPH",
      "famille_nom": "Éphémérité & cycle de vie",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "pas de réutilisation du cache d'images entre projets/tenants (pull d'image forcé) ; évite la fuite d'images privées entre charges.",
      "preuve": "Politique de pull forçant la récupération (pull_policy=always) ; pas de cache d'images partagé entre projets.",
      "outils": [
        "Harden-Runner",
        "actions-runner-controller"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "OWASP CICD-SEC-7",
        "CIS Docker Benchmark"
      ],
      "menaces": [
        "Un attaquant écrit dans un cache partagé du CI (dépendances, couches d'image, artefacts intermédiaires) une charge réutilisée par d'autres builds. Le cache, supposé sûr, propage la compromission entre exécutions ou projets."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/ephemerite-cycle-de-vie/#socle-orc-eph-5"
    },
    {
      "id": "SOCLE-ORC-EXE-1",
      "n": 1,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EXE",
      "famille_nom": "Isolation d'exécution & moindre privilège",
      "famille_ordre": 4,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "processus runner sous utilisateur dédié non privilégié, jamais root.",
      "preuve": "uid d'exécution du runner (non-root) ; absence d'exécution root.",
      "outils": [
        "Kyverno",
        "Conftest"
      ],
      "standards": [
        "CIS Benchmarks",
        "ANSSI-BP-028",
        "OWASP CICD-SEC-7"
      ],
      "menaces": [
        "Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu.",
        "Un conteneur de build accède aux périphériques ou capacités de l'hôte (montages, capabilities, hostPath) pour lire ou altérer des ressources hors de son périmètre. Les privilèges excessifs du conteneur ouvrent l'hôte."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-d-execution-moindre-privilege/#socle-orc-exe-1"
    },
    {
      "id": "SOCLE-ORC-EXE-2",
      "n": 2,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EXE",
      "famille_nom": "Isolation d'exécution & moindre privilège",
      "famille_ordre": 4,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "pas de montage du socket Docker ni de mode privilégié ; pas de Docker-in-Docker pour les charges non fiables.",
      "preuve": "Vérification : pas de socket Docker monté, pas de mode privilégié, pas de DinD pour charges non fiables.",
      "outils": [
        "Kyverno",
        "Conftest"
      ],
      "standards": [
        "CIS Docker Benchmark",
        "OWASP CICD-SEC-4",
        "OWASP CICD-SEC-7"
      ],
      "menaces": [
        "Le socket Docker monté dans un job donne un contrôle équivalent à root sur l'hôte : conteneurs privilégiés, accès au système de fichiers hôte. Une fonctionnalité de commodité devient une évasion.",
        "Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu.",
        "Un conteneur de build accède aux périphériques ou capacités de l'hôte (montages, capabilities, hostPath) pour lire ou altérer des ressources hors de son périmètre. Les privilèges excessifs du conteneur ouvrent l'hôte.",
        "Un conteneur exploite une mauvaise configuration ou une faille pour s'échapper vers le nœud hôte du cluster et atteindre d'autres charges. Le cloisonnement du cluster est rompu (ATT&CK T1611)."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-d-execution-moindre-privilege/#socle-orc-exe-2"
    },
    {
      "id": "SOCLE-ORC-EXE-3",
      "n": 3,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EXE",
      "famille_nom": "Isolation d'exécution & moindre privilège",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "chaque job dans un bac à sable (conteneur durci, microVM Firecracker/Kata, ou gVisor).",
      "preuve": "Configuration de sandbox par job (conteneur durci / microVM / gVisor).",
      "outils": [
        "Kyverno",
        "Conftest"
      ],
      "standards": [
        "SLSA Build L3 (isolation)",
        "OWASP CICD-SEC-4",
        "NIST 800-204D"
      ],
      "menaces": [
        "Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu.",
        "Un conteneur exploite une mauvaise configuration ou une faille pour s'échapper vers le nœud hôte du cluster et atteindre d'autres charges. Le cloisonnement du cluster est rompu (ATT&CK T1611)."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-d-execution-moindre-privilege/#socle-orc-exe-3"
    },
    {
      "id": "SOCLE-ORC-EXE-4",
      "n": 4,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EXE",
      "famille_nom": "Isolation d'exécution & moindre privilège",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "système de fichiers en lecture seule hors workspace pour les jobs.",
      "preuve": "Profils seccomp/AppArmor appliqués ; FS read-only hors workspace ; limites de ressources.",
      "outils": [
        "Kyverno",
        "Conftest"
      ],
      "standards": [
        "CIS Benchmarks",
        "ANSSI-BP-028",
        "SSDF PW.6"
      ],
      "menaces": [
        "Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu.",
        "Un conteneur de build accède aux périphériques ou capacités de l'hôte (montages, capabilities, hostPath) pour lire ou altérer des ressources hors de son périmètre. Les privilèges excessifs du conteneur ouvrent l'hôte."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-d-execution-moindre-privilege/#socle-orc-exe-4"
    },
    {
      "id": "SOCLE-ORC-EXE-5",
      "n": 5,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EXE",
      "famille_nom": "Isolation d'exécution & moindre privilège",
      "famille_ordre": 4,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "isolation microVM/hyperviseur entre jobs pour toute charge non fiable ou multi-tenant.",
      "preuve": "Preuve d'isolation de niveau microVM/hyperviseur entre jobs.",
      "outils": [
        "Kata Containers",
        "gVisor"
      ],
      "standards": [
        "SLSA Build L3",
        "NSA/CISA K8s Hardening",
        "CIS Benchmarks"
      ],
      "menaces": [
        "Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu.",
        "Un attaquant ayant obtenu l'exécution sur un hôte implante une persistance furtive au niveau du noyau ou du système : programme eBPF malveillant, extension système (systemd-sysext), module noyau ou hook de chargement. Le code survit aux redéploiements applicatifs, masque ses processus et connexions, et intercepte secrets et trafic. Les contrôles applicatifs et l'analyse d'image ne le voient pas : il vit sous la charge de travail, dans le plan hôte."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-d-execution-moindre-privilege/#socle-orc-exe-5"
    },
    {
      "id": "SOCLE-ORC-EXE-6",
      "n": 6,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EXE",
      "famille_nom": "Isolation d'exécution & moindre privilège",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "liste blanche des images et services autorisés pour les jobs ; pas d'exécution d'images ou de services arbitraires.",
      "preuve": "Allowlist des images/services (allowed_images, allowed_services) configurée.",
      "outils": [
        "Kyverno",
        "Conftest"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "CIS Benchmarks",
        "S2C2F"
      ],
      "menaces": [
        "Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu.",
        "L'image de base utilisée pour construire les conteneurs contient une charge malveillante ou une vulnérabilité, héritée par tous les artefacts qui en dérivent. Le socle d'exécution contamine toute la production."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-d-execution-moindre-privilege/#socle-orc-exe-6"
    },
    {
      "id": "SOCLE-ORC-EXE-7",
      "n": 7,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EXE",
      "famille_nom": "Isolation d'exécution & moindre privilège",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "profils de confinement seccomp/AppArmor appliqués aux jobs.",
      "preuve": "Profils seccomp/AppArmor actifs sur les runners.",
      "outils": [
        "Kyverno",
        "Conftest"
      ],
      "standards": [
        "CIS Benchmarks",
        "ANSSI-BP-028",
        "SSDF PW.6"
      ],
      "menaces": [
        "Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu.",
        "Un conteneur de build accède aux périphériques ou capacités de l'hôte (montages, capabilities, hostPath) pour lire ou altérer des ressources hors de son périmètre. Les privilèges excessifs du conteneur ouvrent l'hôte."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-d-execution-moindre-privilege/#socle-orc-exe-7"
    },
    {
      "id": "SOCLE-ORC-EXE-8",
      "n": 8,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "EXE",
      "famille_nom": "Isolation d'exécution & moindre privilège",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "limites de ressources (CPU, mémoire) imposées aux jobs.",
      "preuve": "Quotas/limits configurés sur les jobs/runners.",
      "outils": [
        "Kyverno",
        "Conftest"
      ],
      "standards": [
        "CIS Benchmarks",
        "ANSSI-BP-028",
        "SSDF PW.6"
      ],
      "menaces": [
        "Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-d-execution-moindre-privilege/#socle-orc-exe-8"
    },
    {
      "id": "SOCLE-ORC-GEN-1",
      "n": 1,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "durcissement de la plateforme CI/CD (configuration, accès) selon CIS et guides éditeurs.",
      "preuve": "Rapport de durcissement de la plateforme CI/CD (CIS / guides éditeurs) ; revue des accès.",
      "outils": [
        "zizmor",
        "poutine",
        "Legitify",
        "Plumber"
      ],
      "standards": [
        "CIS Benchmarks",
        "OWASP CICD-SEC-7",
        "ANSSI-BP-028",
        "PCI-DSS Req 7"
      ],
      "menaces": [
        "Le système de gestion de source lui-même (forge self-hosted, serveur Git) est compromis, donnant à l'attaquant le contrôle du code, des droits et des workflows. La racine de confiance du code tombe : tout en aval devient suspect.",
        "La plateforme d'orchestration CI/CD elle-même (serveur, contrôleur, base de secrets) est compromise, donnant le contrôle de tous les pipelines, secrets et déploiements. C'est le vecteur de plus haut impact : il rend caducs les contrôles en aval.",
        "Le registre de paquets ou un miroir est compromis, permettant d'altérer ou de substituer des artefacts pour tous ses utilisateurs. L'infrastructure de distribution devient le point de défaillance unique."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/#socle-orc-gen-1"
    },
    {
      "id": "SOCLE-ORC-GEN-2",
      "n": 2,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "contrôle de flux et IAM de la plateforme : aucun contournement des contrôles de pipeline.",
      "preuve": "Configuration des contrôles de flux et de l'IAM ; preuve d'impossibilité de contourner le pipeline.",
      "outils": [
        "zizmor",
        "poutine",
        "Legitify",
        "Plumber"
      ],
      "standards": [
        "OWASP CICD-SEC-1",
        "OWASP CICD-SEC-2",
        "PCI-DSS Req 7"
      ],
      "menaces": [
        "Poisoned Pipeline Execution directe : l'attaquant modifie la définition du pipeline (fichier de CI) pour y injecter des commandes exécutées avec les privilèges du build. Le contrôle du fichier de workflow donne le contrôle de l'exécution.",
        "Poisoned Pipeline Execution indirecte : l'injection passe par un fichier consommé par le pipeline (Makefile, script, configuration d'outil) plutôt que par le fichier de CI. Le résultat est identique : exécution de code attaquant dans le pipeline."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/#socle-orc-gen-2"
    },
    {
      "id": "SOCLE-ORC-GEN-3",
      "n": 3,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "exécuteurs (runners) durcis et isolés par niveau de confiance (inventaire, durcissement, configuration vérifiée).",
      "preuve": "Checklist de durcissement des exécuteurs appliquée ; configuration vérifiée.",
      "outils": [
        "zizmor",
        "poutine",
        "Legitify",
        "Plumber"
      ],
      "standards": [
        "CIS Benchmarks",
        "SLSA Build L3",
        "PCI-DSS Req 7"
      ],
      "menaces": [
        "La plateforme d'orchestration CI/CD elle-même (serveur, contrôleur, base de secrets) est compromise, donnant le contrôle de tous les pipelines, secrets et déploiements. C'est le vecteur de plus haut impact : il rend caducs les contrôles en aval."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/#socle-orc-gen-3"
    },
    {
      "id": "SOCLE-ORC-GEN-4",
      "n": 4,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "segmentation par tier de confiance des environnements d'exécution.",
      "preuve": "Schéma de segmentation des environnements d'exécution par tier de confiance.",
      "outils": [
        "zizmor",
        "poutine",
        "Legitify"
      ],
      "standards": [
        "NIST 800-207",
        "OWASP CICD-SEC-5",
        "PCI-DSS Req 7"
      ],
      "menaces": [
        "Un pipeline déclenché par une contribution publique exécute du code non fiable dans un contexte privilégié, exposant secrets et droits du projet. La surface vient de l'ouverture du pipeline aux contributions externes.",
        "Un runner auto-hébergé non éphémère conserve un état entre jobs (fichiers, secrets, processus), permettant à un job compromis de piéger les suivants ou d'exfiltrer des données d'autres pipelines. La persistance du runner est l'angle mort."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/#socle-orc-gen-4"
    },
    {
      "id": "SOCLE-ORC-GEN-5",
      "n": 5,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "configuration de la plateforme en IaC, auditée et versionnée.",
      "preuve": "Code IaC de la plateforme, versionné ; résultat d'audit de configuration.",
      "outils": [
        "zizmor",
        "poutine",
        "Legitify"
      ],
      "standards": [
        "SSDF PO.3",
        "SSDF PO.5",
        "NIST 800-204D",
        "PCI-DSS Req 7"
      ],
      "menaces": [
        "La plateforme d'orchestration CI/CD elle-même (serveur, contrôleur, base de secrets) est compromise, donnant le contrôle de tous les pipelines, secrets et déploiements. C'est le vecteur de plus haut impact : il rend caducs les contrôles en aval."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/#socle-orc-gen-5"
    },
    {
      "id": "SOCLE-ORC-GEN-6",
      "n": 6,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "intégrations tierces (OAuth, GitHub Apps, bots, serveurs MCP) connectées au SCM/CI inventoriées, au moindre privilège et revues.",
      "preuve": "Inventaire des intégrations tierces (OAuth/GitHub Apps/bots/MCP) ; revue des permissions et preuves de révocation.",
      "outils": [
        "zizmor",
        "poutine",
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-8",
        "NIST 800-207",
        "PCI-DSS Req 7"
      ],
      "menaces": [
        "Un attaquant contrôlant plusieurs comptes (ou un compte et un bot) approuve sa propre contribution, contournant l'exigence de revue par un tiers indépendant. La règle de revue existe mais est neutralisée par collusion d'identités.",
        "Un compte de service ou bot autorisé à fusionner sans revue à deux est détourné pour introduire du code, court-circuitant le contrôle humain. Les automatismes sur-privilégiés deviennent un chemin d'injection.",
        "Un service externe intégré au pipeline (scanner, notificateur, déployeur SaaS) est compromis et abuse de son accès au CI, aux secrets ou au code. La confiance déléguée à une tierce partie devient un chemin d'attaque (cas Codecov).",
        "Une application OAuth autorisée sur l'organisation est compromise et abuse de ses portées d'accès au code, aux secrets ou aux pipelines. La confiance accordée à une intégration tierce devient un accès attaquant (cas Heroku / Travis).",
        "Une GitHub App ou un bot disposant de permissions élevées est détourné pour agir sur les dépôts ou les workflows. Les privilèges de l'automate dépassent souvent le besoin, élargissant l'impact d'un abus.",
        "Un écart entre le moment de la vérification et le moment de l'usage (TOCTOU), exploité via un bot, permet de substituer un contenu validé par un contenu malveillant. La fenêtre entre contrôle et action est l'angle d'attaque.",
        "Un outil, skill ou serveur MCP exposé à un agent est piégé pour exécuter des actions malveillantes ou exfiltrer des données lorsqu'il est invoqué. L'agent, en appelant l'outil de confiance, déclenche la charge (ATLAS).",
        "Une application OAuth ou intégration SaaS de confiance, au-delà du SCM/CI (CRM, support, observabilité), est compromise ou abusée : consentement OAuth détourné, jetons volés, contournement MFA, pour persister et exfiltrer des données (ex. campagne Salesloft/Drift 2025). La confiance accordée à une intégration tierce devient un accès latéral au SI."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/#socle-orc-gen-6"
    },
    {
      "id": "SOCLE-ORC-GEN-7",
      "n": 7,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "révocation des intégrations tierces inutiles ou compromises (procédure et capacité testée).",
      "preuve": "Procédure de révocation ; trace de révocation d'intégrations.",
      "outils": [
        "zizmor",
        "poutine",
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-8",
        "NIST 800-207",
        "PCI-DSS Req 7"
      ],
      "menaces": [
        "Un service externe intégré au pipeline (scanner, notificateur, déployeur SaaS) est compromis et abuse de son accès au CI, aux secrets ou au code. La confiance déléguée à une tierce partie devient un chemin d'attaque (cas Codecov).",
        "Une application OAuth autorisée sur l'organisation est compromise et abuse de ses portées d'accès au code, aux secrets ou aux pipelines. La confiance accordée à une intégration tierce devient un accès attaquant (cas Heroku / Travis).",
        "Une GitHub App ou un bot disposant de permissions élevées est détourné pour agir sur les dépôts ou les workflows. Les privilèges de l'automate dépassent souvent le besoin, élargissant l'impact d'un abus.",
        "Une application OAuth ou intégration SaaS de confiance, au-delà du SCM/CI (CRM, support, observabilité), est compromise ou abusée : consentement OAuth détourné, jetons volés, contournement MFA, pour persister et exfiltrer des données (ex. campagne Salesloft/Drift 2025). La confiance accordée à une intégration tierce devient un accès latéral au SI."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/#socle-orc-gen-7"
    },
    {
      "id": "SOCLE-ORC-IDN-1",
      "n": 1,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "IDN",
      "famille_nom": "Identité, enregistrement & secrets",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "enregistrement via jeton à durée de vie courte (JIT) ; aucun jeton statique ni codé en dur.",
      "preuve": "Configuration d'enregistrement par jeton JIT ; absence de jeton statique dans scripts ou secrets.",
      "outils": [
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP CICD-SEC-2",
        "NIST 800-207",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Pendant un job, l'attaquant lit en mémoire le jeton OIDC court ou les identifiants fédérés pour s'authentifier auprès de services en aval. L'éphémérité du jeton ne protège pas si le job lui-même est compromis.",
        "Une fédération OIDC trop permissive (conditions de confiance larges, sujet non contraint) permet à un dépôt ou workflow non autorisé d'obtenir des identifiants cloud. L'identité courte censée remplacer les secrets devient elle-même un chemin d'accès."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/identite-enregistrement-secrets/#socle-orc-idn-1"
    },
    {
      "id": "SOCLE-ORC-IDN-2",
      "n": 2,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "IDN",
      "famille_nom": "Identité, enregistrement & secrets",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "accès aux ressources via identité fédérée courte (OIDC) ; aucun credential de longue durée sur le runner.",
      "preuve": "Configuration OIDC ; inspection : aucun credential de longue durée stocké sur le runner.",
      "outils": [
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "NIST 800-207",
        "SLSA (secrets de build)"
      ],
      "menaces": [
        "Pendant un job, l'attaquant lit en mémoire le jeton OIDC court ou les identifiants fédérés pour s'authentifier auprès de services en aval. L'éphémérité du jeton ne protège pas si le job lui-même est compromis.",
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol.",
        "Une fédération OIDC trop permissive (conditions de confiance larges, sujet non contraint) permet à un dépôt ou workflow non autorisé d'obtenir des identifiants cloud. L'identité courte censée remplacer les secrets devient elle-même un chemin d'accès."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/identite-enregistrement-secrets/#socle-orc-idn-2"
    },
    {
      "id": "SOCLE-ORC-IDN-3",
      "n": 3,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "IDN",
      "famille_nom": "Identité, enregistrement & secrets",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "secrets injectés juste-à-temps depuis un coffre ; aucun secret au repos.",
      "preuve": "Politiques du coffre (OpenBao/Vault) ; inspection d'environnement sans secret au repos.",
      "outils": [
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP ASVS v5.0.0 (V13)",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un job compromis balaie la mémoire ou l'environnement du runner pour récolter les secrets d'autres étapes ou pipelines. Le partage de runner sans isolation expose les secrets transverses."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/identite-enregistrement-secrets/#socle-orc-idn-3"
    },
    {
      "id": "SOCLE-ORC-IDN-4",
      "n": 4,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "IDN",
      "famille_nom": "Identité, enregistrement & secrets",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "jetons délivrés au job scopés au strict nécessaire, expirant en fin de job.",
      "preuve": "Définition du scope des jetons de job + TTL ; preuve d'expiration en fin de job.",
      "outils": [
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-2",
        "OWASP CICD-SEC-5",
        "NIST 800-207"
      ],
      "menaces": [
        "Une fédération OIDC trop permissive (conditions de confiance larges, sujet non contraint) permet à un dépôt ou workflow non autorisé d'obtenir des identifiants cloud. L'identité courte censée remplacer les secrets devient elle-même un chemin d'accès."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/identite-enregistrement-secrets/#socle-orc-idn-4"
    },
    {
      "id": "SOCLE-ORC-ITG-1",
      "n": 1,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "ITG",
      "famille_nom": "Intégrité & provenance du runner",
      "famille_ordre": 5,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "image de base minimale et durcie, correctifs à jour, outillage réduit au nécessaire.",
      "preuve": "Rapport de durcissement (OpenSCAP/CIS) ; image minimale, correctifs à jour.",
      "outils": [
        "zizmor",
        "poutine"
      ],
      "standards": [
        "CIS Benchmarks",
        "ANSSI-BP-028",
        "CIS Software Supply Chain"
      ],
      "menaces": [
        "L'image de base utilisée pour construire les conteneurs contient une charge malveillante ou une vulnérabilité, héritée par tous les artefacts qui en dérivent. Le socle d'exécution contamine toute la production."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/integrite-provenance-du-runner/#socle-orc-itg-1"
    },
    {
      "id": "SOCLE-ORC-ITG-2",
      "n": 2,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "ITG",
      "famille_nom": "Intégrité & provenance du runner",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "image construite via un pipeline tracé, versionnée et reproductible.",
      "preuve": "Pipeline de build de l'image (tracé, versionné) + attestation de reproductibilité.",
      "outils": [
        "zizmor",
        "poutine"
      ],
      "standards": [
        "SLSA Build L2-L3 (provenance)",
        "SSDF PS.2",
        "SSDF PW.6",
        "OWASP CICD-SEC-9"
      ],
      "menaces": [
        "La plateforme d'orchestration CI/CD elle-même (serveur, contrôleur, base de secrets) est compromise, donnant le contrôle de tous les pipelines, secrets et déploiements. C'est le vecteur de plus haut impact : il rend caducs les contrôles en aval.",
        "L'image de base utilisée pour construire les conteneurs contient une charge malveillante ou une vulnérabilité, héritée par tous les artefacts qui en dérivent. Le socle d'exécution contamine toute la production."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/integrite-provenance-du-runner/#socle-orc-itg-2"
    },
    {
      "id": "SOCLE-ORC-ITG-3",
      "n": 3,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "ITG",
      "famille_nom": "Intégrité & provenance du runner",
      "famille_ordre": 5,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "image signée et provenance vérifiée avant provisionnement.",
      "preuve": "Signature de l'image + vérification de provenance avant provisionnement.",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "SLSA Build L3 (provenance signée)",
        "Sigstore",
        "in-toto",
        "OWASP CICD-SEC-9"
      ],
      "menaces": [
        "L'image de base utilisée pour construire les conteneurs contient une charge malveillante ou une vulnérabilité, héritée par tous les artefacts qui en dérivent. Le socle d'exécution contamine toute la production.",
        "Un installeur officiel et signé est modifié à la source ou au build pour embarquer une charge, distribué via le canal légitime (cas CCleaner, 3CX). La signature valide endort la méfiance."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/integrite-provenance-du-runner/#socle-orc-itg-3"
    },
    {
      "id": "SOCLE-ORC-ITG-4",
      "n": 4,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "ITG",
      "famille_nom": "Intégrité & provenance du runner",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "runner et agents de sécurité déployés en IaC, configuration auditée.",
      "preuve": "Code IaC du runner + résultat d'audit de configuration.",
      "outils": [
        "zizmor",
        "poutine"
      ],
      "standards": [
        "SSDF PO.3",
        "SSDF PO.5",
        "CIS Benchmarks",
        "OWASP CICD-SEC-7"
      ],
      "menaces": [
        "La plateforme d'orchestration CI/CD elle-même (serveur, contrôleur, base de secrets) est compromise, donnant le contrôle de tous les pipelines, secrets et déploiements. C'est le vecteur de plus haut impact : il rend caducs les contrôles en aval."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/integrite-provenance-du-runner/#socle-orc-itg-4"
    },
    {
      "id": "SOCLE-ORC-NET-1",
      "n": 1,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "NET",
      "famille_nom": "Isolation réseau",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "aucune exposition entrante : le runner tire le travail (pull / webhook), sans port d'écoute public.",
      "preuve": "Topologie réseau : aucun port d'écoute entrant ; mode pull/webhook documenté.",
      "outils": [
        "Cilium"
      ],
      "standards": [
        "OWASP CICD-SEC-7",
        "NIST 800-207",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "La plateforme d'orchestration CI/CD elle-même (serveur, contrôleur, base de secrets) est compromise, donnant le contrôle de tous les pipelines, secrets et déploiements. C'est le vecteur de plus haut impact : il rend caducs les contrôles en aval.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-reseau/#socle-orc-net-1"
    },
    {
      "id": "SOCLE-ORC-NET-2",
      "n": 2,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "NET",
      "famille_nom": "Isolation réseau",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "filtrage de l'egress par liste d'autorisation ; tout flux sortant non listé est bloqué et journalisé.",
      "preuve": "Règles d'egress (allowlist) + journaux de blocage des flux non listés.",
      "outils": [
        "Cilium"
      ],
      "standards": [
        "OWASP CICD-SEC-7",
        "NIST 800-207",
        "CIS Benchmarks (réseau)"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis.",
        "Un job de build atteint le service de métadonnées d'instance (IMDS) pour récupérer les identifiants de rôle de la machine et pivoter vers le cloud. Sans IMDSv2 ni blocage réseau, le pipeline hérite des droits de l'hôte (ATT&CK T1552.005)."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-reseau/#socle-orc-net-2"
    },
    {
      "id": "SOCLE-ORC-NET-3",
      "n": 3,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "NET",
      "famille_nom": "Isolation réseau",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "aucun accès au SI corporate ni à la production ; segmentation réseau stricte.",
      "preuve": "Schéma de segmentation ; règles interdisant l'accès SI/prod depuis le runner.",
      "outils": [
        "Cilium"
      ],
      "standards": [
        "OWASP CICD-SEC-7",
        "NIST 800-207 (micro-segmentation)",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-reseau/#socle-orc-net-3"
    },
    {
      "id": "SOCLE-ORC-NET-4",
      "n": 4,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "NET",
      "famille_nom": "Isolation réseau",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "blocage de l'accès aux endpoints de métadonnées cloud (IMDS) depuis le contexte du job.",
      "preuve": "Règle de blocage IMDS (169.254.169.254) testée depuis un job.",
      "outils": [
        "Cilium"
      ],
      "standards": [
        "OWASP CICD-SEC-7",
        "CIS Benchmarks (durcissement cloud)"
      ],
      "menaces": [
        "Un job de build atteint le service de métadonnées d'instance (IMDS) pour récupérer les identifiants de rôle de la machine et pivoter vers le cloud. Sans IMDSv2 ni blocage réseau, le pipeline hérite des droits de l'hôte (ATT&CK T1552.005)."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-reseau/#socle-orc-net-4"
    },
    {
      "id": "SOCLE-ORC-NET-5",
      "n": 5,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "NET",
      "famille_nom": "Isolation réseau",
      "famille_ordre": 3,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "contextes sensibles : architecture air-gap, dépôts et registres en miroir interne.",
      "preuve": "Preuve d'architecture air-gap ; miroirs internes des dépôts et registres.",
      "outils": [
        "Cilium"
      ],
      "standards": [
        "ANSSI (diffusion restreinte)",
        "SLSA (build hermétique)",
        "CIS Benchmarks"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-reseau/#socle-orc-net-5"
    },
    {
      "id": "SOCLE-ORC-NET-6",
      "n": 6,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "NET",
      "famille_nom": "Isolation réseau",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "communication runner ↔ serveur chiffrée (TLS/HTTPS) ; jamais de transport en clair.",
      "preuve": "URL en https et tls-ca-file configurés ; aucun endpoint en http.",
      "outils": [
        "Cilium"
      ],
      "standards": [
        "NIST 800-207",
        "ANSSI-BP-028",
        "OWASP CICD-SEC-7"
      ],
      "menaces": [
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/isolation-reseau/#socle-orc-net-6"
    },
    {
      "id": "SOCLE-ORC-OBS-1",
      "n": 1,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "OBS",
      "famille_nom": "Observabilité, détection & réponse",
      "famille_ordre": 7,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "journalisation des exécutions conservée, horodatée et traçable.",
      "preuve": "Échantillon de journaux d'exécution (horodatés, conservés, traçables).",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-10",
        "OWASP ASVS v5.0.0 (V16)",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Pendant un job, l'attaquant lit en mémoire le jeton OIDC court ou les identifiants fédérés pour s'authentifier auprès de services en aval. L'éphémérité du jeton ne protège pas si le job lui-même est compromis.",
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/observabilite-detection-reponse/#socle-orc-obs-1"
    },
    {
      "id": "SOCLE-ORC-OBS-2",
      "n": 2,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "OBS",
      "famille_nom": "Observabilité, détection & réponse",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "surveillance runtime : connexions sortantes, activité fichier, processus (ex. eBPF).",
      "preuve": "Configuration de surveillance runtime (eBPF/agent) active sur les runners.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-10",
        "SSDF RV.1",
        "MITRE ATT&CK"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/observabilite-detection-reponse/#socle-orc-obs-2"
    },
    {
      "id": "SOCLE-ORC-OBS-3",
      "n": 3,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "OBS",
      "famille_nom": "Observabilité, détection & réponse",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "détection d'exfiltration de secrets et d'anomalies comportementales ; alerte sur flux non autorisé.",
      "preuve": "Règles de détection d'exfiltration/anomalies + exemple d'alerte.",
      "outils": [
        "Harden-Runner",
        "Falco"
      ],
      "standards": [
        "OWASP CICD-SEC-10",
        "OWASP CICD-SEC-6",
        "MITRE ATT&CK"
      ],
      "menaces": [
        "Pendant un job, l'attaquant lit en mémoire le jeton OIDC court ou les identifiants fédérés pour s'authentifier auprès de services en aval. L'éphémérité du jeton ne protège pas si le job lui-même est compromis.",
        "Un paquet compromis vole les jetons de publication des mainteneurs qui l'installent et republie automatiquement d'autres paquets, se propageant de proche en proche (cas Shai-Hulud). L'auto-propagation transforme une compromission isolée en épidémie.",
        "Un job compromis balaie la mémoire ou l'environnement du runner pour récolter les secrets d'autres étapes ou pipelines. Le partage de runner sans isolation expose les secrets transverses."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/observabilite-detection-reponse/#socle-orc-obs-3"
    },
    {
      "id": "SOCLE-ORC-OBS-4",
      "n": 4,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "OBS",
      "famille_nom": "Observabilité, détection & réponse",
      "famille_ordre": 7,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "collecte forensique préservée par job ; procédure de réponse à incident définie et testée.",
      "preuve": "Procédure de réponse à incident testée + preuve de collecte forensique par job.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-10",
        "SSDF RV.2-RV.3",
        "ISO 27001 (gestion d'incident)"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/observabilite-detection-reponse/#socle-orc-obs-4"
    },
    {
      "id": "SOCLE-ORC-SEG-1",
      "n": 1,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "SEG",
      "famille_nom": "Affectation, segmentation & gouvernance",
      "famille_ordre": 6,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "les runners auto-hébergés ne sont JAMAIS utilisés avec des dépôts publics ni des workflows déclenchés par des forks non fiables.",
      "preuve": "Vérification : aucun runner auto-hébergé sur dépôt public / workflow de fork non fiable.",
      "outils": [
        "Cilium"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "GitHub Actions hardening (self-hosted)",
        "OWASP CICD-SEC-1"
      ],
      "menaces": [
        "Un workflow déclenché sur pull_request_target (ou équivalent) exécute le code d'un fork non fiable avec le contexte et les secrets du dépôt cible. Une simple pull request d'un inconnu obtient l'exécution privilégiée et les jetons du projet.",
        "Poisoned Pipeline Execution directe : l'attaquant modifie la définition du pipeline (fichier de CI) pour y injecter des commandes exécutées avec les privilèges du build. Le contrôle du fichier de workflow donne le contrôle de l'exécution.",
        "Un pipeline déclenché par une contribution publique exécute du code non fiable dans un contexte privilégié, exposant secrets et droits du projet. La surface vient de l'ouverture du pipeline aux contributions externes.",
        "Un runner auto-hébergé non éphémère conserve un état entre jobs (fichiers, secrets, processus), permettant à un job compromis de piéger les suivants ou d'exfiltrer des données d'autres pipelines. La persistance du runner est l'angle mort."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/affectation-segmentation-gouvernance/#socle-orc-seg-1"
    },
    {
      "id": "SOCLE-ORC-SEG-2",
      "n": 2,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "SEG",
      "famille_nom": "Affectation, segmentation & gouvernance",
      "famille_ordre": 6,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "segmentation par tier de confiance via runner groups ; aucun partage public/privé ou dev/prod.",
      "preuve": "Configuration des runner groups par tier ; absence de partage public/privé, dev/prod.",
      "outils": [
        "Cilium"
      ],
      "standards": [
        "OWASP CICD-SEC-1",
        "OWASP CICD-SEC-5",
        "NIST 800-207",
        "SSDF PO.5"
      ],
      "menaces": [
        "Poisoned Pipeline Execution directe : l'attaquant modifie la définition du pipeline (fichier de CI) pour y injecter des commandes exécutées avec les privilèges du build. Le contrôle du fichier de workflow donne le contrôle de l'exécution."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/affectation-segmentation-gouvernance/#socle-orc-seg-2"
    },
    {
      "id": "SOCLE-ORC-SEG-3",
      "n": 3,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "SEG",
      "famille_nom": "Affectation, segmentation & gouvernance",
      "famille_ordre": 6,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "affectation restreinte aux dépôts/workflows autorisés ; pas d'association org-wide par défaut.",
      "preuve": "Matrice d'affectation dépôts/workflows ; pas d'association org-wide par défaut.",
      "outils": [
        "Cilium",
        "Plumber"
      ],
      "standards": [
        "OWASP CICD-SEC-5",
        "OWASP CICD-SEC-2"
      ],
      "menaces": [
        "Poisoned Pipeline Execution directe : l'attaquant modifie la définition du pipeline (fichier de CI) pour y injecter des commandes exécutées avec les privilèges du build. Le contrôle du fichier de workflow donne le contrôle de l'exécution.",
        "Un pipeline déclenché par une contribution publique exécute du code non fiable dans un contexte privilégié, exposant secrets et droits du projet. La surface vient de l'ouverture du pipeline aux contributions externes."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/affectation-segmentation-gouvernance/#socle-orc-seg-3"
    },
    {
      "id": "SOCLE-ORC-SEG-4",
      "n": 4,
      "domaine": "ORC",
      "domaine_nom": "Plateforme & orchestration",
      "famille": "SEG",
      "famille_nom": "Affectation, segmentation & gouvernance",
      "famille_ordre": 6,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "RBAC sur l'enregistrement et l'usage des runners ; séparation des privilèges de déploiement.",
      "preuve": "Politique RBAC sur enregistrement/usage ; séparation des privilèges de déploiement.",
      "outils": [
        "Cilium",
        "Plumber"
      ],
      "standards": [
        "OWASP CICD-SEC-2",
        "OWASP CICD-SEC-5",
        "NIST 800-207"
      ],
      "menaces": [
        "Un runner auto-hébergé non éphémère conserve un état entre jobs (fichiers, secrets, processus), permettant à un job compromis de piéger les suivants ou d'exfiltrer des données d'autres pipelines. La persistance du runner est l'angle mort.",
        "La plateforme d'orchestration CI/CD elle-même (serveur, contrôleur, base de secrets) est compromise, donnant le contrôle de tous les pipelines, secrets et déploiements. C'est le vecteur de plus haut impact : il rend caducs les contrôles en aval."
      ],
      "href": "/docs/securiser/socle/referentiel/orchestration/affectation-segmentation-gouvernance/#socle-orc-seg-4"
    },
    {
      "id": "SOCLE-PKG-GEN-1",
      "n": 1,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "SBOM généré pour chaque artefact (CycloneDX ou SPDX).",
      "preuve": "SBOM (CycloneDX/SPDX) généré par artefact.",
      "outils": [
        "Trivy",
        "Syft"
      ],
      "standards": [
        "CRA",
        "CycloneDX (ECMA-424)",
        "SPDX",
        "SSDF PS.3",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-gen-1"
    },
    {
      "id": "SOCLE-PKG-GEN-2",
      "n": 2,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "scan de vulnérabilités des images/artefacts avant publication.",
      "preuve": "Rapport de scan de vulnérabilités des images/artefacts avant publication.",
      "outils": [
        "Trivy",
        "Syft"
      ],
      "standards": [
        "OWASP A03",
        "SSDF RV.1",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "L'artefact est modifié après sa construction mais avant sa publication ou son déploiement, échappant aux contrôles appliqués au code source. Sans intégrité de bout en bout, l'artefact livré diffère de celui qui a été buildé."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-gen-2"
    },
    {
      "id": "SOCLE-PKG-GEN-3",
      "n": 3,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "images de base minimales et durcies ; aucun secret dans les artefacts.",
      "preuve": "Images minimales et durcies ; inspection d'absence de secrets dans les artefacts.",
      "outils": [
        "Trivy",
        "Syft"
      ],
      "standards": [
        "CIS Benchmarks",
        "OWASP CICD-SEC-6",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Un secret (clé, jeton, mot de passe) est inclus par erreur dans l'image ou le paquet publié, exposé à tous ses consommateurs. La fuite se propage à chaque téléchargement de l'artefact."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-gen-3"
    },
    {
      "id": "SOCLE-PKG-GEN-4",
      "n": 4,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "artefacts stockés dans un registre contrôlé, avec rétention et immutabilité.",
      "preuve": "Configuration du registre : rétention et immutabilité.",
      "outils": [
        "Trivy",
        "Syft"
      ],
      "standards": [
        "OWASP CICD-SEC-9",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "L'artefact est modifié après sa construction mais avant sa publication ou son déploiement, échappant aux contrôles appliqués au code source. Sans intégrité de bout en bout, l'artefact livré diffère de celui qui a été buildé.",
        "Un tag mutable (latest, une version) est réécrit pour pointer vers un artefact malveillant, livré aux consommateurs qui font confiance au tag plutôt qu'au digest. La mutabilité brise l'immuabilité attendue d'une version publiée."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-gen-4"
    },
    {
      "id": "SOCLE-PKG-IMG-1",
      "n": 1,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "IMG",
      "famille_nom": "Durcissement des images & artefacts",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "images minimales (distroless / base réduite) ; surface d'attaque réduite au nécessaire.",
      "preuve": "Image minimale (distroless / base réduite).",
      "outils": [
        "Trivy",
        "Grype"
      ],
      "standards": [
        "CIS Benchmarks",
        "OWASP CICD-SEC-9"
      ],
      "menaces": [
        "Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu.",
        "L'image de base utilisée pour construire les conteneurs contient une charge malveillante ou une vulnérabilité, héritée par tous les artefacts qui en dérivent. Le socle d'exécution contamine toute la production."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-img-1"
    },
    {
      "id": "SOCLE-PKG-IMG-2",
      "n": 2,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "IMG",
      "famille_nom": "Durcissement des images & artefacts",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "conteneur tournant sous utilisateur non-root ; pas de shell ni d'outillage superflu en production.",
      "preuve": "Conteneur en non-root ; pas d'outillage superflu.",
      "outils": [
        "Trivy",
        "Grype"
      ],
      "standards": [
        "CIS Benchmarks",
        "NSA/CISA K8s Hardening"
      ],
      "menaces": [
        "Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-img-2"
    },
    {
      "id": "SOCLE-PKG-IMG-3",
      "n": 3,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "IMG",
      "famille_nom": "Durcissement des images & artefacts",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "aucun secret embarqué dans l'artefact ou l'image (build args, layers, variables d'environnement).",
      "preuve": "Inspection : aucun secret embarqué dans l'artefact/l'image.",
      "outils": [
        "Trivy",
        "Grype"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP ASVS v5.0.0 (V13)"
      ],
      "menaces": [
        "Un secret (clé, jeton, mot de passe) est inclus par erreur dans l'image ou le paquet publié, exposé à tous ses consommateurs. La fuite se propage à chaque téléchargement de l'artefact."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-img-3"
    },
    {
      "id": "SOCLE-PKG-IMG-4",
      "n": 4,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "IMG",
      "famille_nom": "Durcissement des images & artefacts",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "builds d'images reproductibles ; layers déterministes.",
      "preuve": "Attestation de build d'image reproductible.",
      "outils": [
        "Trivy",
        "Grype"
      ],
      "standards": [
        "SLSA",
        "SSDF PW.6"
      ],
      "menaces": [
        "L'artefact est modifié après sa construction mais avant sa publication ou son déploiement, échappant aux contrôles appliqués au code source. Sans intégrité de bout en bout, l'artefact livré diffère de celui qui a été buildé."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-img-4"
    },
    {
      "id": "SOCLE-PKG-REG-1",
      "n": 1,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "REG",
      "famille_nom": "Registre & intégrité",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "artefacts stockés dans un registre contrôlé, avec immutabilité (tags non réécrits) et rétention.",
      "preuve": "Registre contrôlé : immutabilité des tags et rétention.",
      "outils": [
        "Harbor"
      ],
      "standards": [
        "OWASP CICD-SEC-9"
      ],
      "menaces": [
        "L'artefact est modifié après sa construction mais avant sa publication ou son déploiement, échappant aux contrôles appliqués au code source. Sans intégrité de bout en bout, l'artefact livré diffère de celui qui a été buildé.",
        "Un tag mutable (latest, une version) est réécrit pour pointer vers un artefact malveillant, livré aux consommateurs qui font confiance au tag plutôt qu'au digest. La mutabilité brise l'immuabilité attendue d'une version publiée."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-reg-1"
    },
    {
      "id": "SOCLE-PKG-REG-2",
      "n": 2,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "REG",
      "famille_nom": "Registre & intégrité",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "accès au registre au moindre privilège (RBAC) ; push restreint à la chaîne de build.",
      "preuve": "RBAC du registre ; push restreint à la chaîne de build.",
      "outils": [
        "Harbor"
      ],
      "standards": [
        "OWASP CICD-SEC-2",
        "NIST 800-207"
      ],
      "menaces": [
        "Le registre de paquets ou un miroir est compromis, permettant d'altérer ou de substituer des artefacts pour tous ses utilisateurs. L'infrastructure de distribution devient le point de défaillance unique."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-reg-2"
    },
    {
      "id": "SOCLE-PKG-REG-3",
      "n": 3,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "REG",
      "famille_nom": "Registre & intégrité",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "signature de l'artefact à la publication et provenance attachée.",
      "preuve": "Signature de l'artefact à la publication ; provenance attachée.",
      "outils": [
        "Harbor"
      ],
      "standards": [
        "SLSA",
        "Sigstore"
      ],
      "menaces": [
        "L'artefact est modifié après sa construction mais avant sa publication ou son déploiement, échappant aux contrôles appliqués au code source. Sans intégrité de bout en bout, l'artefact livré diffère de celui qui a été buildé.",
        "L'attestation de provenance est forgée ou altérée pour faire croire qu'un artefact provient d'un build légitime. Sans provenance non falsifiable (build isolé, signature), la traçabilité est trompeuse."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-reg-3"
    },
    {
      "id": "SOCLE-PKG-SBM-1",
      "n": 1,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "SBM",
      "famille_nom": "SBOM & transparence des composants",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "SBOM complet par artefact (composants directs et transitifs, licences, empreintes) au format normalisé (CycloneDX ou SPDX).",
      "preuve": "SBOM complet par artefact (composants, licences, hashes) au format CycloneDX/SPDX.",
      "outils": [
        "Syft",
        "cdxgen"
      ],
      "standards": [
        "CRA",
        "CycloneDX (ECMA-424)",
        "SPDX",
        "SSDF PS.3"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-sbm-1"
    },
    {
      "id": "SOCLE-PKG-SBM-2",
      "n": 2,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "SBM",
      "famille_nom": "SBOM & transparence des composants",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "SBOM attaché à l'artefact et conservé (versionné, récupérable par les consommateurs).",
      "preuve": "SBOM attaché et conservé, récupérable par les consommateurs.",
      "outils": [
        "Syft",
        "cdxgen"
      ],
      "standards": [
        "CRA",
        "SSDF PS.3"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-sbm-2"
    },
    {
      "id": "SOCLE-PKG-SBM-3",
      "n": 3,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "SBM",
      "famille_nom": "SBOM & transparence des composants",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "complétude du SBOM vérifiée (pas de composant fantôme) ; SBOM généré au build, pas a posteriori.",
      "preuve": "Vérification de complétude du SBOM (généré au build).",
      "outils": [
        "Syft",
        "cdxgen"
      ],
      "standards": [
        "CRA",
        "OWASP SCVS"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-sbm-3"
    },
    {
      "id": "SOCLE-PKG-SCN-1",
      "n": 1,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "SCN",
      "famille_nom": "Analyse avant publication",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "scan de vulnérabilités des artefacts/images avant publication ; gate bloquant sur criticités hautes.",
      "preuve": "Rapport de scan de vulnérabilités avant publication ; gate bloquant.",
      "outils": [
        "Trivy",
        "Grype"
      ],
      "standards": [
        "OWASP A03",
        "SSDF RV.1"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "L'image de base utilisée pour construire les conteneurs contient une charge malveillante ou une vulnérabilité, héritée par tous les artefacts qui en dérivent. Le socle d'exécution contamine toute la production."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-scn-1"
    },
    {
      "id": "SOCLE-PKG-SCN-2",
      "n": 2,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "SCN",
      "famille_nom": "Analyse avant publication",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "scan de malware et de secrets de l'artefact (pas seulement CVE) avant publication.",
      "preuve": "Scan malware/secrets de l'artefact avant publication.",
      "outils": [
        "Trivy",
        "Grype"
      ],
      "standards": [
        "OWASP CICD-SEC-9",
        "OWASP A03"
      ],
      "menaces": [
        "Un installeur officiel et signé est modifié à la source ou au build pour embarquer une charge, distribué via le canal légitime (cas CCleaner, 3CX). La signature valide endort la méfiance."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-scn-2"
    },
    {
      "id": "SOCLE-PKG-SCN-3",
      "n": 3,
      "domaine": "PKG",
      "domaine_nom": "Packaging & artefacts",
      "famille": "SCN",
      "famille_nom": "Analyse avant publication",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "conformité des licences vérifiée (politique de licences) avant publication.",
      "preuve": "Vérification de conformité des licences avant publication.",
      "outils": [
        "Trivy",
        "Grype"
      ],
      "standards": [
        "ISO 5230/18974",
        "OWASP SCVS"
      ],
      "menaces": [
        "Le mainteneur saborde délibérément son propre composant pour des raisons idéologiques ou politiques (protestware) : code destructeur, messages, ou comportements ciblant certains utilisateurs. La confiance accordée au paquet se retourne contre ses consommateurs lors d'une simple mise à jour (cas node-ipc)."
      ],
      "href": "/docs/securiser/socle/referentiel/packaging/#socle-pkg-scn-3"
    },
    {
      "id": "SOCLE-REL-GEN-1",
      "n": 1,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "signature des artefacts publiés.",
      "preuve": "Signature des artefacts publiés.",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "SLSA",
        "Sigstore",
        "SSDF PS.2",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "L'artefact est modifié après sa construction mais avant sa publication ou son déploiement, échappant aux contrôles appliqués au code source. Sans intégrité de bout en bout, l'artefact livré diffère de celui qui a été buildé.",
        "L'attestation de provenance est forgée ou altérée pour faire croire qu'un artefact provient d'un build légitime. Sans provenance non falsifiable (build isolé, signature), la traçabilité est trompeuse."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-gen-1"
    },
    {
      "id": "SOCLE-REL-GEN-2",
      "n": 2,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "provenance générée et attachée (in-toto), vérifiable par les consommateurs.",
      "preuve": "Provenance in-toto générée et attachée, vérifiable par les consommateurs.",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "SLSA Build L2-L3",
        "in-toto",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "L'attestation de provenance est forgée ou altérée pour faire croire qu'un artefact provient d'un build légitime. Sans provenance non falsifiable (build isolé, signature), la traçabilité est trompeuse."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-gen-2"
    },
    {
      "id": "SOCLE-REL-GEN-3",
      "n": 3,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "vérification d'intégrité avant promotion / publication.",
      "preuve": "Procédure de vérification d'intégrité avant promotion/publication.",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "OWASP CICD-SEC-9",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "L'artefact est modifié après sa construction mais avant sa publication ou son déploiement, échappant aux contrôles appliqués au code source. Sans intégrité de bout en bout, l'artefact livré diffère de celui qui a été buildé.",
        "Le canal par lequel le logiciel est distribué (site de téléchargement, CDN, miroir, mise à jour) est compromis pour livrer une version trojanisée aux utilisateurs finaux. La compromission frappe en aval de la production, au plus près des victimes."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-gen-3"
    },
    {
      "id": "SOCLE-REL-GEN-4",
      "n": 4,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": true,
      "profils": [
        "souverain",
        "paiement"
      ],
      "texte": "provenance non falsifiable (build isolé L3) pour les artefacts sensibles.",
      "preuve": "Preuve de build isolé L3 et de provenance non falsifiable pour les artefacts sensibles.",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "SLSA Build L3",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Un installeur officiel et signé est modifié à la source ou au build pour embarquer une charge, distribué via le canal légitime (cas CCleaner, 3CX). La signature valide endort la méfiance."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-gen-4"
    },
    {
      "id": "SOCLE-REL-GEN-5",
      "n": 5,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "gestion des clés de signature (rotation, HSM/KMS).",
      "preuve": "Procédure de gestion des clés de signature (rotation, HSM/KMS).",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "ANSSI",
        "OWASP ASVS v5.0.0 (V11)",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "La clé privée de signature des artefacts est volée (stockage en clair, longue durée, hors HSM), permettant de signer des livrables malveillants présentés comme authentiques. La signature, censée prouver l'authenticité, est retournée contre les consommateurs."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-gen-5"
    },
    {
      "id": "SOCLE-REL-GEN-6",
      "n": 6,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "publication via trusted publishing (identité OIDC courte) plutôt que jetons de registre longue durée ; compte de publication protégé (2FA, contrôle des changements de propriété/email).",
      "preuve": "Configuration de trusted publishing (OIDC) ; protection du compte de publication (2FA, contrôle propriété/email).",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "OpenSSF Trusted Publishers",
        "SLSA",
        "OWASP CICD-SEC-6",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Le jeton de publication (PAT) d'un éditeur d'extension fuite, permettant de pousser une mise à jour piégée diffusée automatiquement à toute la base installée. Une seule fuite de jeton compromet des milliers de postes via le canal de mise à jour de confiance.",
        "Pendant un job, l'attaquant lit en mémoire le jeton OIDC court ou les identifiants fédérés pour s'authentifier auprès de services en aval. L'éphémérité du jeton ne protège pas si le job lui-même est compromis.",
        "Le compte d'un éditeur sur un registre (npm, PyPI, conteneurs) est pris (phishing, réutilisation de mot de passe, absence de MFA), permettant de publier des versions malveillantes sous une identité de confiance. C'est le vecteur le plus fréquent des compromissions de paquets.",
        "Un jeton de publication de longue durée fuite (CI, poste, dépôt) et sert à pousser des versions piégées sans interaction avec le compte. La durée de vie excessive du jeton élargit la fenêtre d'abus.",
        "Un paquet compromis vole les jetons de publication des mainteneurs qui l'installent et republie automatiquement d'autres paquets, se propageant de proche en proche (cas Shai-Hulud). L'auto-propagation transforme une compromission isolée en épidémie.",
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-gen-6"
    },
    {
      "id": "SOCLE-REL-GEN-7",
      "n": 7,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "crypto-agilité : inventaire des algorithmes cryptographiques (CBOM), capacité de substitution/rotation des algorithmes, et trajectoire de migration post-quantique planifiée (horizon ANSSI/UE 2030).",
      "preuve": "Inventaire cryptographique (CBOM) ; plan de crypto-agilité et de migration post-quantique daté.",
      "outils": [
        "cosign",
        "slsa-verifier"
      ],
      "standards": [
        "NIST FIPS 204",
        "ANSSI (crypto-agilité)",
        "CycloneDX (CBOM)",
        "CNCF SSC (Artefacts)",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "La clé privée de signature des artefacts est volée (stockage en clair, longue durée, hors HSM), permettant de signer des livrables malveillants présentés comme authentiques. La signature, censée prouver l'authenticité, est retournée contre les consommateurs."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-gen-7"
    },
    {
      "id": "SOCLE-REL-KEY-1",
      "n": 1,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "KEY",
      "famille_nom": "Signature & gestion des clés",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "clés de signature gérées dans un KMS/HSM ; aucune clé privée en clair.",
      "preuve": "Clés de signature en KMS/HSM ; absence de clé privée en clair.",
      "outils": [
        "cosign"
      ],
      "standards": [
        "ANSSI",
        "OWASP ASVS v5.0.0 (V11)"
      ],
      "menaces": [
        "La clé privée de signature des artefacts est volée (stockage en clair, longue durée, hors HSM), permettant de signer des livrables malveillants présentés comme authentiques. La signature, censée prouver l'authenticité, est retournée contre les consommateurs."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-key-1"
    },
    {
      "id": "SOCLE-REL-KEY-2",
      "n": 2,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "KEY",
      "famille_nom": "Signature & gestion des clés",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "rotation et révocation des clés de signature documentées et testées.",
      "preuve": "Procédure de rotation/révocation des clés, testée.",
      "outils": [
        "cosign"
      ],
      "standards": [
        "ANSSI",
        "SSDF PO.5"
      ],
      "menaces": [
        "La clé privée de signature des artefacts est volée (stockage en clair, longue durée, hors HSM), permettant de signer des livrables malveillants présentés comme authentiques. La signature, censée prouver l'authenticité, est retournée contre les consommateurs."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-key-2"
    },
    {
      "id": "SOCLE-REL-KEY-3",
      "n": 3,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "KEY",
      "famille_nom": "Signature & gestion des clés",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "signature sans clé de longue durée (identité éphémère, ex. keyless/Fulcio).",
      "preuve": "Configuration de signature keyless (identité éphémère).",
      "outils": [
        "cosign"
      ],
      "standards": [
        "Sigstore",
        "OpenSSF Trusted Publishers"
      ],
      "menaces": [
        "La clé privée de signature des artefacts est volée (stockage en clair, longue durée, hors HSM), permettant de signer des livrables malveillants présentés comme authentiques. La signature, censée prouver l'authenticité, est retournée contre les consommateurs."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-key-3"
    },
    {
      "id": "SOCLE-REL-KEY-4",
      "n": 4,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "KEY",
      "famille_nom": "Signature & gestion des clés",
      "famille_ordre": 1,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "signature post-quantique ou hybride (ML-DSA / SLH-DSA, NIST FIPS 204/205) pour les artefacts sensibles à longue durée de conservation.",
      "preuve": "Signature post-quantique/hybride en place sur les artefacts sensibles longue conservation ; agilité des algorithmes.",
      "outils": [
        "cosign"
      ],
      "standards": [
        "NIST FIPS 204",
        "NIST FIPS 205",
        "ANSSI (PQC hybride)",
        "Sigstore (ML-DSA)"
      ],
      "menaces": [
        "La clé privée de signature des artefacts est volée (stockage en clair, longue durée, hors HSM), permettant de signer des livrables malveillants présentés comme authentiques. La signature, censée prouver l'authenticité, est retournée contre les consommateurs."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-key-4"
    },
    {
      "id": "SOCLE-REL-PRV-1",
      "n": 1,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "PRV",
      "famille_nom": "Provenance & attestation",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "la provenance décrit builder, source et paramètres de build (non répudiable).",
      "preuve": "Provenance décrivant builder, source et paramètres de build.",
      "outils": [
        "slsa-verifier",
        "in-toto",
        "Witness"
      ],
      "standards": [
        "SLSA Build L2-L3",
        "in-toto",
        "SSDF PS.2"
      ],
      "menaces": [
        "L'attestation de provenance est forgée ou altérée pour faire croire qu'un artefact provient d'un build légitime. Sans provenance non falsifiable (build isolé, signature), la traçabilité est trompeuse."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-prv-1"
    },
    {
      "id": "SOCLE-REL-PRV-2",
      "n": 2,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "PRV",
      "famille_nom": "Provenance & attestation",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "attestations complémentaires (SBOM, tests, scan) liées à l'artefact.",
      "preuve": "Attestations complémentaires (SBOM, tests, scan) liées à l'artefact.",
      "outils": [
        "slsa-verifier",
        "in-toto",
        "Witness"
      ],
      "standards": [
        "in-toto",
        "CycloneDX (ECMA-424)",
        "SSDF PS.3"
      ],
      "menaces": [
        "L'attestation de provenance est forgée ou altérée pour faire croire qu'un artefact provient d'un build légitime. Sans provenance non falsifiable (build isolé, signature), la traçabilité est trompeuse."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-prv-2"
    },
    {
      "id": "SOCLE-REL-PRV-3",
      "n": 3,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "PRV",
      "famille_nom": "Provenance & attestation",
      "famille_ordre": 2,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "provenance ancrée matériellement : attestation à distance d'un environnement d'exécution de confiance (TEE - AMD SEV-SNP, Intel TDX, AWS Nitro) pour le builder, couplée à des builds reproductibles pour la vérification sémantique.",
      "preuve": "Attestation TEE du builder (SEV-SNP/TDX/Nitro) ; builds reproductibles vérifiés.",
      "outils": [
        "slsa-verifier",
        "in-toto",
        "Witness"
      ],
      "standards": [
        "SLSA Build L3",
        "NIST 800-204D",
        "ANSSI"
      ],
      "menaces": [
        "L'attestation de provenance est forgée ou altérée pour faire croire qu'un artefact provient d'un build légitime. Sans provenance non falsifiable (build isolé, signature), la traçabilité est trompeuse.",
        "Le build est compromis en amont, si bien que la provenance est techniquement valide mais atteste d'un artefact malveillant. La provenance prouve l'origine, pas l'innocuité : un build corrompu produit une attestation correcte d'un mauvais résultat."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-prv-3"
    },
    {
      "id": "SOCLE-REL-PUB-1",
      "n": 1,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "PUB",
      "famille_nom": "Publication & trusted publishing",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "compte de publication protégé : MFA résistante au phishing (WebAuthn/FIDO2), contrôle des changements de propriété/email ; publication via OIDC / trusted publishing à jetons éphémères privilégiée.",
      "preuve": "Protection du compte de publication (2FA, contrôle propriété/email).",
      "outils": [
        "OpenSSF Trusted Publishers"
      ],
      "standards": [
        "OpenSSF Trusted Publishers",
        "OWASP CICD-SEC-6",
        "OWASP CICD-SEC-2"
      ],
      "menaces": [
        "Le jeton de publication (PAT) d'un éditeur d'extension fuite, permettant de pousser une mise à jour piégée diffusée automatiquement à toute la base installée. Une seule fuite de jeton compromet des milliers de postes via le canal de mise à jour de confiance.",
        "Le compte d'un éditeur sur un registre (npm, PyPI, conteneurs) est pris (phishing, réutilisation de mot de passe, absence de MFA), permettant de publier des versions malveillantes sous une identité de confiance. C'est le vecteur le plus fréquent des compromissions de paquets."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-pub-1"
    },
    {
      "id": "SOCLE-REL-PUB-2",
      "n": 2,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "PUB",
      "famille_nom": "Publication & trusted publishing",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "artefacts publiés dans un registre contrôlé, avec rétention et immutabilité.",
      "preuve": "Registre contrôlé avec rétention et immutabilité.",
      "outils": [
        "OpenSSF Trusted Publishers"
      ],
      "standards": [
        "OWASP CICD-SEC-9"
      ],
      "menaces": [
        "Un tag mutable (latest, une version) est réécrit pour pointer vers un artefact malveillant, livré aux consommateurs qui font confiance au tag plutôt qu'au digest. La mutabilité brise l'immuabilité attendue d'une version publiée.",
        "Le registre de paquets ou un miroir est compromis, permettant d'altérer ou de substituer des artefacts pour tous ses utilisateurs. L'infrastructure de distribution devient le point de défaillance unique."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-pub-2"
    },
    {
      "id": "SOCLE-REL-PUB-3",
      "n": 3,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "PUB",
      "famille_nom": "Publication & trusted publishing",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "versionnement et étiquetage immuables des releases.",
      "preuve": "Versionnement et étiquetage immuables des releases.",
      "outils": [
        "OpenSSF Trusted Publishers"
      ],
      "standards": [
        "OWASP CICD-SEC-9",
        "SLSA"
      ],
      "menaces": [
        "Un tag mutable (latest, une version) est réécrit pour pointer vers un artefact malveillant, livré aux consommateurs qui font confiance au tag plutôt qu'au digest. La mutabilité brise l'immuabilité attendue d'une version publiée."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-pub-3"
    },
    {
      "id": "SOCLE-REL-VER-1",
      "n": 1,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "VER",
      "famille_nom": "Vérification, intégrité & transparence",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "vérification de signature et de provenance par les consommateurs avant usage.",
      "preuve": "Vérification de signature et de provenance par les consommateurs.",
      "outils": [
        "cosign",
        "slsa-verifier",
        "Rekor"
      ],
      "standards": [
        "SLSA (vérification)",
        "in-toto"
      ],
      "menaces": [
        "Le consommateur n'utilise ni la signature ni la provenance avant de consommer un artefact, annulant tout le bénéfice de leur génération. La chaîne de confiance ne tient que si le dernier maillon vérifie."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-ver-1"
    },
    {
      "id": "SOCLE-REL-VER-2",
      "n": 2,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "VER",
      "famille_nom": "Vérification, intégrité & transparence",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "journal de transparence des signatures/attestations (ex. Rekor).",
      "preuve": "Journal de transparence des signatures/attestations (ex. Rekor).",
      "outils": [
        "cosign",
        "slsa-verifier",
        "Rekor"
      ],
      "standards": [
        "Sigstore",
        "SCITT"
      ],
      "menaces": [
        "Le build est compromis en amont, si bien que la provenance est techniquement valide mais atteste d'un artefact malveillant. La provenance prouve l'origine, pas l'innocuité : un build corrompu produit une attestation correcte d'un mauvais résultat.",
        "Le consommateur n'utilise ni la signature ni la provenance avant de consommer un artefact, annulant tout le bénéfice de leur génération. La chaîne de confiance ne tient que si le dernier maillon vérifie."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-ver-2"
    },
    {
      "id": "SOCLE-REL-VER-3",
      "n": 3,
      "domaine": "REL",
      "domaine_nom": "Release & provenance",
      "famille": "VER",
      "famille_nom": "Vérification, intégrité & transparence",
      "famille_ordre": 4,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "registre de transparence de bout en bout pour la chaîne sensible.",
      "preuve": "Registre de transparence de bout en bout pour la chaîne sensible.",
      "outils": [
        "cosign",
        "slsa-verifier",
        "Rekor"
      ],
      "standards": [
        "SCITT",
        "Sigstore"
      ],
      "menaces": [
        "Le build est compromis en amont, si bien que la provenance est techniquement valide mais atteste d'un artefact malveillant. La provenance prouve l'origine, pas l'innocuité : un build corrompu produit une attestation correcte d'un mauvais résultat."
      ],
      "href": "/docs/securiser/socle/referentiel/release/#socle-rel-ver-3"
    },
    {
      "id": "SOCLE-RUN-FOR-1",
      "n": 1,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "FOR",
      "famille_nom": "Forensique & investigation",
      "famille_ordre": 4,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "collecte forensique préservée (artefacts, logs, images) avec chaîne de preuve.",
      "preuve": "Collecte forensique préservée avec chaîne de preuve.",
      "outils": [],
      "standards": [
        "ISO 27001",
        "ANSSI"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis.",
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise.",
        "Un attaquant ayant obtenu l'exécution sur un hôte implante une persistance furtive au niveau du noyau ou du système : programme eBPF malveillant, extension système (systemd-sysext), module noyau ou hook de chargement. Le code survit aux redéploiements applicatifs, masque ses processus et connexions, et intercepte secrets et trafic. Les contrôles applicatifs et l'analyse d'image ne le voient pas : il vit sous la charge de travail, dans le plan hôte."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-for-1"
    },
    {
      "id": "SOCLE-RUN-FOR-2",
      "n": 2,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "FOR",
      "famille_nom": "Forensique & investigation",
      "famille_ordre": 4,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "capacité d'investigation post-incident (timeline, root cause) outillée.",
      "preuve": "Capacité d'investigation post-incident outillée (timeline, root cause).",
      "outils": [
        "Falco"
      ],
      "standards": [
        "MITRE ATT&CK",
        "ISO 27001"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis.",
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-for-2"
    },
    {
      "id": "SOCLE-RUN-GEN-1",
      "n": 1,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "surveillance runtime des charges (comportement, réseau).",
      "preuve": "Configuration de surveillance runtime (comportement, réseau).",
      "outils": [
        "Falco"
      ],
      "standards": [
        "OWASP CICD-SEC-10",
        "MITRE ATT&CK",
        "PCI-DSS Req 10",
        "HDS"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation.",
        "Un attaquant ayant obtenu l'exécution sur un hôte implante une persistance furtive au niveau du noyau ou du système : programme eBPF malveillant, extension système (systemd-sysext), module noyau ou hook de chargement. Le code survit aux redéploiements applicatifs, masque ses processus et connexions, et intercepte secrets et trafic. Les contrôles applicatifs et l'analyse d'image ne le voient pas : il vit sous la charge de travail, dans le plan hôte."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-gen-1"
    },
    {
      "id": "SOCLE-RUN-GEN-2",
      "n": 2,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "gestion des vulnérabilités en production : suivi et délais de correction.",
      "preuve": "Processus de gestion des vulnérabilités en production ; délais de correction suivis.",
      "outils": [
        "Trivy",
        "Dependency-Track"
      ],
      "standards": [
        "SSDF RV",
        "CRA",
        "PCI-DSS Req 10",
        "HDS"
      ],
      "menaces": [
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation.",
        "Un attaquant ayant obtenu l'exécution sur un hôte implante une persistance furtive au niveau du noyau ou du système : programme eBPF malveillant, extension système (systemd-sysext), module noyau ou hook de chargement. Le code survit aux redéploiements applicatifs, masque ses processus et connexions, et intercepte secrets et trafic. Les contrôles applicatifs et l'analyse d'image ne le voient pas : il vit sous la charge de travail, dans le plan hôte."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-gen-2"
    },
    {
      "id": "SOCLE-RUN-GEN-3",
      "n": 3,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "détection et réponse aux incidents (procédure définie).",
      "preuve": "Procédure de détection et réponse aux incidents documentée.",
      "outils": [
        "Falco"
      ],
      "standards": [
        "ISO 27001",
        "NIS2 (notification)",
        "PCI-DSS Req 10",
        "HDS"
      ],
      "menaces": [
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-gen-3"
    },
    {
      "id": "SOCLE-RUN-GEN-4",
      "n": 4,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": true,
      "profils": [
        "souverain",
        "paiement",
        "sante"
      ],
      "texte": "collecte forensique et capacité d'investigation préservée.",
      "preuve": "Dispositif de collecte forensique ; capacité d'investigation préservée.",
      "outils": [
        "Falco"
      ],
      "standards": [
        "ISO 27001",
        "ANSSI",
        "PCI-DSS Req 10",
        "HDS"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-gen-4"
    },
    {
      "id": "SOCLE-RUN-IRP-1",
      "n": 1,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "IRP",
      "famille_nom": "Réponse à incident",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "procédure de réponse à incident documentée, avec rôles et délais (alignée NIS2).",
      "preuve": "Procédure de réponse à incident documentée (rôles, délais).",
      "outils": [],
      "standards": [
        "ISO 27001",
        "NIS2 (notification)"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis.",
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-irp-1"
    },
    {
      "id": "SOCLE-RUN-IRP-2",
      "n": 2,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "IRP",
      "famille_nom": "Réponse à incident",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "capacité de confinement / isolation rapide d'une charge compromise.",
      "preuve": "Capacité de confinement/isolation rapide d'une charge compromise.",
      "outils": [],
      "standards": [
        "NIST 800-207",
        "MITRE D3FEND"
      ],
      "menaces": [
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation.",
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-irp-2"
    },
    {
      "id": "SOCLE-RUN-IRP-3",
      "n": 3,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "IRP",
      "famille_nom": "Réponse à incident",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "notification réglementaire d'incident dans les délais (NIS2).",
      "preuve": "Procédure de notification réglementaire d'incident (NIS2).",
      "outils": [],
      "standards": [
        "NIS2 (notification)",
        "CRA"
      ],
      "menaces": [
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-irp-3"
    },
    {
      "id": "SOCLE-RUN-IRP-4",
      "n": 4,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "IRP",
      "famille_nom": "Réponse à incident",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "exercices de réponse à incident (game days) réguliers et tracés.",
      "preuve": "Comptes rendus d'exercices de réponse à incident.",
      "outils": [],
      "standards": [
        "ISO 27001",
        "NIS2 (notification)"
      ],
      "menaces": [
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-irp-4"
    },
    {
      "id": "SOCLE-RUN-OBS-1",
      "n": 1,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "OBS",
      "famille_nom": "Observabilité & détection runtime",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "journalisation centralisée des charges (applicatif, système, réseau), horodatée et conservée.",
      "preuve": "Journalisation centralisée horodatée et conservée (applicatif, système, réseau).",
      "outils": [
        "Falco",
        "Tetragon"
      ],
      "standards": [
        "OWASP CICD-SEC-10",
        "ISO 27001",
        "OWASP ASVS v5.0.0 (V16)"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-obs-1"
    },
    {
      "id": "SOCLE-RUN-OBS-2",
      "n": 2,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "OBS",
      "famille_nom": "Observabilité & détection runtime",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "détection comportementale runtime (processus, fichiers, réseau ; ex. eBPF) sur les charges de production.",
      "preuve": "Détection comportementale runtime (eBPF/agent) sur les charges de production.",
      "outils": [
        "Falco",
        "Tetragon"
      ],
      "standards": [
        "OWASP CICD-SEC-10",
        "MITRE ATT&CK"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-obs-2"
    },
    {
      "id": "SOCLE-RUN-OBS-3",
      "n": 3,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "OBS",
      "famille_nom": "Observabilité & détection runtime",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "détection d'anomalies et alerte sur écart de comportement attendu.",
      "preuve": "Détection d'anomalies et alertes sur écart de comportement.",
      "outils": [
        "Falco",
        "Tetragon"
      ],
      "standards": [
        "MITRE ATT&CK",
        "NIST 800-207"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-obs-3"
    },
    {
      "id": "SOCLE-RUN-OBS-4",
      "n": 4,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "OBS",
      "famille_nom": "Observabilité & détection runtime",
      "famille_ordre": 1,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "surveillance renforcée et corrélation SIEM pour les charges sensibles.",
      "preuve": "Surveillance renforcée et corrélation SIEM pour charges sensibles.",
      "outils": [
        "Falco",
        "Tetragon"
      ],
      "standards": [
        "ISO 27001",
        "ANSSI"
      ],
      "menaces": [
        "Une charge compromise exfiltre des données ou des secrets en production vers un système contrôlé par l'attaquant. La détection comportementale runtime est la dernière ligne, une fois les contrôles amont franchis."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-obs-4"
    },
    {
      "id": "SOCLE-RUN-RES-1",
      "n": 1,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "RES",
      "famille_nom": "Résilience & continuité",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "sante"
      ],
      "texte": "sauvegardes chiffrées et restauration testée régulièrement.",
      "preuve": "Sauvegardes chiffrées ; restauration testée.",
      "outils": [],
      "standards": [
        "NIS2 art.21",
        "ISO 27001",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-res-1"
    },
    {
      "id": "SOCLE-RUN-RES-2",
      "n": 2,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "RES",
      "famille_nom": "Résilience & continuité",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "capacité de rollback / redéploiement rapide d'une version saine.",
      "preuve": "Capacité de rollback/redéploiement rapide d'une version saine.",
      "outils": [],
      "standards": [
        "NIST 800-204D",
        "SSDF RV.2"
      ],
      "menaces": [
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-res-2"
    },
    {
      "id": "SOCLE-RUN-RES-3",
      "n": 3,
      "domaine": "RUN",
      "domaine_nom": "Runtime & exploitation",
      "famille": "RES",
      "famille_nom": "Résilience & continuité",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [
        "sante"
      ],
      "texte": "plan de continuité / reprise (PCA/PRA) documenté et éprouvé.",
      "preuve": "Plan de continuité/reprise (PCA/PRA) éprouvé.",
      "outils": [],
      "standards": [
        "NIS2 art.21",
        "ISO 27001",
        "DORA"
      ],
      "menaces": [
        "Une charge détruit données, dépôts ou systèmes (wiper, suppression) pour saboter ou couvrir ses traces. La résilience (sauvegardes éprouvées, immuabilité) conditionne la capacité de reprise."
      ],
      "href": "/docs/securiser/socle/referentiel/runtime/#socle-run-res-3"
    },
    {
      "id": "SOCLE-SEC-GEN-1",
      "n": 1,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "inventaire des secrets tenu à jour : type, propriétaire, emplacement, consommateurs, criticité.",
      "preuve": "Inventaire des secrets à jour : type, propriétaire, emplacement, consommateurs, criticité.",
      "outils": [
        "Gitleaks",
        "TruffleHog"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP ASVS v5.0.0 (V13)",
        "PCI-DSS Req 3",
        "HDS"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-gen-1"
    },
    {
      "id": "SOCLE-SEC-GEN-2",
      "n": 2,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "secrets stockés dans un coffre / gestionnaire sûr ; jamais en clair (fichiers, env persistants, historique).",
      "preuve": "Secrets stockés en coffre ; inspection d'absence de secrets en clair.",
      "outils": [
        "Gitleaks",
        "TruffleHog"
      ],
      "standards": [
        "OWASP ASVS v5.0.0 (V13)",
        "ANSSI-BP-028",
        "PCI-DSS Req 3",
        "HDS"
      ],
      "menaces": [
        "Un secret (clé, jeton, mot de passe) est inclus par erreur dans l'image ou le paquet publié, exposé à tous ses consommateurs. La fuite se propage à chaque téléchargement de l'artefact.",
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov).",
        "La configuration d'un agent IA est modifiée pour installer une instruction ou un outil persistant, réactivé à chaque exécution. La persistance s'installe dans la configuration plutôt que dans le code (ATLAS Modify AI Agent Configuration).",
        "Un agent ou un système RAG est manipulé pour collecter et exfiltrer des secrets accessibles via son contexte, ses outils ou sa configuration. Les droits étendus de l'agent en font un collecteur de credentials.",
        "Les secrets stockés dans un coffre cloud (Secrets Manager, Key Vault) sont lus grâce à des droits excessifs ou un rôle compromis. Le coffre concentre la valeur : un accès indu y donne les clés du royaume (ATT&CK T1555.006).",
        "Une application OAuth ou intégration SaaS de confiance, au-delà du SCM/CI (CRM, support, observabilité), est compromise ou abusée : consentement OAuth détourné, jetons volés, contournement MFA, pour persister et exfiltrer des données (ex. campagne Salesloft/Drift 2025). La confiance accordée à une intégration tierce devient un accès latéral au SI."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-gen-2"
    },
    {
      "id": "SOCLE-SEC-GEN-3",
      "n": 3,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "accès aux secrets scopés et tracés (moindre privilège, séparation par environnement).",
      "preuve": "Accès aux secrets scopés et tracés ; séparation par environnement.",
      "outils": [
        "Gitleaks",
        "TruffleHog"
      ],
      "standards": [
        "NIST 800-207",
        "OWASP CICD-SEC-6",
        "PCI-DSS Req 3",
        "HDS"
      ],
      "menaces": [
        "Une fédération OIDC trop permissive (conditions de confiance larges, sujet non contraint) permet à un dépôt ou workflow non autorisé d'obtenir des identifiants cloud. L'identité courte censée remplacer les secrets devient elle-même un chemin d'accès.",
        "Un agent ou un système RAG est manipulé pour collecter et exfiltrer des secrets accessibles via son contexte, ses outils ou sa configuration. Les droits étendus de l'agent en font un collecteur de credentials.",
        "Les secrets stockés dans un coffre cloud (Secrets Manager, Key Vault) sont lus grâce à des droits excessifs ou un rôle compromis. Le coffre concentre la valeur : un accès indu y donne les clés du royaume (ATT&CK T1555.006).",
        "Une application OAuth ou intégration SaaS de confiance, au-delà du SCM/CI (CRM, support, observabilité), est compromise ou abusée : consentement OAuth détourné, jetons volés, contournement MFA, pour persister et exfiltrer des données (ex. campagne Salesloft/Drift 2025). La confiance accordée à une intégration tierce devient un accès latéral au SI."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-gen-3"
    },
    {
      "id": "SOCLE-SEC-GEN-4",
      "n": 4,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "politique de rotation par criticité et durée de vie (TTL) définie ; rotation d'urgence testée.",
      "preuve": "Politique de rotation et TTL par criticité ; compte rendu d'un test de rotation d'urgence.",
      "outils": [
        "Gitleaks",
        "TruffleHog"
      ],
      "standards": [
        "SSDF PO.5",
        "OWASP CICD-SEC-6",
        "PCI-DSS Req 3",
        "HDS"
      ],
      "menaces": [
        "Un paquet compromis vole les jetons de publication des mainteneurs qui l'installent et republie automatiquement d'autres paquets, se propageant de proche en proche (cas Shai-Hulud). L'auto-propagation transforme une compromission isolée en épidémie."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-gen-4"
    },
    {
      "id": "SOCLE-SEC-GEN-5",
      "n": 5,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "identités courtes/éphémères (OIDC) privilégiées sur les secrets de longue durée.",
      "preuve": "Usage d'identités courtes/éphémères (OIDC) plutôt que secrets de longue durée.",
      "outils": [
        "Gitleaks",
        "TruffleHog"
      ],
      "standards": [
        "NIST 800-207",
        "OWASP CICD-SEC-6",
        "PCI-DSS Req 3",
        "HDS"
      ],
      "menaces": [
        "Un jeton de publication de longue durée fuite (CI, poste, dépôt) et sert à pousser des versions piégées sans interaction avec le compte. La durée de vie excessive du jeton élargit la fenêtre d'abus.",
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-gen-5"
    },
    {
      "id": "SOCLE-SEC-GEN-6",
      "n": 6,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "détection de fuite de secrets (dépôts, postes, images) et procédure de réponse.",
      "preuve": "Dispositif de détection de fuite de secrets ; procédure de réponse.",
      "outils": [
        "Gitleaks",
        "TruffleHog"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "PCI-DSS Req 3",
        "HDS"
      ],
      "menaces": [
        "Un paquet compromis vole les jetons de publication des mainteneurs qui l'installent et republie automatiquement d'autres paquets, se propageant de proche en proche (cas Shai-Hulud). L'auto-propagation transforme une compromission isolée en épidémie."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-gen-6"
    },
    {
      "id": "SOCLE-SEC-INV-1",
      "n": 1,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "INV",
      "famille_nom": "Inventaire des secrets",
      "famille_ordre": 5,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "registre des secrets tenu à jour : type, propriétaire, emplacement, consommateurs, criticité.",
      "preuve": "Registre des secrets à jour : type, propriétaire, emplacement, consommateurs, criticité.",
      "outils": [
        "TruffleHog"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP ASVS v5.0.0 (V13)"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-inv-1"
    },
    {
      "id": "SOCLE-SEC-INV-2",
      "n": 2,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "INV",
      "famille_nom": "Inventaire des secrets",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "découverte régulière des secrets (scan dépôts, postes, images, historiques).",
      "preuve": "Résultats de découverte régulière (scan dépôts, postes, images, historiques).",
      "outils": [
        "TruffleHog"
      ],
      "standards": [
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-inv-2"
    },
    {
      "id": "SOCLE-SEC-INV-3",
      "n": 3,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "INV",
      "famille_nom": "Inventaire des secrets",
      "famille_ordre": 5,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "classification des secrets par criticité et par type.",
      "preuve": "Classification des secrets par criticité et par type.",
      "outils": [
        "TruffleHog"
      ],
      "standards": [
        "OWASP ASVS v5.0.0 (V13)"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-inv-3"
    },
    {
      "id": "SOCLE-SEC-ROT-1",
      "n": 1,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "ROT",
      "famille_nom": "Rotation, durée de vie & fuite",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "politique de rotation par criticité ; durée de vie (TTL) définie par secret.",
      "preuve": "Politique de rotation par criticité ; TTL défini par secret.",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "SSDF PO.5",
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-rot-1"
    },
    {
      "id": "SOCLE-SEC-ROT-2",
      "n": 2,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "ROT",
      "famille_nom": "Rotation, durée de vie & fuite",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "privilégier les identités courtes/éphémères (OIDC) sur les secrets de longue durée.",
      "preuve": "Usage d'identités courtes/éphémères (OIDC) privilégié.",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "NIST 800-207",
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol.",
        "Une fédération OIDC trop permissive (conditions de confiance larges, sujet non contraint) permet à un dépôt ou workflow non autorisé d'obtenir des identifiants cloud. L'identité courte censée remplacer les secrets devient elle-même un chemin d'accès."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-rot-2"
    },
    {
      "id": "SOCLE-SEC-ROT-3",
      "n": 3,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "ROT",
      "famille_nom": "Rotation, durée de vie & fuite",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "capacité de rotation et de révocation d'urgence testée (cf. exercice de rotation).",
      "preuve": "Compte rendu d'un test de rotation/révocation d'urgence.",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "SSDF PO.5"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov).",
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-rot-3"
    },
    {
      "id": "SOCLE-SEC-ROT-4",
      "n": 4,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "ROT",
      "famille_nom": "Rotation, durée de vie & fuite",
      "famille_ordre": 7,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "détection de fuite (scan, alerte) et procédure de réponse (révoquer + tourner).",
      "preuve": "Dispositif de détection de fuite + procédure de réponse (révoquer + tourner).",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-rot-4"
    },
    {
      "id": "SOCLE-SEC-ROT-5",
      "n": 5,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "ROT",
      "famille_nom": "Rotation, durée de vie & fuite",
      "famille_ordre": 7,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "rotation automatisée des secrets critiques quand l'outillage le permet.",
      "preuve": "Configuration de rotation automatisée des secrets critiques.",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "SSDF PO.5"
      ],
      "menaces": [
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-rot-5"
    },
    {
      "id": "SOCLE-SEC-STO-1",
      "n": 1,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "STO",
      "famille_nom": "Stockage & autorisations",
      "famille_ordre": 6,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "secrets dans un coffre / gestionnaire sûr, chiffrés au repos ; jamais en clair.",
      "preuve": "Secrets en coffre chiffrés au repos ; inspection d'absence de secrets en clair.",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "NIS2 art.21",
        "OWASP ASVS v5.0.0 (V13)",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-sto-1"
    },
    {
      "id": "SOCLE-SEC-STO-2",
      "n": 2,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "STO",
      "famille_nom": "Stockage & autorisations",
      "famille_ordre": 6,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "proscrire les secrets en clair dans l'env persistant, l'historique shell, les fichiers de projet.",
      "preuve": "Inspection : aucun secret en clair dans env persistant, historique shell, fichiers de projet.",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-sto-2"
    },
    {
      "id": "SOCLE-SEC-STO-3",
      "n": 3,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "STO",
      "famille_nom": "Stockage & autorisations",
      "famille_ordre": 6,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "accès scopés au strict nécessaire, séparés par environnement (dev/prod).",
      "preuve": "Accès scopés au strict nécessaire ; séparation par environnement (dev/prod).",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "NIST 800-207",
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov).",
        "Une combinaison de permissions IAM individuellement anodines forme un chemin d'élévation ou d'accès non prévu (combinaison toxique). Le risque émerge de l'assemblage des droits, pas d'une permission isolée (ATT&CK T1078.004)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-sto-3"
    },
    {
      "id": "SOCLE-SEC-STO-4",
      "n": 4,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "STO",
      "famille_nom": "Stockage & autorisations",
      "famille_ordre": 6,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "accès aux secrets tracés (qui lit quoi, quand).",
      "preuve": "Journaux d'accès aux secrets (qui lit quoi, quand).",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "OWASP CICD-SEC-10",
        "NIST 800-207"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-sto-4"
    },
    {
      "id": "SOCLE-SEC-STO-5",
      "n": 5,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "STO",
      "famille_nom": "Stockage & autorisations",
      "famille_ordre": 6,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "secrets sensibles protégés par coffre durci (scellement, audit, séparation des rôles).",
      "preuve": "Coffre durci pour secrets sensibles (scellement, audit, séparation des rôles).",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "ANSSI-BP-028",
        "OWASP ASVS v5.0.0 (V13)"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov).",
        "Les secrets stockés dans un coffre cloud (Secrets Manager, Key Vault) sont lus grâce à des droits excessifs ou un rôle compromis. Le coffre concentre la valeur : un accès indu y donne les clés du royaume (ATT&CK T1555.006)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-sto-5"
    },
    {
      "id": "SOCLE-SEC-STO-6",
      "n": 6,
      "domaine": "SEC",
      "domaine_nom": "Gestion des secrets : inventaire & cycle de vie",
      "famille": "STO",
      "famille_nom": "Stockage & autorisations",
      "famille_ordre": 6,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "secrets traités comme sensibles par défaut : accès refusé par défaut (deny-by-default), classification au niveau le plus restrictif tant qu'aucun déclassement explicite n'est justifié.",
      "preuve": "Politique d'accès aux secrets en deny-by-default ; octrois et déclassements explicites tracés.",
      "outils": [
        "OpenBao/Vault"
      ],
      "standards": [
        "NIST 800-207",
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/secrets/#socle-sec-sto-6"
    },
    {
      "id": "SOCLE-SRC-ACC-1",
      "n": 1,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "ACC",
      "famille_nom": "Accès & identité au SCM",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "RBAC au moindre privilège (dépôt/org/groupe) ; accès revus périodiquement.",
      "preuve": "Matrice RBAC dépôt/org ; revue périodique des accès.",
      "outils": [
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-2",
        "NIST 800-207"
      ],
      "menaces": [
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact.",
        "Le système de gestion de source lui-même (forge self-hosted, serveur Git) est compromis, donnant à l'attaquant le contrôle du code, des droits et des workflows. La racine de confiance du code tombe : tout en aval devient suspect."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-acc-1"
    },
    {
      "id": "SOCLE-SRC-ACC-2",
      "n": 2,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "ACC",
      "famille_nom": "Accès & identité au SCM",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "clés de déploiement / jetons d'accès scopés, en lecture seule par défaut, expirants.",
      "preuve": "Deploy keys / jetons scopés, lecture seule, expirants.",
      "outils": [
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-2",
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Le système de gestion de source lui-même (forge self-hosted, serveur Git) est compromis, donnant à l'attaquant le contrôle du code, des droits et des workflows. La racine de confiance du code tombe : tout en aval devient suspect.",
        "Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-acc-2"
    },
    {
      "id": "SOCLE-SRC-ACC-3",
      "n": 3,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "ACC",
      "famille_nom": "Accès & identité au SCM",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "SSO / IdP centralisé pour le SCM ; désactivation des accès à la sortie.",
      "preuve": "SSO/IdP pour le SCM ; procédure de désactivation à la sortie.",
      "outils": [
        "Legitify"
      ],
      "standards": [
        "NIST 800-207"
      ],
      "menaces": [
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact.",
        "Le système de gestion de source lui-même (forge self-hosted, serveur Git) est compromis, donnant à l'attaquant le contrôle du code, des droits et des workflows. La racine de confiance du code tombe : tout en aval devient suspect."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-acc-3"
    },
    {
      "id": "SOCLE-SRC-ACC-4",
      "n": 4,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "ACC",
      "famille_nom": "Accès & identité au SCM",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "journalisation et audit des actions SCM (accès, changements de protection de branche).",
      "preuve": "Journaux d'audit SCM (accès, changements de protection).",
      "outils": [
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-10",
        "ISO 27001"
      ],
      "menaces": [
        "Un administrateur retire temporairement la protection de branche, pousse une modification, puis rétablit la protection, effaçant la trace du contournement. Le pouvoir d'administration sur les contrôles annule les contrôles eux-mêmes."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-acc-4"
    },
    {
      "id": "SOCLE-SRC-BRA-1",
      "n": 1,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "BRA",
      "famille_nom": "Protection des branches & revue",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "checks de statut obligatoires (CI verte) avant fusion ; pas de merge sur échec.",
      "preuve": "Status checks obligatoires configurés ; merge bloqué si CI en échec.",
      "outils": [
        "Legitify",
        "Allstar"
      ],
      "standards": [
        "OWASP CICD-SEC-1",
        "SSDF PW.7"
      ],
      "menaces": [
        "Du code malveillant est poussé directement sur une branche protégée sans revue obligatoire (push direct, protection absente). Sans contrôle à quatre yeux, une modification hostile entre dans la base de code de référence."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-bra-1"
    },
    {
      "id": "SOCLE-SRC-BRA-2",
      "n": 2,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "BRA",
      "famille_nom": "Protection des branches & revue",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "propriété du code (CODEOWNERS) : revue par les responsables sur les chemins sensibles.",
      "preuve": "Fichier CODEOWNERS ; revue par responsables sur les chemins sensibles.",
      "outils": [
        "Legitify",
        "Allstar"
      ],
      "standards": [
        "OWASP CICD-SEC-1",
        "SLSA (Source)"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile.",
        "Du code malveillant est poussé directement sur une branche protégée sans revue obligatoire (push direct, protection absente). Sans contrôle à quatre yeux, une modification hostile entre dans la base de code de référence.",
        "Un compte de service ou bot autorisé à fusionner sans revue à deux est détourné pour introduire du code, court-circuitant le contrôle humain. Les automatismes sur-privilégiés deviennent un chemin d'injection.",
        "Une exception aux règles de protection (ex. fichiers de documentation exemptés de revue) est exploitée via un fichier déguisé pour faire passer du code non revu. Les angles morts de la politique deviennent une porte d'entrée.",
        "Poisoned Pipeline Execution indirecte : l'injection passe par un fichier consommé par le pipeline (Makefile, script, configuration d'outil) plutôt que par le fichier de CI. Le résultat est identique : exécution de code attaquant dans le pipeline.",
        "Une GitHub App ou un bot disposant de permissions élevées est détourné pour agir sur les dépôts ou les workflows. Les privilèges de l'automate dépassent souvent le besoin, élargissant l'impact d'un abus."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-bra-2"
    },
    {
      "id": "SOCLE-SRC-BRA-3",
      "n": 3,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "BRA",
      "famille_nom": "Protection des branches & revue",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "rejet des approbations obsolètes à chaque nouveau push sur la PR.",
      "preuve": "Option de rejet des approbations obsolètes activée.",
      "outils": [
        "Legitify",
        "Allstar"
      ],
      "standards": [
        "OWASP CICD-SEC-1"
      ],
      "menaces": [
        "Un écart entre le moment de la vérification et le moment de l'usage (TOCTOU), exploité via un bot, permet de substituer un contenu validé par un contenu malveillant. La fenêtre entre contrôle et action est l'angle d'attaque."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-bra-3"
    },
    {
      "id": "SOCLE-SRC-BRA-4",
      "n": 4,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "BRA",
      "famille_nom": "Protection des branches & revue",
      "famille_ordre": 1,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "revue à deux personnes (two-person rule) sur les dépôts sensibles.",
      "preuve": "Politique de revue à deux personnes sur les dépôts sensibles.",
      "outils": [
        "Legitify",
        "Allstar"
      ],
      "standards": [
        "SLSA (Source)",
        "OWASP CICD-SEC-1"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile.",
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact.",
        "Un attaquant contrôlant plusieurs comptes (ou un compte et un bot) approuve sa propre contribution, contournant l'exigence de revue par un tiers indépendant. La règle de revue existe mais est neutralisée par collusion d'identités."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-bra-4"
    },
    {
      "id": "SOCLE-SRC-FRK-1",
      "n": 1,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "FRK",
      "famille_nom": "Contributions externes & forks",
      "famille_ordre": 4,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "détection de secrets sur les poussées et les PR (en pré-réception).",
      "preuve": "Secret scanning en pré-réception sur poussées et PR.",
      "outils": [
        "zizmor",
        "poutine"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP ASVS v5.0.0 (V13)"
      ],
      "menaces": [
        "Un workflow déclenché sur pull_request_target (ou équivalent) exécute le code d'un fork non fiable avec le contexte et les secrets du dépôt cible. Une simple pull request d'un inconnu obtient l'exécution privilégiée et les jetons du projet.",
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-frk-1"
    },
    {
      "id": "SOCLE-SRC-FRK-2",
      "n": 2,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "FRK",
      "famille_nom": "Contributions externes & forks",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "les workflows déclenchés par des forks n'accèdent ni aux secrets ni aux runners de confiance.",
      "preuve": "Configuration : workflows de fork sans accès aux secrets ni aux runners de confiance.",
      "outils": [
        "zizmor",
        "poutine"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "CIS Benchmarks"
      ],
      "menaces": [
        "Un workflow déclenché sur pull_request_target (ou équivalent) exécute le code d'un fork non fiable avec le contexte et les secrets du dépôt cible. Une simple pull request d'un inconnu obtient l'exécution privilégiée et les jetons du projet.",
        "Un pipeline déclenché par une contribution publique exécute du code non fiable dans un contexte privilégié, exposant secrets et droits du projet. La surface vient de l'ouverture du pipeline aux contributions externes."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-frk-2"
    },
    {
      "id": "SOCLE-SRC-FRK-3",
      "n": 3,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "FRK",
      "famille_nom": "Contributions externes & forks",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "revue de dépendances sur les PR (dependency review) ; blocage des ajouts vulnérables ou malveillants.",
      "preuve": "Dependency review sur les PR ; blocage des dépendances vulnérables.",
      "outils": [
        "zizmor",
        "poutine"
      ],
      "standards": [
        "OWASP A03",
        "S2C2F",
        "OSV"
      ],
      "menaces": [
        "Un workflow déclenché sur pull_request_target (ou équivalent) exécute le code d'un fork non fiable avec le contexte et les secrets du dépôt cible. Une simple pull request d'un inconnu obtient l'exécution privilégiée et les jetons du projet.",
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-frk-3"
    },
    {
      "id": "SOCLE-SRC-GEN-1",
      "n": 1,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "branches protégées : revue obligatoire, pas de push direct.",
      "preuve": "Configuration de protection de branche : revue obligatoire, push direct interdit.",
      "outils": [
        "Gitleaks",
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-1",
        "SLSA (Source)",
        "SSDF PS.1",
        "CNCF SSC (Source Code)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Une personne disposant légitimement du droit de publier (mainteneur, éditeur) introduit volontairement une modification nuisible dans le code ou l'artefact. L'attaque vient de l'intérieur de la chaîne de confiance : ni la revue ni la signature ne la détectent, puisque l'auteur est autorisé. Cas typiques : rachat de paquet, compte de mainteneur revendu, contributeur de longue date devenu hostile.",
        "Un collaborateur autorisé (développeur, ops, admin) abuse de ses accès pour introduire un changement non autorisé dans le code, la configuration ou la chaîne de build. Disposant déjà des droits, il contourne les contrôles d'entrée ; seules la séparation des privilèges, la revue à deux et la traçabilité limitent l'impact.",
        "Du code malveillant est poussé directement sur une branche protégée sans revue obligatoire (push direct, protection absente). Sans contrôle à quatre yeux, une modification hostile entre dans la base de code de référence.",
        "Un attaquant contrôlant plusieurs comptes (ou un compte et un bot) approuve sa propre contribution, contournant l'exigence de revue par un tiers indépendant. La règle de revue existe mais est neutralisée par collusion d'identités.",
        "Un compte de service ou bot autorisé à fusionner sans revue à deux est détourné pour introduire du code, court-circuitant le contrôle humain. Les automatismes sur-privilégiés deviennent un chemin d'injection.",
        "Une exception aux règles de protection (ex. fichiers de documentation exemptés de revue) est exploitée via un fichier déguisé pour faire passer du code non revu. Les angles morts de la politique deviennent une porte d'entrée.",
        "Un administrateur retire temporairement la protection de branche, pousse une modification, puis rétablit la protection, effaçant la trace du contournement. Le pouvoir d'administration sur les contrôles annule les contrôles eux-mêmes.",
        "Poisoned Pipeline Execution directe : l'attaquant modifie la définition du pipeline (fichier de CI) pour y injecter des commandes exécutées avec les privilèges du build. Le contrôle du fichier de workflow donne le contrôle de l'exécution."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-gen-1"
    },
    {
      "id": "SOCLE-SRC-GEN-2",
      "n": 2,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "MFA et moindre privilège sur les accès au SCM.",
      "preuve": "Configuration MFA et moindre privilège sur le SCM.",
      "outils": [
        "Gitleaks",
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-2",
        "NIST 800-207",
        "CNCF SSC (Source Code)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Le système de gestion de source lui-même (forge self-hosted, serveur Git) est compromis, donnant à l'attaquant le contrôle du code, des droits et des workflows. La racine de confiance du code tombe : tout en aval devient suspect."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-gen-2"
    },
    {
      "id": "SOCLE-SRC-GEN-3",
      "n": 3,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "commits et tags signés et vérifiés.",
      "preuve": "Configuration et vérification de la signature des commits et tags.",
      "outils": [
        "Gitleaks",
        "Legitify"
      ],
      "standards": [
        "SLSA (Source)",
        "Sigstore",
        "SSDF PS.1",
        "CNCF SSC (Source Code)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "L'absence de signature vérifiée des commits et tags permet d'usurper l'auteur ou d'introduire des objets non authentifiés dans l'historique. Sans signature imposée, l'identité du contributeur n'est pas prouvable."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-gen-3"
    },
    {
      "id": "SOCLE-SRC-GEN-4",
      "n": 4,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "détection de secrets dans le code (pré-commit + CI).",
      "preuve": "Hooks de détection de secrets (pré-commit + CI) ; résultats de scan.",
      "outils": [
        "Gitleaks",
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP ASVS v5.0.0 (V13)",
        "CNCF SSC (Source Code)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov).",
        "Une clé, un jeton ou un mot de passe est commité dans le code et exposé à quiconque accède au dépôt ou à l'artefact. La détection en pré-commit et en CI est la parade."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-gen-4"
    },
    {
      "id": "SOCLE-SRC-GEN-5",
      "n": 5,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement"
      ],
      "texte": "politique de revue renforcée des contributions externes / forks non fiables.",
      "preuve": "Politique de revue renforcée des contributions externes / forks non fiables.",
      "outils": [
        "Gitleaks",
        "Legitify"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "CNCF SSC (Source Code)",
        "Microsoft SDL",
        "SAFECode",
        "PCI-DSS Req 6"
      ],
      "menaces": [
        "Un workflow déclenché sur pull_request_target (ou équivalent) exécute le code d'un fork non fiable avec le contexte et les secrets du dépôt cible. Une simple pull request d'un inconnu obtient l'exécution privilégiée et les jetons du projet.",
        "Un pipeline déclenché par une contribution publique exécute du code non fiable dans un contexte privilégié, exposant secrets et droits du projet. La surface vient de l'ouverture du pipeline aux contributions externes.",
        "Un écart entre le moment de la vérification et le moment de l'usage (TOCTOU), exploité via un bot, permet de substituer un contenu validé par un contenu malveillant. La fenêtre entre contrôle et action est l'angle d'attaque."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-gen-5"
    },
    {
      "id": "SOCLE-SRC-SIG-1",
      "n": 1,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "SIG",
      "famille_nom": "Intégrité & signature de l'historique",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "historique protégé : force-push et suppression des branches protégées interdits.",
      "preuve": "Force-push et suppression interdits sur les branches protégées.",
      "outils": [
        "Legitify",
        "Allstar"
      ],
      "standards": [
        "OWASP CICD-SEC-1",
        "SLSA (Source)"
      ],
      "menaces": [
        "Un administrateur retire temporairement la protection de branche, pousse une modification, puis rétablit la protection, effaçant la trace du contournement. Le pouvoir d'administration sur les contrôles annule les contrôles eux-mêmes.",
        "Un force-push réécrit l'historique de la branche pour dissimuler ou injecter des commits (suppression d'un commit malveillant, antidatage). Sans interdiction du force-push ni vérification d'intégrité, l'historique n'est plus une preuve fiable."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-sig-1"
    },
    {
      "id": "SOCLE-SRC-SIG-2",
      "n": 2,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "SIG",
      "famille_nom": "Intégrité & signature de l'historique",
      "famille_ordre": 2,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "signature imposée par politique sur les dépôts sensibles : rejet des commits non signés.",
      "preuve": "Politique de rejet des commits non signés sur les dépôts sensibles.",
      "outils": [
        "git verify-commit",
        "gitsign"
      ],
      "standards": [
        "SLSA (Source)",
        "Sigstore"
      ],
      "menaces": [
        "L'absence de signature vérifiée des commits et tags permet d'usurper l'auteur ou d'introduire des objets non authentifiés dans l'historique. Sans signature imposée, l'identité du contributeur n'est pas prouvable."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-sig-2"
    },
    {
      "id": "SOCLE-SRC-SIG-3",
      "n": 3,
      "domaine": "SRC",
      "domaine_nom": "Source & dépôt",
      "famille": "SIG",
      "famille_nom": "Intégrité & signature de l'historique",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "intégrité de l'historique vérifiée : pas de réécriture sur les branches protégées.",
      "preuve": "Protection contre la réécriture d'historique des branches protégées.",
      "outils": [
        "git verify-commit",
        "gitsign"
      ],
      "standards": [
        "SLSA (Source)"
      ],
      "menaces": [
        "Un force-push réécrit l'historique de la branche pour dissimuler ou injecter des commits (suppression d'un commit malveillant, antidatage). Sans interdiction du force-push ni vérification d'intégrité, l'historique n'est plus une preuve fiable."
      ],
      "href": "/docs/securiser/socle/referentiel/source/#socle-src-sig-3"
    },
    {
      "id": "SOCLE-VLN-DIS-1",
      "n": 1,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "DIS",
      "famille_nom": "Signalement & divulgation",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "procédure de signalement réglementaire des vulnérabilités activement exploitées (échéance CRA).",
      "preuve": "Procédure de signalement réglementaire des vulnérabilités exploitées (CRA).",
      "outils": [],
      "standards": [
        "CRA (échéance 11/09/2026)",
        "NIS2 (notification)"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-dis-1"
    },
    {
      "id": "SOCLE-VLN-DIS-2",
      "n": 2,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "DIS",
      "famille_nom": "Signalement & divulgation",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "avis de sécurité publiés au format machine (CSAF / OpenVEX) pour les produits livrés.",
      "preuve": "Avis de sécurité au format CSAF/OpenVEX pour les produits livrés.",
      "outils": [],
      "standards": [
        "CSAF",
        "VEX / OpenVEX"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-dis-2"
    },
    {
      "id": "SOCLE-VLN-DIS-3",
      "n": 3,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "DIS",
      "famille_nom": "Signalement & divulgation",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "politique de divulgation coordonnée (VDP) et point de contact PSIRT.",
      "preuve": "Politique de divulgation coordonnée (VDP) et contact PSIRT.",
      "outils": [],
      "standards": [
        "SSDF RV.3",
        "ISO 27001"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-dis-3"
    },
    {
      "id": "SOCLE-VLN-DIS-4",
      "n": 4,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "DIS",
      "famille_nom": "Signalement & divulgation",
      "famille_ordre": 4,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "corrélation avec le corpus de menaces (incidents réellement exploités) pour prioriser la réponse.",
      "preuve": "Corrélation avec le corpus de menaces pour prioriser.",
      "outils": [],
      "standards": [
        "MITRE ATT&CK",
        "SSDF RV.1"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-dis-4"
    },
    {
      "id": "SOCLE-VLN-GEN-1",
      "n": 1,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "inventaire consolidé des vulnérabilités (SCA / scan, OSV).",
      "preuve": "Inventaire consolidé des vulnérabilités (SCA/scan, OSV).",
      "outils": [
        "OSV-Scanner",
        "Trivy",
        "Dependency-Track"
      ],
      "standards": [
        "OSV",
        "SSDF RV.1",
        "Microsoft SDL",
        "PCI-DSS Req 6",
        "HDS"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-gen-1"
    },
    {
      "id": "SOCLE-VLN-GEN-2",
      "n": 2,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "triage et priorisation via VEX (exploitabilité réelle).",
      "preuve": "Processus de triage/priorisation via VEX (exploitabilité réelle).",
      "outils": [
        "OSV-Scanner",
        "Trivy",
        "Dependency-Track"
      ],
      "standards": [
        "VEX / OpenVEX",
        "CSAF",
        "CycloneDX/SPDX (profil sécurité)",
        "Microsoft SDL",
        "PCI-DSS Req 6",
        "HDS"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-gen-2"
    },
    {
      "id": "SOCLE-VLN-GEN-3",
      "n": 3,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "délais de correction définis par criticité et suivis.",
      "preuve": "Délais de correction par criticité définis et suivis.",
      "outils": [
        "OSV-Scanner",
        "Trivy",
        "Dependency-Track"
      ],
      "standards": [
        "SSDF RV.2",
        "CRA",
        "Microsoft SDL",
        "PCI-DSS Req 6",
        "HDS"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-gen-3"
    },
    {
      "id": "SOCLE-VLN-GEN-4",
      "n": 4,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "signalement réglementaire des vulnérabilités exploitées.",
      "preuve": "Procédure de signalement réglementaire des vulnérabilités exploitées.",
      "outils": [
        "OSV-Scanner",
        "Trivy",
        "Dependency-Track"
      ],
      "standards": [
        "CRA (échéance 11/09/2026)",
        "Microsoft SDL",
        "PCI-DSS Req 6",
        "HDS"
      ],
      "menaces": [
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-gen-4"
    },
    {
      "id": "SOCLE-VLN-GEN-5",
      "n": 5,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": false,
      "profils": [
        "paiement",
        "sante"
      ],
      "texte": "politique de divulgation et avis de sécurité (CSAF).",
      "preuve": "Politique de divulgation et avis de sécurité (CSAF).",
      "outils": [
        "OSV-Scanner",
        "Trivy",
        "Dependency-Track"
      ],
      "standards": [
        "CSAF",
        "SSDF RV.3",
        "Microsoft SDL",
        "PCI-DSS Req 6",
        "HDS"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-gen-5"
    },
    {
      "id": "SOCLE-VLN-INV-1",
      "n": 1,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "INV",
      "famille_nom": "Inventaire & corrélation des vulnérabilités",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "corrélation des vulnérabilités multi-sources (SCA, conteneurs, IaC, runtime), dédoublonnées et reliées aux artefacts via les SBOM.",
      "preuve": "Plateforme de corrélation multi-sources reliant les vulnérabilités aux artefacts via SBOM.",
      "outils": [
        "Dependency-Track"
      ],
      "standards": [
        "OSV",
        "CycloneDX (ECMA-424)",
        "SSDF RV.1"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-inv-1"
    },
    {
      "id": "SOCLE-VLN-INV-2",
      "n": 2,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "INV",
      "famille_nom": "Inventaire & corrélation des vulnérabilités",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "enrichissement par l'exploitabilité connue (ex. CISA KEV, EPSS) en plus du score CVSS.",
      "preuve": "Vulnérabilités enrichies par CISA KEV / EPSS, au-delà du CVSS.",
      "outils": [
        "Dependency-Track"
      ],
      "standards": [
        "OSV",
        "SSDF RV.1"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-inv-2"
    },
    {
      "id": "SOCLE-VLN-INV-3",
      "n": 3,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "INV",
      "famille_nom": "Inventaire & corrélation des vulnérabilités",
      "famille_ordre": 1,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "inventaire des vulnérabilités tenu en continu pour les artefacts déployés (pas seulement au build).",
      "preuve": "Inventaire continu des vulnérabilités des artefacts en production.",
      "outils": [
        "Dependency-Track"
      ],
      "standards": [
        "SSDF RV.1",
        "CRA"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-inv-3"
    },
    {
      "id": "SOCLE-VLN-REM-1",
      "n": 1,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "REM",
      "famille_nom": "Remédiation & délais",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "SLA de correction chiffrés par criticité et par exposition, suivis et reportés.",
      "preuve": "SLA de correction par criticité, suivis et reportés.",
      "outils": [],
      "standards": [
        "SSDF RV.2",
        "CRA"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-rem-1"
    },
    {
      "id": "SOCLE-VLN-REM-2",
      "n": 2,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "REM",
      "famille_nom": "Remédiation & délais",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "gestion des correctifs (mise à jour des dépendances, rebuild, redéploiement) tracée jusqu'à la fermeture.",
      "preuve": "Suivi des correctifs jusqu'à fermeture (mise à jour, rebuild, redéploiement).",
      "outils": [],
      "standards": [
        "SSDF RV.2",
        "S2C2F"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-rem-2"
    },
    {
      "id": "SOCLE-VLN-REM-3",
      "n": 3,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "REM",
      "famille_nom": "Remédiation & délais",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "mesures d'atténuation temporaires (compensating controls) quand le correctif n'est pas immédiat.",
      "preuve": "Mesures d'atténuation temporaires documentées en l'absence de correctif.",
      "outils": [],
      "standards": [
        "SSDF RV.2"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-rem-3"
    },
    {
      "id": "SOCLE-VLN-REM-4",
      "n": 4,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "REM",
      "famille_nom": "Remédiation & délais",
      "famille_ordre": 3,
      "niveau": "R3",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "capacité de correction d'urgence (hotfix) testée pour les vulnérabilités activement exploitées.",
      "preuve": "Procédure de hotfix d'urgence testée pour les vulnérabilités exploitées.",
      "outils": [],
      "standards": [
        "SSDF RV.2",
        "CRA"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque.",
        "Après une intrusion initiale, l'attaquant se déplace latéralement et installe des mécanismes de persistance pour conserver l'accès. La compromission s'étend dans le temps et l'espace faute de détection et de segmentation."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-rem-4"
    },
    {
      "id": "SOCLE-VLN-VEX-1",
      "n": 1,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "VEX",
      "famille_nom": "Triage & priorisation (VEX)",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "statut VEX par vulnérabilité (not_affected / affected / fixed / under_investigation) documenté et publié.",
      "preuve": "Documents VEX (statut par vulnérabilité) produits et publiés.",
      "outils": [
        "OpenVEX",
        "Dependency-Track"
      ],
      "standards": [
        "VEX / OpenVEX",
        "CSAF",
        "CycloneDX/SPDX (profil sécurité)"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-vex-1"
    },
    {
      "id": "SOCLE-VLN-VEX-2",
      "n": 2,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "VEX",
      "famille_nom": "Triage & priorisation (VEX)",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "priorisation contextuelle (exposition, criticité de l'actif, exploitabilité réelle) plutôt que CVSS seul.",
      "preuve": "Priorisation contextuelle documentée (exposition, criticité, exploitabilité).",
      "outils": [
        "OpenVEX",
        "Dependency-Track"
      ],
      "standards": [
        "VEX / OpenVEX",
        "SSDF RV.1"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-vex-2"
    },
    {
      "id": "SOCLE-VLN-VEX-3",
      "n": 3,
      "domaine": "VLN",
      "domaine_nom": "Vulnérabilités, VEX & réponse",
      "famille": "VEX",
      "famille_nom": "Triage & priorisation (VEX)",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "automatisation du triage (réduction des faux positifs via VEX) intégrée à la chaîne.",
      "preuve": "Triage automatisé intégrant les VEX (réduction des faux positifs).",
      "outils": [
        "OpenVEX",
        "Dependency-Track"
      ],
      "standards": [
        "VEX / OpenVEX",
        "CycloneDX (ECMA-424)"
      ],
      "menaces": [
        "La charge malveillante n'est pas dans la dépendance directe mais dans une dépendance de dépendance, invisible sans analyse du graphe complet. La profondeur de l'arbre de dépendances masque l'origine du risque."
      ],
      "href": "/docs/securiser/socle/referentiel/vulnerabilites/#socle-vln-vex-3"
    },
    {
      "id": "SOCLE-WKS-DEV-1",
      "n": 1,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "DEV",
      "famille_nom": "Outils de développement & hygiène de la chaîne locale",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "sources d'outils et de dépendances maîtrisées ; proscrire l'exécution de scripts non vérifiés (`curl | sh`).",
      "preuve": "Politique de sources d'outils maîtrisées ; interdiction des scripts non vérifiés.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-3",
        "S2C2F"
      ],
      "menaces": [
        "Un outil en ligne de commande est installé depuis une source non vérifiée (curl | sh, miroir non officiel) et son binaire est trojanisé. L'installation, exécutée avec les droits du poste, ouvre un accès ou vole des secrets avant même tout usage."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-de-developpement-hygiene-de-la-chaine-locale/#socle-wks-dev-1"
    },
    {
      "id": "SOCLE-WKS-DEV-2",
      "n": 2,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "DEV",
      "famille_nom": "Outils de développement & hygiène de la chaîne locale",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "secret scanning en pré-commit avant toute poussée.",
      "preuve": "Hook de secret scanning en pré-commit.",
      "outils": [
        "Gitleaks",
        "pre-commit"
      ],
      "standards": [
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-de-developpement-hygiene-de-la-chaine-locale/#socle-wks-dev-2"
    },
    {
      "id": "SOCLE-WKS-DEV-3",
      "n": 3,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "DEV",
      "famille_nom": "Outils de développement & hygiène de la chaîne locale",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "signature des commits configurée et vérifiée.",
      "preuve": "Configuration et vérification de la signature des commits.",
      "outils": [
        "gitsign",
        "git verify-commit"
      ],
      "standards": [
        "SLSA (Source)",
        "Sigstore",
        "SSDF PS.1"
      ],
      "menaces": [
        "Du code malveillant est poussé directement sur une branche protégée sans revue obligatoire (push direct, protection absente). Sans contrôle à quatre yeux, une modification hostile entre dans la base de code de référence.",
        "L'absence de signature vérifiée des commits et tags permet d'usurper l'auteur ou d'introduire des objets non authentifiés dans l'historique. Sans signature imposée, l'identité du contributeur n'est pas prouvable."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-de-developpement-hygiene-de-la-chaine-locale/#socle-wks-dev-3"
    },
    {
      "id": "SOCLE-WKS-DEV-4",
      "n": 4,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "DEV",
      "famille_nom": "Outils de développement & hygiène de la chaîne locale",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "extensions d'IDE et plugins navigateur maîtrisés : liste autorisée et revue, blocage des extensions non signées ou non vérifiées.",
      "preuve": "Liste autorisée d'extensions ; blocage des non signées, auto-update désactivé, registre vérifié.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP CICD-SEC-3",
        "NIST 800-207",
        "CIS Benchmarks"
      ],
      "menaces": [
        "Une extension d'éditeur (VS Code, JetBrains), même sous un éditeur d'apparence vérifiée, embarque du code malveillant exécuté sur le poste du développeur. Elle vole identifiants, jetons et clés, ou installe un RAT, en s'exécutant avec les droits du dev et l'accès à ses dépôts et secrets.",
        "Le jeton de publication (PAT) d'un éditeur d'extension fuite, permettant de pousser une mise à jour piégée diffusée automatiquement à toute la base installée. Une seule fuite de jeton compromet des milliers de postes via le canal de mise à jour de confiance.",
        "Un assistant IA ou une documentation recommande une extension ou un paquet dont le nom n'existe pas encore ; l'attaquant enregistre ce nom (squat) pour livrer du code malveillant aux utilisateurs qui suivent la recommandation. La surface naît de la confiance aveugle dans les suggestions automatisées."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-de-developpement-hygiene-de-la-chaine-locale/#socle-wks-dev-4"
    },
    {
      "id": "SOCLE-WKS-DEV-5",
      "n": 5,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "DEV",
      "famille_nom": "Outils de développement & hygiène de la chaîne locale",
      "famille_ordre": 3,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "aucun secret dans les fichiers de configuration de projet versionnés.",
      "preuve": "Inspection : aucun secret dans les fichiers de configuration de projet versionnés.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-6"
      ],
      "menaces": [
        "Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-de-developpement-hygiene-de-la-chaine-locale/#socle-wks-dev-5"
    },
    {
      "id": "SOCLE-WKS-DEV-6",
      "n": 6,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "DEV",
      "famille_nom": "Outils de développement & hygiène de la chaîne locale",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "CLI et binaires d'outils installés depuis des sources maîtrisées, avec vérification de signature/empreinte ; pas d'installation par script distant non vérifié.",
      "preuve": "Procédure d'installation des CLI/binaires avec vérification de signature/empreinte.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-3",
        "S2C2F"
      ],
      "menaces": [
        "Un outil en ligne de commande est installé depuis une source non vérifiée (curl | sh, miroir non officiel) et son binaire est trojanisé. L'installation, exécutée avec les droits du poste, ouvre un accès ou vole des secrets avant même tout usage."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-de-developpement-hygiene-de-la-chaine-locale/#socle-wks-dev-6"
    },
    {
      "id": "SOCLE-WKS-DEV-7",
      "n": 7,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "DEV",
      "famille_nom": "Outils de développement & hygiène de la chaîne locale",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "auto-update silencieux des extensions désactivé ; éditeur et registre réel vérifiés (Marketplace vs OpenVSX).",
      "preuve": "Configuration désactivant l'auto-update ; procédure de vérification d'éditeur.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP CICD-SEC-3",
        "NIST 800-207",
        "CIS Benchmarks"
      ],
      "menaces": [
        "Une extension d'éditeur (VS Code, JetBrains), même sous un éditeur d'apparence vérifiée, embarque du code malveillant exécuté sur le poste du développeur. Elle vole identifiants, jetons et clés, ou installe un RAT, en s'exécutant avec les droits du dev et l'accès à ses dépôts et secrets.",
        "Le jeton de publication (PAT) d'un éditeur d'extension fuite, permettant de pousser une mise à jour piégée diffusée automatiquement à toute la base installée. Une seule fuite de jeton compromet des milliers de postes via le canal de mise à jour de confiance.",
        "Un assistant IA ou une documentation recommande une extension ou un paquet dont le nom n'existe pas encore ; l'attaquant enregistre ce nom (squat) pour livrer du code malveillant aux utilisateurs qui suivent la recommandation. La surface naît de la confiance aveugle dans les suggestions automatisées."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-de-developpement-hygiene-de-la-chaine-locale/#socle-wks-dev-7"
    },
    {
      "id": "SOCLE-WKS-DEV-8",
      "n": 8,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "DEV",
      "famille_nom": "Outils de développement & hygiène de la chaîne locale",
      "famille_ordre": 3,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "délai de quarantaine observé avant adoption d'une nouvelle extension ou version.",
      "preuve": "Politique de quarantaine documentée et appliquée.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP CICD-SEC-3",
        "NIST 800-207",
        "CIS Benchmarks"
      ],
      "menaces": [
        "Une extension d'éditeur (VS Code, JetBrains), même sous un éditeur d'apparence vérifiée, embarque du code malveillant exécuté sur le poste du développeur. Elle vole identifiants, jetons et clés, ou installe un RAT, en s'exécutant avec les droits du dev et l'accès à ses dépôts et secrets.",
        "Un assistant IA ou une documentation recommande une extension ou un paquet dont le nom n'existe pas encore ; l'attaquant enregistre ce nom (squat) pour livrer du code malveillant aux utilisateurs qui suivent la recommandation. La surface naît de la confiance aveugle dans les suggestions automatisées."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-de-developpement-hygiene-de-la-chaine-locale/#socle-wks-dev-8"
    },
    {
      "id": "SOCLE-WKS-GEN-1",
      "n": 1,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "poste durci et chiffré (disque) ; OS et outils maintenus à jour.",
      "preuve": "Preuve de chiffrement disque ; rapport de durcissement et de mise à jour du poste.",
      "outils": [],
      "standards": [
        "CIS Benchmarks",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/#socle-wks-gen-1"
    },
    {
      "id": "SOCLE-WKS-GEN-2",
      "n": 2,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "identité forte (MFA) et moindre privilège ; pas d'administration permanente.",
      "preuve": "Configuration MFA ; absence de droits admin permanents.",
      "outils": [],
      "standards": [
        "NIST 800-207",
        "OWASP CICD-SEC-2"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/#socle-wks-gen-2"
    },
    {
      "id": "SOCLE-WKS-GEN-3",
      "n": 3,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "exécution du code non fiable isolée localement (conteneurs/VM/devcontainers).",
      "preuve": "Dispositif d'isolation locale du code non fiable (devcontainers/VM/conteneurs).",
      "outils": [],
      "standards": [
        "NIST 800-207",
        "SSDF PO.5"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/#socle-wks-gen-3"
    },
    {
      "id": "SOCLE-WKS-GEN-4",
      "n": 4,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "hygiène de la chaîne locale : secret scanning pré-commit, signature des commits, sources d'outils maîtrisées.",
      "preuve": "Hooks pré-commit (secret scanning), configuration de signature des commits, politique de sources d'outils.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-6",
        "SLSA (Source)"
      ],
      "menaces": [
        "Un outil en ligne de commande est installé depuis une source non vérifiée (curl | sh, miroir non officiel) et son binaire est trojanisé. L'installation, exécutée avec les droits du poste, ouvre un accès ou vole des secrets avant même tout usage."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/#socle-wks-gen-4"
    },
    {
      "id": "SOCLE-WKS-GEN-5",
      "n": 5,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "EDR/télémétrie et conformité du poste vérifiée (device trust).",
      "preuve": "Déploiement EDR/télémétrie ; vérification de conformité du poste (device trust).",
      "outils": [
        "osquery"
      ],
      "standards": [
        "NIST 800-207",
        "CIS Benchmarks"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail).",
        "Un outil en ligne de commande est installé depuis une source non vérifiée (curl | sh, miroir non officiel) et son binaire est trojanisé. L'installation, exécutée avec les droits du poste, ouvre un accès ou vole des secrets avant même tout usage."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/#socle-wks-gen-5"
    },
    {
      "id": "SOCLE-WKS-GEN-6",
      "n": 6,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "GEN",
      "famille_nom": "Exigences générales",
      "famille_ordre": 0,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": true,
      "souverain": false,
      "profils": [],
      "texte": "extensions d'IDE et outils dev maîtrisés : liste autorisée, sources/signatures vérifiées, auto-update silencieux désactivé, délai de quarantaine avant adoption.",
      "preuve": "Liste autorisée d'extensions/outils ; preuve de désactivation de l'auto-update et de quarantaine.",
      "outils": [],
      "standards": [
        "OWASP CICD-SEC-6",
        "OWASP CICD-SEC-3",
        "CIS Benchmarks"
      ],
      "menaces": [
        "Une extension d'éditeur (VS Code, JetBrains), même sous un éditeur d'apparence vérifiée, embarque du code malveillant exécuté sur le poste du développeur. Elle vole identifiants, jetons et clés, ou installe un RAT, en s'exécutant avec les droits du dev et l'accès à ses dépôts et secrets.",
        "Le jeton de publication (PAT) d'un éditeur d'extension fuite, permettant de pousser une mise à jour piégée diffusée automatiquement à toute la base installée. Une seule fuite de jeton compromet des milliers de postes via le canal de mise à jour de confiance.",
        "Un assistant IA ou une documentation recommande une extension ou un paquet dont le nom n'existe pas encore ; l'attaquant enregistre ce nom (squat) pour livrer du code malveillant aux utilisateurs qui suivent la recommandation. La surface naît de la confiance aveugle dans les suggestions automatisées."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/#socle-wks-gen-6"
    },
    {
      "id": "SOCLE-WKS-HRD-1",
      "n": 1,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "HRD",
      "famille_nom": "Durcissement & conformité du poste",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "chiffrement intégral du disque.",
      "preuve": "Preuve de chiffrement intégral du disque.",
      "outils": [
        "OpenSCAP",
        "CIS-CAT"
      ],
      "standards": [
        "CIS Benchmarks",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/durcissement-conformite-du-poste/#socle-wks-hrd-1"
    },
    {
      "id": "SOCLE-WKS-HRD-2",
      "n": 2,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "HRD",
      "famille_nom": "Durcissement & conformité du poste",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "OS et outils maintenus à jour (correctifs gérés).",
      "preuve": "Preuve de gestion des correctifs (OS et outils à jour).",
      "outils": [
        "OpenSCAP",
        "CIS-CAT"
      ],
      "standards": [
        "CIS Benchmarks",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/durcissement-conformite-du-poste/#socle-wks-hrd-2"
    },
    {
      "id": "SOCLE-WKS-HRD-3",
      "n": 3,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "HRD",
      "famille_nom": "Durcissement & conformité du poste",
      "famille_ordre": 1,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "configuration durcie de référence ; pare-feu local actif.",
      "preuve": "Configuration durcie de référence appliquée ; pare-feu local actif.",
      "outils": [
        "OpenSCAP",
        "CIS-CAT"
      ],
      "standards": [
        "CIS Benchmarks",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/durcissement-conformite-du-poste/#socle-wks-hrd-3"
    },
    {
      "id": "SOCLE-WKS-HRD-4",
      "n": 4,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "HRD",
      "famille_nom": "Durcissement & conformité du poste",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "EDR/antimalware avec télémétrie centralisée.",
      "preuve": "Déploiement EDR/antimalware ; télémétrie centralisée.",
      "outils": [
        "OpenSCAP",
        "CIS-CAT"
      ],
      "standards": [
        "NIST 800-207",
        "CIS Benchmarks"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/durcissement-conformite-du-poste/#socle-wks-hrd-4"
    },
    {
      "id": "SOCLE-WKS-HRD-5",
      "n": 5,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "HRD",
      "famille_nom": "Durcissement & conformité du poste",
      "famille_ordre": 1,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "verrouillage de session et chiffrement des sauvegardes.",
      "preuve": "Verrouillage de session configuré ; chiffrement des sauvegardes.",
      "outils": [
        "OpenSCAP",
        "CIS-CAT"
      ],
      "standards": [
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/durcissement-conformite-du-poste/#socle-wks-hrd-5"
    },
    {
      "id": "SOCLE-WKS-LOT-1",
      "n": 1,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "LOT",
      "famille_nom": "Outils détournables (Living Off the Pipeline)",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "inventaire des outils détournables présents en CI et sur les postes, croisé avec le catalogue LOTP.",
      "preuve": "Inventaire des outils détournables (croisé LOTP) en CI et sur les postes.",
      "outils": [
        "poutine"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "LOTP"
      ],
      "menaces": [
        "Un linter, formateur, framework de test ou outil de build exécute du code arbitraire par conception, via un fichier de configuration, un plugin ou une variable d'environnement contrôlés par l'attaquant (Living Off the Pipeline). Aucune faille n'est nécessaire : la fonctionnalité légitime sert d'exécution."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-detournables-living-off-the-pipeline/#socle-wks-lot-1"
    },
    {
      "id": "SOCLE-WKS-LOT-2",
      "n": 2,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "LOT",
      "famille_nom": "Outils détournables (Living Off the Pipeline)",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "désactiver ou confiner les fonctionnalités d'exécution arbitraire : scripts de cycle de vie des paquets (`--ignore-scripts`), auto-chargement de plugins/config, `eval` dans les configurations.",
      "preuve": "Preuve de désactivation/confinement de l'exécution arbitraire (scripts de paquets, plugins, eval).",
      "outils": [
        "poutine"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "LOTP"
      ],
      "menaces": [
        "Un linter, formateur, framework de test ou outil de build exécute du code arbitraire par conception, via un fichier de configuration, un plugin ou une variable d'environnement contrôlés par l'attaquant (Living Off the Pipeline). Aucune faille n'est nécessaire : la fonctionnalité légitime sert d'exécution.",
        "Un paquet exécute du code arbitraire via ses scripts de cycle de vie (postinstall, preinstall) dès l'installation, avant tout usage. L'ajout d'une dépendance suffit à déclencher la charge."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-detournables-living-off-the-pipeline/#socle-wks-lot-2"
    },
    {
      "id": "SOCLE-WKS-LOT-3",
      "n": 3,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "LOT",
      "famille_nom": "Outils détournables (Living Off the Pipeline)",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "fichiers de configuration des outils (linters, formateurs, build) épinglés et revus ; pas de configuration tirée d'une source non fiable (PR de fork).",
      "preuve": "Fichiers de configuration des outils épinglés et revus ; pas de config de source non fiable.",
      "outils": [
        "poutine"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "SLSA (Source)"
      ],
      "menaces": [
        "Un linter, formateur, framework de test ou outil de build exécute du code arbitraire par conception, via un fichier de configuration, un plugin ou une variable d'environnement contrôlés par l'attaquant (Living Off the Pipeline). Aucune faille n'est nécessaire : la fonctionnalité légitime sert d'exécution.",
        "Une donnée contrôlée par l'attaquant (titre de PR, nom de branche, message de commit) est interpolée sans échappement dans un script de workflow, provoquant une exécution de commande dans le pipeline. C'est l'injection classique portée au CI.",
        "Un plugin ou une extension de l'outil de build (Gradle, Maven, bundler) exécute du code au moment de la construction, hors de toute revue du code applicatif. Le build devient un vecteur d'exécution tierce.",
        "Poisoned Pipeline Execution indirecte : l'injection passe par un fichier consommé par le pipeline (Makefile, script, configuration d'outil) plutôt que par le fichier de CI. Le résultat est identique : exécution de code attaquant dans le pipeline."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-detournables-living-off-the-pipeline/#socle-wks-lot-3"
    },
    {
      "id": "SOCLE-WKS-LOT-4",
      "n": 4,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "LOT",
      "famille_nom": "Outils détournables (Living Off the Pipeline)",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "exécution de ces outils sur du code non fiable confinée en bac à sable ; variables d'environnement maîtrisées.",
      "preuve": "Confinement en bac à sable de l'exécution des outils sur du code non fiable.",
      "outils": [
        "poutine"
      ],
      "standards": [
        "CIS Benchmarks",
        "NIST 800-207"
      ],
      "menaces": [
        "Un linter, formateur, framework de test ou outil de build exécute du code arbitraire par conception, via un fichier de configuration, un plugin ou une variable d'environnement contrôlés par l'attaquant (Living Off the Pipeline). Aucune faille n'est nécessaire : la fonctionnalité légitime sert d'exécution."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-detournables-living-off-the-pipeline/#socle-wks-lot-4"
    },
    {
      "id": "SOCLE-WKS-LOT-5",
      "n": 5,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "LOT",
      "famille_nom": "Outils détournables (Living Off the Pipeline)",
      "famille_ordre": 4,
      "niveau": "R2",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "scan des dépôts/pipelines à la recherche de schémas détournables (ex. scanner CI/CD type poutine).",
      "preuve": "Résultat de scan des dépôts/pipelines pour schémas détournables (ex. poutine).",
      "outils": [
        "poutine"
      ],
      "standards": [
        "OWASP CICD-SEC-4",
        "LOTP"
      ],
      "menaces": [
        "Un linter, formateur, framework de test ou outil de build exécute du code arbitraire par conception, via un fichier de configuration, un plugin ou une variable d'environnement contrôlés par l'attaquant (Living Off the Pipeline). Aucune faille n'est nécessaire : la fonctionnalité légitime sert d'exécution.",
        "Un paquet exécute du code arbitraire via ses scripts de cycle de vie (postinstall, preinstall) dès l'installation, avant tout usage. L'ajout d'une dépendance suffit à déclencher la charge."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/outils-detournables-living-off-the-pipeline/#socle-wks-lot-5"
    },
    {
      "id": "SOCLE-WKS-PRV-1",
      "n": 1,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "PRV",
      "famille_nom": "Identité, privilèges & isolation locale",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "authentification forte (MFA) pour l'accès au poste et aux services.",
      "preuve": "Configuration MFA pour le poste et les services.",
      "outils": [],
      "standards": [
        "NIST 800-207",
        "OWASP CICD-SEC-2"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/identite-privileges-isolation-locale/#socle-wks-prv-1"
    },
    {
      "id": "SOCLE-WKS-PRV-2",
      "n": 2,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "PRV",
      "famille_nom": "Identité, privilèges & isolation locale",
      "famille_ordre": 2,
      "niveau": "R1",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "moindre privilège : pas de droits admin permanents pour l'usage courant.",
      "preuve": "Absence de droits admin permanents pour l'usage courant.",
      "outils": [],
      "standards": [
        "NIST 800-207",
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/identite-privileges-isolation-locale/#socle-wks-prv-2"
    },
    {
      "id": "SOCLE-WKS-PRV-3",
      "n": 3,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "PRV",
      "famille_nom": "Identité, privilèges & isolation locale",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "séparation des usages : compte admin distinct, élévation à la demande.",
      "preuve": "Compte admin distinct ; mécanisme d'élévation à la demande.",
      "outils": [],
      "standards": [
        "ANSSI-BP-028"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/identite-privileges-isolation-locale/#socle-wks-prv-3"
    },
    {
      "id": "SOCLE-WKS-PRV-4",
      "n": 4,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "PRV",
      "famille_nom": "Identité, privilèges & isolation locale",
      "famille_ordre": 2,
      "niveau": "R2",
      "devoir": "DOIT",
      "essentielle": false,
      "souverain": false,
      "profils": [],
      "texte": "exécution du code non fiable isolée (devcontainers/VM/conteneurs).",
      "preuve": "Dispositif d'isolation du code non fiable (devcontainers/VM/conteneurs).",
      "outils": [],
      "standards": [
        "NIST 800-207",
        "SSDF PO.5"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/identite-privileges-isolation-locale/#socle-wks-prv-4"
    },
    {
      "id": "SOCLE-WKS-PRV-5",
      "n": 5,
      "domaine": "WKS",
      "domaine_nom": "Poste de travail dev/ops",
      "famille": "PRV",
      "famille_nom": "Identité, privilèges & isolation locale",
      "famille_ordre": 2,
      "niveau": "R3",
      "devoir": "DEVRAIT",
      "essentielle": false,
      "souverain": true,
      "profils": [
        "souverain"
      ],
      "texte": "device trust : accès conditionné à la conformité vérifiée du poste.",
      "preuve": "Politique de device trust : accès conditionné à la conformité du poste.",
      "outils": [],
      "standards": [
        "NIST 800-207"
      ],
      "menaces": [
        "Un développeur est piégé (faux entretien d'embauche, projet de test, dépendance à essayer) pour exécuter localement un projet malveillant. Le code s'exécute hors bac à sable avec ses droits et exfiltre credentials et portefeuilles (campagnes Lazarus / BeaverTail)."
      ],
      "href": "/docs/securiser/socle/referentiel/poste-travail/identite-privileges-isolation-locale/#socle-wks-prv-5"
    }
  ]
}
