Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dockerscan — أكثر ماسح أمان لـ Docker شمولية | Kitploit
أدوات/GitHubGitHub/cr0hn/dockerscan
ماسحات الثغرات الأمنيةأمن الحاوياتتدقيق التكوينأمن السحابةDevSecOpsكشف الأسرارأمن سلسلة التوريد
GitHubcr0hn/dockerscan

dockerscan

أكثر ماسح أمان لـ Docker شمولية

عرض المستودع
1.7k247منذ 11س 55دتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
شعار DockerScan

DockerScan v2.0

أكثر ماسح أمان Docker شمولاً

الترخيص إصدار Go الإصدار CI/CD تغطية الاختبارات بطاقة تقرير Go التنزيلات

بواسطة Daniel Garcia (cr0hn) | GitHub | الموقع الإلكتروني


الميزات • التثبيت • بداية سريعة • التوثيق • حالات الاستخدام • ما الجديد • المساهمة


📑 جدول المحتويات

  • نظرة عامة
  • الميزات
  • ما الجديد في v2.0
  • التثبيت
  • بداية سريعة
  • الاستخدام
    • مصادقة السجل الخاص
  • ماسحات الأمان
  • تنسيقات المخرجات
  • حالات الاستخدام
  • المقارنة
  • الهندسة المعمارية
  • المساهمة
  • المراجع
  • الترخيص
  • المؤلف

🎯 نظرة عامة

DockerScan v2.0 هو ماسح أمان من الجيل التالي لحاويات وصور Docker، أعيدت كتابته بالكامل بلغة Go. يجمع بين تقنيات متعددة لفحص الأمان بناءً على أحدث الأبحاث في 2024-2025 والمعايير الصناعية (CIS Benchmark, NIST SP 800-190) وأنماط الهجمات الحقيقية المكتشفة في بيئات الإنتاج.

لماذا DockerScan v2.0؟

  • ✅ الأكثر شمولاً: يجمع أكثر من 5 تقنيات لفحص الأمان في أداة واحدة
  • ✅ أحدث الأبحاث: يعتمد على هجمات سلسلة التوريد و CVEs لعام 2024-2025
  • ✅ جاهز للإنتاج: مخرجات 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 نمطًا للأسرار بما في ذلك واجهات برمجة التطبيقات الحديثة (تحديث 2024):

  • ✅ مزوّدو الخدمات السحابية: بيانات اعتماد AWS، GCP، Azure
  • ✅ أنظمة التحكم بالإصدارات: رموز GitHub، GitLab، Bitbucket
  • ✅ واجهات الذكاء الاصطناعي/التعلم الآلي: مفاتيح 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 والثغرات 🚨

كشف الثغرات الحرجة لعام 2024-2025:

  • ✅ CVE-2024-21626 - هروب حاوية runc (CVSS 8.6)
  • ✅ CVE-2024-23651 - تسمم ذاكرة التخزين المؤقت لـ BuildKit (CVSS 9.1)
  • ✅ CVE-2024-23652 - حالة سباق BuildKit (CVSS 7.5)
  • ✅ CVE-2024-23653 - تصعيد الامتيازات في BuildKit
  • ✅ CVE-2024-8695/8696 - تنفيذ تعليمات برمجية عن بُعد في 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
  • واجهة سطر أوامر جميلة - مستويات خطورة ملونة بالرموز التعبيرية
  • رموز الخروج - متوافقة مع CI/CD (0=نظيف، 1=تحذيرات، 2=حرج)

🚀 الأداء

  • ⚡ أسرع بـ10 مرات من بدائل Python
  • 🔄 فحص متزامن باستخدام goroutines في Go
  • 💾 بصمة ذاكرة منخفضة (~50-100MB)
  • 📦 ملف ثنائي واحد - بدون تبعيات

🆕 ما الجديد في v2.0؟

DockerScan v2.0 هي إعادة كتابة كاملة من الصفر. إليك ما تغير من الإصدار v1.x:

التغييرات الرئيسية

ما تم الحفاظ عليه من v1.x

  • ✅ الأدوات الهجومية - إمكانيات إقحام الصور (قريبًا في v2.1)
  • ✅ عمليات السجل - عمليات الدفع والسحب والحذف (قريبًا في v2.1)
  • ✅ فحص الشبكة - اكتشاف سجلات Docker (قريبًا في v2.1)

