Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

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

dockerscan

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

عرض المستودع
1.7k24751منذ 14س 53دتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
<div align="center">

<img src="https://assets.kitploit.com/production/public/readmes/1309/3345979faae1cdabbe2912dfcaf46221df5cb53697630a8e8dcc5eebf814e949.png" alt="شعار DockerScan" width="200">

# DockerScan v2.0

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

[![الترخيص](https://img.shields.io/badge/license-Proprietary-blue.svg)](LICENSE)
[![إصدار Go](https://img.shields.io/badge/go-1.21+-00ADD8.svg?logo=go)](https://golang.org/)
[![الإصدار](https://img.shields.io/github/v/release/cr0hn/dockerscan?label=version)](https://github.com/cr0hn/dockerscan/releases)
[![CI/CD](https://img.shields.io/badge/CI/CD-Manual-blue.svg)](https://github.com/cr0hn/dockerscan/actions/workflows/dockerscan.yml)
[![تغطية الاختبارات](https://img.shields.io/badge/coverage-92%25-brightgreen.svg)](https://github.com/cr0hn/dockerscan)
[![بطاقة تقرير Go](https://img.shields.io/badge/go%20report-A+-brightgreen.svg)](https://goreportcard.com/report/github.com/cr0hn/dockerscan)
[![التنزيلات](https://img.shields.io/github/downloads/cr0hn/dockerscan/total.svg)](https://github.com/cr0hn/dockerscan/releases)

**بواسطة [Daniel Garcia (cr0hn)](https://cr0hn.com)** | [GitHub](https://github.com/cr0hn/dockerscan) | [الموقع الإلكتروني](https://cr0hn.com)

---

[الميزات](#-الميزات) •
[التثبيت](#-التثبيت) •
[بداية سريعة](#-بداية-سريعة) •
[التوثيق](#-التوثيق) •
[حالات الاستخدام](#-حالات-الاستخدام) •
[ما الجديد](#-ما-الجديد-في-v20) •
[المساهمة](#-المساهمة)

</div>

---

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

- [نظرة عامة](#-نظرة-عامة)
- [الميزات](#-الميزات)
- [ما الجديد في v2.0](#-ما-الجديد-في-v20)
- [التثبيت](#-التثبيت)
- [بداية سريعة](#-بداية-سريعة)
- [الاستخدام](#-الاستخدام)
  - [مصادقة السجل الخاص](#-مصادقة-السجل-الخاص)
- [ماسحات الأمان](#-ماسحات-الأمان)
- [تنسيقات المخرجات](#-تنسيقات-المخرجات)
- [حالات الاستخدام](#-حالات-الاستخدام)
- [المقارنة](#-المقارنة-مع-الأدوات-الأخرى)
- [الهندسة المعمارية](#-الهندسة-المعمارية)
- [المساهمة](#-المساهمة)
- [المراجع](#-المراجع)
- [الترخيص](#-الترخيص)
- [المؤلف](#-المؤلف)

---

## 🎯 نظرة عامة

**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 (Python) | v2.0 (Go) |
|---------|--------------|-----------|
| **اللغة** | Python 3.5+ | Go 1.21+ |
| **الأداء** | ~500 صورة/ساعة | ~5000 صورة/ساعة |
| **استخدام الذاكرة** | 200-500 MB | 50-100 MB |
| **التوزيع** | pip install + تبعيات | ملف ثنائي واحد |
| **ماسحات الأمان** | وحدتان | 5 وحدات |
| **CIS Benchmark** | جزئي | كامل v1.7.0 (أكثر من 80 فحصًا) |
| **سلسلة التوريد** | ❌ غير متوفرة | ✅ بناءً على أبحاث 2024 |
| **أنماط الأسرار** | 10 أنماط | أكثر من 40 نمطًا |
| **كشف CVE** | أساسي | CVEs لعام 2024-2025 |
| **أمان وقت التشغيل** | ❌ غير متوفرة | ✅ مراجعة كاملة للقدرات |
| **مخرجات SARIF** | ❌ غير متوفرة | ✅ دعم كامل |
| **التكامل مع CI/CD** | يدوي | أصلي (رموز الخروج، SARIF) |

### ما تم الحفاظ عليه من 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/
```
#### 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/
```
#### 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"
```
#### التحقق من التحميل (اختياري ولكن موصى به)```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
```
### الخيار 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
```
> **نصيحة**: يتم تحديث قاعدة البيانات يوميًا عبر إجراءات 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
```
---

## 📖 الاستخدام

### خيارات سطر الأوامر```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
```
### 🔐 مصادقة السجل الخاص

يدعم 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"
}
```
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 }}
```
#### الطريقة 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
```
#### 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
```
#### 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=<service-principal-id>
export DOCKER_PASSWORD=<service-principal-password>
dockerscan myregistry.azurecr.io/myapp:v1.0
```
#### 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"]
# }
```
### استكشاف أخطاء المصادقة وإصلاحها

#### المشكلات الشائعة

**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
```
**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
```
يكتشف:
- حاويات بدون صور (هجمات تعتمد على التوثيق فقط)
- عمال منجم العملات الرقمية (xmrig, claymore, إلخ)
- مكتبات بها باب خلفي (حالة xz-utils)
- صور غير موقعة/غير موثقة
- محاولات تصيد في الوثائق
- اتصالات بمجمعات التعدين، خوادم القيادة والتحكم

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

ابحث عن الأسرار المضمنة في الكود:```bash
dockerscan --scanners secrets webapp:prod
```
اكتشافات:
- بيانات اعتماد السحابة (AWS, GCP, Azure)
- مفاتيح API (أكثر من 40 خدمة)
- المفاتيح الخاصة والشهادات
- بيانات اعتماد قاعدة البيانات
- مصادقة سجل Docker
- سلاسل عالية الإنتروبيا (أسرار محتملة غير معروفة)

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

اكتشف CVEs المعروفة:```bash
dockerscan --scanners vulnerabilities node:16
```
يتحقق من:
- ثغرات 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
    }
  }
}
```
### 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

      - 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

---

[Read more](https://github.com/cr0hn/dockerscan)
تنزيل الأداة