Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
dockerscan — Самый всесторонний сканер безопасности Docker | Kitploit
Инструменты/GitHubGitHub/cr0hn/dockerscan
Сканеры уязвимостейБезопасность контейнеровАудит конфигурацииБезопасность облачных средDevSecOpsОбнаружение СекретовБезопасность Цепочки Поставок
GitHubcr0hn/dockerscan

dockerscan

Самый всесторонний сканер безопасности Docker

Репозиторий
1.7k24712 ч 41 мин назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Логотип DockerScan

DockerScan v2.0

Самый всеобъемлющий сканер безопасности Docker

Лицензия Версия Go Версия CI/CD Покрытие тестами Go Report Card Загрузки

Автор: Daniel Garcia (cr0hn) | GitHub | Веб-сайт


Особенности • Установка • Быстрый старт • Документация • Сценарии использования • Что нового • Участие в разработке


📑 Содержание

  • Обзор
  • Особенности
  • Что нового в v2.0
  • Установка
  • Быстрый старт
  • Использование
    • Аутентификация в частном реестре
  • Сканеры безопасности
  • Форматы вывода
  • Сценарии использования
  • Сравнение
  • Архитектура
  • Участие в разработке
  • Ссылки
  • Лицензия
  • Автор

🎯 Обзор

DockerScan v2.0 — это сканер безопасности нового поколения для контейнеров и образов Docker, полностью переписанный на Go. Он объединяет несколько методов сканирования безопасности на основе последних исследований 2024–2025 годов, отраслевых стандартов (CIS Benchmark, NIST SP 800-190) и реальных шаблонов атак, обнаруженных в производственных средах.

Почему DockerScan v2.0?

  • ✅ Самый всеобъемлющий: Объединяет 5+ методов сканирования безопасности в одном инструменте
  • ✅ Новейшие исследования: Основан на атаках на цепочки поставок 2024–2025 годов и CVE
  • ✅ Готов к производству: Вывод SARIF для CI/CD, коды завершения для автоматизации
  • ✅ Молниеносная скорость: Написан на Go с конкурентным сканированием
  • ✅ Расширяемый: Архитектура плагинов для пользовательских сканеров
  • ✅ Бесплатно и с открытым исходным кодом: Лицензия BSD-3

🌟 Особенности

🛡️ Модули сканирования безопасности

1. CIS Docker Benchmark v1.7.0

Полная проверка соответствия с более чем 80 автоматизированными контролями:

  • ✅ Безопасность конфигурации хоста (13 проверок)
  • ✅ Укрепление демона Docker (18 проверок)
  • ✅ Права доступа к файлам и каталогам (9 проверок)
  • ✅ Лучшие практики образов контейнеров (13 проверок)
  • ✅ Проверка безопасности во время выполнения (31+ проверок)
  • ✅ Соответствие операционным требованиям безопасности

2. Обнаружение атак на цепочку поставок 🆕

Основано на реальных кампаниях атак 2024 года:

  • ✅ Обнаружение контейнеров без образов — Выявляет вредоносные контейнеры без фактических слоёв (4 млн+ найдено на Docker Hub)
  • ✅ Обнаружение криптомайнеров — Выявляет майнинговое вредоносное ПО (обнаружено 120 тыс.+ вредоносных загрузок образов)
  • ✅ Обнаружение библиотек с бэкдорами — Ловит скомпрометированные зависимости (инциденты с xz-utils, liblzma)
  • ✅ Проверка подписи образов — Валидация подписей с помощью Notary/Cosign
  • ✅ Обнаружение фишингового контента — Сканирует документацию на предмет социальной инженерии
  • ✅ Вредоносные сетевые назначения — Идентифицирует C2-серверы, майнинговые пулы, узлы Tor

3. Расширенное обнаружение секретов 🔑

40+ шаблонов секретов, включая современные API (обновление 2024):

  • ✅ Облачные провайдеры: Учётные данные AWS, GCP, Azure
  • ✅ Системы контроля версий: Токены GitHub, GitLab, Bitbucket
  • ✅ AI/ML API: Ключи OpenAI, Anthropic, Hugging Face
  • ✅ Платёжные системы: Ключи Stripe, PayPal, Square
  • ✅ Коммуникации: Ключи Slack, SendGrid, Twilio, Mailchimp
  • ✅ Аутентификация: JWT-токены, OAuth-токены
  • ✅ Криптография: Приватные ключи (RSA, SSH, PGP, EC, DSA), сертификаты
  • ✅ Базы данных: Строки подключения PostgreSQL, MySQL, MongoDB
  • ✅ Docker: Токены аутентификации реестра
  • ✅ Энтропийный анализ: Расчёт энтропии Шеннона для неизвестных секретов (порог >4.5)

4. Сканирование CVE и уязвимостей 🚨

Обнаружение критических CVE 2024–2025:

  • ✅ CVE-2024-21626 — Побег из контейнера runc (CVSS 8.6)
  • ✅ CVE-2024-23651 — RCE через отравление кэша BuildKit (CVSS 9.1)
  • ✅ CVE-2024-23652 — Состояние гонки BuildKit (CVSS 7.5)
  • ✅ CVE-2024-23653 — Повышение привилегий BuildKit
  • ✅ CVE-2024-8695/8696 — RCE в Docker Desktop (CVSS 8.8)
  • ✅ CVE-2025-9074 — Уязвимость локального доступа Docker Desktop
  • ✅ Обнаружение устаревших базовых образов
  • ✅ Сканирование известных уязвимых пакетов

