Hinweis
Dieses Feature befindet sich derzeit in Öffentliche Vorschau und kann geändert werden.
Informationen zu GitHub package firewall
Der GitHub package firewall befindet sich zwischen Ihren Endpunkten und Paketregistrys. Es wertet Paketdownloads anhand von Richtlinien wie minimalem Paketalter und Malware-Warnungen aus und blockiert Downloads, die diese Richtlinien nicht erfüllen. Sie können es verwenden, um Abhängigkeitsinstallationen in CI-Builds, KI-Agentsitzungen und lokaler Entwicklung zu schützen.
Um die Firewall zu verwenden, konfigurieren Sie die Richtliniensteuerelemente Ihres Unternehmens, und konfigurieren Sie dann Ihre Endpunkte so, dass Pakete über die Firewall statt direkt von einem öffentlichen Paket-Registry angefordert werden. Sie können auch Zugriff zum Verwalten der Richtlinie über eine benutzerdefinierte Rolle gewähren.
Konfigurieren von Richtliniensteuerungen
Sicherheitsmanager in Unternehmen und Unternehmensadministratoren können Richtliniensteuerelemente konfigurieren.
- Navigieren Sie zu Ihrem Unternehmen. Beispielsweise auf der Seite Unternehmen in GitHub.com.
- Klicken Sie oben auf der Seite auf "Richtlinien".
- Klicken Sie in der Randleiste auf Package firewall.
- Konfigurieren Sie die in den folgenden Abschnitten beschriebenen Richtliniensteuerelemente. Diese Sicherheitskontrollen gelten für alle Anfragen, die die Firewall durchlaufen.
Bekannte Schadsoftware blockieren
Wenn diese Option aktiviert ist, überprüft dieses Steuerelement die GitHub Advisory Database auf aktive Malwarewarnungen und blockiert Pakete mit einer übereinstimmenden Warnung. Dieses Steuerelement ist standardmäßig auf "Ein" festgelegt.
Hinweise zu Sicherheitslücken blockieren
Dieses Steuerelement überprüft GitHub Advisory Database auf Sicherheitsanfälligkeiten, die sich auf die angeforderte Paketversion auswirken. Wählen Sie den minimalen Schweregrad der Empfehlung aus, der eine Installation blockiert: Nur kritisch, hoch oder höher, Mittel oder höher oder Beliebiger Schweregrad. Dieses Steuerelement ist standardmäßig auf Nur kritisch gesetzt.
Downgrades der Attestierung blockieren
Dieses Steuerelement vergleicht Nachweise für die angeforderte Paketversion mit denen früherer Versionen. Wenn das Paket zuvor SLSA-Nachweise hatte, die angeforderte Version jedoch nicht, blockiert die Firewall den Download. Fehlende Nachweise können auf einen kompromittierten Veröffentlichungsprozess hinweisen. Weitere Informationen zu Nachweisen finden Sie unter Artefakt-Bestätigungen. Dieses Steuerelement ist standardmäßig auf "Ein" festgelegt.
Neu eingeführte Installationsskripte blockieren
Dieses Steuerelement überprüft, ob das Paket kürzlich Skripts hinzugefügt hat, die während der Installation ausgeführt werden, z. B. preinstall- oder postinstall-Skripts. Diese Skripts können beliebige Befehle auf Ihrem System ausführen und zum Stehlen von Anmeldeinformationen verwendet werden. Dieses Steuerelement ist standardmäßig auf Ein festgelegt.
Minimales Paketalter
Dieses Steuerelement legt einen Abkühlzeitraum für neu veröffentlichte Paketversionen fest. Die Firewall blockiert Versionen, die neuer als das konfigurierte Mindestalter sind, sodass vor der Installation Zeit bleibt, damit Bedrohungen entdeckt werden können.
Legen Sie das Mindestalter auf einen Wert zwischen 1 und 365 Tagen fest, oder legen Sie es auf 0 fest, um das Steuerelement zu deaktivieren. Der Standardwert ist 1 Tag.
Konfigurieren von Endpunkten zur Verwendung von Package firewall
Konfigurieren Sie den Paket-Manager so, dass Pakete von der URL der Firewall anstelle der standardmäßigen öffentlichen Registry abgerufen werden.
Authentifizierungstoken
Die Registrierungs-URL ist spezifisch für Ihr Unternehmen. Jede Anforderung muss ein Authentifizierungstoken enthalten, das einem Benutzer- oder Botkonto zugeordnet ist, das Mitglied des Enterprise ist. Das Token benötigt keine erhöhten Berechtigungen, die über den schreibgeschützten Zugriff auf öffentliche Repositorys hinausgehen. Weitere Informationen findest du unter Verwalten deiner persönlichen Zugriffstoken.
Konfigurieren von npm
Verwenden Sie die Datei auf Benutzerebene .npmrc , um npm zu konfigurieren. Ersetzen Sie ENTERPRISE in den Beispielen durch Ihren Enterprise-Slug. Legen Sie die GITHUB_TOKEN Umgebungsvariable auf ein GitHub Token mit Zugriff auf Ihr Enterprise-Konto fest. Speichern Sie das Token sicher, z. B. in einem CI-Geheimnis, und checken Sie es nicht in ein Repository ein.
-
Fügen Sie der Datei auf Benutzerebene
.npmrcdie folgende Konfiguration hinzu:registry=https://package-firewall.githubapp.com/npm/enterprises/ENTERPRISE //package-firewall.githubapp.com/npm/enterprises/ENTERPRISE/:_authToken=${GITHUB_TOKEN}
Alternativ können Sie die gleichen Einstellungen über die Befehlszeile konfigurieren:
npm config set registry \
https://package-firewall.githubapp.com/npm/enterprises/ENTERPRISE
npm config set \
'//package-firewall.githubapp.com/npm/enterprises/ENTERPRISE/:_authToken=${GITHUB_TOKEN}'
Konfigurieren von Artifactory
Sie können JFrog Artifactory so konfigurieren, dass Pakete über die Firewall abgerufen werden. Ihre Endpunkte verwenden weiterhin Artifactory, mit der Sie öffentliche und private Pakete kombinieren können, während Sie Firewallrichtlinien auf Pakete anwenden, die über die Firewall abgerufen werden.
Sie müssen über Administratorrechte in Ihrer Artifactory-Instanz verfügen.
Hinweis
Artifactory-Unterstützung ist experimentell. Informationen zum Teilen von Vorschlägen oder Bedenken zum Artifactory-Support finden Sie in der Community-Diskussion.
- Klicken Sie in Artifactory auf die Registerkarte " Verwaltung " und dann auf " Repository erstellen".
- Wählen Sie "Remote" als Repositorytyp und dann npm als Pakettyp aus.
- Geben Sie im Feld "Repositoryschlüssel" einen Namen ein, wie z. B.
gh-package-firewall. - Geben Sie im Feld „URL“
https://package-firewall.githubapp.com/npm/enterprises/ENTERPRISEein, und ersetzen SieENTERPRISEdurch Ihren Enterprise-Slug. - Fügen Sie im Feld "Kennwort/Zugriffstoken" einen gültigen personal access token ein, und wählen Sie dann "Tokenauthentifizierung aktivieren" aus.
- Wählen Sie die Stage aus, in der Sie die Firewall basierend auf Ihrer Artifactory-Konfiguration verwenden möchten.
- Geben Sie
**/*im Feld "Muster" ein, um alle Paketpfade einzuschließen. - Klicke auf Speichern.
- Erstellen oder aktualisieren Sie ein virtuelles npm-Repository, um dieses Remote-Repository und Ihre privaten npm-Repositorys einzuschließen. Schließen Sie Remote-Repositories aus, die Pakete direkt aus der öffentlichen npm-Registrierung abrufen, damit sie die Firewall nicht umgehen können.
- Folgen Sie den Anweisungen des virtuellen Repositorys Set me up, um Ihre Endpunkte zu konfigurieren.
Granulare Berechtigungen
Standardmäßig können Unternehmensadministratoren und Unternehmenssicherheitsmanager die Firewallrichtlinie ändern. Um anderen Benutzern Zugriff auf die Ansicht und Änderung der Richtlinie zu gewähren, fügen Sie die feingranulare Berechtigung „Paketfirewallrichtlinie auf Unternehmensebene bearbeiten“ einer benutzerdefinierten Rolle hinzu, und weisen Sie diese Rolle einem Team oder einer Person zu.
Ausnahmen verwalten
Wenn die Firewall ein benötigtes Paket blockiert, können Sie eine Ausnahme von der Richtlinie anfordern. Beispielsweise könnte eine neue Paketversion, die einen Sicherheitsfix enthält, durch die Richtlinie für das Mindestpaketalter blockiert werden.
Ausnahme anfordern
Wenn die Firewall ein Paket blockiert, enthält die npm-Ausgabe oder das CI/CD-Protokoll eine URL zum Anfordern einer Freigabe. Beispiele:
npm notice testcontainers: 1 version blocked by package-firewall due to security policies (version cooldown). Request an override: https://github.com/enterprises/octocats/security/bypass-requests/package-firewall/new?ecosystem=npm&package=testcontainers
-
Öffnen Sie die URL in Ihrem Browser.
-
Überprüfen Sie die vorgefüllten Felder, und geben Sie fehlende Informationen an:
- "Repository": Das Repository, in dem der Block aufgetreten ist
- "Ökosystem": Das Paketökosystem (derzeit wird nur npm unterstützt)
- "Paketname": Der Paketname, einschließlich des
@scopePräfixes, falls zutreffend - "Version": Die Version, die Sie installieren wollten
- "Reason": Warum das Paket entsperrt werden soll
- "Kommentar hinzufügen": Zusätzlicher Kontext für Prüfer
-
Senden Sie die Anforderung.
Prüfen und Genehmigen von Ausnahmeanträgen
Unternehmensadministratoren und Unternehmenssicherheitsmanager können Ausnahmeanforderungen überprüfen.
- Navigieren Sie zu Ihrem Unternehmen. Beispielsweise auf der Seite Unternehmen in GitHub.com.
- Klicken Sie oben auf der Seite auf Security and quality.
- Klicken Sie in der Randleiste auf Package firewall bypass.
- Verwenden Sie in der Liste „Anfragen zur Umgehung der Paketfirewall“ die Suchleiste, um nach einer Anfrage zu suchen, und klicken Sie dann auf die Anfrage.
- Überprüfen Sie im Dialogfeld "Überprüfung der Paketüberschreibung zulassen" die angeforderte Ausnahme.
- Optional können Sie, um alle Versionen des Pakets zuzulassen, die angeforderte Version im Feld "Version oder Bereich zulassen" durch
*ersetzen. Dadurch wird die Ausnahme über die angeforderte Version hinaus erweitert. - Fügen Sie einen Kommentar hinzu, der Ihre Entscheidung erläutert, und klicken Sie dann auf " Anfrage genehmigen".
Sie können z. B. alle Versionen eines unternehmenseigenen Pakets zulassen, anstatt jedes Mal eine separate Ausnahme zu erfordern, wenn die Richtlinie für das Mindestpaketalter eine neue Version blockiert.
Genehmigungen verwalten
Genehmigte Bypass-Anfragen werden der Firewallrichtlinie hinzugefügt. Unternehmensadministratoren und Unternehmenssicherheitsmanager können veraltete oder unerwünschte Ausnahmen überprüfen und entfernen, einschließlich manuell hinzugefügter Ausnahmen.
- Navigieren Sie zu Ihrem Unternehmen. Beispielsweise auf der Seite Unternehmen in GitHub.com.
- Klicken Sie oben auf der Seite auf "Richtlinien".
- Klicken Sie in der Randleiste auf Package firewall.
- Klicken Sie unter „Außerkraftsetzungen“ auf „Paket-Außerkraftsetzungen“.
- Um eine Ausnahme aus der Richtlinie zu entfernen, klicken Sie neben der Ausnahme auf .