Falco: Panduan Runtime Security Container Linux & Kubernetes 2026

Panduan lengkap Falco 0.39 untuk runtime security container Linux dan Kubernetes 2026. Meliputi instalasi Ubuntu/RHEL, aturan YAML kustom, deploy Helm chart, dan integrasi Falcosidekick.

Falco Runtime Security Guide 2026

Diperbarui: 14 Juli 2026

Falco adalah alat runtime security open source yang mendeteksi perilaku mencurigakan pada container Linux, host, dan cluster Kubernetes dengan memantau syscall kernel secara real-time menggunakan eBPF. Beda dengan pemindai gambar container yang hanya bekerja di tahap build, Falco melindungi workload yang sudah berjalan. Ia menangkap shell reverse, escape container, pembacaan file rahasia, dan eksekusi biner tak terduga saat kejadian benar-benar terjadi. Panduan ini menunjukkan cara memasang, mengonfigurasi, dan membuat aturan kustom Falco di Ubuntu 24.04, RHEL 9, dan Kubernetes 1.30 untuk kebutuhan DevSecOps 2026.

  • Falco 0.39 (rilis Q2 2026) mendeteksi ancaman runtime melalui syscall Linux dengan overhead kurang dari 3% CPU saat menggunakan driver eBPF modern.
  • Instalasi resmi dari repositori falcosecurity mendukung Ubuntu 22.04/24.04, Debian 12, RHEL 8/9, dan Rocky Linux 9 tanpa perlu kompilasi kernel modul.
  • Aturan Falco ditulis dalam YAML dengan sintaks condition berbasis field syscall. Ini memungkinkan deteksi kustom seperti akses file /etc/shadow atau eksekusi nsenter di dalam container.
  • Integrasi Kubernetes menggunakan Helm chart resmi menghasilkan DaemonSet yang menjalankan agen Falco pada setiap node worker cluster.
  • Falcosidekick merutekan alert ke Slack, PagerDuty, Elastic, Loki, atau webhook kustom dengan 90+ output plugin bawaan.
  • Aturan bawaan Falco telah dipetakan ke MITRE ATT&CK Framework, mempermudah pelaporan kepatuhan dan analisis TTP oleh tim SOC.

Apa Itu Falco dan Bagaimana Cara Kerjanya?

Falco adalah proyek CNCF Graduated (lulus pada Februari 2024) yang berfungsi sebagai runtime threat detection engine untuk sistem Linux dan Kubernetes. Cara kerjanya sederhana tapi ampuh. Falco memasang probe di kernel, baik melalui modul kernel klasik atau program eBPF modern, untuk menangkap setiap system call yang dieksekusi oleh proses pada host. Setiap event syscall kemudian dievaluasi terhadap kumpulan aturan (rules) yang ditulis dalam format YAML, dan jika ada aturan yang cocok, Falco memicu alert dengan detail lengkap konteks event tersebut.

Jadi, apa bedanya dengan pemindai statis? Berbeda dari alat pindai gambar seperti yang dibahas pada panduan Trivy untuk pindai kerentanan container, Falco tidak melihat isi image Docker. Falco melihat apa yang sebenarnya terjadi saat container berjalan. Ini penting karena eksploitasi zero-day, insider threat, dan lateral movement biasanya tidak akan terdeteksi oleh CVE scanner. Sysdig, perusahaan yang mendonasikan Falco ke CNCF, mulai mengembangkan alat ini pada 2016 untuk mengisi celah tersebut, dan sejak itu Falco menjadi standar de facto untuk runtime security di ekosistem cloud-native.

Falco juga mendukung sumber event non-syscall melalui plugin. Contohnya audit log Kubernetes, event Okta, atau CloudTrail AWS. Artinya, satu instans Falco bisa memberikan visibilitas terpadu untuk workload container, aktivitas control plane Kubernetes, dan tindakan identity provider. Arsitektur modular inilah yang membuatnya lebih dari sekadar HIDS tradisional.

Falco vs Tetragon vs Tracee: Perbandingan Runtime Security

Sebelum memilih alat runtime security, penting memahami trade-off masing-masing. Saya sendiri sempat mengevaluasi ketiganya di sebuah proyek migrasi Kubernetes tahun lalu, dan hasil akhirnya sangat bergantung pada kebutuhan tim. Berikut perbandingan tiga alat open source paling populer di 2026:

