🔓 Açık Kaynak, Açık Güvenlik

Falco ile Container Güvenliğine Gerçek Zamanlı Bakış 🐳🛡️

Cloud-native uygulamalar, Kubernetes cluster’ları, container workload’ları ve mikroservis mimarileri arttıkça güvenlik yaklaşımı da değişti.

Artık yalnızca image taraması yapmak, firewall kuralı yazmak veya network trafiğini izlemek yeterli değildir.

Çünkü saldırgan, container çalışırken şu davranışları gerçekleştirebilir:

Container içinde shell açabilir.
Hassas dosyalara erişmeye çalışabilir.
Yetkisiz binary çalıştırabilir.
Kubernetes API üzerinde şüpheli işlem yapabilir.
Container escape denemesi gerçekleştirebilir.
Beklenmeyen network bağlantısı başlatabilir.

Bu nedenle container güvenliğinde runtime görünürlük kritik hale gelmiştir.

Bu alandaki en güçlü açık kaynak projelerden biri:

Falco — The Cloud Native Runtime Security Project


🔍 Falco Nedir?

Falco, Linux host, container, Kubernetes ve cloud-native ortamlarda runtime threat detection sağlamak için kullanılan açık kaynaklı bir güvenlik aracıdır.

Falco; sistem çağrılarını, Kubernetes audit event’lerini ve desteklenen diğer event kaynaklarını analiz ederek şüpheli davranışları gerçek zamanlı olarak tespit etmeye yardımcı olur.

Kısa tanım:

Falco = Runtime security detection + syscall monitoring + Kubernetes context + rule-based alerting

Falco’nun temel amacı:

Çalışan sistemde anormal davranışı gör.
Kural ile eşleştir.
Alarm üret.
SIEM / webhook / syslog / monitoring sistemine gönder.

1️⃣ Falco Nasıl Çalışır?

Falco runtime sırasında sistemde gerçekleşen olayları toplar ve bu olayları kurallarla karşılaştırır.

Genel akış:

Linux kernel / syscall event
→ Falco event collector
→ Falco rules engine
→ Alert output
→ SIEM / webhook / syslog / Falcosidekick / monitoring

Container veya Kubernetes ortamında Falco, olayları container metadata ve Kubernetes metadata ile zenginleştirebilir.

Örnek bağlam:

Hangi pod?
Hangi namespace?
Hangi container?
Hangi image?
Hangi process?
Hangi kullanıcı?
Hangi komut?
Hangi dosya?

Bu sayede yalnızca “bir process çalıştı” demek yerine, bu davranışın hangi pod/container içinde gerçekleştiği de görülebilir.


2️⃣ Falco Hangi Davranışları Tespit Edebilir?

Falco’nun en güçlü tarafı, container ve host davranışlarını runtime sırasında izleyebilmesidir.

Container İçinde Shell Açılması

kubectl exec ile shell açıldı mı?
Container içinde bash/sh çalıştı mı?
Beklenmeyen interactive terminal var mı?

Hassas Dosya Erişimi

/etc/shadow okundu mu?
/etc/passwd değiştirildi mi?
SSH key dosyalarına erişildi mi?
Kubernetes secret mount alanlarına erişildi mi?

Beklenmeyen Binary Çalıştırma

Container image içinde beklenmeyen executable çalıştı mı?
Temporary dizinden binary çalıştırıldı mı?
Package manager runtime’da çalıştı mı?

Kubernetes API Üzerinde Şüpheli İşlem

Falco, Kubernetes audit events ile API server üzerinde yapılan işlemleri de izleyebilir.

Örnek olaylar:

Secret list/get işlemleri
ClusterRoleBinding oluşturma
Privileged pod oluşturma
ServiceAccount token kullanımı
Exec/attach işlemleri
Namespace dışı beklenmeyen erişimler

3️⃣ Kubernetes-Native Güvenlik Görünürlüğü

Falco, Kubernetes ortamlarında özellikle değerlidir.

Çünkü container runtime davranışını Kubernetes bağlamıyla birleştirebilir.

Örnek alarm:

Bir container içinde shell açıldı.
Namespace: prod-payment
Pod: payment-api-7c9c9d
Container: app
User: root
Command: /bin/sh

Bu bağlam, SOC veya platform ekibinin hızlı karar vermesini sağlar.

Kubernetes güvenliğinde Falco şu sorulara cevap verebilir:

Prod namespace içinde kim shell açtı?
Hangi pod hassas dosyaya erişti?
Hangi container beklenmeyen process çalıştırdı?
Kubernetes API üzerinde kim secret okudu?
Privileged pod oluşturuldu mu?
HostPath mount kullanıldı mı?

