Команда российских и казахстанских учёных объявила о создании системы искусственного интеллекта для поиска уязвимостей в программном коде, которая, как утверждается, намного быстрее справляется со своими задачами по сравнению с существующими методиками.
«Работа вносит весомый вклад в развитие технологий на стыке искусственного интеллекта и кибербезопасности, предлагая эффективный инструмент для поиска уязвимостей цифровой инфраструктуры. В эпоху цифровой трансформации подобные технологии становятся стратегически важными для защиты данных клиентов и бизнес-процессов бизнеса», — прокомментировал разработку директор Центра практического искусственного интеллекта Сбербанка Глеб Гусев, чьи слова приводит пресс-служба Сбера.
Традиционно для проверки безопасности программного обеспечения разработчики используют статические анализаторы — специальные алгоритмы, которые тщательно проверяют исходный код на соответствие стандартам и выявляют уязвимости. Однако такие системы требуют значительных ресурсов и времени, что подталкивает специалистов к поиску альтернативных решений.
Исследователи из Центра практического искусственного интеллекта Сбербанка совместно с коллегами из России и Казахстана предложили новый подход: они использовали большую языковую модель, адаптированную для программирования, чтобы ускорить и упростить поиск ошибок в коде. В качестве основы была взята нейросеть WizardCoder, которую дообучили, используя тщательно отобранные примеры с гарантированными ошибками. Такой подход позволил повысить качество обучающих данных и подобрать оптимальный объем информации для одного шага обучения, что ускорило процесс примерно в 13 раз.
Для проверки эффективности новой системы ученые подготовили специальный набор фрагментов кода на языке Java, где уязвимости были размечены максимально точно. Результаты тестирования показали, что дообученная модель ИИ выявляет уязвимости на 4–5% лучше существующих аналогов при работе с простыми примерами и на целых 22% — при анализе сложных фрагментов. Это серьезный шаг вперед по сравнению с классическими и современными ИИ-инструментами для анализа кода.
Авторы исследования уверены, что такие системы на базе больших языковых моделей способны существенно повысить безопасность программного обеспечения и ускорить процесс поиска ошибок. Это открывает новые перспективы для развития инструментов автоматического анализа кода и может стать стандартом для индустрии в ближайшие годы.