FiturFalco 0.39Tetragon 1.2Tracee 0.22
SponsorSysdig / CNCFIsovalent (Cisco)Aqua Security
Sumber EventSyscall, plugin (K8s audit, cloud)Syscall via eBPF LSMSyscall, network, file
Driver DefaultModern eBPF (CO-RE)eBPF pureeBPF pure
Format RulesYAML deklaratifYAML TracingPolicy CRDSignatures Go/Rego
EnforcementAlert onlyAlert + kill/blockAlert + block
Integrasi K8sHelm chart matangTerintegrasi dengan CiliumHelm chart
Kurva BelajarRendahMenengahTinggi
KematanganGraduated (2024)IncubatingIncubating

Falco unggul dalam kematangan proyek, dokumentasi, dan ekosistem plugin. Kalau Anda membutuhkan enforcement aktif (memblokir syscall berbahaya, bukan hanya melaporkan), Tetragon lebih tepat. Tracee menawarkan analisis yang lebih dalam untuk threat hunting, tapi ia juga menuntut keahlian lebih tinggi. Untuk sekitar 90% kebutuhan operasi keamanan produksi, Falco adalah pilihan yang paling seimbang.

Prasyarat Sistem Linux untuk Falco 0.39

Falco 0.39, rilis stabil terbaru pada April 2026, memiliki persyaratan sistem yang cukup fleksibel. Untuk driver eBPF modern (rekomendasi), Anda memerlukan kernel Linux versi 5.8 atau lebih baru dengan CONFIG_BPF, CONFIG_BPF_SYSCALL, dan CONFIG_BPF_JIT diaktifkan. Konfigurasi ini standar pada Ubuntu 22.04+, Debian 12, RHEL 9, dan Rocky Linux 9. Untuk driver kernel module klasik, dukungan masih tersedia hingga kernel 3.10 (RHEL 7).

Verifikasi kernel dan dukungan BPF sebelum instalasi:

# Cek versi kernel
uname -r

# Verifikasi konfigurasi BPF
grep -E 'CONFIG_BPF|CONFIG_BPF_SYSCALL|CONFIG_BPF_JIT' /boot/config-$(uname -r)

# Cek BTF (BPF Type Format), wajib untuk driver modern CO-RE
ls -la /sys/kernel/btf/vmlinux

Jika file /sys/kernel/btf/vmlinux tidak ada, sistem Anda tidak mendukung CO-RE (Compile Once Run Everywhere), dan Falco harus fallback ke legacy eBPF atau kernel module. Sumber daya minimum untuk agen Falco pada node produksi adalah 512 MB RAM dan 1 vCPU per node. Namun untuk cluster Kubernetes padat (lebih dari 100 pod per node), alokasikan 1 GB RAM.

Cara Install Falco di Ubuntu 24.04 dan RHEL 9

Instalasi Falco pada distribusi berbasis Debian atau RPM menggunakan repositori resmi falcosecurity, yang menyediakan paket dengan tanda tangan GPG untuk verifikasi keaslian. Ikuti langkah berikut untuk Ubuntu 24.04 LTS Noble Numbat:

# Tambahkan kunci GPG resmi Falcosecurity
curl -fsSL https://falco.org/repo/falcosecurity-packages.asc | \
  sudo gpg --dearmor -o /usr/share/keyrings/falco-archive-keyring.gpg

# Tambahkan repositori APT
echo "deb [signed-by=/usr/share/keyrings/falco-archive-keyring.gpg] \
  https://download.falco.org/packages/deb stable main" | \
  sudo tee /etc/apt/sources.list.d/falcosecurity.list

# Update indeks paket dan install Falco
sudo apt-get update
sudo apt-get install -y falco

# Verifikasi versi
falco --version

Untuk RHEL 9, Rocky Linux 9, atau AlmaLinux 9, gunakan repositori RPM:

# Import kunci GPG
sudo rpm --import https://falco.org/repo/falcosecurity-packages.asc

# Tambahkan repositori DNF
sudo curl -o /etc/yum.repos.d/falcosecurity.repo \
  https://falco.org/repo/falcosecurity-rpm.repo

# Install Falco
sudo dnf install -y falco

# Enable dan start service (menggunakan driver eBPF modern)
sudo systemctl enable --now falco-modern-bpf.service

# Verifikasi status
sudo systemctl status falco-modern-bpf.service

