BlueCodeAgent: синий агент объединения, активируемый автоматическим красным объединением для CodeGen AI.

Введение

Большие языковые модели (LLM) в настоящее время широко используются для автоматизированной генерации кода при выполнении задач разработки программного обеспечения. Однако эта мощная возможность генерации кода также создает проблемы безопасности. Системы генерации кода могут быть использованы не по назначению во вредных целях, например для создания вредоносного кода. Это также может привести к созданию предвзятого кода, отражающего лежащую в его основе логику, которая является дискриминационной или неэтичной. Кроме того, даже при выполнении несложных задач LLM могут непреднамеренно создать уязвимый код, содержащий недостатки безопасности (например, риски внедрения, небезопасную обработку входных данных). Эти небезопасные результаты подрывают надежность моделей генерации кода и создают угрозу для более широкой экосистемы программного обеспечения, где безопасность и надежность имеют решающее значение.

Во многих исследованиях изучались LLM-коды красной команды, проверяющие, могут ли модели отклонять небезопасные запросы и демонстрирует ли их сгенерированный код небезопасные шаблоны. Более подробную информацию можно найти в нашей предыдущей публикации в блоге MSR на странице Редкодагент. Хотя «красная команда» значительно улучшила наше понимание режимов сбоя модели, прогресс в «синей команде», т. е. в разработке эффективных защитных механизмов для обнаружения и предотвращения таких сбоев, остается относительно ограниченным. Текущие подходы «синей команды» сталкиваются с рядом проблем: (1) Плохое соответствие концепциям безопасности: дополнительные подсказки по безопасности с трудом помогают моделям понять понятия высокого уровня, например, что представляет собой вредоносная или предвзятая инструкция, и обычно не имеют практических принципов для руководства безопасным принятием решений. Практический пример показан на рисунке 1. (2) Чрезмерный консерватизм: особенно в области обнаружения уязвимого кода модели склонны ошибочно классифицировать безопасный код как небезопасный, что приводит к увеличению количества ложных срабатываний и снижению доверия разработчиков.. (3) Неполное покрытие рисков: без прочной базы знаний модели работают плохо при работе с едва заметными или ранее невидимыми рисками.

Чтобы решить эти проблемы, исследователи из Чикагского университета, Калифорнийского университета в Санта-Барбаре, Университета Иллинойса Урбана-Шампейн, VirtueAI и Microsoft Research недавно опубликовали статью: BlueCodeAgent: Blue Teaming Agent, созданный с помощью автоматического Red Teaming для CodeGen AI.. Эта работа вносит следующие ключевые вклады:

  1. Разнообразный конвейер «красной команды»: Авторы разрабатывают комплексный процесс «красной команды», который объединяет несколько стратегий для синтеза разнообразных данных «красной команды» для эффективного накопления знаний.
  2. Расширенные знания синей команды: Основываясь на знаниях «красной команды», BlueCodeAgent значительно повышает производительность «синей команды», используя конституции, полученные на основе знаний и динамического тестирования.
  3. Защита на принципиальном уровне и анализ на тонком уровне: Авторы предлагают две взаимодополняющие стратегии — защиту на уровне принципов (с помощью конституций) и анализ нюансов (с помощью динамического тестирования) — и демонстрируют их синергетический эффект в задачах обнаружения уязвимого кода.
  4. Обобщение видимых и невидимых рисков: Благодаря обширным знаниям в области красной команды BlueCodeAgent эффективно обобщает невидимые риски. В целом BlueCodeAgent достигает среднего улучшения показателя F1 на 12,7% по четырем наборам данных и трем задачам, что объясняется его способностью выделять действенные структуры, которые улучшают контекстно-зависимое обнаружение рисков.
Read more:  Забивает решающий гол в победе «МЮ» над «Ливерпулем» со счетом 1:2, Гарри Магуайр Мы не будем беспечны
Рисунок 1. Пример использования BlueCodeAgent для задачи обнаружения инструкций смещения. Даже когда такие понятия, как «предвзятость», явно включены в дополнительные подсказки по безопасности, модели часто не могут распознать предвзятые запросы (слева). BlueCodeAgent (справа) устраняет этот пробел, обобщая конституции на основе знаний и применяя конкретные, действенные ограничения, которые можно получить благодаря объединению красных команд для улучшения защиты.
Рисунок 1. Пример использования BlueCodeAgent для задачи обнаружения инструкций смещения. Даже когда такие понятия, как «предвзятость», явно включены в дополнительные подсказки по безопасности, модели часто не могут распознать предвзятые запросы (слева). BlueCodeAgent (справа) устраняет этот пробел, обобщая конституции на основе знаний и применяя конкретные, действенные ограничения, которые можно получить благодаря объединению красных команд для улучшения защиты.