الجديد في v2.0.5 🔐

  • 🔑 مصادقة السجل الخاص - دعم كامل لفحص الصور من السجلات الخاصة (إصلاح #24)
  • 🌐 دعم عدة سجلات - Docker Hub، GHCR، ECR، GCR، ACR، GitLab، والسجلات المستضافة ذاتيًا
  • 🔐 طرق مصادقة متعددة - متغيرات البيئة (CI/CD)، علامات سطر الأوامر (اختبار)، ملف تكوين Docker (سلس)
  • 🎯 أولوية المصادقة الذكية - علامات سطر الأوامر > متغيرات البيئة > تكوين Docker (اختيار تلقائي)
  • 📝 رسائل خطأ محسّنة - تلميحات خاصة بالسجل (انتهاء صلاحية رمز ECR، حدود المعدل، الشهادات)
  • 🧪 اختبارات شاملة - 64 حالة اختبار، 91.2% تغطية، تم اختباره مع سجل خاص حقيقي
  • 📚 توثيق كامل - أمثلة لجميع السجلات السحابية الرئيسية وطرق المصادقة

الجديد في v2.0.4

  • 🗄️ تكامل قاعدة بيانات CVE - قاعدة بيانات SQLite محلية مع بيانات NVD (2.5 سنة من CVEs)
  • 🔄 تحديثات تلقائية يومية - إجراء GitHub Action يحدّث قاعدة بيانات CVE كل يوم
  • ⚡ تنزيلات CVE متوازية - 4 عمال لبناء قواعد البيانات بشكل أسرع (nvd2sqlite)
  • 🔁 إعادة المحاولة مع التباطؤ - إعادة محاولة تلقائية لطلبات NVD المقيدة بالمعدل
  • 📦 علامة --from-file - تثبيت قاعدة بيانات CVE من ملف محلي (وضع عدم الاتصال/الهواء المغلق)
  • 🔇 الوضع الصامت (-q) - إخفاء الشعار لخطوط أنابيب CI/CD
  • 🧹 تقليل النتائج الإيجابية الخاطئة - تحسين كشف الأسرار مع تصفية الإنتروبيا

لماذا إعادة الكتابة؟

  1. الأداء - توفر Go فحصًا أسرع بـ10 مرات باستخدام goroutines
  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```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. قم بتشغيل `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` بشكل شفاف لاسترداد الرموز المميزة، لذا لن تحتاج أبدًا إلى تمرير بيانات الاعتماد بشكل صريح.

#### الطريقة الثانية: متغيرات البيئة (موصى بها لـ 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:~
#### الطريقة 3: أعلام سطر الأوامر (غير موصى به)

للاختبار السريع فقط (بيانات الاعتماد مرئية في قائمة العمليات):```bash
dockerscan --registry-user myuser --registry-password mytoken ghcr.io/myorg/app:v1

تحذير أمني: تعرض هذه الطريقة بيانات الاعتماد في تاريخ شل وقائمة العمليات. استخدم متغيرات البيئة أو تكوين دوكر بدلاً من ذلك.

أمثلة خاصة بالسجل

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 (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. خطأ "مطلوب المصادقة"**```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"

  • تحقق من صحة بيانات اعتمادك
  • تحقق مما إذا كانت صلاحية رمزك قد انتهت (خاصة لمزودي الخدمات السحابية)
  • تأكد من أن حسابك لديه أذونات pull للصورة

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. أخطاء الشهادة مع الشهادات الموقعة ذاتيًا**
- أضف شهادة CA إلى مخزن الثقة في نظامك
- أو قم بتكوين Docker للثقة في السجل (انظر وثائق Docker)

---

## 🔍 ماسحات الأمان

### CIS Docker Benchmark

فحص الامتثال التلقائي مقابل CIS Docker Benchmark v1.7.0:```bash
dockerscan --scanners cis nginx:latest

تشمل الفحوصات:

  • مستخدم الحاوية ليس root
  • عدم وجود حزم غير ضرورية مثبتة
  • وجود تعليمة HEALTHCHECK
  • إصدارات محددة (وليس :latest)
  • الحد الأدنى من المنافذ المكشوفة
  • عدم وجود حاويات مميزة (privileged)
  • تقييد إمكانيات Linux
  • تطبيق ملفات تعريف Seccomp/AppArmor
  • نظام ملفات الجذر للقراءة فقط
  • وأكثر من 70 فحصًا آخر...

أمان سلسلة التوريد

اكتشف هجمات سلسلة التوريد الواقعية:```bash dockerscan --scanners supplychain suspicious-image:1.0

root@kitploit:~
يكتشف:
- حاويات بدون صور (هجمات تعتمد على التوثيق فقط)
- عمال منجم العملات الرقمية (xmrig, claymore, إلخ)
- مكتبات بها باب خلفي (حالة xz-utils)
- صور غير موقعة/غير موثقة
- محاولات تصيد في الوثائق
- اتصالات بمجمعات التعدين، خوادم القيادة والتحكم

### كشف الأسرار

ابحث عن الأسرار المضمنة في الكود:```bash
dockerscan --scanners secrets webapp:prod

اكتشافات:

  • بيانات اعتماد السحابة (AWS, GCP, Azure)
  • مفاتيح API (أكثر من 40 خدمة)
  • المفاتيح الخاصة والشهادات
  • بيانات اعتماد قاعدة البيانات
  • مصادقة سجل Docker
  • سلاسل عالية الإنتروبيا (أسرار محتملة غير معروفة)

فحص الثغرات الأمنية

اكتشف CVEs المعروفة:```bash dockerscan --scanners vulnerabilities node:16

root@kitploit:~
يتحقق من:
- ثغرات Docker الحرجة (2024-2025)
- ثغرات الهروب من الحاوية
- ثغرات تنفيذ الأوامر عن بُعد في BuildKit
- صور أساسية منتهية الصلاحية
- الحزم المعرضة للخطر

### أمان وقت التشغيل

مراجعة إعدادات وقت التشغيل:```bash
dockerscan --scanners runtime running-container

يحلل:

  • قدرات Linux (مثل CAP_SYS_ADMIN، إلخ.)
  • ملفات تعريف Seccomp
  • سياسات AppArmor/SELinux
  • عزل Namespace
  • استخدام الوضع المميز

📁 تنسيقات الإخراج

إخراج 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 Output

متوافق مع 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 + سلسلة التوريد + الأسرار + الثغرات + وقت التشغيل
  • أحدث الأبحاث: مرتكزة على هجمات العالم الحقيقي 2024-2025
  • بدون أي تهيئة: تعمل فورًا
  • صديقة للمطورين: واجهة سطر أوامر جميلة مع إصلاحات قابلة للتنفيذ
  • جاهزة للمؤسسات: 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 محلية للبحث عن CVEs. يتم **تحديث قاعدة البيانات تلقائياً يومياً** عبر GitHub Actions واستضافتها في المستودع، بحيث يكون لديك دائماً إمكانية الوصول إلى أحدث بيانات CVE.

#### ميزات قاعدة البيانات

- 🗄️ **قاعدة بيانات جاهزة** - جاهزة للاستخدام، لا حاجة لإعداد يدوي
- 🔄 **تحديثات يومية** - يقوم GitHub Action بتحديث قاعدة البيانات يومياً عند الساعة 00:00 UTC
- 📅 **2.5 سنة من بيانات CVE** - تغطي CVEs من منتصف 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. Fork المستودع
  2. Create فرع ميزة (git checkout -b feature/amazing-scanner)
  3. Add الماسح الخاص بك في internal/scanner/
  4. Write اختبارات (نحافظ على تغطية 90%+)
  5. Commit تغييراتك (git commit -am 'Add amazing scanner')
  6. Push إلى الفرع (git push origin feature/amazing-scanner)
  7. Open طلب سحب (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)
- فحص أمان Kubernetes
- أمان سجل الحاويات
- تحليل أمان Docker Compose
- فحص البنية التحتية كرمز (IaC) (ملفات Dockerfiles)

---

## 📚 المراجع

### المعايير والمقاييس

- [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)

### الأبحاث و CVEs

- [4M Malicious Imageless Containers](https://thehackernews.com/2024/04/millions-of-malicious-imageless.html) - The Hacker News, أبريل 2024
- [Supply Chain Attacks Using Container Images](https://www.aquasec.com/blog/supply-chain-threats-using-container-images/) - Aqua Security
- [CVE-2024-21626: runc Container Escape](https://nvd.nist.gov/vuln/detail/CVE-2024-21626) - NIST NVD
- [CVE-2024-23651: BuildKit RCE](https://nvd.nist.gov/vuln/detail/CVE-2024-23651) - NIST NVD
- [xz-utils Backdoor (March 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 Specification](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) - تنسيق نتائج التحليل الثابت

---

## 📄 الترخيص

هذا المشروع مرخص بموجب **رخصة DockerScan الاحتكارية المتاحة المصدر**.

### ماذا يعني هذا

✅ **يمكنك (مجانًا):**
- استخدام DockerScan **مجانًا** لفحص الأمان الداخلي
- استخدامه في **خطوط أنابيب CI/CD** وسير عمل الأمان الخاصة بك
- **تعديله، وإنشاء فرع منه، والمساهمة** في المجتمع
- استخدامه لأغراض **تعليمية وبحثية**
- استخدامه كـ **أداة في الخدمات المهنية** (استشارات، مراجعات أمان، اختبار الاختراق)
- **دمجه** في منتجات أخرى حيث يكون مكونًا مساعدًا

❌ **لا يمكنك (بدون إذن كتابي صريح أو ترخيص تجاري):**
- تقديم **فحص Docker كخدمة SaaS تجارية**
- **بيع نسخ مستضافة** من DockerScan
- بناء **منصة تجارية** تعتمد بشكل أساسي على DockerScan
- إنشاء **خدمة مُدارة مدفوعة** حيث تكون DockerScan هي العرض الرئيسي

### لماذا هذا الترخيص؟

يحمي هذا الترخيص استدامة المشروع عن طريق:
- ✅ منح **الحرية** لاستخدام البرنامج لأغراض مشروعة
- ❌ منع **الركوب المجاني الضار** حيث تحقق الشركات أرباحًا من تقديمه كخدمة دون المساهمة في المقابل
- 💰 ضمان بقاء المشروع **مستدامًا** من خلال الترخيص التجاري للاستخدامات التنافسية
- 🔓 إبقاء **الكود المصدري متاحًا** للشفافية والمساهمات المجتمعية

**هذا ليس مفتوح المصدر** - إنه **متاح المصدر** مع قيود على الاستخدام التجاري التنافسي.

### الترخيص التجاري

**مطلوب من أجل:**
- عروض SaaS أو الاستضافة
- المنصات التجارية التي تستخدم DockerScan كميزة أساسية
- إعادة البيع أو إعادة التوزيع كمنتج تجاري
- الخدمات المُدارة حيث تكون DockerScan هي العرض الأساسي

**للاتصال بخصوص الترخيص التجاري:**

📧 Email: cr0hn [at] cr0hn.com
🌐 Website: 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 MB50-100 MB
التوزيعpip install + تبعياتملف ثنائي واحد
ماسحات الأمانوحدتان5 وحدات
CIS Benchmarkجزئيكامل v1.7.0 (أكثر من 80 فحصًا)
سلسلة التوريد❌ غير متوفرة✅ بناءً على أبحاث 2024
أنماط الأسرار10 أنماطأكثر من 40 نمطًا
كشف CVEأساسيCVEs لعام 2024-2025
أمان وقت التشغيل❌ غير متوفرة✅ مراجعة كاملة للقدرات
مخرجات SARIF❌ غير متوفرة✅ دعم كامل
التكامل مع CI/CDيدويأصلي (رموز الخروج، SARIF)
الميزةDockerScan v2.0TrivyClairSnykGrype
معيار CIS الإصدار 1.7✅ كامل (أكثر من 80 فحصًا)❌❌جزئي❌
كشف سلسلة التوريد (2024)✅ نعم❌❌❌❌
فحص الأسرار✅ أكثر من 40 نمطًاأساسي❌✅❌
قاعدة بيانات الثغرات✅ ثغرات 2024-2025✅✅✅✅
أمان وقت التشغيل✅ كامل❌❌❌❌
مخرجات SARIF✅✅❌✅✅
السرعة (Go)⚡ سريع جدًا⚡ سريع جدًا🐌 بطيء⚡ سريع⚡ سريع جدًا
قابلية التوسع✅ نظام إضافاتمحدودمحدود❌محدود
رموز الخروج✅ جاهز للتكامل المستمر✅جزئي✅✅
التكلفة🆓 مجاني🆓 مجاني🆓 مجاني💰 مستويات مدفوعة🆓 مجاني
وضع عدم الاتصال✅✅❌❌✅
الترخيصخاص – متاح المصدرApache-2.0Apache-2.0خاصApache-2.0