In diesem Leitfaden wird davon ausgegangen, dass Sie für ein vorhandenes oder Testunternehmenskonto eine Testversion von GitHub Advanced Security geplant und gestartet haben; weitere Informationen finden Sie unter Planung für die Testversion von GitHub Advanced Security.
Einleitung
Code scanning und Abhängigkeitsanalyse funktionieren in öffentlichen Repositorys und in privaten und internen Repositorys mit Advanced Security aktivierter Funktion auf die gleiche Weise. Darüber hinaus können Sie Sicherheitskampagnen erstellen, Advanced Security in denen Sicherheitsspezialisten und Entwickler zusammenarbeiten können, um technische Schulden effektiv zu reduzieren.
In diesem Artikel wird erläutert, wie du diese Features mit Steuerelementen auf Unternehmensebene kombinieren kannst, um deinen Entwicklungsprozess zu standardisieren und zu erzwingen.
Optimieren deiner Sicherheitskonfigurationen
Im Gegensatz zu Advanced Security, wenn eine einzelne Sicherheitskonfiguration in der Regel auf alle Repositorys angewendet wird, möchten Sie wahrscheinlich die Konfiguration code scanning für verschiedene Arten von Repositorys optimieren. Beispielsweise musst du möglicherweise zusätzliche Konfigurationen erstellen, damit Folgendes zutrifft:
-
Code scanning verwendet Läufer mit einer bestimmten Bezeichnung, um auf Repositorys anzuwenden, die eine spezielle Umgebung erfordern oder private Registrierungen verwenden. -
Code scanning ist "Nicht festgelegt", um auf Repositorys anzuwenden, die erweitertes Setup verwenden müssen oder für die ein Drittanbietertool erforderlich ist.
Für Ihr Testversion ist es am einfachsten, eine primäre Sicherheitskonfiguration auf Unternehmensebene zu erstellen und diese auf Ihre Testrepositorys anzuwenden. Anschließend kannst du alle zusätzlichen Sicherheitskonfigurationen erstellen, die du benötigst, und sie auf eine Teilmenge der Repositorys anwenden, die mit Codesprache, benutzerdefinierten Eigenschaften, Sichtbarkeit und anderen Filteroptionen ausgewählt wurden. Weitere Informationen findest du unter Aktivieren von Sicherheitsfunktionen in deinem Test-Unternehmen und Anwenden einer benutzerdefinierten Sicherheitskonfiguration.
Zugriff zum Anzeigen von Ergebnissen von code scanning gewähren.
Standardmäßig können nur der Repositoryadministrator und der Organisationsbesitzer alle code scanning Warnungen in ihrem Bereich anzeigen. Du solltest allen Organisationsteams und Benutzenden, die während der Testversion auf die Benachrichtigungen zugreifen möchten, die vordefinierte Sicherheitsmanager-Rolle zuweisen. Auch dem Besitzer des Enterprise-Kontos solltest du diese Rolle für jede Organisation in der Testversion zuweisen. Weitere Informationen findest du unter Verwalten von Sicherheitsmanagern in deiner Organisation und Verwenden von Organisationsrollen.
Auswerten und Optimieren von Ergebnissen des Standardsetups
Das Standardsetup für code scanning führt eine Reihe von Abfragen mit hoher Vertrauenswürdigkeit aus. Diese werden ausgewählt, um sicherzustellen, dass Entwickler, wenn Sie die gesamte Codebasis bereitstellen code scanning , einen begrenzten Satz von qualitativ hochwertigen Ergebnissen mit wenigen falsch positiven Ergebnissen sehen.
Sie können eine Zusammenfassung aller Ergebnisse in den Organisationen in Ihrem Testunternehmen auf der Security Registerkarte für das Unternehmen anzeigen. Es gibt auch separate Ansichten für jeden Sicherheitswarnungstyp. Weitere Informationen findest du unter Einblicke in die Sicherheit anzeigen.
Wenn die erwarteten code scanningErgebnisse nicht angezeigt werden, können Sie das Standardsetup aktualisieren, um eine erweiterte Abfragesuite für Repositorys auszuführen, bei denen Sie erwartet haben, dass weitere Ergebnisse gefunden werden. Dies wird auf Repositoryebene gesteuert (siehe Bearbeiten der Konfiguration des Standardsetups).
Tipp
Wenn Sie daran gehindert werden, die Repositoryeinstellungen zu code scanningbearbeiten, bearbeiten Sie die vom Repository verwendete Sicherheitskonfiguration, damit die Einstellungen nicht erzwungen werden.
Wenn die erweiterte Suite die erwarteten Ergebnisse immer noch nicht finden kann, musst du möglicherweise das erweiterte Setup aktivieren, damit du die Analyse vollständig anpassen kannst. Weitere Informationen findest du unter Verwenden der Toolstatusseite zum Scannen von Code und Konfigurieren des erweiterten Setups für das Code-Scanning.
Erzwingen der automatisierten Analyse von Pull Requests
Es gibt drei verschiedene Arten der automatisierten Analyse von Pullanforderungen, die in GitHub integriert sind.
-
** Code scanning Die Analyse** verwendet Abfragen, um bekannte fehlerhafte Codierungsmuster und Sicherheitsrisiken hervorzuheben. Copilot Autofix schlägt Korrekturen für Probleme vor, die von code scanning. - Die Abhängigkeitsüberprüfung fasst die vom Pull Request vorgenommen Abhängigkeitsänderungen zusammen und hebt alle Abhängigkeiten hervor, die bekannte Sicherheitsrisiken aufweisen oder die Entwicklungsstandards nicht erfüllen.
-
** Copilot Die Codeüberprüfung** verwendet KI, um Feedback zu Ihren Änderungen mit vorgeschlagenen Korrekturen bereitzustellen, sofern möglich.
Diese automatisierten Reviews sind eine wertvolle Erweiterung für die selbstständige Überprüfung und bieten Entwickelnden die Möglichkeit, vollständigere und sicherere Pull Requests für Peer Reviews bereitzustellen. Zusätzlich können code scanning und Abhängigkeitsüberprüfungen erzwungen werden, um die Sicherheit und Compliance Ihres Codes zu schützen.
Hinweis
GitHub Copilot Autofix ist in der Lizenz enthalten für GitHub Code Security.
Copilot Für die Codeüberprüfung ist ein kostenpflichtiger Copilot Plan erforderlich.
Code scanning Analyse
Wenn code scanning aktiviert ist, können Sie Zusammenführungen in wichtige Verzweigungen blockieren, es sei denn, die Pullanforderung erfüllt Ihre Anforderungen, indem Sie ein Coderegelwerk für das Unternehmen oder die Organisation erstellen. In der Regel benötigen Sie, dass die Ergebnisse von code scanning vorhanden sind und alle wichtigen Benachrichtigungen behoben werden.
-
**Regelsatztyp:** Zweig -
**Ergebnisse erfordern code scanning :** Aktivieren Sie das Blockieren des Zusammenführens, bis Ergebnisse für den Commit erfolgreich generiert wurden, und den Verweis auf die Pullanforderungsziele. -
**Erforderliche Tools und Warnungsschwellenwerte:** Definieren Sie die Ebene der Warnungen, die aufgelöst werden müssen, bevor eine Pullanforderung für jedes code scanning verwendete Tool zusammengeführt werden kann.
Wie bei allen Regelsätzen kannst du genau steuern, für welche Organisationen (Unternehmensebene), Repositorys und Branches der Regelsatz angewendet werden soll. Zudem kannst du Rollen oder Teams definieren, die die Regel umgehen können. Weitere Informationen finden Sie unter Informationen zu Regelsätzen.
Abhängigkeitsüberprüfung
Wenn Advanced Security und Abhängigkeitsdiagramm für ein Repository aktiviert sind, verfügen Manifestdateien über eine umfassende Diff-Ansicht, die eine Zusammenfassung der Abhängigkeiten anzeigt, die sie hinzufügt oder aktualisiert. Dies ist eine nützliche Zusammenfassung für menschliche Prüfer des Pull Requests, bietet jedoch keine Kontrolle darüber, welche Abhängigkeiten der Codebasis hinzugefügt werden.
Die meisten Unternehmen setzen automatische Prüfungen ein, um die Verwendung von Abhängigkeiten mit bekannten Sicherheitsrisiken oder nicht unterstützten Lizenzbedingungen zu blockieren.
- Erstelle ein privates Repository, das als zentrales Element dient, in dem du wiederverwendbare Workflows für das Unternehmen speichern kannst.
- Bearbeite die Aktionseinstellungen für das Repository, damit alle privaten Repositorys im Unternehmen auf Workflows in diesem zentralen Repository zugreifen können (siehe Gewähren des Zugriffs auf Komponenten in einem privaten Repository).
- Erstelle im zentralen Repository einen wiederverwendbaren Workflow zum Ausführen der Abhängigkeitsüberprüfungsaktion, um die Aktion so zu konfigurieren, dass sie deinen geschäftlichen Anforderungen entspricht (siehe Konfigurieren der Aktion zur Überprüfung von Abhängigkeiten).
- Erstelle oder aktualisiere in jeder Organisation Branchregelsätze, um den neuen Workflow zu den erforderlichen Statusprüfungen hinzuzufügen (siehe Durchsetzen der Abhängigkeitsüberprüfung in einer Organisation).
Auf diese Weise kannst du die Konfiguration an einem einzigen Speicherort aktualisieren, aber den Workflow in vielen Repositorys verwenden. Möglicherweise möchtest du dieses zentrale Repository verwenden, um andere Workflows zu verwalten. Weitere Informationen finden Sie unter Wiederverwenden von Workflows.
Copilot Codeüberprüfung
Hinweis
- Wenn Sie ein Copilot Abonnement von einer Organisation erhalten, können Sie nur auf der öffentliche Vorschau-GitHub-Website teilnehmen, wenn ein Besitzer Ihrer Organisation oder Ihres Unternehmens Copilot Codeüberprüfung aktiviert hat. Siehe Verwalten von Richtlinien und Features für GitHub Copilot in Ihrer Organisation und Verwalten von Richtlinien und Features für GitHub Copilot in Ihrem Unternehmen in der GitHub Enterprise Cloud Dokumentation.
Standardmäßig fordern Benutzer eine Überprüfung von Copilot auf dieselbe Weise an wie von menschlichen Prüfern. Sie können jedoch einen Verzweigungsregelsatz auf Organisationsebene aktualisieren oder erstellen, um Copilot automatisch als Prüfer zu allen Pull-Anfragen hinzuzufügen, die an ausgewählte Verzweigungen in allen oder ausgewählten Repositorys gestellt werden. Siehe Konfigurieren der automatischen Codeüberprüfung durch GitHub Copilot in der GitHub Enterprise Cloud Dokumentation.
Copilot hinterlässt einen Rezensionskommentar zu jeder Pull-Anforderung, die er überprüft, ohne die Pull-Anforderung zu genehmigen oder Änderungen anzufordern. Dadurch wird sichergestellt, dass die Überprüfungen beratend sind und die Entwicklungsarbeit nicht blockieren. Ebenso sollten Sie nicht erzwingen, dass Vorschläge von Copilot aufgelöst werden, da KI-Vorschläge bekannte Einschränkungen haben, siehe [AUTOTITLE](/enterprise-cloud@latest/copilot/responsible-use-of-github-copilot-features/responsible-use-of-github-copilot-code-review#limitations-of-github-copilot-code-review) in der GitHub Enterprise Cloud Dokumentation.
Definieren, wo Copilot Autofix zulässig und aktiviert ist
Copilot Autofix hilft Entwicklern, Warnungen zu verstehen und zu beheben code scanning , die in ihren Pull-Anforderungen gefunden wurden. Es wird empfohlen, dieses Feature für alle Repositorys zu aktivieren, die Advanced Security verwenden, um Entwicklern zu helfen, Warnungen effizient zu beheben und ihr Verständnis für sicheres Codieren zu verbessern.
Es gibt zwei Steuerungsebenen:
- Unternehmen können die Verwendung des Copilot Autofix im gesamten Unternehmen mithilfe einer "Richtlinie für Codesicherheit" zulassen oder blockieren, siehe: Implementierung von Richtlinien zur Codesicherheit und -analyse für Ihr Unternehmen.
- Organisationen können Copilot Autofix für alle Repositories im Besitz der Organisation in den "Globalen Einstellungen" der Organisation aktivieren oder deaktivieren, siehe Konfigurieren globaler Sicherheitseinstellungen für Ihre Organisation.
Einbindung von Entwicklern in die Behebung von Sicherheitslücken
Sicherheitskampagnen bieten eine Möglichkeit für Sicherheitsteams, mit Entwickelnden in Kontakt zu treten, um technische Schulden im Sicherheitsbereich zu reduzieren. Sie bieten auch eine praktische Möglichkeit, Schulungen für sicheres Programmieren mit Beispielen für anfälligen Code in Codebeispielen zu kombinieren, mit denen die Entwickelnden in deiner Organisation vertraut sind. Weitere Informationen finden Sie in der Dokumentation unter und GitHub Enterprise Cloud.
Bereitstellen einer sicheren Entwicklungsumgebung
Die Entwicklungsumgebung umfasst viele Komponenten. Einige der nützlichsten Features für die Skalierung und Standardisierung einer sicheren Entwicklungsumgebung in GitHub :
-
**Sicherheitskonfigurationen:** Definieren der Einrichtung von Sicherheitsfeatures für das Unternehmen, eine Organisation, eine Teilmenge von Organisationsrepositorys oder neue Repositorys (siehe [Optimieren deiner Sicherheitskonfigurationen](#refine-your-security-configurations)) -
**Richtlinien:** Schützen und Steuern der Verwendung von Ressourcen für das Unternehmen oder eine Organisation (siehe [AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise)) -
**Regelsätze:** schützen und steuern Verzweigungen, Tags und Pushvorgänge für Organisationen, einen Teilsatz von Organisationsrepositorys oder ein Repository, siehe [AUTOTITLE](/organizations/managing-organization-settings/creating-rulesets-for-repositories-in-your-organization). -
**Repositoryvorlagen:** Definieren der Sicherheitsworkflows und Prozesse, die für die verschiedenen Umgebungstypen erforderlich sind (siehe [AUTOTITLE](/repositories/creating-and-managing-repositories/creating-a-template-repository)). Jede Vorlage kann beispielsweise eine spezialisierte Komponente enthalten:- Sicherheitsrichtliniendatei, die die Sicherheitsposition des Unternehmens definiert und vorgibt, wie Sicherheitsbedenken gemeldet werden
- Workflow zum Aktivieren Dependabot version updates von Paketmanagern, die vom Unternehmen verwendet werden.
- Workflow zum Definieren des erweiterten Setups für die von code scanning unterstützten Entwicklungssprachen, wenn die Standardeinrichtungsergebnisse nicht ausreichen.
Wenn Entwickelnde ein Repository über eine Vorlage erstellen, müssen sie zudem den Wert aller erforderlichen benutzerdefinierten Eigenschaften definieren. Benutzerdefinierte Eigenschaften sind sehr nützlich, um eine Teilmenge von Repositorys auszuwählen, auf die Sie Konfigurationen, Richtlinien oder Regelets anwenden möchten, siehe Verwalten von benutzerdefinierten Eigenschaften für Repositorys in deinem Unternehmen in der GitHub Enterprise Cloud Dokumentation.
Nächste Schritte
Wenn Sie mit der Erkundung dieser Optionen und secret scanning Funktionen fertig sind, können Sie Ihre bisherigen Entdeckungen anhand Ihrer geschäftlichen Anforderungen testen und anschließend weiter erkunden.
Weiterführende Lektüre
-
[AUTOTITLE](/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions) -
[AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise) -
[AUTOTITLE](/enterprise-cloud@latest/admin/managing-accounts-and-repositories/managing-repositories-in-your-enterprise/governing-how-people-use-repositories-in-your-enterprise) in der GitHub Enterprise Cloud Dokumentation -
[Erzwingen GitHub Advanced Security im großen Maßstab](https://wellarchitected.github.com/library/application-security/recommendations/enforce-ghas-at-scale/)