Vilicus-это инструмент с открытым исходным кодом, который организует сканирование безопасности контейнеров (Docker/OCI) и централизует все результаты в базе данных для дальнейшего анализа и показателей.
Зачем сканировать уязвимости?
Недавний Анализ Из примерно 4 миллионов изображений Docker Hub фирмы Cyber Security Prevasio обнаружили, что 51% изображений имели уязвимости для использования. Большое количество из них были шахтерами криптовалюты, как открытыми, так и скрытыми, и 6432 изображений имели вредоносное ПО. https://www.infoq.com/news/2020/12/dockerhub-image-vulnerabilities/
Изображение от https://prevasio.com/static/web/viewer.html?file=/static/Red_Kangaroo.pdf
Сканирование безопасности изображений Docker — это процесс поиска уязвимостей безопасности в файлах изображений Docker. Как правило, сканирование изображений работает, анализируя пакеты или другие зависимости, которые определены в файле изображения контейнера, а затем проверяя, есть ли какие -либо известные уязвимости в этих пакетах или зависимостях. https://resources.whitesourcesoftware.com/blog-whitesource/docker-image-security-scanning
Как это работает?
Есть много инструментов для сканирования контейнеров для уязвимостей, таких как Якорь , CLAIR и Триви Анкет Но иногда результаты одного и того же изображения могут быть разными. И этот проект предназначен для того, чтобы помочь разработчикам улучшить качество своих контейнерных изображений, находя уязвимости и, таким образом, обращаясь к ним с агностическим зрелищем от поставщиков.
Некоторые статьи сравнивают инструменты сканирования:
Раунда сканера с открытым исходным кодом: Clair vs Anchore vs Trivy
5 инструментов с открытым исходным кодом для безопасности контейнеров
Архитектура
Кэшированная база данных
Vilicus ежедневно обновляет базы данных поставщиков с последними изменениями в DBS Vulns.
Используя стратегию для хранения данных базы данных в слоях изображений Docker, вся платформа готова к использованию за считанные минуты, а не часы. Запуск синхронизации с Vulns с нуля может занять не менее 6 часов.
Проверьте стратегию, используемую в Якорь , CLAIR и Триви
Местный реестр
Vilicus предоставляет локальный реестр, поэтому вы можете построить локальный образ и сканировать его, не подтолкнув его к удаленному хранилищу.
docker build -t localhost:5000/local-image:my-tag . curl -o docker-compose.yml https://raw.githubusercontent.com/edersonbrilhante/vilicus/main/deployments/docker-compose.yml docker-compose up -d IMAGE=localregistry.vilicus.svc:5000/local-image:my-tag docker run -v ${PWD}/artifacts:/artifacts \ --network container:vilicus \ vilicus/vilicus:latest \ sh -c "dockerize -wait http://vilicus:8080/healthz -wait-retry-interval 60s -timeout 2000s vilicus-client -p /opt/vilicus/configs/conf.yaml -i ${IMAGE} -t /opt/vilicus/contrib/sarif.tpl -o /artifacts/results.sarif"
Действие GitHub
Действия GitHub позволяют легко автоматизировать все ваши рабочие процессы программного обеспечения, теперь с CI/CD мирового класса. Создайте, тестируйте и разверните свой код прямо из GitHub. Сделайте обзоры кода, управление филиалами и выпуска, занимаясь работой так, как вы хотите. https://github.com/features/actions
Vilicus предоставляет GitHub Action Чтобы помочь вам сканировать изображения контейнеров в вашем CI/CD.
Сканирование контейнера
Сканирование можно сделать с помощью удаленного изображения и локального изображения. Использование удаленного репозитория, такого как Docker.io Изображение будет docker.io/your-organization/image:tag
:
- name: Scan image uses: edersonbrilhante/vilicus-github-action@main with: image: "docker.io/myorganization/myimage:tag"
И использовать локальное изображение, необходимо пометить как Localhost: 5000/Image: Tag
:
- name: Scan image uses: edersonbrilhante/vilicus-github-action@main with: image: "localhost:5000/myimage:tag"
Полный пример
Полный пример с шагами для очистки пространства, строительства локального изображения, сканирования Vilicus и Загрузка результатов в безопасность GitHub
name: Container Image CI on: [push] jobs: build runs-on: ubuntu-latest steps: - name: Maximize Build Space uses: easimon/maximize-build-space@master with: root-reserve-mb: 512 swap-size-mb: 1024 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' - name: Checkout branch uses: actions/checkout@v2 - name: Build the Container image run: docker build -t localhost:5000/local-image:${GITHUB_SHA} . - name: Vilicus Scan uses: edersonbrilhante/vilicus-github-action@main with: image: localhost:5000/local-image:${{ github.sha }} - name: Upload results to github security uses: github/codeql-action/upload-sarif@v1 with: sarif_file: artifacts/results.sarif
Приводит к безопасности GitHub
Проверьте пример Использование действия Vilicus GitHub
Пример трубопровода
Список со всеми найденными Вульнами
Детали VULN
Исходный код
Vilicus Github Action
Виликус
Вот и все!
Если у вас есть какие -либо вопросы, оставьте здесь комментарий или пинг меня на 🔗 LinkedIn Анкет
Оригинал: «https://dev.to/edersonbrilhante/vilicus-a-overseer-for-security-scanning-of-container-images-eji»