<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Falco – Kernel Events</title><link>https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/</link><description>Recent content in Kernel Events on Falco</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/feed.xml" rel="self" type="application/rss+xml"/><item><title>Docs: Kernel Events Architecture</title><link>https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/architecture/</guid><description>
&lt;p&gt;This document describes the overall architecture that allows events from kernel sources to be ingested by Falco, how to use the libraries to inspect the data collection flow and how Falco manages the boundary between the kernel and userspace. In order to make Falco compatible with a very large number of Linux Kernel versions, the internal APIs and low level communication mechanisms that are employed to cross the kernel and userspace boundary vary greatly between driver types and may be different between driver versions or kernel versions. However, they all implement the same event collection interface as described below.&lt;/p&gt;
&lt;h2 id="how-falco-interacts-with-kernel-components"&gt;How Falco interacts with kernel components&lt;/h2&gt;
&lt;p&gt;The component of the &lt;a href="https://github.com/falcosecurity/libs"&gt;Falco libraries&lt;/a&gt; that gathers data from the syscalls and interacts with the kernel is called &lt;code&gt;libscap&lt;/code&gt;. Internally, it implements all functionality required to use the drivers to collect kernel events.&lt;/p&gt;
&lt;p&gt;When using the kernel module or legacy eBPF probe (deprecated), the driver will need to be installed and deployed separately as a kernel object or probe, while the modern eBPF probe can be installed directly by libscap.&lt;/p&gt;
&lt;p&gt;Upon connection to its kernel counterpart, libscap will need to negotiate the API Version and Schema Version that the driver recognizes. These versions are expressed with a &lt;a href="https://semver.org/"&gt;semver&lt;/a&gt; subset and are &lt;a href="https://github.com/falcosecurity/libs/blob/master/driver/README.VERSION.md"&gt;documented in the libs repository&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://github.com/falcosecurity/libs/blob/master/driver/README.VERSION.md#api-version-number"&gt;API version&lt;/a&gt; refers to the communication mechanism between the kernel and userspace. Every driver has a different communication mechanism which changes between versions. The kernel module may use &lt;code&gt;ioctl&lt;/code&gt;s and a ring buffer, while the eBPF probe can use maps and different APIs depending on the kernel version and eBPF probe edition. Since some drivers can be deployed separately from Falco, at startup libscap will verify if the driver it's connecting to is compatible.&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://github.com/falcosecurity/libs/blob/master/driver/README.VERSION.md#api-version-number"&gt;Schema version&lt;/a&gt; refers to the type of events that the specific driver supports. The &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/reference/rules/supported-events/"&gt;Syscall Events&lt;/a&gt; documentation page shows the list of fields that are supported for each version of Falco. Every time that list changes the version number is updated as well.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;img style="width: 60%; margin: auto"
alt="Initializing kernel source data collection"
src="https://v0-43--falcosecurity.netlify.app/docs/images/kernel_source_start_capture.png" &gt;
&lt;/div&gt;
&lt;p&gt;When running Falco it is possible to verify the currently compatible version numbers with &lt;code&gt;falco --version&lt;/code&gt;. For instance, this is the output for Falco 0.35.1:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# falco --version
2023-07-01T16:23:43+0000: Falco version: 0.35.1 (x86_64)
2023-07-01T16:23:43+0000: Falco initialized with configuration file: /etc/falco/falco.yaml
Falco version: 0.35.1
Libs version: 0.11.3
Plugin API: 3.0.0
Engine: 17
Driver:
API version: 4.0.0
Schema version: 2.0.0
Default driver: 5.0.1+driver
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Once Falco is running, a stream of events is returned directly from the kernel. libscap's API allow the data to flow with a consistent format from the kernel to userspace.&lt;/p&gt;
&lt;p&gt;The main interface that governs this is the scap event format. Once the chosen driver is loaded and initialized in the kernel, the events are encoded with a specific header and a payload:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-Cpp=" data-lang="Cpp="&gt;struct ppm_evt_hdr {
uint64_t ts; /* timestamp, in nanoseconds from epoch */
uint64_t tid; /* the tid of the thread that generated this event */
uint32_t len; /* the event len, including the header */
uint16_t type; /* the event type */
uint32_t nparams; /* the number of parameters of the event */
};
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The payload contains an array of lengths of each parameter followed by the content of the parameters themselves. The parameter type is a numeric identifer that maps with each event documented in the reference.&lt;/p&gt;
&lt;p&gt;For example, the &lt;code&gt;dup3&lt;/code&gt; event is defined in the reference as:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;dup3&lt;/strong&gt;(FD res, FD oldfd, FD newfd, FLAGS32 flags: &lt;em&gt;O_LARGEFILE&lt;/em&gt;, &lt;em&gt;O_DIRECTORY&lt;/em&gt;, &lt;em&gt;O_DIRECT&lt;/em&gt;, &lt;em&gt;O_TRUNC&lt;/em&gt;, &lt;em&gt;O_SYNC&lt;/em&gt;, &lt;em&gt;O_NONBLOCK&lt;/em&gt;, &lt;em&gt;O_EXCL&lt;/em&gt;, &lt;em&gt;O_DSYNC&lt;/em&gt;, &lt;em&gt;O_APPEND&lt;/em&gt;, &lt;em&gt;O_CREAT&lt;/em&gt;, &lt;em&gt;O_RDWR&lt;/em&gt;, &lt;em&gt;O_WRONLY&lt;/em&gt;, &lt;em&gt;O_RDONLY&lt;/em&gt;, &lt;em&gt;O_CLOEXEC&lt;/em&gt;, &lt;em&gt;O_NONE&lt;/em&gt;, &lt;em&gt;O_TMPFILE&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;Meaning that its encoding will be composed of an header containing the timestamp and tid, &lt;code&gt;nparams&lt;/code&gt; will be 4 and the complete encoding will be:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[header] [uint16(8)] [uint16(8)] [uint16(8)] [uint16(32)] [res] [oldfd] [newfd] [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;
&lt;img style="width: 60%; margin: auto"
alt="Retrieving kernel events"
src="https://v0-43--falcosecurity.netlify.app/docs/images/kernel_source_capture.png" &gt;
&lt;/div&gt;
&lt;h2 id="use-scap-open-to-inspect-kernel-data-collection"&gt;Use scap-open to inspect kernel data collection&lt;/h2&gt;
&lt;p&gt;Contributors and expert users can find a tool called &lt;a href="https://github.com/falcosecurity/libs/tree/master/userspace/libscap/examples/01-open"&gt;scap-open&lt;/a&gt; in the libs repo. This tool allows to dump raw events from a variety of drivers. Building and usage instructions are included in the repository.&lt;/p&gt;</description></item><item><title>Docs: Advanced Performance Tuning</title><link>https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/tuning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/tuning/</guid><description>
&lt;hr&gt;
&lt;p&gt;This document provides advanced performance tuning options for the &lt;code&gt;syscall&lt;/code&gt; data source in Falco. It is intended for users who want to optimize the performance of their Falco deployment by customizing the syscall monitoring behavior.&lt;/p&gt;
&lt;h2 id="adaptive-syscalls-selection"&gt;Adaptive syscalls selection&lt;/h2&gt;
&lt;p&gt;Falco provides users flexibility to select different syscall monitoring behaviors tailored to their specific use cases. These options offer various degrees of control over system calls, directly configured through the &lt;code&gt;falco.yaml&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;This section outlines the available configurations and their implications.&lt;/p&gt;
&lt;h3 id="default-behavior"&gt;Default behavior&lt;/h3&gt;
&lt;p&gt;By default, Falco traces syscalls derived from:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Syscalls explicitly required by enabled Falco rules.&lt;/li&gt;
&lt;li&gt;A predefined set essential for maintaining Falco's internal state engine, defined at compile-time.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With the default configuration:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;base_syscalls.custom_set&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[]&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;base_syscalls.repair&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;base_syscalls.all&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This ensures accurate state engine management but offers no end-user customization of the additional syscalls.&lt;/p&gt;
&lt;h3 id="monitoring-all-syscalls-base-syscalls-all"&gt;Monitoring all syscalls (&lt;code&gt;base_syscalls.all&lt;/code&gt;)&lt;/h3&gt;
&lt;p&gt;Setting this option to &lt;code&gt;true&lt;/code&gt; enables monitoring all events supported by Falco, including typically ignored events such as &lt;code&gt;write&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;base_syscalls.all&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Use with caution, as this may negatively impact performance due to increased resource usage.&lt;/p&gt;
&lt;h3 id="user-defined-syscall-set-base-syscalls-custom-set"&gt;User-defined syscall set (&lt;code&gt;base_syscalls.custom_set&lt;/code&gt;)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;CAUTION:&lt;/strong&gt; Misconfiguration may result in incomplete event logs or disrupt Falco's tracing capabilities.&lt;/p&gt;
&lt;p&gt;This option allows you to explicitly define an additional set of syscalls to trace, supplementing those required by active Falco rules:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;base_syscalls.custom_set&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[clone, clone3, fork, execve, execveat, close]&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It offers fine-grained control and can help optimize resource utilization according to your threat model and performance constraints.&lt;/p&gt;
&lt;p&gt;Recommended syscall sets for typical scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Process monitoring&lt;/strong&gt;: &lt;code&gt;[clone, clone3, fork, vfork, execve, execveat, close]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Networking monitoring&lt;/strong&gt;: &lt;code&gt;[clone, clone3, fork, vfork, execve, execveat, close, socket, bind, getsockopt]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Accurate UID/GID tracking&lt;/strong&gt;: Add &lt;code&gt;[setresuid, setsid, setuid, setgid, setpgid, setresgid, capset, chdir, chroot, fchdir]&lt;/code&gt; to the relevant set.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Negative notation (&lt;code&gt;&amp;quot;!syscall_name&amp;quot;&lt;/code&gt;) is supported to explicitly exclude specific syscalls.&lt;/p&gt;
&lt;h3 id="automatic-state-engine-management-base-syscalls-repair"&gt;Automatic state engine management (&lt;code&gt;base_syscalls.repair&lt;/code&gt;)&lt;/h3&gt;
&lt;p&gt;Recommended for most scenarios, enabling this option allows Falco to automatically select the minimal necessary set of syscalls beyond those explicitly required by enabled rules:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;base_syscalls.repair&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;true&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;base_syscalls.custom_set&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[]&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;base_syscalls.all&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;false&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This option ensures Falco's internal state engine integrity with minimal performance overhead, automatically incorporating best-practice syscall configurations.&lt;/p&gt;
&lt;h2 id="scenarios"&gt;Scenarios&lt;/h2&gt;
&lt;p&gt;Different configurations address various monitoring scenarios effectively:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Monitoring spawned processes under resource constraints&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Default: Insufficient&lt;/li&gt;
&lt;li&gt;&lt;code&gt;custom_set&lt;/code&gt; and &lt;code&gt;repair&lt;/code&gt;: Both viable, but &lt;code&gt;repair&lt;/code&gt; is recommended for automatic correctness.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Monitoring spawned processes and network activity, excluding file opens&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Default: Insufficient&lt;/li&gt;
&lt;li&gt;&lt;code&gt;custom_set&lt;/code&gt; and &lt;code&gt;repair&lt;/code&gt;: Both suitable, with &lt;code&gt;repair&lt;/code&gt; ensuring automatic correctness without manual intervention.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Flexible configurability for tailored monitoring&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful in environments requiring selective monitoring to optimize resources.&lt;/li&gt;
&lt;li&gt;Allows coexistence with other monitoring tools by minimizing duplication of work.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Comprehensive syscall monitoring&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All three configurations (&lt;code&gt;default&lt;/code&gt;, &lt;code&gt;custom_set&lt;/code&gt;, &lt;code&gt;repair&lt;/code&gt;) can achieve complete syscall monitoring.&lt;/li&gt;
&lt;li&gt;Choice depends on user preference and performance trade-offs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;falco -i&lt;/code&gt; to list all events typically ignored in the default configuration.&lt;/li&gt;
&lt;li&gt;Events marked &lt;code&gt;EF_OLD_VERSION&lt;/code&gt; are not generated during live monitoring but may appear in &lt;code&gt;.scap&lt;/code&gt; files.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Docs: Actions For Dropped System Call Events</title><link>https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/dropped-events/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/dropped-events/</guid><description>
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;With the enhancements introduced in v0.15.0, Falco can now intelligently detect dropped &lt;a class='glossary-tooltip' title='Syscalls stands for system calls, a way to request a service from the running kernel.' data-toggle='tooltip' data-placement='top' href='https://man7.org/linux/man-pages/man2/syscalls.2.html' target='_blank' aria-label='system call'&gt;system call&lt;/a&gt; events and take remedial actions, such as alerting or even exiting Falco entirely. When system call events are dropped, Falco might encounter problems building its internal view of the processes, files, containers, and orchestrator metadata in use, which in turn might affect the rules that depend on that metadata. The explicit signals that Falco now provides make it easier to detect dropped system calls.&lt;/p&gt;
&lt;p&gt;For more information on this feature, see our blog post on &lt;a href="https://sysdig.com/blog/cve-2019-8339-falco-vulnerability/"&gt;CVE-2019-8339&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="implementation"&gt;Implementation&lt;/h2&gt;
&lt;p&gt;Every second, Falco reads system call event counts that are populated by the &lt;a class='glossary-tooltip' title='Used to describe the .ko object that would be loaded into the kernel as a potentially risky kernel module.' data-toggle='tooltip' data-placement='top' href='https://linux-kernel-labs.github.io/refs/heads/master/labs/kernel_modules.html' target='_blank' aria-label='kernel module'&gt;kernel module&lt;/a&gt;/&lt;a class='glossary-tooltip' title='eBPF is a technology to collect metrics and events from the Kernel in a secure way.' data-toggle='tooltip' data-placement='top' href='https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/#legacy-ebpf-probe' target='_blank' aria-label='eBPF'&gt;eBPF&lt;/a&gt; program. The reading includes the number of system calls processed, and most importantly, the number of times the kernel tried to write system call information to the shared buffer between the kernel and user space, but found the buffer was full. These failed write attempts are considered &lt;em&gt;dropped&lt;/em&gt; system call events.&lt;/p&gt;
&lt;p&gt;When at least one dropped event is detected, Falco takes one of the following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ignore&lt;/code&gt;: no action is taken. If an empty list is provided, ignore is assumed.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;log&lt;/code&gt;: log a CRITICAL message noting that the buffer was full.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;alert&lt;/code&gt;: emit a Falco alert stating that the buffer was full.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt;: exit Falco with a non-zero rc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Given below are a sample log message, an alert, and an exit message:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Wed Mar 27 15:28:22 2019: Falco initialized with configuration file /etc/falco/falco.yaml
Wed Mar 27 15:28:22 2019: Loading rules from file /etc/falco/falco_rules.yaml:
Wed Mar 27 15:28:24 2019: Falco internal: syscall event drop. 1 system calls dropped in last second.
15:28:24.000207862: Critical Falco internal: syscall event drop. 1 system calls dropped in last second.(n_drops=1 n_evts=1181)
Wed Mar 27 15:28:24 2019: Falco internal: syscall event drop. 1 system calls dropped in last second.
Wed Mar 27 15:28:24 2019: Exiting.
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="actions-rate-throttling"&gt;Actions Rate Throttling&lt;/h2&gt;
&lt;p&gt;To reduce the likelihood of a flood of log messages/alerts, Falco provides an alert throttling mechanism disabled by default. This feature can be enabled through the &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/reference/daemon/config-options/"&gt;Falco configuration&lt;/a&gt; (see the &lt;code&gt;outputs&lt;/code&gt; entry).&lt;/p&gt;
&lt;div class="alert alert-primary" role="alert"&gt;
Before &lt;a href="https://v0-43--falcosecurity.netlify.app/blog/falco-0-33-0/"&gt;v0.33.0&lt;/a&gt; this feature was enabled by default.
&lt;/div&gt;
&lt;h2 id="configuration"&gt;Configuration&lt;/h2&gt;
&lt;p&gt;The actions to take on a dropped system call event and the throttling parameters for the token bucket are configurable in the file &lt;code&gt;falco.yaml&lt;/code&gt;. You can find them in &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/reference/daemon/config-options/"&gt;syscall_event_drops&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Docs: Generating sample events</title><link>https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/sample-events/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/kernel/sample-events/</guid><description>
&lt;p&gt;If you'd like to check if Falco is working properly, we have the &lt;a class='glossary-tooltip' title='Generate a variety of suspect actions that are detected by Falco rulesets.' data-toggle='tooltip' data-placement='top' href='https://github.com/falcosecurity/event-generator' target='_blank' aria-label='event-generator'&gt;event-generator&lt;/a&gt; tool that can perform an activity for both our &lt;a class='glossary-tooltip' title='Syscalls stands for system calls, a way to request a service from the running kernel.' data-toggle='tooltip' data-placement='top' href='https://man7.org/linux/man-pages/man2/syscalls.2.html' target='_blank' aria-label='syscalls'&gt;syscalls&lt;/a&gt; and &lt;a class='glossary-tooltip' title='Audit logs from the Kubernetes control plane.' data-toggle='tooltip' data-placement='top' href='https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/' target='_blank' aria-label='k8s audit'&gt;k8s audit&lt;/a&gt; related rules.&lt;/p&gt;
&lt;p&gt;The tool provides a command to run either some or all sample events.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;event-generator run [regexp]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Without arguments it runs all actions, otherwise only those actions matching the given regular expression.&lt;/p&gt;
&lt;p&gt;The full command line documentation is &lt;a href="https://github.com/falcosecurity/event-generator/blob/master/docs/event-generator_run.md"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="downloads"&gt;Downloads&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Artifacts&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Version&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;binaries&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/falcosecurity/event-generator/releases/latest"&gt;download link&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/falcosecurity/event-generator/releases/latest"&gt;&lt;img src="https://img.shields.io/github/release/falcosecurity/event-generator.svg?style=flat-square" alt="Release" loading="lazy" /&gt;
&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container images&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker pull falcosecurity/event-generator:latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://hub.docker.com/r/falcosecurity/event-generator/tags"&gt;&lt;img src="https://img.shields.io/docker/v/falcosecurity/event-generator?color=blue&amp;amp;style=flat-square" alt="Docker Image Version (latest semver)" loading="lazy" /&gt;
&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="sample-events"&gt;Sample events&lt;/h2&gt;
&lt;div class="card card-sm pageinfo pageinfo-warning my-4"&gt;
&lt;div class="card-body"&gt;
&lt;div class="card-text"&gt;
&lt;p&gt;&lt;strong&gt;WARNING&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Since some commands might alter your system, we strongly recommend that you run the program within a container (see below).&lt;br&gt;
For example, some actions modify files and directories below &lt;code&gt;/bin&lt;/code&gt;, &lt;code&gt;/etc&lt;/code&gt;, &lt;code&gt;/dev&lt;/code&gt;, etc.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="system-call-activity"&gt;System Call Activity&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;syscall&lt;/code&gt; collection performs a variety of suspect actions that are detected by the &lt;a href="https://github.com/falcosecurity/rules/blob/master/rules/falco_rules.yaml"&gt;default Falco ruleset&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker run -it --rm falcosecurity/event-generator run syscall --loop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The above command loops forever, incessantly generating a sample event each second.&lt;/p&gt;
&lt;h3 id="kubernetes-auditing-activity"&gt;Kubernetes Auditing Activity&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;k8saudit&lt;/code&gt; collection generates activity that matches the &lt;a href="https://github.com/falcosecurity/plugins/blob/master/plugins/k8saudit/rules/k8s_audit_rules.yaml"&gt;k8s audit event ruleset&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;event-generator run k8saudit --loop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The above command loops forever, creating resources in the current namespace and deleting them after each iteration. Use the &lt;code&gt;--namespace&lt;/code&gt; option to choose a different namespace.&lt;/p&gt;
&lt;h2 id="running-the-event-generator-in-k8s"&gt;Running the Event Generator in K8s&lt;/h2&gt;
&lt;p&gt;We've also provided a &lt;a href="https://github.com/falcosecurity/charts/tree/master/charts/event-generator"&gt;helm chart&lt;/a&gt; that make it easy to run the event generator in K8s Clusters.&lt;/p&gt;
&lt;p&gt;First thing, we need to add the &lt;code&gt;falcosecurity&lt;/code&gt; charts repository:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm repo add falcosecurity https://falcosecurity.github.io/charts
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm repo update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once you have the helm repo configured, you can run the following to create the necessary objects in the &lt;code&gt;event-generator&lt;/code&gt; namespace and then generate events continuously:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm install event-generator falcosecurity/event-generator &lt;span style="color:#b62;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --namespace event-generator &lt;span style="color:#b62;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --create-namespace &lt;span style="color:#b62;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --set config.loop&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#a2f"&gt;false&lt;/span&gt; &lt;span style="color:#b62;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --set config.actions&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The above command applies to the &lt;code&gt;event-generator&lt;/code&gt; namespace. Use the &lt;code&gt;--namespace&lt;/code&gt; option to deploy in a different namespace. Events will be generated in the same namespace.&lt;/p&gt;
&lt;p&gt;You can also find more examples in the &lt;a href="https://github.com/falcosecurity/event-generator#with-kubernetes"&gt;event-generator&lt;/a&gt; and &lt;a href="https://github.com/falcosecurity/charts/tree/master/charts/event-generator"&gt;charts&lt;/a&gt; repositories.&lt;/p&gt;</description></item></channel></rss>