Skip to main content

Bewährte Methoden zum Beheben von Sicherheitswarnungen im großen Stil

Ein Leitfaden zum Erstellen erfolgreicher Sicherheitskampagnen, bei denen Entwickler einbezogen und ihnen geholfen wird, das Schreiben von sicherem Code besser zu verstehen

Wer kann dieses Feature verwenden?

Organisationen in GitHub Enterprise Cloud mit aktivierter GitHub Advanced Security

Note

Sicherheitskampagnen befinden sich aktuell in public preview. Änderungen sind vorbehalten.

Elemente einer erfolgreichen Sicherheitskampagne

Erfolgreiche Sicherheitskampagnen zum Beheben von Warnungen im großen Stil haben viele gemeinsame Merkmale. Dazu gehören unter anderem die folgenden:

  • Auswählen zusammenhängender Sicherheitswarnungen für die Behebung
  • Verwenden von Copilot Autofix-Vorschlägen, um Entwicklern dabei zu helfen, Warnungen schneller und effektiver zu beheben.
  • Sicherstellen, dass der Kampagnenmanager für Zusammenarbeit, Reviews und Fragen zur Behebung zur Verfügung steht
  • Zugriff auf Schulungsinformationen zur Warnungsart in der Kampagne
  • Verfügbarmachen von GitHub Copilot Chat für Entwickler, um mehr zu den in den Sicherheitswarnungen der Kampagne hervorgehobenen Risiken zu erfahren
  • Definieren einer realistischen Kampagnendeadline unter Berücksichtigung der Anzahl an Warnungen, die behoben werden sollen
  • Veröffentlichen der Ergebnisse der Zusammenarbeit für Entwicklerteams und Identifizieren der besten Nutzungsmöglichkeiten in deiner Organisation

Weitere Informationen zum Entwickeln findest du unter Beheben von Warnungen in einer Sicherheitskampagne.

Auswählen von Sicherheitswarnungen für die Behebung

Eventuell ist dein erster Gedanke, alle dringlichen Warnungen zu identifizieren und für deren Behebung eine Sicherheitskampagne zu erstellen. Dies kann ein erfolgreicher Ansatz für dein Unternehmen sein, wenn deine Entwickler das Schreiben von sicherem Code bereits gut verstehen und potenzielle Risiken zeitnah beheben möchten. Wenn sie jedoch erst noch mehr über das Schreiben von sicherem Code und häufige Risiken lernen müssen, ist ein strategischerer Ansatz geeignet.

Wenn beispielsweise viele Risikowarnungen für Cross-Site Scripting auftreten, kannst du Folgendes tun:

  • Erstellen von Schulungsinhalten für Entwickler in einem Repository mithilfe von Ressourcen der OWASP Foundation. Weitere Informationen dazu findest du unter Cross-Site Scripting (XSS).
  • Erstellen einer Kampagne zum Beheben aller Warnungen für dieses Sicherheitsrisiko, einschließlich eines Links zu den Schulungsinhalten in der Kampagnenbeschreibung
  • Abhalten einer Schulung oder eines anderen Events zum Hervorheben der Möglichkeit, Erfahrung beim Schreiben von sicherem Code beim Beheben realer Bugs zu sammeln
  • Sicherstellen, dass das für das Verwalten der Kampagne zugeteilte Sicherheitsteammitglied zum Überprüfen der Pull Requests zur Verfügung steht, die zum Beheben von Kampagnenwarnungen erstellt wurden, und nach Bedarf bei der Bearbeitung hilft

Verwenden von Copilot Autofix zur Behebung von Sicherheitswarnungen

GitHub Copilot Autofix ist eine Erweiterung von code scanning, die Benutzenden gezielte Empfehlungen gibt, um bei der Behebung von code scanning-Warnungen zu helfen. Wenn du Warnungen auswählst, die in eine Sicherheitskampagne einbezogen werden sollen, kannst du Benachrichtigungen, die durch GitHub Copilot Autofix mithilfe des autofix:supported-Filters behoben werden können, bevorzugt einschließen.

Kampagnenfiltervorlagen

Beim Auswählen von Warnungen für eine Sicherheitskampagne kannst du beliebig Filter von der Sicherheitswarnungsseite zum Definieren von Warnungsunterkategorien nutzen. Alternativ kannst du eine Kampagnenvorlage auswählen, um einen vordefinierten Filter für häufige Zwecke zu verwenden, z. B. „Cross-site scripting (CWE-79)“.

Einschränkungen bei Sicherheitskampagnen

Die folgenden Einschränkungen sollen dich zu einem ausgewogenen und wohlüberlegten Ansatz zum Beheben von Warnungen in deinem Code ermutigen. Eine iterative Herangehensweise, mit der einige wenige bestimmte Warnungen gleichzeitig behandelt werden, führt wahrscheinlich zu einer nachhaltigen und langanhaltenden Änderung des Sicherheitsstatus.

  • Maximal 10 aktive Sicherheitskampagnen gleichzeitig (keine Begrenzungen für geschlossene Kampagnen)
  • Jede Kampagne kann bis zu 1000 Warnungen enthalten.

