
Внешний мониторинг целостности цепочки поставок для проектов с открытым исходным кодом Aqua Security.
Этот репозиторий непрерывно отслеживает целостность опубликованных артефактов Aqua Security — контейнерных образов, релизов GitHub, Git-тегов и файлов релизов — записывая и проверяя криптографические дайджесты с течением времени. Для подписанных артефактов он также проверяет подписи cosign Sigstore по журналу прозрачности Rekor.
Запланированный рабочий процесс GitHub Actions запускается каждые 10 минут и сравнивает текущие дайджесты артефактов с ранее сохранённым состоянием. Если какой-либо дайджест неожиданно изменился, рабочий процесс завершается с ошибкой и создаёт Issue на GitHub с подробностями.
Атаки на цепочку поставок ПО часто нацелены на каналы распространения:
Такие атаки сложно обнаружить изнутри целевого репозитория, поскольку злоумышленник с достаточным доступом может также отключить мониторинг внутри репозитория. Внешний мониторинг из отдельного репозитория к этому невосприимчив.
.sig-теги), так и новый формат пакета Sigstore (OCI Referrers API и файлы релизов .sigstore.json).| Режим | Расписание | Что проверяется |
|---|---|---|
| Быстрый | Каждые 10 мин | Последние теги образов, все релизы/теги, без cosign |
| Полный | Каждые 6 часов | Все теги образов, проверка cosign, глубокая проверка файлов |
Состояние хранится в TSV-файлах в каталоге state/ (по одному на цель). Каждая строка содержит тип артефакта, идентификатор, дайджест, статус подписи и дату создания. Изменения файлов состояния фиксируются рабочим процессом, что обеспечивает полный аудит через историю Git.
При обнаружении нарушения целостности рабочий процесс:
| Проект | Релизы | Теги | Контейнерные образы | Cosign | Состояние |
|---|
| trivy | Да | Да | GHCR, ECR Public, Docker Hub | Да | state/trivy.tsv |
| trivy-action | Да | Да | — | — | state/trivy-action.tsv |
| setup-trivy | Да | Да | — | — | state/setup-trivy.tsv |
| trivy-operator | Да | Да | GHCR, Docker Hub | Да | state/trivy-operator.tsv |
| kube-bench | Да | Да | Docker Hub | — | state/kube-bench.tsv |
| tfsec | Да | Да | GHCR, Docker Hub | — | state/tfsec.tsv |
| tracee | Да | Да | Docker Hub | Да | state/tracee.tsv |
| kube-hunter | Да | Да | Docker Hub | — | state/kube-hunter.tsv |
| k8s-node-collector | Да | Да | GHCR | Да | state/k8s-node-collector.tsv |