Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Kak zapustit codemender v svoih pull zaprosah
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · Все права защищены.

Как запустить CodeMender в своих pull-запросах

Источник: Google Cloud Blog•11 ноября 2026 г. в 00:04

Как запустить CodeMender в своих pull-запросах

CodeMender внедряет автоматизированные исправления кода прямо в рабочие процессы разработчиков. Вот справочная архитектура, которая интегрирует его непосредственно в pull-запросы Git.

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

Помощь в решении этой проблемы является одной из главных задач Google. Мы знаем, что скорость разработки ПО растет — вплоть до 2x for some teams, а среднее время устранения уязвимостей разработчиком увеличилось примерно с 59 дней десятилетие назад до более чем 170 дней в 2025 году, согласно отчету Mandiant M-Trends 2026.

Чтобы помочь вам защитить больший объем кода и сделать это быстрее, мы создали CodeMender — нашего автономного агента безопасности кода, способного находить и исправлять программные уязвимости со скоростью машины.

Мы также понимаем, что инструменты для разработчиков эффективны только тогда, когда они вписываются в привычные процессы. Именно поэтому CodeMender, входящий в состав нашей платформы AI Threat Defense, переносит автоматизированные исправления кода прямо в рабочий процесс разработчика. Сегодня мы публикуем эту справочную архитектуру, которая встраивает автоматизированное исправление с помощью CodeMender прямо в pull-запросы Git через Google Cloud Run.

Что видит разработчик

Все происходит в хронике (timeline). Сканирование публикует один комментарий: таблицу найденных проблем, где у каждой проблемы есть ID, а также две команды, которые можно ввести следующим сообщением.

Рисунок 1: Pull-запрос запускает сканирование в Cloud Run. Результаты проверки, следы эксплойта и предлагаемые патчи возвращаются в ту же хронику.

Ответьте /verify 612424da, и в ветке появится попытка эксплойта, скрытая в сворачиваемом блоке View Exploit Steps & Response Trace, чтобы не захламлять обсуждение.

Ответьте /fix 612424da, и патч придет тем же способом под кнопкой Preview Proposed Code Diff, а черновик pull-запроса уже готов к /approve. Обе команды принимают all вместо конкретного ID.

Рисунок 2: Первоначальный комментарий сканирования содержит таблицу найденных проблем и доступные слеш-команды, позволяя разработчику не покидать хронику pull-запроса.

Ничто не заставляет разработчика покидать pull-запрос или разбираться с консолью.

Предоставляйте доказательства, а не просто степень критичности

Результаты выполнения команды cm find CodeMender включают оценку достоверности уязвимости, полученную во время анализа кода. Если оценка достоверности ниже 100%, вы можете использовать команду cm verify, чтобы заставить CodeMender собрать и смоделировать эксплойт в изолированной среде (песочнице) и определить, действительно ли уязвимость эксплуатируема.

Результаты симуляции могут изменить уровень критичности. Поскольку песочница проверки существует недолго, конвейер автоматически передает эти артефакты в Google Cloud Storage для сохранения контрольного журнала (audit trail) в целях соответствия требованиям и проверок безопасности.

Рисунок 3: Команда /verify возвращает трассировку попытки эксплойта в песочнице, предоставляя проверяющим конкретные доказательства вместо абстрактных предупреждений.

Учитывайте возможные сбои в конвейере проверки. Если ваш тестовый шаблон ищет только строку успешного эксплойта, то любой сбой теста — например, падение макетного сервера (mock server) или превышение времени ожидания выполнения — может привести к тому, что конвейер пропустит уязвимость и ошибочно назовет реальную проблему безопасной.

Убедитесь, что ваш парсер отделяет истинно отрицательные результаты от сбоев тестов. Если эксплойт не удается выполнить корректно, пометьте статус как неопределенный, вместо того чтобы выдавать ему свидетельство о безопасности.

Предложите патч, просмотрите diff

Когда эксплойт доказывает реальность проблемы, следующим шагом становится не тикет, а патч: команда cm fix a1b2c3d4 дает указание CodeMender создать его.

Рисунок 4: Команда /fix возвращает унифицированный diff кода, предоставляя проверяющим содержательный контекст для оценки патча.

Если diff выглядит хорошо, для его применения требуется всего один шаг. Разработчик отвечает /approve. Агент фиксирует патч в ветке, отправляет его в репозиторий и устанавливает статус проверки commit status security/codemender-gate в положение «зеленый». Именно защита веток превращает этот статус в блокировку слияния; без нее этот допуск носит лишь рекомендательный характер.

Никаких сохраненных ключей между GitHub и Cloud Run

