Skip to main content
Skip to content

KI-Scan für Pull-Anforderungen

AI Scan verwendet ein KI-basiertes Scanmodul, um Sicherheitsrisiken in Pull-Anforderungen für Sprachen und Frameworks zu finden, die nicht abgedeckt werden CodeQL.

Hinweis

AI Scan befindet sich derzeit in Öffentliche Vorschau und kann sich ändern.

AI Scan erzeugt zusätzliche Sicherheitsbefunde mit einer KI-basierten Scan-Engine, die bei Pull Requests ausgeführt wird und CodeQL ergänzt. Im Gegensatz zu CodeQL Warnungen sind AI Scan-Ergebnisse nur für Pull-Anforderungen verfügbar und werden nicht als Backlog-Warnungen in der Sicherheitsansicht des Repositorys angezeigt.

Während CodeQL hochpräzise statische Analysen für eine bestimmte Auswahl unterstützter Sprachen und Abfragen bietet, verwenden viele Repositories Sprachen und Frameworks, die von CodeQL nicht abgedeckt werden. AI Scan erweitert code scanning die Abdeckung in diese Bereiche und hilft Ihnen dabei, Sicherheitsrisiken zu finden, ohne neue Tools oder Konfigurationen hinzuzufügen.

Während des Öffentliche Vorschau AI-Scans werden eine GitHub Advanced Security-Lizenz und eine GitHub Copilot-Lizenz benötigt.

Die Nutzung verbraucht AI credits. Siehe Nutzungsbasierte Abrechnung für Organisationen und Unternehmen.

So funktioniert AI Scan

AI Scan wird automatisch ausgeführt, wenn code scanning für ein Repository aktiviert ist, die effektive KI-Scan-Einstellung des Repositorys aktiviert ist und eine berechtigte Pullanforderung qualifizierende Änderungen in einer unterstützten Sprache oder einem unterstützten Framework enthält, die CodeQL nicht abgedeckt werden. Diese Bedingungen bestimmen auch, wann die KI-Scan-Nutzung beginnt. Der Scan wird bei der Erstellung von Pull Requests und nach jedem neuen Commit ausgelöst, genau wie bei CodeQL.

AI Scan erfordert CodeQL keine Standardeinrichtung und hängt nicht vom Analysestatus CodeQL ab. Wenn CodeQL die Analyse fehlschlägt oder sich in einem Wartezustand befindet, wird der AI-Scan weiterhin ausgeführt.

AI-Scan-Ergebnisse haben lediglich Hinweischarakter und blockieren das Zusammenführen von Pull Requests nicht. Sie liefern Signale darüber, wo die Codesicherheit verbessert werden kann, ohne Ihren Workflow zu unterbrechen.

Das AI-Scanmodul funktioniert direkt mit dem Code in der Pullanforderung und erfordert kein Buildsystem. Es verwendet Tools wie die Codesuche, um zusätzliche Kontextinformationen aus dem Repository zu sammeln, wenn entschieden wird, ob ein Problemfall markiert werden soll. Es verwendet eigene spezielle Eingabeaufforderungen und verwendet keine benutzerdefinierten Anweisungsdateien wie /.github/copilot-instructions.md oder /CLAUDE.md.

Die Ergebnisse werden an die Pullanforderung gesendet, sobald sie gefunden werden. Wenn der CodeQL Scan länger dauert, sehen Sie möglicherweise AI Scan-Ergebnisse, bevor CodeQL Ergebnisse angezeigt werden, oder umgekehrt.

Wie AI-Scan-Ergebnisse bei Pull-Anforderungen angezeigt werden

AI-Scan-Ergebnisse werden zusammen mit CodeQL Warnhinweisen auf den Registerkarten Konversation und Geänderte Dateien in einer Pull-Anforderung angezeigt. Jeder Befund ist mit einem „AI“-Indikator gekennzeichnet, sodass Sie ihn von CodeQL Warnungen unterscheiden können.

Jeder Befund enthält eine Beschreibung des Sicherheitsproblems und eine Erläuterung des Risikos. Die meisten Befunde enthalten auch eine empfohlene Abhilfemaßnahme, aber nicht jeder Befund enthält eine. Wenn eine Lösungsmöglichkeit angeboten wird, ist Copilot Autofix enthalten und stellt eine empfohlene Codeänderung zur Behebung des Problems bereit, genauso wie bei CodeQL-Warnungen. Die Ergebnisse umfassen auch eine Feedbackfunktion mit Daumen hoch/runter, mit der sich die Erkennungsqualität im Laufe der Zeit verbessern lässt.

