Skip to main content

Gewähren des Zugriffs auf private Registrierungen für Sicherheitsfeatures

Wenn Ihre Organisation private Registrierungen verwendet, können Sie die Ergebnisse der code scanning Analyse verbessern und es ermöglichen Dependabot , weitere Abhängigkeiten aufrechtzuerhalten, indem Sie den Zugriff auf diese Registrierungen einrichten.

Informationen zur Bedeutung des Zugriffs auf private Registrierungen

Wenn Code in einem Repository Abhängigkeiten aufweist, die in einer privaten Registrierung gespeichert sind, benötigen einige Sicherheitsfeatures Zugriff auf die Registrierung, damit sie effektiv funktionieren können. Ohne Zugriff auf alle Abhängigkeiten eines Repositorys ist die Effektivität (Code Qualityöffentliche Vorschau), code scanning Standardkonfiguration und Dependabot eingeschränkt.

          Code scanning Standardzugriff zur Konfiguration von privaten Registern

Wenn Sie den Zugriff auf die privaten Register, die Ihre Organisation verwendet, nicht definieren, wird code scanning nur die notwendigen Daten von Abhängigkeiten sammeln, die in öffentlichen Registern verfügbar sind. Meistens reicht dies aus, um den Großteil der Sicherheitsrisiken zu ermitteln. In einigen Fällen kann der Fehlende Zugriff jedoch zu falsch negativen Ergebnissen führen. Anders ausgedrückt: code scanning ist nicht in der Lage, eine Sicherheitsanfälligkeit im Code zu erkennen, da es nicht über alle Informationen verfügt, die es zum Analysieren des Codes benötigt. Beispielsweise werden einige der Datenflusspfade möglicherweise nicht erkannt, da Schritte in Abhängigkeiten definiert sind, auf die nicht zugegriffen werden kann, und code scanning sie nicht interpretieren können.

Wenn Sie den Zugriff auf die privaten Register konfigurieren, die in Ihrer Organisation verwendet werden, code scanning hat Zugriff auf alle benötigten Informationen und ist viel weniger wahrscheinlich, dass eine Sicherheitslücke übersehen wird.

          Code scanning Standardsetup unterstützt die folgenden Registrierungstypen:
LanguageRegistrierungstypen
C#NuGet-Feed
GoGOPROXY-Server, Git Source
JavaMaven Repository

Tipp

Sie können jeden Registrierungstyp einmal für jede Organisation definieren. Wenn die Codebases in Ihrer Organisation mehr als eine Registrierung eines bestimmten Typs verwenden, sollten Sie einen einheitlichen Zugriffspunkt einrichten oder den Zugriff auf die wichtigste Registrierung für die Codebasen in dieser Organisation definieren.

Definieren des Registry-Zugriffs für code scanning das Standard-Setup

Sie müssen ein Organisationsbesitzer sein, um auf der Benutzeroberfläche den Zugriff auf private Registrierungen einzurichten. Sie können die REST-API auch mit den Berechtigungen des Organisationsbesitzers oder {read,write}_org_private_registries verwenden.

  1. Scrollen Sie zur Registerkarte Einstellungen der Organisation, dann zum Abschnitt „Sicherheit“, und wählen Sie Geheimnisse und Variablen aus.

  2. Wählen Sie in der erweiterten Liste mit den Geheimnissen und Variablen Private Registrierungen aus, um die Seite „Private Registrierungen“ anzuzeigen.

  3. Wählen Sie Neue private Registrierungen aus, um Zugriffsdetails für eine private Registrierung hinzuzufügen.

  4. Verwenden Sie die Felder URL und Typ, um den Speicherort und den Registrierungstyp zu definieren:

    •           Bei **URL** handelt es sich um den Speicherort, an dem auf die private Registrierung zugegriffen wird. Um beispielsweise das GitHub Packages Registry für NuGet zu verwenden: `https://nuget.pkg.github.com/ORGANIZATION/index.json`, wobei `ORGANIZATION` der Name Ihrer Organisation auf GitHub ist.
      
    • Typ ist der Typ der Registrierung.
  5. Wählen Sie die Authentifizierungsmethode für die Registrierung aus:

    • Token: Geben Sie das Token ein, das für die Authentifizierung bei der Registrierung verwendet wird.

    • Benutzername und Kennwort: Geben Sie den Benutzernamen und das Kennwort ein, das für die Authentifizierung bei der Registrierung verwendet wird. Einige Arten von Authentifizierungstoken, z. B. ein GitHubPersonal Access Token, sind an eine bestimmte Benutzeridentität gebunden. Wählen Sie diese Option aus, und geben Sie den relevanten Benutzernamen als Benutzername und das Token als Kennwort ein.

    • OIDC (OpenID Connect): Verwenden Sie kurzlebige Anmeldeinformationen von einem Cloudidentitätsanbieter, anstatt langlebige geheime Schlüssel zu speichern. Wenn Sie diese Option auswählen, wählen Sie einen Anbieter aus, und füllen Sie die anbieterspezifischen Felder aus. Weitere Informationen finden Sie unter Konfigurieren der OIDC-Authentifizierung für eine private Registrierung.

  6. Definieren Sie, welche Repositorys in der Organisation mit diesen Informationen auf die private Registrierung zugreifen können: alle, private und interne oder nur ausgewählte Repositorys.

  7. Wenn Sie das Definieren der privaten Registrierung abgeschlossen haben, wählen Sie Registrierung hinzufügen aus, um die Registrierungsinformationen zu speichern.

