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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
LID — LID — انحراف سلامة لينكس: تجاوز AppArmor عبر إعادة كتابة مسار eBPF. التلاعب بوسائط استدعاء النظام قبل LSM بدون أي أثر تدقيق. "لينكس يحتضر" | Kitploit
أدوات/GitHubGitHub/azqzazq1/lid
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالتهرب من IDS/IPSاختبار الاختراقتحليل الملفات الثنائيةالأوراق والأبحاثالتعلم والتعليمالفريق الأحمر
GitHubazqzazq1/lid

LID

LID — انحراف سلامة لينكس: تجاوز AppArmor عبر إعادة كتابة مسار eBPF. التلاعب بوسائط استدعاء النظام قبل LSM بدون أي أثر تدقيق. "لينكس يحتضر"

201منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع


``` ██╗ ██╗██████╗ ██║ ██║██╔══██╗ ██║ ██║██║ ██║ ██║ ██║██║ ██║ ███████╗██║██████╔╝ ╚══════╝╚═╝╚═════╝ ```

انحراف تكامل لينكس

— "لينكس يحتضر" —


اكتشاف منهجي لمسارات كود النواة التي تتجاوز ضمانات أمان LSM
لم تُخترق البوابة أبدًا. بل تم الالتفاف حولها.



ما هو LID؟

إطار وحدة أمان لينكس لديه ضمان أساسي واحد استمر لأكثر من 20 عامًا:

وحدات الأمان يمكنها فقط إضافة قيود. لا يمكنها أبدًا إزالتها.

هذا الضمان صحيح. LID لا يخترقه.

LID يعثر على مسارات كود النواة التي تتجاوز خطافات LSM بالكامل — أنظمة فرعية تقوم بعمليات حساسة أمنيًا دون استشارة إطار LSM. الفحص الأمني صحيح. المشكلة هي أن النواة لا تسأل أبدًا.


فهم ما هو LID (وما ليس كذلك)

كل اكتشاف له بعدان متميزان لا ينبغي الخلط بينهما:

أ) فجوة رؤية السياسة

النقطة العمياء المعمارية. السؤال ليس "هل يمكن لمهاجم استغلال هذا؟"، بل:

  • ما الذي يراه AppArmor/SELinux فعليًا؟
  • ما الذي يسجله سجل التدقيق تسجيله؟
  • ما الذي يلاحظه نظام SIEM/EDR الخاص بك؟
  • ما الذي يعتقده محرك السياسات أنه حدث؟

إذا حدثت عملية حساسة أمنيًا ولم تقم طبقة الإنفاذ بتقييمها أبدًا، فإنك تعاني من فجوة رؤية — بغض النظر عما إذا كان بإمكان المهاجم إساءة استخدامها عمليًا اليوم. هذا مهم لـ الامتثال، الطب الشرعي، و افتراضات الدفاع المتعمق.

ب) مسار التصعيد العملي

سؤال قابلية الاستغلال في العالم الحقيقي:

  • هل يعبر هذا حدود الامتياز؟
  • هل يحتاج المهاجم إلى صلاحيات الجذر/ CAP_BPF الموجودة مسبقًا لتشغيله؟
  • هل هناك حاجة إلى سلسلة استغلال، أم أنه مستقل؟
  • ما هو التأثير الفعلي — الوصول إلى البيانات، تصعيد الامتياز، التهرب من السياسة؟

هذان الشيئان مختلفان. يمكن أن يكون الاكتشاف فجوة رؤية حرجة (مراقبتك عمياء) دون أن يكون تصعيد امتياز عملي (المهاجم يحتاج بالفعل إلى الجذر). على العكس، يمكن أن يكون الاكتشاف مسار تصعيد مباشر بمتطلبات مسبقة ضئيلة.


مصفوفة قابلية التكرار

كل اكتشاف له متطلبات محددة من النواة/التكوين/الامتياز. إذا كانت بيئتك لا تتطابق، فلن يتكرر الاكتشاف.

LID-001: إعادة كتابة اسم مسار eBPF

LID-002: io_uring MSG_RING

LID-004: عمى AppArmor لرمز BPF

LID-003: واجهة برمجة التطبيقات للتثبيت الجديدة

LID-005: تجاوز AF_XDP tc الصادر

مرجع سريع: ما يمنع كل اكتشاف


الاكتشافات


النمط

