Skip to content

Minimalist yet powerful Docker security scanner implemented in Go, designed to help users identify common security issues in their running containers. The scanner checks for containers running as the root user, exposed ports, and provides a simplified check for missing security updates.

Notifications You must be signed in to change notification settings

elliotsecops/Docker-Security-Scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Security Scanner

A simplified Docker container security scanner that checks your running containers for common security issues.

Features

  • Root User Detection - Identifies containers running as root
  • Exposed Ports Check - Analyzes port bindings and exposure
  • Vulnerability Scanning - Basic image vulnerability detection
  • Secrets Detection - Finds potential secrets in environment variables
  • Network Policy Check - Verifies network and privileged settings
  • Resource Limits Check - Ensures resource constraints are set
  • Image Integrity Check - Validates image sources and tags
  • Process Monitoring - Monitors container process status

Quick Start

# Build the scanner
go build -o docker-scanner ./cmd/scanner

# Run with default configuration
./docker-scanner

Configuration

Create a config.yaml file:

scanner:
  max_concurrent_scans: 10
  timeout: "30m"
  scan_stopped_containers: false
  exclude_images: []
  exclude_names: []

docker:
  socket_path: "/var/run/docker.sock"
  api_version: "1.41"
  tls_verify: false

security_checks:
  root_user_check: true
  exposed_ports_check: true
  vulnerability_check: true
  secrets_check: true
  network_policy_check: true
  resource_limits_check: true
  image_integrity_check: true
  process_monitoring_check: true

reporting:
  output_dir: "./reports"
  formats: ["json"]
  include_details: true

logging:
  level: "info"
  format: "text"
  output: "stdout"

Usage

# Run with custom config
./docker-scanner --config /path/to/config.yaml

# Run with environment variables
export DSS_DOCKER_SOCKET_PATH=/var/run/docker.sock
./docker-scanner

Output

Reports are generated in JSON format in the configured output directory:

{
  "scan_id": "scan-1234567890",
  "timestamp": "2024-01-10T12:00:00Z",
  "duration": "5s",
  "containers_scanned": 5,
  "total_issues": 12,
  "compliance_score": 75.0,
  "container_results": { ... }
}

Requirements

  • Go 1.23+
  • Docker running with accessible socket
  • Sufficient permissions to inspect containers

License

MIT

About

Minimalist yet powerful Docker security scanner implemented in Go, designed to help users identify common security issues in their running containers. The scanner checks for containers running as the root user, exposed ports, and provides a simplified check for missing security updates.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages