Konfigurieren von GitHub Advanced Security for GitHub und Azure DevOps

Abgeschlossen

GitHub Advanced Security ist eine Suite von Sicherheitsfeatures und -funktionen, die von GitHub angeboten werden, um Organisationen dabei zu helfen, Sicherheitsrisiken zu erkennen und zu mindern, ihren Code zu sichern und ihre Software-Lieferkette zu schützen. Die Architektur umfasst die folgenden Schlüsselkomponenten:

  • Die Codeüberprüfung überprüft Code automatisch in Repositorys auf Sicherheitsrisiken und Codierungsfehler mithilfe statischer Analysetechniken, die von CodeQL- oder Drittanbietertools bereitgestellt werden. Es identifiziert potenzielle Sicherheitsrisiken, einschließlich derer, die sich auf veraltete Abhängigkeiten und schwache Verschlüsselungen beziehen.
  • Die geheime Überprüfung erkennt und hilft, das Vorhandensein von geheimen Schlüsseln wie API-Token und kryptografischen Schlüsseln in Repositorys und Commits zu beheben. Er scannt automatisch den Inhalt von Repositorys und generiert Benachrichtigungen basierend auf seinen Entdeckungen.
  • Abhängigkeitsüberprüfungen helfen bei der Identifizierung und Verwaltung von Abhängigkeiten in Softwareprojekten, basierend auf direkten und transitiven Abhängigkeiten, die aus Paketmanifesten und anderen Konfigurationsdateien abgerufen wurden. Sie ermöglichen es Ihnen, die vollständigen Auswirkungen von Änderungen an Abhängigkeiten zu bewerten, einschließlich Details aller anfälligen Versionen vor dem Zusammenführen einer Pullanforderung.
  • Benutzerdefinierte Regeln zur automatischen Triage helfen Ihnen beim Verwalten von Dependabot-Warnungen im großen Maßstab. Mit benutzerdefinierten Regeln für die automatische Einstufung steuern Sie, welche Warnungen ignoriert werden können und welche ein Sicherheitsupdate erfordern.
  • Sicherheitsempfehlungen bieten kuratierte Sicherheitsempfehlungen und Warnungen zu Sicherheitsrisiken, die in Open-Source-Abhängigkeiten entdeckt wurden.

GitHub Advanced Security ist nativ in GitHub und Azure DevOps integriert.

GitHub

GitHub stellt seine Advanced Security-Features in privaten Repositorys basierend auf der Advanced Security-Lizenzierung zur Verfügung. Nachdem Sie die GitHub Advanced Security-Lizenzierung für Ihre Organisation erworben haben, können Sie diese Features auf Organisations- oder Repositoryebene aktivieren und deaktivieren. Diese Features sind auch dauerhaft in öffentlichen Repositorys auf GitHub.com ohne Lizenzierungsvoraussetzungen aktiviert und können nur deaktiviert werden, wenn Sie die Sichtbarkeit des Projekts ändern.

Um GitHub Advanced Security für Ihre Organisation zu konfigurieren, wählen Sie in der oberen rechten Ecke von GitHub.com Ihr Profilsymbol und dann Ihre Organisationen aus. Wählen Sie als Nächstes „Einstellungen“ aus und wählen Sie im Abschnitt „Sicherheit“ der Randleiste die Option „Codesicherheit und -analyse“ aus. Dadurch wird die Seite angezeigt, auf der Sie alle Sicherheits- und Analysefeatures für die Repositorys in Ihrer Organisation aktivieren oder deaktivieren können.

Die Auswirkungen von Konfigurationsänderungen werden durch die Sichtbarkeit von Repositorys in Ihrer Organisation bestimmt:

  • Private Sicherheitsrisikoberichte – nur öffentliche Repositorys.
  • Abhängigkeitsdiagramm – nur private Repositorys, da das Feature immer für öffentliche Repositorys aktiviert ist.
  • Dependabot-Warnungen – alle Repositorys.
  • Sicherheitsupdates von Dependabot – alle Repositorys.
  • GitHub Advanced Security – nur private Repositorys, da GitHub Advanced Security und die zugehörigen Features immer für öffentliche Repositorys aktiviert sind.
  • Geheimes Scannen – öffentliche und private Repositorys, in denen GitHub Advanced Security aktiviert ist. Mit dieser Option wird gesteuert, ob geheime Überprüfungswarnungen für Benutzer aktiviert sind.
  • Codeüberprüfung – öffentliche und private Repositorys, in denen GitHub Advanced Security aktiviert ist.

