Приём результатов уязвимостей Google Artifact Registry

Материал из Документация Ключ-АСТРОМ

Приём результатов уязвимостей Google Artifact Registry

Эта интеграция управляется и развёртывается через Security Operations.

Приоритизируйте уязвимости образов контейнеров Google Artifact Registry с контекстом времени выполнения из производства.

Начало работы

Обзор

Интеграция Ключ-АСТРОМ с Google Artifact Registry позволяет унифицировать и контекстуализировать результаты безопасности по инструментам и продуктам, обеспечивая центральную приоритизацию, визуализацию и автоматизацию.

Google Artifact Analysis генерирует результаты уязвимостей для образов контейнеров, загруженных в Artifact Registry. Платформа Ключ-АСТРОМ наблюдает за сущностями времени выполнения, такими как контейнеры, связанными с этими образами. Приём результатов уязвимостей из Artifact Registry помогает анализировать и приоритизировать эти результаты в контексте ваших производственных приложений.

Варианты использования

С принятыми данными вы можете реализовать различные сценарии, такие как:

  • Визуализация и анализ результатов безопасности
  • Обнаружение пробелов в покрытии результатов безопасности
  • Автоматизация и оркестрация результатов безопасности

Требования

Ниже приведены требования для Google Cloud Platform и Ключ-АСТРОМ.

Требования Google Cloud Platform

  • Установите и настройте последнюю версию GCP CLI.
  • Включите Google Cloud Infrastructure Manager API.
  • Настройте сервисную учётную запись Google Cloud для использования с Infrastructure Manager.
  • Убедитесь, что тема Pub/Sub по умолчанию container-analysis-occurrences-v1 существует.

Требования Ключ-АСТРОМ

  • Сгенерируйте токен доступа с областью openpipeline.events_security и сохраните его для дальнейшего использования.

Настройка интеграции

  1. Опционально: при первом использовании gcloud CLI войдите в систему и настройте свой проект.
gcloud auth login
gcloud config set project <PROJECT_ID>
gcloud config set compute/region <REGION>
  1. Сохраните токен доступа Ключ-АСТРОМ как секрет в GCP, выполнив следующую команду в GCP CLI.
echo -n "<Astromkey access token>" | gcloud secrets create dt-security-api-token --data-file=-

Замените <astromkey access token> на сгенерированный токен для приёма событий безопасности.

Опционально: назовите секрет в соответствии с вашими стандартами. Имя по умолчанию в команде — dt-security-api-token. Этот идентификатор используется на следующих шагах.

  1. Клонируйте репозиторий cloud-snippets с открытым исходным кодом Ключ-АСТРОМ из GitHub и перейдите в каталог gcp/google-artifact-registry-security-integration.
git clone --filter=blob:none --sparse https://github.com/astromkey-oss/cloud-snippets.git
cd cloud-snippets
git sparse-checkout set gcp/google-artifact-registry-security-integration
cd gcp/google-artifact-registry-security-integration
  1. Создайте файл terraform/terraform.tfvars с соответствующими значениями переменных. Вы можете использовать образец файла, предоставленный в terraform/terraform.tfvars.example. Пример содержимого:
project_id             = "PROJECT_ID"
region                 = "europe-west1"
gcp_org_id             = "123456789"
gcp_org_name           = "your-organization"
dt_base_url            = "https://MY_ENV.live.astromkey.com"
dt_api_token_secret_id = "dt-security-api-token"

Используйте тот же идентификатор секрета для сохранённого токена Ключ-АСТРОМ из шага 2 (например, dt-security-api-token).

Полный список переменных можно найти в файле terraform/variables.tf.

  1. Создайте развёртывание Infrastructure Manager, выполнив следующую команду:
gcloud infra-manager deployments apply \
  projects/<PROJECT_ID>/locations/<REGION>/deployments/artifact-analysis-dt-export \
  --service-account projects/<PROJECT_ID>/serviceAccounts/<SERVICE_ACCOUNT_EMAIL> \
  --local-source="terraform" \
  --inputs-file="terraform/terraform.tfvars"

