Skip to main content

Verringern der Sicherheitsschulden in deinem Unternehmen mit GitHub Copilot

Grundlegendes zu Features sowie dazu, wie du Entwickler befähigst und den Effekt von Copilot misst

Wer kann dieses Feature verwenden?

GitHub Copilot Business or GitHub Copilot Enterprise

Der Leitfaden ist inspiriert vom Engineering System Success Playbook (ESSP) von GitHub, das Strategien und Metriken für die Verbesserung von Engineeringsystemen empfiehlt.

Wenn du mit dem Rollout von Copilot beginnst, empfehlen wir, deine Ziele zu definieren, den Rollout entsprechend zu planen und die Ziele klar an Mitarbeitende zu kommunizieren. Weitere Informationen findest du unter Erreichen der Engineeringziele deines Unternehmens mit GitHub Copilot.

1. Ermitteln von Erfolgshindernissen

Der erste Schritt, der vom ESSP empfohlen wird, besteht darin, ein klares Verständnis der Hindernisse zu entwickeln, die Verbesserungen in deinem Unternehmen verhindern. Wenn du die aktuelle Baseline, den gewünschten zukünftigen Zustand und die Hindernisse für Fortschritt kennst, kannst du sicherstellen, dass Änderungen gezielt und effektiv sind.

Da Entwicklungsteams an der Bereitstellung neuer Features und dem reibungslosen Betrieb ihrer Anwendungen arbeiten, liegt ihr Fokus häufig auf Geschwindigkeit und Funktionalität. Im Laufe der Zeit können sich jedoch kleine Probleme wie die folgenden anhäufen:

  • Bekannte Sicherheitsschwächen, die nicht behoben wurden
  • Abhängigkeit von älteren Softwarekomponenten mit potenziellen Mängeln
  • Verzögerungen bei der Behebung von Problemen, wenn diese entdeckt werden

Für viele Organisationen schafft diese Ansammlung von ungelösten Sicherheitsproblemen und veralteten Komponenten einen erheblichen Rückstau – sogenannte Sicherheitsschulden.

Diese Verschuldung birgt reale Risiken. Je länger eine Schuld unbehandelt bleibt, desto größer und teurer zu beheben kann sie werden. Eine große Sicherheitsschuld kann Systeme anfällig für Angriffe machen, vertrauliche Daten verfügbar machen und letztendlich das Vertrauen der Kunden schädigen sowie den Gewinn schmälern.

Die Herausforderung besteht darin, die Notwendigkeit einer schnellen Entwicklung mit der entscheidenden Pflicht in Einklang zu bringen, für eine sichere und stabile Softwareumgebung zu sorgen.

2. Auswerten der Optionen

Der nächste Schritt besteht darin, Lösungen für die in Schritt 1 identifizierten Hindernisse zu bewerten und auszuwählen. In diesem Leitfaden konzentrieren wir uns auf die Auswirkungen, die GitHub Copilot auf das von dir identifizierte Ziel haben kann. Denke daran, dass erfolgreiche Rollouts eines neuen Tools auch Änderungen an Kultur und Prozessen erfordern.

Du führst Testversionen neuer Tools und Prozesse mit Pilotgruppen aus, um Feedback zu sammeln und den Erfolg zu messen. Informationen zu Schulungsressourcen und Metriken, die in der Testversion verwendet werden sollen, findest du in den Abschnitten 3. Implementieren von Änderungen und Zu überwachende Metriken.

Für Copilot registrieren

Wie Copilot helfen kann

GitHub Copilot kann dazu beitragen, Sicherheitsschulden zu mindern, indem Sicherheitsüberlegungen direkt in den Entwicklungslebenszyklus integriert werden. Die Funktionen von Copilot können es Entwicklern erleichtern, potenzielle Sicherheitsrisiken proaktiv zu ermitteln und zu beheben und ihre Projekte auf dem neuesten Stand zu halten.

Copilot kann dazu beitragen, Sicherheitsrisiken während des gesamten Softwareentwicklungslebenszyklus zu reduzieren.

Während der Entwicklung

Copilot überprüft Code proaktiv während des Schreibens und nutzt dabei sein Verständnis häufiger Sicherheitsfehler und Muster, um Bereiche zu kennzeichnen, die unter Umständen anfällig für Exploits sind. Diese Echtzeitanalyse kann versteckte Sicherheitsrisiken aufdecken, die sonst während der Standardentwicklung oder anfänglichen Sicherheitsreviews übersehen werden können.