5. Анализ безопасности времени выполнения ⚙️

Проверки укрепления контейнеров во время выполнения:

  • ✅ Аудит возможностей Linux — Выявляет опасные возможности (CAP_SYS_ADMIN, CAP_NET_ADMIN и др.)
  • ✅ Валидация профиля Seccomp — Убеждается, что фильтрация системных вызовов включена
  • ✅ Проверки AppArmor/SELinux — Верификация обязательного контроля доступа
  • ✅ Обнаружение привилегированных контейнеров — Идентифицирует контейнеры с полным доступом к хосту
  • ✅ Изоляция пространств имён — Проверки пространств имён PID, IPC, сети, пользователей
  • ✅ Индикаторы побега из контейнера — Обнаруживает распространённые техники побега

📊 Отчёты и интеграция

  • JSON — Машиночитаемый вывод для автоматизации
  • SARIF — Нативная интеграция с:
    • Вкладкой безопасности GitHub
    • Azure DevOps
    • Расширениями VS Code
    • Панелями безопасности GitLab
  • Красивый CLI — Цветовая кодировка уровней серьёзности с эмодзи
  • Коды завершения — Удобно для CI/CD (0=чисто, 1=предупреждения, 2=критично)

🚀 Производительность

  • ⚡ В 10 раз быстрее альтернатив на Python
  • 🔄 Конкурентное сканирование с помощью горутин Go
  • 💾 Низкое потребление памяти (~50–100 МБ)
  • 📦 Один бинарный файл — без зависимостей

🆕 Что нового в v2.0?

DockerScan v2.0 — это полная переработка с нуля. Вот что изменилось по сравнению с v1.x:

Основные изменения

Что сохранено из v1.x

  • ✅ Инструменты атаки — Возможность троянизации образов (скоро в v2.1)
  • ✅ Операции с реестром — Push, pull, delete (скоро в v2.1)
  • ✅ Сканирование сети — Обнаружение реестров Docker (скоро в v2.1)