Ничего из этого не произойдет, пока GitHub и Google Cloud не начнут доверять друг другу. Этому агенту нужен доступ на запись к вашему исходному коду — именно те учетные данные, которые вы меньше всего хотите хранить в хранилище секретов в ожидании утечки. Вместо этого GitHub Actions может создавать недолговечный токен OIDC, а Google может быть настроен на его прием, благодаря чему в системе не останется долгоживущих данных, которые можно было бы украсть.

Практически вся безопасность здесь держится на одной строке:

Каждый рабочий процесс GitHub Actions использует этот URL издателя, поэтому простая проверка издателя ничего вам не дает. Всю работу выполняет условие.

Обратите внимание, по какому признаку идет сопоставление. assertion.repository здесь тоже сработал бы, но он сопоставляется с именем, а имена меняются или могут быть захвачены кем-то другим после того, как вы их освободите. repository_id и repository_owner_id неизменяемы, поэтому Google рекомендует сопоставлять именно их.

Предоставьте эксплойту безопасное место для запуска

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

Прежде чем доверять вердикту, нужно ответить на два важных вопроса: где выполняется этот код и к чему он может получить доступ во время выполнения? Ответ заключается в том, чтобы запустить его как задание Cloud Run.

Каждый экземпляр Cloud Run изолирован, а задания всегда выполняются в среде выполнения второго поколения — microVM с полной совместимостью с Linux. Выполнение начинается, выполняется одно действие и завершается.

Рисунок 5: Эксплойт запускается в экземпляре, который ничего не хранит и существует ради одной уязвимости. Наружу передается только вердик.

Затем очистите пространство. Предоставьте заданию собственную учетную службу и не давайте ей ничего, кроме API, который записывает эксплойт. Ему не нужен доступ к реестру, поскольку Cloud Run импортирует образ контейнера при развертывании, а не подтягивает его при запуске экземпляра.

Откажитесь от учетной записи Compute Engine по умолчанию, которая в зависимости от политики вашей организации может содержать роли/редактор. Лишите его и сети: прямой выход через VPC в подмаршрут без выхода наружу означает, что код, не имеющий доступа ни к какому внешнему ресурсу, не сможет ни выгрузить то, что он найдет, ни загрузить второй этап атаки.

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

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

Начните работу уже сегодня

Вы можете создать автономного агента безопасности GitOps уже сегодня. Начните с эталонной реализации на codemender-gitops.

  • Безопасность и идентификация
← Все статьи

О чём эта статья

Ещё в разделе «Кибербезопасность»

Все →
Patch Tuesday — ноябрь 2026 г.
Rapid7

Patch Tuesday — ноябрь 2026 г.

Хирургическая безопасность в Интернете: управление элементами и виджетами с помощью Prisma Browser
Palo Alto Networks

Хирургическая безопасность в Интернете: управление элементами и виджетами с помощью Prisma Browser

Наш взгляд на отчет Gartner® Critical Capabilities for Privileged Access Management 2026: привилегии следуют за ответственностью
Palo Alto Networks

Наш взгляд на отчет Gartner® Critical Capabilities for Privileged Access Management 2026: привилегии следуют за ответственностью

Как Authentic Brands Group расширяет творческие возможности с помощью AuthOS на базе Gemini
Mandiant

Как Authentic Brands Group расширяет творческие возможности с помощью AuthOS на базе Gemini

Теневой ИИ стал проактивным: защита персональных ИИ-агентов на конечных точках
Okta

Теневой ИИ стал проактивным: защита персональных ИИ-агентов на конечных точках

Защита человеческих и автономных идентификаторов: корпоративные платформы на 2027 год и в перспективе
Okta

Защита человеческих и автономных идентификаторов: корпоративные платформы на 2027 год и в перспективе

Ещё от Mandiant

Как Authentic Brands Group расширяет творческие возможности с помощью AuthOS на базе Gemini
Mandiant

Как Authentic Brands Group расширяет творческие возможности с помощью AuthOS на базе Gemini

Cloud CISO Perspectives: Наш прогноз безопасности на 2027 год
Mandiant

Cloud CISO Perspectives: Наш прогноз безопасности на 2027 год

Новое исследование показывает, что предприятия оказались зажаты между устаревшим ПО и модернизацией ИИ
Mandiant

Новое исследование показывает, что предприятия оказались зажаты между устаревшим ПО и модернизацией ИИ

Последние новости и анонсы Google Cloud
Mandiant

Последние новости и анонсы Google Cloud

AI-функции BigQuery в Pandas
Mandiant

AI-функции BigQuery в Pandas

Запрос корпоративных данных в Gemini с помощью коннекторов Data Cloud
Mandiant

Запрос корпоративных данных в Gemini с помощью коннекторов Data Cloud