Wichtige Konzepte und Begriffe
Die folgenden Terminologien helfen Ihnen bei den ersten Schritten mit Application Dependency Management (ADM). Die Oracle Cloud Infrastructure-Dokumentation (OCI) enthält zugehörige Terminologie.
- Anwendungsabhängigkeit
-
Eine Softwarekomponente, die durch eine Package-URL (purl) oder GAV (Maven-Gruppe, Artefakt, Versionskoordinate) dargestellt wird und auf Sicherheitslücken in einem Sicherheitslückenaudit geprüft werden muss.
- Artefakt
-
Ein Artefakt ist eine Bibliothek wie ein JAR-Archiv, das entweder von einem Softwareprojekt produziert oder verwendet wird.
Die Abhängigkeiten eines Softwareprojekts werden in Bezug auf seine Artefakte angegeben. Einige Artefakte werden aufgrund des kontinuierlichen Integrationsprozesses des Projekts erstellt. Sie befinden sich im Repository des Projekts. Andere Artefakte können aus Repositorys von Drittanbietern heruntergeladen werden und verfügen wiederum über abhängige Artefakte. Daher verfügt ein Projekt über ein Diagramm mit Abhängigkeiten, einige, die vom Projekt selbst erstellt werden, und andere, die von externen Mitwirkenden bereitgestellt werden.
- Tool für kontinuierliche Integration
-
Die kontinuierliche Integration ist eine Übung, bei der Mitglieder eines Entwicklungsteams ihre Änderungen gemeinsam nutzen und in einem einheitlichen Versionskontroll-Repository zusammenführen. Die Praxis wird mit automatisierten Tests und anderen Verifizierungsmaßnahmen verwendet, um die Qualität der einheitlichen Version sicherzustellen.
Ein Tool für kontinuierliche Integration automatisiert diese Übung und bietet einen Rahmen, in dem die Tests und Verifizierungsmaßnahmen durchgeführt werden. Der Zugriff auf ein Tool wird häufig über Berechtigungen gesteuert, mit denen Sie Teammitgliedern, Mitarbeitern oder anderen Stakeholdern Lese- und Schreibzugriff erteilen können.
Application Development Management unterstützt die folgenden Tools für die kontinuierliche Integration:- OCI DevOps-Build-Pipelines
- GitHub-Aktionen
- GitLab Pipeline
- Jenkins- Pipeline
- Knowledge Base
-
Eine Wissensdatenbank bietet Zugriff auf die Sicherheitslücken der ADM-Services. Wenn Sie ein Korrekturrezept konfigurieren oder ein Sicherheitslückenaudit erstellen, muss eine Wissensdatenbank angegeben werden, mit der sie verknüpft ist. Die ADM-Wissensdatenbank speichert Details zu Softwareabhängigkeiten für verschiedene Programmiersprachen und deren Schwachstellen. Die Wissensdatenbank wurde erweitert, um die Klassen- und Methodendetails einiger Java-Sicherheitslücken zu speichern.
- Pull-Anforderung
-
Eine Pull-Anforderung, auch als Zusammenführungsanforderung bezeichnet, ist ein allgemeines Mittel, um zu einem Quellcode-Repository beizutragen, das ein verteiltes Versionskontrollsystem verwendet, z. B. mit ADM kompatible.
Beispiel: Ein Benutzer erstellt eine Pull-Anforderung, um andere über die Änderungen zu informieren, die an eine Verzweigung in einem Repository übertragen wurden. Bei Verwendung mit einem kontinuierlichen Integrationstool führt die Pull-Anforderung dazu, dass das Tool das Projekt erstellt und mithilfe von Tests verifiziert. Wenn die Verifizierung erfolgreich war, werden die Änderungen mit dem vorhandenen Projektquellcode zusammengeführt.
- Korrekturrezept
-
Ein Korrekturrezept stellt die Konfiguration für einen Workflow dar, der aus einer Folge von vier Phasen besteht:
- Erkennen
- Empfehlung
- Überprüfen
- Übernehmen
In der Regel erstellen Sie ein Korrekturrezept, das der überwachten Verzweigung des Repositorys entspricht, das das Projekt enthält.
Ein Korrekturrezept hat einen Status, der wie folgt lauten muss:
- Active
- Erstellen
- gelöscht
- löschen
- Nicht erfolgreich
- Inaktiv
- Aktion erforderlich
- Aktualisieren
- Korrekturausführung
-
Ein Remediation-Lauf beschreibt die Aktion beim Ausführen eines Remediation-Rezepts, bei dem jede Phase des Remediation-Rezepts nacheinander ausgeführt wird, bis eine abgeschlossene Phase erreicht ist. Sie können eine Korrekturausführung manuell auslösen oder angeben, dass eine Korrekturausführung ausgelöst wird, wenn eine neue Sicherheitslücke identifiziert wird.
Ein Korrekturrezept kann nur ausgeführt werden, wenn es den Status "Aktiv" aufweist.
Ein Korrekturlauf hat einen Status, der wie folgt lauten muss:
- Akzeptiert
- Abgebrochen
- Storniert
- Erstellt
- Nicht erfolgreich
- Wird verarbeitet
- erfolgreich
ADM unterstützt jeweils eine einzelne Ausführung für ein Rezept.
- Repository
-
Ein Code-Repository ist ein Speicherort für das Softwareprojekt. Sie enthält in der Regel den Quellcode des Projekts, Projektmetadaten und andere Artefakte, von denen das Projekt abhängt. Der Zugriff auf ein Repository wird häufig über Berechtigungen gesteuert, mit denen Sie Teammitgliedern, Mitarbeitern oder anderen Stakeholdern Lese- und Schreibzugriff erteilen können.
Application Development Management unterstützt die folgenden Repositorys:
- OCI DevOps
- GitHub
- GitLab
- Secret
-
Ein Secret sind Zugangsdaten wie Kennwort, Zertifikat, SSH-Schlüssel oder Authentifizierungstoken, die Sie mit OCI-Services verwenden.
- Dringlichkeit
-
Schweregrad bezieht sich auf die Auswirkung oder Kritikalität einer Sicherheitslücke, die durch verschiedene Werte dargestellt wird.
- Staging
-
Eine Phase beschreibt einen Schritt in einer Korrekturausführung. Die vier Phasen sind:
- Ermitteln: Erkennen Sie Sicherheitslücken in der Anwendung. Eine Korrekturausführung geht zur nächsten Phase einer Korrekturausführung über, wenn mindestens eine Sicherheitslücke ermittelt wird, die den konfigurierten CVE-Score-Schwellenwert überschreitet. Wenn dies nicht der Fall ist, ist die Korrekturausführung abgeschlossen, und Sie können die Ausgabe des Sicherheitslückenaudits anzeigen.
- Empfohlen: Identifizieren Sie die empfohlenen Drittanbieterabhängigkeiten, die von der Anwendung verwendet werden, und öffnen Sie eine Pull-Anforderung, um diese Änderungen vorzuschlagen. Wenn die Korrektur erfolgreich ausgeführt wird, geht sie zur nächsten Phase über. Wenn neue Abhängigkeitsversionen nicht aufgelöst werden können, um die Sicherheitslücken zu beheben, endet die Korrekturausführung hier und gibt die Details dazu an, was sie empfehlen kann, und die Sicherheitslücken, die sie nicht beheben konnte. Wenn die Phase nicht erfolgreich verläuft, wird die Korrekturausführung hier mit einem nicht erfolgreichen Status beendet.
- Prüfen: Prüfen Sie die Änderungen mit den Tests, die Sie im Tool für kontinuierliche Integration angegeben haben. Die Korrekturausführung geht zur nächsten Phase über, wenn die Tests erfolgreich sind.
- Anwenden: Führen Sie die Pull-Anforderung zusammen. Wenn die Zusammenführung nicht erfolgreich verläuft, endet die Korrekturausführung in einem nicht erfolgreichen Status.
Eine Phase hat einen Status, der wie folgt lauten muss:
- Abgebrochen
- Erstellt
- Nicht erfolgreich
- Wird verarbeitet
- erfolgreich
- Vault
-
Ein Vault ist eine logische Entity, in der der OCI Vault-Service Schlüssel und Secrets erstellt und dauerhaft speichert.
- Sicherheit
- Eine Sicherheitslücke ist eine Schwachstelle oder ein Fehler in einem Projektartefakt, z.B. eine Anwendungsabhängigkeit. Eine Sicherheitslücke ist eine Verallgemeinerung eines Informationssicherheitsfehlers, wie er vom CVE-System (Common Vulnerabilities and Exposures) beschrieben wird.
Die National Vulnerability Database (NVD) bietet ein Maß für den Schweregrad einer Software-Schwachstelle mit dem Common Vulnerability Scoring System (CVSS), das zwischen 0 und 10 liegt. Die NVD unterstützt die Standards CVSS v2.0 und v3.0. Weitere Informationen zu Sicherheitslückenmetriken finden Sie unter National Vulnerability Database. Zusammen mit CVSS bietet ADM eigene Schweregradindikatoren wie Hoch, Mittel und Niedrig. Sicherheitslücken mit unbekanntem Schweregrad sind nicht in Sicherheitslückenaudits enthalten.
Eine falsch-positive Sicherheitslücke bezieht sich auf eine Sicherheitslücke, die bei der Erstellung des Sicherheitslückenaudits ermittelt wurde, sich jedoch gemäß den Abhängigkeitsdetails nicht auf die Anwendung auswirkt. Das False Positive wird mit dem nativen Image-Build von Oracle GraalVM identifiziert, mit dem die tatsächliche Verwendung der Anwendung im Code über die Klassen und Methoden der Anwendung erfasst und anschließend mit der Wissensdatenbank von Application Dependency Management verglichen wird.
Eine ignorierte Sicherheitslücke bezieht sich auf eine Sicherheitslücke, die bei der Erstellung des Sicherheitslückenaudits ermittelt wurde, jedoch basierend auf der Konfiguration als ignoriert markiert wird. Die Konfiguration ist so eingerichtet, dass Sicherheitslücken basierend auf Ausschlussmustern oder maximal zulässigen Dringlichkeitswerten ignoriert werden.
- Schwachstellen-Audit
- Ein Sicherheitslückenaudit enthält die Sicherheitslücken, von denen eine Anwendung aufgrund ihrer Abhängigkeiten zu einem bestimmten Zeitpunkt betroffen ist. Es enthält zusammenfassende Informationen über die Mengen und den maximalen Schweregrad der Sicherheitslücken.
Ein Sicherheitslückenaudit ist mit einer Wissensdatenbank verknüpft.
- Nutzungsdaten für Sicherheitslückenaudit
- Die Erstellung von Sicherheitslückenaudits kann optional Nutzungsdaten als Eingabe akzeptieren, wenn ein Sicherheitslückenaudit erstellt wird. Die Nutzungsdaten enthalten Details zu allen Klassen und Methoden, die im nativen GraalVM-Image verwendet werden, das aus der Java-Anwendung erstellt wurde. Der ADM-Service verwendet diese Daten, um falsch positive Sicherheitslücken zu identifizieren, bei denen die Anwendung möglicherweise nicht anfällig ist, weil der anfällige Code der Anwendungsabhängigkeit nicht verwendet wird. Die Nutzungsdaten werden als GZIP-Datei im JSON-Format in den OCI Object Storage hochgeladen. Die Daten werden vom nativen Image GraalVM und dem Inspektionstool für natives Image generiert.