Wenn du eine Kampagne erstellen möchten, die über diese Grenzwerte hinausgeht, werden Warnungen weggelassen, damit die Kampagne den Einschränkungen entspricht. Warnungen in Repositorys mit aktuellen Pushes haben für das Aufnehmen in die Kampagne Priorität.

Wenn du eine Sicherheitskampagne erstellst, musst du einen oder mehrere Kampagnenmanager auswählen. Ein Kampagnenmanager muss eine der folgenden Voraussetzungen erfüllen:

  • Ein Benutzer mit der Rolle „Organisationsbesitzer“ oder „Sicherheitsmanager“
  • Ein Mitglied eines Teams mit der Rolle „Organisationsbesitzer“ oder „Sicherheitsmanager“

Der Name des Kampagnen-Managers ist für Entwickler sichtbar, wenn sie an der Kampagne teilnehmen. Um die Kommunikation zwischen Entwicklern und den Kampagnenmanagern zu unterstützen, kannst du beim Erstellen einer Kampagne auch einen Kontaktlink bereitstellen, z. B. einen Link zu GitHub Discussions oder einem anderen Kommunikationskanal.

Wenn du die Behebungsrate für Warnungen und das Wissen des Sicherheitsteams erhöhen möchtest, ist eine Kampagne eine wichtige Gelegenheit, Kollaborationsbeziehungen mit Entwicklern aufzubauen. Im Idealfall stehen die Kampagnenmanager zur Verfügung, um Fragen zu beantworten und über den Kontaktlink an schwierigen Fixes zusammenzuarbeiten. Kampagnenmanager sollten auch verfügbar sein, um Pull Requests für Korrekturen über den gesamten Verlauf der Kampagne zu überprüfen.

Kombinieren von Sicherheitsschulungen mit einer Sicherheitskampagne

Wenn dein Sicherheitsteam bereits Schulungen zum sicheren Schreiben von Code für Entwickler anbietet, ist das Erstellen einer Kampagne mit Warnungen, bei denen sie die Fähigkeiten aus der Schulungssitzung einsetzen können, eine großartige Möglichkeit, sie beim Lernen zu unterstützen. Es ist sinnvoll, Informationen zu den Arten von Sicherheitsrisiken in der Kampagne sowie Beispiele zum Beheben der Risiken und Testen der Fixes bereitzustellen, auch wenn du kein offizielles Schulungsprogramm anbietest. Dadurch wird die Rolle des Kampagnen-Managers erleichtert, denn so kann er die Entwickler bei grundlegenden Fragen direkt auf diese Materialien verweisen.

Die OWASP Foundation stellt viele Ressourcen zu den häufigsten Sicherheitsrisiken zur Verfügung, und die MITRE Corporation führt eine detaillierte Liste verbreiteter Schwachstellen. Weitere Informationen findest du unter Informationen zur OWASP Foundation und Informationen zur CWE.

Bereitstellen von KI-Unterstützung zum Kennenlernen von Sicherheitsrisiken

GitHub Copilot Autofix wird automatisch ausgelöst, um eine Lösung für die jeweilige Sicherheitswarnung vorzuschlagen. Entwickler benötigen jedoch häufig weitere Informationen dazu, warum der ursprüngliche Code unsicher ist und wie getestet werden kann, dass der Fix korrekt ist und andere Komponenten nicht negativ beeinflusst.

GitHub Copilot ist ein wichtiges Tool für Entwickler, die Fragen zum Schreiben von sicherem Code haben, wie sie Sicherheitswarnungen beheben und die Fixes testen. Überprüfe, dass alle Entwickler deiner Organisation sowohl in ihrer IDE als auch in GitHub Zugriff auf Copilot haben. Weitere Informationen dazu findest du unter Gewähren des Zugriffs auf Copilot für Mitglieder Ihrer Organisation.

Tip

Der GitHub Advanced Security-Skill stellt Copilot Chat zusätzlichen Kontext zum Beantworten von Fragen zu Sicherheitswarnungen zur Verfügung.

Überlegungen beim Starten einer Sicherheitskampagne und zum Definieren einer Deadline

Wie bei allen Projekt ist es auch hier wichtig, realistische Zeiträume festzulegen, damit Entwickler nicht abgeschreckt sind und als Folge nicht an der Sicherheitskampagne teilnehmen. Die meisten Entwickler haben keine Zeit zum Beheben von Warnungen eingeplant, sofern dein Unternehmen Sicherheitswarnungen nicht als Teil einer größeren Kampagne zum Verringern technischer Schulden behebt. Du musst die Behebungsraten basierend auf der Zeit einschätzen, die Entwickler zwischen geplanten Aufgaben zur Verfügung steht. Es lohnt sich auch immer, die nationalen Feiertage und die wichtigsten Unternehmensfristen zu überprüfen, die Entwickler möglicherweise einhalten müssen.

Nächste Schritte