In diesem Leitfaden wird beschrieben, wie Sie Ihren Sicherheitsstatus verbessern können, indem Sie die Funktion zum Scannen auf Sicherheitslücken in Secure Source Manager aktivieren.
Beim Scannen auf Sicherheitslücken werden bekannte Sicherheitslücken in den Abhängigkeiten Ihres Quellcodes automatisch erkannt. Dabei wird jeder neue Commit für eine Pull-Anfrage gescannt. Sicherheitslücken werden sowohl in Pull-Anfrage-Ansichten als auch auf dem Repository-weiten Tab Sicherheit angezeigt.
Scannen auf Sicherheitslücken aktivieren
Achten Sie darauf, dass die folgenden Rollen und Einstellungen für Ihr Repository aktiviert sind.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Secure Source Manager Repository Admin (roles/securesourcemanager.repoAdmin) für das Secure Source Manager-Repository zuzuweisen, um die Berechtigung zu erhalten, die Sie zum Aktivieren des Scannens auf Sicherheitslücken benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigung securesourcemanager.repositories.update, die zum Aktivieren des Scannens auf Sicherheitslücken erforderlich ist.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Informationen zum Zuweisen von Secure Source Manager-Rollen finden Sie unter Zugriffssteuerung mit IAM und Nutzern Instanzzugriff gewähren.
Repository-Einstellungen aktualisieren
Sie können das Scannen auf Sicherheitslücken für Ihre Repositories über die Secure Source Manager-Oberfläche aktivieren:
- Rufen Sie das Repository auf, für das Sie das Scannen auf Sicherheitslücken aktivieren möchten.
- Klicken Sie auf Settings (Einstellungen).
- Suchen Sie die Ein/Aus-Schaltfläche Scannen auf Sicherheitslücken.
- Klicken Sie auf den Ein/Aus-Button, um die Position Ein festzulegen.
- Klicken Sie auf Update Settings (Einstellungen aktualisieren).
Mit Scans auf Sicherheitslücken arbeiten
Nachdem Sie das Scannen auf Sicherheitslücken aktiviert haben, werden die folgenden Scans automatisch ausgeführt:
- Geplante Scans: Die Head-Commits aller Branches, einmal pro Tag.
- Pull-Anfragen-Scans:
- Die Head-Commits neuer Pull-Anfragen bei der Erstellung von Pull-Anfragen.
- Neue Commits, die per Push an Pull-Anfragen gesendet werden, bei Push.
Es werden nur Sicherheitslücken in Abhängigkeiten Ihres Codes erkannt. Bei Scans auf Sicherheitslücken werden Sicherheitslücken erkannt, die in öffentlichen Datenbanken aufgeführt sind, einschließlich, aber nicht beschränkt auf die National Vulnerability Database und die GitHub Advisory Database. Erkannte Sicherheitslücken enthalten einen externen Link zu den Daten der öffentlichen Datenbank zur Sicherheitslücke und, falls verfügbar, die CVE-ID.
Tab „Sicherheit“
Nachdem Sie das Scannen auf Sicherheitslücken aktiviert haben, wird in der Navigationsleiste des Repositorys der Tab Sicherheit angezeigt. Dort können Sie nach gescannten Sicherheitslücken suchen, die bis zu drei Jahre lang aufbewahrt werden.
Der Tab „Sicherheit“ enthält Ergebnisse von geplanten Scans und Pull-Anfrage-Scans.
Standardmäßig ist der Filter Gefunden in auf dem Tab „Sicherheit“ auf den zuletzt durchsuchten Zweig (oder den Standardzweig des Repositorys) festgelegt. Wenn Sie andere Sicherheitslücken sehen möchten, passen Sie den Filter Gefunden in an oder löschen Sie ihn.
Der Tab Sicherheit enthält die folgenden Daten zu jeder Sicherheitslücke:
- Schweregrad: Der Schweregrad der Sicherheitslücke, wie von der öffentlichen Datenbankquelle für Sicherheitslücken bewertet.
- ID: Die öffentliche CVE-ID, falls verfügbar, andernfalls eine andere Kennung wie die GHSA-ID. Falls verfügbar, wird auch ein externer Link zum öffentlichen Datenbankeintrag für die Sicherheitslücke angezeigt.
- Gefunden in: Der gescannte Git-Commit-SHA sowie eine Liste aller Git-Zweige, Git-Tags oder Pull-Anfragen, für die dies der neueste Commit ist.
- Datei: Die Repository-Quelldatei, die die anfällige Abhängigkeit enthält, und, falls verfügbar, die Zeilennummer.
- Paket: Der Name des abhängigen Pakets und die Version, die die Sicherheitslücke enthält. Falls bekannt, wird auch die Version des Pakets aufgeführt, die die Sicherheitslücke behebt.
- Beschreibung: Falls verfügbar, eine Beschreibung der Sicherheitslücke.
- Erkannt: Das Datum des Scans, bei dem die Sicherheitslücke erkannt wurde.
Auf dem Tab Sicherheit sind die folgenden Filter verfügbar:
- Schweregrad: Nur Sicherheitslücken mit dem angegebenen Schweregrad (
CRITICAL,HIGH,MEDIUModerLOW) anzeigen. - Gefunden in: Es werden nur Sicherheitslücken angezeigt, die im angegebenen Git-Zweig, -Tag oder -Commit-SHA erkannt wurden.
- Datei: Es werden nur Sicherheitslücken angezeigt, die im angegebenen Quellpfad erkannt wurden. Akzeptiert Teilstrings. Beispielsweise kann
project/verwendet werden, um nach anfälligen Abhängigkeiten im Verzeichnisproject/zu filtern. - Sicherheitslücke: Suchen Sie nach einer Sicherheitslücke anhand ihrer öffentlichen Daten, z. B. ihrer ID, Beschreibung oder des betroffenen Paketnamens. Akzeptiert Teilstrings.
- Datum von und Bis: Es werden nur Sicherheitslücken angezeigt, die nach oder vor den angegebenen Daten erkannt wurden. Format:
YYYY-MM-DD.
Pull-Anfragen
Nach Abschluss eines Pull-Anfrage-Scans werden erkannte Sicherheitslücken auf dem Tab Unterhaltung der Pull-Anfrage angezeigt. Bei Scans werden alle Repository-Dateien geprüft. Es können auch Sicherheitslücken aus Dateien enthalten sein, die in der Pull-Anfrage nicht geändert wurden.
In Pull-Anfragen wird eine gekürzte Ansicht der am häufigsten erkannten Sicherheitslücken angezeigt. Wenn Sie die vollständige Liste und Details zu Sicherheitslücken für die Pull-Anfrage aufrufen möchten, klicken Sie auf den Link Vollständige Ergebnisse, um sie auf dem Tab „Sicherheit“ des Repositorys aufzurufen.
Sicherheitslücken verhindern nicht, dass Pull-Anfragen zusammengeführt werden.
Unterstützte Dateitypen
Paketdateien für die folgenden Sprachen werden auf Abhängigkeitsschwachstellen gescannt:
| Unterstützt | |
|---|---|
| Go | |
| Java | |
| JavaScript | |
| Node.js | |
| PHP | |
| Python | |
| Ruby | |
| Rust | |
| TypeScript | |
| .NET |