Синий агент объединения, активируемый красным объединением

Рис. 2. Обзор BlueCodeAgent, комплексной среды синего взаимодействия, основанной на автоматизированной красной команде для обеспечения безопасности кода. Объединяя знания, полученные в результате работы различных красных команд, и проводя динамическое тестирование в «песочнице», BlueCodeAgent существенно усиливает защитные возможности, выходящие за рамки статического LLM-анализа.
Рис. 2. Обзор BlueCodeAgent, комплексной среды синего взаимодействия, основанной на автоматизированном красном объединении для обеспечения безопасности кода. Объединяя знания, полученные в результате работы различных красных команд, и проводя динамическое тестирование в «песочнице», BlueCodeAgent существенно усиливает защитные возможности, выходящие за рамки статического LLM-анализа.

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

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

Разнообразный процесс объединения в красные команды для накопления знаний

Поскольку разные задачи требуют разных стратегий атаки, «красная команда» использует несколько методов атаки для получения реалистичных и разнообразных данных. В частности, процесс «красной команды» делится на три категории:

  1. Генерация экземпляров на основе политик: Чтобы синтезировать основанные на политике данные «красной команды», сначала собираются различные политики безопасности и этики. Эти принципы высокого уровня затем используются, чтобы побудить модель без цензуры генерировать экземпляры, которые намеренно нарушают указанные политики.
  2. Оптимизация состязательных подсказок на основе начальных значений: Существующие состязательные инструкции часто слишком упрощены и легко отвергаются моделями. Чтобы преодолеть это ограничение, адаптивный агент красной команды вызывает различные инструменты для взлома, чтобы итеративно уточнять первоначальные начальные запросы до тех пор, пока эти запросы не достигнут высоких показателей успеха атаки.
  3. Генерация уязвимостей на основе знаний: Для синтеза как уязвимых, так и безопасных образцов кода в реалистичных сценариях программирования используются знания предметной области об распространенных уязвимостях программного обеспечения (CWE) для создания разнообразных примеров кода.

Синий агент с расширенными знаниями

После сбора данных о знаниях Red Team BlueCodeAgent настроил Защита на принципиальном уровне посредством построения Конституции и Анализ нюансов посредством динамического тестирования.

  1. Защита на принципиальном уровне посредством построения Конституции
    На основе наиболее актуальных данных знаний, BlueCodeAgent обобщает знания красной команды в действенные конституции — четкие правила и принципы, извлеченные из данных предыдущих атак. Эти конституции служат нормативными руководящими принципами, позволяя модели оставаться в соответствии с принципами этики и безопасности даже при столкновении с новыми или невидимыми враждебными факторами.
  2. Анализ нюансов посредством динамического тестирования
    При обнаружении уязвимого кода BlueCodeAgent дополняет статические рассуждения динамическим анализом на основе песочницы, выполняя сгенерированный код в изолированных средах Docker, чтобы проверить, проявляются ли уязвимости, о которых сообщает модель, как фактическое небезопасное поведение. Такая динамическая проверка эффективно смягчает склонность модели к чрезмерному консерватизму, когда доброкачественный код ошибочно помечается как уязвимый.
Read more:  Дханхар госпитализирован: бывший вице-президент госпитализирован в AIIMS для прохождения МРТ; на прошлой неделе дважды терял сознание | Новости Индии

В центре внимания: информационный бюллетень исследований Microsoft

Информационный бюллетень исследований Microsoft

Оставайтесь на связи с исследовательским сообществом Microsoft.


Информация от BlueCodeAgent

BlueCodeAgent превосходит базовые показатели подсказок

Как показано на рисунке 3, BlueCodeAgent значительно превосходит другие базовые версии. Освещены несколько выводов.

(1) Даже если категории испытаний отличаются от категорий знаний для моделирования невидимых сценариев, BlueCodeAgent эффективно использует ранее замеченные риски для обработки невидимых, получая выгоду от обоснования безопасности, основанного на знаниях.