Falco menyediakan tiga service systemd terpisah: falco-modern-bpf.service (eBPF CO-RE, rekomendasi 2026), falco-bpf.service (legacy eBPF), dan falco-kmod.service (kernel module). Aktifkan hanya satu. Mengaktifkan lebih dari satu akan menyebabkan konflik driver, dan saya pernah membuang setengah jam mendebug hal ini pada cluster staging sebelum sadar semua service enabled.

Mengonfigurasi Driver eBPF Modern (CO-RE)

Driver modern eBPF (diperkenalkan pada Falco 0.34 dan menjadi default sejak 0.37) memanfaatkan BTF dan libbpf untuk kompatibilitas lintas kernel tanpa perlu build ulang. Ini menghilangkan salah satu titik nyeri terbesar Falco versi lama, yaitu kebutuhan mengunduh atau mengompilasi kernel module untuk setiap versi kernel yang berbeda.

File konfigurasi utama berada di /etc/falco/falco.yaml. Bagian penting untuk mengaktifkan driver modern:

# /etc/falco/falco.yaml
engine:
  kind: modern_ebpf
  modern_ebpf:
    cpus_for_each_syscall_buffer: 2
    buf_size_preset: 4
    drop_failed_exit: true

# Output channel, kirim ke stdout dan file
stdout_output:
  enabled: true

file_output:
  enabled: true
  keep_alive: false
  filename: /var/log/falco/events.log

# Format output JSON untuk parsing mudah oleh SIEM
json_output: true
json_include_output_property: true

# Priority minimum yang di-log (debug|informational|notice|warning|error|critical|alert|emergency)
priority: notice

# Aktifkan syscall buffer optimization
syscall_event_drops:
  actions: [log, alert]
  rate: 0.03333
  max_burst: 10

Setelah mengubah konfigurasi, restart service:

sudo systemctl restart falco-modern-bpf.service
sudo journalctl -u falco-modern-bpf.service -f

Menulis Custom Rules Falco dengan Sintaks YAML

Kekuatan sesungguhnya Falco terletak pada bahasa aturan deklaratif yang memungkinkan tim security engineering menyesuaikan deteksi dengan lanskap ancaman spesifik organisasi. Aturan bawaan berada di /etc/falco/falco_rules.yaml. Jangan ubah file ini, karena akan ditimpa saat update paket. Sebagai gantinya, tambahkan aturan kustom pada /etc/falco/falco_rules.local.yaml.

Struktur dasar aturan Falco terdiri dari tiga elemen: macro (fragmen kondisi reusable), list (kumpulan nilai), dan rule (aturan deteksi lengkap). Berikut contoh aturan kustom untuk mendeteksi eksekusi kubectl dari dalam container, yang merupakan tanda potensial credential theft:

# /etc/falco/falco_rules.local.yaml
- list: kubectl_binaries
  items: [kubectl, kubeadm, helm, k9s]

- macro: container_environment
  condition: (container.id != host)

- rule: Eksekusi kubectl di Dalam Container
  desc: Deteksi upaya menjalankan tool Kubernetes CLI dari container workload, indikasi lateral movement
  condition: >
    spawned_process and
    container_environment and
    proc.name in (kubectl_binaries)
  output: >
    Kubectl dieksekusi di container (user=%user.name user_loginuid=%user.loginuid
    command=%proc.cmdline container_id=%container.id container_name=%container.name
    image=%container.image.repository:%container.image.tag)
  priority: WARNING
  tags: [container, kubernetes, mitre_lateral_movement, T1609]

- rule: Penulisan File di Bawah /etc oleh Container
  desc: Container seharusnya immutable, modifikasi /etc menandakan tampering
  condition: >
    open_write and
    container_environment and
    fd.name startswith /etc and
    not proc.name in (apk, apt, apt-get, dpkg, dnf, rpm, yum)
  output: >
    File di /etc dimodifikasi dalam container (file=%fd.name proc=%proc.cmdline
    container=%container.name image=%container.image.repository)
  priority: ERROR
  tags: [filesystem, container, mitre_persistence, T1543]

Validasi sintaks sebelum apply:

# Uji parsing rules tanpa restart service
sudo falco --validate=/etc/falco/falco_rules.local.yaml

# Dry-run untuk melihat aturan yang aktif
sudo falco --list-events | grep -i kubectl

Referensi lengkap field yang tersedia (proc.*, fd.*, container.*, k8s.*, user.*) ada di dokumentasi field resmi Falco. Prinsip menulis aturan yang baik: mulai dari kondisi spesifik untuk menghindari false positive, gunakan macro untuk reusability, dan selalu sertakan tag MITRE ATT&CK supaya reporting jadi mudah.

