Cilium Tetragon vs Falco per la Runtime Security in Ambienti Bancari
Cilium Tetragon vs Falco for Runtime Security in Banking Environments

Sommario
Nei cluster Kubernetes che elaborano transazioni finanziarie e dati sensibili, la sicurezza a runtime non può limitarsi al semplice rilevamento passivo post-incidente. La sfida risiede nella capacità di bloccare gli attacchi a livello kernel in tempo reale senza introdurre degrado prestazionale sui syscall critici né incorrere nel rischio di drop di eventi durante i picchi di carico. Questo articolo analizza in profondità le differenze architetturali tra Falco e Cilium Tetragon, valutando l'efficacia del monitoraggio eBPF, i meccanismi di in-kernel filtering e l'enforcement attivo tramite SIGKILL immediato nel quadro dei requisiti di resilienza operativa digitale (DORA) e degli standard PCI-DSS.
Il dilemma della sicurezza a runtime tra latenza dei syscall e compliance bancaria
La protezione dei carichi di lavoro cloud-native in istituti finanziari e ambienti ad alta regolamentazione ha storicamente affrontato un compromesso penalizzante: scegliere tra la visibilità approfondita a livello di sistema operativo e la stabilità prestazionale dei microservizi di pagamento.
Gli approcci tradizionali basati sull'ispezione dei registri di audit di Linux (auditd) o su moduli kernel proprietari hanno mostrato vulnerabilità strutturali:
- Overhead di context switch: L'intercettazione sincrona di ogni system call genera un costo computazionale non trascurabile, aumentando la latenza p99 dei servizi core-banking dal 5% al 15%.
- Event Drop sotto stress: Quando il volume delle transazioni cresce rapidamente (ad esempio durante campagne di liquidazione o picchi di trading), i buffer tra kernel space e user space si saturano, causando la perdita silenziosa degli eventi di sicurezza esattamente nel momento di massima esposizione.
- Rilevamento post-compromissione: I motori di sicurezza convenzionali notificano l'anomalia in user space dopo che il payload malevolo ha già eseguito la chiamata di sistema (es. lettura di un certificato TLS in memoria, privilege escalation o scrittura su
/etc/shadow), lasciando una finestra temporale in cui l'attaccante può cancellare i log o aprire una reverse shell.
Con l'entrata in vigore del regolamento europeo DORA (Digital Operational Resilience Act), le istituzioni finanziarie sono obbligate a dimostrare capacità di rilevamento proattivo, isolamento tempestivo e continuità operativa senza interruzioni sistemiche.
Architettura a confronto: Ring Buffer eBPF vs In-Kernel Enforcement
Sebbene sia Falco (progetto CNCF graduato) sia Tetragon (sviluppato da Isovalent/Cisco) sfruttino eBPF per aggirare i limiti dei vecchi moduli kernel, le loro scelte architetturali differiscono in modo sostanziale nel punto in cui viene presa la decisione di sicurezza.
flowchart TD
subgraph KernelSpace["Linux Kernel Space (eBPF Layer)"]
Syscall["System Call / Kernel Tracepoint"] --> BPF_Hook["eBPF Probe"]
BPF_Hook -->|Tetragon: In-Kernel Filter| FastEval{"Policy Match?"}
FastEval -->|Block / Kill| Sigkill["Kernel SIGKILL / Override (0ms delay)"]
FastEval -->|Telemetry| RingBuf1["eBPF Perf / Ring Buffer"]
BPF_Hook -->|Falco Driver| RingBuf2["eBPF Ring Buffer (All Events)"]
end
subgraph UserSpace["User Space Processing Engine"]
RingBuf1 -->|Filtered Events| TetraDaemon["Tetragon Agent (gRPC / JSON)"]
RingBuf2 -->|Raw Stream| FalcoEngine["Falco Engine (Rule Evaluation & Lua)"]
FalcoEngine -->|Detection Alert| SIEM["SIEM / SOAR / Webhook"]
TetraDaemon -->|Structured Audit Event| SIEM
end
1. Falco: Rilevamento avanzato e arricchimento contestuale
Falco acquisisce gli eventi a livello kernel tramite una sonda eBPF generica e li inoltra direttamente a un ring buffer in memoria condivisa. Il motore di valutazione delle regole risiede interamente in user space. Questo garantisce:
- Una sintassi di regole estremamente ricca ed espressiva per la correlazione di eventi complessi.
- Arricchimento immediato dei metadati Kubernetes (pod, namespace, container ID, labels) tramite l'API server.
- Integrazione estesa con sorgenti dati esterne (come audit log di Kubernetes, AWS CloudTrail e plugin custom).
Tuttavia, l'enforcement (il blocco dell'azione) non avviene a livello kernel: per mitigare una minaccia, Falco deve emettere un allarme in user space e demandare la risposta a un controller ausiliario (come Falco Talon o un operatore Kubernetes), introducendo una latenza di reazione misurabile nell'ordine delle centinaia di millisecondi.
2. Cilium Tetragon: Filtro ed Enforcement a livello kernel
Tetragon sposta l'albero di valutazione delle policy direttamente all'interno delle mappe e dei programmi eBPF nel kernel Linux. Quando viene definita una TracingPolicy, il kernel non si limita a registrare l'evento:
- Applica i filtri sui parametri dei syscall (es. argomenti dei comandi, percorsi di file, socket IP) prima ancora di inviare i dati al ring buffer.
- Esegue azioni sincrone immediate, come l'invio istantaneo di un segnale
SIGKILLal processo trasgressore o l'override del return code del syscall con errore (-EPERM).
Esempio pratico: TracingPolicy per prevenire Namespace Escape in tempo reale
Il manifest seguente mostra come Tetragon blocca istantaneamente qualsiasi tentativo di sovrascrittura di binari di sistema o di escape dai namespace montando file descriptor privilegiati:
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
name: block-privilege-escalation-banking
namespace: kube-system
spec:
kprobes:
- call: "sys_execve"
syscall: true
args:
- index: 0
type: "string"
selectors:
- matchArgs:
- index: 0
operator: "Prefix"
values:
- "/bin/nc"
- "/usr/bin/ncat"
- "/tmp/"
matchNamespaces:
- operator: "NotIn"
values:
- "kube-system"
matchActions:
- action: Sigkill
- action: RateLimit
rateLimit: "10/m"
- call: "security_file_permission"
syscall: false
args:
- index: 0
type: "file"
- index: 1
type: "int"
selectors:
- matchArgs:
- index: 0
operator: "Prefix"
values:
- "/etc/kubernetes/pki"
- "/var/run/secrets/kubernetes.io/serviceaccount"
- index: 1
operator: "Mask"
values:
- "2" # MAY_WRITE permission
matchActions:
- action: Sigkill
Grazie all'azione Sigkill, il processo malevolo viene terminato prima che la system call sys_execve completi la sua transizione in kernel space, annullando il vettore d'attacco sul nascere.
Trade-off operativi, overhead e auditabilità per PCI-DSS e DORA
La scelta dello strumento ideale in un'architettura enterprise deve essere guidata da un'analisi comparativa dei vincoli architetturali:
| Dimensione | Falco (eBPF Engine) | Cilium Tetragon |
|---|---|---|
| Punto di decisione | User Space (DaemonSet) | Kernel Space (eBPF Map) |
| Azione preventiva (Active Blocking) | Asincrona via controller esterno | Sincrona nativa (SIGKILL, -EPERM) |
| Overhead CPU sotto picco transazionale | 3% – 7% (Buffer forwarding completo) | < 1% (Filtraggio in-kernel all'origine) |
| Rischio Event Drop sotto burst di I/O | Medio-Alto (Ring buffer overflow) | Quasi nullo (Solo eventi filtrati inoltrati) |
| Maturità dell'ecosistema di regole | Molto alta (centinaia di regole community) | In crescita (policy dichiarative CRD) |
| Allineamento DORA / PCI-DSS 4.0 | Rilevamento anomalie e forensics | Prevenzione attiva e tamper-resistance |
Considerazioni per l'architettura di audit bancaria
In una piattaforma finanziaria multi-tenant, la strategia più resiliente prevede spesso una sinergia a due livelli:
- Layer di Enforcement Sincrono (Tetragon): Configurato con policy focalizzate su minacce critiche a tolleranza zero (intercettazione credenziali KMS, esecuzione di binari da
/dev/shm, tentativi di breakout dei container e tampering delle interfacce di rete). - Layer di Analisi Comportamentale e Forensics (Falco / SIEM Gateway): Utilizzato come motore di correlazione per rilevare pattern euristici a bassa intensità ma protratti nel tempo (lateral movement, scansioni interne di porte, chiamate anomale alle API di Kubernetes).
Conclusione
La sicurezza a runtime nei cluster Kubernetes moderni ha superato la fase dell'osservabilità puramente informativa. Per un Cloud Architect che opera in ambito bancario, la capacità di garantire l'enforcement in-kernel offerta da Cilium Tetragon rappresenta un salto qualitativo indispensabile per soddisfare i rigorosi requisiti di contenimento immediato imposti da normative come DORA e PCI-DSS.
L'eliminazione dell'overhead di context-switching e l'azzeramento della finestra temporale di reazione trasformano l'infrastruttura eBPF da semplice strumento di monitoraggio a vero e proprio scudo deterministico per i workload critici.
Summary
In Kubernetes clusters processing financial transactions and sensitive data, runtime security cannot be limited to passive post-incident detection. The challenge lies in the ability to block kernel-level attacks in real-time without introducing performance degradation on critical syscalls or incurring the risk of event drops during load peaks. This article deeply analyzes the architectural differences between Falco and Cilium Tetragon, evaluating the effectiveness of eBPF monitoring, in-kernel filtering mechanisms, and active enforcement via immediate SIGKILL within the framework of Digital Operational Resilience Act (DORA) requirements and PCI-DSS standards.
The Runtime Security Dilemma: Syscall Latency vs. Banking Compliance
Protecting cloud-native workloads in financial institutions and highly regulated environments has historically faced a penalizing trade-off: choosing between deep operating system-level visibility and the performance stability of payment microservices.
Traditional approaches based on inspecting Linux audit logs (auditd) or proprietary kernel modules have shown structural vulnerabilities:
- Context Switch Overhead: The synchronous interception of each system call generates a non-negligible computational cost, increasing the p99 latency of core-banking services by 5% to 15%.
- Event Drop Under Stress: When transaction volume grows rapidly (e.g., during liquidation campaigns or trading peaks), buffers between kernel space and user space saturate, causing the silent loss of security events precisely at the moment of maximum exposure.
- Post-Compromise Detection: Conventional security engines notify of anomalies in user space after the malicious payload has already executed the system call (e.g., reading a TLS certificate from memory, privilege escalation, or writing to
/etc/shadow), leaving a time window during which the attacker can erase logs or open a reverse shell.
With the entry into force of the European DORA (Digital Operational Resilience Act) regulation, financial institutions are obliged to demonstrate proactive detection capabilities, timely isolation, and operational continuity without systemic interruptions.
Architectural Comparison: eBPF Ring Buffer vs. In-Kernel Enforcement
While both Falco (a graduated CNCF project) and Tetragon (developed by Isovalent/Cisco) leverage eBPF to circumvent the limitations of older kernel modules, their architectural choices differ substantially in where the security decision is made.
flowchart TD
subgraph KernelSpace["Linux Kernel Space (eBPF Layer)"]
Syscall["System Call / Kernel Tracepoint"] --> BPF_Hook["eBPF Probe"]
BPF_Hook -->|Tetragon: In-Kernel Filter| FastEval{"Policy Match?"}
FastEval -->|Block / Kill| Sigkill["Kernel SIGKILL / Override (0ms delay)"]
FastEval -->|Telemetry| RingBuf1["eBPF Perf / Ring Buffer"]
BPF_Hook -->|Falco Driver| RingBuf2["eBPF Ring Buffer (All Events)"]
end
subgraph UserSpace["User Space Processing Engine"]
RingBuf1 -->|Filtered Events| TetraDaemon["Tetragon Agent (gRPC / JSON)"]
RingBuf2 -->|Raw Stream| FalcoEngine["Falco Engine (Rule Evaluation & Lua)"]
FalcoEngine -->|Detection Alert| SIEM["SIEM / SOAR / Webhook"]
TetraDaemon -->|Structured Audit Event| SIEM
end
1. Falco: Advanced Detection and Contextual Enrichment
Falco acquires kernel-level events via a generic eBPF probe and forwards them directly to a shared memory ring buffer. The rule evaluation engine resides entirely in user space. This ensures:
- An extremely rich and expressive rule syntax for correlating complex events.
- Immediate enrichment of Kubernetes metadata (pod, namespace, container ID, labels) via the API server.
- Extensive integration with external data sources (such as Kubernetes audit logs, AWS CloudTrail, and custom plugins).
However, enforcement (blocking the action) does not occur at the kernel level: to mitigate a threat, Falco must issue an alert in user space and delegate the response to an auxiliary controller (such as Falco Talon or a Kubernetes operator), introducing a measurable reaction latency on the order of hundreds of milliseconds.
2. Cilium Tetragon: Kernel-Level Filtering and Enforcement
Tetragon moves the policy evaluation tree directly inside eBPF maps and programs within the Linux kernel. When a TracingPolicy is defined, the kernel doesn't just record the event:
- Applies filters to syscall parameters (e.g., command arguments, file paths, IP sockets) even before sending data to the ring buffer.
- Executes immediate synchronous actions, such as instantly sending a
SIGKILLsignal to the offending process or overriding the syscall's return code with an error (-EPERM).
Practical Example: TracingPolicy to Prevent Real-time Namespace Escape
The following manifest shows how Tetragon instantly blocks any attempt to overwrite system binaries or escape from namespaces by mounting privileged file descriptors:
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
name: block-privilege-escalation-banking
namespace: kube-system
spec:
kprobes:
- call: "sys_execve"
syscall: true
args:
- index: 0
type: "string"
selectors:
- matchArgs:
- index: 0
operator: "Prefix"
values:
- "/bin/nc"
- "/usr/bin/ncat"
- "/tmp/"
matchNamespaces:
- operator: "NotIn"
values:
- "kube-system"
matchActions:
- action: Sigkill
- action: RateLimit
rateLimit: "10/m"
- call: "security_file_permission"
syscall: false
args:
- index: 0
type: "file"
- index: 1
type: "int"
selectors:
- matchArgs:
- index: 0
operator: "Prefix"
values:
- "/etc/kubernetes/pki"
- "/var/run/secrets/kubernetes.io/serviceaccount"
- index: 1
operator: "Mask"
values:
- "2" # MAY_WRITE permission
matchActions:
- action: Sigkill
Thanks to the Sigkill action, the malicious process is terminated before the sys_execve system call completes its transition into kernel space, neutralizing the attack vector at its inception.
Operational Trade-offs, Overhead, and Auditability for PCI-DSS and DORA
Choosing the ideal tool in an enterprise architecture must be guided by a comparative analysis of architectural constraints:
| Dimension | Falco (eBPF Engine) | Cilium Tetragon |
|---|---|---|
| Decision Point | User Space (DaemonSet) | Kernel Space (eBPF Map) |
| Preventive Action (Active Blocking) | Asynchronous via external controller | Native Synchronous (SIGKILL, -EPERM) |
| CPU Overhead under Transactional Peak | 3% – 7% (Full buffer forwarding) | < 1% (In-kernel filtering at source) |
| Risk of Event Drop under I/O Burst | Medium-High (Ring buffer overflow) | Almost None (Only filtered events forwarded) |
| Rule Ecosystem Maturity | Very High (hundreds of community rules) | Growing (declarative CRD policies) |
| DORA / PCI-DSS 4.0 Alignment | Anomaly detection and forensics | Active prevention and tamper-resistance |
Considerations for Banking Audit Architecture
In a multi-tenant financial platform, the most resilient strategy often involves a two-tiered synergy:
- Synchronous Enforcement Layer (Tetragon): Configured with policies focused on zero-tolerance critical threats (KMS credential interception, execution of binaries from
/dev/shm, container breakout attempts, and network interface tampering). - Behavioral Analysis and Forensics Layer (Falco / SIEM Gateway): Used as a correlation engine to detect low-intensity but prolonged heuristic patterns (lateral movement, internal port scans, anomalous calls to Kubernetes APIs).
Conclusion
Runtime security in modern Kubernetes clusters has moved beyond purely informational observability. For a Cloud Architect working in the banking sector, the ability to ensure in-kernel enforcement offered by Cilium Tetragon represents an indispensable qualitative leap to meet the stringent immediate containment requirements imposed by regulations such as DORA and PCI-DSS.
The elimination of context-switching overhead and the nullification of the reaction time window transform the eBPF infrastructure from a mere monitoring tool into a true deterministic shield for critical workloads.