Einschränkungen

  • AI Scan analysiert nur Pull-Anforderungen. Vollständige Repository-Scans werden nicht unterstützt.
  • AI Scan-Ergebnisse können noch nicht in Regelets verwendet werden, um Zusammenführungsanforderungen zu erzwingen.
  • AI Scan wird nicht für Pull Requests aus Forks oder für Pull Requests ausgeführt, die von Dependabot erstellt wurden.
  • Erkennungskategorien und unterstützte Sprachen können sich ändern, wenn sich das Feature weiterentwickelt.
  • Wie bei jedem KI-basierten Tool können KI-Scan-Ergebnisse falsch positive Ergebnisse enthalten. Verwenden Sie den Feedbackmechanismus, um ungenaue Ergebnisse zu melden.

Unterstützte Sprachen

AI Scan wurde entwickelt, um Sprachen und Frameworks abzudecken, die derzeit nicht unterstützt werden CodeQL. Dazu gehören unter anderem Sprachen wie PHP, Shell/Bash, Terraform-Konfigurationen (HCL) und Dockerfiles sowie Lücken bei der Framework-Unterstützung wie JSP für Java und Blazor für C#.

Eine vollständige Liste der sprachen, die von CodeQLautoTITLE unterstützt werden, finden Sie unter Codeüberprüfung mit CodeQL.

Erkennungskategorien

AI Scan deckt derzeit die folgenden Kategorien ab. Diese Kategorien beschreiben, wie Ergebnisse klassifiziert werden. Das Scanmodul kann sich im Laufe der Zeit weiterentwickeln, da sich modelle verbessern.

  • Einschleusung von Zeichenketten – Unsichere, aus Zeichenketten zusammengesetzte SQL-, HTML-, Shell-, JSON- oder YAML-Codes mit fehlender oder fehlerhafter Maskierung oder Bereinigung.
  • Schwache Kryptografie — schwache Algorithmen, kleine Schlüssel, unsichere Zufallszahlen, fehlende Verschlüsselung oder schwache Passwort-Hashverfahren.
  • Fehlerhafte Zugriffssteuerung – Pfad-Traversale, CSRF-Lücken oder benutzergesteuerte offene Umleitungen.
  • Offenlegung sensibler Daten — Geheimnisse, Token, Kennwörter oder Stacktraces, die ohne angemessenen Schutz gespeichert, protokolliert oder gesendet werden.
  • Sicherheitsfehler – riskante Standardwerte oder Einstellungen, z. B. Das Deaktivieren von Sicherheitssteuerelementen oder das Aktivieren von Debugfeatures.
  • Authentifizierungsfehler – Fehlende TLS- oder Überprüfungsvorgänge, unsichere Authentifizierungsflüsse oder fehlende Einschränkung der Rate.
  • Datenintegritätsfehler – unsichere Deserialisierung, HTTP für vertrauliche Aktionen, Prototypverschmutzung oder Ausführen nicht vertrauenswürdiger Inhalte.
  • Serverseitige Anforderungsfälschung (SSRF) – Server ruft vom Angreifer kontrollierte URLs, Hosts oder Protokolle ab.
  • Lieferkettenrisiken – Nicht angeheftete Aktionen, Pakete oder Images von Drittanbietern oder Downloads ohne Integritätsprüfungen.

Aktivieren des KI-Scans

AI Scan ist standardmäßig nicht auf Unternehmensebene zulässig und auf Organisations- und Repositoryebene deaktiviert. Unternehmensbesitzer müssen AI Scan zulassen, bevor Organisationsadministratoren sie aktivieren können. Durch das Aktivieren des KI-Scans für eine Organisation wird er auf geeignete Repositories angewendet, in denen code scanning aktiviert ist. Repositoryadministratoren können sich für einzelne Repositorys abmelden. Für ein berechtigtes öffentliches Repository, das einem persönlichen Konto gehört, muss ein Repositoryadministrator die KI-Überprüfung direkt für das Repository aktivieren.

Sie müssen kein Modell auswählen, um AI Scan zu aktivieren.

  • Enterprise: Die KI-Scan-Richtlinie unter "Codesicherheit" steuert, ob Organisationen das Feature aktivieren können. Siehe Implementierung von Richtlinien zur Codesicherheit und -analyse für Ihr Unternehmen.
  • Organisation: Die Einstellung AI Scan unter „Code scanning“ aktiviert AI Scan für geeignete Repositories in der Organisation, in denen code scanning aktiviert ist. Siehe Konfigurieren globaler Sicherheitseinstellungen für Ihre Organisation.
  • Repository: Bei einem einer Organisation gehörenden Repository können Repository-Administratoren über den Umschalter AI Scan unter „Codescans“ die Teilnahme deaktivieren, wenn AI Scan für die Organisation aktiviert ist. Für ein qualifiziertes öffentliches Repository, das einem persönlichen Konto gehört, wird AI Scan mit dem Umschalter direkt aktiviert oder deaktiviert.

Sie können die REST-API verwenden, um die Organisations- oder Repositoryeinstellung ai-scan zu verwalten. Siehe REST-API-Endpunkte für die Codeüberprüfung.