Новое в v2.0.5 🔐

  • 🔑 Аутентификация в частном реестре — Полная поддержка сканирования образов из частных реестров (исправляет #24)
  • 🌐 Поддержка нескольких реестров — Docker Hub, GHCR, ECR, GCR, ACR, GitLab и собственные реестры
  • 🔐 Несколько методов аутентификации — Переменные окружения (CI/CD), флаги CLI (тестирование), файл конфигурации Docker (бесшовно)
  • 🎯 Умный приоритет аутентификации — Флаги CLI > Переменные окружения > Docker config (автоматический выбор)
  • 📝 Улучшенные сообщения об ошибках — Подсказки для конкретных реестров (истечение токенов ECR, ограничения скорости, сертификаты)
  • 🧪 Комплексное тестирование — 64 тестовых случая, 91.2% покрытия, протестировано с реальным частным реестром
  • 📚 Полная документация — Примеры для всех основных облачных реестров и методов аутентификации

Новое в v2.0.4

  • 🗄️ Интеграция базы данных CVE — Локальная база данных SQLite с данными NVD (2.5 года CVE)
  • 🔄 Ежедневные автообновления — GitHub Action обновляет базу CVE каждый день
  • ⚡ Параллельные загрузки CVE — 4 рабочих процесса для более быстрой сборки базы (nvd2sqlite)
  • 🔁 Повторные попытки с задержкой — Автоматические повторные попытки при ограничении запросов API NVD
  • 📦 Флаг --from-file — Установка базы CVE из локального файла (офлайн/air-gapped)
  • 🔇 Тихий режим (-q) — Подавление баннера для конвейеров CI/CD
  • 🧹 Уменьшение ложных срабатываний — Улучшенное обнаружение секретов с фильтрацией энтропии

Почему переработка?

  1. Производительность — Go обеспечивает в 10 раз более быстрое сканирование с помощью горутин
  2. Современные угрозы — Включает шаблоны атак 2024–2025 годов
  3. Готовность к предприятию — Вывод SARIF, коды завершения, распространение в одном бинарном файле
  4. Расширяемость — Чистая архитектура плагинов для пользовательских сканеров
  5. Обслуживаемость — Безопасность типов, лучшая обработка ошибок, проще вносить вклад

📦 Установка

Вариант 1: Загрузить готовый бинарный файл (рекомендуется)

Предварительно скомпилированные бинарные файлы автоматически собираются и публикуются через GitHub Actions для каждого тега версии.

Поддерживаемые платформы:

  • Linux: amd64, arm64, 386
  • macOS: amd64 (Intel), arm64 (Apple Silicon)
  • Windows: amd64, arm64, 386
  • FreeBSD: amd64

Linux (amd64)```bash

curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -o dockerscan chmod +x dockerscan sudo mv dockerscan /usr/local/bin/

root@kitploit:~
#### Linux (arm64)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-arm64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/

macOS (Intel)```bash

curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-amd64 -o dockerscan chmod +x dockerscan sudo mv dockerscan /usr/local/bin/

root@kitploit:~
#### macOS (Apple Silicon)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-arm64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/

Windows (PowerShell)```powershell

Invoke-WebRequest -Uri "https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-windows-amd64.exe" -OutFile "dockerscan.exe"

root@kitploit:~
#### Проверка загрузки (необязательно, но рекомендуется)```bash
# Download checksums
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/checksums.txt -o checksums.txt

# Verify (Linux/macOS)
sha256sum -c checksums.txt --ignore-missing

Вариант 2: Сборка из исходного кода```bash

Clone repository

git clone https://github.com/cr0hn/dockerscan cd dockerscan/dockerscan-v2

Build

make build

Install

sudo make install

Or build manually

go build -o bin/dockerscan ./cmd/dockerscan

root@kitploit:~
### Вариант 3: Go Install```bash
go install github.com/cr0hn/dockerscan/v2/cmd/dockerscan@latest

🚀 Быстрый старт

Первоначальная настройка

Перед сканированием загрузите базу данных CVE (обновляется ежедневно, ~30 МБ в сжатом виде):```bash

Download latest CVE database from GitHub

dockerscan update-db

root@kitploit:~
> **Совет**: База данных обновляется ежедневно через GitHub Actions. Запускайте `update-db` периодически, чтобы получить последние данные CVE.

### Базовое сканирование```bash
# Scan a Docker image
dockerscan nginx:latest

# Scan with specific scanners
dockerscan --scanners cis,secrets ubuntu:22.04

# Scan and save reports
dockerscan alpine:latest --output /tmp/reports

# Quiet mode (suppress banner)
dockerscan -q nginx:latest

Пример вывода```

╔══════════════════════════════════════════════════════════════════════════╗ ║ ██████╗ ██████╗ ██████╗██╗ ██╗███████╗██████╗ ███████╗ ██████╗ █████╗ ███╗ ██╗ ║ ██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗██╔════╝██╔════╝██╔══██╗████╗ ██║ ║ ██║ ██║██║ ██║██║ █████╔╝ █████╗ ██████╔╝███████╗██║ ███████║██╔██╗ ██║ ║ ██║ ██║██║ ██║██║ ██╔═██╗ ██╔══╝ ██╔══██╗╚════██║██║ ██╔══██║██║╚██╗██║ ║ ██████╔╝╚██████╔╝╚██████╗██║ ██╗███████╗██║ ██║███████║╚██████╗██║ ██║██║ ╚████║ ║ ║ ║ Advanced Docker Security Scanner v2.0.0 ║ ║ ║ ║ Author: Daniel Garcia (cr0hn) ║ ║ Website: https://cr0hn.com ║ ╚══════════════════════════════════════════════════════════════════════════════════════╝

🔍 Scanning image: nginx:latest

═══════════════════════════════════════════════════════════════════ SCAN RESULTS ═══════════════════════════════════════════════════════════════════

📊 Summary: Total Findings: 47 Duration: 2.3s

🔴 By Severity: Critical: 8 High: 15 Medium: 18 Low: 6

📁 By Category: CIS-Benchmark: 12 Secrets: 8 Supply-Chain: 5 Vulnerability: 10 Runtime-Security: 12

📄 JSON report saved to: dockerscan-report.json 📄 SARIF report saved to: dockerscan-report.sarif

root@kitploit:~
---

## 📖 Использование

### Параметры командной строки```bash
dockerscan [COMMAND] [OPTIONS] <IMAGE>

Commands:
  scan        Scan a Docker image (default)
  update-db   Download or update the CVE database
              Options: --from-file <path>  Install from local SQLite file
  version     Show version information
  help        Show help message

Options:
  -h, --help              Show help message
  -v, --version           Show version
  -q, --quiet             Suppress banner output (quiet mode)
  --scanners SCANNERS     Comma-separated list of scanners to run
                          (default: all)
                          Options: cis,secrets,supplychain,vulnerabilities,runtime
  --output DIR            Output directory for reports (default: .)
  --only-critical         Show only critical/high severity findings
  --verbose, -v           Show scan progress (scanner names, findings count, image pull status). Output to stderr.
  --debug                 Show verbose output plus internal errors and technical details. Output to stderr.

Authentication (for private registries):
  --registry-user <username>       Registry username
  --registry-password <password>   Registry password (not recommended, use env vars)
  --registry <url>                 Registry URL (optional, auto-detected from image)
  --docker-config <path>           Path to Docker config file (default: ~/.docker/config.json)

  Environment variables (recommended for CI/CD):
    DOCKER_USERNAME or REGISTRY_USERNAME     Registry username
    DOCKER_PASSWORD or REGISTRY_PASSWORD     Registry password or token
    DOCKER_REGISTRY or REGISTRY             Registry URL (optional)

Exit Codes:
  0   No issues found
  1   HIGH severity issues found
  2   CRITICAL severity found

Примеры```bash

Scan with all scanners (default)

dockerscan myapp:latest

Only run specific scanners

dockerscan --scanners secrets,supplychain redis:7

Save reports to specific directory

dockerscan --output /var/reports postgres:14

Only show critical issues

dockerscan --only-critical production-app:v1.0

Ver progreso del scan (scanner names, findings count, image pull status)

dockerscan --verbose ubuntu:22.04

Debug detallado (errores internos, detalles técnicos)

dockerscan --debug ubuntu:22.04

Scan private registry images (see Authentication section below)

dockerscan ghcr.io/myorg/private-app:v1.0

root@kitploit:~
### 🔐 Аутентификация в частном реестре

DockerScan поддерживает три метода аутентификации в частных реестрах:

#### Метод 1: Файл конфигурации Docker (рекомендуется для локального использования)

Самый удобный метод — использует ваши существующие учетные данные Docker:```bash
# First, authenticate with your registry using Docker
docker login ghcr.io
# Username: your-username
# Password: ghp_your-token-here

# Now DockerScan can use these credentials automatically
dockerscan ghcr.io/myorg/private-app:latest

DockerScan автоматически считывает учетные данные из ~/.docker/config.json. Это работает со всеми реестрами, в которые вы вошли с помощью docker login.

Помощники учетных данных полностью поддерживаются. DockerScan нативно разрешает учетные данные через:

  • credsStore — глобальный помощник учетных данных (например, osxkeychain на macOS с Docker Desktop, wincred на Windows, pass на Linux)
  • credHelpers — помощники учетных данных для отдельных реестров (имеют приоритет над credsStore)
  • Автоматический откат — если указанный бинарный файл помощника не установлен, DockerScan возвращается к блоку auths в открытом виде в config.json

На macOS с Docker Desktop это работает из коробки без дополнительной настройки:```json { "credsStore": "osxkeychain" }

root@kitploit:~
DockerScan будет вызывать `docker-credential-osxkeychain` прозрачно для получения токенов, поэтому вам никогда не нужно явно передавать учетные данные.

#### Метод 2: Переменные окружения (Рекомендуется для CI/CD)

Лучше всего подходит для автоматизированных сред и конвейеров CI/CD:```bash
# Set environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=mytoken

# Scan private image
dockerscan ghcr.io/myorg/private-app:latest

# Or use alternative variable names
export REGISTRY_USERNAME=myusername
export REGISTRY_PASSWORD=mytoken
dockerscan myregistry.example.com/app:v1.0

Пример CI/CD (GitHub Actions):```yaml

  • name: Scan private image env: DOCKER_USERNAME: ${{ secrets.REGISTRY_USERNAME }} DOCKER_PASSWORD: ${{ secrets.REGISTRY_TOKEN }} run: dockerscan ghcr.io/${{ github.repository }}:${{ github.sha }}
root@kitploit:~
#### Method 3: Command-Line Flags (Not Recommended)

For quick testing only (credentials visible in process list):```bash
dockerscan --registry-user myuser --registry-password mytoken ghcr.io/myorg/app:v1

Предупреждение безопасности: Этот способ раскрывает учетные данные в истории вашей оболочки и списке процессов. Вместо этого используйте переменные окружения или конфигурацию Docker.

Примеры для конкретных реестров

Docker Hub (Частные репозитории)```bash

Using Docker config

docker login docker.io dockerscan myusername/private-repo:latest

Using environment variables

export DOCKER_USERNAME=myusername export DOCKER_PASSWORD=dckr_pat_XXXXXXXXXXXXX dockerscan myusername/private-repo:latest

root@kitploit:~
#### GitHub Container Registry (GHCR)```bash
# Using Docker config
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
dockerscan ghcr.io/myorg/myapp:v1.0

# Using environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=ghp_XXXXXXXXXXXXXXXXXXXX
dockerscan ghcr.io/myorg/myapp:v1.0

AWS Elastic Container Registry (ECR)```bash

Get login credentials from AWS

aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin
123456789012.dkr.ecr.us-east-1.amazonaws.com

Scan ECR image

dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest

Or use environment variables with ECR credentials

export DOCKER_USERNAME=AWS export DOCKER_PASSWORD=$(aws ecr get-login-password --region us-east-1) dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest

root@kitploit:~
#### Google Container Registry (GCR) / Artifact Registry```bash
# Authenticate with gcloud
gcloud auth configure-docker gcr.io

# Scan GCR image
dockerscan gcr.io/my-project/myapp:latest

# For Artifact Registry
gcloud auth configure-docker us-docker.pkg.dev
dockerscan us-docker.pkg.dev/my-project/my-repo/myapp:latest

# Or use service account JSON key
export DOCKER_USERNAME=_json_key
export DOCKER_PASSWORD="$(cat service-account-key.json)"
dockerscan gcr.io/my-project/myapp:latest

Azure Container Registry (ACR)```bash

Login with Azure CLI

az acr login --name myregistry

Scan ACR image

dockerscan myregistry.azurecr.io/myapp:v1.0

Or use service principal credentials

export DOCKER_USERNAME= export DOCKER_PASSWORD= dockerscan myregistry.azurecr.io/myapp:v1.0

root@kitploit:~
#### GitLab Container Registry```bash
# Using Docker config
docker login registry.gitlab.com
dockerscan registry.gitlab.com/mygroup/myproject/myapp:latest

# Using environment variables with deploy token
export DOCKER_USERNAME=gitlab+deploy-token-1
export DOCKER_PASSWORD=DEPLOY_TOKEN_HERE
dockerscan registry.gitlab.com/mygroup/myproject/myapp:latest

Самостоятельно размещённые/Частные реестры```bash

Standard authentication

docker login myregistry.example.com:5000 dockerscan myregistry.example.com:5000/myapp:latest

With environment variables

export DOCKER_USERNAME=admin export DOCKER_PASSWORD=secret dockerscan myregistry.example.com:5000/myapp:latest

Insecure registries (not recommended for production)

Add to Docker daemon config: /etc/docker/daemon.json

{

"insecure-registries": ["myregistry.example.com:5000"]

}

root@kitploit:~
### Устранение неполадок аутентификации

#### Распространенные проблемы

**1. ошибка "authentication required"**```bash
# Make sure you're logged in
docker login <registry>

# Or set environment variables
export DOCKER_USERNAME=your-username
export DOCKER_PASSWORD=your-token

2. Ошибка "unauthorized: authentication failed"

  • Убедитесь, что ваши учетные данные верны
  • Проверьте, не истек ли срок действия вашего токена (особенно для облачных провайдеров)
  • Убедитесь, что ваша учетная запись имеет разрешения на извлечение образа

3. AWS ECR "authorization token has expired"```bash

ECR tokens expire after 12 hours - refresh them

aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin
123456789012.dkr.ecr.us-east-1.amazonaws.com

root@kitploit:~
**4. Лимиты на Docker Hub**
- Аутентифицируйтесь для увеличения лимитов (200 загрузок за 6 часов для бесплатных аккаунтов)
- Рассмотрите использование аккаунта Docker Hub Pro для более высоких лимитов

**5. Ошибки сертификатов с самоподписанными сертификатами**
- Добавьте сертификат ЦС в системное хранилище доверенных сертификатов
- Или настройте Docker на доверие реестру (см. документацию Docker)

---

## 🔍 Сканеры безопасности

### CIS Docker Benchmark

Автоматическая проверка соответствия стандарту CIS Docker Benchmark v1.7.0:```bash
dockerscan --scanners cis nginx:latest

Проверки включают:

  • Пользователь контейнера не root
  • Отсутствие ненужных установленных пакетов
  • Наличие инструкции HEALTHCHECK
  • Конкретные версии тегов (не :latest)
  • Минимальное количество открытых портов
  • Отсутствие привилегированных контейнеров
  • Ограничение возможностей Linux
  • Применены профили Seccomp/AppArmor
  • Файловая система корня только для чтения
  • И ещё 70+ проверок...

Безопасность цепочки поставок

Обнаружение реальных атак на цепочку поставок:```bash dockerscan --scanners supplychain suspicious-image:1.0

root@kitploit:~
Обнаруживает:
- Контейнеры без образов (атаки только через документацию)
- Майнеры криптовалют (xmrig, claymore и т.д.)
- Заражённые библиотеки (случай xz-utils)
- Неподписанные/непроверенные образы
- Попытки фишинга в документации
- Подключения к майнинг-пулам, C2-серверам

### Обнаружение секретов

Поиск жестко заданных секретов:```bash
dockerscan --scanners secrets webapp:prod

Находит:

  • Облачные учетные данные (AWS, GCP, Azure)
  • Ключи API (40+ сервисов)
  • Приватные ключи и сертификаты
  • Учетные данные баз данных
  • Аутентификация реестра Docker
  • Строки с высокой энтропией (потенциальные неизвестные секреты)

Сканирование уязвимостей

Обнаружение известных CVE:```bash dockerscan --scanners vulnerabilities node:16

root@kitploit:~
Проверяет:
- Критические CVE Docker (2024-2025)
- Уязвимости ухода из контейнера
- Уязвимости RCE в BuildKit
- Устаревшие базовые образы
- Уязвимые пакеты

### Безопасность во время выполнения

Аудит конфигураций времени выполнения:```bash
dockerscan --scanners runtime running-container

Анализирует:

  • Возможности Linux (CAP_SYS_ADMIN и т.д.)
  • Профили Seccomp
  • Политики AppArmor/SELinux
  • Изоляция пространств имён
  • Использование привилегированного режима

📁 Форматы вывода

JSON-вывод```json

{ "target": { "image_name": "nginx:latest" }, "start_time": "2024-11-22T10:30:00Z", "findings": [ { "id": "CIS-4.1", "title": "Container should not run as root", "severity": "HIGH", "category": "CIS-Benchmark", "description": "Running containers as root increases attack surface...", "remediation": "Use USER instruction in Dockerfile..." } ], "summary": { "total_findings": 47, "by_severity": { "CRITICAL": 8, "HIGH": 15 } } }

root@kitploit:~
### Вывод SARIF

Совместимо с GitHub Security, Azure DevOps, VS Code:```json
{
  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "DockerScan",
          "version": "2.0.0"
        }
      },
      "results": [...]
    }
  ]
}

