CodeQL
devsecopsDéfinition
CodeQL est un moteur d'analyse de code sémantique développé par GitHub (acquis via Semmle en 2019), qui se distingue des SAST classiques par son approche : le code source est traité comme une base de données interrogeable via un langage de requêtes spécialisé, permettant aux équipes de sécurité d'écrire leurs propres règles d'analyse sous forme de requêtes déclaratives. Le principe fondamental de CodeQL est la transformation du code source en une base de données relationnelle représentant la structure du programme : classes, méthodes, flux de données, graphes de contrôle de flux, et relations entre éléments syntaxiques. Des requêtes CodeQL (fichiers .ql) interrogent ensuite cette base pour identifier des patterns de vulnérabilités, similairement à des requêtes SQL sur une base de données. Cette approche permet une flexibilité d'analyse que les outils à base de règles fixes ne peuvent pas atteindre. CodeQL supporte C/C++, C#, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, Go, et Swift. Il est disponible gratuitement pour les projets open source via GitHub Code Scanning, et en version entreprise via GitHub Advanced Security. La bibliothèque de requêtes standard couvre les CVE connues, OWASP Top 10, et CWE Top 25. Des centaines de requêtes supplémentaires sont disponibles dans des dépôts communautaires. L'un des cas d'usage les plus puissants de CodeQL est la recherche de variantes de vulnérabilités. Après la découverte d'une CVE dans un projet open source, les équipes de sécurité écrivent une requête CodeQL capturant le pattern de la vulnérabilité et la ré-appliquent sur l'ensemble de leur codebase pour identifier des patterns similaires. GitHub a utilisé cette approche pour identifier des centaines de variantes de Log4Shell (CVE-2021-44228) dans des projets tiers. L'intégration de CodeQL dans les workflows GitHub Actions est native et gratuite pour les dépôts publics. Pour les organisations GitHub Enterprise, GitHub Advanced Security inclut CodeQL avec une interface de gestion centralisée des alertes. Les résultats sont exportables en format SARIF pour intégration dans d'autres plateformes de sécurité.
Architecture : le code comme base de données
CodeQL extrait une représentation sémantique du code sous forme de base de données relationnelle (tables de classes, méthodes, expressions, flux de données). Les requêtes .ql interrogent ces tables avec un langage déclaratif orienté objet, permettant de formuler des patterns complexes impossibles à exprimer dans des règles statiques classiques. Cette approche rend CodeQL particulièrement adapté à la recherche de variantes de vulnérabilités.
Écrire des requêtes CodeQL personnalisées
Une requête CodeQL typique définit des sources (entrées utilisateur), des sinks (fonctions dangereuses) et des sanitizers (fonctions de validation), puis applique une analyse de flux de données pour identifier les chemins non sécurisés. Le CodeQL Pack system facilite le partage de bibliothèques et requêtes entre équipes. Des kits de démarrage existent pour les patterns OWASP Top 10 dans chaque langage supporté.
Intégration GitHub Actions et GHAS
Pour les dépôts GitHub, CodeQL s'intègre via le workflow code-scanning-action en deux étapes : initialisation (création de la base de données) et analyse (exécution des requêtes). Les résultats apparaissent dans l'onglet Security de GitHub avec une interface de triage intuitive. GitHub Advanced Security ajoute la gestion centralisée multi-dépôts, les métriques de couverture et les alertes de dépendances enrichies.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés. 2.1.7
Un projet cybersécurité ?
Expert dispo · Réponse 24h