L’analyse IA pour les pull requests génère des résultats de sécurité supplémentaires avec un moteur d’analyse basé sur l’IA qui s’exécute sur des 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.
AI Scan étend code scanning la couverture sans nécessiter d’outil d’analyse distinct ou de configuration de build.
Availability
La disponibilité dépend de la personne qui possède le référentiel et de sa visibilité.
| Propriétaire du dépôt | Visibilité | Disponibilité et prérequis |
|---|---|---|
| Organisation | Publique | Disponible sans licence de contributeur actif |
| Organisation | Privé ou interne | Disponible avec GitHub Code Security ou GitHub Advanced Security |
| Compte personnel | Publique | Available |
| Compte personnel | Privé | Non disponible |
L’analyse IA pour les pull requests n’est pas disponible pour les dépôts dans l’espace de noms personnel de compte d’utilisateur managé, même si code scanning elle est activée pour le dépôt.
Vous n’avez pas besoin d’une GitHub Copilot licence pour utiliser AI Scan.
Billing
L’utilisation de l’analyse IA est distincte des licences des contributeurs actifs et est signalée sous la référence SKU Crédits IA Code Security. L’utilisation commence uniquement lorsqu’une pull request éligible est analysée.
Pour les dépôts appartenant à l’organisation, l’utilisation est facturée au compte responsable de la facturation de l’organisation.
Pour les référentiels publics appartenant à un compte personnel, l’utilisation est facturée à ce compte personnel, sauf si le propriétaire du référentiel dispose d’une GitHub Copilot licence fournie par une organisation ou une entreprise. Dans ce cas, l’utilisation est facturée à l’organisation ou à l’entreprise qui fournit la licence.
Si le compte de facturation reçoit des crédits inclus via un droit d’utilisation AI creditsGitHub Copilot, AI Scan utilise d’abord ces crédits. Une fois les crédits inclus épuisés ou si le compte n’a pas de crédits inclus, l’utilisation est mesurée et régie par les budgets applicables. Si un budget strict ne laisse aucun crédit d’IA Code Security disponible, AI Scan ne peut pas produire de résultats. L’analyse reprend lorsqu’un administrateur augmente le budget de limitation ou qu’un nouveau cycle de facturation commence.
Pour plus d’informations sur le modèle de facturation, consultez GitHub Advanced Security facturation des licences.
Comment fonctionne AI Scan
Ai Scan s’exécute automatiquement lorsque toutes les conditions suivantes sont remplies :
- Code scanning est activé pour le référentiel.
- Le paramètre d’analyse IA du référentiel sur les pull requests est activé.
- Une pull request qui ne provient pas d’un fork et n’est pas créée par Dependabot contient des modifications dans un langage ou un framework pris en charge que CodeQL ne couvre pas.
Les analyses s’exécutent lorsqu’une pull request est créée et après chaque nouvelle validation, comme elles le font 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 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.
Les résultats sont fournis à titre consultatif. Ils ne sont pas en échec à la Code scanning vérification et ne peuvent pas bloquer les fusions de pull request par le biais des exigences de l’ensemble de règles. 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 analyse le code de demande de fusion sans nécessiter de système de build et peut utiliser la recherche de code pour collecter davantage de contexte à partir du référentiel avant de signaler un problème. Il utilise des invites spécialisées, et non des fichiers d’instructions personnalisés tels que /.github/copilot-instructions.md ou /CLAUDE.md.
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 constat décrit le problème de sécurité et explique le risque. La plupart des constats incluent également une mesure corrective suggérée. Lorsqu’il est disponible, Copilot Autofix recommande une modification de code, comme il le fait pour les alertes CodeQL.
Vous pouvez utiliser les pouces vers le haut ou le contrôle pouce vers le bas pour fournir des commentaires et améliorer la qualité de la détection.
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 prend en charge les langages et frameworks sélectionnés que CodeQL ne couvre pas actuellement. Par exemple, PHP, Shell/Bash, Configuration Terraform (HCL), Dockerfiles, JSP pour Java et Blazor pour C#.
Pour vérifier si CodeQL prend en charge une langue, consultez Analyse du code avec CodeQL.
Catégories de détection
AI Scan classe actuellement les résultats dans les catégories suivantes. La couverture peut changer à mesure que la fonctionnalité évolue.
- 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
Avant d’activer l’analyse IA sur les pull requests pour une organisation, confirmez l’éligibilité du dépôt, passez en revue le quota inclus du compte de facturation AI credits et configurez les budgets pour l’utilisation facturée à l’usage.
L’activation du paramètre d’organisation active immédiatement l’analyse IA pour tous les référentiels éligibles où code scanning est activé. Les administrateurs de référentiel peuvent ensuite se désinscrire, mais les pull requests éligibles peuvent consommer des crédits IA de sécurité du code avant qu’ils ne le fassent.
Vous n’avez pas besoin de sélectionner un modèle pour activer l’analyse IA.
- Enterprise : les propriétaires d’entreprise peuvent autoriser ou empêcher les organisations d’activer AI Scan. La politique est définie sur « Non autorisée » par défaut. L’autorisation d’AI Scan ne l’active pas automatiquement. Consultez « Application de stratégies de sécurité et d’analyse du code pour votre entreprise ».
- Organisation : les propriétaires d’organisations et les gestionnaires de sécurité peuvent activer l’analyse IA pour les pull requests pour les dépôts éligibles. Les dépôts héritent du paramètre de l’organisation. Consultez « Configuration des paramètres de sécurité globaux pour votre organisation ».
- Dépôt appartenant à l’organisation : les personnes disposant d’un accès administrateur au dépôt peuvent se désinscrire lorsque l’organisation a activé AI Scan. Ils ne peuvent pas s’inscrire lorsque le paramètre de l’organisation est désactivé.
- Dépôt public appartenant à un compte personnel : les personnes disposant d’un accès administrateur au dépôt activent ou désactivent l’analyse IA directement à l’aide de l’analyse IA pour les pull requests sous « Code scanning ».
Les propriétaires de l’organisation et les gestionnaires de sécurité peuvent passer en revue l’état d’activation efficace d’AI Scan pour les pull requests dans la vue « Couverture » de l’aperçu de sécurité. Consultez « Évaluation de l’adoption des fonctionnalités de sécurité ».
Les personnes ayant accès à la vue d’ensemble de la sécurité peuvent également surveiller les résultats de l’analyse IA au sein d’une organisation ou d’une entreprise :
- L’onglet Prévention du tableau de bord vue d’ensemble présente les tendances dans les résultats de l’analyse IA, le nombre de résultats résolus et la fréquence à laquelle les développeurs ont accepté une Copilot Autofix suggestion.
- L’onglet AI Scan du rapport « Analyse du code sur les pull requests » affiche les détections au fil du temps, la disponibilité des Copilot Autofix suggestions, ainsi que les résultats des détections avec et sans suggestions.
Pour plus d’informations, consultez « Analyse du code sur les demandes de fusion ».
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 ».