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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-31431-mitigation-suite — إطار دفاع وقت التشغيل على مستوى النواة لثغرات AF_ALG، يتضمن تتبع مآخذ eBPF، وتقوية Ansible، ومدقق تشفير لاكتشاف الانحراف. | Kitploit
أدوات/GitHubGitHub/mahdi13830510/cve-2026-31431-mitigation-suite
أمن البنية التحتية السحابيةأدوات دفاعيةتدقيق التكوينDevSecOpsكشف التسللالاستجابة للحوادثكشف الشذوذ
GitHubmahdi13830510/cve-2026-31431-mitigation-suite

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →

CVE-2026-31431-mitigation-suite

إطار دفاع وقت التشغيل على مستوى النواة لثغرات AF_ALG، يتضمن تتبع مآخذ eBPF، وتقوية Ansible، ومدقق تشفير لاكتشاف الانحراف.

عرض المستودع
410منذ 4 أشهرلم تتم المراجعة بعد
مشاركة

إطار عمل الدفاع AF_ALG

CI License

إطار عمل دفاعي على مستوى نواة النظام لبنية AF_ALG (عائلة عناوين الخوارزميات، العائلة 38) في لينكس. صُمم لمراكز العمليات الأمنية التي تدير أساطيل لينكس المؤسسية حيث يجب أن تمتد الثقة الصفرية إلى داخل النواة، ولا تتوقف عند حافة الشبكة.

لماذا يهم AF_ALG لمركز العمليات الأمنية

يكشف AF_ALG واجهة برمجة التشفير الخاصة بالنواة لمساحة المستخدم عبر واجهة مآخذ (socket(AF_ALG, SOCK_SEQPACKET, 0)). أُضيف أصلاً للأنظمة المدمجة التي لا تحتوي على /dev/crypto، ومنذ ذلك الحين تراكمت عليه حصة غير متناسبة من ثغرات النواة لأنه يعرض كود التشفير في وضع النواة لمستدعين غير مميزين — وهو عدم تطابق كلاسيكي في مساحة السطح.

في بيئة مؤسسية نموذجية:

  • تقريباً لا يحتاجه أي مستخدم في مساحة المستخدم. تستخدم OpenSSL وGnuTLS وlibsodium وsystemd-cryptsetup مسارات أخرى افتراضياً.
  • يهتم به الخصوم. إنه نقطة تحول متكررة في سلاسل تصعيد الامتيازات (CVE-2019-8912 وCVE-2017-13215 وغيرها) تحديداً لأنه يمكن الوصول إليه من حاويات غير مميزة عندما تكون مساحات أسماء المستخدمين متاحة.
  • إنه غير مرئي لمعظم حلول كشف نقطة النهاية. أدوات نقطة النهاية التي تتعقب connect() أو bind() أو DNS لا ترى شيئاً — حركة مرور AF_ALG لا تغادر النواة أبداً.

يعامل هذا الإطار كل إنشاء لمقبس AF_ALG كحدث عالي الإشارة ويقلل السطح الذي يجعل تلك الأحداث قابلة للاستغلال.

نموذج التهديد وربط الثقة الصفرية

مبدأ الثقة الصفريةالتحكم في هذا الإطار
لا تثق أبداً، تحقق دائماًمتتبع eBPF يسجل كل محاولة إنشاء مقبس AF_ALG مع pid/uid/comm
افترض الاختراقمدقق التشفير يقارن حالة النواة بخط أساس موقّع
أقل امتيازRestrictAddressFamilies في systemd + تحديد القدرات على الوحدات المُدارة
التقسيم الدقيق (على مستوى النواة)unprivileged_userns_clone=0 يزيل نقطة تحول userns المستخدمة في الاستغلالات
التحقق المستمرCI يتحقق من تقارير التدقيق مقابل مخطط إصدارات عند كل تغيير

هيكل المستودع

root@kitploit:~
.
├── ebpf/                  مراقبة وقت التشغيل (متتبع BCC + قائمة السماح)
├── ansible/               التكوين كرمز (sysctl + drop-ins لـ systemd)
├── systemd/               drop-in مستقل لـ systemd للمضيفات غير المزودة بـ Ansible
├── auditor/               مدقق حالة النواة (Python)
├── schemas/               مخطط JSON لاستيعاب تقارير التدقيق
├── scripts/               سكربتات شل مساعدة (يتم فحصها بواسطة CI)
├── tests/                 اختبارات الوحدات + نماذج التقارير
└── .github/workflows/     CI: shellcheck + التحقق من مخطط JSON + lint

