Фаззер с ИИ нашёл десять уязвимостей в известных open-source проектах за месяц
Фаззер с ИИ нашёл десять уязвимостей в известных open-source проектах за месяц Компания Bright Security выпустила STAR Fuzzer — инструмент для поиска уязвимостей, где ИИ-агенты берут на себя работу, которая раньше требовала специалистов по безопасности. По данным компании, в первый месяц инструмент дал десять опубликованных находок в восьми open-source проектах — включая стандартную библиотеку языка Crystal, диспетчер задач htop и операционную систему RIOT OS. В тестовом прогоне по открытым проектам уязвимости высокого или критического уровня нашлись в 45% проверенных проектов. Суть проблемы: классический фаззер — программа, которая миллионами случайных входных данных «долбит» код в поисках сбоев — требует, чтобы инженер вручную написал обвязку (harness, тестовую оболочку для каждой функции) и вручную разбирал найденные сбои. Из-за этой дорогой ручной работы фаззинг оставался уделом узких команд. STAR Fuzzer автоматизирует именно эти шаги: ИИ сам выбирает, какие функции критичны для безопасности, сам пишет и проверяет обвязку, сам отбирает значимые сбои, а сам поиск выполняет эволюционный алгоритм — быстрый и повторяемый. Авторы отдельно противопоставляют свой подход проверке кода языковыми моделями. По их словам, LLM находит только те типы багов, которые уже видела в обучении, а уязвимости, годами живущие в зрелом коде, под известные шаблоны не подпадают. CTO компании Бар Хофеш приводит расчёт: одна кампания фаззинга — от миллиона до десяти миллионов реальных запусков кода; воспроизвести миллион запусков рассуждениями модели — около двух миллиардов токенов (кусков текста, которыми измеряют объём работы модели) на один проект, и это заняло бы месяцы вместо минут. Плюс фаззер наблюдает реальное поведение скомпилированной программы, а не предсказывает его по исходникам. Каждая находка приходит с точным входным файлом, который воспроизводит баг, — компания перепроверяет каждую находку в чистом контейнере (изолированной среде) перед отправкой разработчикам. Поиск не использует LLM: он прогоняет программу миллионы раз и оставляет те варианты входа, которые добрались до ранее не тронутого кода. Грамматики форматов файлов заранее описывать не нужно — слой разбора сам превращает примеры входа в структурированные поля и меняет их так, чтобы миновать поверхностные проверки парсера. Среди конкретных находок: в библиотеке TwelveMonkeys файл из 38 байт заставлял выделить гигабайты памяти; в Fider картинка PNG на 436 КБ разворачивалась примерно в 562 МБ — нашлось за 12 минут; в Crystal — переполнение стека от входа в 88 байт; в htop — чтение за границами буфера. Несколько багов, по словам автора, сидят в коде, который выглядит корректным при обычном ревью: проверка размера есть, но меряется сжатый размер, а не распакованный. Кому это адресовано: командам, чей код принимает недоверенные данные ниже уровня HTTP — обработка загружаемых файлов и архивов, парсеры, встраиваемое и десктопное ПО, а также кодовые базы с растущей долей ИИ-сгенерированного кода. Поддерживаются C/C++, Rust, Go, Java/Kotlin,.NET, Node, Python и Crystal; работает внутри инфраструктуры клиента без запущенного приложения и облачного сканера. Продукт доступен как режим платформы Bright STAR; это пресс-релиз компании, независимой проверки цифр в материале нет. Источник: https://hackernoon.com/bright-security-introduces-star-fuzzer-agentic-fuzzing-that-writes-its-own-harnesses