كل اكتشاف يتبع نفس النمط:``` ┌─────────────────────────────────────────────────────────────┐ │ THE LID PATTERN │ │ │ │ Kernel Subsystem A LSM Framework │ │ (eBPF / io_uring / mount API) (AppArmor / SELinux) │ │ │ │ ┌───────────────────┐ │ │ │ Performs operation │──── should call ──── security_*() │ │ │ or manipulates │ but │ │ │ security input │ DOESN'T ██ │ │ └───────────────────┘ │ │ │ │ The LSM framework is correct. │ │ The kernel just doesn't always use it. │ └─────────────────────────────────────────────────────────────┘

root@kitploit:~
Two kernel subsystems. Incompatible trust assumptions. One gap.

<br>

---

## LID-001: eBPF إعادة كتابة اسم المسار

**الاكتشاف الرئيسي.** يعيد كشف BPF kprobe على `do_sys_openat2` كتابة اسم الملف في ذاكرة المستخدم قبل أن تنسخه النواة. يقوم AppArmor بفحص المسار المعاد كتابته، ويمنح الوصول. لا يوجد أثر تدقيق.```
  process: open("/tmp/secret.txt")
       │
       ▼
  do_sys_openat2()
       │
    ★ LID kprobe fires here
    │  bpf_probe_write_user()
    │  rewrites "/tmp/secret.txt" → "/tmp/.bypass_link"
       │
       ▼
  getname_flags()          ← kernel copies the (rewritten) path
       │
       ▼
  security_file_open()     ← LSM hooks check "/tmp/.bypass_link"
       │                      AppArmor: ALLOW ✓
       ▼
  VFS opens inode          ← same file content (hard link)
       │
       ▼
  return fd to process     ← success, zero audit trace

بداية سريعة```bash

sudo ./scripts/check_prerequisites.sh sudo ./scripts/setup_env.sh make sudo ./scripts/setup_demo.sh sudo ./scripts/run_demo.sh

root@kitploit:~
### إخراج توضيحي```
╔══════════════════════════════════════════════════════════╗
║  Phase 1: AppArmor ENFORCING — access should be DENIED   ║
╚══════════════════════════════════════════════════════════╝

  $ /tmp/test_reader
  [-] DENIED: open() failed: Permission denied (errno=13)

╔══════════════════════════════════════════════════════════╗
║  Phase 2: Loading LID — BPF kprobe pathname rewrite       ║
╚══════════════════════════════════════════════════════════╝

  [*] BPF kprobe attached to do_sys_openat2

╔══════════════════════════════════════════════════════════╗
║  Phase 3: With LID active — access should be GRANTED      ║
╚══════════════════════════════════════════════════════════╝

  $ /tmp/test_reader
  [+] SUCCESS: Read 44 bytes: SECRET_DATA=this_is_protected_content_12345

╔══════════════════════════════════════════════════════════╗
║  Phase 4: Stealth check — audit log inspection             ║
╚══════════════════════════════════════════════════════════╝

  $ dmesg | grep apparmor | grep DENIED
  (empty — no denial was ever generated)


LID-002: io_uring MSG_RING غياب خطاف LSM

IORING_OP_MSG_RING مع IORING_MSG_SEND_FD تقوم بنقل واصفات الملفات بين حلقات io_uring دون استدعاء security_file_receive(). كل آلية نقل fd أخرى تقوم باستدعائها:

root@kitploit:~
// security_file_receive() call from __receive_fd()
// security_file_receive() call from scm_recv()
// But io_uring does not call it

MSG_RING SEND_FD: __io_fixed_fd_install() ← NO security_file_receive() FIXED_FD_INSTALL: receive_fd() ← security_file_receive() ✓ SCM_RIGHTS: receive_fd() ← security_file_receive() ✓ binder: security_binder_transfer_file() ✓

root@kitploit:~
**موقع الخلل:** `io_uring/msg_ring.c`، `io_msg_install_complete()` — تستدعي `__io_fixed_fd_install()` مباشرةً، متجاوزةً خطاف LSM.

**تم التحقق باستخدام ftrace:** `security_file_receive` يُطلق لـ SCM_RIGHTS ولكن ليس لـ MSG_RING.

**المتأثر:** Linux 5.18+ حتى v7.1-rc3 (غير مُصحح اعتبارًا من 2026-05-17).

