🤖 24 AI
🟢 🛡️ Sicherheit Mittwoch, 22. April 2026 · 2 Min. Lesezeit

GitHub CodeQL erhält deklarative Sanitizer und Validatoren — ohne QL-Code

Redaktionelle Illustration: Digitale Festung mit Schlössern für 8 Programmiersprachen schützt Code vor Schwachstellen

Warum es wichtig ist

GitHub hat in CodeQL 2.25.2 die deklarative Definition von Sanitizern und Validatoren über YAML ermöglicht, ohne QL-Code schreiben zu müssen. Acht Sprachen werden unterstützt (C/C++, C#, Go, Java/Kotlin, JS/TS, Python, Ruby, Rust), was statische Sicherheitsanalyse für Teams ohne QL-Experten demokratisiert.

GitHub CodeQL erhält deklarative Sanitizer und Validatoren — ohne QL-Code

GitHub hat den Models-as-Data-Ansatz in CodeQL Version 2.25.2 um eine neue Funktion erweitert, die die Definition von Sanitizern und Validatoren über YAML ermöglicht, ohne Abfragen in der QL-Sprache schreiben zu müssen.

Was sind Sanitizer und Validatoren?

Sanitizer sind Funktionen, die Eingabedaten von potenziell gefährlichen Inhalten bereinigen — beispielsweise das Entfernen von HTML-Tags vor der Ausgabe. Validatoren sind Funktionen, die ein boolesches Ergebnis zurückgeben und signalisieren, ob Daten für die weitere Verarbeitung sicher sind. In der CodeQL-Terminologie werden Sanitizer als Barriers (Unterbrechungen des Flusses verseuchter Daten) modelliert und Validatoren als Barrier Guards (bedingte Unterbrechungen). Bisher mussten Teams eigene QL-Abfragen schreiben, damit CodeQL ihre internen Sicherheitsfunktionen erkennt. Die neuen erweiterbaren Prädikate barrierModel und barrierGuardModel können jetzt über ein YAML-Modellpaket befüllt werden.

Unterstützte Sprachen und praktischer Einfluss

Die Funktion deckt acht Programmiersprachen ab: C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby und Rust. Für jede Sprache kann ein Team eigene Eingaben, Ausgaben und Bedingungen definieren, ohne tiefe Kenntnisse von QL. GitHub beschreibt diese Verschiebung als Demokratisierung der statischen Sicherheitsanalyse. Organisationen, die eigene Hilfsfunktionen zum Escapen von SQL-Abfragen, zur Bereinigung von HTML oder zur Validierung von JWT-Tokens haben, können diese Muster jetzt dem Standard-CodeQL-Scanner über einen Pull Request in ihrem Modellpaket-Repository hinzufügen.

Wer sollte das ausprobieren?

Es wird erwartet, dass dies vor allem Sicherheitsteams nützt, die in größeren Monorepos mit internen Sicherheitsbibliotheken arbeiten, sowie Open-Source-Betreuer, die ihre Utility-Funktionen abdecken möchten. Die Funktion ist mit CodeQL 2.25.2 vom April 2026 verfügbar. Für kleine Teams, die bereits GitHub Advanced Security nutzen, ist dies eine risikoarme Möglichkeit, die Abdeckung ohne den Einsatz eines QL-Spezialisten zu erweitern. Ein typischer Anwendungsfall ist eine Organisation, die eine eigene Funktion zum Escapen von Benutzereingaben vor SQL-Abfragen geschrieben hat. Ohne diese Erweiterungen würde CodeQL weiterhin falsch positive SQL-Injection-Warnungen melden, obwohl die Daten tatsächlich sicher sind. Durch Hinzufügen eines YAML-Eintrags zum Modellpaket werden diese Falschmeldungen eliminiert und die Analyse bleibt über Pull Requests hinweg konsistent. Dokumentation und Beispiele für YAML-Erweiterungen sind im offiziellen CodeQL-Repository verfügbar, und GitHub kündigt weitere Erweiterungen durch vierteljährliche Updates an.

🤖

Dieser Artikel wurde mithilfe von künstlicher Intelligenz aus Primärquellen erstellt.