Validation des informations collectées
Dans le DevSecOps architecture, avant de déployer les actifs, tous les éléments de preuve collectés dans le pipeline CI doivent être validés afin que les actifs répondent aux exigences de conformité.
La collecte de preuves est un aspect essentiel de la DevSecOps architecture de référence. Le pipeline d'EC collecte les éléments d'informations collectées pour toutes les analyses ou étapes des actifs effectuées par le pipeline d'EC. Le pipeline de déploiement continu (CD) déploie les actifs qui sont produits par le pipeline d'EC et le pipeline de conformité continue (CC) analyse l'actif déployé par le pipeline CD.
Vous pouvez valider les preuves de l'une des manières suivantes :
- Utilisation du profil Security and Compliance Center (SCC).
- Utilisation d'un fichier de configuration.
Utilisation du profil SCC
Utilisez SCC pour intégrer des contrôles de sécurité dans vos flux de travail quotidiens afin de surveiller la sécurité et la conformité. En surveillant les risques, vous pouvez identifier les vulnérabilités de sécurité, travailler à atténuer
leur impact et résoudre les problèmes. L'intégration de la contrainte de contexte de sécurité doit être activée pour la chaîne d'outils et Use profile with attachment
doit être activé, en fonction du profil et de la version de
la contrainte de contexte de sécurité. Tous les contrôles sont validés en fonction des informations collectées pour toutes les ressources de la pièce jointe. La chaîne d'outils prend en charge les IBM Cloud® meilleures pratiques de sécurité
avec la version 1.0.0
ou supérieure ou le profil IBM Cloud® for Financial Services avec la version 1.2.0
ou supérieure. Si vous souhaitez un sous-ensemble de contrôles spécifiés, créez un profil personnalisé à l'aide
de ces profils et sélectionnez un sous-ensemble de contrôles. La chaîne d'outils est validée par rapport à ce profil. Pour plus d'informations, voir Security and Compliance Center.
Utilisation d'un fichier de configuration
La validation des informations collectées à l'aide d'un fichier de configuration fonctionne comme suit:
- Les vérifications préalables au déploiement valident les informations collectées produites par le pipeline d'EC et effectuent les jalons du déploiement en fonction de ces vérifications. Si toutes les vérifications sont validées avec succès,
la demande de changement est approuvée automatiquement. Si l'une des vérifications échoue, la demande de changement n'est pas approuvée automatiquement et le déploiement est bloqué. Dans le cas d'une demande de changement
emergency
, le déploiement n'est pas bloqué. Le fichier de configuration fait partie de la demande de changement. - Les vérifications post-déploiement valident les informations collectées produites par le pipeline CD et évaluent le pipeline en fonction de ces vérifications.
- L'étape de fin valide les vérifications des informations collectées post-déploiement et évalue le pipeline CD. Les vérifications sont stockées dans le casier d'informations collectées à côté du fichier
summary.json
.
Pour chaque type d'actif, il peut être nécessaire de collecter des types d'informations collectées différents. Ainsi, dans les vérifications, vous pouvez définir le type d'actif et, en fonction de cet actif, les informations collectées collectées pour un outil sont les suivantes:
Activer la validation et l'évaluation des informations collectées à l'aide du fichier de configuration
Pour activer le validation of evidence
dans votre chaîne d'outils, définissez la variable d'environnement opt-in-evidence-checks
sur 1
dans la chaîne d'outils CD et CC.
Configurer le fichier de configuration
Pour définir le chemin d'accès au fichier de configuration, définissez evidence-checks-config-path
sur le chemin d'accès au fichier présent dans pipeline-config-repo
, sinon le fichier de configuration par défaut est
utilisé. Différents environnements de déploiement peuvent avoir des fichiers de configuration différents. Par exemple, stage
peut avoir des vérifications d'informations collectées qui diffèrent des vérifications d'informations
collectées de production. Si evidence-checks-config-path
n'est pas défini, le fichier de configuration recherche le fichier dont le nom est <region>.<target>.validation.json
, <target>.validation.JSON
ou validation.json
dans pipeline-config-repo
.
Il existe deux versions de ce fichier de configuration :
Fichier de configuration version 2
Aperçu de la collecte de preuves :
Au cours de l'exécution du pipeline CI/CD/CC, nous collectons diverses preuves contre divers outils et divers environnements de service. En termes simples, l'environnement de service peut être de développement, de production et de pré-prod (ou étape) récemment pris en charge. Les résultats de ces preuves sont regroupés pour déterminer la conformité globale au niveau de l'application pour un environnement de service particulier. L'utilisateur peut configurer des règles pour déterminer la manière dont l'agrégation des résultats est effectuée. Utiliser un fichier de configuration version2, ajustement utilisateur sur la façon d'évaluer toute preuve particulière en fonction de l'environnement de service. Les preuves peuvent être déclarées comme suit :
- recommandé (par défaut)
- obligatoire
Le diagramme ci-dessous montre comment fonctionne l'agrégation des preuves :
Évaluation des preuves et contrôle
Lorsque le niveau de conformité des applications requis n'est pas atteint, nous organisons le déploiement dans l'exécution du pipeline CD. Preuves prises en charge pour le gate :
pre-deployment[evidences list]
post-deployment[evidences list]
Différentes topologies de déploiement :
1. Promotion à partir de master
à prod
{: caption="Cas d'utilisation 1. Promotion à partir de master
à prod
" côté légende="bas"}
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
"}
2. Promotion à partir de master
à stage
et puis à prod
{: caption="Cas d'utilisation 2. Promotion à partir de master
à stage
à prod
"
côté légende="bas"}
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
environnement stage
"}
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
environnement prod
"}
3. Promotion à partir de master
à stage(us-east)
à stage(us-south)
et puis à prod(us-south)
{: caption="Cas d'utilisation 3. Promotion à partir de master
à stage(us-east)
à stage(us-south)
et puis à prod(us-south)
" côté légende="bas"}
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
environnement
stage(us-east)
"}
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
environnement stage(us-south)
"}
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
environnement
prod(us-south)
"}
4. Promotion à partir de master
à stage(us-east)
à stage(us-south)
et puis à prod(us-south)
{: caption="Cas d'utilisation 4. Promotion à partir de master
à stage(us-east)
à
stage(us-south)
et puis à prod(us-south)
" côté légende="bas"}
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
environnement
stage(us-east)
"}
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
environnement stage(us-east)
"}
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
environnement stage(us-south)
"}
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
environnement
prod(us-south)
"}
Tableau des résultats pour version2cocoa locker evidence check
:
{: caption="Propriétés de Manual Promotion Trigger
et Manual CD Trigger
environnement prod(us-south)
"}
Pré-déploiement (vérifications effectuées avant que la demande de changement ne soit approuvée automatiquement)
- Type d'actif (par exemple,
image
,commit
,*
ou tout actif)- Preuve
- ID de type d'informations collectées (par exemple,
com.ibm.static-scan
)- Obligatoire (les informations collectées sont présentées à l'état
success
)- Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple,
SonarQube
,owasp-zap
,*
ou tout autre outil)
- Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple,
- Recommandé (si les informations collectées sont manquantes / pendant/en échec, le pipeline consigne les messages d'avertissement)
- Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple,
SonarQube
,owasp-zap
,*
ou tout autre outil)
- Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple,
- Obligatoire (les informations collectées sont présentées à l'état
- ID de type d'informations collectées (par exemple,
- Preuve
Post-déploiement (vérifications qui évaluent le pipeline CD)
- Type d'actif (par exemple,
image
,commit
,*
ou tout actif)- Preuve
- ID de type d'informations collectées (par exemple,
com.ibm.acceptance_tests
)- Obligatoire (les informations collectées doivent être présentes à l'état
success
)- Outil (type d'outil, par exemple
jest
,*
ou tout autre outil)
- Outil (type d'outil, par exemple
- Recommandé (si les informations collectées sont manquantes / pendant/en échec, le pipeline consigne les messages d'avertissement)
- Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple,
SonarQube
,owasp-zap
,*
ou tout autre outil)
- Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple,
- Obligatoire (les informations collectées doivent être présentes à l'état
- ID de type d'informations collectées (par exemple,
- Preuve
L'évaluation du pipeline se produit également lorsque la vérification est activée dans le CD et le CC, à l'aide du fichier de configuration.
Exemple de fichier de configuration version 2
{
"version": "2.0",
"pre-deployment": [
{
"evidence_type_id": "com.ibm.prod_change_request",
"rules": [
{
"asset_type": "image",
"source_environments": [
{
"name": "stage"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "stage"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.acceptance_tests",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "master"
},
{
"name": "stage"
},
{
"name": "prod"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "image",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.branch_protection",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.cloud.slsa",
"rules": [
{
"asset_type": "image",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.dynamic_scan",
"rules": [
{
"asset_type": "image",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.cloud.verify_signature",
"rules": [
{
"asset_type": "image",
"source_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.cloud.image_vulnerability_scan",
"rules": [
{
"asset_type": "image",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.peer_review",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.unit_tests",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.static_scan",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.detect_secrets",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.code_vulnerability_scan",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.code_cis_check",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.code_bom_check",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.network_compliance",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.pipeline_run_data",
"rules": [
{
"asset_type": "generic",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.pipeline_logs",
"rules": [
{
"asset_type": "generic",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.code-branch-protection",
"rules": [
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.cloud.image_signing",
"rules": [
{
"asset_type": "*",
"source_environments": [
{
"name": "master"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
}
],
"post-deployment": [
{
"evidence_type_id": "com.ibm.prod_change_request",
"rules": [
{
"asset_type": "image",
"source_environments": [
{
"name": "stage"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "stage"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.acceptance_tests",
"rules": [
{
"asset_type": "commit",
"source_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "image",
"source_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
},
{
"asset_type": "*",
"source_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.pipeline_run_data",
"rules": [
{
"asset_type": "generic",
"source_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
},
{
"evidence_type_id": "com.ibm.pipeline_logs",
"rules": [
{
"asset_type": "generic",
"source_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"target_environments": [
{
"name": "stage"
},
{
"name": "prod"
}
],
"required": [],
"recommended": [
{
"name": "tool",
"values": [
"*"
],
"description": "The tool that collected the evidence"
}
]
}
]
}
]
}
Fichier de configuration version 1
Pré-déploiement (vérifications effectuées avant que la demande de changement ne soit approuvée automatiquement)
- Type d'actif (par exemple,
image
,commit
,*
ou tout actif)- Preuve
- ID de type d'informations collectées (par exemple,
com.ibm.static-scan
)- Obligatoire (les informations collectées sont présentées à l'état
success
)- Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple,
SonarQube
,owasp-zap
,*
ou tout autre outil)
- Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple,
- Facultatif (si les informations collectées sont présentes, elles doivent être à l'état
success
)- Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple,
SonarQube
,owasp-zap
,*
ou tout autre outil)
- Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple,
- Ignorer (les informations collectées ne sont pas validées)
- Obligatoire (les informations collectées sont présentées à l'état
- ID de type d'informations collectées (par exemple,
- Preuve
Post-déploiement (vérifications qui évaluent le pipeline CD)
- Type d'actif (par exemple,
image
,commit
,*
ou tout actif)- Preuve
- ID de type d'informations collectées (par exemple,
com.ibm.acceptance_tests
)- Obligatoire (les informations collectées doivent être présentes à l'état
success
)- Outil (type d'outil, par exemple
jest
,*
ou tout autre outil)
- Outil (type d'outil, par exemple
- Facultatif (si les informations collectées sont présentes, elles doivent être à l'état
success
)- Outil (type d'outil, par exemple
servicenow-v3
,*
ou tout autre outil)
- Outil (type d'outil, par exemple
- Ignorer (les informations collectées ne sont pas validées)
- Obligatoire (les informations collectées doivent être présentes à l'état
- ID de type d'informations collectées (par exemple,
- Preuve
L'évaluation du pipeline se produit également lorsque la vérification est activée dans le CD et le CC, à l'aide du fichier de configuration.
Exemple de fichier de configuration version 1
{
"pre-deployment": [
{
"asset_type": "commit",
"evidences": [
{
"evidence_type_id": "com.ibm.branch_protection",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.peer_review",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.unit_tests",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.static_scan",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.detect_secrets",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.code_vulnerability_scan",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.code_cis_check",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.code_bom_check",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.acceptance_tests",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
}
]
},
{
"asset_type": "image",
"evidences": [
{
"evidence_type_id": "com.ibm.cloud.slsa",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.cloud.image_signing",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.cloud.image_vulnerability_scan",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.dynamic_scan",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.cloud.verify_signature",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
}
]
},
{
"asset_type": "generic",
"evidences": [
{
"evidence_type_id": "com.ibm.pipeline_run_data",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.pipeline_logs",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
}
]
},
{
"asset_type": "*",
"evidences": [
{
"evidence_type_id": "com.ibm.code-branch-protection",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.peer_review",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.unit_tests",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.static_scan",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.detect_secrets",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.code_vulnerability_scan",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.code_cis_check",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.code_bom_check",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.cloud.image_signing",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.acceptance_tests",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.cloud.image_vulnerability_scan",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.dynamic_scan",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.cloud.verify_signature",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
}
]
}
],
"post-deployment": [
{
"asset_type": "image",
"evidences": [
{
"evidence_type_id": "com.ibm.prod_change_request",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.acceptance_tests",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
}
]
},
{
"asset_type": "generic",
"evidences": [
{
"evidence_type_id": "com.ibm.pipeline_run_data",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.pipeline_logs",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
}
]
},
{
"asset_type": "commit",
"evidences": [
{
"evidence_type_id": "com.ibm.acceptance_tests",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
}
]
},
{
"asset_type": "*",
"evidences": [
{
"evidence_type_id": "com.ibm.prod_change_request",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
},
{
"evidence_type_id": "com.ibm.acceptance_tests",
"rules": {
"required": [],
"optional": [
{
"tool": "*"
}
],
"ignore": []
}
}
]
}
]
}
Valeur d'outil par défaut pour les différentes étapes du DevSecOps
ID de type d'informations collectées | Outil pris en charge par défaut |
---|---|
com.ibm.branch_protection |
cocoa-branch-protection |
com.ibm.unit_tests |
jest |
com.ibm.detect_secrets |
detect-secrets |
com.ibm.code_vulnerability_scan |
Pour les applications: cra-tf , cra , mend Pour l'infrastructure sous forme de code: tfsec , checkov |
com.ibm.code_bom_check |
cra-bom , sbom-utility |
com.ibm.code_cis_check |
cra-cis |
com.ibm.peer_review |
peer-review |
com.ibm.static_scan |
Pour les applications: sonarqube , gosec Pour l'infrastructure sous forme de code: terraform-fmt , terraform-validate , tflint |
com.ibm.cloud.image_signing |
artifact-signing |
com.ibm.acceptance_tests |
jest |
com.ibm.dynamic_scan |
owasp-zap , owasp-zap-ui |
com.ibm.cloud.image_vulnerability_scan |
va , sysdig , xray |
com.ibm.prod_change_request |
gitlab , |
com.ibm.close_change_request |
gitlab |
|com.ibm.cloud.slsa
| tekton-chains
|