Automatisierte Sicherheit

Abgeschlossen

Hier werden einige Möglichkeiten zum Automatisieren von Sicherheitsüberprüfungen in einem Repository erläutert, die für GitHub-Repositoryadministratoren verfügbar sind.

Erkennen und Beheben veralteter Abhängigkeiten, für die Sicherheitsrisiken bestehen

Heutzutage hat beinahe jedes Projekt Abhängigkeiten von externen Paketen. Diese Komponenten können zwar erhebliche Vorteile für die Produktivität bedeuten, sie können jedoch auch weitere Sicherheitsrisiken mit sich bringen. Es kann zeitaufwändig sein, den Überblick über diese Pakete und den jeweils dazugehörigen Sicherheitsrisikostatus zu behalten, insbesondere dann, wenn bedacht wird, wie jede Abhängigkeit wieder eigene Abhängigkeiten aufweisen kann, die schwierig nachzuverfolgen und zu verwalten sind. Glücklicherweise stehen auf GitHub Features bereit, die diese Aufgabe vereinfachen.

Repositoryabhängigkeitsdiagramme

Ein Standardfeature, das für jedes Repository verfügbar ist, sind Abhängigkeitsdiagramme. GitHub scannt häufige Paketmanifeste, z. B. package.json, requirements.txt und weitere. Diese Diagramme ermöglichen es Projektbesitzern, rekursiv alle Abhängigkeiten nachzuverfolgen, die ein jeweiliges Projekt aufweist.

Screenshot eines GitHub-Abhängigkeitsdiagramms.

Eine Liste der unterstützten Abhängigkeitsmanifeste finden Sie unter Informationen zum Abhängigkeitsdiagramm.

Dependabot-Warnungen

Selbst mit einem visuellen Abhängigkeitsdiagramm kann es immer noch schwierig sein, den Überblick über aktuelle Sicherheitsüberlegungen für die einzelnen Abhängigkeiten eines Projekts zu behalten. Um diesen Aufwand zu verringern, bietet GitHub Dependabot-Warnungen, die Ihre Abhängigkeitsdiagramme für Sie überwachen. Danach werden Querverweise von Zielversionen mit Versionen auf Listen mit bekannten Sicherheitsrisikos erstellt. Wenn ein Risiko erkannt wird, wird eine Benachrichtigung für das Projekt ausgegeben. Die Eingabe für die Analyse stammt aus GitHub-Sicherheitsempfehlungen.

Screenshot von Dependabot-Warnungen für anfällige Abhängigkeiten.

Automatisierte Abhängigkeitsaktualisierungen mit Dependabot

Eine Abhängigkeitswarnung kann dazu führen, dass Mitwirkende am Projekt den betroffenen Paketverweis auf die empfohlene Version aktualisieren und eine Pull Request zu Überprüfungszwecken erstellen. Hier wäre eine Automatisierung die perfekte Lösung. Genau dies ist auch möglich. Dependabot tut genau das. Dependabot überprüft, ob Abhängigkeitsbenachrichtigungen vorhanden sind und erstellt Pull Requests, damit ein Mitwirkender die Aktualisierung überprüfen und die Anforderung zusammenführen kann.

Weitere Informationen zur Flexibilität von Dependabot finden Sie unter Konfigurieren von Dependabot-Sicherheitsupdates.

Automatisiertes Überprüfen von Code

Ähnlich wie Dependabot Ihr Repository auf Abhängigkeitswarnungen überprüft, können Sie die Codeüberprüfung verwenden, um Sicherheitsrisiken zu analysieren und zu finden sowie um Fehler im Code eines GitHub-Repositorys zu erkennen. Die Codeüberprüfung bietet mehrere Vorteile. Sie können sie verwenden, um Lösungen für vorhandene Probleme oder potenzielle Sicherheitsrisiken zu finden, zu selektieren und zu priorisieren. Außerdem sollte vermieden werden, dass Entwickler neue Sicherheitsprobleme in den Code einführen.

Ein weiterer Vorteil der Codeüberprüfung ist die Möglichkeit, CodeQL zu verwenden. Mit CodeQL können Sie Code als Daten abfragen, wodurch Sie benutzerdefinierte Abfragen erstellen oder Abfragen verwenden können, die von der Open-Source-Community verwaltet werden. Mit der Codeüberprüfung können Sie anpassen und verwalten, wie der Code in Ihrem Repository überprüft werden soll.

Sie können auf der Registerkarte „Sicherheit“ eines GitHub-Repositorys Warnungen und Workflows für die Codeüberprüfung aktivieren:

Ein Screenshot einer Liste der Richtlinien, Empfehlungen und Warnungen mit Links zu weiteren Informationen.

Weitere Informationen zur Codeüberprüfung und zu CodeQL

Geheime Überprüfung

Ein weiteres automatisiertes Überprüfungsfeature für GitHub-Repositorys ist die geheime Überprüfung. Ähnlich wie bei den vorherigen Features für die Sicherheitsüberprüfung wird bei der geheimen Überprüfung nach bekannten Geheimnissen oder Anmeldeinformationen gesucht, die in das Repository committet wurden. Diese Überprüfung wird durchgeführt, um Betrug zu verhindern und die Integrität von vertraulichen Daten zu schützen. Standardmäßig erfolgt die geheime Überprüfung in öffentlichen Repositorys, und Sie können die geheime Überprüfung in privaten Repositorys durch Repositoryadministrator*innen oder den Organisationsbesitzer*innen aktivieren.

Wenn die Geheimnisprüfung Anmeldeinformationen erkennt, benachrichtigt GitHub den Dienstanbieter, der das Geheimnis ausgestellt hat. Der Dienstanbieter überprüft die Anmeldeinformationen. Dann wird entschieden, ob sie das Geheimnis widerrufen, ein neues Geheimnis ausstellen oder sich direkt an Sie wenden sollten. Die Aktion hängt von den damit verbundenen Risiken für Sie oder den Dienstanbieter ab.

Weitere Informationen über die Geheimnisüberprüfung für öffentliche und private Repositorys