**PoC:** [`findings/lid-002-iouring-msgring/msg_ring_bypass.c`](https://github.com/azqzazq1/lid/blob/HEAD/findings/lid-002-iouring-msgring/)

<br>

---

## LID-003: واجهة التركيب الجديدة تتجاوز AppArmor

واجهة التركيب الجديدة (`fsopen` + `fsconfig` + `fsmount` + `move_mount`) **لا تستدعي أبدًا `security_sb_mount()`** — وهو خطاف التركيب الوحيد الذي تنفذه AppArmor.```
  OLD API:  mount("proc", "/mnt", "proc", 0, NULL)
            → security_sb_mount()  → AppArmor: DENY ✗

  NEW API:  fsopen("proc") → fsconfig(CMD_CREATE) → fsmount() → move_mount()
            → security_sb_kern_mount()  → AppArmor: (not implemented) → ALLOW ✓

يسجل AppArmor 4 خطافات تثبيت. يسجل SELinux 14. يستخدم واجهة برمجة التثبيت الجديدة خطافات ينفذها SELinux فقط.

ثغرات إضافية تم العثور عليها:

  • open_tree(OPEN_TREE_CLONE): صفر خطافات أمان — يتجاوز سياسة التثبيت المرتبط
  • mount_setattr(): لا يوجد خطاف LSM نهائيًا في النواة
  • move_mount() مع تثبيتات منفصلة: يرى AppArmor مسار مصدر NULL

التفاصيل: findings/lid-003-mount-api/



LID-004: رمز BPF — تغطية AppArmor صفرية

يقوم نظام رمز BPF الفرعي (Linux 6.9+) بتفويض قدرات BPF إلى العمليات غير المميزة في مساحات أسماء المستخدمين. تحدد النواة 9 خطافات BPF LSM. يقوم SELinux بتنفيذ جميع الـ 9 مع تطبيق avc_has_perm() الفعلي. ينفذ AppArmor صفر.``` Kernel defines 9 BPF LSM hooks: ┌─────────────────────────────────────────────────────────────────┐ │ bpf, bpf_map, bpf_prog, bpf_map_create, bpf_prog_load, │ │ bpf_token_create, bpf_token_free, bpf_token_cmd, │ │ bpf_token_capable │ └─────────────────────────────────────────────────────────────────┘

SELinux: ████████████████████████████ 9/9 implemented AppArmor: 0/9 implemented Smack: 0/9 implemented

root@kitploit:~
على Ubuntu/Debian، يمكن لحاوية مع تفويض bpffs أن:
- تنشئ رموز BPF → لا يرى AppArmor شيئًا
- تستخدم الرموز لتحميل برامج التتبع → لا يرى AppArmor شيئًا
- تفوض CAP_PERFMON → تعطيل تخفيفات Spectre → لا يرى AppArmor شيئًا

**التفاصيل:** [`findings/lid-004-bpf-token/`](https://github.com/azqzazq1/lid/blob/HEAD/findings/lid-004-bpf-token/)

<br>

---

## LID-005: تجاوز خروج tc لـ AF_XDP من حاوية Docker الافتراضية

مسار الإرسال لوضع النسخ في AF_XDP (`xsk_generic_xmit` → `__dev_direct_xmit`) **يتجاوز مصنفات tc للخروج** على واجهة الحاوية. تم التحقق باستخدام tc u32 DROP-ALL — تم حظر AF_PACKET، ومرت AF_XDP.

**مع ذلك:** تم اختبارها مع Cilium v1.19 (مجموعة kind، سياسة شبكة خروج deny-all) — **لم يتم تجاوز Cilium.** يقوم Cilium بالفرض على دخول نظير veth جانب العقدة (`cil_from_container` عبر tcx/ingress) + لديه التحقق من عنوان IP المصدر. تم إسقاط حزم AF_XDP كـ "Invalid source ip" في `bpf_lxc.c:1603`. التأثير محدود على البيئات التي تعتمد فقط على مصنفات tc للخروج لسياسة الشبكة (Docker عادي + قواعد tc، بدون CNI).```
  Normal TX path:
  socket → dev_queue_xmit() → sch_handle_egress() → tc classifiers → driver
                                     ↑
                                  ENFORCED (Cilium eBPF, Calico, tc u32)

  AF_XDP copy-mode TX:
  xsk_sendmsg() → xsk_generic_xmit() → __dev_direct_xmit() → driver
                                              ↑
                                           SKIPPED (tc never runs)

تم التحقق منها ديناميكيًا على النواة 6.8.0 مع حاويات Docker الافتراضية:``` tc egress DROP-ALL on container eth0:

AF_PACKET sendto → ENOBUFS (BLOCKED by tc) AF_XDP sendto → 0 (BYPASS — 3 spoofed packets reached docker0 bridge)

root@kitploit:~
تحمل الحزم رؤوس إيثرنت يتحكم بها المهاجم — MAC مزيفة، IP مزيفة — وتصل إلى جسر Docker على الرغم من سياسة DROP النشطة.

**PoC والتفاصيل:** [`findings/lid-005-afxdp-tc-bypass/`](https://github.com/azqzazq1/lid/blob/HEAD/findings/lid-005-afxdp-tc-bypass/)

<br>

---

## البنية: لماذا لا يستطيع BPF LSM إصلاح هذا```
  LSM Hook Chain: call_int_hook(file_open, ...)

  ┌─────────────┐   ┌─────────────┐   ┌─────────────┐   ┌─────────────┐
  │  Lockdown    │──>│  Capability  │──>│   AppArmor   │──>│  BPF LSM    │
  │  return 0    │   │  return 0    │   │  return -13  │   │  (never     │
  │  (allow)     │   │  (allow)     │   │  (DENY) ██   │   │   reached)  │
  └─────────────┘   └─────────────┘   └──────┬───────┘   └─────────────┘
                                              │
                                         loop breaks
                                         RC = -EACCES

  ★ The LSM framework is correct. No module can undo another's denial.
  ★ LID operates OUTSIDE the framework — before hooks run, or where hooks don't exist.

مرافق: SunnyDayBPF```

root@kitploit:~
               ┌───────────────────────────────────────┐
               │          THE ATTACK TIMELINE           │
               │                                       │

Syscall Entry │ ★ LID ─── manipulates input │ │ │ (security check sees wrong data) │ ▼ │ │ LSM Check │ LSM allows (or never runs) ✓ │ │ │ │ ▼ │ │ Syscall Exit │ ★ SunnyDayBPF ─── rewrites telemetry │ │ │ (monitoring sees wrong data) │ ▼ │ │ Audit/Log │ SIEM sees nothing ✓ │ │ │ │ Combined: ghost access │ └───────────────────────────────────────┘

root@kitploit:~
<br>

## هيكل المشروع```
LID/
├── src/
│   ├── bpf/
│   │   └── lid.bpf.c              # BPF kprobe — pathname rewriter (LID-001)
│   └── loader/
│       └── lid_loader.c           # Userspace loader + event monitor
├── findings/
│   ├── lid-001-ebpf-pathname/     # eBPF pathname rewriting bypass
│   ├── lid-002-iouring-msgring/   # io_uring MSG_RING missing LSM hook
│   │   ├── msg_ring_bypass.c      # PoC with ftrace verification
│   │   └── ADVISORY.md            # Technical advisory
│   ├── lid-003-mount-api/         # New mount API AppArmor bypass
│   ├── lid-004-bpf-token/        # BPF token AppArmor/Smack zero coverage
│   └── lid-005-afxdp-tc-bypass/  # AF_XDP tc egress bypass from container
├── tests/
│   └── test_reader.c              # Victim binary for LID-001 demo
├── scripts/
│   ├── check_prerequisites.sh     # Verify system requirements
│   ├── setup_env.sh               # Install build dependencies
│   ├── setup_demo.sh              # Create demo environment
│   ├── run_demo.sh                # Run full LID-001 demonstration
│   └── teardown.sh                # Clean up everything
├── docs/
│   └── RESEARCH.md                # Full technical research paper
├── publish/                       # Articles for Medium, dev.to, etc.
├── Makefile
├── LICENSE
├── SECURITY.md
└── README.md

ملف التخفي (LID-001)


التخفيفات

للحصول على توجيهات مفصلة للتخفيف، راجع docs/RESEARCH.md.


المتطلبات

راجع مصفوفة قابلية إعادة الإنتاج للحصول على التفاصيل الكاملة لكل اكتشاف. الملخص:


المؤلف

Azizcan Daştan
Milenium Security

  • GitHub: @azqzazq1

إخلاء مسؤولية

تم نشر هذه الأداة لأغراض اختبار الأمان المصرح به والبحث والتعليم فقط. لا تستخدمها ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها.


LID — لأن النزاهة لم تكن مقفلة أبدًا.

تنزيل الأداة
الاكتشاففجوة الرؤيةالتصعيد العملي
LID-001حرجة — AppArmor لا يرى شيئًا، سجل التدقيق فارغ، لا أثر طب شرعي صفريمحدودة — يتطلب الجذر أو CAP_BPF+CAP_PERFMON (مميز بالفعل). ليس تصعيد امتياز. التأثير: التهرب من السياسة + العمى التدقيقي.
LID-002عالية — security_file_receive() لا يُطلق أبدًا، نقل واصف الملف غير مرئي لجميع LSMsعالية — يعمل من مساحة مستخدم غير مميزة عبر io_uring. يعبر حدود إنفاذ LSM دون أي امتياز.
LID-003عالية — تجاوز security_sb_mount()، سياسة تثبيت AppArmor هي كود ميتمتوسطة — يتطلب الوصول إلى مساحة اسم التثبيت (CAP_SYS_ADMIN في مساحة اسم المستخدم). متاح في العديد من تكوينات الحاويات.
LID-004حرجة — AppArmor لا يرى شيئًا، لا خطافات BPF (0/9)، لا أثر تدقيق لأي عملية رمز BPFمتوسطة — يتطلب تفويض bpffs من المضيف + CAP_BPF في مساحة اسم المستخدم. متاح في بيئات تشغيل الحاويات مع تفويض BPF (LXD/Incus).
LID-005متوسطة — مصنفات tc الصادرة على واجهة الحاوية لا تقيم أبدًا حركة مرور AF_XDPمحدودة — يتجاوز tc الصادر على eth0 للحاوية (تم التحقق). لم يتم تجاوز Cilium — يفرض على واجهة veth الجانبية للمضيف + التحقق من IP المصدر (تم اختباره). التأثير محدود لإعدادات Docker العادية مع تصفية tc الصادرة فقط.
الشرطمطلوبملاحظات
إصدار النواة5.x+تم اختباره على 5.15، 6.1، 6.6، 6.8
CONFIG_BPF_SYSCALL=yافتراضي في جميع التوزيعات الرئيسية
CONFIG_BPF_KPROBE_OVERRIDE=yأوبونتو/ديبيان يفعلانه، RHEL لا يفعل
CONFIG_SECURITY_APPARMOR=yLSM المستهدف يجب أن يكون AppArmor
ملف تعريف AppArmorوضع فرض، قاعدة منع على المسار المستهدفيعمل مع أي قاعدة منع قائمة على المسار
الامتيازاتroot أو CAP_BPF + CAP_PERFMONلا يمكن تشغيله بدون امتيازات
kernel.lockdownnone أو integrityوضع confidentiality يمنع ربط kprobe
kernel.unprivileged_bpf_disabledغير ذي صلةيتطلب CAP_BPF بغض النظر
fs.protected_hardlinks0 للروابط عبر المستخدمين1 (الافتراضي) لا يزال يسمح بالروابط الصلبة لنفس المستخدم
SELinux بدلاً من AppArmorلا يعملSELinux يعتمد على inode وليس على اسم المسار
الشرطمطلوبملاحظات
إصدار النواة6.0+IORING_MSG_SEND_FD أُضيف في 6.0
CONFIG_IO_URING=yافتراضي في جميع التوزيعات الرئيسية
الامتيازاتلا شيءيعمل من مساحة مستخدم غير مميزة
sysctl io_uring_disabled0 (الافتراضي)2 يمنع غير المميزين، 1 يمنع الجميع
LSM المستهدفأي (SELinux، AppArmor، Smack)security_file_receive() هو خطاف LSM عام
kernel.lockdownغير ذي صلةلا يشمل BPF
الشرطمطلوبملاحظات
إصدار النواة6.9+رمز BPF أُدخل في 6.9
CONFIG_BPF_SYSCALL=yافتراضي في جميع التوزيعات الرئيسية
CONFIG_SECURITY_APPARMOR=yافتراضي أوبونتو/ديبيان
bpffs مع التفويضنعميجب على المضيف تثبيته مع خيارات delegate_*
الامتيازاتCAP_BPF في مساحة اسم المستخدممتاح بسهولة لجذر userns
SELinux بدلاً من AppArmorغير متأثرSELinux ينفذ جميع خطافات BPF التسعة
الشرطمطلوبملاحظات
إصدار النواة5.2+fsopen/fsmount أُدخلا في 5.2
CONFIG_SECURITY_APPARMOR=yفقط AppArmor متأثر
الامتيازاتCAP_SYS_ADMIN في مساحة اسم المستخدممتاح مع unshare -m
SELinux بدلاً من AppArmorلا يعملSELinux ينفذ security_sb_kern_mount()
بيئة تشغيل الحاويةيعتمد على مرشح seccompfsopen يمنعه seccomp الافتراضي لـ Docker — قد لا يمنعه Podman/LXC
الشرطمطلوبملاحظات
إصدار النواة4.18+AF_XDP أُدخل في 4.18
CONFIG_XDP_SOCKETS=yافتراضي في جميع التوزيعات الرئيسية
الامتيازاتCAP_NET_RAW فقطافتراضي في Docker، مجموعات Kubernetes
بيئة تشغيل الحاويةDocker، K8s، LXCمجموعة الامتيازات الافتراضية
سياسة شبكة قائمة على tcنعمCilium eBPF، Calico، tc u32/flower
البيئةLID-001LID-002LID-003LID-004LID-005
أوبونتو 22.04+ (AppArmor، افتراضي)يعمليعمليعمليعمل (6.9+)يعمل
ديبيان 12+ (AppArmor)يعمليعمليعمليعمل (6.9+)يعمل
RHEL/Fedora (SELinux)لايعمللالايعمل
lockdown=confidentialityلايعمليعملجزئيًايعمل
مستخدم غير مميزلايعمليعتمد على usernsيعتمد على تفويض bpffsلا
حاوية (بدون CAP_BPF)لايعتمد على io_uringيعتمد على seccompلايعمل
حاوية (تم إسقاط CAP_NET_RAW)لايعتمديعتمدلالا
المعرفالمتجهالهدفما يحدث
LID-001إعادة كتابة اسم مسار eBPF kprobeAppArmorيعيد kprobe كتابة اسم الملف قبل copy_from_user ← يتحقق AppArmor من المسار الخطأ
LID-002io_uring MSG_RING SEND_FDSELinux، AppArmor، Smackنقل واصف الملف يتجاوز security_file_receive() — كل نقل واصف آخر يستدعيه
LID-003واجهة برمجة التطبيقات للتثبيت الجديدة (fsopen/fsmount)AppArmorsecurity_sb_mount() لا يُستدعى أبدًا — تجاوز خطاف التثبيت الوحيد لـ AppArmor
LID-004تفويض رمز BPFAppArmor، Smackصفر خطافات BPF — إنشاء الرمز، استخدامه، تفويض القدرة غير مرئي بالكامل
LID-005AF_XDP __dev_direct_xmittc الصادر، Cilium، Calicoوضع النسخ للإرسال من Docker الافتراضي يتجاوز مصنفات tc — تصل الحزم المزيفة إلى الجسر
المؤشرالظهورملاحظات
سجل تدقيق AppArmorلا شيءلا يحدث رفض أبدًا
auditd / journaldلا شيءلا يتم إنشاء حدث أمني
dmesgتحذير لمرة واحدةرسالة عامة bpf_probe_write_user
bpftool prog listمرئييُظهر kprobe المرفقة (إذا تم التحقق)
الرابط الثابت على القرصقابل للكشفfind -samefile (بطيء، مزعج)
التخفيفالفعاليةالمقايضة
kernel.lockdown=confidentialityيمنع BPF بالكامليقتل المراقبة المشروعة
تعطيل bpf_probe_write_userيمنع إعادة كتابة مسار LID-001يتطلب إعادة بناء النواة
fs.protected_hardlinks=1يحد من إنشاء الروابط الثابتةافتراضي في النواة الحديثة
مراقبة bpftool prog listيكشف عن التحقيقات المرفقةيتطلب استقصاء نشط
الترحيل إلى SELinuxيعتمد على inode، يهزم إعادة كتابة المسارترحيل معقد
تقييد io_uringيمنع LID-002قد يعطل التطبيقات
الاكتشافالحد الأدنى للنواةالصلاحياتالهدف
LID-0015.x+root / CAP_BPF+CAP_PERFMONAppArmor فقط
LID-0026.0+لا شيءأي (SELinux، AppArmor، Smack)
LID-0035.2+CAP_SYS_ADMIN (user ns ok)AppArmor فقط
LID-0046.9+CAP_BPF (user ns ok)AppArmor، Smack
LID-0054.18+CAP_NET_RAW (افتراضي Docker)tc egress (Cilium، Calico، إلخ.)