.@trailofbits' команда Buttercup говорит о нашей стратегии конкуренции сейчас, на сцене AIxCC. Вот наша основная команда (8 основных человек + ~3 наемника):
Наши стратегии и основные принципы. Вкратце, используйте лучший инструмент для работы. Не ожидайте, что LLM будут волшебно хороши в том, в чем мы знаем, что они не хороши.
Оригинальный дизайн Buttercup был значительно более сложным. Он был упрощен, чтобы соответствовать правилам и учитывать ограничения ресурсов нашей команды.
Мы показали хорошие результаты в полуфинале, набрав много первых убийств, но наш Java-искатель ошибок сломался, и мы до сих пор не знаем, почему!
Полуфиналы подтвердили наш общий подход, но его нужно было скорректировать, чтобы учесть огромный рост масштаба для финала. Мы выбросили прототип и начали с нуля для финала.
Хенрик работал над оркестратором: как, что и когда отправлять в API конкурса. Мы решили всегда требовать PoV, чтобы максимизировать нашу уверенность в подачах.
Запуск работал над нашим движком обнаружения уязвимостей. Мы использовали стандартные фуззеры oss-fuzz. Мы использовали общий корпус, где LLM помогали фуззерам в получении покрытия.
Рональд работал над нашим движком обнаружения уязвимостей. Мы использовали стандартные фуззеры oss-fuzz. Мы использовали общий корпус, где LLM помогали фуззерам в достижении покрытия.
Рональд работал над нашим движком обнаружения уязвимостей. Мы использовали стандартные фуззеры oss-fuzz. Мы использовали общий корпус, где LLM помогали фуззерам в достижении покрытия.
Патчер — это многопользовательская система, 6000 строк кода, LangChain/LangGraph, с нерассуждающим GPT-4.1. Агент безопасности определяет коренные причины, агент инженера находит инструкции для тестирования, затем агент QA создает патч и проверяет его. Если он не проходит, агент рефлексии корректирует стратегию.
В выставочных раундах мы набрали первые очки в раунде 1, сильно провалились во 2, и восстановились в 3. Мы были эффективны в использовании ресурсов в раунде 1, потратив всего $1k из бюджета LLM в $30k. В раунде 2 у нас была небольшая опечатка, которая все сломала.
В оценочном раунде мы нашли много ошибок с ограниченным бюджетом (половина доступного), с высокой точностью и хорошо справились со всеми задачами. Мы также нашли как минимум одну ошибку, которую никто другой из CRS не обнаружил, что показывает, что мы освоили новую территорию.
Как нам удалось так хорошо справиться? У нас была точность 90%, мы набрали баллы по всем задачам и сделали качественные патчи для всех наших ошибок.
Мы провели последний месяц, создавая уменьшенную версию buttercup, которая работает на вашем ноутбуке. Мы намерены поддерживать её за счёт части выигрыша. Теперь это открытый код!
4K