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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense- — تحييد ثغرات CISA النشطة في نواة Linux (CVE-2025-39964، CVE-2026-53266، CVE-2025-39682) عبر eBPF الحديث، ونزع سلاح الوحدات، ومساحات أسماء المستخدمين في containerd. | Kitploit
أدوات/GitHubGitHub/mc493/linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-
أدوات دفاعيةأمن الحاوياتتحليل الثغرات الأمنيةDevSecOpsالاستجابة للحوادث
GitHubmc493/linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-

linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-

تحييد ثغرات CISA النشطة في نواة Linux (CVE-2025-39964، CVE-2026-53266، CVE-2025-39682) عبر eBPF الحديث، ونزع سلاح الوحدات، ومساحات أسماء المستخدمين في containerd.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
6منذ يوم واحدلم تتم المراجعة بعد

الدفاع عن نواة لينكس بدون توقف: ضوابط تعويضية متعددة الطبقات عبر قياس eBPF، ونزع سلاح الوحدات، ومساحات أسماء المستخدمين

عندما تضيف وكالة الأمن السيبراني وأمن البنية التحتية (CISA) ثغرات نواة لينكس الحرجة إلى كتالوج الثغرات المعروفة المستغلة (KEV)، تبدأ ساعة تشغيلية عاجلة بالعد التنازلي لفرق البنية التحتية وقادة SRE:

فجوة التصحيح من المصدر:
المدة بين التسليح العلني لثغرة يوم الصفر في البرية وتوفر حزم نواة ثنائية موقعة ومختبرة من توزيعات المؤسسات (Ubuntu HWE، Debian، RHEL) تمتد عادةً من 7 إلى 21 يومًا.

في عناقيد Kubernetes الإنتاجية، يؤدي الانتظار السلبي لحزم الموردين إلى تعريض الأنظمة للاستغلال النشط، بينما تخاطر ترقيات النواة المبكرة أو عمليات إعادة التشغيل الطارئة بانقطاعات تشغيلية.

توثق دراسة الحالة هذه إطار عمل ضوابط تعويضية للدفاع في العمق مصمم لإدارة ثلاث ثغرات متزامنة في نواة لينكس (CVE-2025-39964، CVE-2026-53266، CVE-2025-39682) عبر مساحة المستخدم، ومحمل النواة، وطبقات وقت التشغيل دون الحاجة إلى إعادة تشغيل المضيف.


مصفوفة التهديدات وتصنيف الدفاعات

لضمان الدقة التشغيلية، تُصنَّف الدفاعات بدقة حسب خصائصها الأمنية (المنع، الكشف في وقت التشغيل، والاحتواء):

الثغرةالنظام الفرعيآلية الهجومالخطورةوضع الدفاعآلية التنفيذ
CVE-2026-53266جسر Netfilter (ebtables)تجاوز حسابي في قواعد إعادة كتابة جدول ARP للجسرعالية (تلف الذاكرة)المنع (نزع السلاح)إخلاء RAM (modprobe -r) + تجاوز المحمل (/bin/true)
CVE-2025-39964Crypto Netlink (AF_ALG)اقتطاع الأعداد الصحيحة في تخصيص مقبس netlink للتشفيرعالية (LPE / اختراق)الكشف (eBPF) / البوابةeBPF الحديث (sys_enter_socket، النطاق 38) + SECCOMP
CVE-2025-39682TLS النواة (kTLS)خلل معالجة السجل صفري الطول في TCP ULPعالية (ذعر النواة / الكومة)الكشف (eBPF)eBPF الحديث (sys_enter_setsockopt، TCP_ULP 31 و SOL_TLS 282)

بنية الدفاع في العمق متعددة الطبقات