💼 Варианты использования

1. Интеграция с конвейером CI/CD

GitHub Actions:```yaml name: Docker Security Scan

on: [push]

jobs: security-scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3

root@kitploit:~
  - name: Build Docker image
    run: docker build -t myapp:${{ github.sha }} .

  - name: Install DockerScan
    run: |
      curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -o dockerscan
      chmod +x dockerscan

  - name: Update CVE Database
    run: ./dockerscan update-db

  - name: Run Security Scan
    run: ./dockerscan -q myapp:${{ github.sha }}

  - name: Upload SARIF results
    uses: github/codeql-action/upload-sarif@v2
    with:
      sarif_file: dockerscan-report.sarif
root@kitploit:~
**GitLab CI:**```yaml
docker-security-scan:
  stage: test
  script:
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
    - wget https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -O dockerscan
    - chmod +x dockerscan
    - ./dockerscan update-db
    - ./dockerscan -q $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  artifacts:
    reports:
      sast: dockerscan-report.sarif

2. Аудит безопасности```bash

Comprehensive audit of production images

for image in $(docker images --format "{{.Repository}}:{{.Tag}}"); do echo "Scanning $image..." dockerscan $image --output /audit-reports/ done

Generate summary report

cat /audit-reports/*.json | jq -s ' { total_images: length, total_findings: map(.summary.total_findings) | add, critical_findings: map(.summary.by_severity.CRITICAL // 0) | add } '

root@kitploit:~
### 3. **Валидация перед развертыванием**```bash
# Fail deployment if critical issues found
dockerscan production-app:v2.0
exit_code=$?

