Da der Code Risk Analyzer (CRA) nicht mehr weiterentwickelt wird, bieten die Scans von Syft und Grype eine Alternative, die die meisten Funktionen des CRA abdecken. Informationen zum Deaktivieren von CRA-Funktionen finden Sie unter Deaktivieren von Scans mit dem Code Risk Analyzer.
IBM Cloud Code Risk Analyzer-Scans konfigurieren
Sie können IBM Cloud Code Risk Analyzer verwenden, um Ihren Code auf Schwachstellen zu analysieren und die Einhaltung bestimmter Regeln zu überprüfen.
Wenn Code Risk Analyzer Ihre Anwendung bewertet, wird eine Software-Stückliste (SBOM) erstellt, die die Abhängigkeiten und verfügbaren Lizenzinformationen aller Drittanbieterpakete auflistet. Dies kann bei Bedarf im Format cycloneDX-specific generiert werden. Die in der SBOM-Datei aufgelisteten Pakete werden auf Schwachstellen gescannt. Diese Datei kann im Format cycloneDX-specific erstellt werden. Alternativ können Sie die automatische Behebung von Sicherheitslücken
aktivieren, die für Anwendungen gefunden werden, die in Node.js, Maven oder Gradle geschrieben wurden.
- Alle Kubernetes-Dateien werden auf Konformität analysiert.
- Alle Terraform-Pläne werden auf Konformität analysiert.
Code Risk Analyzer ist in allen IBM Cloud-Regionen verfügbar, in denen Toolchains unterstützt werden. Weitere Informationen finden Sie in der Dokumentation zum Plug-in.
Scans konfigurieren
Zum Generieren der SBOM-Datei greift ein Code Risk Analyzer-Scan auf Artefakte im angegebenen Verzeichnispfad zu und führt eine gründliche Erkennung durch, um alle Abhängigkeiten einschließlich trasitiver Abhängigkeiten zu identifizieren. Es gibt keine bestimmten Pipelineumgebungsvariablen, die erforderlich sind, um die SBOM-Datei zu generieren und Schwachstellen zu erkennen. Wenn der Pfad jedoch eine Dockerfile enthält, wird das Basisimage extrahiert und Images werden für jede in der Datei angegebene Buildstufe erstellt.
Wenn für Ihre Dockerfile ARGS erforderlich ist, legen Sie ein einzelnes ARG als Umgebungsvariable in einem angepassten Script fest und geben Sie die Position des angepassten Scripts als Pipeline an.
| Umgebungsvariablen | Beschreibung | Erforderlich oder optional | Zweck |
|---|---|---|---|
cra-custom-script-path |
Pfad zum Skript in Ihrem Repository. | Optional | Setzt Umgebungsvariablen, die vom Skript Docker benötigt werden. |
Weitere Informationen finden Sie unter Angepasste Scripts.
Terraform-Dateien werden standardmäßig nicht analysiert. Zum Scannen Ihrer Terraform-Datei müssen Sie die folgenden Pipelineumgebungsvariablen festlegen.
| Umgebungsvariablen | Beschreibung | Erforderlich oder optional | Zweck |
|---|---|---|---|
opt-in-tfsec |
'True' oder 'False'. Standardmäßig auf 'false' festgelegt. | Optionale | Durchsucht Terraform-Dateien nach Sicherheit. |
opt-in-cra-tf-validate |
'True' oder 'False'. Standardmäßig auf 'false' festgelegt. | Optionale | Validiert Terraform-Dateien. |
Der Code Risk Analyzer-Scan verwendet den bereitgestellten API-Schlüssel für die Anmeldung bei der IBMCloud-CLI und löst einen Docker-Build aus. Die vorhandene IBM Cloud-CLI-Sitzung wird für den Rest dieses CRA-Schritts weiterhin verwendet.
Die IBM Cloud-CLI-Sitzung läuft jedoch nach 20 Minuten für eine Standard-API-Schlüsselanmeldung ab. Wenn der Buildprozess länger als 20 Minuten dauert, schlägt der CRA-Schritt mit einer 401-Fehlernachricht fehl, da die Sitzung abgelaufen ist.
Die Umgebungsvariable ibmcloud-enable-session-keep-alive wurde eingeführt, um die IBM Cloud-CLI-Sitzung für so lange Operationen aktiv zu halten.
| Umgebungsvariablen | Beschreibung | Typ | Erforderlich oder optional | Zweck |
|---|---|---|---|---|
ibmcloud-enable-session-keep-alive |
0 oder 1. Standardmäßig auf 0 gesetzt. | auswählen | Optionale | Halten Sie die IBMCloud-CLI-Sitzung für Jobs mit langer Laufzeit im Code Risk Analyzer-Scan aktiv. |
Standardmäßig führt der Code Risk Analyzer-Bereitstellungsanalysebefehl Konfigurationsprüfungen für Kubernetes-Bereitstellungsmanifeste aus. Der Code Risk Analyzer-Befehl deployment-analyze
wird mit der Optionsgruppe --strict ausgeführt. Um Dateien während der Implementierung von Code Risk Analyzer zu ignorieren, muss die folgende Umgebungsvariable verwendet werden.
| Umgebungsvariablen | Beschreibung | Erforderlich oder optional | Zweck |
|---|---|---|---|
cra-cis-fileignore-path |
Der Pfad der Datei .fileignore in Ihrem Repository. | Optionale | Geben Sie den Pfad der .fileignore-Datei an, die Informationen zu Dateien enthält, die während des Implementierungsanalysescans von Code Risk Analyzer ignoriert werden sollen. |
Schwachstellen auslassen, um Ihre App bereitzustellen
Der Code Risk Analyzer wurde entwickelt, um verwundbare Pakete zu finden, bevor ein Advisory Board dies tut. In Ausnahmefällen müssen Sie Ihre Anwendung möglicherweise implementieren, auch wenn anfällige Pakete erkannt und noch nicht behoben wurden. Sie sollten die Pakete nach Möglichkeit aktualisieren oder entfernen, bevor Sie Ihren Code erneut implementieren.
Um bestimmte Dateien zu ignorieren und Ihre Push-Operation für die Produktion abzuschließen, können Sie eine Datei mit dem Namen .cra/.cveignore im Stammverzeichnis des gescannten Repositorys mit dem folgenden Schema erstellen:
[
{
"cve": "string",
"alwaysOmit": "bool",
"untilRemediationAvailable": "bool",
"expiration": "string"
},
]
Das folgende Code-Snippet zeigt eine Beispieldatei .cveignore:
[
{
"cve": "CVE-2021-27290",
"alwaysOmit": true
},
{
"cve": "CVE-2020-8244",
"untilRemediationAvailable": true,
},
{
"cve": "CLAIR-JAVA-ORGAPACHEHTTPCOMPONENTS-31517",
"expiration": "2022-02-10T22:08:41+04:00",
"comment": "Additional security measures are in place"
}
]
Diese Datei wurde früher als .craveomit bezeichnet. Das ursprüngliche Dateiformat wurde veraltet und durch .cra/.cveignore ersetzt. Aktualisieren
Sie Ihren Code so, dass die neueste Datei verwendet wird.
Sie können weitere Informationen zu den Dokumenten des Code Risk Analyzer-Plug-ins oder auch die veralteten CRA-Dokumente lesen.
Schwachstellen automatisch beheben
Sie können Code Risk Analyzer als Teil der CC-Pipeline (CC = Continuous Compliance) verwenden, um Schwachstellen nicht nur zu finden, sondern automatisch zu beheben. Code Risk Analyzer arbeitet als Teil des Schritts compliance-check der Pipeline. Standardmäßig ist die automatische Fehlerbehebung deaktiviert.
Die automatische Korrektur ist nur für die CC-Pipeline verfügbar.
Wenn die automatische Korrektur aktiviert ist, versucht Code Risk Analyzer, ein anfälliges Paket auf eine nicht vunnerable Version zu aktualisieren, indem eine Pull-Anforderung mit den angegebenen Fixes für den Standardzweig Ihres Repositorys erstellt wird. Standardmäßig aktualisiert Code Risk Analyzer Minor-und Patchversionen für das anfällige Hauptpaket sowie abhängige Pakete, jedoch nicht die Hauptversion eines Pakets. Wenn die Pull-Anforderung akzeptabel ist, können Sie sie manuell genehmigen und zusammenführen. Jedes Mal, wenn die Pipeline ausgeführt wird, wird eine neue Pull-Anforderung generiert. Stellen Sie daher sicher, dass sie geprüft und zusammengeführt werden, wenn sie geöffnet werden, um Duplizierungen zu vermeiden.
Die automatische Korrektur ist für die Enterprise GitHub-und GitLab-Repositorys verfügbar und kann die in der folgenden Tabelle angegebenen Dateien ändern.
| Ecosystem | Änderbare Dateien |
|---|---|
| Node.js | package.json und package-lock.json |
| Gradle | build.gradle, gradle.lockfile und buildscript-gradle.lockfile |
| Maven | pom.xml |
Um die automatische Korrektur von Schwachstellen zu starten, legen Sie die folgenden optionalen Umgebungsvariablen für Ihre Pipeline fest.
| Variable | Beschreibung | Standardeinstellungen |
|---|---|---|
opt-in-cra-auto-remediation |
Aktiviert die automatische Korrektur für Ihre Pipeline. | falseSetzen Sie diese Variable auf true, um mit der Korrektur zu beginnen. |
opt-in-cra-auto-remediation-force |
Erzwingt eine Aktualisierung des Hauptpakets als Teil der Pull-Anforderung, die geöffnet wird. | falseUm eine Aktualisierung des Hauptpakets zu erzwingen, setzen Sie diese Variable auf true. |
opt-in-cra-auto-remediation-enabled-repos |
Gibt bestimmte Repositorys an, für die Sie die automatische Korrektur aktivieren wollen | Aktiviert für alle Repositorys, die zurückgegeben werden, wenn list_repos aufgerufen wird. Um bestimmte Repositorys anzugeben, geben Sie eine durch Kommas getrennte Liste mit Repository-Namen an. |
Deaktivieren von Scans mit dem Code Risk Analyzer
Legen Sie die folgenden Umgebungsvariablen fest, um die Scans des Code Risk Analyzer zu deaktivieren.
| Variable | Typ | Erforderlich oder optional | Opt-out-Wert | Standardwert | Alternativ |
|---|---|---|---|---|---|
cra-bom-generate |
Auflistung | Optionale | 0 |
1 |
Zweck |
cra-vulnerability-scan |
Auflistung | Optionale | 0 |
1 |
Grype |
cra-deploy-analysis |
Auflistung | Optionale | 0 |
1 |
Checkov |
opt-in-cra-tf-validate |
Auflistung | Optionale | 0 |
1 |
Checkov |
Der Schwachstellen-Scan und der Scan zur Bereitstellunganalyse sind standardmäßig als erforderliche Prüfungen für den Filialschutz festgelegt. Wenn Sie einen dieser Scans deaktivieren möchten, stellen Sie sicher, dass Sie die Compliance-Prüfungen anpassen und die Regeln für den Zweigschutz konfigurieren.