Tracee - أداة eBPF أمان وتحقيق الحوادث
Tracee هي أداة أمان وتحقيق حوادث مفتوحة المصدر قائمة على eBPF من Aqua Security. تستخدم eBPF لتتبع أحداث نظام التشغيل — استدعاءات النظام، نشاط العملية والشبكة، عمليات الملفات — على مستوى النواة بدون حمل إضافي، ثم تطبق مكتبة من السلوكيات التوقيعات للكشف عن النشاط المريب أو الضار في وقت التشغيل. تم بناؤها لأجهزة Linux والحاويات و Kubernetes، وهي ملحق قوي لـ Falco و Tetragon في مساحة أمان وقت التشغيل المستندة إلى eBPF.
المتطلبات
- Linux kernel ≥ 5.4 (دعم BTF / CO-RE موصى به؛ معظم التوزيعات الحديثة)
- Root / حاوية مميزة (eBPF يحتاج إلى قدرات مرفوعة)
التثبيت
| الطريقة | الأمر |
|---|
| Docker (الأسرع) | docker run --name tracee -it --rm --pid=host --cgroupns=host --privileged -v /etc/os-release:/etc/os-release-host:ro aquasec/tracee:latest |
| Kubernetes (Helm) | helm repo add aqua https://aquasecurity.github.io/helm-charts/ && helm install tracee aqua/tracee -n tracee --create-namespace |
| Binary | download from GitHub Releases, run sudo ./tracee |
| التحقق | tracee version |
الاستخدام الأساسي
| الأمر | الوصف |
|---|
sudo tracee | ابدأ التتبع مع توقيعات الكشف الافتراضية |
sudo tracee --output json | إصدار الأحداث كـ JSON |
sudo tracee --scope comm=nginx | تتبع عملية معينة فقط |
sudo tracee --events execve,open | تتبع أحداث معينة |
tracee --help | قائمة الخيارات الكاملة |
اختيار الحدث (--events)
| المحدد | المطابقة |
|---|
--events execve | تنفيذات العملية |
--events open,openat | ملف يفتح |
--events net_packet_dns | حركة المرور DNS |
--events security_file_open | LSM file-open hook |
--events 'fs' | مجموعة حدث كاملة (نظام الملفات) |
--events 'signatures' | كشف التوقيع فقط |
--events execve.args.pathname=/usr/bin/* | تصفية حسب قيمة الحجة |
تصفية النطاق (--scope)
| المحدد | المطابقة |
|---|
--scope comm=bash | حسب اسم الأمر |
--scope pid=1234 | حسب PID |
--scope container | أحداث الحاوية فقط |
--scope container=new | حاويات جديدة فقط |
--scope uid=0 | نشاط Root |
--scope pid=new | العمليات المنشأة حديثاً |
--scope not-container | أحداث المضيف فقط |
توقيعات الكشف
Tracee يأتي مع التوقيعات السلوكية (Go و Rego) التي تعلم تقنيات الهجوم المعروفة.
| مثال الكشف | التقنية |
|---|
| Anti-debugging | تجنب عبر ptrace |
| Dynamic code loading | تحميل حمولة مقيمة في الذاكرة |
| LD_PRELOAD | حقن المكتبة |
| Privilege escalation | تصعيد امتيازات setuid/capability |
| Container escape | وصول Namespace/host |
| Kernel module loading | تثبيت Rootkit |
| الأمر | الوصف |
|---|
sudo tracee --events signatures | تشغيل توقيعات الكشف فقط |
--rego- flags | تحميل توقيعات Rego المخصصة |
--signatures-dir DIR | تحميل التوقيعات من دليل |
الإخراج والالتقاط
| الخيار | الوصف |
|---|
--output json | أحداث JSON (توجيه إلى SIEM) |
--output table | جدول يمكن للإنسان قراءته |
--output gotemplate=FILE.tmpl | إخراج مخصص بقالب |
--capture exec | التقط الملفات الثنائية المنفذة إلى القرص |
--capture mem | التقط مناطق الذاكرة (التحقيق) |
--capture net | التقط حركة المرور على الشبكة لكل حدث |
--output forward:tcp://host:port | إعادة توجيه الأحداث إلى مجمع |
سير العمل المشتركة
# شاهد نشاط الحاوية فقط، JSON لـ SIEM
sudo tracee --scope container --output json | tee tracee-events.json
# اكتشف التهديدات فقط (التوقيعات)، جدول الإخراج
sudo tracee --events signatures --output table
# فحص عملية معينة والتقط الملفات الثنائية المنفذة
sudo tracee --scope comm=suspicious --capture exec
# الخروج DNS الذي تقوم به الحاويات الجديدة (صيد التسرب)
sudo tracee --scope container=new --events net_packet_dns
Tracee مقابل Falco مقابل Tetragon
| الجانب | Tracee | Falco | Tetragon |
|---|
| محرك | eBPF (Aqua) | eBPF (CNCF) | eBPF (Cilium) |
| التركيز | التحقيق والكشف والالتقاط | التنبيه/الكشف | ملاحظة + إنفاذ في النواة |
| الإنفاذ | التركيز على الكشف | الكشف | نعم (قتل/تجاوز) |
| التقاط الحوادث | قوي (exec/mem/net) | محدود | تركيز الحدث |
| الأفضل لـ | التحقيق من التهديدات والالتقاط | مكتبة قواعد ناضجة | الوقاية + الرؤية العميقة |
الموارد