Запись архива

GitHub Copilot Agentic Autofix начал использовать память для исправления уязвимостей

GitHub включил Copilot Memory в работу Agentic Autofix: теперь система запоминает паттерны исправлений и применяет их к новым уязвимостям, а также передает знания другим инструментам Copilot.

Интерфейс GitHub Copilot Agentic Autofix с исправлением уязвимости и индикацией Copilot Memory
Интерфейс GitHub Copilot Agentic Autofix с исправлением уязвимости и индикацией Copilot Memory
Изображение из исходного материала

GitHub объявил о запуске интеграции Copilot Memory в механизм Agentic Autofix. Теперь при исправлении уязвимостей система не только генерирует патчи, но и сохраняет успешные паттерны исправлений для повторного использования. Изменение затрагивает всех пользователей, включивших обе функции, которые остаются в публичной предварительной версии.

Что изменилось в работе Agentic Autofix

Agentic Autofix — это функция GitHub, которая автоматически генерирует исправления для уязвимостей, найденных в коде. Ранее каждое исправление создавалось изолированно, без учета предыдущих решений. Теперь, при активации Copilot Memory, процесс выглядит иначе:

  • При анализе уязвимости Agentic Autofix проверяет существующие воспоминания на наличие контекста, который может помочь в разрешении алерта безопасности.
  • После создания исправления система сохраняет его паттерн как новое воспоминание.
  • Эти воспоминания могут использоваться для исправления других уязвимостей, а также передаваться другим инструментам Copilot — Copilot code review и Copilot cloud agent.

Это означает, что со временем Copilot Memory накапливает знания о том, как именно команда разработчиков предпочитает исправлять определенные типы уязвимостей, адаптируясь к стилю и требованиям конкретного репозитория.

Как Copilot Memory меняет экосистему безопасности

Ключевое отличие нового подхода от традиционных систем SAST — это обучение на собственном опыте. Обычные статические анализаторы кода работают по фиксированным правилам: если правило не описывает конкретную уязвимость, она остается незамеченной. Agentic Autofix с памятью может адаптироваться к новым паттернам уязвимостей, если они похожи на уже исправленные.

Согласно блогу GitHub, воспоминания могут «обучать другие функции Copilot безопасным паттернам разработки, уникальным для вашего репозитория». Это потенциально снижает количество повторяющихся уязвимостей одного типа, так как Copilot code review будет предупреждать о проблеме до того, как она попадет в pull request.

Однако важно понимать: обе функции — Agentic Autofix и Copilot Memory — находятся в публичной предварительной версии. Это означает, что механизмы могут меняться, а производительность в реальных проектах пока не подтверждена масштабными независимыми тестами.

Проблема автоправки: валидация остается ключевой

Несмотря на улучшения, автоправка уязвимостей остается сложной задачей. Как отметил Исаак Эванс из компании по безопасности, «генерировать хорошее, корректное исправление на самом деле довольно сложно. Количество случаев, когда „исправление“ не исправляет проблему или вводит новую уязвимость, гораздо выше, чем можно ожидать».

В качестве примера приводится недавний случай, когда Copilot Autofix сгенерировал патч, который сам создавал уязвимость в Snowflake workflow. Проблема заключалась в некорректной проверке условия: `github.event.pull_request` оказывался `null` для issue-событий, что позволяло неаутентифицированным пользователям запускать раннер.

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

Что это значит для разработчиков и команд безопасности

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

  • Включение обеих функций: Agentic Autofix и Copilot Memory должны быть активированы отдельно — каждая в своем разделе настроек репозитория или организации.
  • Обучение системы: Copilot Memory накапливает знания только на основе успешных исправлений. Чем больше команда использует Agentic Autofix, тем точнее становятся рекомендации.
  • Аудит исправлений: даже с памятью каждое автоматическое исправление должно проходить code review. GitHub Copilot не заменяет человеческую проверку, а лишь ускоряет процесс.
  • Совместимость с другими инструментами: Copilot Memory работает не только с Agentic Autofix, но и с Copilot code review и Copilot cloud agent. Это означает, что однажды сохраненный паттерн может влиять на работу других инструментов в экосистеме.

Когда ждать стабильной версии

На данный момент GitHub не называет точных сроков выхода функций из публичной предварительной версии. Компания рекомендует следить за документацией по GitHub Copilot Memory и подписаться на newsletter для разработчиков. Пользователям, которые хотят протестировать интеграцию, необходимо включить обе функции в настройках своего аккаунта или организации.

Стоит также отметить, что Copilot Memory — это не универсальное хранилище всех исправлений, а контекстно-зависимая память. Она хранит паттерны, а не полные патчи, что снижает риск утечки кода, но может ограничивать точность в некоторых сценариях.

Резюме для разработчика

Нововведение GitHub — шаг к более интеллектуальной автоматизации безопасности кода. Copilot Memory превращает Agentic Autofix из изолированного инструмента в систему, которая учится на опыте команды. Однако полагаться на автоправку без проверки пока рано: даже сохраненные паттерны могут не учитывать уникальных особенностей проекта, а качество исправления зависит от качества исходной модели.

Разработчикам стоит рассматривать новую функцию как ассистента, который ускоряет процесс исправления известных типов уязвимостей, но не как замену code review и ручному тестированию. Командам безопасности — обратить внимание на возможность обучения Copilot code review через Copilot Memory, что может снизить количество уязвимостей на этапе pull request.

Источники