Развертывание интеграции расширенной безопасности GitHub

В этом руководстве приведены действия по настройке и другие действия, помогающие интегрировать GitHub Advanced Security (GHAS) и Microsoft Defender для облака, а затем проверить конец интеграции. Интеграция помогает максимизировать безопасность облачных приложений Microsoft путем сопоставления рисков среды выполнения и контекста с исходным кодом для ускорения исправления на основе ИИ.

Следуя этому руководству, вы:

  • Настройте репозиторий GitHub для Microsoft Defender для облака.
  • Создайте фактор риска среды выполнения.
  • Тестирование реальных вариантов использования в Defender для облака.
  • Связывание кода с ресурсами среды выполнения.
  • Запустите кампанию безопасности на сайте GitHub. Эта кампания использует контекст среды выполнения для определения приоритета оповещений безопасности GHAS.
  • Создайте задачи GitHub из Defender для облака, чтобы начать исправление.
  • Закройте цикл между командами инженеров и командами по безопасности.

Prerequisites

Аспект Сведения
Требования к окружающей среде — учетная запись GitHub с соединителем, созданным в Defender для Облака
— лицензия GitHub Advanced Security (GHAS) на подключенных репозиториях
— план управления позицией безопасности Defender Cloud Security (DCSPM), активированный в подписке
— Microsoft Security Copilot (необязательно для автоматического исправления на основе ИИ)
Роли и разрешения — Разрешения администратора безопасности
- Администратор безопасности в подписке Azure для просмотра результатов в Defender для облака
- Владелец организаций GitHub для подключения репозиториев и настройки кампаний безопасности
Облачные среды — Доступно только в коммерческих облаках (не в Azure для государственных организаций, Azure, управляемых 21Vianet или другими независимыми облаками)

Подготовьте вашу среду

Выполните следующие шаги для настройки вашего репозитория GitHub и настроек Defender для облака до проверки интеграции.

Шаг 1. Настройка репозитория GitHub и запуск рабочего процесса

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

  1. Войдите на портал Azure.

  2. Перейдите к Microsoft Defender для облака>DevOps security.

  3. Введите имя вашего репозитория в строку поиска, например, zava-webshop.

  4. Убедитесь, что она принадлежит организации, которую вы отслеживаете, например, организации zava-corporation .

  5. Проверьте наличие каких-либо результатов для репозитория.

  6. Убедитесь, что состояние расширенной безопасностивключено. Эта настройка показывает, что GitHub Advanced Security включена на контролируемом репозитории.

  7. Если ваш репозиторий не найден, см. краткое руководство по начальной настройке коннектора GitHub с инструкциями по устранению неполадок и настройке.

  8. Убедитесь, что для соединителя GitHub включено безагентное сканирование.

    Screenshot of Plan Configuration in Defender CSPM with Agentless code scanning toggled on and all scanner options enabled.Screenshot of Plan Configuration in Defender CSPM with Agentless code scanning toggled on and all scanner options enabled.Screenshot of Plan Configuration in Defender CSPM with Agentless code scanning toggled on and all scanner options enabled.Screenshot of Plan Configuration in Defender CSPM with Agentless code scanning toggled on and all scanner options enabled.Скриншот конфигурации плана в Defender CSPM с агентским сканированием, включенным, и включенными всеми параметрами сканера.

Шаг 2. Проверка готовности среды

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

  • Microsoft Defender для облака постоянно отслеживает репозитории исходного кода для уязвимостей безопасности.
  • Артефакты сборки, такие как образы контейнеров, сканируются в контейнерных реестрах перед развертыванием.
  • Нагрузки среды выполнения, развернутые в кластерах Kubernetes, отслеживаются на предмет рисков безопасности.
  • Defender для облака сопоставляет и отслеживает каждый артефакт от кода, через этап сборки и развертывания, до времени выполнения и обратно.

Note

После выполнения предыдущих шагов результаты могут появиться в течение 24 часов.

Проверьте сквозную видимость от кода до среды выполнения

Проверьте, что сканирование без агента GitHub находит репозиторий.

Перейдите к Microsoft Defender для облака>Cloud Security Explorer и выполните запрос. Запросы валидации тестируют, способен ли Defender идентифицировать артефакты, произведенные вашими конвейерами и рабочими нагрузками. Если запросы возвращают результаты, это означает, что сканирование и корреляция работают должным образом.

Снимок экрана Cloud Security Explorer в Defender для облака, показывающий запрос на отправку образов контейнеров в репозиторий GitHub.

Note

Если результаты не возвращаются, это может указывать на то, что артефакты еще не созданы, сканирование не настроено или отсутствуют разрешения. Дополнительные сведения см. в разделе "Роли пользователей и разрешения ".

  1. В Реестр контейнеров Azure проверьте, что Defender для облака просканировал образ контейнера и использовал его для создания контейнера.

  2. В запросе добавьте условия для конкретного развертывания.

    Снимок экрана Cloud Security Explorer в Defender для облака с запросом для push-операций в репозитории GitHub, связанных с контейнерными образами с уязвимостями.

  3. Убедитесь, что контейнер запущен и что Defender для облака сканировал кластер AKS.

    Скриншот Cloud Security Explorer от Defender для облака, показывающий запрос для push-файлов GitHub к образам контейнеров с уязвимостями.

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

Note

Этот шаг необходим, только если факторы риска еще не настроены в вашей среде. Если вы уже используете факторы риска, вы можете проверить их конфигурацию в разделе «Критические параметры>ресурсов».

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

Note

После того как вы классифицируете ресурс как критический, может потребоваться до 12 часов, чтобы Defender для облака отправил данные в GitHub. Дополнительные сведения см. в разделе Назначение приоритетов оповещениям Dependabot и оповещениям сканирования кода.