Где SERVICE_ACCOUNT_EMAIL — это электронная почта сервисной учётной записи Google Cloud с разрешениями на использование Infrastructure Manager, а PROJECT_ID и REGION соответствуют проекту и региону, где будет создано развёртывание Infrastructure Manager.

  1. После того как произойдут первые сканирования и будут отправлены в Ключ-АСТРОМ, проверьте события, выполнив следующий запрос в Notebooks:
fetch security.events
| filter dt.system.bucket == "default_securityevents"
| filter event.kind == "SECURITY_EVENT"
    AND event.provider == "Google Artifact Registry"
  1. Чтобы удалить развёртывание, связанное с интеграцией, выполните:
gcloud infra-manager deployments delete \
  projects/<PROJECT_ID>/locations/<REGION>/deployments/artifact-analysis-dt-export

Детали

Как это работает

Интеграция Google Artifact Registry — результаты уязвимостей проходят из Artifact Registry через Pub/Sub и Cloud Run в OpenPipeline Ключ-АСТРОМ, где они сохраняются как события безопасности.

События принимаются в Ключ-АСТРОМ

События Google Artifact Analysis отправляются в тему Google Pub/Sub, которая запускает функцию Cloud Run. Все события, поступающие в тему container-analysis-occurrences-v1, пересылаются в функцию Cloud Run.

Функция Cloud Run предварительно обрабатывает события и отправляет их в Ключ-АСТРОМ с помощью выделенной конечной точки приёма событий безопасности OpenPipeline. Принимаются только события с kind: VULNERABILITY; все остальные пропускаются.

Результаты безопасности обрабатываются и сохраняются

Принятые данные сопоставляются с Семантическим словарём Ключ-АСТРОМ.

Данные хранятся в Ключ-АСТРОМ в унифицированном формате в бакете по умолчанию default_securityevents.

Лицензирование и затраты

Информацию о выставлении счетов см. в разделе «События».

Часто задаваемые вопросы

Какая модель данных используется для событий безопасности из Google Artifact Registry? События результатов уязвимостей хранят отдельные результаты уязвимостей, о которых сообщается для каждого затронутого образа контейнера.

Откуда поступают полные данные об уязвимостях? Google Artifact Analysis сообщает очень ограниченные данные в сообщении Pub/Sub, отправляемом в container-analysis-occurrences-v1. Чтобы дополнить эти данные, функция Cloud Run вызывает следующие API:

  • Artifact Analysis project.occurrences.get
  • Artifact Registry projects.locations.repositories.packages.tags.get

Сообщаются только occurrences с kind: VULNERABILITY.

Какие дополнительные поля добавляются к событиям, принятым из Google Artifact Registry? Пространство имён gcp добавляется для хранения информации, связанной с GCP.

Как нормализуется оценка риска для результатов Google Artifact Registry? Ключ-АСТРОМ нормализует серьёзность и оценки риска для всех результатов, принятых через эту интеграцию. Это помогает согласованно приоритизировать результаты независимо от их источника.

  • dt.security.risk.level сопоставляется из эффективного уровня серьёзности, определённого Google Artifact Registry.
  • dt.security.risk.score сопоставляется напрямую из эффективного уровня серьёзности.
dt.security.risk.level (сопоставлено из finding.severity) dt.security.risk.score
CRITICAL → CRITICAL 10,0
HIGH → HIGH 8,9
MEDIUM → MEDIUM 6,9
LOW → LOW 3,9
MINIMAL → NONE 0,0
SEVERITY_UNSPECIFIED → NOT_AVAILABLE 0,0

Как устранить неполадки, если события не отображаются в Ключ-АСТРОМ? Если события не отображаются в Ключ-АСТРОМ, проверьте логи функции Cloud Run:

  • В Google Cloud Console перейдите в Cloud Run functions > dt-artifact-analysis (или имя вашей функции, если вы его изменили) > Logs.
  • Отфильтруйте по astromkey.
  • Если события отправляются в Ключ-АСТРОМ, вы увидите сообщение astromkey ingest successful.
  • Если события не отправляются в Ключ-АСТРОМ, вы увидите сообщение astromkey ingest failed с подробностями ошибки.