ДомойZ - Баннер Главная итальянскийФреймворк ARQ повышает количество истинно положительных срабатываний при обнаружении уязвимостей CodeQL на...

Фреймворк ARQ повышает количество истинно положительных срабатываний при обнаружении уязвимостей CodeQL на 119,8%

Новая исследовательская платформа под названием ARQ берется за одну из самых упорных проблем в области безопасности программного обеспечения: заставить автоматические сканеры кода действительно помечать нужные уязвимости. Работа, выполненная Чуньи Вангом и опубликованная на arXiv в августе 2026 года, нацелена на обнаружение уязвимостей с помощью CodeQL — широко используемый метод для поиска изъянов в коде на C и C++, — и показывает, что сегодняшние запросы для обнаружения уязвимостей гораздо менее надежны, чем предполагают разработчики.

Summary

Ключевые выводы

  • ARQ автоматически уточняет запросы CodeQL для C/C++ с использованием данных об исполнении, полученных из синтезированных программ, без размеченных наборов данных или шаблонов, специфичных для уязвимостей.
  • Тестирование с тремя коммерческими LLM — GPT-5.4, Claude-Sonnet-4.6 и Gemini-3.5-flash — позволило уточнить 12 официальных запросов CodeQL.
  • Уточненные запросы обнаруживали до 119,8% больше истинных срабатываний, сохраняя точность на уровне 98,0% и выше.
  • ARQ закрыл три задачи в официальном репозитории CodeQL на GitHub, которые оставались нерешенными до 27 месяцев.
  • Уточненные запросы выявили две ранее неизвестные ошибки в реальных библиотеках libpng и zlib.

Ограничения текущих запросов CodeQL при обнаружении уязвимостей в C/C++

Статические анализаторы стали стандартной частью процессов обеспечения безопасности ПО, и CodeQL — один из наиболее широко применяемых инструментов для сканирования кодовых баз на C/C++. Эти инструменты работают, кодируя известные уязвимые шаблоны кода в запросы для обнаружения, а затем сопоставляя эти шаблоны с исходным кодом программы. Подход звучит аккуратно в теории, но на практике вызывает немало трений.

Распространенность ложноположительных и ложноотрицательных срабатываний в существующих запросах

Существующие запросы CodeQL по-прежнему генерируют ложноположительные срабатывания, ошибочно помечая безопасный код как уязвимый, и ложноотрицательные, полностью пропуская реальные уязвимости. Оба исхода несут издержки. Ложноположительные срабатывания тратят время разработчиков на погоню за мнимыми ошибками, тогда как ложноотрицательные позволяют реальным уязвимостям просачиваться в продакшн. Именно этот разрыв ARQ и был создан, чтобы устранить, и он объясняет, почему обнаружение уязвимостей с помощью CodeQL остается активной областью исследований, а не решенной задачей.

Фреймворк ARQ: автоматическое уточнение запросов на основе данных об исполнении

ARQ — это агентный фреймворк, который автоматически улучшает запросы CodeQL для C/C++, опираясь на данные об исполнении, полученные из синтезированных программ, а не на вручную размеченные примеры или созданные вручную шаблоны. Это различие важно, потому что большинство предыдущих методов уточнения зависели от курируемых наборов данных или истории коммитов, которые дорого создавать и медленно поддерживать.

Механизм выявления слабых мест запросов через исполнение синтезированных программ

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

Итеративный цикл уточнения на основе LLM без размеченных данных и шаблонов, специфичных для уязвимостей

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

Оценка и влияние уточнений ARQ на запросы CodeQL

Практический тест любого фреймворка уточнения — действительно ли он улучшает результаты обнаружения, и результаты ARQ показывают, что да, и с большим отрывом. Исследователи уточнили 12 официальных запросов CodeQL и оценили улучшения с помощью двух признанных наборов данных об уязвимостях в C/C++, что придало результатам надежную опору в существующих исследованиях по статическому анализу C/C++.

Результаты уточнения с использованием GPT-5.4, Claude-Sonnet-4.6 и Gemini-3.5-flash

ARQ был протестирован с тремя коммерческими крупными языковыми моделями: GPT-5.4, Claude-Sonnet-4.6 и Gemini-3.5-flash. Каждая модель независимо обеспечивала работу итеративного цикла уточнения, что позволило исследователям сравнить, как разные LLM справляются с одной и той же задачей. Такой мультимодельный дизайн усиливает уверенность в том, что улучшения обусловлены именно методологией ARQ, а не особенностями одной конкретной модели.

Улучшение показателей на эталонных наборах данных Juliet v1.3 и FormAI v2

