Этот сайт — моя персональная записная книжка. Интересны мне, по большей части, программирование, история и события из моей жизни.

ИИ: поиск ошибок в bc

Много наслышан о том, что сейчас некоторые проекты с открытым кодом переживают настоящий шквал заявок от вайбкодеров, едва отбиваясь от некачественного кода и исправлений несуществующих проблем. Впрочем, есть и положительный опыт — я встречал несколько новостей о том, что искусственный интеллект успешно нашёл и исправил какие-то проблемы с безопасностью.

Очень интересно стало — а как ИИ вообще ищет такие проблемы? Ведь все взаимосвязи в коде он, в силу известных ограничений, просмотреть не может, может речь о каких-то распространённых шаблонных уязвимостях? Я как-то глубоко не погружался в тему.

Поэтому решил посмотреть как будет действовать нейросеть «Опус 4.6» на хорошо знакомом мне проекте — калькуляторе bc, работающем в командной строке. Я выбрал версию для «Линукса», так как там меньше кода.

Я написал небольшой промпт, в котором попросил найти мне переполнения стека, ошибки выделения и памяти и прочие проблемы, характерные для программ на Си. Что интересно, такие проблемы нашлись! Но как же «Опус» это сделал?

Ларчик открывался просто — нейросетка подключила к проекту ASan и UBSan — стандартные инструмент для поиска ошибок работы с памятью, знаковых переполнений, деления и ноль и так далее, а после проанализировала их вывод. Никаких чудес.

2 комментария
Андрей 1 мес

А если в промпте явно указать, что надо самостоятельно изучить код проекта и затем самостоятельно найти баги такого-то типа? А из внешних инструментов разрешить использовать утилиты входящие в gcc и т. п.

Евгений Степанищев 1 мес

Ну, если человеку дать такую задачу как он справится? ИИ всё-таки не магическим образом работает.

Андрей 1 мес

А вообще — мне кажется, что использование ии внешних инструментов для поиска багов в bc — вполне логичным, они же так постоянно делают при разработке чего угодно — юзают уже готовые библиотеки и программы — линтеры, форматеры, статические анализаторы кода, а затем обрабатывают их выхлоп

Евгений Степанищев 1 мес

Тут свежая статья попадалась: «Техдиректор Microsoft Azure с помощью Claude AI обнаружил ошибки в 40-летнем коде Apple II», где «Опус» прочитала ассемблерный код и нашла уязвимость без анализаторов кода, как я понял.