Key Features
- Real-time anomaly detection (e.g., unexpected shells, suspicious syscalls)
- Full container visibility via a kernel module or eBPF sensor
- Flexible alerting with extendable rule engine
- Multiple output channels for seamless integration
How Falco Works
- A Falco sensor runs on each host (kernel module or eBPF).
- The sensor captures syscalls and container metadata.
- Events are evaluated against your Falco ruleset.
- When a rule condition is met, Falco emits an alert.
- A shell spawned inside a container
- A server process spawning an unexpected child
- A sensitive file (e.g.,
/etc/shadow) being accessed
Example: Detecting a Shell in an Nginx Pod
Consider an Nginx pod in your Kubernetes cluster. If someone executes a shell inside that pod, Falco’s default rules will trigger:Falco Console Output
- Timestamp & Severity:
Notice - Container Details: image
nginx, container ID - Rule Name:
Terminal shell in container - Context: user, shell type, parent process, etc.
You can author custom Falco rules to match your environment’s threat models. See the Falco Rules Language for examples.
Falco Outputs and UI Integration
Falco supports these output channels out of the box:| Output Channel | Description |
|---|---|
| stdout | Print alerts to standard output |
| file | Write alerts to a local file |
| gRPC | Stream events over gRPC |
| http | Send alerts via HTTP webhook |
| shell | Execute custom commands on alert detection |
- Ship alerts to Slack, Elasticsearch, PagerDuty, and more
- Expose a web UI for browsing and filtering events
- Persist events in durable backends
Running Falco’s kernel module or eBPF sensor requires root privileges. Ensure your host policies and least-privilege guidelines are followed.
Sample Alert Payload
Below is a structured alert payload that you could send to Slack or another endpoint:In this article, you learned how Falco uses a single sensor and rule engine to secure containerized workloads at runtime. You saw how to detect an interactive shell in a container, inspect the alert output, and integrate Falco with external systems via Sidekick. Next, explore writing custom Falco rules and deploying Falco on Kubernetes.