المكونات

1. مراقبة وقت التشغيل — متتبع eBPF

يربط ebpf/af_alg_tracer.py خطاف kprobe بـ security_socket_create. يقوم الخطاف بالتصفية على family == 38 على مستوى برنامج BPF بحيث يقوم المدقق باقتطاع إنشاءات المقابس غير المرتبطة ويبقى الحمل لكل حدث في نطاق النانو ثانية. يصدر سجلاً JSON واحداً لكل محاولة:

root@kitploit:~
{
  "@timestamp": "2026-05-02T09:14:11.412041+00:00",
  "event": {"category": "kernel", "action": "af_alg_socket_create", "severity": "high"},
  "process": {"pid": 1394, "tgid": 1394, "comm": "suspicious_bin"},
  "user": {"uid": 1000, "gid": 1000},
  "socket": {"family": 38, "family_name": "AF_ALG", "type": 5, "protocol": 0},
  "host": {"name": "web-prod-04"}
}

قم بتوجيه الإخراج إلى Vector أو Fluent Bit أو journald (عبر systemd-cat). قائمة سماح بأسماء العمليات (/etc/af-alg-defense/allow.list) تقوم بكتم المستهلكين المعروفين الجيدين دون فقدان القدرة على اكتشاف الانحرافات.

هدف kprobe هو خطاف LSM، لذا تُطلق الأحداث عند النية — حتى المحاولات التي قد يرفضها seccomp أو RestrictAddressFamilies لا تزال تنتج سجلاً. هذا بالضبط ما يريده مركز العمليات الأمنية لإنشاء خط أساس سلوكي.

2. التكوين كرمز — دور Ansible + drop-in لـ systemd

يطبق ansible/roles/af_alg_hardening/ طبقتين من التحصين:

drop-in لـ sysctl (/etc/sysctl.d/90-af-alg-defense.conf):

  • kernel.unprivileged_userns_clone=0 — يزيل نقطة تحول userns المستخدمة في معظم سلاسل تصعيد AF_ALG.
  • user.max_user_namespaces=0 — دفاع متعمق قابل للنقل بين التوزيعات.

drop-in لـ systemd (/etc/systemd/system/<unit>.d/50-af-alg-restrict.conf): يستخدم RestrictAddressFamilies كـ قائمة سماح (وليس قائمة منع). يُسمح للوحدة بـ AF_UNIX AF_INET AF_INET6 AF_NETLINK؛ أي عائلة أخرى — بما فيها AF_ALG — تفشل مع EAFNOSUPPORT لأن systemd يفرضها عبر BPF مرتبط بـ cgroup لا يمكن للتطبيق تعطيله. كما يزيل drop-in قدرة CAP_SYS_ADMIN ويطبق ProtectKernel* لإغلاق مسارات التصعيد الأكثر شيوعاً.

طبق باستخدام:

root@kitploit:~
ansible-playbook -i inventory ansible/site.yml --check --diff   # معاينة
ansible-playbook -i inventory ansible/site.yml                  # تنفيذ

للمضيفات غير المزودة بـ Ansible، ضع الملف المستقل في مكانه:

root@kitploit:~
sudo ./scripts/deploy_dropin.sh nginx.service

3. مدقق حالة النواة

ينتج auditor/crypto_auditor.py تقريراً JSON عن حالة الأمان من خلال فحص:

  • /proc/crypto — كل تشفير / تجزئة / aead مسجل، مع علامات FIPS وحالة الاختبار الذاتي.
  • /sys/module/ — الوحدات المحملة في شجرة التشفير، مع علامات التلوث ولقطات المعاملات.
  • /proc/sys/kernel/ و /proc/sys/user/ — sysctls التي تتحكم في مسارات هجوم AF_ALG.
  • /sys/kernel/security/lockdown — وضع إغلاق النواة.

يتم مفتاح التقرير بمعرفات نتائج مستقرة (FND-001 حتى FND-005 حالياً) بحيث يمكن لقواعد SIEM كتم النتائج الفردية دون إسقاط المستند بأكمله. يقارن كشف الانحراف الحالة بخط أساس:

