Cloud Native Runtime Security
Go to file
Lorenzo Susini e47ece4de9 update(userspace/engine): address jasondellaluce comments
- avoiding inspector to be allocated for each rule
- use two boolean values for expecting macros and lists
- move items of lists alongside name, under info
- use snake case for json output, like we do for e.g alerts
- correctly retrieve evt names
- consider two levels of lists for exception operators

Signed-off-by: Lorenzo Susini <susinilorenzo1@gmail.com>
2023-05-19 15:56:05 +02:00
.circleci fix(ci): properly pass FALCO_VERSION loaded from extern to docker build for centos7 and arm64 builds. 2023-05-17 12:16:00 +02:00
.github chore(ci): fixed up missing '\' chars. 2023-05-19 14:55:05 +02:00
audits new(docs): add security audit from January 2023 2023-02-21 08:23:28 +01:00
brand Update brand/README.md 2023-05-18 15:24:04 +02:00
cmake update(cmake): bump plugins to latest dev versions 2023-05-19 12:15:04 +02:00
docker fix(ci): load falco image before building falco-driver-loader 2023-05-15 15:35:24 +02:00
proposals chore(proposals): fix typo found by FedeDP 2022-12-14 17:32:14 +01:00
scripts new(scripts): updated falco-driver-loader to properly support talos. 2023-05-16 16:49:55 +02:00
submodules build(deps): Bump submodules/falcosecurity-rules 2023-05-18 09:11:03 +02:00
test update(userspace/falco): support new plugin API definitions 2023-05-19 12:15:04 +02:00
unit_tests test(unit_tests/engine): test filter_details_resolver class 2023-05-19 15:56:05 +02:00
userspace update(userspace/engine): address jasondellaluce comments 2023-05-19 15:56:05 +02: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
.codespellignore fix(CI): codespell should ignore ro word 2022-08-23 16:29:05 +02:00
.gitignore cleanup(userspace/engine): remove lua files and lua-related code sections 2022-04-11 12:22:18 +02:00
.gitmodules new: add falcosecurity/rules submodule 2023-01-21 17:58:08 +01:00
.yamllint.conf new: YAML lint configuration 2019-07-10 13:00:03 +02:00
ADOPTERS.md Add Deckhouse to Falco adopters 2023-03-08 12:39:07 +01:00
CHANGELOG.md new(docs): update Changelog for 0.34.1 2023-02-20 14:45:17 +01:00
CMakeLists.txt update(CMakeLists): fix c++17 compilation issues 2023-05-19 12:15:04 +02:00
COPYING docs: update COPYING 2019-10-08 16:02:26 +02:00
falco.yaml cleanup(docs): remove extraneous whitespace in falco.yaml 2023-05-18 15:49:03 +02:00
OWNERS chore(OWNERS): cleanup inactive reviewer 2022-09-14 15:31:25 +02:00
README.md chore(README.md): fix reference to rules in readme 2023-01-21 17:58:08 +01:00
RELEASE.md update(docs): clarify release checking in the readme 2023-05-10 11:05:10 +02:00
rules new: add falcosecurity/rules submodule 2023-01-21 17:58:08 +01:00

Cloud Native Runtime Security.


Build Status CII Best Practices Summary GitHub Latest Architectures

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

Latest releases

Read the change log.

development stable
rpm-x86_64 rpm-dev rpm
deb-x86_64 deb-dev deb
binary-x86_64 bin-dev bin
rpm-aarch64 rpm-dev rpm
deb-aarch64 deb-dev deb
binary-aarch64 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.

The official Falco rules are maintained and released in falcosecurity/rules. That repository also contains the Falco rules inventory document, which provides additional details around the default rules Falco ships with.

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

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?

How to contribute

See the contributing guide and the code of conduct.

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

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

Project Evolution

The falcosecurity/evolution repository is the official space for the community to work together, discuss ideas, and document processes. It is also a place to make decisions. Check it out to find more helpful resources.

Resources