Sie können auch die Sicherheits- und Analysefeatures für einzelne private Repositorys verwalten. Navigieren Sie dazu von GitHub.com zur Hauptseite des Repositorys und wählen Sie „Einstellungen“ aus. Wählen Sie im Abschnitt „Sicherheit“ der Randleiste auf Codesicherheit und -analyse aus. Deaktivieren oder aktivieren Sie im Bereich „Codesicherheit und -analyse“ einzelne Features. Das Steuerelement für GitHub Advanced Security ist deaktiviert, wenn Ihr Unternehmen keine erforderlichen Lizenzen erworben hat.

Beachten Sie, dass, wenn Sie GitHub Advanced Security deaktivieren, Abhängigkeitsüberprüfungen, geheime Überprüfungswarnungen für Benutzer und Codeüberprüfung effektiv deaktiviert werden. Daher schlagen alle Workflows, welche die Codeüberprüfung enthalten, fehl.

Nach der Aktivierung werden die Sicherheitsfeatures direkt in die GitHub-Plattform integriert und bieten kontinuierliche Sicherheitsüberwachung und Warnungen direkt auf der GitHub-Schnittstelle. Repositoryadministratoren und Entwickler können auf Sicherheitserkenntnisse, Empfehlungen und umsetzbare Schritte zugreifen, um identifizierte Sicherheitsrisiken zu beheben und den Gesamtsicherheitsstatus ihrer Softwareprojekte zu stärken. Darüber hinaus können Organisationen Sicherheitsrichtlinien anpassen, automatisierte Workflows konfigurieren und GitHub Advanced Security in andere Sicherheitstools und -dienste integrieren, um ihre spezifischen Sicherheitsanforderungen und Complianceanforderungen zu erfüllen.

Azure DevOps

GitHub Advanced Security für Azure DevOps zielt auf Azure Repos ab und umfasst:

  • Pushschutz für geheime Überprüfungen prüft, ob Codepushs Commits enthalten, die geheime Schlüssel offenlegen.
  • Das Repository für geheime Überprüfungen durchsucht Repositorys nach offengelegten geheimen Schlüsseln.
  • Die Abhängigkeitsüberprüfung identifiziert direkte und transitive Sicherheitsrisiken in Open Source-Abhängigkeiten.
  • Codeüberprüfung verwendet statische CodeQL-Analyse, um Anwendungsrisiken auf Codeebene wie SQL-Einfügung und Authentifizierungsumgehung zu identifizieren.

Advanced Security kann auf Organisations-, Projekt- oder Repository-Ebene aktiviert werden. Dies ermöglicht automatisch den Schutz des geheimen Scans für Push- und Repositoryüberprüfungen. Effektiv werden alle zukünftigen Pushs, die geheime Schlüssel enthalten, automatisch blockiert, während die geheime Überprüfung im Hintergrund ausgeführt wird.

Abhängigkeitsüberprüfung ist ein pipelinebasiertes Überprüfungstool. Die Ergebnisse werden pro Repository aggregiert. Es wird empfohlen, den Abhängigkeitsüberprüfungstask allen Pipelines hinzuzufügen, die überprüft werden sollen. Um die genauesten Überprüfungsergebnisse zu erzielen, fügen Sie den Task zum Überprüfen von Abhängigkeiten mithilfe der Buildschritte einer Pipeline hinzu, die den zu überprüfenden Code erstellt. Sie können die Advanced Security Dependency Scanning-Aufgabe (AdvancedSecurity-Dependency-Scanning@1) direkt zu Ihrer YAML-Pipelinedatei hinzufügen oder aus dem Aufgaben-Assistenten auswählen.

Codeüberprüfung ist auch ein pipelinebasiertes Überprüfungstool, bei dem die Ergebnisse pro Repository aggregiert werden. Es ist in der Regel eine zeitaufwendige Buildaufgabe, daher sollten Sie die Codescanaufgabe zu einer separaten, geklonten Pipeline Ihrer Hauptproduktionspipeline hinzufügen oder eine neue Pipeline erstellen. Fügen Sie in der Pipeline die Aufgaben in der folgenden Reihenfolge hinzu:

  • Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
  • Ihre benutzerdefinierten Buildschritte
  • Advanced Security Perform CodeQL Analysis (AdvancedSecurity-Codeql-Analyze@1)

Darüber hinaus müssen Sie eine durch Trennzeichen getrennte Liste der Sprachen einbinden, die Sie analysieren, indem Sie die Advanced Security Initialize CodeQL-Aufgabe verwenden. Zu den unterstützten Sprachen gehören csharp, cpp, go, java, JavaScript, python, ruby und swift.