Приём результатов уязвимостей 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и сохраните его для дальнейшего использования.
Настройка интеграции
- Опционально: при первом использовании gcloud CLI войдите в систему и настройте свой проект.
gcloud auth login gcloud config set project <PROJECT_ID> gcloud config set compute/region <REGION>
- Сохраните токен доступа Ключ-АСТРОМ как секрет в GCP, выполнив следующую команду в GCP CLI.
echo -n "<Astromkey access token>" | gcloud secrets create dt-security-api-token --data-file=-
Замените <astromkey access token> на сгенерированный токен для приёма событий безопасности.
Опционально: назовите секрет в соответствии с вашими стандартами. Имя по умолчанию в команде — dt-security-api-token. Этот идентификатор используется на следующих шагах.
- Клонируйте репозиторий
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
- Создайте файл
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.
- Создайте развёртывание 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.
- После того как произойдут первые сканирования и будут отправлены в Ключ-АСТРОМ, проверьте события, выполнив следующий запрос в Notebooks:
fetch security.events
| filter dt.system.bucket == "default_securityevents"
| filter event.kind == "SECURITY_EVENT"
AND event.provider == "Google Artifact Registry"
- Чтобы удалить развёртывание, связанное с интеграцией, выполните:
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.getArtifact 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с подробностями ошибки.