Приём событий безопасности и качества, метрик и логов аудита SonarQube
Приём событий безопасности и качества, метрик и логов аудита SonarQube
Расширение
Приоритизируйте риски кода SonarQube с учётом контекста продуктивной среды.
Начало работы
Обзор
Интеграция Ключ-АСТРОМ с SonarQube позволяет объединять и контекстуализировать обнаружения уязвимостей из инструментов и продуктов DevSecOps, обеспечивая централизованную приоритизацию, визуализацию и автоматизацию обнаружений безопасности.
SonarQube создаёт обнаружения уязвимостей по артефактам разработки, таким как код и файлы конфигурации. Платформа Ключ-АСТРОМ наблюдает за соответствующими сущностями среды выполнения, связанными с этими артефактами. Загрузка и обогащение обнаружений уязвимостей помогают сосредоточиться на главных рисках, влияющих на продуктивные приложения.
В этой интеграции помимо логов аудита и событий безопасности Ключ-АСТРОМ загружает различные метрики качества SonarQube и создаёт события жизненного цикла разработки SDLC, отражающие оценки артефактов, выполненные в рамках конвейера SDLC. Это позволяет командам разработки получить более полную картину качества своих приложений и сервисов, а SRE — лучше видеть и контролировать качество развёрнутых артефактов с разных точек зрения.
Сценарии использования
С загруженными данными можно реализовать различные сценарии, например:
- Визуализировать и анализировать обнаружения безопасности
- Выявлять пробелы в покрытии обнаружений безопасности
- Автоматизировать и оркестрировать обнаружения безопасности
Требования
- SonarQube Server Web API v1
Требования SonarQube
Создайте токен API с правами системного администратора и разрешением Browse на проектах, которые нужно отслеживать.
Требования Ключ-АСТРОМ
- Версия АктивныйШлюз 1.313+ с возможностью:
- Запускать фреймворк Extensions 2.0
- Обращаться к URL конечной точки API SonarQube
Разрешения: список необходимых разрешений см. в разделе Расширения — откройте Расширения и просмотрите техническую информацию.
- Создайте токен доступа с областями действия
openpipeline.events_securityиopenpipeline.events_sdlcи сохраните его. Подробности см. в разделе «Токены и аутентификация API Ключ-АСТРОМ».
Активация и настройка
- В Ключ-АСТРОМ найдите SonarQube и выберите Установить.
- Следуйте инструкциям на экране для настройки расширения.
Проверьте конфигурацию, выполнив следующие запросы в Блокнотах:
Для логов аудита:
fetch logs | filter log.source=="SonarQube"
Для событий обнаружения безопасности:
fetch security.events | filter dt.system.bucket == "default_securityevents" | filter event.provider=="SonarQube"
AND event.type=="VULNERABILITY_FINDING"
Для событий сканирования безопасности:
fetch security.events | filter dt.system.bucket == "default_securityevents" | filter event.provider=="SonarQube"
AND event.type=="VULNERABILITY_SCAN"
Для событий SDLC:
fetch events | filter event.kind == "SDLC_EVENT"
AND event.type == "control"| filter event.provider=="SonarQube"
Для метрик:
timeseries {
Vulnerabilities = sum(sonarqube.code.vulnerabilities), Hotspots = sum(sonarqube.security.hotspots), `Hotspots reviewed` = sum(sonarqube.security.hotspots.reviewed), Bugs = sum(sonarqube.bugs), Coverage = sum(sonarqube.code.coverage), `Duplicated lines` = sum(sonarqube.code.duplication), `Code smells` = sum(sonarqube.code.smells)}, interval:3h
После установки и запуска расширения вы можете получить к нему доступ и управлять им в Ключ-АСТРОМ через Расширения. Подробности см. в разделе «О расширениях».
Подробности
Как это работает
Интеграция Ключ-АСТРОМ с SonarQube — это расширение, работающее на АктивныйШлюз Ключ-АСТРОМ. После включения и настройки расширения SonarQube для Ключ-АСТРОМ:
- Оно периодически собирает обнаружения безопасности и логи аудита с помощью SonarQube Web API v1.
- Полученные данные загружаются в Ключ-АСТРОМ и сопоставляются с Семантическим словарём Ключ-АСТРОМ.
- Данные сохраняются в бакете
default_securityevents(подробности см. в разделе «Встроенные бакеты»).
Лицензирование и затраты
Информацию о выставлении счетов см. в разделе о событиях.
FAQ
Какая модель данных используется для логов и событий безопасности, поступающих из SonarQube?
События обнаружения уязвимостей хранят отдельные обнаружения уязвимостей, сообщаемые SonarQube по каждому затронутому артефакту и компоненту.
События сканирования уязвимостей указывают покрытие сканирований для отдельных артефактов.
Логи аудита представляют логи активности пользователей в SonarQube.
События контроля SDLC указывают на запуск проверки контроля.
Какие обнаружения безопасности SonarQube импортируются в Ключ-АСТРОМ?
Если расширение настроено на приём данных с интервалом в n часов, при каждом запуске расширения будут загружаться все обнаружения безопасности, созданные за последние n часов.
При первом приёме рассматриваются все обнаружения, обновлённые за последние m часов, где m — первый интервал приёма, настроенный в конфигурации мониторинга.
Если сканирования не выполнялись, обнаружения не загружаются, даже если в проекте есть открытые проблемы.
Какие поля расширения добавляются к основным полям событий, принятых из SonarQube?
Добавляется пространство имён sonarqube для извлечения ряда специфичных для SonarQube атрибутов, что удобно для пользователя, поверх исходного JSON проблемы, который хранится в поле dt.raw_data.
Примеры полей:
sonarqube.project.namesonarqube.project.idsonarqube.revisionsonarqube.revision.authorsonarqube.tagssonarqube.component
Какие типы ресурсов SonarQube поддерживаются Ключ-АСТРОМ для контекстуализации среды выполнения?
CODE_ARTIFACT: все обнаружения из SonarQube генерируются оценками уязвимостей артефактов кода, установленными со значением CODE_ARTIFACT в поле object.type. Добавляются пространства имён артефакта и кода с соответствующими полями:
artifact.repository: имя репозитория, в котором размещён артефакт.artifact.path: полный путь к файлу, представляющему артефакт кода.code.filepath: включает версию уязвимого компонента.code.line.number: номер строки, где обнаружена проблема.code.line.offset.start: номер первого символа в строке с проблемой.code.line.offset.end: номер последнего символа в строке с проблемой.code.line.start: номер строки, где начинается проблема. Совпадает сcode.line.number.code.line.end: номер строки, где заканчивается проблема.
Как нормализуется оценка риска для обнаружений SonarQube?
Ключ-АСТРОМ нормализует оценки серьёзности и риска для всех обнаружений, принятых через текущую интеграцию. Это помогает согласованно приоритизировать обнаружения независимо от их источника.
Подробности о том, как работает нормализация, см. в разделе «Нормализация серьёзности и оценок».
Уровни и оценки риска Ключ-АСТРОМ сопоставляются из исходных уровней серьёзности SonarQube.
dt.security.risk.levelберётся из уровня серьёзности SonarQube и сопоставляется из исходных значений вfinding.severity.dt.security.risk.scoreсопоставляется из предоставленного SonarQube уровня серьёзности со статическими оценками.
| dt.security.risk.level (сопоставлено с finding.severity) | dt.security.risk.score (сопоставлено с dt.security.risk.level) |
|---|---|
| BLOCKER CRITICAL | 10.0 |
| CRITICAL/HIGH HIGH | 8.9 |
| MEDIUM/MAJOR MEDIUM | 6.9 |
| MINOR/INFO/LOW LOW | 3.9 |
| INFO NONE | 0.0 |