4️⃣ Falco Kuralları

Falco, YAML tabanlı kural mantığıyla çalışır.

Kurallar genellikle şu bölümlerden oluşur:

rule
desc
condition
output
priority
tags

Basit bir örnek:

- rule: Terminal shell in container
  desc: Detect shell execution inside a container
  condition: >
    spawned_process and container
    and proc.name in (bash, sh, zsh)
  output: >
    Shell spawned in container
    (user=%user.name command=%proc.cmdline container=%container.name image=%container.image.repository)
  priority: WARNING
  tags: [container, shell, runtime]

Bu kuralın mantığı:

Bir process spawn edildi mi?
Bu process container içinde mi?
Process adı bash/sh/zsh mi?
Evetse alarm üret.

5️⃣ Custom Rule Set Desteği

Falco’nun en önemli avantajlarından biri custom rule yazılabilmesidir.

Kurumunuza özel davranışları tespit etmek için kendi kurallarınızı oluşturabilirsiniz.

Örnek özel senaryolar:

Prod namespace içinde shell açılması
Container içinde package manager çalışması
Nginx container içinde Python çalışması
Beklenmeyen outbound connection
Kritik dosya erişimi
Gece saatlerinde kubectl exec
Privileged pod oluşturma
HostPath mount kullanımı

İyi bir Falco kuralı şu dengeyi kurmalıdır:

Yeterince spesifik olsun.
False-positive üretmesin.
Operasyonel bağlam içersin.
SIEM tarafında aksiyona dönüşebilsin.

6️⃣ Alert ve Entegrasyon Kanalları

Falco alarm üretir ve bu alarmları farklı kanallara gönderebilir.

Yaygın entegrasyonlar:

stdout
file output
syslog
HTTP output
webhook
Falcosidekick
Prometheus metrics
SIEM
Elastic / OpenSearch
Splunk
Slack / Teams
PagerDuty
Kafka / NATS

Falcosidekick, Falco’dan gelen event’leri farklı sistemlere iletmek için sık kullanılan bir forwarder bileşenidir.

Örnek akış:

Falco alert
→ Falcosidekick
→ Slack / Teams / SIEM / Webhook / Prometheus / Kafka

7️⃣ Falco ve SIEM Entegrasyonu

Falco alarmları SIEM’e gönderildiğinde runtime güvenlik olayları merkezi korelasyon sürecine dahil edilir.

Örnek akış:

Falco: Container içinde shell açıldı.
→ SIEM: Aynı pod son 10 dakikada dış IP’ye bağlandı mı?
→ Kubernetes audit: Bu exec işlemini hangi kullanıcı yaptı?
→ EDR / NDR: Aynı node üzerinde başka anomali var mı?
→ Case açılır.

Bu yapı Falco’yu yalnızca standalone alarm aracı olmaktan çıkarır ve SOC operasyonuna entegre eder.


8️⃣ Falco Ne Değildir?

Falco güçlü bir runtime detection aracıdır; ancak her güvenlik problemini çözmez.

Falco Bir Image Scanner Değildir

Container image içindeki CVE’leri taramak için Trivy, Grype, Clair veya benzeri image scanning araçları kullanılır.

Falco Bir Admission Controller Değildir

Kubernetes objelerini cluster’a girmeden önce engellemek için Kyverno, OPA Gatekeeper veya Kubernetes admission policy çözümleri kullanılır.

Falco Bir EDR Değildir

Falco runtime davranışı tespit eder ve alarm üretir. Endpoint isolation, process kill veya automatic remediation için ek entegrasyonlar gerekir.

Falco Tek Başına Network Firewall Değildir

Network policy, service mesh, CNI security ve firewall kontrolleri ayrıca tasarlanmalıdır.

Kısa ifade:

Falco görür ve alarm üretir.
Engelleme/aksiyon için ek entegrasyon gerekir.

9️⃣ Falco, DevSecOps Sürecinde Nereye Oturur?

Container güvenliği yaşam döngüsü birkaç katmandan oluşur:

Kod güvenliği
Image güvenliği
Registry güvenliği
Admission control
Runtime security
Network security
Loglama ve monitoring
Incident response

Falco bu zincirde özellikle runtime security katmanında konumlanır.

Örnek DevSecOps Güvenlik Zinciri

CI/CD:
  SAST + SCA + Secret scan

Image build:
  Image scanning + SBOM + signing

Registry:
  Trusted image policy

Kubernetes admission:
  OPA / Kyverno / Gatekeeper

Runtime:
  Falco

