Geleneksel uç nokta güvenlik araçlarının çoğu, kullanıcı alanında (user space) çalışan ajanlarla süreç ve dosya aktivitesini izler. Bu yaklaşım, çekirdek seviyesinde gerçekleşen olayları gecikmeli veya eksik görebilir. eBPF (extended Berkeley Packet Filter), doğrulanmış küçük programların Linux çekirdeği içinde, kernel modülü yazmadan ve sistemi çökertme riskini çekirdeğin kendi doğrulayıcısıyla (verifier) sınırlayarak çalıştırılmasına izin veriyor. Bu yetenek üzerine kurulu iki proje, çalışma zamanı (runtime) güvenliğinde farklı roller üstleniyor: Falco ve Tetragon.
eBPF neden önemli?
eBPF programları, syscall çağrıları, ağ paketleri, dosya açma/kapama gibi çekirdek olaylarına "hook" olarak bağlanır ve bu olaylar gerçekleştiği anda çalışır. Kernel modüllerinin aksine, eBPF programları yüklenmeden önce çekirdeğin doğrulayıcısından geçer; bu doğrulayıcı sonsuz döngüleri, sınır dışı bellek erişimini ve çekirdeği çökertebilecek diğer davranışları reddeder. Bu, gözlemlenebilirlik ve güvenlik araçlarının üretim ortamında daha düşük risk ve düşük gecikmeyle çalışmasını sağlıyor.
Falco: davranışsal anomali tespiti
Falco, Sysdig tarafından geliştirilip topluluğa açılan ve Şubat 2024'te CNCF (Cloud Native Computing Foundation) tarafından "Graduated" (mezun) statüsüne yükseltilen bir çalışma zamanı güvenlik aracıdır. Falco, eBPF ile topladığı çekirdek olaylarını YAML tabanlı kurallarla karşılaştırarak beklenmedik davranışlar için uyarı üretir. Örnek kural mantığı şu şekildedir:
CODE TERMINAL
- rule: Konteyner İçinde Kabuk Açıldı
desc: Bir konteyner içinde etkileşimli kabuk (shell) başlatıldığını tespit eder
condition: >
spawned_process and container and
proc.name in (shell_binaries) and
proc.tty != 0
output: >
Konteynerde etkileşimli kabuk açıldı
(user=%user.name konteyner=%container.name komut=%proc.cmdline)
priority: WARNINGFalco varsayılan olarak yalnızca tespit ve uyarı üretir, engelleme yapmaz. Uyarılar Falcosidekit gibi eklentilerle Slack, SIEM veya webhook hedeflerine yönlendirilebilir.
Tetragon: kernel içi tespit ve müdahale
Tetragon, Cilium ekosisteminden (Isovalent/Cilium projesi) türeyen bir başka eBPF tabanlı araçtır. Falco'dan temel farkı, yalnızca gözlemlemekle kalmayıp eBPF programları aracılığıyla kernel içinde doğrudan müdahale edebilmesidir: şüpheli bir süreci sonlandırabilir veya bir ağ bağlantısını daha kullanıcı alanına ulaşmadan çekirdek seviyesinde düşürebilir. Bu, tespit ile engelleme arasındaki gecikmeyi ortadan kaldırır. Tetragon, TracingPolicy adlı Kubernetes özel kaynaklarıyla (CRD) yapılandırılır:
CODE TERMINAL
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
name: hassas-dosya-erisimi
spec:
kprobes:
- call: "security_file_open"
syscall: false
args:
- index: 0
type: "file"
selectors:
- matchArgs:
- index: 0
operator: "Prefix"
values:
- "/etc/shadow"
matchActions:
- action: SigkillBu örnek, /etc/shadow dosyasına erişim girişiminde bulunan süreci çekirdek seviyesinde anında sonlandırır (Sigkill).
Ne zaman hangisi?
- Yalnızca görünürlük ve alarm yeterliyse: Falco, olgun kural kütüphanesi ve geniş topluluk desteğiyle SIEM'e beslenecek uyarılar üretmek için pratik bir başlangıç noktasıdır.
- Aktif engelleme gerekiyorsa: Tetragon'un kernel içi müdahale yeteneği, bilinen kötü amaçlı davranışları (kripto madenciliği süreçleri, hassas dosya erişimi, ters kabuk bağlantıları gibi) tespit anında durdurmak isteyen ortamlarda tercih edilir.
- Kubernetes/Cilium ağ politikalarıyla entegrasyon önemliyse: Zaten Cilium kullanan kümelerde Tetragon, aynı eBPF alt yapısını paylaştığı için operasyonel yükü azaltır.
Ciddi üretim ortamlarında iki aracın birlikte konuşlandırılması yaygınlaşıyor: Falco geniş kapsamlı davranışsal anomalileri işaretlerken, Tetragon önceden tanımlanmış yüksek güvenilirlikli kötü amaçlı davranışları anında engelliyor.
Performans üzerine not
eBPF tabanlı izlemenin CPU yükü, izlenen olay hacmine ve yazılan kural/politika sayısına göre değişir; bağımsız kaynaklar tipik üretim yüklerinde tek haneli yüzdelerde ek yük bildiriyor. Kesin rakam ortama göre değiştiğinden, üretime almadan önce kendi iş yükünüzde ölçüm yapmanız önerilir.
Sonuç
eBPF, çalışma zamanı güvenliğini kernel modülü riskini almadan çekirdek seviyesine taşıyor. Falco görünürlük ve esnek kural yazımında, Tetragon ise kernel içi anında müdahalede öne çıkıyor. İkisinin doğru senaryoda birlikte kullanılması, tespit ile yanıt arasındaki süreyi büyük ölçüde kısaltabilir.
Kaynaklar
TR Siber Ekibi