Cloud Native Runtime Security
Go to file
Jason Dellaluce 2ee95122df refactor(engine): remove unused lua modules
Both the parser.lua and compiler.lua modules are not necessary anymore, because all the logic related
to filter parsing and compilation is handled inside libsinsp now. Accordingly, they have been removed from
the lua-to-cpp.sh scripts. README.md and parse-smoke.sh have been removed since they are not needed anymore:
lpeg is not used by the project, and the smoke tests are implemented in libsisnsp unit test suite.

Signed-off-by: Jason Dellaluce <jasondellaluce@gmail.com>
2022-03-23 18:31:43 +01:00
.circleci spelling: temporarily 2022-03-01 16:30:24 +01:00
.github Fix link to CONTRIBUTING.md in the Pull Request Template 2021-06-21 11:01:38 +02:00
audits move audit doc 2019-12-17 09:15:41 +01:00
brand docs(brand): add plugin definition 2022-03-17 17:10:30 +01:00
cmake update(cmake): remove lpeg dependency 2022-03-23 18:31:43 +01:00
docker refator(image): commented and moved symlinks inside SKIP_DRIVER_LOADER check 2022-03-23 15:39:03 +01:00
proposals spelling: whether 2022-03-01 16:30:24 +01:00
rules Add user_known_mount_in_privileged_containers 2022-03-17 10:50:56 +01:00
scripts update(cmake): remove lpeg dependency 2022-03-23 18:31:43 +01:00
test update(build): temporarely bump cloudtrail and json plugin version to dev builds 2022-03-18 23:20:01 +01:00
tests fix(tests/engine): correct unit tests 2022-01-28 15:33:22 +01:00
userspace refactor(engine): remove unused lua modules 2022-03-23 18:31:43 +01:00
.clang-format chore: clang format following the current style 2019-07-03 09:07:00 +02:00
.cmake-format spelling: lexicographically 2022-03-01 16:30:24 +01:00
.gitignore update(gitignore): drop 2 useless lines from gitignore that are now installed in the build folder. 2022-01-17 17:20:33 +01:00
.luacheckrc chore: clean up lua from dot files 2020-10-13 05:12:00 -04:00
.yamllint.conf new: YAML lint configuration 2019-07-10 13:00:03 +02:00
ADOPTERS.md spelling: suspicious 2022-03-01 16:30:24 +01:00
CHANGELOG.md update(changelog): add link to security fix for 0.31.1 2022-03-11 18:59:56 +01:00
CMakeLists.txt update(cmake): remove lpeg dependency 2022-03-23 18:31:43 +01:00
COPYING docs: update COPYING 2019-10-08 16:02:26 +02:00
falco.yaml docs: fix priority level "info" to "informational" 2022-01-18 18:49:18 +01:00
OWNERS update(OWNERS): add jasondellaluce 2021-12-22 18:15:40 +01:00
README.md docs(README.md): update slack channel URLs 2022-03-17 17:10:30 +01:00
RELEASE.md spelling: github 2022-03-01 16:30:24 +01:00

Cloud Native Runtime Security.


Build Status CII Best Practices Summary GitHub

Want to talk? Join us on the #falco channel in the Kubernetes Slack.

Latest releases

Read the change log.

development stable
rpm rpm-dev rpm
deb deb-dev deb
binary bin-dev bin

The Falco Project, originally created by Sysdig, is an incubating CNCF open source cloud native runtime security tool. Falco makes it easy to consume kernel events, and enrich those events with information from Kubernetes and the rest of the cloud native stack. Falco can also be extended to other data sources by using plugins. Falco has a rich set of security rules specifically built for Kubernetes, Linux, and cloud-native. If a rule is violated in a system, Falco will send an alert notifying the user of the violation and its severity.

What can Falco detect?

Falco can detect and alert on any behavior that involves making Linux system calls. Falco alerts can be triggered by the use of specific system calls, their arguments, and by properties of the calling process. For example, Falco can easily detect incidents including but not limited to:

  • A shell is running inside a container or pod in Kubernetes.
  • A container is running in privileged mode, or is mounting a sensitive path, such as /proc, from the host.
  • A server process is spawning a child process of an unexpected type.
  • Unexpected read of a sensitive file, such as /etc/shadow.
  • A non-device file is written to /dev.
  • A standard system binary, such as ls, is making an outbound network connection.
  • A privileged pod is started in a Kubernetes cluster.

Installing Falco

If you would like to run Falco in production please adhere to the official installation guide.

Kubernetes
Tool Link Note
Helm Chart Repository The Falco community offers regular helm chart releases.
Minikube Tutorial The Falco driver has been baked into minikube for easy deployment.
Kind Tutorial Running Falco with kind requires a driver on the host system.
GKE Tutorial We suggest using the eBPF driver for running Falco on GKE.

Developing

Falco is designed to be extensible such that it can be built into cloud-native applications and infrastructure.

Falco has a gRPC endpoint and an API defined in protobuf. The Falco Project supports various SDKs for this endpoint.

SDKs
Language Repository
Go client-go
Rust client-rs
Python client-py

Plugins

Falco comes with a plugin framework that extends it to potentially any cloud detection scenario. Plugins are shared libraries that conform to a documented API and allow for:

  • Adding new event sources that can be used in rules;
  • Adding the ability to define new fields and extract information from events.

The Falco Project maintains various plugins and provides SDKs for plugin development.

SDKs
Language Repository
Go falcosecurity/plugin-sdk-go

Documentation

The Official Documentation is the best resource to learn about Falco.

Join the Community

To get involved with The Falco Project please visit the community repository to find more.

How to reach out?

Contributing

See the CONTRIBUTING.md.

Security Audit

A third party security audit was performed by Cure53, you can see the full report here.

Reporting security vulnerabilities

Please report security vulnerabilities following the community process documented here.

License Terms

Falco is licensed to you under the Apache 2.0 open source license.