Tipp

Wenn Sie einer Organisation mithilfe der Token- oder Benutzernamen- und Kennwortauthentifizierung eine private Registrierung hinzufügen, wird das Token oder Kennwort als verschlüsselter Geheimschlüssel gespeichert. Nachdem die Registrierung erstellt wurde, können das Token oder das Kennwort nicht noch einmal angezeigt werden.

Aktivieren des code scanning Standardsetups für die Verwendung einer Registrierungsdefinition

Wenn Sie das Standardsetup für ein Repository oder eine Gruppe von Repositorys aktivieren code scanning , überprüfen Sie, GitHub ob die Repositorys Zugriff auf vorhandene private Registrierungen haben. Wenn private Register für ein Repository verfügbar sind, code scanning werden die relevanten Definitionen während der Analyse verwendet.

Wenn Sie private Registrierungen zum ersten Mal konfigurieren, müssen Sie das Standardsetup für alle Repositorys deaktivieren und erneut aktivieren code scanning , die Sie für die neue Definition verwenden möchten. Neue oder geänderte Konfigurationen werden bei nachfolgenden Ausführungen automatisch erkannt.

Für Sprachen, die private Paketregistrierungen unterstützen, code scanning erzeugt das Standardsetup Informationen zu den Seite mit dem Toolstatus. Dies zeigt, welche privaten Registry-Konfigurationen für eine Analyse verfügbar waren, aber nicht, ob code scanning das Standard-Setup private Abhängigkeiten erfolgreich herunterladen konnte. Weitere Informationen zum Seite mit dem Toolstatus findest du unter Verwenden der Toolstatusseite zum Scannen von Code.

Alternativ können Sie überprüfen, ob private Registries erfolgreich durch die code scanning Analyse verwendet wurden, indem Sie in den Actions-Protokolldateien nach Codescanprotokolle suchen.

          Code scanning Erweiterter Setupzugriff auf private Registrierungen

          Code scanning Advanced Setup verwendet alle privaten Registries, die mit dem Workflow verknüpft sind, welcher die Analyse mithilfe der `codeql-action` durchführt. Es hat keinen Zugriff auf die privaten Registrierungen auf der Organisationsebene, die beim Standardsetup verwendet werden.

Bei kompilierten Sprachen muss codeql-action einen Build des Codes beachten. Sie können entweder Ihren vorhandenen Build-Workflow überarbeiten, damit codeql-action ausgeführt werden kann, oder einen neuen Workflow erstellen, mit dem die Produktionsversion des Codes erstellt wird und codeql-action ebenfalls ausgeführt werden kann.

Alle vom Build verwendeten privaten Registrierungen müssen auch für den Workflow zugänglich sein, der codeql-action ausführt. Weitere Informationen zur erweiterten Einrichtung finden Sie unter Konfigurieren des erweiterten Setups für das Code-Scanning.

          Dependabot aktualisiert den Zugriff auf private Register

          Dependabot kann jede private Registrierung auf Organisationsebene verwenden sowie alle privaten Register verwenden, die in der `dependabot.yml` Datei im Repository definiert sind.

          Dependabot Kann nicht auf Sicherheits- oder Versionsupdates für Code überprüfen, der in einer privaten Registrierung gespeichert ist, es sei denn, sie kann auf die Registrierung zugreifen. Wenn Sie den Zugriff auf die private Registrierung nicht konfigurieren, können Sie keine Pullanforderungen auslösen, Dependabot um die in der Registrierung gespeicherten Abhängigkeiten zu aktualisieren.

