Большая часть программного обеспечения полна ошибок, и ИИ теперь может легко их находить и использовать. Стандартных средств защиты от кибератак уже недостаточно, поэтому разработчикам нужны способы доказать, что код не содержит ошибок. Формальная верификация ПО могла бы дать такую гарантию, но исторически она требовала многолетних усилий экспертов, и поэтому была непрактичной для большинства реальных проектов.
В сотрудничестве с Theorem исследователи показывают, что ситуация меняется. LLM теперь способны создавать формальные доказательства в больших масштабах, что открывает новые процессы разработки с доказанными гарантиями безопасности. С помощью Claude команда доказала свойства безопасности на уровне ассемблерного кода (RISC-V) для более чем 100 реальных библиотек с открытым исходным кодом. Насколько им известно, это первая крупномасштабная попытка использовать ИИ для применения формальной верификации к промышленному программному обеспечению на таком уровне. Работая над доказательствами, Claude также выявил ошибки, которые годами ускользали от обнаружения, несмотря на триллионы запусков тестов.
Подход опирается на давно известный метод: разработчики переводят код в математическую модель и пытаются доказать, что он всегда следует определённым правилам безопасности. Неудачные доказательства указывают на вероятные ошибки. Традиционно доказательства могут во много раз превышать объём исходного кода и требуют редких специализированных навыков. Создание ядра seL4 заняло два человеко-года, а его верификация — 20.
Для проверки подхода Claude доказал, что 123 программы с открытым исходным кодом всегда завершаются нормально, без ошибок безопасности памяти и невыполненных утверждений, для любых входных данных размером менее 64 МБ, при заявленных допущениях о среде выполнения. Исследователи признают, что это far от исправления всех возможных ошибок, но считают, что это даёт дорожную карту. Часть доказательств публикуется, чтобы другие могли их проверять и повторно использовать.
Источник: Hacker News · Сводку подготовил HeadlinesBriefing