if [ $exit_code -eq 2 ]; then
  echo "❌ Critical vulnerabilities found. Deployment blocked."
  exit 1
elif [ $exit_code -eq 1 ]; then
  echo "⚠️  High severity issues found. Manual review required."
  # Send notification...
else
  echo "✅ No critical issues. Proceeding with deployment."
fi

4. Отчетность о соответствии```bash

Generate CIS compliance report

dockerscan --scanners cis --only-critical all-production-images:* > cis-compliance-report.txt

Weekly security scan for compliance

0 0 * * 0 /usr/local/bin/dockerscan --scanners cis,vulnerabilities production-images:latest --output /compliance/weekly/

root@kitploit:~
### 5. **Рабочий процесс разработчика**```bash
# Pre-commit hook
#!/bin/bash
# .git/hooks/pre-commit

docker build -t local-test:latest .
dockerscan --only-critical local-test:latest

if [ $? -ne 0 ]; then
  echo "❌ Docker security scan failed. Fix issues before committing."
  exit 1
fi

📊 Сравнение с другими инструментами

Почему стоит выбрать DockerScan?

  • Самый комплексный: Единственный инструмент, сочетающий CIS + цепочку поставок + секреты + CVE + время выполнения
  • Новейшие исследования: Основано на реальных атаках 2024-2025 годов
  • Нулевая настройка: Работает «из коробки»
  • Удобный для разработчиков: Красивый вывод CLI с практическими рекомендациями по исправлению
  • Готов для предприятий: SARIF + коды завершения + вывод JSON