root@kitploit:~
flowchart TD
    subgraph Ring3 ["User Space / Container Pod (Ring 3)"]
        Workload["Container Workload / Untrusted Process"]
        Probe["Exploit Vectors: socket(AF_ALG) or setsockopt(TCP_ULP)"]
        Workload --> Probe
    end

    subgraph Ring0 ["Linux Kernel (Ring 0)"]
        SyscallTrap["Syscall Trap (sysenter)"]
        Probe --> SyscallTrap
        
        Tracepoint["Kernel Tracepoint: sys_enter"]
        SyscallTrap --> Tracepoint
        
        subgraph eBPFEngine ["Modern eBPF Detection (CO-RE Ring Buffer)"]
            Filter{"Syscall Gating:\n- domain == 38 (AF_ALG)\n- SOL_TCP + TCP_ULP\n- SOL_TLS (282)"}
            Tracepoint --> Filter
        end
        
        Disarmed["Modprobe Hook: /bin/true\n(ebtables evicted & blocked)"]
        UserNS["containerd v2.2.4 User Namespace Remap\nContainer UID 0 -> Host UID 4050714624\n(Bounded Credential Containment)"]
        
        Filter -- "Match (<1ms)" --> AlertRingBuf["Ring Buffer Emission"]
        Filter -- "Pass" --> KernelExec["Normal Execution Path"]
        KernelExec --> UserNS
    end

    subgraph SecurityPipeline ["Reactive Event Pipeline"]
        Falcosidekick["Falco Daemon & Sidekick (:2801)"]
        Forwarder["Event Forwarder Daemon (:9876)"]
        NATSBus["NATS Security Bus (sovereign.security.alert)"]
        
        AlertRingBuf --> Falcosidekick
        Falcosidekick --> Forwarder
        Forwarder --> NATSBus
    end

    subgraph Enforcement ["Automated Remediation & Audit"]
        Remediator["Dynamic Bouncer (CrowdSec / nftables Drop)"]
        AuditLedger["Cryptographically Tamper-Evident Hash Chain\n(SHA-256 Chaining & Cross-Node Replication)"]
        
        NATSBus --> Remediator
        NATSBus --> AuditLedger
    end

    classDef danger fill:#ffdddd,stroke:#ff0000,stroke-width:2px;
    classDef safe fill:#ddffdd,stroke:#00aa00,stroke-width:2px;
    classDef arch fill:#f0f4f8,stroke:#0066cc,stroke-width:1px;
    class Probe danger;
    class Disarmed,UserNS,AuditLedger safe;

الطبقة 1: نزع سلاح وحدة النواة (وقائي)

1. الفارق التشغيلي الدقيق: الذاكرة النشطة مقابل الفحص المستقبلي

من الأخطاء الشائعة مع تجاوزات /etc/modprobe.d/ أن install /bin/true يحظر فقط محاولات تحميل الوحدة اللاحقة. إذا قامت شبكة الجسر (Docker، CNI القديم) بتحميل ebtables في وقت سابق من دورة حياة المضيف، يبقى الكود المصاب نشطًا في ذاكرة النواة.

يتطلب نزع السلاح بدون توقف تسلسلًا من خطوتين:

  1. الإخلاء: إلغاء تحميل الوحدات المقيمة حاليًا من ذاكرة النواة.
  2. الإغلاق: تكوين تجاوزات محمل /bin/true لمنع إعادة التحميل.

2. التنفيذ

root@kitploit:~
# Step A: Evict active ebtables modules from running kernel RAM
sudo modprobe -r ebtable_nat ebtable_filter ebtable_broute ebt_snat ebt_dnat ebt_arpreply ebtables 2>/dev/null || true

# Step B: Seal the loader via /etc/modprobe.d/blacklist-ebtables.conf
sudo tee /etc/modprobe.d/blacklist-ebtables.conf << 'EOF'
# Mitigation for CVE-2026-53266: Netfilter ARP table corruption
install ebtables /bin/true
install ebtable_nat /bin/true
install ebtable_broute /bin/true
install ebtable_filter /bin/true
install ebt_snat /bin/true
install ebt_dnat /bin/true
install ebt_arpreply /bin/true

blacklist ebtables
blacklist ebtable_nat
blacklist ebt_snat
blacklist ebt_arpreply
EOF

3. التحقق

root@kitploit:~
# Test explicit loading:
$ sudo modprobe ebt_snat
$ lsmod | grep ebt
# Output: (Empty - 0 modules resident in kernel memory)

الطبقة 2: قياس استدعاءات نظام eBPF والبوابة السلوكية (الكشف)

1. الكشف مقابل المنع المباشر

  • Falco eBPF (EDR غير متزامن): يربط sys_enter عبر مخازن حلقية حديثة لـ eBPF، مما يوفر تنبيهات دون مللي ثانية إلى SIEM/NATS. مُحسَّن للرؤية بدون حمل إضافي دون تعديل تدفق تحكم النواة.
  • الحظر المباشر (LSM متزامن): للبيئات التي تتطلب رفضًا متزامنًا (-EACCES)، يمكن لمسبار eBPF LSM أو ملف تعريف SECCOMP إسقاط استدعاء النظام قبل التنفيذ.

2. آليات استدعاء نظام kTLS المصححة (بوابة على مرحلتين)

يحدث تمكين TLS النواة على اتصال TCP في مرحلتين متميزتين:

  1. المرحلة 1 (الربط): setsockopt(fd, SOL_TCP=6, TCP_ULP=31, "tls", 4) يربط بروتوكول الطبقة العليا.
  2. المرحلة 2 (التكوين): setsockopt(fd, SOL_TLS=282, TLS_TX/TLS_RX, ...) يهيئ مفاتيح التشفير.

التصفية على SOL_TLS (282) فقط تفوت مرحلة ربط ULP. تقيّم القاعدة كلا المرحلتين:

