Ранее я сканировал изображения Ad-Hoc, используя тривею. Теперь я могу отсканировать все в моих гитапсах репо.
Предыдущий пост о Trivey это здесь Отказ
Найти изображения для сканирования
Так как я отслеживаю все мои развертывания в Git в Kasuboski/K8S-Gitops Я могу найти все изображения из файлов в этом репо. Для простого случая просто найти его из объектов Kubernetes, я могу использовать команду ниже, которая находит изображения, удаляет цитаты и обеспечивает уникальную. Magic 🧙♂️.
ack --type yaml 'image: (.*)' --output '$1' -h --nobreak | tr -d \"\' | sort -u
Это выводит все после «изображения:». Это работает для ресурсов Kubernetes, и он также поднял некоторые значения в файле значений HELM. Я оказываю проявления, используя kustomize, что может изменить изображения и удалять удаленно. Это означает, что я действительно должен управлять этой командой на представленных проявлениях.
Я рассматривал возможность оказания всего в Git вместо того только на кластере (в аргуциде). Это будет захватывать точный YAML, который был применен и облегчает этот анализ.
Сканирование с тривея
Вы можете использовать Скаргс Чтобы запустить сканирование для каждого изображения. Я сделал это изначально просто трубопроводом к Trivey Image. , но немедленно ударил предел скорости GitHub. Я думал, что тривея повторно использует кэш базы данных, но, похоже, это не происходило. Они позволяют вам пройти Github токен Увеличить предел, но это казалось больше усилий.
Вместо этого я решил использовать режим клиентского сервера Trivey. Это давайте запустим сервер, который выполняет сканирование, и ваш клиент общается с ним.
Чтобы запустить сервер:
trivy server
Затем (в другом терминале) запустите Trivey Client Для каждого изображения:
ack --type yaml 'image: (.*)' --output '$1' -h --nobreak | tr -d \"\' | sort -u | xargs -L1 trivy client --severity HIGH,CRITICAL --ignore-unfixed
Это дает вывод как ниже:
Он не проанализировал изображение, который имел только манифест руки (Я побежал это на своем рабочем столе AMD64)
Следующие шаги 🦶.
Я хотел бы провести это неоднократно, как действие GitHub на самом репо. Может быть легче просто использовать токен GitHub для ограничения скорости в этом случае. Я также хочу проанализировать оказанные проявления.
Я рассматриваю возможность создания собственного реестра, чтобы отразить мои изображения, такие как Гавань Отказ Гавань может запустить периодические кривые сканы сама по себе и сделать доступные результаты. Также есть экспериментальная Trivy-Enforcer Проект, который работает в кластере и может обеспечить обеспечение того, чтобы все изображения, работающие в вашем кластере, безопасны.
Эта комбинация статического анализа и исполнения времени выполнения должна принести его довольно сложно иметь известное плохое изображение.
Оригинал: «https://dev.to/kasuboski/scan-container-images-found-in-files-557k»