إنتقل إلى المحتوى الرئيسي

وضع نظام الملفات - ماسح الملفات ومخازن المفاتيح

ينطبق على:
PEM / DER / PKCS#12 / PFXJKS / JCEKS KeystoresPrivate Key DetectionWindows Certificate Storev1.0.0
الحالة

منفّذ - متاح في v1.0.0. مبني بلغة Rust باستخدام walkdir + rayon للاجتياز المتوازي وx509-parser لتحليل الشهادات.

نظرة عامة​

يجري وضع نظام الملفات فحصًا تكراريًا للأدلة لاكتشاف الشهادات ومخازن المفاتيح والمفاتيح الخاصة. يستخدم اجتياز الملفات المتوازي المدعوم بـ walkdir وrayon، ويحلل الشهادات باستخدام حزمة x509-parser. بالإضافة إلى الفحص القائم على الملفات، يمكنه اختياريًا تعداد مخزن شهادات Windows (عبر حزمة schannel، بما يشمل مخزنَي LocalMachine و CurrentUser).

كيف يعمل​

تدفق وضع نظام الملفات

1

اجتياز الأدلة

يجتاز الأدلة تكراريًا باستخدام walkdir مع عمق أقصى قابل للتهيئة

2

تصفية الامتدادات

يصفّي الملفات حسب الامتداد (.jks, .p12, .pfx, .pem, .crt, .cer, .key) ويستثني المسارات المهيّأة

3

معالجة متوازية

يعالج الملفات المكتشفة بالتوازي باستخدام rayon (الافتراضي 4 خيوط)

4

تحليل خاص بالتنسيق

يختار المحلل المناسب: PEM أو DER أو PKCS#12/PFX أو JKS/JCEKS أو مفتاح خاص

5

تحليل الشهادات

يحلل شهادات X.509 عبر x509-parser لاستخراج الخوارزميات وأحجام المفاتيح وتاريخ الانتهاء

6

تسجيل المخاطر

يحسب درجات الثغرة الكمومية لكل أصل مكتشف

التنسيقات المدعومة​

