Skip to main content
Skip to content

Analyse par l’IA des pull requests

AI Scan utilise un moteur d’analyse basé sur l’IA pour rechercher des vulnérabilités de sécurité dans les demandes de tirage (pull request) pour les langages et les frameworks non couverts par CodeQL.

Remarque

AI Scan est actuellement en préversion publique et est susceptible d’être modifiée.

AI Scan produit des détections de sécurité supplémentaires grâce à un moteur d’analyse basé sur l’IA qui s’exécute sur les pull requests et complète CodeQL. Contrairement aux alertes CodeQL, les résultats d’AI Scan sont uniquement disponibles dans les pull requests et ne s’affichent pas comme alertes de suivi dans la vue Sécurité du dépôt.

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. AI Scan étend la code scanning 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, AI Scan nécessite 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 ».

Comment fonctionne AI Scan

AI Scan s’exécute automatiquement lorsque code scanning est activé pour un dépôt, que le paramètre effectif d’AI Scan pour ce dépôt est activé et qu’une pull request admissible contient des modifications admissibles dans un langage ou un framework pris en charge que CodeQL ne couvre pas. Ces conditions déterminent également quand l’utilisation de l’analyse IA commence. L’analyse est déclenchée lors de la création de la pull request et après chaque nouveau commit, comme pour CodeQL.

AI Scan ne nécessite CodeQL pas de configuration par défaut et ne dépend pas de l’état d’analyse CodeQL . Si CodeQL l’analyse échoue ou est dans un état d’attente, AI Scan s’exécute toujours.

Les résultats de l’analyse IA sont fournis à titre indicatif et ne bloquent 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.

Les résultats sont publiés sur la pull request au fur et à mesure qu’ils sont détectés. Si l’analyse CodeQL met plus de temps à se terminer, il se peut que vous voyiez les résultats de l’analyse IA avant que les résultats CodeQL n’apparaissent, ou inversement.

Comment les résultats d’AI Scan apparaissent sur les pull requests

Les résultats de l’analyse par IA apparaissent à côté des alertes CodeQL dans les onglets Conversation et Fichiers modifiés d’une pull request. Chaque recherche 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 Autofix 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

  • AI Scan analyse uniquement les pull requests. Les analyses de l’ensemble du dépôt ne sont pas prises en charge.
  • Les résultats de l’analyse IA ne peuvent pas encore être utilisés dans les ensembles de règles pour appliquer les exigences de fusion.
  • AI Scan ne s’exécute pas sur les demandes d’extraction issues de forks ni sur les demandes d’extraction créées par Dependabot.
  • 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 de l’analyse IA peuvent inclure des faux positifs. Utilisez le mécanisme de commentaires pour signaler des résultats incorrects.

Langues prises en charge

AI Scan est conçu 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

Ai Scan couvre actuellement les catégories suivantes. Ces catégories décrivent la façon dont les résultats sont classés. Le moteur d’analyse 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 de l’analyse par IA

L’analyse IA n’est pas autorisée au niveau de l’entreprise par défaut et désactivée au niveau de l’organisation et du référentiel. Les propriétaires d’entreprise doivent autoriser l’analyse IA avant que les administrateurs de l’organisation puissent l’activer. L’activation de l’analyse par IA pour une organisation l’active pour les dépôts éligibles où code scanning est activé. Les administrateurs de référentiels peuvent refuser les dépôts individuels. Pour un référentiel public éligible appartenant à un compte personnel, un administrateur de référentiel doit activer AI Scan directement pour le référentiel.

Vous n’avez pas besoin de sélectionner un modèle pour activer l’analyse IA.

  • Entreprise : la stratégie d’analyse 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 Analyse IA sous « Analyse du code » active l’analyse IA pour les référentiels éligibles dans l’organisation où code scanning elle est activée. Consultez « Configuration des paramètres de sécurité globaux pour votre organisation ».
  • Dépôt : pour un dépôt appartenant à une organisation, l’option Analyse IA pour les demandes de tirage, sous « Analyse du code », permet aux administrateurs du dépôt de désactiver cette fonctionnalité lorsque l’analyse IA est activée pour l’organisation. Pour un dépôt public éligible appartenant à un compte personnel, le bouton permet d’activer ou de désactiver directement AI Scan.

Vous pouvez utiliser l’API REST pour gérer le paramètre de l’organisation ou du référentiel ai-scan . Consultez « Points de terminaison d’API REST pour l’analyse de codes ».