Шаг 3. Создание кампании GitHub

Чтобы создать сканирующую кампанию, работайте на уровне организации GitHub. Этот интерфейс недоступен на уровне отдельного репозитория.

  1. В GitHub перейдите в организацию GitHub, используемую для тестирования установки.

  2. Выберите Кампании безопасности>Создать кампанию>из фильтров сканирования кода>.

    Кампания по анализу рисков во время выполнения помогает расставлять приоритеты для результатов GitHub Advanced Security (GHAS), связанных с кодом, который фактически развернут и выполняется.

  3. Выберите фильтры рисков среды выполнения для кампании.

    Снимок экрана создания кампании по сканированию кода в GitHub с панелью фильтров, кнопкой

    Скриншот диалогового окна с расширенными фильтрами для создания кампании в GitHub с фильтром риска среды выполнения и открытым меню выбора факторов риска.

  4. Выберите Сохранить>Опубликовать как кампанию. Введите необходимые сведения и опубликуйте кампанию.

  5. Отслеживать продвижение кампании.

    Скриншот страницы кампании на GitHub, показывающей просроченное состояние, индикатор хода выполнения кампании, список критических оповещений и параметры фильтрации.

Шаг 4: Действуйте по рекомендациям

Используйте функцию кода во время выполнения рекомендаций Containers VA и корреляцию выявленных CVE с оповещениями безопасности Dependabot , чтобы понять статус проблем с безопасностью. Затем вы можете назначить рекомендацию по устранению соответствующей группе инженеров на основе сопоставления кода с средой выполнения.

  1. На портале Defender для облака перейдите на вкладку "Рекомендации ".

  2. Найдите имя контейнера, созданного из репозитория кода.

  3. Откройте одну из рекомендаций Обновление программного обеспечения. Название рекомендации начинается с Update.

  4. Выберите Связанные CVE.

    Оповещения о безопасности появляются как часть процесса оценки рекомендаций. Эти оповещения указывают на результаты проверки GitHub Advanced Security, уже известные инженерной команде. Некоторые идентификаторы CVE содержат ссылку «Просмотреть на GitHub» в столбце «Связанные оповещения GitHub».

    Снимок экрана вкладки 'Находки' в Defender для облака, показывающей оповещения CVE-2024-21409, состояние исправления, оценки CVSS и всплывающее окно со сведениями об оповещении GitHub.

Выберите ссылку, чтобы открыть соответствующее оповещение системы безопасности GHAS. Чтобы просматривать содержимое оповещений GHAS в GitHub, необходимо иметь права доступа к соответствующему репозиторию GitHub. Если у вас нет прав доступа, вы всегда можете скопировать ссылку для следующего использования или связаться с администратором GitHub.

Если в столбце Related GitHub Alerts отображается совпадающее оповещение Dependabot, эта уязвимость уже известна инженерам. Если статус оповещения активен, никто ещё не исправил проблему, и для исправления нужно приоритетное решение.

Если в столбце не отображается совпадающее оповещение GitHub, CVE представляет собой риск во время выполнения, неизвестный инженерам, который необходимо приоритизировать для исправления.

Создать проблему на GitHub

Чтобы закрыть цикл между группами безопасности и инженерами, можно создать проблему GitHub, которая определяет приоритеты проблем безопасности, на которые должна сосредоточиться команда инженеров. Эта приоритетность может включать передачу результатов, которые GHAS не обнаружил, но Defender для облака обнаружил CVE-идентификаторы, которые не входят в состав прямых зависимостей. Эти результаты могут включать уязвимости в базовом образе, операционной системе или программном обеспечении, например NGINX.

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

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

  1. Перейдите в Remediation Insights и просмотрите диаграмму перехода от кода к среде выполнения. Схема сопоставляет запущенный контейнер с образом контейнера в репозитории кода и репозиторием кода источника в GitHub.

    Снимок экрана:

    1. На вкладке Аналитика по исправлению просмотрите затронутое поле Runtime.

    2. Проверьте, существует ли уже задача в GitHub. Если проблема GitHub уже существует, в поле отображается значок GitHub. Наведите указатель мыши на значок, чтобы просмотреть сведения о проблеме.

    3. Если проблема не существует и у вас есть необходимые разрешения, можно создать новую GitHub проблему. Выберите Принять меры.

    4. Выберите параметр Создать задачу в GitHub из всплывающего окна.

    5. Если проблема была создана успешно, вы видите всплывающее уведомление со ссылкой на неё. Проблема создается в репозитории кода источника.

      Скриншот списка задач GitHub, показывающий открытые задачи для зависимостей с такими метками, как Defender для облака и безопасность.

    Note

    Если опция Generate GitHub не доступна, возможно, у вас нет разрешений на GitHub или репозитории. Чтобы запросить доступ, обратитесь к администратору GitHub или репозитория.

    Screenshot с созданной проблемой GitHub для открытой зависимости с Defender для облака и метками безопасности.

    1. Отслеживайте изменения владельца и статуса. Изменения в статусе выпуска или назначениях, сделанных в GitHub, отражены в Microsoft Defender для облака. Это позволяет отслеживать ответственных лиц и ход устранения в представлении Рекомендации.

      Скриншот страницы рекомендаций Microsoft Defender для облака, показывающей высоко рисковые проблемы с всплывающим окном деталей проблемы GitHub.

Сделайте агентные исправления

Если у вас есть лицензия GitHub Copilot, вы можете решить проблему с помощью агента по программированию GitHub:

  1. Назначьте агент GitHub для кодирования на задачу.
  2. Просмотрите созданное исправление.
  3. Если исправление кажется разумным, примените его.
  4. Обратите внимание, что Defender для облака обновляет состояние проблемы на закрытое.