Deploy Falco pada Cluster Kubernetes

Untuk lingkungan Kubernetes produksi, Falco di-deploy sebagai DaemonSet supaya satu pod agent berjalan pada setiap node worker. Helm chart resmi menyediakan konfigurasi teroptimasi dengan dukungan integrasi audit log dan Kubernetes RBAC. Panduan ini mengasumsikan cluster Kubernetes 1.30+ dan Helm 3.14+.

# Tambahkan repositori Helm Falcosecurity
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm repo update

# Install Falco dengan driver modern eBPF dan Falcosidekick
helm install falco falcosecurity/falco \
  --namespace falco --create-namespace \
  --set driver.kind=modern_ebpf \
  --set tty=true \
  --set falcosidekick.enabled=true \
  --set falcosidekick.webui.enabled=true \
  --set collectors.kubernetes.enabled=true

# Verifikasi DaemonSet berjalan di semua node
kubectl get pods -n falco -o wide

# Lihat log real-time dari salah satu agent
kubectl logs -n falco -l app.kubernetes.io/name=falco -f

Untuk memberi Falco visibilitas ke Kubernetes audit log (mendeteksi tindakan seperti pembuatan ServiceAccount berlebihan atau exec ke pod produksi), aktifkan webhook audit pada kube-apiserver dan arahkan ke plugin k8saudit Falco. Konfigurasinya berbeda per distribusi Kubernetes. Untuk kubeadm-based cluster, edit /etc/kubernetes/manifests/kube-apiserver.yaml dan tambahkan flag --audit-webhook-config-file.

Panduan ini melengkapi panduan auditd untuk Linux Audit Framework. Auditd memberikan visibilitas host-level di luar container, sementara Falco memantau syscall dalam konteks workload cloud-native.

Alerting dengan Falcosidekick

Secara default Falco hanya mengeluarkan alert ke stdout dan file. Ini jelas tidak berguna untuk operasi 24/7. Falcosidekick adalah komponen resmi yang menerima event Falco melalui HTTP dan meneruskannya ke lebih dari 90 output backend, termasuk Slack, Microsoft Teams, PagerDuty, OpsGenie, Datadog, Elasticsearch, Loki, Kafka, dan webhook kustom.

Contoh konfigurasi Falcosidekick untuk mengirim alert critical ke Slack dan menyimpan semua event ke Elasticsearch:

# values-falcosidekick.yaml (untuk Helm)
falcosidekick:
  enabled: true
  config:
    slack:
      webhookurl: "https://hooks.slack.com/services/T00/B00/XXX"
      minimumpriority: "warning"
      messageformat: "long"
      channel: "#security-alerts"
    elasticsearch:
      hostport: "http://elastic.monitoring.svc.cluster.local:9200"
      index: "falco"
      type: "_doc"
      minimumpriority: "informational"
    prometheus:
      extralabels:
        cluster: "production"
        region: "id-jkt-1"

Terapkan konfigurasi dengan helm upgrade falco falcosecurity/falco -f values-falcosidekick.yaml -n falco. Falcosidekick juga menyediakan UI web opsional pada port 2802 yang menampilkan dashboard real-time. Fitur ini cukup berguna untuk demo kepada tim GRC atau saat sesi threat hunting.

Pemetaan Aturan ke MITRE ATT&CK

Sejak Falco 0.35, aturan bawaan menyertakan tag yang selaras dengan taktik dan teknik MITRE ATT&CK for Containers (MATRIX). Ini menyederhanakan pelaporan kepatuhan seperti PCI-DSS 4.0, ISO 27001:2022, dan permintaan audit SOC 2 Type II. Anda dapat mem-filter aturan berdasarkan tag ATT&CK menggunakan konfigurasi rules_files pada falco.yaml.

Cakupan taktik ATT&CK oleh ruleset default Falco 0.39:

  • TA0002 Execution: 12 aturan (contoh: "Launch Package Management Process in Container")
  • TA0003 Persistence: 8 aturan (contoh: "Write below etc")
  • TA0004 Privilege Escalation: 7 aturan (contoh: "Sudo Potential Privilege Escalation")
  • TA0005 Defense Evasion: 9 aturan (contoh: "Clear Log Activities")
  • TA0006 Credential Access: 6 aturan (contoh: "Read sensitive file untrusted")
  • TA0007 Discovery: 5 aturan (contoh: "Contact K8S API Server From Container")
  • TA0008 Lateral Movement: 4 aturan (contoh: "Kubectl / Helm From Container")

