
تقييم Wazuh SCA المركزي لثغرة CVE-2026-42945 على خوادم NGINX
يوثّق هذا المستودع مختبرًا دفاعيًا لـ CVE-2026-42945، الذي يؤثّر على NGINX ngx_http_rewrite_module.
كان هدف هذا المشروع هو معالجة الثغرة من منظور الفريق الأزرق باستخدام تقييم الإعدادات الأمنية (SCA) من Wazuh لتقييم تعرّض NGINX بشكل مركزي.
يتحقق المختبر من شرطين للتعرّض:
النتيجة النهائية هي سياسة SCA مركزية من Wazuh يمكن نشرها على خوادم NGINX المراقَبة عبر إعداد الوكيل المركزي في Wazuh.
تم بناء المختبر باستخدام بنية شبكية مجزّأة.
Internet / WAN
|
|
pfSense Firewall
|
|-----------------------------
| |
LAN DMZ
| |
Wazuh Manager Ubuntu NGINX Server
Wazuh Dashboard Wazuh Agent
NGINX
كان الهدف هو بناء سير عمل دفاعي آمن وقابل للتكرار:
Wazuh Manager
|
| Centralized SCA policy
v
Wazuh Agent on DMZ NGINX Server
|
| Checks package version and NGINX configuration
v
Wazuh Dashboard
|
| Shows passed / failed checks
v
Remediation validation
يتيح هذا الأسلوب تقييم التعرّض للثغرة دون تشغيل أي كود استغلال.
تنفّذ سياسة SCA المخصصة من Wazuh فحصين.
تتحقق السياسة مما إذا كانت حزمة NGINX المثبّتة على Ubuntu تطابق الإصدار غير المُصحَّح الذي لوحظ في المختبر.
إصدار الحزمة الضعيف الأولي:
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
إصدار الحزمة المُصحَّح بعد المعالجة:
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
ملف السياسة:
sca-policy/nginx-cve-2026-42945.yml
تتحقق السياسة أيضًا من نمط rewrite خطير مرتبط بـ CVE-2026-42945.
يتم تخزين إعداد الاختبار الخطير هنا:
nginx-config/vulnerable-example.conf
يتم تخزين الإعداد المُعالَج هنا:
nginx-config/remediated-example.conf
تشمل الحالة الخطيرة التي تم اختبارها في المختبر ما يلي:
rewrite directive
unnamed capture such as $1
replacement containing ?
follow-up directive such as set
wazuh-nginx-cve-2026-42945-sca-lab/
├── README.md
├── sca-policy/
│ └── nginx-cve-2026-42945.yml
├── wazuh-config/
│ └── agent.conf
├── nginx-config/
│ ├── vulnerable-example.conf
│ └── remediated-example.conf
├── commands/
│ ├── 01-agent-validation.md
│ ├── 02-nginx-version-check.md
│ ├── 03-sca-policy-deployment.md
│ └── 04-remediation.md
├── screenshots/
│ ├── 01-lab-architecture.png
│ ├── 02-agent-active.png
│ ├── 03-sca-policy-failed.png
│ ├── 04-nginx-package-before.png
│ ├── 05-risky-rewrite-config.png
│ ├── 06-sca-partial-remediation.png
│ ├── 07-nginx-package-after.png
│ └── 08-sca-policy-passed.png
└── docs/
└── lab-notes.md
استخدم المختبر pfSense لفصل البيئة إلى:
LAN:
- Wazuh Manager
- Wazuh Dashboard
DMZ:
- Ubuntu NGINX server
- Wazuh Agent
تم وضع خادم NGINX على Ubuntu في المنطقة المجرّدة (DMZ).
وتم وضع مدير Wazuh في الشبكة المحلية (LAN).
تم السماح فقط بالاتصال الضروري مع Wazuh من خادم DMZ إلى مدير Wazuh.
تم تسجيل خادم DMZ بنظام Ubuntu كوكيل Wazuh.
تم التحقق من الوكيل من خلال مدير Wazuh وتأكيد كونه نشطًا.
أوامر التحقق موثّقة في:
commands/01-agent-validation.md
الحالة المتوقعة:
Agent: ubuntu-dmz-nginx2
Status: Active
تم فحص إصدار حزمة NGINX المثبّتة على خادم DMZ بنظام Ubuntu.
أوامر فحص الإصدار موثّقة في:
commands/02-nginx-version-check.md
الحالة الأولية:
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
بعد تحديث فهرس الحزم، أصبح الإصدار المرشّح المُصحَّح متاحًا:
1.28.3-2ubuntu1.1
تم إنشاء إعداد اختبار لـ NGINX لمحاكاة نمط rewrite الخطير.
يُخزَّن المثال الضعيف في:
nginx-config/vulnerable-example.conf
تُخزَّن النسخة المُعالَجة في:
nginx-config/remediated-example.conf
لم يكن الغرض استغلال الخدمة، بل التحقق مما إذا كان Wazuh SCA قادرًا على تحديد التعرّض الخطير في الإعدادات المحلية.
تم إنشاء سياسة SCA مخصصة على مدير Wazuh.
ملف السياسة:
sca-policy/nginx-cve-2026-42945.yml
في المختبر، تم نشر هذه السياسة من الدليل المشترك لمدير Wazuh:
/var/ossec/etc/shared/default/nginx-cve-2026-42945.yml
تحتوي السياسة على فحصين:
| معرّف الفحص | الغرض |
|---|---|
| 100449 | الكشف عن إصدار حزمة NGINX على Ubuntu الضعيف/غير المُحدَّث |
| 100450 | الكشف عن نمط إعداد rewrite الخطير في NGINX |
تم نشر سياسة SCA المخصصة باستخدام إعداد الوكيل المركزي في Wazuh.
يتم تخزين ملف الإعداد المركزي في هذا المستودع باسم:
wazuh-config/agent.conf
في المختبر، تم نشره تحت:
/var/ossec/etc/shared/default/agent.conf
كان مدير Wazuh يعمل داخل Docker:
single-node-wazuh.manager-1
أوامر النشر موثّقة في:
commands/03-sca-policy-deployment.md
بعد إعادة تشغيل وكيل Wazuh، استلم خادم DMZ بنظام Ubuntu سياسة SCA المخصصة.
ظهرت السياسة المستلَمة تحت:
/var/ossec/etc/shared/nginx-cve-2026-42945.yml
أكّدت سجلات وكيل Wazuh أنه تم تحميل السياسة وتقييمها.
مؤشرات السجل المتوقعة:
Loaded policy
Starting evaluation of policy
Evaluation finished for policy
مع توافر شرطي التعرّض معًا، أظهرت لوحة تحكم Wazuh:
Passed: 0
Failed: 2
Score: 0%
وهذا يعني أن كلا الفحصين فشلا:
| الفحص | النتيجة |
|---|---|
| إصدار حزمة NGINX | فشل |
| إعداد rewrite الخطير | فشل |
لقطة شاشة:
screenshots/03-sca-policy-failed.png
تم استبدال إعداد rewrite الخطير في NGINX بإعداد أكثر أمانًا.
الملف المرجعي:
nginx-config/remediated-example.conf
بعد إصلاح الإعداد وإعادة تشغيل فحص Wazuh SCA، كانت النتيجة المتوقعة:
Passed: 1
Failed: 1
Score: 50%
في هذه المرحلة:
| الفحص | النتيجة |
|---|---|
| إعداد rewrite الخطير | نجح |
| إصدار حزمة NGINX | فشل |
لقطة شاشة:
screenshots/06-sca-partial-remediation.png
تمت ترقية حزم NGINX باستخدام ترقية موجهة للحزم.
أوامر المعالجة موثّقة في:
commands/04-remediation.md
قبل الترقية:
Installed: 1.28.3-2ubuntu1
Candidate: 1.28.3-2ubuntu1.1
بعد الترقية:
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
لقطة شاشة:
screenshots/07-nginx-package-after.png
بعد اكتمال خطوتَي المعالجة، تغيّرت نتيجة Wazuh SCA إلى:
Passed: 2
Failed: 0
Score: 100%
وأكّد ذلك ما يلي:
لقطة شاشة:
screenshots/08-sca-policy-passed.png
لقطات الشاشة الموصى بها:
بالنسبة للمختبر، تم نشر السياسة عبر مجموعة default في Wazuh.
في بيئة الإنتاج، يُفضَّل إنشاء مجموعة وكيل مخصصة في Wazuh، على سبيل المثال:
nginx-servers
يجب إسناد الخوادم التي تشغّل NGINX فقط إلى تلك المجموعة.
النشر الموصى به بأسلوب الإنتاج:
Wazuh Manager
|
| Centralized SCA policy
v
nginx-servers agent group
|
| Applied only to NGINX systems
v
Wazuh Dashboard
يمنع ذلك تطبيق فحوصات خاصة بـ NGINX على أنظمة غير ذات صلة.
يتجنّب هذا المشروع عمدًا كود الاستغلال.
كان الغرض من المختبر هو إظهار الهندسة الأمنية الدفاعية، وليس الاستغلال.
استند التقييم إلى:
package version exposure
configuration exposure
centralized Wazuh SCA validation
remediation verification
هذا المستودع مخصص للأغراض التعليمية والأمنية الدفاعية فقط.
لا يتضمن أي كود استغلال.
صُممت الفحوصات لبيئة مختبر خاضعة للتحكم، ويجب مراجعتها قبل استخدامها في بيئة الإنتاج.
| المكوّن | الدور |
|---|
| pfSense | جدار حماية وتقسيم LAN/DMZ |
| خادم DMZ بنظام Ubuntu | خادم NGINX مراقَب بواسطة Wazuh |
| NGINX | الخدمة المستهدَفة التي يتم تقييم تعرّضها للثغرة |
| وكيل Wazuh | مثبَّت على خادم DMZ بنظام Ubuntu |
| مدير Wazuh | خادم مراقبة مركزي يعمل داخل Docker |
| لوحة تحكم Wazuh | تُستخدم لمراجعة نتائج SCA |
| المرحلة | فحص الحزمة | فحص الإعداد | نتيجة Wazuh |
|---|
| الحالة الأولية | فشل | فشل | 0% |
| بعد معالجة الإعداد | فشل | نجح | 50% |
| بعد ترقية الحزمة | نجح | نجح | 100% |
| الملف | الوصف |
|---|
01-lab-architecture.png | بنية LAN/DMZ الخاصة بـ pfSense |
02-agent-active.png | حالة وكيل Wazuh النشط |
03-sca-policy-failed.png | نتيجة SCA الأولية الفاشلة |
04-nginx-package-before.png | إصدار حزمة NGINX الضعيف |
05-risky-rewrite-config.png | دليل على إعداد rewrite الخطير |
06-sca-partial-remediation.png | نتيجة المعالجة الجزئية |
07-nginx-package-after.png | إصدار حزمة NGINX المُرقّى |
08-sca-policy-passed.png | نتيجة SCA النهائية الناجحة |