SOC:
  SIEM + alert correlation + incident response

🔟 Falco Kullanım Senaryoları

Container İçinde Shell Açılması

Production container içinde shell açılması her zaman kötü niyetli olmayabilir; ancak mutlaka görünür olmalıdır.

Örnek:

kubectl exec -it pod-name -- /bin/sh

Falco bu davranışı tespit ederek SOC veya platform ekibine alarm üretebilir.


Hassas Dosya Okuma

Container veya host üzerinde kritik dosyalara erişim izlenebilir.

Örnek:

/etc/shadow
/etc/passwd
/root/.ssh/id_rsa
/var/run/docker.sock
/run/secrets/*

Bu tür dosyalara beklenmeyen erişim saldırı veya yanlış yapılandırma göstergesi olabilir.


Package Manager Çalıştırma

Immutable container prensibine göre çalışan production container içinde paket yöneticisi çalışması şüpheli olabilir.

Örnek:

apt
yum
apk
dnf
pip
npm

Bu davranış, container içinde runtime değişiklik yapıldığını gösterebilir.


Privileged Container ve HostPath Kullanımı

Kubernetes ortamlarında privileged container ve hostPath mount yanlış kullanıldığında ciddi risk oluşturur.

Falco bu davranışları tespit ederek alarm üretebilir.


Crypto Miner Davranışları

Container içinde beklenmeyen process, yüksek CPU tüketimi, şüpheli binary veya dış mining pool bağlantıları tespit edilebilir.


1️⃣1️⃣ Kurulum Yaklaşımı

Falco Kubernetes üzerinde genellikle DaemonSet olarak çalıştırılır.

Mantık:

Her node üzerinde Falco pod’u çalışır.
Node üzerindeki runtime event’leri izler.
Container/Kubernetes metadata ile zenginleştirir.
Alarm üretir.

Basit kurulum yöntemleri:

Helm chart
Kubernetes manifest
Linux package
Container-based deployment

Üretim ortamında kurulum yaparken şu başlıklar planlanmalıdır:

Driver tipi
eBPF / kernel module uyumluluğu
Node kernel versiyonları
Container runtime desteği
Kural tuning süreci
Output entegrasyonu
Resource limitleri
Alert routing
SIEM entegrasyonu

1️⃣2️⃣ Falco’da Tuning Neden Önemlidir?

Falco varsayılan kurallarla hızlı görünürlük sağlar; ancak her ortamın davranışı farklıdır.

Aynı davranış bir ortamda normal, başka bir ortamda kritik olabilir.

Örnek:

Dev namespace içinde shell açılması normal olabilir.
Prod namespace içinde shell açılması kritik olabilir.

Bu nedenle tuning yapılmalıdır.

Tuning Önerileri

Namespace bazlı ayrım yapın.
Prod ve dev ortamlarını ayrı değerlendirin.
Service account davranışlarını baseline alın.
False-positive üreten kuralları kontrollü düzenleyin.
Kritik rule’lar için SIEM alarm seviyesi belirleyin.
Falco rule değişikliklerini Git ile version control altında tutun.

1️⃣3️⃣ Güvenlik Operasyonunda Falco Alarm Akışı

İyi bir Falco alarmı yalnızca “shell açıldı” dememelidir.

İdeal alarm bağlamı:

Namespace
Pod
Container
Image
User
Command
Process
Parent process
Node
Kubernetes user
Source IP
Severity
Rule name

SOC tarafında örnek alarm akışı:

Falco alarmı oluştu.
→ SIEM korelasyonu çalıştı.
→ Kubernetes audit logları kontrol edildi.
→ Pod metadata incelendi.
→ EDR/NDR verisiyle ilişkilendirildi.
→ Case açıldı.
→ Platform ekibine görev atandı.

1️⃣4️⃣ Sık Yapılan Hatalar

1️⃣ Falco’yu Prevention Ürünü Sanmak

Falco varsayılan olarak tespit ve alarm üretir. Engelleme veya otomatik müdahale için ek entegrasyon gerekir.

2️⃣ Varsayılan Kuralları Tuning Yapmadan Kullanmak

Her ortamın normal davranışı farklıdır. Tuning yapılmazsa alert fatigue oluşabilir.

3️⃣ Falco Alarmını SIEM’e Göndermemek

Falco tek başına alarm üretir; ancak merkezi SOC korelasyonu için SIEM entegrasyonu önemlidir.

4️⃣ Kubernetes Audit Loglarını Dahil Etmemek

Sadece syscall görünürlüğü yetmeyebilir. Kubernetes API aktiviteleri için audit event entegrasyonu değerlidir.

5️⃣ Dev ve Prod Ortamlarını Aynı Değerlendirmek

Dev ortamında normal olan davranış, prod ortamında kritik olabilir.

6️⃣ Falco’yu Image Scanning Yerine Koymak

Falco runtime güvenliği sağlar; image CVE taraması için ayrı araçlar gerekir.

7️⃣ Alarm Seviyelerini Yanlış Ayarlamak

Her Falco alarmı kritik değildir. Severity ve routing doğru belirlenmelidir.


1️⃣5️⃣ 48s Mini-PoC Planı

  1. Test Kubernetes cluster hazırlayın.
  2. Falco’yu Helm ile DaemonSet olarak kurun.
  3. Falco pod’larının tüm node’larda çalıştığını kontrol edin.
  4. Test namespace oluşturun.
  5. Basit bir nginx pod çalıştırın.
  6. Pod içine kubectl exec ile shell açın.
  7. Falco loglarında shell alarmını kontrol edin.
  8. /etc/shadow erişim denemesiyle hassas dosya alarmını test edin.
  9. Falcosidekick kurup webhook veya Slack/Teams çıktısı deneyin.
  10. Alarmı SIEM’e JSON olarak göndermeyi test edin.
  11. Prod namespace için özel kural yazın.
  12. False-positive tuning yapıp kuralı Git üzerinde saklayın.

1️⃣6️⃣ Falco Nerede Konumlandırılmalı?

Falco, container güvenlik mimarisinde şu noktada konumlanmalıdır:

Image scanner:
  Build aşamasında CVE ve secret tarar.

Admission controller:
  Kubernetes objesini cluster’a girmeden kontrol eder.

Falco:
  Çalışan workload üzerinde runtime davranışı izler.

SIEM:
  Alarmı merkezi korelasyona dahil eder.

SOAR / Response:
  Gerekirse aksiyon üretir.

Kısa ifade:

Build-time güvenlik başka,
Deploy-time politika başka,
Runtime detection başka katmandır.

Falco, bu mimaride runtime detection katmanıdır.


🚀 Neden Falco?

Gerçek Zamanlı Görünürlük

Container ve Kubernetes ortamında runtime davranışları anlık olarak izlemeye yardımcı olur.

Açık Kaynak Ekosistem

CNCF ekosisteminde olgunlaşmış, geniş topluluk desteğine sahip bir projedir.

Kubernetes Bağlamı

Pod, namespace, container, image ve node gibi metadata ile alarm bağlamını güçlendirir.

Custom Rule Desteği

Kurumunuza özel detection logic yazabilirsiniz.

SIEM ve SOC Entegrasyonu

Falco alarmları merkezi güvenlik operasyonuna dahil edilebilir.

DevSecOps Uyumlu

CI/CD, admission control, runtime security ve incident response zincirinin runtime detection katmanını tamamlar.


Sonuç

Falco, Docker, Kubernetes ve Linux tabanlı cloud-native ortamlarda runtime güvenlik görünürlüğü sağlamak için güçlü bir açık kaynak çözümdür.

Falco ile:

Container içinde shell açılmasını görebilirsiniz.
Hassas dosya erişimlerini tespit edebilirsiniz.
Beklenmeyen process çalıştırmalarını yakalayabilirsiniz.
Kubernetes API aktivitelerini izleyebilirsiniz.
Alarmları SIEM ve SOC süreçlerine aktarabilirsiniz.

Ancak Falco doğru konumlandırılmalıdır:

Falco tespit eder.
Alarm üretir.
Bağlam sağlar.
Aksiyon için entegrasyon gerekir.

Container güvenliğinde en sağlıklı yaklaşım katmanlı mimaridir:

Image scanning
Admission control
Runtime detection
Network security
SIEM correlation
Incident response

Falco bu mimarinin runtime detection tarafında güçlü ve esnek bir açık kaynak bileşendir.

Kısa özet:

Kubernetes’te sadece network trafiğini görmek yetmez.
Container içinde ne olduğunu da görmek gerekir.
Falco bu görünürlüğü runtime seviyesinde sağlar.


Cem Kemal Erbaş sitesinden daha fazla şey keşfedin

Subscribe to get the latest posts sent to your email.

About Cem Kemal Erbaş

Check Also

💳 POS’a Kartı Dokunduruyoruz… Peki O Birkaç Saniyenin Arkasında Neler Oluyor?

Bir mağazada 100 TL’lik alışveriş yaptığımızı düşünelim. Kullanıcı açısından süreç son derece basittir: Kartı dokundur …

Bir yanıt yazın