Untersuchen der Sicherheits- und Codequalitätstools von GitHub
GitHub bietet eine umfassende Suite von Sicherheits- und Codequalitätstools, mit denen Sie Ihren Code schützen, Sicherheitsrisiken verwalten und eine fehlerfreie Codebasis verwalten können. Bevor Sie sich mit den Details des Geheim-Scannens vertraut machen, ist es hilfreich, zu verstehen, wo das Geheim-Scannen innerhalb des umfassenderen Sicherheitsumfelds von GitHub passt.
Übersicht über die Sicherheits- und Codequalitätstools von GitHub
GitHub organisiert seine Sicherheits- und Codequalitätsfeatures in mehreren Kategorien: Lieferkettensicherheit, geheime Sicherheit, Codesicherheit und Codequalität. Einige Features sind auf allen GitHub-Plänen verfügbar, während andere ein kostenpflichtiges Add-On-Produkt erfordern: GitHub Secret Protection oder GitHub Code Security. Viele der kostenpflichtigen Features sind auch kostenlos für öffentliche Repositorys verfügbar.
Sicherheit der Lieferkette
Die Sicherheitsfeatures der Lieferkette helfen Ihnen, die Abhängigkeiten zu verstehen und zu schützen, auf denen Ihr Projekt basiert.
Abhängigkeitsdiagramm
Mit dem Abhängigkeitsdiagramm können Sie die Pakete und Ökosysteme erkunden, von denen Ihr Repository abhängt, sowie die Repositorys und Pakete, die von Ihrem Repository abhängig sind. Es bietet Einblicke in die vollständige Abhängigkeitsstruktur Ihres Projekts und hilft Ihnen zu verstehen, wo Ihr Code externe Abhängigkeiten hat.
Software-Stückliste (Software Bill of Materials, SBOM)
Sie können das Abhängigkeitsdiagramm Ihres Repositorys als SPDX-kompatible Software Bill of Materials (SBOM) exportieren. Ein SBOM bietet eine formale, maschinenlesbare Bestandsaufnahme der Komponenten und Abhängigkeiten Ihres Projekts, die für Compliance- und Überwachungszwecke zunehmend erforderlich ist.
GitHub Beratungsdatenbank
Die GitHub Advisory Database ist eine kuratierte Liste bekannter Sicherheitsrisiken, die Sie durchsuchen, suchen und filtern können. Wenn eine Sicherheitsanfälligkeit in einer Ihrer Abhängigkeiten entdeckt wird, können Sie diese Datenbank auf Details zur Sicherheitsanfälligkeit und deren Auswirkungen überprüfen.
Dependabot-Warnungen und Sicherheitsupdates
Dependabot überwacht Ihre Abhängigkeiten auf bekannte Sicherheitsrisiken. Wenn eine Sicherheitsanfälligkeit gefunden wird, erstellt Dependabot eine Warnung und kann automatisch Pullanforderungen generieren, um die betroffene Abhängigkeit auf eine sichere Version zu aktualisieren. Standardmäßige regeln für die automatische Triage, die von GitHub zusammengestellt wurden, helfen, falsch positive Ergebnisse herauszufiltern.
Dependabot-Versionsupdates
Dependabot kann Ihre Abhängigkeiten auch up-to-date beibehalten, indem Pullanforderungen automatisch erstellt werden, wenn neuere Versionen verfügbar sind. Die Aktualisierung von Abhängigkeiten erleichtert das Anwenden von Sicherheitspatches und reduziert ihre Gefährdung durch Sicherheitsrisiken.
Abhängigkeitsüberprüfung
Die Abhängigkeitsüberprüfung zeigt die vollständigen Auswirkungen von Abhängigkeitsänderungen in einer Pullanforderung. Vor dem Zusammenführen einer Pullanforderung können Sie überprüfen, welche Abhängigkeiten hinzugefügt, entfernt oder aktualisiert wurden, und sehen, ob anfällige Versionen eingeführt werden. Abhängigkeitsüberprüfung erfordert GitHub Code Security für private Repositorys, ist aber kostenlos für öffentliche Repositorys verfügbar.
Geheime Sicherheit
Verdeckte Sicherheitsfunktionen erkennen und verhindern die Exposition von Anmeldeinformationen in Ihrer Codebasis.
Warnungen zur Geheimnisüberprüfung für Partner
Für öffentliche Repositorys sucht GitHub automatisch nach bekannten geheimen Mustern von über 200 Dienstanbietern. Wenn ein geleaktes Geheimnis erkannt wird, benachrichtigt GitHub den entsprechenden Dienstanbieter, damit er die kompromittierten Zugangsdaten widerrufen oder wechseln kann. Dieses Feature ist standardmäßig für alle öffentlichen Repositorys ohne Kosten aktiviert.
Pushschutz für Benutzer
Push-Schutz für Benutzer ist eine persönliche Sicherheitsfunktion, die Sie automatisch daran hindert, geheime Schlüssel versehentlich in öffentliche Repositorys zu übernehmen, unabhängig davon, ob im Repository die Geheimnisüberprüfung aktiviert ist. Dieses Feature ist standardmäßig für alle Benutzer aktiviert und kann über persönliche Kontoeinstellungen verwaltet werden.
Warnungen zur Geheimnisüberprüfung für Benutzer
Secret-Scanning-Warnungen für Benutzer erweitern die Fähigkeit zur Erkennung, um Repository-Administratoren und Sicherheitsteams zu benachrichtigen, wenn vertrauliche Daten in einem Repository gefunden werden. Sie können Warnungen auf der Registerkarte "Sicherheit" des Repositorys mit Details zum geheimen Typ, zum Speicherort und zur Gültigkeit anzeigen. Dieses Feature erfordert gitHub Secret Protection für private Repositorys, ist aber kostenlos für öffentliche Repositorys verfügbar.
Copilot Secret Scanning
Copilot Secret Scanning verwendet KI-gestützte generische geheime Erkennung, um unstrukturierte Geheimnisse (z. B. Kennwörter) in Ihrem Quellcode zu identifizieren, die nicht mit einem bestimmten bekannten Muster übereinstimmen. Dieses Feature erweitert die Erkennung über die strukturierten Muster hinaus, die das standardmäßige geheime Scannen identifiziert.
Push-Schutz (Repository-Ebene)
Push-Schutz blockiert Commit-Vorgänge, die geheime Muster, die als hoch vertrauenswürdig gelten, enthalten, bevor sie an ein Repository gepusht werden. Wenn ein Mitwirkender den Block umgeht, erstellt GitHub eine Warnung. Für private Repositorys erfordert Pushschutz gitHub Secret Protection. Es ist kostenlos für öffentliche Repositorys verfügbar.
Delegierte Umgehung für den Push-Schutz
Mit delegiertem Bypass können Sie steuern, welche Personen, Rollen und Teams den Pushschutz umgehen können. Es implementiert einen Überprüfungs- und Genehmigungsprozess für Pushes, die Geheimnisse enthalten, und fügt eine zusätzliche Ebene der Governance hinzu.
Benutzerdefinierte Muster für geheime Scans
Organisationen können benutzerdefinierte Muster für die geheime Überprüfung definieren, um Anmeldeinformationen und Token zu erkennen, die für ihre internen Systeme spezifisch sind und nicht von den Standardmustern abgedeckt werden.
Codesicherheit
Codesicherheitsfeatures helfen Ihnen, Sicherheitsrisiken in Ihrer Codebasis zu finden und zu beheben.
Codeüberprüfung
Die Codeüberprüfung verwendet statische Analysen, um Sicherheitsrisiken und Codierungsfehler in neuem oder geändertem Code automatisch zu erkennen. Mögliche Probleme werden mit detaillierten Informationen hervorgehoben, damit Sie sie beheben können, bevor Sie sie in den Standardzweig integrieren. Die Codeüberprüfung erfordert GitHub Code Security für private Repositorys, ist aber kostenlos für öffentliche Repositorys verfügbar.
CodeQL CLI
Mit der CodeQL CLI können Sie CodeQL-Analysen lokal in Ihren Softwareprojekten ausführen und Codescanergebnisse für den Upload auf GitHub generieren. Es ist dasselbe Analysemodul hinter gitHubs Codescan-Feature.
Copilot Autofix für das Scannen von Code
Copilot Autofix generiert automatisch vorgeschlagene Korrekturen für Codescanbenachrichtigungen. Wenn die Codeüberprüfung eine Sicherheitsanfälligkeit erkennt, bietet Copilot Autofix einen Korrekturvorschlag, den Sie überprüfen und anwenden können, wodurch die zeitaufwand für die Behebung von Problemen erheblich reduziert wird.
Benutzerdefinierte Auto-Triage-Regeln für Dependabot
Mit benutzerdefinierten Regeln für die automatische Einstufung können Sie steuern, wie Dependabot-Warnungen skaliert werden. Sie können Regeln konfigurieren, um Warnungen automatisch abzulehnen, zu verschieben oder Sicherheitsupdates für bestimmte Alarme basierend auf den Prioritäten Ihrer Organisation auszulösen.
Sicherheitskampagnen
Mit Sicherheitskampagnen können Organisationen Sicherheitswarnungen im großen Maßstab beheben, indem koordinierte Anstrengungen zur Reduzierung des Sicherheitsrückbestands erstellt werden. Sicherheitskampagnen helfen beim Organisieren und Priorisieren von Wartungsaufgaben in mehreren Repositorys.
Codequalität
Codequalitätsfeatures helfen Ihnen dabei, eine fehlerfreie, zuverlässige und wartungsfähige Codebasis aufrechtzuerhalten.
GitHub-Codequalität
GitHub Code Quality verwendet codeQL-regelbasierte Analyse und KI-basierte Analyse, um Codequalitätsprobleme in Pullanforderungen und Repositoryscans zu kennzeichnen. Codequalität identifiziert Zuverlässigkeits- und Wartungsprobleme, stellt Copilot-basierte Autofixes bereit und ermöglicht Ihnen, Regelsätze einzurichten, die Codequalitätsstandards für Pull-Requests gewährleisten.
Hinweis
GitHub Code Quality befindet sich derzeit in der öffentlichen Vorschau und ist für von Organisationen verwaltete Repositories in den GitHub Team- und GitHub Enterprise Cloud-Plänen verfügbar.
Allgemeine Sicherheitsfeatures
GitHub bietet außerdem grundlegende Sicherheitsfeatures, die Ihren allgemeinen Sicherheitsstatus unterstützen.
Sicherheitsrichtlinie
Sie können Ihrem Repository eine Sicherheitsrichtlinie hinzufügen, die Anweisungen für Benutzer bereitstellt, um Sicherheitsrisiken, die sie in Ihrem Projekt entdecken, vertraulich zu melden.
Sicherheitsempfehlungen
Sicherheitsempfehlungen ermöglichen Es Ihnen, Sicherheitsrisiken im Code Ihres öffentlichen Repositorys privat zu diskutieren und zu beheben, und veröffentlichen Sie dann eine Empfehlung, um Ihre Community zu benachrichtigen und Upgrades zu ermutigen.
Repositoryregelsätze
Repository-Regelsätze erzwingen konsistente Codestandards, Sicherheitsanforderungen und Compliance-Richtlinien in allen Verzweigungen und Tags in Ihren Repositorys.
Nachweisartefakte
Artefaktnachweise erstellen unfalsifiierbare Provenienz- und Integritätsgarantien für die von Ihnen erstellte Software, eine nachweisbare Verknüpfung zwischen Ihren Buildartefakten und dem Quellcode und dem Buildprozess, der sie erzeugt hat.
Sicherheitsübersicht
Die Sicherheitsübersicht bietet ein zentrales Dashboard, um die gesamte Sicherheitslandschaft Ihrer Organisation zu überprüfen. Es zeigt Trends, Einblicke und Sicherheitskonfigurationen, wodurch der Sicherheitsstatus Ihrer Organisation leicht überwacht und die Repositorys mit größtem Risiko identifiziert werden können. Die Sicherheitsübersicht ist mit GitHub Secret Protection und GitHub Code Security verfügbar.
GitHub-Sicherheitstools nach Planverfügbarkeit
In der folgenden Tabelle sind die Sicherheits- und Codequalitätstools von GitHub zusammengefasst, der minimale GitHub-Plan, der für die Verwendung erforderlich ist, und ob das GitHub Secret Protection- oder GitHub Code Security-Add-On erforderlich ist.
Hinweis
GitHub Secret Protection und GitHub Code Security sind kostenpflichtige Add-On-Produkte, die von Organisationen auf GitHub-Team - und GitHub Enterprise Cloud-Plänen erworben werden können. Viele Features, die in diesen Add-On-Produkten enthalten sind, sind auch kostenlos in öffentlichen Repositorys verfügbar, wie in der nachstehenden Tabelle angegeben.
| Tool | GitHub-Mindestplan | Öffentliche Repositorys | Privates Repository | GitHub Secret Protection | GitHub Codesicherheit |
|---|---|---|---|---|---|
| Lieferkettensicherheit | |||||
| Abhängigkeitsdiagramm | Alle Pläne | ✅ | ✅ | — | — |
| Software-Stückliste (Software Bill of Materials, SBOM) | Alle Pläne | ✅ | ✅ | — | — |
| GitHub Beratungsdatenbank | Alle Pläne | ✅ | ✅ | — | — |
| Dependabot-Warnungen und Sicherheitsupdates | Alle Pläne | ✅ | ✅ | — | — |
| Dependabot-Versionsupdates | Alle Pläne | ✅ | ✅ | — | — |
| Abhängigkeitsüberprüfung | Alle Pläne (öffentlich) / GitHub-Team (privat) | ✅ | — | — | ✅ |
| Benutzerdefinierte Auto-Triage-Regeln für Dependabot | Alle Pläne (öffentlich) / GitHub-Team (privat) | ✅ | — | — | ✅ |
| Geheime Sicherheit | |||||
| Warnungen zur Geheimnisüberprüfung für Partner | Alle Pläne | ✅ | — | — | — |
| Pushschutz für Benutzer | Alle Pläne | ✅ | — | — | — |
| Warnungen zur Geheimnisüberprüfung für Benutzer | Alle Pläne (öffentlich) / GitHub-Team (privat) | ✅ | — | ✅ | — |
| Push-Schutz (Repository-Ebene) | Alle Pläne (öffentlich) / GitHub-Team (privat) | ✅ | — | ✅ | — |
| Copilot Secret Scanning | GitHub-Team | — | — | ✅ | — |
| Delegierte Umgehung für den Push-Schutz | GitHub-Team | — | — | ✅ | — |
| Benutzerdefinierte Muster für geheime Scans | GitHub-Team | — | — | ✅ | — |
| Codesicherheit | |||||
| Codeüberprüfung | Alle Pläne (öffentlich) / GitHub-Team (privat) | ✅ | — | — | ✅ |
| CodeQL CLI | Alle Pläne (öffentlich) / GitHub-Team (privat) | ✅ | — | — | ✅ |
| Copilot Autofix für das Scannen von Code | Alle Pläne (öffentlich) / GitHub-Team (privat) | ✅ | — | — | ✅ |
| Sicherheitskampagnen | GitHub-Team | — | — | — | ✅ |
| Codequalität | |||||
| GitHub-Codequalität | GitHub-Team * | — | — | — | ✅ |
| Allgemeine Sicherheit | |||||
| Sicherheitsrichtlinie | Alle Pläne | ✅ | ✅ | — | — |
| Sicherheitsempfehlungen | Alle Pläne | ✅ | ✅ | — | — |
| Repositoryregelsätze | Alle Pläne | ✅ | ✅ | — | — |
| Nachweisartefakte | Alle Pläne (öffentlich) / GitHub Enterprise Cloud (privat) | ✅ | ✅ ** | — | — |
| Sicherheitsübersicht | GitHub-Team | — | — | ✅ | ✅ |
* GitHub-Codequalität befindet sich derzeit in der öffentlichen Vorschau.
** Artefaktnachweise für private Repositorys erfordern GitHub Enterprise Cloud.
In der obigen Tabelle bedeutet "Alle Pläne", dass das Tool für jeden GitHub-Plan ohne zusätzliche Kosten verfügbar ist, einschließlich der kostenlosen Pläne (GitHub Free für persönliche Konten und GitHub Free für Organisationen). "GitHub Team" bedeutet, dass der mindest erforderliche Plan GitHub-Team oder GitHub Enterprise Cloud ist, von denen beide kostenpflichtige Pläne sind, die auch den Kauf von GitHub Secret Protection- und GitHub Code Security-Add-On-Produkten unterstützen. Detaillierte Preisinformationen sind auf GitHub verfügbar.
Zusammenarbeit der GitHub-Sicherheitstools
Die Sicherheits- und Codequalitätstools von GitHub sind so konzipiert, dass sie als ergänzende Ebenen funktionieren und einen umfassenden Schutz in verschiedenen Dimensionen Ihrer Codebasis bieten.
- Lieferkettensicherheit (Dependabot, Abhängigkeitsdiagramm, Abhängigkeitsüberprüfung) schützt Sie vor anfälligen Drittanbieterpaketen.
- Geheime Sicherheit (geheime Überprüfung, Pushschutz) verhindert die Gefährdung von Anmeldeinformationen.
- Codesicherheit (Codeüberprüfung, CodeQL) identifiziert Sicherheitsrisiken in Ihrem eigenen Code.
- Die Codequalität trägt dazu bei, zuverlässige und wartungsfähige Code zu erhalten, um technische Schulden zu reduzieren.
Zusammen erstellen diese Tools einen detaillierten Sicherheitsansatz, der Sicherheitsrisiken aus mehreren Blickwinkeln behandelt. Secret Scanning kann z. B. einen geleakten API-Schlüssel erkennen. Dependabot benachrichtigt Sie über eine anfällige Abhängigkeit, auf die der API-Schlüssel zugreift, und die Codeüberprüfung identifiziert eine SQL-Injection-Sicherheitsanfälligkeit im Code, der diese Abhängigkeit nutzt. Jede Ebene füllt eine Lücke, die die anderen nicht abdecken.
In diesem Modul konzentrieren Sie sich auf geheimen Scan - und Pushschutz, der den Eckpfeiler der geheimen Sicherheitsfunktionen von GitHub bildet.