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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SunnyDayBPF — SunnyDayBPF: بحثٌ في خداع التيليمتري للمخازن المؤقتة للمستخدم بعد استدعاء النظام باستخدام eBPF بقلم Azizcan Daştan | Kitploit
أدوات/GitHubGitHub/azqzazq1/sunnydaybpf
أدوات دفاعيةالفريق الأحمر
GitHubazqzazq1/sunnydaybpf

SunnyDayBPF

SunnyDayBPF: بحثٌ في خداع التيليمتري للمخازن المؤقتة للمستخدم بعد استدعاء النظام باستخدام eBPF بقلم Azizcan Daştan

عرض المستودع
2459منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

SunnyDayBPF

SunnyDayBPF هي تقنية بحثية قائمة على eBPF لمبدأ خداع قياسات المخزن المؤقت للمستخدم بعد استدعاء النظام، وقد اقترحها وبحث فيها Azizcan Dastan.

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

الفكرة الأساسية هي:

الحدث ما زال يقع.
عامل المراقبة ما زال يقرأ البيانات.
لكن البيانات التي رصدها العامل قد لا تعود تمثل الحدث الأصلي تمثيلًا كاملًا.

يركز SunnyDayBPF على الفجوة بين الحقيقة الأساسية والقياسات المرصودة.


البنية المعمارية (v2.1)```text

                      SunnyDayBPF Hook Points
                      ========================

Telemetry Agent Process +---------------------------------------------------------+ | | | read() pread64() recvfrom() | | | | | | +-----|----------------|------------------|---------------+ | | | ======|================|==================|======= KERNEL BOUNDARY | | | kprobe:ksys_read kprobe:_x64_sys kprobe:_sys (save buf ptr) pread64 recvfrom | (nested pt_regs) (save buf ptr) | (save buf ptr) | v v v [syscall executes — data enters user buffer] | | | kretprobe kretprobe kretprobe | | | +--------+-------+---------+--------+ | | read buffer into initialize BPF scratch space scan_state | v +------------------+ | TAIL CALL CHAIN | | | | scan_g0: SECURITY (4 rules, scan=177 bytes) | scan_g1: SECURITY (4 rules, scan=173 bytes) | scan_g2: SEVERITY (4 rules, scan=177 bytes) | scan_g3: SEVERITY (1 rule, scan=251 bytes) | scan_g4: PATH (4 rules, scan=132 bytes) | scan_g5: AUTH (4 rules, scan=190 bytes) | scan_g6: AUTH (1 rule, scan=249 bytes) | scan_g7: NETWORK (3 rules, scan=249 bytes) | scan_g8: PROCESS (4 rules, scan=173 bytes) | scan_g9: CUSTOM (2 rules, scan=243 bytes) | | | emit_event: | | perf event | | + stats | +------------------+ | v bpf_probe_write_user() (modify agent's buffer) | v read-back verification (confirm write succeeded) | v Agent continues with modified data

### تغطية استدعاءات النظام

| استدعاء النظام | خطاف النواة | استخراج المعاملات | التغطية |
|---------|------------|----------------|----------|
| `read()` | `ksys_read` | `PT_REGS_PARM2` (مباشر) | قراءات الملفات، الأنابيب، `/proc`، ملفات السجلات |
| `pread64()` | `__x64_sys_pread64` | `pt_regs` متداخلة عبر `bpf_probe_read_kernel` (offset 104/RSI) | قراءات الملفات ذات الوصول العشوائي، journald |
| `recvfrom()` | `__sys_recvfrom` | `PT_REGS_PARM2` (مباشر) | مقابس الشبكة، إعادة توجيه syslog |

### قيود مُحقّق BPF

يفرض مُحقّق BPF حدًا لتسلسل القفزات يبلغ 8,192 فرعًا شرطيًا لكل برنامج. يلتف SunnyDayBPF حول هذا باستخدام:

- **استدعاءات BPF الذيلية** (`BPF_PROG_ARRAY`): 31 قاعدة موزعة على 10 برامج مستقلة، لكلٍّ منها ميزانية تحقق خاصة بها
- **تحسين تجاهل حالة الأحرف**: `(d[i]|32)==lower` يقلل القفزات لكل بايت من 2 إلى 1 للأحرف الأبجدية
- **حدود الفحص الديناميكية**: تُحسب نافذة الفحص لكل مجموعة على النحو التالي: `min(BUF_SIZE - max_pat, 7800 / jumps_per_iter)` للبقاء ضمن حدود المُحقّق
- **مصفوفات Per-CPU**: `BPF_PERCPU_ARRAY` للمخزن المؤقت وحالة الفحص، وتُشارَك عبر البرامج المستدعاة عبر استدعاءات الذيل

---

## نظرة عامة

تعتمد أنظمة الأمان الحديثة في لينكس غالبًا على عوامل في مساحة المستخدم تجمع بيانات القياس من الملفات، والمقابس، والأنابيب، وواجهات البرمجة، وواجهات النواة، أو تدفقات الأحداث.

قد تقوم هذه العوامل بإعادة توجيه بيانات القياس إلى:

- منصات SIEM
- الأنظمة الخلفية لـ EDR/XDR
- خطوط أنابيب التدقيق
- جامعو السجلات
- محركات أمان وقت التشغيل
- أنظمة هندسة الكشف
- منصات الرصد

الافتراض الشائع هو:```text
actual system behavior == collected telemetry == observed security data

