Remarque
Les détections de sécurité basées sur l’IA sont actuellement en cours préversion publique et sujettes à modification.
Les détections de sécurité basées sur l’IA sont des résultats de sécurité supplémentaires générés par un moteur d’analyse basé sur l’IA qui s’exécute sur les pull requests et complète CodeQL. Contrairement CodeQL aux alertes, les résultats basés sur l’IA sont disponibles uniquement sur les demandes de tirage et n’apparaissent pas en tant qu’alertes de backlog dans la vue de sécurité du référentiel.
Bien que CodeQL fournit une analyse statique haute précision pour un ensemble spécifique de langages et de requêtes pris en charge, de nombreux référentiels utilisent des langages et des frameworks qui CodeQL ne couvrent pas. Les détections basées sur l’IA étendent code scanning la couverture dans ces domaines, ce qui vous aide à trouver des vulnérabilités sans ajouter de nouveaux outils ou configuration.
Lors de préversion publique, les détections de sécurité basées sur l’IA nécessitent une licence GitHub Advanced Security et une licence GitHub Copilot.
L’utilisation consomme AI credits. Consultez « Facturation basée sur l’utilisation pour les organisations et les entreprises ».
Fonctionnement des détections de sécurité basées sur l’IA
Les détections de sécurité basées sur l’IA s’exécutent automatiquement sur les pull requests dans les dépôts où CodeQL la configuration par défaut est activée et où les détections basées sur l’IA ont été activées. L’analyse basée sur l’IA est déclenchée lors de la création d’une pull request et après chaque nouveau commit, comme CodeQL.
Les résultats générés par l’IA sont fournis à titre consultatif et n’empêchent pas la fusion des pull requests. Ils fournissent des signaux sur l’endroit où la sécurité du code peut être améliorée sans interrompre votre flux de travail.
Le moteur d’analyse par IA fonctionne directement avec le code de la pull request et ne nécessite pas de système de build. Il utilise des outils tels que la recherche de code pour collecter un contexte supplémentaire à partir du référentiel lorsque vous décidez s’il faut signaler un problème. Il utilise ses propres prompts spécifiques et n’utilise pas de fichiers d’instructions personnalisés tels que /.github/copilot-instructions.md ou /CLAUDE.md.
L’analyse par IA s’exécute quel que soit l’état de CodeQL. Si CodeQL l’installation par défaut échoue ou est dans un état d’attente, les détections basées sur l’IA s’exécutent toujours.
Les résultats sont publiés sur la pull request au fur et à mesure qu’ils sont détectés. Si l’analyse CodeQL prend plus de temps à se terminer, vous pouvez voir les résultats générés par l’IA avant les résultats CodeQL, ou inversement.
Comment les résultats s’affichent sur les pull requests
Les résultats basés sur l’IA apparaissent en même CodeQL temps que les alertes sous les onglets Conversation et Fichiers modifiés d’une demande de tirage. Chaque recherche basée sur l’IA est étiquetée avec un indicateur « IA » pour vous permettre de le distinguer des CodeQL alertes.
Chaque recherche comprend une description du problème de sécurité et une explication du risque. La plupart des résultats incluent également une correction suggérée, mais aucune recherche n’en a une. Lorsqu’une correction suggérée est disponible, Copilot correction automatique est incluse et fournit une modification de code recommandée pour résoudre le problème, de la même façon que pour CodeQL les alertes. Les résultats incluent également un mécanisme de commentaires haut/bas qui permet d’améliorer la qualité de la détection au fil du temps.
Limitations
- Les détections de sécurité basées sur l’IA analysent uniquement les pull requests. Les analyses de l’ensemble du dépôt ne sont pas prises en charge.
- Les résultats basés sur l’IA ne peuvent pas encore être utilisés dans les ensembles de règles pour appliquer les exigences de fusion
- Les catégories de détection et les langues prises en charge peuvent changer à mesure que la fonctionnalité évolue.
- Comme pour n’importe quel outil basé sur l’IA, les résultats peuvent inclure des faux positifs. Utilisez le mécanisme de commentaires pour signaler des résultats incorrects.
Langues prises en charge
Les détections de sécurité basées sur l’IA sont conçues pour couvrir les langages et les frameworks qui ne sont actuellement pas pris en charge par CodeQL. Cela inclut, mais n’est pas limité aux langages tels que PHP, Shell/Bash, Configuration Terraform (HCL) et Dockerfiles, ainsi que les lacunes de couverture de l’infrastructure telles que JSP pour Java et Blazor pour C#.
Pour obtenir la liste complète des langues prises en charge par CodeQL, consultez Analyse du code avec CodeQL.
Catégories de détection
Les détections de sécurité basées sur l’IA couvrent actuellement les catégories suivantes. Ces catégories décrivent la façon dont les résultats sont classés. Le scanneur IA peut évoluer au fil du temps à mesure que les modèles s’améliorent.
- Injection de chaînes de caractères — SQL, HTML, shell, JSON ou YAML construits de manière non sécurisée à partir de chaînes, avec un échappement ou un assainissement absent ou incorrect.
- Chiffrement faible : algorithmes faibles, petites clés, randomité non sécurisée, chiffrement manquant ou hachage de mot de passe faible.
- Contrôle d’accès rompu : traversée de chemin, lacunes CSRF ou redirections ouvertes pilotées par l’utilisateur.
- Exposition des données sensibles : secrets, jetons, mots de passe ou traces de pile stockés, enregistrés ou envoyés sans protection adéquate.
- Configuration incorrecte de la sécurité : paramètres ou valeurs par défaut risqués, tels que la désactivation des contrôles de sécurité ou l’activation des fonctionnalités de débogage.
- Échecs d’authentification — Absence de TLS ou de validation, flux d’authentification non sécurisés ou absence de limitation du nombre de requêtes.
- Échecs d’intégrité des données : désérialisation non sécurisée, HTTP pour les actions sensibles, pollution prototype ou exécution de contenu non approuvé.
- Falsification de requête côté serveur (SSRF) : le serveur récupère des URL contrôlées par l’attaquant, des hôtes ou des protocoles.
- Risques liés à la chaîne d’approvisionnement — Actions, paquets ou images tiers non épinglés, ou téléchargements sans contrôle d’intégrité.
Activation des détections de sécurité optimisées par l’IA
Les détections de sécurité basées sur l’IA ne sont pas autorisées au niveau de l’entreprise par défaut et désactivées au niveau de l’organisation et du référentiel. Les administrateurs d’entreprise doivent explicitement autoriser la fonctionnalité avant que les organisations puissent l’activer. Les administrateurs de l’organisation doivent choisir explicitement la fonctionnalité. Les administrateurs de référentiel peuvent refuser la fonctionnalité. En outre, vous devez activer la CodeQL configuration par défaut.
Vous n’avez pas besoin de sélectionner un modèle pour activer les détections de sécurité basées sur l’IA.
- Entreprise : la stratégie Résultats de l’IA sous « Sécurité du code » contrôle si les organisations peuvent activer la fonctionnalité. Consultez « Application de stratégies de sécurité et d’analyse du code pour votre entreprise ».
- Organisation : le paramètre des résultats de l’IA sous « Analyse du code » permet de détecter les dépôts basés sur l’IA dans l’organisation. Consultez « Configuration des paramètres de sécurité globaux pour votre organisation ».
- Dépôt : le bouton bascule Résultats de l’IA sous « Analyse du code » active ou désactive les détections basées sur l’IA pour le dépôt individuel. Les dépôts héritent du paramètre défini au niveau de l’organisation, mais peuvent le désactiver individuellement.