root@kitploit:~
# falco-rules-kernel-cve.yaml
customRules:
  rules-kernel-cve.yaml: |-
    - rule: Detect AF_ALG Crypto Socket Creation (CVE-2025-39964)
      desc: Detects creation of Crypto API Netlink sockets used in local privilege escalation
      condition: evt.type = socket and evt.rawarg.domain = 38
      output: "Active Exploit Probe: AF_ALG socket requested (domain=%evt.rawarg.domain type=%evt.rawarg.type user=%user.name proc=%proc.name container=%container.id)"
      priority: WARNING
      tags: [cve, zero-day, cve-2025-39964, crypto, container_escape]

    - rule: Detect Container Kernel TLS Activation (CVE-2025-39682)
      desc: Detects container workloads attaching kTLS TCP_ULP or configuring SOL_TLS
      condition: container.id != host and evt.type = setsockopt and 
                 ((evt.rawarg.level = 6 and evt.rawarg.optname = 31) or (evt.rawarg.level = 282))
      output: "Container kTLS Activation Detected (level=%evt.rawarg.level optname=%evt.rawarg.optname user=%user.name proc=%proc.name container=%container.name)"
      priority: WARNING
      tags: [cve, zero-day, cve-2025-39682, ktls, tcp_ulp]

3. الاستقرار الإنتاجي: ثابت مرشح ABI في Linux 7.0

على نوى لينكس الحديثة (Linux 7.0+ HWE)، يواجه محرك المفتش في مساحة المستخدم لـ Falco (sinsp) عدم تطابق في تحليل السجلات على معاملات openat (sinsp_exception: could not parse param 2 (name)).

لضمان استقرار DaemonSet المستمر دون حلقات انهيار:

root@kitploit:~
falco:
  base_syscalls:
    custom_set: ['!openat']

4. (اختياري) الحظر المباشر المتزامن عبر SECCOMP

إذا كان يجب منع أحمال العمل داخل الحاوية بشكل صارم من استدعاء AF_ALG، فطبّق ملف تعريف SECCOMP يُرجع SCMP_ACT_ERRNO:

root@kitploit:~
{
  "defaultAction": "SCMP_ACT_ALLOW",
  "syscalls": [
    {
      "names": ["socket"],
      "action": "SCMP_ACT_ERRNO",
      "args": [
        {
          "index": 0,
          "value": 38,
          "op": "SCMP_CMP_EQ"
        }
      ]
    }
  ]
}

الطبقة 3: عزل مساحة أسماء المستخدمين (الاحتواء)

1. التصعيد المحدود مقابل الكتابة العشوائية في Ring-0

  • تصعيد الصلاحيات المحدود: تستغل معظم ثغرات Netlink/socket LPE عيوب منطق النواة للحصول على root داخل بنية بيانات اعتماد العملية (current->cred).
  • دفاع UserNS: في containerd v2.2.4 مع Kubernetes CRI v1.30 (hostUsers: false)، يُعيَّن جذر الحاوية (UID 0) إلى نطاق مضيف غير مميز (معرّف المضيف 4050714624). تبقى تصعيدات الاعتماد المحدودة محصورة داخل مساحة الأسماء غير الجذرية.
  • الحدود الواقعية: يمكن لثغرات الكتابة العشوائية الكاملة في ring-0 (التحكم المباشر بمؤشر تعليمات النواة أو جداول الصفحات) تجاوز حدود مساحة أسماء المستخدمين؛ تتطلب هذه التهديدات عزلًا على مستوى microVM أو hypervisor (مثل Firecracker، Kata).

2. تكوين حمل العمل

root@kitploit:~
apiVersion: v1
kind: Pod
metadata:
  name: hardened-workload
spec:
  runtimeClassName: runc
  hostUsers: false  # Remaps container root away from host root
  containers:
  - name: app
    image: app:latest

3. التحقق من المضيف

root@kitploit:~
$ cat /proc/$(pgrep -f hardened-workload)/uid_map
         0 4050714624      65536

الطبقة 4: تسلسل التدقيق المشفّر القابل للكشف عن التلاعب

1. الكشف عن التلاعب مقابل WORM العتادي

يمكن نظريًا تعديل ملفات السجلات المحلية على مضيف مخترق إذا حصل المهاجم على تنفيذ غير مقيد في ring-0. تتطلب عدم القابلية للتغيير الحقيقية إما وسائط فيزيائية تُكتب مرة واحدة أو توزيعًا تشفيريًا:

  1. تسلسل SHA-256 المتتابع: كل سجل يلتزم بتجزئة السجل السابق: $$\text{Hash}n = \mathcal{H}\left(n \parallel \text{Timestamp} \parallel \text{Topic} \parallel \text{Payload} \parallel \text{Hash}{n-1}\right)$$
  2. النسخ المتماثل عبر العقد: تُبَث السجلات عبر NATS وتُنسخ إلى عقدة تصديق مستقلة (192.0.2.52)، مما يمنع إعادة كتابة السجلات من جانب واحد بواسطة مضيف مخترق واحد.