Уточненные ARQ и исходные запросы CodeQL сравнивались на наборах данных Juliet v1.3 и FormAI v2 — двух признанных бенчмарках для оценки инструментов обнаружения уязвимостей. Уточненные запросы обнаруживали существенно больше истинных срабатываний — рост до 119,8%, при этом точность оставалась не ниже 98,0%. Это сочетание примечательно: относительно легко поймать больше истинных срабатываний, ослабив критерии обнаружения, но обычно это снижает точность из-за роста числа ложноположительных срабатываний. Результаты ARQ показывают противоположную картину, что означает: фреймворк не просто «расширяет сеть», он делает саму сеть более точной.

Решение давних задач на GitHub и обнаружение новых ошибок в libpng и zlib

Помимо бенчмарков, ARQ дал осязаемые практические результаты. Фреймворк закрыл три нерешенные задачи на GitHub в официальном репозитории запросов CodeQL, которые оставались открытыми до 27 месяцев. Кроме того, уточненные запросы выявили две ранее неизвестные ошибки в libpng и zlib — двух широко используемых реальных библиотеках. Это важный сигнал: речь идет не просто об академическом упражнении с лучшими цифрами в таблице лидеров, а об инструменте, который обнаружил реальные, ранее неизвестные уязвимости в программном обеспечении, от которого зависят бесчисленные приложения.

Почему это важно для безопасности программного обеспечения

Последствия выходят за рамки самого CodeQL. Ложноположительные и ложноотрицательные срабатывания — хроническая проблема во всей области статического анализа, а не только в одном инструменте, и любой метод, который одновременно снижает оба типа ошибок без необходимости в размеченных данных или созданных вручную шаблонах, потенциально может повлиять на то, как будут строиться будущие инструменты для улучшения запросов с помощью LLM. Для организаций, полагающихся на автоматическое сканирование для защиты кодовых баз на C/C++, фреймворк, который повышает обнаружение истинных уязвимостей при сохранении точности выше 98%, может означать меньше впустую потраченных инженерных часов на ложные тревоги и меньше реальных уязвимостей, проходящих незамеченными.

Обнаружение новых ошибок в libpng и zlib также подчеркивает важный момент: даже зрелые, тщательно проверенные проекты с открытым исходным кодом все еще могут содержать невыявленные изъяны, и более точно настроенные запросы на обнаружение уязвимостей способны найти их там, где существующие инструменты не справлялись.

FAQ

Какую проблему ARQ стремится решить при обнаружении уязвимостей в C/C++?

ARQ устраняет ложноположительные и ложноотрицательные срабатывания в существующих запросах CodeQL, автоматически уточняя их с использованием данных об исполнении синтезированных программ.

Как ARQ выявляет слабые места в запросах CodeQL?

ARQ обнаруживает слабости запросов всякий раз, когда исполнение синтезированной программы расходится с вердиктом запроса: такое несоответствие указывает либо на ложноположительное, либо на ложноотрицательное срабатывание.

Какую роль играют крупные языковые модели в ARQ?

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

Какие осязаемые улучшения показал ARQ при уточнении запросов CodeQL?

Уточненные с помощью ARQ запросы CodeQL увеличили обнаружение истинных уязвимостей до 119,8% при точности не ниже 98,0%, устранили три давние задачи на GitHub и выявили две новые ошибки в реальных библиотеках.

{«@context»:»https://schema.org»,»@type»:»FAQPage»,»mainEntity»:[{«@type»:»Question»,»name»:»Какую проблему ARQ стремится решить при обнаружении уязвимостей в C/C++?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»ARQ устраняет ложноположительные и ложноотрицательные срабатывания в существующих запросах CodeQL, автоматически уточняя их с использованием данных об исполнении синтезированных программ.»}},{«@type»:»Question»,»name»:»Как ARQ выявляет слабые места в запросах CodeQL?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»ARQ обнаруживает слабости запросов всякий раз, когда исполнение синтезированной программы расходится с вердиктом запроса: такое несоответствие указывает либо на ложноположительное, либо на ложноотрицательное срабатывание.»}},{«@type»:»Question»,»name»:»Какую роль играют крупные языковые модели в ARQ?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»ARQ использует итеративный цикл уточнения на основе LLM для исправления запросов на основе обратной связи от исполнения, без необходимости в размеченных данных или шаблонах, специфичных для уязвимостей.»}},{«@type»:»Question»,»name»:»Какие осязаемые улучшения показал ARQ при уточнении запросов CodeQL?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»Уточненные с помощью ARQ запросы CodeQL увеличили обнаружение истинных уязвимостей до 119,8% при точности не ниже 98,0%, устранили три давние задачи на GitHub и выявили две новые ошибки в реальных библиотеках.»}}]}

Статья подготовлена при содействии искусственного интеллекта и проверена редакционной командой.

RELATED ARTICLES

Stay updated on all the news about cryptocurrencies and the entire world of blockchain.

Featured video

LATEST