Wenn Probleme entdeckt werden, kann Copilot sofort handlungsrelevante Codeänderungen vorschlagen, um Sicherheitsrisiken zu beheben. Dies gibt Entwicklern die Möglichkeit, Schwachstellen frühzeitig im Entwicklungszyklus zu beheben und zu verhindern, dass Sicherheitsschulden angehäuft werden.

Fortlaufende Wartung

Copilot kann mit den Code-Scan-Funktionen von GitHub integriert werden, um die Sicherheit deiner bestehenden Codebasis zu wahren. Wenn der Code-Scan eine potenzielle Sicherheitswarnung identifiziert, kann Copilot Autofix das Sicherheitsrisiko intelligent analysieren und gezielte, kontextspezifische Empfehlungen für die Behebung geben.

Diese konkreten Fixvorschläge optimieren die Behebung und verringern die Zeit, die Entwickler damit verbringen, Sicherheitsrisiken zu recherchieren und herauszufinden, wie sie behoben werden können. Dies führt dazu, dass Sicherheitswarnungen effizienter behoben werden und mit geringerer Wahrscheinlichkeit bestehen bleiben oder zu anhaltenden Sicherheitsschulden beitragen.

Kulturelle Überlegungen

Neben dem Rollout von GitHub Copilot solltest du auch alle sozialen oder kulturellen Faktoren angehen, die dich daran hindern könnten, deine Ziele zu erreichen.

Die folgenden Beispiele stammen aus dem Abschnitt „Anti-Patterns“ im ESSP.

  • Teams können Sicherheitsschulden ignorieren oder zurückstellen, sodass ineffiziente und anfällige Systeme bestehen bleiben. Dies kann durch einen zu deadlineorientierten Fokus bei Features oder fehlendes Wissen über die langfristigen Auswirkungen von Sicherheitsschulden verursacht werden.
  • Teams können übermäßig komplexe Lösungen für einfache Probleme erstellen, was die Codewartung und die Erkennung von Sicherheitsproblemen erschwert. Dies kann durch den Wunsch nach einer unnötig hohen Zukunftssicherheit oder durch den Druck verursacht werden, den Wert durch Komplexität zu steigern.

3. Implementieren von Änderungen

Wenn du den richtigen Ansatz zur Überwindung der Hindernisse identifiziert hast, skaliere die von dir identifizierten Lösungen. Damit der Rollout eines neuen Tools oder Prozesses erfolgreich ist, ist es wichtig, Besitz für jeden Teil des Rollouts zuzuweisen, deine Ziele transparent zu kommunizieren, effektive Schulungen anzubieten und deine Ergebnisse zu messen.

Dieser Abschnitt enthält Beispielszenarien, bewährte Methoden und Ressourcen für Entwickelnde. Wir empfehlen die Verwendung dieses Abschnitts, um die Kommunikation und Schulungssitzungen zu planen, damit Mitarbeitende Copilot entsprechend deiner Ziele nutzen können.

Analysieren deines Codes auf Sicherheitsrisiken

Je nach Größe deiner Codebasis kann Copilot aufgrund von Kontextbeschränkungen unter Umständen nicht das gesamte Projekt analysieren, während Entwicklungsteams Code schreiben. Entwickler können Copilot jedoch bitten, bestimmte Dateien auf unsichere Codepraktiken zu analysieren.

  1. Öffne die Dateien, die analysiert werden sollen, in Visual Studio Code.

  2. Gib in Copilot Chat folgenden Prompt ein: Analyze this code for potential security vulnerabilities and suggest fixes

    Mithilfe der Chatvariable #file kannst du den Inhalt einer Datei explizit in den Prompt aufnehmen. Stattdessen kannst du auch Promptdateien und benutzerdefinierte Anweisungen für die Antworten von Copilot verwenden.

  3. Copilot Chat analysiert den Code, identifiziert die Sicherheitsrisiken und schlägt die entsprechenden Fixes vor.

  4. Überprüfe die vorgeschlagenen Änderungen, und wende sie entsprechend an.

Weitere Beispiele für Prompts:

  • Are there any security vulnerabilities in my code? If so, can you explain them and suggest fixes?
  • Does this code follow secure code best practices? If not, what specific improvements can I make?
  • What are the potential security risks in this code if it were deployed to production? How can I mitigate them?

Verwenden von Copilot Autofix für code scanning-Warnungen

Copilot Autofix ist eine Komponente von GitHub Code Security, die potenzielle Fixes für code scanning-Warnungen vorschlagen kann. Copilot Autofix ist in öffentlichen Repositorys und Repositorys mit einer GitHub Code Security-Lizenz verfügbar.

