La société Anthropic a présenté les résultats d'expériences sur l'utilisation de modÚles d'IA pour la vérification formelle de la fiabilité et de la sécurité des projets existants. Au cours de l'expérience, des preuves mathématiques de l'absence d'erreurs de gestion de la mémoire ont été générées à l'aide de modÚles d'IA pour 123 bibliothÚques open source testées dans l'infrastructure OSS Fuzz.
La vérification a été effectuée au niveau du code assembleur compilé pour l'architecture RISC-V. Le volume total des preuves générées a atteint environ 180 millions de lignes de code pour le systÚme de vérification Rocq Prover (environ 600 000 lignes pour un fichier binaire avec 18 000 instructions RISC-V). Les preuves ont été établies par la conversion automatique des tests fuzzing existants en spécifications formelles, aprÚs quoi le modÚle d'IA Claude a prouvé qu'aucun plantage ne se produit dans le programme avec n'importe quelle entrée allant jusqu'à 64 Mo.
Dans le processus de construction des preuves, le modÚle d'IA a pu identifier et préparer des corrections pour des centaines d'erreurs qui n'avaient pas été remarquées lors des tests fuzzing. Parmi celles-ci, des vulnérabilités entraßnant un dépassement de tampon lors du traitement de certaines entrées (par exemple, CVE-2026-56132 dans libexpat), ainsi que des erreurs logiques. De plus, le modÚle d'IA a été utilisé pour prouver que l'implémentation de l'algorithme zlib dans le noyau Linux est conforme à la spécification RFC 1950.
Un interprĂ©teur pour un sous-ensemble du langage Python a Ă©galement Ă©tĂ© gĂ©nĂ©rĂ© en Rust, pour lequel une preuve formelle de conformitĂ© Ă la sĂ©mantique de CPython a Ă©tĂ© prĂ©parĂ©e Ă l'aide des outils Verus. Pour comparer le comportement avec CPython, plus de 1,7 million de programmes Python gĂ©nĂ©rĂ©s alĂ©atoirement ont Ă©tĂ© exĂ©cutĂ©s. Dans 99,95 % des cas, les rĂ©sultats d'exĂ©cution de ces programmes dans la nouvelle implĂ©mentation et dans CPython ont Ă©tĂ© identiques, et les divergences observĂ©es se sont rĂ©vĂ©lĂ©es ĂȘtre des cas limites connus.
La vérification formelle réalisée garantit la conformité aux spécifications, mais n'exclut pas totalement l'émergence de problÚmes de sécurité, car les risques liés à la concurrence, au liage dynamique et au comportement anormal du matériel réel ne sont pas formalisés. L'avantage clé de l'approche proposée réside dans le travail direct avec les fichiers binaires, ce qui permet de se passer de la nécessité de réécrire le code existant dans des langages formellement vérifiables.
Source : opennet.ru