SunnyDayBPF يتحدى هذا الافتراض.

يستكشف البحث نموذج خداع ما بعد استدعاء النظام (post-syscall) حيث تستقبل عملية المراقبة البيانات بشكل طبيعي، لكن المخزن المؤقت الذي يحتوي تلك البيانات يُعدَّل قبل أن تستهلكها العملية.```text actual system behavior != observed telemetry

---

## التعريف التقني

SunnyDayBPF هي تقنية خداع تليمتري بعد استدعاء النظام (post-syscall) تدرس التلاعب بالمخازن المؤقتة في مساحة المستخدم الخاصة بالعمليات المختارة المستهلكة للتليمترية.

على مستوى عالٍ، تتبع التقنية النموذج التالي:```text
sys_enter_*:
    identify a target telemetry-consuming process
    record the user-space buffer pointer involved in the read-like operation

sys_exit_*:
    verify that the read-like operation completed successfully
    inspect the returned user-space buffer
    selectively alter telemetry-relevant content
    verify write success via read-back
    allow the target process to continue execution normally

يؤدي هذا إلى عدم تطابق بين:```text what happened on the system

و:```text
what the monitoring agent later observes, parses, and forwards

الوكلاء المستهدفون (28 مُتحقَّق منهم)

يحدد SunnyDayBPF العمليات المستهدفة عبر مطابقة بادئة اسم الأمر المكوّنة من 5 أحرف.

SIEM / جمع السجلات

الوكيلالبادئةطريقة القراءةفعّال؟
Wazuhwazuhread() على ملفات السجلات، syslog، سجلات التدقيقنعم
OSSECossecread() على ملفات السجلاتنعم
Splunk UFsplunread() على الملفات المراقَبةنعم
Elastic Agentelastread() على مصادر السجلاتنعم
Datadog Agentdatadread() على السجلات والمقاييسنعم
Criblcriblread() لتوجيه السجلاتنعم

إعادة توجيه السجلات

الوكيلالبادئةطريقة القراءةفعّال؟
rsyslogrsyslread() / recvfrom() على syslogنعم
syslog-ngsysloread() / recvfrom() على syslogنعم
Filebeatfilebread() على ملفات السجلاتنعم
Fluent-bitfluenread() / recvfrom() على المدخلاتنعم
Fluentdfluenread() / recvfrom() على المدخلاتنعم
Logstashlogstread() / recvfrom() على خط الأنابيبنعم
Promtailpromtread() على ملفات السجلات (Loki)نعم
Vectorvectoread() على مصادر السجلاتنعم

أمان وقت التشغيل

الوكيلالبادئةطريقة القراءةفعّال؟
Falcofalcoأحداث eBPF تُجمَع عبر read() على المخزن المؤقت perfنعم
osqueryosqueread() على /proc، ملفات السجلات، جداول النظامنعم

أمان الشبكة

الوكيلالبادئةطريقة القراءةفعّال؟
Snortsnortrecvfrom() على التقاط الحزمنعم
Suricatasuricrecvfrom() على التقاط الحزمنعم
Zeekzeek_recvfrom() على التقاط الحزمنعم

مراقبة النظام

تنزيل الأداة