Автоматизация устранения уязвимостей с помощью GitHub Copilot и Ключ-АСТРОМ
Автоматизация устранения уязвимостей с помощью GitHub Copilot и Ключ-АСТРОМ
Предварительная версия
Обзор
Не каждую проблему в коде нужно исправлять. Ключ-АСТРОМ помогает командам разработки сосредоточиться на главном, проверяя уязвимости с учётом контекста среды выполнения и оптимизируя устранение через GitHub Copilot. Этот сценарий демонстрирует, как приоритизировать и устранять уязвимости, влияющие на продуктивные приложения. Поддерживаются два пути реализации в зависимости от того, где вы хотите выполнять сортировку и запускать исправления — оба основаны на интеграциях Ключ-АСТРОМ и GitHub.
Задача
В сложных кодовых базах количество обнаруженных уязвимостей может быть подавляющим. Хотя ИИ-агенты, такие как GitHub Copilot, могут помогать с автоматизированным устранением, человеческая проверка и одобрение по-прежнему необходимы. Изменения кода также могут вносить критические изменения, увеличивая накладные расходы на разработку. Это делает эффективную приоритизацию и сортировку уязвимостей — с поддержкой богатого контекста — критически важными для поддержания скорости и стабильности.
Решение
Ключ-АСТРОМ интегрируется с GitHub, обогащая оповещения Dependabot контекстом среды выполнения и валидацией Аналитики уязвимостей среды выполнения (RVA). Это позволяет GitHub Copilot предпринимать целевые действия:
- Подтверждённые уязвимости исправляются автоматически: GitHub Copilot открывает pull request с безопасным исправлением для каждой уязвимости, подтверждённой Ключ-АСТРОМ.
- Неподтверждённые уязвимости отклоняются с указанием причины: если Ключ-АСТРОМ проверил уязвимость в среде выполнения, и уязвимая библиотека не загружена или уязвимая функция не используется, уязвимость не подтверждается, и GitHub Copilot отклоняет оповещение и объясняет причину.
Это снижает шум и усилия разработчиков, гарантируя устранение только relevant уязвимостей.
Вы можете реализовать это решение двумя способами в зависимости от того, где вы хотите сортировать уязвимости и запускать устранение:
- Рабочий процесс на основе GitHub: использует MCP-сервер Ключ-АСТРОМ, интегрированный с агентом GitHub Copilot, или как пользовательский агент безопасности Ключ-АСТРОМ, запускаемый рабочими процессами GitHub Actions.
- Рабочий процесс, управляемый Ключ-АСТРОМ: использует Рабочие процессы в качестве триггера и движка обработки, с генеративным ИИ в качестве инструмента анализа на основе ИИ.
Рабочий процесс на основе GitHub
В этом сценарии используется рабочий процесс GitHub Actions для обнаружения новых критических уязвимостей и запуска GitHub Copilot для исправления только тех, которые подтверждены Ключ-АСТРОМ.
Как это работает (рабочий процесс на основе GitHub)
- GitHub Dependabot обнаруживает уязвимости в зависимостях кода.
- Рабочий процесс GitHub запускается по настроенному периоду для проверки новых критических уязвимостей.
- Если найдены новые уязвимости, создаётся проблема GitHub, назначаемая GitHub Copilot.
- GitHub Copilot проверяет каждую уязвимость, запрашивая у MCP Ключ-АСТРОМ контекст среды выполнения и подтверждение RVA.
- Подтверждённые уязвимости устраняются в pull request; неподтверждённые отклоняются в Dependabot с указанием причины.
- Разработчики проверяют и объединяют pull request.
Начало работы (рабочий процесс на основе GitHub)
Чтобы начать, выполните следующие шаги.
Шаг 1. Настройте Ключ-АСТРОМ
- Настройте мониторинг с помощью ЕдиныйАгент для продуктивных сервисов.
- Включите Аналитику уязвимостей среды выполнения.
- Создайте токен платформы Ключ-АСТРОМ с надлежащими разрешениями для доступа к MCP-серверу и запроса различных типов событий.
Шаг 2. Подготовьте ваш репозиторий GitHub
- Включите Dependabot. Это гарантирует, что GitHub сможет обнаруживать уязвимости в зависимостях и создавать оповещения.
- Создайте мелкозернистый персональный токен доступа (PAT) с надлежащими разрешениями.
Список разрешений
- Сохраните PAT, созданный на шаге 2, как секрет GitHub для среды Copilot с именем
COPILOT_SPONSOR_PAT. Этот секрет предоставляется агенту GitHub Copilot как переменная среды, позволяя ему аутентифицироваться и выполнять действия в вашем репозитории от вашего имени. - Назначьте место Copilot пользователю-спонсору.
Шаг 3. Подключите GitHub Copilot к Ключ-АСТРОМ
Чтобы подключить GitHub Copilot к MCP-серверу Ключ-АСТРОМ:
- Настройте MCP-сервер Ключ-АСТРОМ в вашем репозитории кода GitHub.
- Сохраните ваш токен платформы Ключ-АСТРОМ как секрет GitHub для среды Copilot с именем
COPILOT_MCP_DT_API_TOKEN. - В вашем репозитории GitHub перейдите в Настройки > Copilot > Агенты.
- Добавьте конфигурацию MCP-сервера, подобную этой:
{
"mcpServers":
{
"astromkey": {
"type": "http",
"url": "https://<your-astromkey-environment>/platform-reserved/mcp-gateway/v0.1/servers/astromkey-mcp/mcp",
"headers": {
"Authorization": "Bearer $COPILOT_MCP_DT_API_TOKEN"
},
"tools": ["*"]
}
}
}
Обязательно замените <your-astromkey-environment> на идентификатор вашей среды Ключ-АСТРОМ.
Для справки см. раздел «Расширение агента GitHub Copilot с помощью Model Context Protocol (MCP)».
Шаг 4. Добавьте инструкции для GitHub Copilot
Чтобы направлять агента GitHub Copilot в процедуре проверки с помощью Ключ-АСТРОМ, а также в необходимых знаниях DQL для успешного взаимодействия с MCP Ключ-АСТРОМ, у вас есть два варианта:
- Направлять агента GitHub Copilot через глобальный файл инструкций: скачайте файл
copilot-instructions.mdи добавьте его в.github/. Инструкции см. в разделе «Добавление пользовательских инструкций репозитория для GitHub Copilot». - Определить пользовательский агент Ключ-АСТРОМ, который GitHub Copilot будет использовать для выполнения сценария: скачайте файл
astromkey-security-agent.mdи добавьте его в.github/agents.
Шаг 5. Настройте рабочий процесс GitHub
Скачайте dependabot-alerts-processing.yml и добавьте его в .github/workflows/. Это проверяет новые критические уязвимости и запускает GitHub Copilot для устранения только тех, что подтверждены Ключ-АСТРОМ.
Подробности см. в разделе «Создание вашего первого рабочего процесса».
После настройки GitHub Copilot начнёт сортировать и устранять уязвимости по мере обнаружения новых оповещений.
Вы можете протестировать рабочий процесс, чтобы убедиться, что всё работает как ожидается.
Рабочий процесс, управляемый Ключ-АСТРОМ
В этом сценарии Ключ-АСТРОМ используется для приёма и сортировки оповещений GitHub Advanced Security (GHAS), а затем для запуска GitHub Copilot с целью применения исправлений только для уязвимостей, подтверждённых данными среды выполнения.
Как это работает (рабочий процесс, управляемый Ключ-АСТРОМ)
- GitHub Advanced Security (GHAS) обнаруживает уязвимости через Dependabot.
- Интеграция Ключ-АСТРОМ с GHAS загружает эти оповещения с помощью расширения GitHub Advanced Security и сохраняет их для анализа.
- Рабочий процесс Ключ-АСТРОМ сортирует оповещения с использованием контекста среды выполнения и действия рабочего процесса генеративного ИИ Ключ-АСТРОМ Intelligence для валидации. Дополнительную информацию см. в разделе «Использование генеративного ИИ Ключ-АСТРОМ Intelligence в рабочих процессах».
- Создаётся проблема GitHub, назначаемая GitHub Copilot, включая как подтверждённые, так и неподтверждённые уязвимости.
- Агент GitHub Copilot автоматически берёт проблему, устраняет подтверждённые уязвимости и отклоняет неподтверждённые.
- Разработчики проверяют и объединяют pull request с применёнными исправлениями.
Начало работы (рабочий процесс, управляемый Ключ-АСТРОМ)
Чтобы начать, выполните следующие шаги.
Шаг 1. Настройте Ключ-АСТРОМ
- Включите Аналитику уязвимостей среды выполнения.
- Запросите доступ к MCP-серверу Ключ-АСТРОМ.
- Создайте токен платформы Ключ-АСТРОМ с надлежащими разрешениями для доступа к MCP-серверу и запроса различных типов событий.
- Установите и настройте интеграцию GitHub Advanced Security в Ключ-АСТРОМ.
Шаг 2. Подготовьте ваш репозиторий GitHub
- Включите Dependabot для обнаружения уязвимостей в зависимостях.
- Создайте мелкозернистый персональный токен доступа (PAT) с надлежащими разрешениями.
Список разрешений
- Сохраните PAT, созданный на шаге 2, как секрет GitHub для среды Copilot с именем
COPILOT_SPONSOR_PAT. Этот секрет предоставляется агенту GitHub Copilot как переменная среды, позволяя ему аутентифицироваться и выполнять действия в вашем репозитории от вашего имени.
Шаг 3. Подключите GitHub Copilot к Ключ-АСТРОМ
Чтобы подключить GitHub Copilot к MCP-серверу Ключ-АСТРОМ:
- В вашем репозитории GitHub перейдите в Настройки > Среды > copilot, затем выберите Добавить секрет среды и создайте секрет с именем
COPILOT_MCP_DT_API_TOKENдля хранения вашего токена платформы Ключ-АСТРОМ. - В вашем репозитории GitHub перейдите в Настройки > Copilot > Агенты и добавьте конфигурацию MCP-сервера, подобную этой:
{
"mcpServers":
{
"astromkey": {
"type": "http",
"url": "https://<your-astromkey-environment>/platform-reserved/mcp-gateway/v0.1/servers/astromkey-mcp/mcp",
"headers": {
"Authorization": "Bearer $COPILOT_MCP_DT_API_TOKEN"
},
"tools": ["*"]
}
}
}
Обязательно замените <your-astromkey-environment> на URL MCP Ключ-АСТРОМ.
Для справки см. раздел «Расширение агента GitHub Copilot с помощью Model Context Protocol (MCP)».
Шаг 4. Добавьте инструкции для GitHub Copilot
Чтобы помочь адаптировать предложения агента GitHub Copilot к вашим стандартам кодирования и политикам безопасности, у вас есть два варианта:
- Направлять агента GitHub Copilot через глобальный файл инструкций: скачайте файл
copilot-instructions.mdи добавьте его в.github/. Инструкции см. в разделе «Добавление пользовательских инструкций репозитория для GitHub Copilot». - Определить пользовательский агент Ключ-АСТРОМ, который GitHub Copilot будет использовать для выполнения сценария: скачайте файл
astromkey-security-agent.mdи добавьте его в.github/agents.
После настройки GitHub Copilot начнёт сортировать и устранять уязвимости по мере обнаружения новых оповещений.
Шаг 5. Разверните и запланируйте рабочий процесс сортировки Ключ-АСТРОМ
Чтобы автоматизировать сортировку уязвимостей и создание проблем, скачайте следующие два рабочих процесса Ключ-АСТРОМ для оповещений Dependabot и загрузите их в Рабочие процессы:
GitHub Dependabot alert verification.yml: это родительский рабочий процесс, который выполняет следующие действия:- Запрашивает новые критические обнаружения GitHub Dependabot.
- Проверяет их с использованием контекста среды выполнения.
- Подготавливает содержимое проблемы и вызывает вспомогательный рабочий процесс.
GitHub issue creation and Copilot assignment.yml: это вспомогательный рабочий процесс, вызываемый родительским рабочим процессом для:- Создания проблемы GitHub с результатами проверки.
- Назначения проблемы GitHub Copilot для устранения.
Перед запуском рабочего процесса:
- Сохраните персональный токен доступа GitHub (PAT), созданный на шаге 2 (Подготовьте ваш репозиторий GitHub), в хранилище Ключ-АСТРОМ, чтобы рабочий процесс мог безопасно получить к нему доступ.
- Обновите конфигурацию входных данных по умолчанию вспомогательного рабочего процесса, чтобы указать владельца и репозиторий, где должна быть создана проблема GitHub.
- В действиях HTTP вспомогательного рабочего процесса ссылайтесь на учётные данные, хранящиеся в хранилище, для аутентификации запросов API GitHub.
После настройки GitHub Copilot будет помогать устранять уязвимости, предлагая изменения кода на основе новых оповещений.