Wenn jemand einen Code-Scan in einem Repository ausführt, werden potenzielle Probleme im Repository als code scanning-Warnungen zurückgegeben. Entwickler können die Warnungen mithilfe dieses Flows beheben:

  1. Öffne eine Warnung auf GitHub.
  2. Klicke auf Generate fix. Diese Option wird angezeigt, wenn Copilot die Warnung beheben kann.
  3. Copilot Autofix generiert einen potenziellen Fix für diese Warnung und zeigt dir die Codeänderungen direkt in der Warnung. Anschließend hast du die Möglichkeit, diese Codeänderung für einen neuen oder einen bestehenden Branch zu übernehmen.
  4. An diesem Punkt kannst du den Code testen und dann einen Pull Request eröffnen, um die Änderungen für den Mainbranch zu committen.
  5. Wenn die Änderungen für den Mainbranch verschoben wurden und code scanning überprüft hat, ob die Warnung behoben ist, wird die Warnung automatisch geschlossen.

Bewährte Methoden für Entwickler

Empfehlungen für Entwickler:

  • Verwende Copilot Chat regelmäßig, um Codeausschnitte auf Sicherheitsrisiken zu prüfen: Gewöhne dir an, Code vor dem Committen von Änderungen proaktiv auf Sicherheitsprobleme zu überprüfen.
  • Nutze Copilot Autofix für code scanning-Warnungen: Wenn Warnungen angezeigt werden, verwende zunächst code scanning, um sie schnell zu beheben.
  • Stelle klare und spezifische Prompts an Copilot Chat: Je detaillierter ein Prompt ist, desto besser kann Copilot den Code analysieren und relevante Fixes vorschlagen. Nenne beispielsweise die Programmiersprache und bestimmte Schwerpunktbereiche in deinen Prompts.
  • Kombiniere Copilot mit bestehenden Sicherheitstools: Verwende Copilot als zusätzliche Sicherheitsanalyse, nicht als Ersatz für dedizierte Sicherheitsscanner und -praktiken.

Warnhinweise für Entwickler:

  • Übernimm nie automatisch die Sicherheitsvorschläge von Copilot: Überprüfe und teste die Codeänderungen, die Copilot vorschlägt, um sicherzustellen, dass sie angemessen und effektiv sind.
  • Verlasse dich bei umfassenden Sicherheitsüberwachungen nie ausschließlich auf Copilot: Copilot ist ein hilfreiches Tool, jedoch kein Ersatz für gründliche Sicherheitsüberprüfungen und Penetrationstests.
  • Ignoriere keine code scanning-Warnungen: Kümmere dich umgehend um Warnungen, auch wenn sie unwichtig erscheinen, um die Anhäufung von Sicherheitsschulden zu verhindern.
  • Verwende Copilot nicht als Ausrede, um keine sicheren Programmiermethoden zu lernen: Du und dein Team solltet bei sicherheitsbezogenen Best Practices immer auf dem neuesten Stand sein.
  • Gehe nie davon aus, dass Copilot jedes Sicherheitsrisiko abfängt: Sicherheit ist ein fortlaufender Prozess, und Wachsamkeit ist immer nötig.
  • Verwende Copilot nicht, um Sicherheitsrichtlinien zu umgehen: Befolge die Sicherheitsprotokolle deiner Organisation, und verwende Copilot als Tool, um sie zu verbessern, nicht zu umgehen.

Ressourcen für Entwickler

Zu überwachende Metriken

Um Testversionen neuer Tools zu bewerten und sicherzustellen, dass deine vollständigen Rollouts konsistente Verbesserungen bieten, solltest du die Ergebnisse überwachen und bei Bedarf Anpassungen vornehmen. Im Allgemeinen empfehlen wir, die Schlüsselbereiche Qualität, Geschwindigkeit und Entwicklerzufriedenheit zu berücksichtigen und zu prüfen, wie diese Bereiche zusammen zu Geschäftsergebnissen beitragen.

Hier sind einige Metriken, die du anschauen solltest, um die Auswirkung von Copilot auf dieses bestimmte Ziel zu bewerten.

  • Sicherheitsschuldenquote: Verwende die Sicherheitsübersicht, um festzustellen, ob die Anzahl der Warnungen im Laufe der Zeit zurückgeht.
  • Zeit zur Behebung von Sicherheitsproblemen: Verwende die Sicherheitsübersicht, um festzustellen, ob im Laufe der Zeit die Zeit zurückgeht, die zur Behebung von Sicherheitsproblemen erforderlich ist.

Weitere Informationen findest du unter Bewerten des Sicherheitsrisikos deines Codes.