المستوى: محترف — هذا المقال يفترض إنك بتدير cluster Kubernetes في إنتاج، فاهم eBPF بشكل عام، وبتشتغل مع Helm وPrometheus.
Falco للمحترف: اكتشف الاختراقات على Kubernetes لحظة حدوثها
لو فيه pod اتخترق الساعة 3 الصبح وبدأ يفتح shell ويقرأ /etc/shadow، الـ APM بتاعك مش هيشوف حاجة. الـ logs الجاهزة بتمسك الأخطاء، مش السلوكيات الخبيثة. Falco بيشوف ده على مستوى الـ kernel، بيرسل تنبيه في 1.2 ثانية، وبصفر agent خارجي ولا vendor lock-in.
المشكلة باختصار
Detection في Kubernetes غالباً بيعتمد على audit logs أو scanner دوري. الاتنين بيوصلوك بعد ما الضرر يحصل. الـ MTTD (Mean Time To Detect) المتوسط لاختراق containers في تقرير Mandiant M-Trends 2024 وصل 10 أيام. Falco بيقفّل الفجوة دي بـ runtime detection على syscall level باستخدام eBPF.
إيه Falco — مثال إنذار اللص للمبتدئ
تخيّل بيت فيه أبواب ونوافذ. الكاميرا الأمنية بتقول: "اتفتح الباب الخلفي الساعة 3 الصبح ومحدش نايم في البيت". مش بتقول "حد دخل بقصد سرقة"، بس بتقول حصلت حركة شاذة في وقت شاذ. Falco هو نفس الفكرة بالظبط، بس على مستوى الـ Linux kernel بدل الباب.
Falco بيقعد بين التطبيق والـ kernel، يراقب كل system call (فتح ملف، تشغيل عملية، فتح اتصال شبكة)، وبيقارنه مع قواعد مكتوبة. أول ما syscall يطابق قاعدة زي "shell بيفتح جوّا container الـ database"، Falco بيطلق تنبيه فوراً.
التعريف العلمي
Falco مشروع CNCF graduated (فبراير 2024، أول runtime security project يوصل graduation). محرّك القواعد بياخد stream من syscalls عبر driver واحد من اتنين: Kernel Module التقليدي أو Modern eBPF (المفضل، وبيشتغل بدون تعديل kernel). كل syscall بيتحوّل لـ event بصيغة Falco، وبيتقارن مع قواعد YAML بلغة filtering خاصة بـ Falco. القواعد بتدعم condition expressions (operators زي contains, in, startswith) ومتغيرات مشتركة (lists, macros).
ليه مش Kubernetes audit logs لوحدها كفاية؟
Kubernetes audit logs بتسجّل الطلبات على API server. لو المهاجم وصل لشل داخل pod ومن غير ما يستخدم API، الـ audit log مش هيشوف حاجة. Falco بيشوف لأنه على kernel level، فأي عملية بتنفّذ على أي node بيتلقّط حتى لو المهاجم تجاهل الـ Kubernetes API بالكامل.
الـ trade-off هنا واضح: Falco بيشوف كل العمليات على الـ kernel، فالـ noise ممكن يبقى عالي لو القواعد مش متضبطة. Audit logs أهدأ بس بتفوّت 70% من السلوكيات بعد الاختراق (post-compromise behavior) حسب CNCF Cloud Native Threat Report.
التركيب على Kubernetes في 6 خطوات
الافتراض: cluster GKE 1.30 بـ 12 node، Falco 0.38.0، Helm 3.14، kernel ≥ 5.8 على كل node.
- تأكّد من إصدار الـ kernel. Modern eBPF محتاج kernel 5.8 على الأقل: