• Добавить в закладки
  • Facebook
  • Twitter
  • Telegram
  • VK
  • Печать
  • Email
  • Скопировать ссылку
18.12.2025, 14:29
ФизТех
335

Российские ученые научили нейросети писать безопасный код

❋ 4.8

Команда исследователей из Института системного программирования им. В. П. Иванникова РАН (ИСП РАН), МФТИ, НИУ ВШЭ, РТУ МИРЭА и Института AIRI представила новый подход взаимодействия с ИИ-помощниками разработчика, направленный на снижение количества дефектов в коде. Ученые разработали систему, способную писать программы, самостоятельно находить и исправлять в них ошибки.

Робот решает задачу / © ИИ-генерация, GigaChat

Современная ИТ-отрасль переживает тектонический сдвиг: благодаря распространению генеративных помощников вроде ChatGPT или Copilot, программы создают не только опытные разработчики, но и новички, а также пользователи без профильной подготовки. В феврале 2025 года издание Business Insider описало новый термин вайб-кодинг (от английского vibe coding) — когда человек описывает свою идею, а нейросеть ее реализует. Однако у такой популярности есть и обратная сторона — рост числа киберугроз.

Языковые модели, обученные на огромных массивах интернет-данных, воспроизводят не только правильные решения, но и типичные ошибки, включая опасные уязвимости. Исследования показывают, что до 40% кода, сгенерированного искусственным интеллектом, содержит дефекты безопасности, которые часто остаются незамеченными, особенно начинающими программистами. В результате появляются программные продукты, заведомо уязвимые для хакерских атак и утечек данных.

Чтобы разорвать этот порочный круг, объединенный научный коллектив обратился к проверенным инструментам повышения качества — статическому анализу. Если представить нейросеть как талантливого, но невнимательного студента, то статический анализатор выступает в роли строгого преподавателя, который не пропускает ни одной запятой и указывает на логические ошибки. В центре предложенного подхода инструмент Svace — мощный промышленный анализатор, способный находить дефекты в коде без его запуска. Ученые разработали систему, в которой «творческий порыв» нейросети мгновенно проверяется алгоритмической «совестью» анализатора. Результаты работы опубликованы в журнале «Труды ИСП РАН».

В статье приведен характерный пример. Модель получает обратную связь (например, «переменная не инициализирована») и успешно дописывает недостающие строки. В примере сначала код создается моделью на основе промпта: «Напиши функцию на Python, которая принимает список чисел и возвращает сумму всех положительных чисел в этом списке. Если список пустой, функция должна возвращать 0». Затем исправление происходит с помощью нового промпта: «Исправь предыдущее решение с учетом замечания: неопределенная переменная ‘total’ в строке 10. Напиши итоговый код». После использования второго промпта языковая модель исправила решение.

Пример исправления ошибки в коде, сгенерированном с помощью LLM: инициализация переменной для корректного выполнения функции / © Труды Института системного программирования РАН. 2025;37(5):111-122

Целью исследования была разработка механизма взаимодействия, при котором языковая модель не только получала бы уведомление об ошибке, но и училась на нем. Для этого авторы дообучили модель с использованием метода прямой оптимизации предпочтений (от английского Direct Preference Optimization, DPO). Суть метода заключается в тренировке нейросети на примерах: ей показывают «плохой» код с ошибкой и «хороший», исправленный вариант. Модель развивает интуицию, заставляющую избегать небезопасные конструкции еще на этапе генерации.

Сравнение исходного и модифицированного кода, сгенерированного с помощью LLM, с предупреждающим анализом статического анализатора Svace / © Труды Института системного программирования РАН. 2025;37(5):111-122

Кроме того, исследователи создали специализированный набор MultiEval, собранный из реальных задач, на которых нейросети чаще «спотыкаются», чтобы оценивать прогресс максимально объективно.

Результаты экспериментов оказались успешными: дообучение модели в сочетании с итеративным исправлением ошибок позволила снизить частоту появления дефектов, включая критические уязвимости и синтаксические сбои, на 20%. Система работает циклично: нейросеть пишет фрагмент кода, анализатор Svace проверяет и, если находит проблему, возвращает код обратно с подробным описанием ошибки. Модель, получив эту подсказку, переписывает код. Оказалось, что даже самые сложные модели, такие как CodeLlama или Mistral, начинают выдавать практически безупречный результат после двух-трех таких итераций.

Данил Шайхелисламов, исследователь ИСП РАН, аспирант кафедры системного программирования МФТИ, рассказал о деталях процесса: «Мы обнаружили, что недостаточно указать на ошибку — важно научить модель не повторять их. Наш подход, сочетающий обучение с подкреплением и обратную связь анализатора, позволяет модели не просто «зазубривать» правильные ответы, а вырабатывать навыки защитного программирования. Это похоже на тренажер, где нейросеть тренируется писать код, который не стыдно показать даже самому строгому аудитору безопасности».

В решении соединились вероятностная природа нейросетей и детерминированная логика статического анализа. Ранние попытки объединить эти подходы сталкивались с тем, что исправление одной ошибки приводило к появлению другой, нарушая логику программы. Однако использование метода DPO позволило стабилизировать процесс: модель научилась вносить точечные правки, сохраняя общую функциональность кода. Более того, исследователи выяснили, что комбинирование инструментов анализа дает кумулятивный эффект, повышая безопасность решения почти до 100%. Внедрение подобных систем автоматизирует рутинные проверки безопасности и снизит нагрузку на разработчиков. Им останется сосредоточиться на архитектурных задачах.

Кроме того, предложенный метод страхует менее опытных программистов от внедрения скрытых дефектов. Это особенно актуально для создания критически важных систем, где цена программной ошибки слишком высока.