📄 تنسيق PEM

  • شهادات X.509 (.pem, .crt, .cer)
  • المفاتيح الخاصة (RSA, EC, PKCS#8 عام)
  • المفاتيح العامة
  • عدة كتل PEM لكل ملف

🔧 تنسيق DER

  • شهادات X.509 المرمّزة ثنائيًا (.der, .cer)
  • المفاتيح الخاصة المرمّزة ثنائيًا
  • يُحلَّل عبر x509-parser from_der

🔒 PKCS#12 / PFX

  • ملفات .p12 و .pfx
  • استخراج الشهادات
  • اكتشاف المفتاح الخاص
  • الحزم المحمية بكلمة مرور

☕ مخازن مفاتيح Java

  • JKS (Java KeyStore)
  • JCEKS (Java Cryptography Extension KeyStore)
  • تعداد الأسماء المستعارة
  • دعم مخزن المفاتيح المحمي بكلمة مرور

🔑 المفاتيح الخاصة

  • مفاتيح RSA الخاصة
  • مفاتيح EC الخاصة
  • المفاتيح المغلّفة بـ PKCS#8
  • ملفات .key المستقلة

💻 مخازن شهادات نظام التشغيل

  • مخزن شهادات Windows (حزمة schannel): مخزنا LocalMachine و CurrentUser
  • يُفعّل عبر --scan-windows-certstore (اختر المخزن بـ --certstore-name: MY أو ROOT أو CA أو TRUST أو ALL)

الاستخدام​

فحص أساسي​

# Scan current directory (default --path is .)
dke-scanner-agent filesystem

# Scan a specific directory recursively (recursive is true by default)
dke-scanner-agent filesystem --path /opt/applications

# Scan with output to a file
dke-scanner-agent filesystem --path /etc/ssl --output certs-report.json

# Scan and output in YAML format
dke-scanner-agent filesystem --path /srv --format yaml

خيارات سطر الأوامر​

العلمالوصفالافتراضيمطلوب
--path <PATH>مسار الدليل المراد فحصه. (الدليل الحالي)لا
--recursiveفحص الأدلة الفرعية تكراريًاtrueلا
--max-depth <N>العمق الأقصى للتكرار10لا
--extensions <EXT>امتدادات الملفات المراد فحصها (مفصولة بفواصل).jks,.p12,.pfx,.pem,.crt,.cer,.keyلا
--exclude <PATHS>الأدلة المراد استثناؤها (مفصولة بفواصل)node_modules,.git,targetلا
--threads <N>عدد خيوط المعالجة المتوازية4لا
--scan-windows-certstoreفحص مخزن شهادات Windows (LocalMachine و CurrentUser)falseلا
--certstore-name <NAME>مخزن شهادات Windows المراد فحصه: MY أو ROOT أو CA أو TRUST أو ALLALLلا
--output <FILE>مسار ملف الإخراجstdoutلا
--format <FMT>تنسيق الإخراج: json أو yaml أو terminal أو htmljsonلا

أمثلة متقدمة​

البنية​

يستخدم وضع نظام الملفات walkdir للاجتياز التكراري للأدلة وrayon لمعالجة الملفات المتوازية:

  1. يجتاز شجرة الأدلة حتى العمق الأقصى المهيّأ (الافتراضي 10)، مع الاحتفاظ بالملفات التي تطابق الامتدادات المهيّأة وليست في مسار مستثنى.
  2. يحلل الملفات المطابقة بالتوازي عبر عدد الخيوط المهيّأ.
  3. يعدّد اختياريًا مخزن شهادات Windows (LocalMachine + CurrentUser) عند تعيين --scan-windows-certstore.

يتولى تحليل الشهادات حزمة x509-parser، التي توفّر فك ترميز كامل لشهادات X.509 من تنسيقَي PEM و DER.

مثال على الإخراج​

{
"scan_metadata": {
"scanner_version": "1.0.0",
"scan_mode": "filesystem",
"scan_date": "2025-01-30T15:45:22Z",
"scan_path": "/opt/applications",
"recursive": true,
"max_depth": 10
},
"summary": {
"files_scanned": 45678,
"keystores_found": 23,
"certificates_found": 156,
"private_keys_found": 67,
"total_findings": 246
},
"findings": [
{
"id": "fs-001",
"type": "keystore",
"file_path": "/opt/tomcat/conf/keystore.jks",
"format": "JKS",
"password_protected": true,
"certificates": [
{
"alias": "tomcat-ssl",
"subject": "CN=app.example.com",
"issuer": "CN=Example CA",
"not_after": "2025-12-31T23:59:59Z",
"algorithm": "RSA",
"key_size": 2048,
"has_private_key": true,
"quantum_vulnerable": true
}
],
"risk_assessment": {
"quantum_risk_score": 8.0,
"priority": "P1",
"severity": "HIGH"
}
},
{
"id": "fs-002",
"type": "certificate",
"file_path": "/etc/ssl/certs/server.crt",
"format": "PEM",
"certificate": {
"subject": "CN=www.example.com",
"algorithm": "ECDSA",
"curve": "P-256",
"quantum_vulnerable": true
},
"risk_assessment": {
"quantum_risk_score": 8.0,
"priority": "P1",
"severity": "HIGH"
}
}
]
}

السلوك الافتراضي​

الإعدادات الافتراضية

افتراضيًا، يفحص وضع نظام الملفات الدليل الحالي (.) تكراريًا حتى 10 مستويات عمقًا باستخدام 4 خيوط. ويبحث عن الملفات ذات الامتدادات .jks و.p12 و.pfx و.pem و.crt و.cer و.key، مع الاستثناء التلقائي لأدلة node_modules و.git وtarget.

استكشاف الأخطاء وإصلاحها​

أفضل الممارسات​