Falco

Build Status Release Puppet Forge Puppet Forge - downloads Puppet Forge - endorsement Puppet Forge - scores puppetmodule.info docs Apache-2 License

Falco is a behavioral activity monitor designed to detect anomalous activity in your applications. Powered by Falco libraries system call capture and inspection infrastructure, Falco lets you continuously monitor and detect container, application, host, and network activity... all in one place, from one source of data, with one set of rules.

What kind of behaviors can Falco detect?

Falco can detect and alert on any behavior that involves making Linux system calls. Thanks to the Falco drivers, libscap and libsinsp Falco libraries which capture, parse, enrich and filter collected system calls as a raw data source, Falco alerts can be triggered by the use of specific system calls, their arguments, and by properties of the calling process. For example, you can easily detect things like:

  • A shell is run inside a container
  • A container is running in privileged mode, or is mounting a sensitive path like /proc from the host.
  • A server process spawns a child process of an unexpected type
  • Unexpected read of a sensitive file (like /etc/shadow)
  • A non-device file is written to /dev
  • A standard system binary (like ls) makes an outbound network connection

Module Description

This module configures Falco as a systemd service. You configure Falco to send its notifications to one or more output channels (syslog, files, programs).

Setup

Beginning with Falco

To have Puppet install Falco with the default parameters, declare the Falco class:

class { 'falco': }

When you declare this class with the default options, the module:

  • Installs the appropriate Falco software package and installs the falco-probe kernel module for your operating system.
  • Creates the required configuration file /etc/falco/falco.yaml.
  • Manages the local rules file /etc/falco/falco_rules.local.yaml.
  • Starts the Falco service.

Reference

This module is documented via bundle exec rake strings:generate:reference. Please see REFERENCE.md for more info and example usage.

Limitations

The module works where Falco works as a daemonized service (generally, Linux only). Also, newer configuration options in falco.yaml may not have been templated yet... PRs welcome if you find such a case.

Development

PRs are welcome!

History

This module is derrived from falcosecurity/evolution. That code came from falcosecurity/falco as part of resolving issue #1114. The old code is the basis for sysdig/falco. #2005 was submitted to request that module be depreciated since it appears to be abondoned.