🏗️ Архитектура

Структура проекта```

dockerscan/ ├── logo.png # Project logo ├── cmd/ │ ├── dockerscan/ # Main CLI application │ │ └── main.go │ └── nvd2sqlite/ # CVE database builder tool │ └── main.go ├── data/ # CVE database (auto-updated daily) │ ├── latest.db.gz # Compressed SQLite database │ └── metadata.json # Database version info ├── internal/ │ ├── scanner/ # Extensible scanner framework │ │ ├── scanner.go # Scanner interface & registry │ │ ├── cis/ # CIS Benchmark implementation │ │ ├── secrets/ # Secrets detection │ │ ├── supplychain/ # Supply chain attacks │ │ ├── vulnerabilities/ # CVE scanning │ │ └── runtime/ # Runtime security │ ├── report/ # Report generators │ │ ├── json.go # JSON reporter │ │ └── sarif.go # SARIF reporter │ ├── models/ # Data models │ │ └── models.go # Findings, scan results, etc. │ └── config/ # Configuration │ └── config.go # App config & banner └── pkg/docker/ # Docker client wrapper └── client.go

root@kitploit:~
### База данных CVE и инструмент nvd2sqlite

DockerScan использует локальную базу данных SQLite для поиска CVE. База данных **автоматически обновляется ежедневно** с помощью GitHub Actions и размещается в репозитории, поэтому у вас всегда есть доступ к последним данным CVE.

#### Возможности базы данных

- 🗄️ **Готовая база данных** - готова к использованию, ручная настройка не требуется
- 🔄 **Ежедневные обновления** - GitHub Action обновляет базу данных каждый день в 00:00 UTC
- 📅 **2,5 года данных CVE** - охватывает CVE с середины 2022 года по настоящее время
- ⚡ **Быстрый поиск** - SQLite с оптимизированными индексами
- 🌐 **Размещена на GitHub** - загружается автоматически с помощью команды `update-db`

#### Обновление базы данных```bash
# Download latest database from GitHub (recommended)
dockerscan update-db

# Install from local file (for air-gapped/offline environments)
dockerscan update-db --from-file /path/to/cve-db.sqlite

Примечание: При первом запуске dockerscan вам будет предложено загрузить базу данных. После этого вы можете периодически обновлять её с помощью update-db.

Создание базы данных вручную (nvd2sqlite)

