Un développeur fusionne une pull request vendredi après-midi. Lundi matin, une revue de sécurité signale une faille d'injection SQL dans un nouveau point de terminaison. Lorsque vous demandez ce qui s'est passé, la réponse est : "Copilot a généré cette partie. Je ne l'ai pas vraiment lue."
Cette réponse est pire que le bug.
Le problème de sécurité avec le code généré par l’IA ne réside pas seulement dans le fait que les modèles peuvent produire des modèles non sécurisés. Le fait est que les équipes commencent à traiter le code expédié comme si la propriété pouvait être externalisée en même temps que la saisie. Les scanners, SAST et les audits de dépendances sont toujours importants, mais ils se situent en aval d'un échec plus fondamental : quelqu'un a fusionné du code qu'il ne comprenait pas. Si vous souhaitez sécuriser le code généré par l’IA, vous devez d’abord résoudre ce problème.
La génération de code IA est rapide. Cette vitesse crée un raccourci dangereux dans la tête du développeur : le code est apparu en quelques secondes, la tâche doit donc être presque terminée.
Ce n’est pas le cas.
Le code d'un LLM comporte des risques familiers, et il les présente souvent d'une manière qui semble suffisamment raffinée pour être fiable. Les données de formation contiennent des modèles non sécurisés : requêtes SQL basées sur des chaînes, flux d'authentification obsolètes, secrets codés en dur, politiques CORS permissives, validation faible et exemples copiés d'anciens articles de blog qui n'auraient jamais dû être mis en production. Le modèle ne connaît pas votre modèle de menace, vos limites de confiance ou quel point de terminaison est exposé à l’Internet public. Il ne sait pas que leContexte de base de donnéesil a suggéré de contourner les contrôles de limites de vos locataires ou que l'assistant qu'il a introduit ignore la politique d'autorisation que votre équipe utilise partout ailleurs.
L’histoire des tests n’est pas meilleure. Les tests générés par l’IA s’orientent vers des chemins heureux. Ils vérifient que le point de terminaison renvoie200 OKlorsque la demande est bien formée et que l'appelant est autorisé. Ils examinent rarement les entrées mal formées, l’élévation de privilèges, les échecs de concurrence, les conditions de concurrence ou les cas limites d’autorisation qui provoquent de véritables incidents. ...
[Courte citation de 8% de l'article original]