Новости
Программисты Google нашли баг в SQLite с помощью нейросети

Программисты Google нашли баг в SQLite с помощью нейросети

Компания Google использовала агент большой языковой модели (LLM - large language model) под названием «Big Sleep», чтобы обнаружить ранее неизвестную уязвимость памяти в популярном программном обеспечении

Уязвимость вида "переполнение буфера стека" (stack overflow) в dev-версии популярного движка баз данных с открытым исходным кодом SQLite была обнаружена с помощью анализа вариантов моделью Big Sleep, которая является результатом сотрудничества между Google Project Zero и Google DeepMind.

Big Sleep - это развитие проекта Project Zero Naptime, который представляет собой фреймворк, анонсированный в июне, позволяющий LLM-специалистам автономно проводить базовые исследования уязвимостей. Фреймворк предоставляет LLM инструменты для тестирования программного обеспечения на наличие потенциальных дефектов в удобном окружении, включая браузер кода, отладчик, инструмент репортера и среду «песочницы» для запуска скриптов Python и записи результатов.

Исследователи предоставили агенту искусственного интеллекта Gemini 1.5 Pro исходную информацию о предыдущей уязвимости SQLite, обеспечив Big Sleep контекстом для поиска потенциальных аналогичных уязвимостей в новых версиях программного обеспечения. Агенту были представлены последние тексты коммитов и diff-изменения, а также репозиторий SQLite на предмет нерешенных проблем.

В итоге Big Sleep от Google обнаружил баг, связанный с неправильной работой функции «seriesBestIndex» при использовании специального значения -1 в поле iColumn. Поскольку это поле обычно неотрицательно, весь код, взаимодействующий с ним, должен быть спроектирован таким образом, чтобы правильно обрабатывать этот уникальный случай, чего функция seriesBestIndex не делает, что приводит к переполнению буфера стека.