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