Автоматизация устранения уязвимостей с помощью 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)

  1. GitHub Dependabot обнаруживает уязвимости в зависимостях кода.
  2. Рабочий процесс GitHub запускается по настроенному периоду для проверки новых критических уязвимостей.
  3. Если найдены новые уязвимости, создаётся проблема GitHub, назначаемая GitHub Copilot.
  4. GitHub Copilot проверяет каждую уязвимость, запрашивая у MCP Ключ-АСТРОМ контекст среды выполнения и подтверждение RVA.
  5. Подтверждённые уязвимости устраняются в pull request; неподтверждённые отклоняются в Dependabot с указанием причины.
  6. Разработчики проверяют и объединяют 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-серверу Ключ-АСТРОМ:

  1. Настройте MCP-сервер Ключ-АСТРОМ в вашем репозитории кода GitHub.
  2. Сохраните ваш токен платформы Ключ-АСТРОМ как секрет GitHub для среды Copilot с именем COPILOT_MCP_DT_API_TOKEN.
  3. В вашем репозитории GitHub перейдите в Настройки > Copilot > Агенты.
  4. Добавьте конфигурацию 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 с целью применения исправлений только для уязвимостей, подтверждённых данными среды выполнения.

Как это работает (рабочий процесс, управляемый Ключ-АСТРОМ)

  1. GitHub Advanced Security (GHAS) обнаруживает уязвимости через Dependabot.
  2. Интеграция Ключ-АСТРОМ с GHAS загружает эти оповещения с помощью расширения GitHub Advanced Security и сохраняет их для анализа.
  3. Рабочий процесс Ключ-АСТРОМ сортирует оповещения с использованием контекста среды выполнения и действия рабочего процесса генеративного ИИ Ключ-АСТРОМ Intelligence для валидации. Дополнительную информацию см. в разделе «Использование генеративного ИИ Ключ-АСТРОМ Intelligence в рабочих процессах».
  4. Создаётся проблема GitHub, назначаемая GitHub Copilot, включая как подтверждённые, так и неподтверждённые уязвимости.
  5. Агент GitHub Copilot автоматически берёт проблему, устраняет подтверждённые уязвимости и отклоняет неподтверждённые.
  6. Разработчики проверяют и объединяют 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-серверу Ключ-АСТРОМ:

  1. В вашем репозитории GitHub перейдите в Настройки > Среды > copilot, затем выберите Добавить секрет среды и создайте секрет с именем COPILOT_MCP_DT_API_TOKEN для хранения вашего токена платформы Ключ-АСТРОМ.
  2. В вашем репозитории 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 будет помогать устранять уязвимости, предлагая изменения кода на основе новых оповещений.