Wenn Sie den Zugriff auf ein oder mehrere private Registries konfigurieren, kann Dependabot Pull-Anforderungen vorschlagen, um eine anfällige Abhängigkeit zu aktualisieren oder eine Abhängigkeit aufrechtzuerhalten, siehe Konfigurieren des Zugriffs auf private Registrierungen für Dependabot und Leitfaden zum Konfigurieren privater Registrierungen für Dependabot.

Konfigurieren der OIDC-Authentifizierung für eine private Registrierung

Die OIDC-Authentifizierung (OpenID Connect) ermöglicht es Dependabot , kurzlebige Anmeldeinformationen von Ihrem Cloudidentitätsanbieter für den Zugriff auf private Registrierungen zu verwenden, wodurch die Notwendigkeit vermieden wird, langlebige geheime Schlüssel zu speichern. Mit OIDC werden Anmeldedaten für jeden Dependabot Aktualisierungsauftrag dynamisch generiert. Sie müssen eine Vertrauensstellung zwischen Ihrem Cloudanbieter und GitHub vor der Dependabot Authentifizierung konfigurieren.

Hinweis

Die OIDC-Authentifizierung für private Registries auf Organisationenebene wird derzeit von Dependabot unterstützt. Von code scanning der Standardkonfiguration wird es nicht unterstützt.

Wenn Sie OIDC als Authentifizierungsmethode für eine private Registrierung auswählen, wählen Sie einen der unterstützten Anbieter aus, und füllen Sie die erforderlichen Felder aus:

  • Azure: Geben Sie die Tenant-ID (Azure AD-Mandanten-ID) und Client-ID (Azure AD-Anwendungsclient-ID) ein. Sie müssen eine föderierte Anmeldeinformation in Azure AD konfigurieren, die dem OIDC-Anbieter von GitHub vertraut.
  • AWS CodeArtifact: Geben Sie die AWS-Region, die Konto-ID (AWS-Konto-ID), den Rollennamen (IAM-Rollenname), die Domäne (CodeArtifact-Domäne) und den Domänenbesitzer (CodeArtifact-Domänenbesitzer/ AWS-Konto-ID) ein. **** Sie können optional eine Zielgruppe bereitstellen. Sie müssen einen IAM OIDC-Identitätsanbieter in AWS konfigurieren, der dem OIDC-Anbieter von GitHub vertraut.
  • JFrog Artifactory: Geben Sie den OIDC-Anbieternamen ein. Sie können optional eine Zielgruppe und einen Identitätszuordnungsnamen angeben.

Der Authentifizierungstyp einer privaten Registrierung kann nach der Erstellung nicht mehr geändert werden. Um von OIDC zu einer anderen Authentifizierungsmethode zu wechseln oder umgekehrt, löschen Sie die vorhandene Registrierung, und erstellen Sie eine neue.

Weitere Informationen zur Funktionsweise von OIDC finden Sie unter OpenID Connect.

          Code Quality Zugriff auf private Register

Hinweis

GitHub Code Quality befindet sich derzeit in öffentliche Vorschau und kann geändert werden. Während der öffentlichen Vorschauphase werden Code Quality nicht abgerechnet, obwohl Scans von Code Quality GitHub Actions Minuten verbrauchen.

          GitHub Code Quality kann jede private Registrierung auf Organisationsebene verwenden, die verfügbar sind, wenn sie für ein Repository aktiviert ist.

Wenn Sie der Organisation neue Registrierungen hinzufügen, müssen Sie diese deaktivieren und erneut aktivieren Code Quality , um sicherzustellen, dass die Analyse die neuen Registrierungen erkennt und verwendet.

Informationen zum Einrichten des privaten Registrierungszugriffs für Ihre Organisation finden Sie unter Definieren des Registrierungszugriffs für die Standardeinrichtung für die Codeüberprüfung.