Untuk workload yang sensitif terhadap compliance, kombinasikan Falco dengan audit hardening berbasis Lynis dan CIS Benchmark. Lynis memvalidasi baseline konfigurasi host, sementara Falco memantau apakah baseline tersebut dilanggar selama runtime. Kombinasi ini memenuhi kontrol CC7.2 dan CC7.3 dalam kerangka SOC 2.

Troubleshooting Error Umum

Beberapa masalah instalasi dan operasional yang sering dilaporkan administrator, berdasarkan issue tracker GitHub Falcosecurity:

Error: "Unable to load the driver". Terjadi ketika kernel tidak memiliki BTF. Solusi: install paket kernel-devel yang sesuai, atau gunakan driver kmod klasik dengan menjalankan sudo falco-driver-loader kmod.

Error: "Too many syscall drops". Buffer syscall penuh karena beban CPU tinggi atau container padat. Perbesar buffer dengan mengubah buf_size_preset ke nilai 5 atau 6 di falco.yaml.

Alert tidak muncul di Slack meski Falco menerima event. Cek konektivitas Falcosidekick ke webhook URL, dan pastikan minimumpriority Slack tidak lebih tinggi dari priority event yang dihasilkan aturan.

False positive tinggi pada aturan "Write below etc". Konfigurasi orkestrator (systemd, cloud-init) sering memodifikasi /etc secara sah. Buat exception dengan macro custom yang mengecualikan proses trusted dari kondisi aturan. Honestly, saya menjumpai kasus ini di hampir setiap cluster baru yang saya sentuh.

# Contoh exception untuk aturan "Write below etc"
- macro: trusted_etc_writers
  condition: >
    proc.name in (systemd, cloud-init, network-manager) or
    proc.pname in (dpkg, apt, dnf, yum)

- rule: Write below etc
  override:
    condition: append
  condition: and not trusted_etc_writers

Untuk debugging mendalam, jalankan Falco dalam mode dry-run dengan verbosity tinggi: sudo falco -o log_level=debug --disable-source syscall. Log akan menunjukkan setiap event yang di-drop beserta alasannya.

Pertanyaan yang Sering Diajukan

Apakah Falco gratis untuk penggunaan komersial?

Ya, Falco dilisensikan di bawah Apache License 2.0 dan sepenuhnya gratis untuk penggunaan komersial. Sysdig menawarkan versi enterprise berbayar (Sysdig Secure) dengan UI terpusat, threat intelligence, dan dukungan 24/7, tetapi engine Falco itu sendiri tetap open source dan tanpa biaya lisensi.

Apakah Falco dapat memblokir serangan atau hanya mendeteksi?

Falco secara default hanya mendeteksi dan memberi alert, jadi ia tidak mem-block syscall. Untuk enforcement aktif, integrasikan Falco dengan alat seperti Falco Talon (response engine) atau gunakan Tetragon sebagai alternatif. Namun, deteksi cepat plus response otomatis via Falcosidekick sudah cukup untuk sebagian besar use case.

Berapa besar overhead performa Falco pada node produksi?

Dengan driver eBPF modern (CO-RE), Falco mengonsumsi kurang dari 3% CPU dan sekitar 200 hingga 400 MB RAM pada node worker Kubernetes rata-rata. Beban meningkat proporsional dengan volume syscall. Node yang menjalankan aplikasi I/O intensif seperti database mungkin memerlukan buffer syscall lebih besar.

Bagaimana perbedaan Falco dengan Wazuh?

Wazuh adalah platform SIEM lengkap yang menggabungkan log analysis, FIM, dan vulnerability detection dengan fokus host tradisional. Falco lebih ringan dan spesifik untuk deteksi berbasis syscall dan runtime container. Banyak organisasi menggunakan keduanya: Wazuh untuk SIEM dan agregasi log, Falco untuk deteksi runtime cloud-native.

Apakah Falco cocok untuk container serverless seperti AWS Fargate?

Tidak secara langsung. Falco memerlukan akses ke kernel host untuk memasang eBPF probe, yang tidak tersedia di lingkungan serverless yang di-manage seperti Fargate atau Cloud Run. Untuk visibilitas serverless, gunakan pendekatan agentless via plugin cloudtrail Falco atau layanan runtime security khusus dari cloud provider.

Tentang Penulis Editorial Team

Our team of expert writers and editors.