Для продвинутых пользователей: вы можете собрать базу данных CVE напрямую из NVD:```bash

Build the tool

make build # Builds both dockerscan and nvd2sqlite

Download CVEs (last 2.5 years by default)

./bin/nvd2sqlite --output data/cve-db.sqlite --verbose

With NVD API key (10x faster - 50 req/30sec vs 5 req/30sec)

NVD_API_KEY=your-key ./bin/nvd2sqlite --output data/cve-db.sqlite --verbose

Custom date range

./bin/nvd2sqlite --output data/cve-db.sqlite
--start-date 2023-01-01
--end-date 2024-12-31

root@kitploit:~
**nvd2sqlite особенности:**
- ⚡ **4 параллельных загрузчика** для более быстрой загрузки
- 🔄 **Автоматические повторные попытки с экспоненциальной задержкой** для ограничения скорости (HTTP 429)
- 📦 **Скачивает во временную папку**, затем обрабатывает последовательно
- 🗄️ **Вывод в SQLite** с индексированными таблицами для быстрого поиска

---

### Расширяемость

Добавить новый сканер просто:```go
package myscan

import (
    "context"
    "github.com/cr0hn/dockerscan/v2/internal/models"
    "github.com/cr0hn/dockerscan/v2/internal/scanner"
)

type MyScanner struct {
    scanner.BaseScanner
}

func NewMyScanner() *MyScanner {
    return &MyScanner{
        BaseScanner: scanner.NewBaseScanner(
            "my-scanner",
            "Description of my scanner",
            true, // enabled
        ),
    }
}

func (s *MyScanner) Scan(ctx context.Context, target models.ScanTarget) ([]models.Finding, error) {
    var findings []models.Finding

    // Your scanning logic here...

    return findings, nil
}

// Register in main.go:
// registry.Register(myscan.NewMyScanner())

🤝 Участие

Вклад приветствуется! DockerScan спроектирован как расширяемый.

Как внести вклад

  1. Форкните репозиторий
  2. Создайте ветку функции (git checkout -b feature/amazing-scanner)
  3. Добавьте ваш сканер в internal/scanner/
  4. Напишите тесты (мы поддерживаем покрытие 90%+)
  5. Зафиксируйте изменения (git commit -am 'Add amazing scanner')
  6. Запушьте в ветку (git push origin feature/amazing-scanner)
  7. Откройте Pull Request

