Сегодня разбираем, как обеспечить безопасность цепочки поставок в Docker на примере практического гайда Shamsher Khan: Advanced Docker Security: From Supply Chain Transparency to Network Defense. Подробно разберем обеспечение прозрачности цепочки поставок с помощью SBOM, спецификации ПО (Lab 07), а подробнее об установке эшелонированной защиты от DDoS и ботов (Lab 08) можете прочесть здесь.
• В 2021 инцидент с Log4Shell, ошибкой в библиотеке Log4j, указал на большую проблему современной разработки – незнание состава контейнеров.
• Кибератака SolarWinds произошла в том же году, что инцидент выше.
1. Обеспечение прозрачности цепочки поставок с помощью SBOM (Lab 07)
2. Эшелонированная защита от DDoS и ботов (Lab 08)
Рассмотрим Dockerfile:
FROM python:3.11-slim
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py . CMD ["python", "app.py"]
Вопрос знатокам: какие пакеты в этом образе?
SBOM позволяет получить полный список всех компонентов, версий и лицензий, сгенерированный за секунды.
В статье представлен демо-скрипт для выполнения с последовательностью из 12-ти шагов.
# Install Syft (SBOM generation)
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
# Install Grype (vulnerability scanning)
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
# Verify installation
syft version grype version
From a Docker image
syft nginx:alpine -o spdx-json > nginx-sbom.json
# From a directory
syft dir:./myapp -o cyclonedx-json > myapp-sbom.json
# Multiple formats at once
syft nginx:alpine -o spdx-json=sbom.spdx.json -o cyclonedx-json=sbom.cdx.json
# Scan the SBOM
grype sbom:./nginx-sbom.json
# Or scan image directly
grype nginx:alpine
# Generate SBOMs for two versions
syft myapp:v1.0 -o json > v1.0-sbom.json
syft myapp:v2.0 -o json > v2.0-sbom.json
# Compare (using provided script)
./compare-sboms.sh v1.0-sbom.json v2.0-sbom.json
# Scan the SBOM
grype sbom:./nginx-sbom.spdx.json
# Or scan image directly
grype nginx:alpine
# Only show CRITICAL and HIGH
grype nginx:alpine --fail-on high
# Only show CRITICAL
grype nginx:alpine --fail-on critical
# Show only specific severity
grype nginx:alpine -o json | jq '.matches[] | select(.vulnerability.severity == "High")'
# Export vulnerabilities to JSON
grype nginx:alpine -o json > vulnerabilities.json
В шагах 7 и 8 сравниваем версии SBOM и ищем конкретные пакеты, а в 9 – рассматривает отчёт/журнал SBOM
azure-pipeline.yml
- task: Docker@2
inputs:
command: build
dockerfile: '**/Dockerfile'
tags: $(Build.BuildId)
- script: |
syft $(imageName):$(Build.BuildId) -o spdx-json > sbom.json
displayName: 'Generate SBOM'
- script: |
grype sbom:./sbom.json --fail-on high
displayName: 'Scan for Vulnerabilities'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: 'sbom.json'
artifactName: 'SBOM'
• Syft – установка SBOM
• Grype – выявление уязвимостей
• Docker Security Practical Guide – полный гайд с Lab 07 и Lab 08
#devsecops #SBOM #zerotrust #kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍9❤5🔥4
Новостной дайджест от DevOps FM!
🔔 Выходим в эфир с подборкой новостей и практических разборов.
⏺ В блоге Sysdig опубликовали отчёт по безопасности. В июне среди причин инцидентов выделили ошибки конфигурации, свободный доступ к открытым ресурсам в облаке.
Также в отчёте разобрали атаки от 8 июня на Tchap с кражей 13,5 ГБ данных, и от 11 июня с выводом 1,3 ТБ данных. В первом случае в открытый доступ попали email-адреса и сведения об организациях более 73 тыс. из 600 тыс. учетных записей. Детали отчёта – здесь.
⏺ В понедельник вышел релиз OpenSSH версии 10.4. Из нового добавили экспериментальную поддержку схемы подписи ML-DSA 44 + Ed25519, включили реализацию на основе NFA и ужесточили требования к протоколу SSH при обмене ключами. Усилили безопасность и устранили уязвимости в
⏺ С релизом Docker Desktop 4.81.0 от 6 июля обновили Docker Compose до версии 5.2.0 и Docker Scout CLI v1.22.0. Также внесли исправления для работы с kind-кластерами, улучшили загрузку образов и устранили проблему с остановкой контейнеров. В новой версии Docker Desktop учитывает заданные таймауты вместо принудительного завершения через 1 секунду. Все изменения – здесь.
⏺ На портале FreeCodeCamp вышла статья о включении политик нулевого доверия в Kubernetes. Дестини Эрхабор подробно разбирает идентификацию рабочих нагрузок через SPIFFE, SPIRE и Cilium.
На примере Kind-кластера он показывает, почему традиционные политики безопасности, не работают в динамической среде Kubernetes, а также объясняет, как Cilium реализует аутентификацию (mTLS) без Sidecar. Демо – тут.
⏺ На Info Q Мэтт Сондерс разобрал архитектуру HubSpot и рассказал, как компания масштабировала платформу семантического поиска до 20 млрд векторов.
Внутренняя платформа Vector as a Service (VaaS) работает поверх Qdrant и обеспечивает контроль доступа, версионирование данных и сбор обратной связи. Сейчас система обслуживает 38+ команд, включает 200+ индексов, 140+ кластеров в пяти регионах и двух окружениях, а пиковая нагрузка достигает 100 тыс. запросов в секунду.
Как HubSpot сократил время запуска кластеров с Kubernetes Operator читайте – здесь.
#новостная_подборка #devops #kubernetes #openssh #zerotrust
Также в отчёте разобрали атаки от 8 июня на Tchap с кражей 13,5 ГБ данных, и от 11 июня с выводом 1,3 ТБ данных. В первом случае в открытый доступ попали email-адреса и сведения об организациях более 73 тыс. из 600 тыс. учетных записей. Детали отчёта – здесь.
ssh(1), sshd(8), scp(1) и sftp(1). Подробнее об улучшениях – тут.На примере Kind-кластера он показывает, почему традиционные политики безопасности, не работают в динамической среде Kubernetes, а также объясняет, как Cilium реализует аутентификацию (mTLS) без Sidecar. Демо – тут.
Внутренняя платформа Vector as a Service (VaaS) работает поверх Qdrant и обеспечивает контроль доступа, версионирование данных и сбор обратной связи. Сейчас система обслуживает 38+ команд, включает 200+ индексов, 140+ кластеров в пяти регионах и двух окружениях, а пиковая нагрузка достигает 100 тыс. запросов в секунду.
Как HubSpot сократил время запуска кластеров с Kubernetes Operator читайте – здесь.
#новостная_подборка #devops #kubernetes #openssh #zerotrust
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍4❤3🔥3