В будущем научный коллектив планирует расширить спектр поддерживаемых языков программирования и интегрировать больше инструментов верификации. Это позволит создать полноценный «цифровой иммунитет» для ИИ-помощников, сделав программное обеспечение будущего надежнее и безопаснее.

Нашли опечатку? Выделите фрагмент и нажмите Ctrl + Enter.
Московский физико-технический институт (национальный исследовательский университет), известен также как Физтех — ведущий российский вуз по подготовке специалистов в области теоретической, экспериментальной и прикладной физики, математики, информатики, химии, биологии и смежных дисциплин. Расположен в городе Долгопрудном Московской области, отдельные корпуса и факультеты находятся в Жуковском и в Москве.
Подписывайтесь на нас в Telegram, Яндекс.Новостях и VK
Предстоящие мероприятия
29 апреля, 13:04
Александр Березин

Релиз довольно неожиданно перенес время образования протонов и нейтронов в более раннее прошлое Вселенной. К сожалению, из его текста осталось неясным научное обоснование таких фундаментальных изменений в космологии. Также он резко передвинул в прошлое и момент возникновения реликтового излучения.

29 апреля, 14:23
Игорь Байдов

Ученые, похоже, приблизились к разгадке происхождения пшеницы мягкой — той самой, из которой делают большую часть хлеба и другие мучные изделия. Согласно авторам нового исследования, она, предположительно, появилась 8000 лет назад на территории современной Грузии и Армении.

30 апреля, 13:25
СГМУ им. В.И. Разумовского

Сегодня все больше людей задумываются о здоровье и эстетике улыбки уже во взрослом возрасте. Если раньше ортодонтическое лечение ассоциировалось в основном с подростками, то теперь установка брекетов после 30 лет стала обычной практикой. По словам доцента кафедры стоматологии детского возраста и ортодонтии Анастасии Егоровой, современная ортодонтия позволяет добиться идеальной улыбки в любом возрасте, и все больше взрослых пациентов обращаются к специалистам за помощью.

24 апреля, 09:58
Максим Абдулаев

Палеонтологи описали новый вид хищного клопа из мелового периода, передние лапы которого эволюционировали в клешни-пинцеты. Подобная анатомическая трансформация стала лишь четвертым задокументированным случаем за всю историю насекомых. Ископаемый вид получил название в честь корейской поп-группы Stray Kids из-за характерного положения застывших в смоле конечностей.

24 апреля, 13:28
Татьяна Зайцева

Спустя два с половиной года после того, как подводный аппарат обнаружил на дне залива Аляска загадочный «золотой шар», ученым, наконец, удалось разобраться в природе этого объекта. Они пришли к выводу, что это отброшенная часть оболочки или основания гигантской глубоководной актинии.

27 апреля, 16:43
Александр Березин

Поставщик элементов окололунной станции попытался сдать клиентам изделия, подвергшиеся коррозии еще до начала его монтажа. Об этом заявил новый глава NASA Джаред Айзекман. Защищая свою позицию, поставщик сообщил, что ранее он поставлял модули с коррозией для МКС, но они все равно до сих пор работают. NASA использует скандал для отказа от алогичного проекта Lunar Gateway, обитаемой космической станции на окололунной орбите.

23 апреля, 18:34
Александр Березин

В последнее время пуски с российских северных космодромов осуществляют без предварительного уведомления, чего не было в прошлом. Вероятно, дело в недавно упомянутых главой «Роскосмоса» атаках на Плесецк во время пуска. Сегодняшний запуск обеспечил вывод на орбиту космических аппаратов военного назначения.

5 апреля, 15:48
Александр Березин

Четыре человека, летящие к Луне, столкнулись с целым рядом мелких неприятностей — от низкой температуры в начале работы до поломки мочевыводящей системы туалета на вторые сутки и необходимости взамен пользоваться пакетами. К счастью, пока самые крупные сложности удалось компенсировать. Но все они вместе могут сдвинуть ситуацию к решению, о котором Naked Science уже говорил в нашем видеоподкасте о миссии: не исключено, что при высадке астронавтов на Луне их корабль состыкуют со Starship не на окололунной, а уже на околоземной орбите.

10 апреля, 10:51
Татьяна Зайцева

Когда международная экспедиционная группа, исследующая море Уэдделла в Антарктиде на борту ледокола «Поларштерн», попыталась укрыться от шторма, ученые и экипаж судна удивились внезапному появлению острова, не обозначенного ни на одной морской карте.

[miniorange_social_login]

Комментарии

Написать комментарий
Подтвердить?
Подтвердить?
Причина отклонения
Подтвердить?
Не получилось опубликовать!

Вы попытались написать запрещенную фразу или вас забанили за частые нарушения.

Понятно
Комментарий на проверке

Что-то в вашем комментарии показалось подозрительным, поэтому перед публикацией он пройдет модерацию.

Понятно
Жалоба отправлена

Мы обязательно проверим комментарий и
при необходимости примем меры.

Спасибо
Аккаунт заблокирован!

Из-за нарушений правил сайта на ваш аккаунт были наложены ограничения. Если это ошибка, напишите нам.

Понятно
Что-то пошло не так!

Наши фильтры обнаружили в ваших действиях признаки накрутки. Отдохните немного и вернитесь к нам позже.

Понятно
Лучшие материалы
Закрыть
Войти
Регистрируясь, вы соглашаетесь с правилами использования сайта и даете согласие на обработку персональных данных.
Ваша заявка получена

Мы скоро изучим заявку и свяжемся с Вами по указанной почте в случае положительного исхода. Спасибо за интерес к проекту.

Понятно