run a program you are making system calls. System calls are how a program enters the kernel to perform some task. • processes • network • file IO • much more... Why Syscalls?
in the Linux kernel without changing the kernel code or loading a module. • Access kernel activity without risking system stability or security. • Useful for security, monitoring and troubleshooting Filesystem Kubernetes App 1 App 2 App 3 App n KERNEL syscalls Host metrics statsd/jmx Security events Prometheus Host EBPF probe / kernel module
Falco do? CNCF cloud-native runtime security incubating project ◦ Created by Sysdig in 2016 Detects unexpected application behavior and alerts on threats at runtime THE de facto Kubernetes threat detection engine * WIDE ADOPTION * 27 Million Docker Pulls/ 6x Contribution Growth! * Up for Graduation Falco uses system calls to secure and monitor a system, by: ◦ parsing the Linux system calls from the kernel at runtime ◦ asserting the stream against a powerful rules engine ◦ alerting when a rule is violated
that check for unusual behavior such as: Falco Rules ◦ Privilege escalation using privileged containers ◦ Namespace changes using tools like setns ◦ Read/Writes to well-known directories such as /etc, /usr/bin, /usr/sbin, etc. ◦ Creating symlinks ◦ Ownership and Mode changes ◦ Unexpected network connections or socket mutations ◦ Spawned processes using execve ◦ Executing shell binaries such as sh, bash, csh, zsh, etc. ◦ Executing SSH binaries such as ssh, scp, sftp, etc. ◦ Mutating Linux coreutils executables ◦ Mutating login binaries ◦ Mutating shadowutil or passwd executables such as shadowconfig, pwck, chpasswd, getpasswd, change, useradd, etc, and others
Falco project in GitHub. • Get involved in the Falco community. • Meet the maintainers on the Falco Slack. • Follow @falco_org on Twitter. Contribute to Falco!