2. نموذج سجل السلسلة

root@kitploit:~
{
  "index": 386200,
  "timestamp": "2026-09-22T08:58:36.564478+00:00",
  "topic": "sovereign.security.alert",
  "prev_hash": "b2f6ef1e467cf8402da283f58e470ee64993a479a957a0914ec8c351be7fa83d",
  "hash": "cece8f9bd8839d3753232dd7e504c538a0f58fe0bcf2e260fbefb7d27e77b8cf",
  "data": {
    "output": "Active Exploit Probe: AF_ALG socket requested (domain=38 type=5 user=root ...)",
    "priority": "Warning",
    "rule": "Detect AF_ALG Crypto Socket Creation (CVE-2025-39964)"
  }
}

التحقق التجريبي والقياس

أُجري التحقق باستخدام تخصيص مقبس AF_ALG اصطناعي في حاوية اختبار غير مميزة:

root@kitploit:~
import socket
# Requests AF_ALG Netlink family (domain 38, SOCK_SEQPACKET 5)
s = socket.socket(38, socket.SOCK_SEQPACKET, 0)

دورة حياة الحدث:

  1. استدعاء نظام النواة: socket(38, 5, 0) يستدعي sys_enter_socket.
  2. تقييم eBPF (< 1ms): تقيّم نقطة تتبع eBPF الحديثة domain == 38 وترسل الحدث إلى المخزن الحلقي.
  3. إرسال خط الأنابيب (2ms): يُصدر Falco تنبيهًا إلى webhook الخاص بـ Falcosidekick (:9876).
  4. توزيع NATS (4ms): يبثّ خادم التمرير الحدث إلى sovereign.security.alert.
  5. ختم السجل (12ms): يضيف خادم التدقيق السجل إلى سلسلة SHA-256 التشفيرية.
  6. التحقق التشفيري:
    root@kitploit:~
    $ python3 fsm_audit_vault.py --verify
    # Verified 386,213 records. Zero tampering detected.
    

بنية المستودع والقطع القابلة للنشر

يتضمن هذا المستودع تكوينات جاهزة للإنتاج للنشر الفوري:

root@kitploit:~
|-- etc/
|   \-- modprobe.d/
|       \-- blacklist-ebtables.conf     # Modprobe loader override
|-- helm/
|   |-- falco-rules-kernel-cve.yaml     # Falco modern eBPF rules (CO-RE)
|   \-- README.md                       # One-line Helm deployment guide
|-- k8s/
|   \-- pod-userns-hardened.yaml        # containerd v2.2.4 UserNS manifest
|-- scripts/
|   |-- evict-and-harden.sh             # Two-step module eviction & sealing
|   \-- verify-mitigation.sh            # Automated verification & CI test suite
|-- seccomp/
|   \-- seccomp-block-af-alg.json       # Inline SECCOMP blocking profile (EACCES)
|-- vault/
|   \-- audit_vault.py                  # Cryptographic SHA-256 hash-chain engine
|-- README.md
\-- LICENSE

خلاصات SRE ومهندسي الأنظمة

  1. الضوابط التعويضية تسد فجوة التصحيح: عندما تُسلَّح ثغرات يوم الصفر النشطة في النواة، انشر ضوابط المحمل ووقت التشغيل فورًا أثناء انتظار التحقق من حزم التوزيعة من المصدر.
  2. إخلاء الوحدات النشطة إلزامي: تؤثر تجاوزات Modprobe فقط على طلبات المحمل المستقبلية؛ تحقق دائمًا من الذاكرة قيد التشغيل عبر lsmod وأخلِ الوحدات المقيمة صراحةً (modprobe -r).
  3. بوابة على مرحلتين لـ kTLS: يجب أن تقيّم قواعد الأمان لـ kTLS كلاً من ربط TCP_ULP (SOL_TCP=6، optname=31) وتهيئة الخيارات (SOL_TLS=282).
  4. مساحات أسماء المستخدمين تحدّ من تصعيد الصلاحيات: اقتران أحمال عمل Kubernetes مع مساحات أسماء مستخدمي containerd (hostUsers: false) يمنع تصعيد الصلاحيات على مستوى الحاوية من المطالبة بسهولة بجذر ring-0 للمضيف.
  5. افصل EDR عن الإنفاذ المباشر: استخدم eBPF غير المتزامن (Falco) لمراقبة العنقود منخفضة الحمل، وLSM / SECCOMP المتزامن عندما يكون الإنهاء الفوري إلزاميًا.

يُصان بواسطة فريق Sovereign Systems & Security Architecture.
مُختبر إنتاجيًا على Linux HWE و Kubernetes CRI v1.30 (containerd v2.2+).

تنزيل الأداة