(2) BlueCodeAgent не зависит от модели и последовательно работает с различными базовыми LLM, включая как модели с открытым исходным кодом, так и коммерческие модели. Его рейтинг F1 за предвзятость и подход к обнаружению вредоносных инструкций 1.0, что подчеркивает высокую эффективность.

(3) BlueCodeAgent обеспечивает надежный баланс между безопасностью и удобством использования. Он точно идентифицирует небезопасные входные данные, сохраняя при этом разумный уровень ложноположительных результатов среди доброкачественных, что приводит к стабильно высокому баллу F1.

(4) Напротив, подсказки с помощью общих или детальных напоминаний о безопасности остаются недостаточными для эффективной синей команды, поскольку модели изо всех сил пытаются усвоить абстрактные концепции безопасности и применить их к невидимым рискованным сценариям. BlueCodeAgent устраняет этот пробел, извлекая из знаний действенные конституции, используя конкретные и интерпретируемые ограничения безопасности для улучшения согласованности моделей.

Рисунок 3. Оценки F1 за задачу обнаружения предвзятых инструкций (BlueCodeEval-Bias) в первом ряду и за задачу обнаружения вредоносных инструкций (BlueCodeEval-Mal, на основе RedCode) во второй строке.
Рисунок 3: F1 оценивается за задачу обнаружения предвзятых инструкций (BlueCodeEval-Bias) в первой строке и за задачу обнаружения вредоносных инструкций (BlueCodeEval-Mal) во второй строке.

Дополнительные эффекты конституций и динамического тестирования

В задачах обнаружения уязвимостей модели имеют тенденцию вести себя консервативно — эффект, который также отмечался в предыдущих исследованиях. Они часто с большей вероятностью помечают код как небезопасный скорее, чем безопасный. Такая предвзятость понятна: подтвердить, что код полностью свободен от уязвимостей, обычно сложнее, чем обнаружить потенциальную проблему.

Чтобы смягчить этот чрезмерный консерватизм, BlueCodeAgent интегрирует динамическое тестирование в свой конвейер анализа. Когда BlueCodeAgent обнаруживает потенциальную уязвимость, он запускает надежную модель (Claude-3.7-Sonnet-20250219) для создания тестовых примеров и соответствующего исполняемого кода, в который встраивается подозрительный фрагмент. Эти тестовые примеры затем запускаются в контролируемой среде, чтобы проверить, действительно ли проявляется уязвимость. Окончательное решение объединяет анализ статического кода, проведенный LLM, сгенерированный тестовый код, результаты выполнения во время выполнения и конституции, полученные на основе знаний.

Read more:  Причины того, что РК отвергли мировой запрос Лизы Мариана: поврежденное домашнее хозяйство

Исследователи считают, что два компонента — конституция и динамическое тестирование — играют взаимодополняющую роль. Конституции расширяют понимание риска в модели, увеличивая истинные положительные результаты (TP) и уменьшая ложные отрицательные результаты (FN). С другой стороны, динамическое тестирование направлено на уменьшение количества ложных срабатываний (FP) путем проверки того, действительно ли прогнозируемые уязвимости могут быть вызваны во время выполнения. Вместе они делают BlueCodeAgent более точным и надежным в сценариях синего взаимодействия.

Краткое содержание

BlueCodeAgent представляет комплексную среду синего взаимодействия, предназначенную для устранения рисков при создании кода. Основная идея BlueCodeAgent заключается в том, что комплексное объединение красных может значительно усилить защиту синих. Основываясь на этой идее, фреймворк сначала строит процесс «красной команды» с различными стратегиями генерации данных «красной команды». Затем он создает агента синей команды, который извлекает соответствующие примеры из базы знаний красной команды и обобщает конституции безопасности, чтобы помочь специалистам LLM принимать точные защитные решения. Дополнительно добавляется компонент динамического тестирования для уменьшения ложных срабатываний при обнаружении уязвимостей.

Заглядывая в будущее, можно отметить, что несколько направлений являются многообещающими.

Во-первых, полезно изучить возможность обобщения BlueCodeAgent на другие категории рисков генерации кода, помимо предвзятости, вредоносного кода и уязвимого кода. Это может потребовать разработки и интеграции новых стратегий «красной команды» в BlueCodeAgent и создания соответствующих эталонов для новых рисков.

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

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

2025-11-14 16:48:00


1763276622
#BlueCodeAgent #синий #агент #объединения #активируемый #автоматическим #красным #объединением #для #CodeGen

Продолжение темы

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.