
وكيل Go مستقل وتأملي للتدقيق الأمني لكامل دورة الحياة، وتجاوز WAF، والتحقق خارج النطاق (OOB) عبر LDAP، والمعالجة الذاتية (التصحيح التلقائي)، وتقارير الامتثال لثغرة CVE-2021-44228 (Log4Shell).
منصة عرض تجريبية معزولة لعامل منفّذ انعكاسي مستقل (Go/Java)
Русский 🇷🇺 • English 🇬🇧 • 中文 🇨🇳 • Español 🇪🇸 • Deutsch 🇩🇪 • Italiano 🇮🇹 • العربية 🇸🇦
[!NOTE] AUTO AUDIT هو مجمع برمجي يوضح دورة مغلقة مستقلة 100% (Sense-Think-Act) للكشف والتحقق والاستغلال والإصلاح التلقائي (Self-Healing / Auto-Remediation) وإعداد تقارير الامتثال للثغرة الحرجة Log4Shell (CVE-2021-44228 / БДУ ФСТЭК:2021-06103).
تنشر المنصة تطبيق ويب محليًا قائمًا على Java Spring Boot، مع LDAP TCP Callback Listener مدمج، ونواة معرفية لعامل Go تتخذ القرارات في ظل قابلية مراقبة جزئية للبيئة الخارجية (Partially Observable Markov Decision Process — POMDP).```mermaid %%{init: { 'theme': 'dark', 'themeVariables': { 'background': '#0f172a', 'primaryColor': '#1e293b', 'primaryTextColor': '#cbd5e1', 'primaryBorderColor': '#3b82f6', 'lineColor': '#38bdf8', 'secondaryColor': '#1e1b4b', 'tertiaryColor': '#0f172a', 'edgeLabelBackground': '#0f172a' } }}%% graph TD classDef sense fill:#0284c7,stroke:#0ea5e9,stroke-width:2px,color:#fff; classDef think fill:#4f46e5,stroke:#6366f1,stroke-width:2px,color:#fff; classDef act fill:#059669,stroke:#10b981,stroke-width:2px,color:#fff; classDef target fill:#dc2626,stroke:#ef4444,stroke-width:2px,color:#fff;
subgraph Sense ["🔍 СЕНСОРНЫЙ АНАЛИЗ (Sense)"]
A[Внешние отклики / TCP-коллбеки]:::sense --> B(Обновление Базы Знаний):::sense
end
subgraph Think ["🧠 КОГНИТИВНОЕ ЯДРО (Think)"]
B --> C{Вычисление Utility Policy}:::think
C -->|Рефлексивный вывод| D[Выбор эффектора из реестра]:::think
end
subgraph subgraph_Act ["⚡ ИСПОЛНЕНИЕ (Act)"]
D --> E[Выполнение Tool.Execute]:::act
E -->|Воздействие| F((Java Spring Boot Target)):::target
F -.->|Обратный канал OOB| A
end
---
## 🛠️ البنية التقنية والمكونات
هيكل البرنامج للوكيل مصمم وفق مبادئ العمارة النظيفة (*Hexagonal Architecture / Ports and Adapters*) وSOLID وTDD:
* 📂 **[cmd/agent/main.go](https://github.com/c00ln3t/log4shellauditor/blob/main/cmd/agent/main.go)** — نقطة الدخول. يدير دورة حياة العمليات الخلفية وينسّق تشغيل goroutine الخاص بالوكيل.
* 📂 **`internal/`** — منطق الأعمال الأساسي للحلقة المعرفية:
* 🧠 **[agent/agent.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/agent/agent.go)** — الحلقة المعرفية. ينفّذ دورة التحكم وقاعدة القرار لاختيار الاستراتيجية `Think()`.
* 💾 **[core/model.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/model.go)** — قاعدة معرفية آمنة للخيوط (`KnowledgeBase` / LTM) مبنية على `sync.RWMutex`.
* 🔌 **[core/effector.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/effector.go)** — واجهة `Tool` للمؤثّرات.
* ⚙️ **[effectors/](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/effectors)** — سجل المؤثّرات متعددة الأشكال (الأدوات):
* 🔍 `ToolPortScanner` — استكشاف المحيط الشبكي.
* 🌐 `ToolDiscovery` — البحث عن نقاط الالتحام ونواقل الإدخال (`X-Api-Version`).
* 🔬 `ToolPayloadGenerator` — توليف متجه توقيع JNDI.
* 🚀 `ToolProber` — التحقق من الثغرة بطريقة التتبع خارج النطاق (Out-of-Band).
* 🛡️ `ToolSemanticFuzzer` — تجاوز مصنّفات التصفية (WAF Evasion) عبر طفرات نحوية متداخلة.
* 🩹 `ToolRemediator` — الترقيع التلقائي (Self-Healing).
* 📄 `ToolReporter` — إنشاء تقرير وفقًا لـ ГОСТ Р 56939-2016.
* 📂 **`pkg/`** — الحزم والمكتبات المساعدة:
* 📡 **[oob/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/oob)** — مستمعات خارج النطاق (LDAP وHTTP).
* ☕ **[jvm/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/jvm)** — إدارة دورة حياة وإعادة تشغيل هدف Java المحلي.
* 📂 **[deployments/](https://github.com/c00ln3t/log4shellauditor/blob/main/deployments)** — ملفات إعدادات النشر (Docker, Compose).
* 📂 **[test/vulnerable-app/](https://github.com/c00ln3t/log4shellauditor/blob/main/test/vulnerable-app)** — تطبيق اختبار ضعيف بلغة Java Spring Boot.
---
## 🎯 الجهاز الرياضي ومواصفات دورة الإدراك (Think-Act Loop)
اتخاذ القرار من قبل الوكيل تمت صياغته كـ **عملية قرار ماركوفية جزئية الملاحظة (POMDP)**، موصوفة بالمجموعة $\langle S, A, T, R, \Omega, O, \gamma \rangle$:
* $S$ — فضاء منفصل للحالات الخفية للبيئة المستهدفة (توفر المنفذ، وجود معاملات قابلة للاستغلال، نشاط WAF، حقيقة الاختراق، حالة الترقيع، وجود تقرير الامتثال).
* $A$ — فضاء أفعال المؤثّرات (استدعاء الأدوات: `port_scanner`, `discovery`, `payload_generator`, `prober`, `semantic_fuzzer`, `remediator`, `reporter`, `stop`).
* $\Omega$ — فضاء الملاحظات (استجابات HTTP المستلمة، استدعاءات TCP خارج النطاق OOB، سجلات نظام الملفات).
* $O(o \mid s', a)$ — دالة الملاحظات التي تحدد احتمال الحصول على استجابة $o \in \Omega$.
### 1. متجه الثقة (Belief State)
الوكيل لا يملك معلومات مباشرة عن الحالة الخفية للبيئة $s \in S$، بل يتعامل مع متجه ثقة $b(s)$ — توزيع احتمالي على $S$، يُخزَّن ويُحدَّث ديناميكيًا في ذاكرة `KnowledgeBase`:
* $b(S_{recon}) \in \{0, 1\}$ — حالة الاستكشاف الشبكي (المنفذ مفتوح/مغلق). يُعرض على `ToolPerformance["port_scanner"]`.
* $b(S_{discovery}) \in \{0, 1\}$ — تعيين نواقل الإدخال (هل تم العثور على المعاملات). يُعرض على `len(DiscoveryVectors) > 0`.
* $b(S_{payload}) \in \{0, 1\}$ — جاهزية توقيع الاستغلال. يُعرض على `len(CustomPayloads) > 0`.
* $b(S_{exploit}) \in \{0, 1\}$ — حالة الاختراق (وجود Loot/Flag). يُعرض على `len(Loot) > 0`.
* $b(S_{patch}) \in \{0, 1\}$ — حقيقة توطين الثغرة. يُعرض على `PatchApplied`.
* $b(S_{verify}) \in \{0, 1\}$ — التحقق من عدم تكرار مشغّل OOB. يُعرض على `PatchVerified`.
* $b(S_{report}) \in \{0, 1\}$ — إنشاء تقرير منظّم. يُعرض على `ReportGenerated`.
### 2. دالة قاعدة القرار (Policy Mapping)