Оглавление

Исследователи из Microsoft и нескольких американских университетов представили BlueCodeAgent — систему защиты для моделей генерации кода, которая использует автоматизированное тестирование на проникновение для создания эффективных механизмов безопасности. Об этом сообщает Microsoft Research.

Проблема безопасности AI-генерации кода

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

  • Создавать вредоносный код по злонамеренным запросам
  • Генерировать код с уязвимостями (инъекции, небезопасная обработка входных данных)
  • Производить код с дискриминационной или неэтичной логикой

Хотя методы тестирования на проникновение (red teaming) хорошо изучены, разработка защитных механизмов (blue teaming) отставала из-за трех основных проблем:

  • Плохое понимание моделями абстрактных концепций безопасности
  • Избыточная консервативность — ложные срабатывания при анализе безопасного кода
  • Неполное покрытие рисков, особенно для новых и тонких угроз
Исследование BlueCodeAgent по обнаружению смещенных инструкций с улучшенной защитой
Источник: www.microsoft.com

Архитектура BlueCodeAgent

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

Обзор фреймворка BlueCodeAgent с интеграцией красной и синей команд
Источник: www.microsoft.com

Диверсифицированное тестирование на проникновение

Система включает три метода генерации данных для атак:

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

Улучшенная защита на основе знаний

На основе собранных данных BlueCodeAgent реализует два уровня защиты:

  • Принципиальная защита через конституции — создание явных правил безопасности из данных атак, которые помогают моделям сохранять соответствие этическим и безопасным принципам
  • Тонкий анализ через динамическое тестирование — выполнение сгенерированного кода в изолированных средах Docker для проверки реальных уязвимостей, что снижает количество ложных срабатываний

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

Результаты и перспективы

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

Система эффективно работает с тремя основными категориями рисков:

  • Предвзятые и вредоносные инструкции на уровне входных данных
  • Уязвимый код на уровне выходных данных
  • Сложные сценарии, требующие контекстно-зависимого анализа рисков

Этот подход знаменует переход от реактивной к проактивной безопасности в генеративном AI, где защита строится не на запретах, а на глубоком понимании природы угроз.