Разработка```bash

Clone and setup

git clone https://github.com/cr0hn/dockerscan cd dockerscan/dockerscan-v2

Install dependencies

make deps

Run tests

make test

Run with coverage

make coverage

Build

make build

Format code

make fmt

Lint

make lint

root@kitploit:~
### Добавление новых сканеров

Мы особенно приветствуем:
- Интеграцию с базами данных уязвимостей (NVD, GitHub Security Advisories)
- Сканирование безопасности Kubernetes
- Безопасность реестра контейнеров
- Анализ безопасности Docker Compose
- Сканирование IaC (Dockerfile)

---

## 📚 Ссылки

### Стандарты и бенчмарки

- [CIS Docker Benchmark v1.7.0](https://www.cisecurity.org/benchmark/docker) — Центр интернет-безопасности
- [NIST SP 800-190](https://csrc.nist.gov/publications/detail/sp/800-190/final) — Руководство по безопасности контейнеров приложений
- [OWASP Docker Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html) — Шпаргалка по безопасности Docker

### Исследования и CVE

- [4M вредоносных контейнеров без образов](https://thehackernews.com/2024/04/millions-of-malicious-imageless.html) — The Hacker News, апрель 2024
- [Атаки на цепочки поставок с использованием образов контейнеров](https://www.aquasec.com/blog/supply-chain-threats-using-container-images/) — Aqua Security
- [CVE-2024-21626: побег из контейнера runc](https://nvd.nist.gov/vuln/detail/CVE-2024-21626) — NIST NVD
- [CVE-2024-23651: удалённое выполнение кода в BuildKit](https://nvd.nist.gov/vuln/detail/CVE-2024-23651) — NIST NVD
- [Бэкдор в xz-utils (март 2024)](https://www.openwall.com/lists/oss-security/2024/03/29/4) — OpenWall

### Инструменты и проекты

- [Trivy](https://github.com/aquasecurity/trivy) — сканер уязвимостей
- [Docker Bench Security](https://github.com/docker/docker-bench-security) — скрипт бенчмарка CIS
- [Cosign](https://github.com/sigstore/cosign) — подпись и верификация контейнеров
- [Спецификация SARIF](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) — формат результатов статического анализа

---

## 📄 Лицензия

Этот проект лицензирован в соответствии с **DockerScan Proprietary Source-Available License**.

### Что это значит

✅ **Вы МОЖЕТЕ (бесплатно):**
- Использовать DockerScan **бесплатно** для внутреннего сканирования безопасности
- Использовать его в ваших **конвейерах CI/CD** и рабочих процессах безопасности
- **Изменять, форкать и вносить вклад** обратно в сообщество
- Использовать в **образовательных и исследовательских** целях
- Использовать как **инструмент в профессиональных услугах** (консалтинг, аудит безопасности, пентест)
- **Интегрировать** в другие продукты, где он является вспомогательным компонентом

❌ **Вы НЕ МОЖЕТЕ (без явного письменного разрешения или коммерческой лицензии):**
- Предлагать **сканирование Docker как коммерческий SaaS**
- **Продавать хостинг-экземпляры** DockerScan
- Создавать **коммерческую платформу**, основанную в первую очередь на DockerScan
- Создавать **платную управляемую услугу**, где DockerScan является основным предложением

### Почему такая лицензия?

Эта лицензия защищает устойчивость проекта следующим образом:
- ✅ Предоставляя **свободу** использовать программное обеспечение в законных целях
- ❌ Предотвращая **вредное иждивенчество**, когда компании получают прибыль от предложения его как услуги, не внося ответного вклада
- 💰 Обеспечивая **устойчивость** проекта через коммерческое лицензирование для конкурирующих способов использования
- 🔓 Сохраняя **исходный код доступным** для прозрачности и вклада сообщества

**Это НЕ открытый исходный код** — это **исходный код с ограничениями** на коммерческое конкурентное использование.

### Коммерческое лицензирование

**Требуется для:**
- SaaS или хостинг-предложения
- Коммерческих платформ, использующих DockerScan как основную функцию
- Перепродажи или распространения в качестве коммерческого продукта
- Управляемых услуг, где DockerScan является основным предложением

**Контакты для коммерческого лицензирования:**

📧 Email: cr0hn [at] cr0hn.com
🌐 Сайт: https://cr0hn.com
💼 Гибкие условия лицензирования для предприятий и стартапов

См. файл [LICENSE](https://github.com/cr0hn/dockerscan/blob/HEAD/LICENSE) для полных юридических условий.

---

## 👤 Автор

<div align="center">

### **Daniel Garcia (cr0hn)**

[![Website](https://img.shields.io/badge/Website-cr0hn.com-blue?style=for-the-badge&logo=google-chrome)](https://cr0hn.com)
[![GitHub](https://img.shields.io/badge/GitHub-cr0hn-black?style=for-the-badge&logo=github)](https://github.com/cr0hn)
[![Twitter](https://img.shields.io/badge/Twitter-@ggdaniel-1DA1F2?style=for-the-badge&logo=twitter)](https://twitter.com/ggdaniel)

**Исследователь безопасности | Разработчик открытого ПО | Эксперт по безопасности Docker**

</div>

---

## 🙏 Благодарности

Особая благодарность:
- Сообществу по безопасности Docker
- CIS за Docker Benchmark
- NIST за SP 800-190
- Исследователям безопасности, обнаружившим атаки на цепочки поставок 2024 года
- Всем участникам и пользователям DockerScan

---

## 📞 Поддержка

- **Проблемы**: [GitHub Issues](https://github.com/cr0hn/dockerscan/issues)
- **Обсуждения**: [GitHub Discussions](https://github.com/cr0hn/dockerscan/discussions)
- **Безопасность**: Сообщайте об уязвимостях на [email protected]

---

<div align="center">

**⭐ Если вы считаете DockerScan полезным, поставьте звезду репозиторию! ⭐**

*Делая безопасность Docker доступной для каждого*

[⬆ Наверх](#-dockerscan-v20)

</div>
Скачать инструмент
Функцияv1.x (Python)v2.0 (Go)
ЯзыкPython 3.5+Go 1.21+
Производительность~500 образов/час~5000 образов/час
Использование памяти200–500 МБ50–100 МБ
Распространениеpip install + зависимостиОдин бинарный файл
Сканеры безопасности2 модуля5 модулей
CIS BenchmarkЧастичноПолный v1.7.0 (80+ проверок)
Цепочка поставок❌ Недоступно✅ Основано на исследованиях 2024
Шаблоны секретов10 шаблонов40+ шаблонов
Обнаружение CVEБазовоеCVE 2024–2025
Безопасность времени выполнения❌ Недоступно✅ Полный аудит возможностей
Вывод SARIF❌ Недоступно✅ Полная поддержка
Интеграция CI/CDВручнуюНативная (коды завершения, SARIF)
ФункцияDockerScan v2.0TrivyClairSnykGrype
CIS Benchmark v1.7✅ Полный (80+ проверок)❌❌Частично❌
Обнаружение цепочки поставок (2024)✅ Да❌❌❌❌
Сканирование секретов✅ 40+ шаблоновБазовое❌✅❌
База данных CVE✅ CVE за 2024-2025 гг.✅✅✅✅
Безопасность во время выполнения✅ Полный❌❌❌❌
Выходные данные SARIF✅✅❌✅✅
Скорость (Go)⚡ Очень быстро⚡ Очень быстро🐌 Медленно⚡ Быстро⚡ Очень быстро
Расширяемость✅ Система плагиновОграниченнаяОграниченная❌Ограниченная
Коды завершения✅ Готов для CI/CD✅Частично✅✅
Стоимость🆓 Бесплатно🆓 Бесплатно🆓 Бесплатно💰 Платные тарифы🆓 Бесплатно
Офлайн-режим✅✅❌❌✅
ЛицензияПроприетарная с открытым исходным кодомApache-2.0Apache-2.0ПроприетарнаяApache-2.0