root@kitploit:~
sudo ./auditor/crypto_auditor.py --output /var/log/af-alg-defense/today.json
sudo ./auditor/crypto_auditor.py \
     --baseline /var/log/af-alg-defense/baseline.json \
     --fail-on-drift

المخطط موجود في schemas/audit_report.schema.json (Draft 2020-12) ويتم التحقق منه في CI عند كل دفع.

4. التكامل المستمر

يشغل .github/workflows/ci.yml أربع مهام عند كل دفع وطلب سحب:

  1. ShellCheck — كل *.sh وسكربت يحمل shebang.
  2. التحقق من المخطط — فحص metaschema لـ audit_report.schema.json، ثم تشغيل المدقق مباشرة على نواة مشغل GH والتحقق من التقرير الناتج. كما يتم فحص النماذج في tests/fixtures/.
  3. فحص Python (ruff check .).
  4. فحص Ansible على شجرة الدور.

فشل فحص المخطط يمنع الدمج، مما يمنع محللات SIEM النهائية من الانهيار بسبب حقل أعيدت تسميته بصمت.

إرشادات تشغيلية لمركز العمليات الأمنية

قواعد الكشف التي يجب إضافتها فوق ذلك

  • أي حدث af_alg_socket_create من عملية غير مدرجة في قائمة السماح — استدعِ الصفحة عند أول حدوث، ولا تجمع.
  • إدخال جديد في crypto_modules بين تشغيلين متتاليين للمدقق على مضيف حيث يجب تجميد تحميل الوحدات.
  • أي sysctl بقيمة hardened=false بعد تشغيل سكربت التحصين — يشير إلى عبث يدوي أو انحراف من نظام تكوين موازٍ.
  • انتقال حقل lockdown من integrity/confidentiality إلى none — مؤشر قوي على عبث بحالة النواة.

خطة النشر (موصى بها)

  1. انشر متتبع eBPF في وضع المراقبة فقط لمدة أسبوعين. استخدم خط الأساس الناتج لملء allow.list للمستهلكين المعروفين الجيدين (cryptsetup عند الإقلاع هو المعتاد).
  2. شغّل المدقق على مجموعة تمثيلية من المضيفات؛ التقط الحالة كـ baseline.json موقّع.
  3. طبق دور Ansible على مجموعة كناري مع ضبط af_alg_systemd_services على وحدة واحدة منخفضة المخاطر. راقب أخطاء EAFNOSUPPORT في journald.
  4. وسّع قائمة الخدمات بشكل تدريجي. يجب أن يُظهر systemd-analyze security <unit> أن التقييد مفروض.
  5. اربط المدقق بمهمة cron ليلية مع --fail-on-drift ووجّه المخارج غير الصفرية إلى قائمة الاستدعاء.

ما لا يفعله هذا الإطار

  • لا يقوم بإلغاء تحميل af_alg إذا كان قيد الاستخدام بالفعل. إلغاء تحميل الوحدات خارج النطاق لأن مستهلكي وقت الإقلاع الشرعيين قد لا يزالون يعملون. استخدم modprobe.blacklist=af_alg في سطر أوامر النواة إذا أكدت أن لا شيء على المضيف يحتاجه.
  • لا يصحح ثغرات CVE. تظل تحديثات نواة المورد هي التحكم الأساسي؛ هذا الإطار يقلل تكلفة التصحيح الفائت.
  • لا يحمي من الجذر. يمكن لجذر محلي تعطيل أي من هذه الضوابط؛ الإطار يرفع العتبة إلى الجذر، وليس أبعد منه.

المتطلبات

  • لينكس ≥ 4.18 (لخطاف kprobe الخاص بـ security_socket_create).
  • BCC ≥ 0.25 أو libbpf ≥ 1.0، بالإضافة إلى رؤوس نواة مطابقة لـ uname -r.
  • Python 3.10+ على المضيفات المُدارة.
  • Ansible 2.14+ على عقدة التحكم.
  • CAP_BPF (أو صلاحيات الجذر) لتحميل المتتبع؛ وصول قراءة إلى /proc/crypto للمدقق (لا يتطلب امتيازات لقراءته).

الترخيص

Apache-2.0. انظر LICENSE.

تنزيل الأداة