<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Falco – Plugin</title><link>https://v0-43--falcosecurity.netlify.app/tags/plugin/</link><description>Recent content in Plugin on Falco</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 13 Mar 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://v0-43--falcosecurity.netlify.app/tags/plugin/feed.xml" rel="self" type="application/rss+xml"/><item><title>Blog: Detecting Threats in OVHcloud MKS Audit Logs with Falco</title><link>https://v0-43--falcosecurity.netlify.app/blog/detect-threats-falco-ovh-mks-audit-logs-plugin/</link><pubDate>Thu, 13 Mar 2025 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/blog/detect-threats-falco-ovh-mks-audit-logs-plugin/</guid><description>
&lt;p&gt;Detecting threats in a Kubernetes cluster can be challenging, we generally don't know where and how to start.
The good news is that we have an amount of valuable logs that can help us to know what is happened in the cluster. Indeed, each action requested or done by a user or an app, in a cluster, is recorded in Audit Logs.
Kubernetes events are key to understanding the behavior of a cluster.&lt;/p&gt;
&lt;p&gt;We already provide plugins that let you parse Audit Logs and use Falco to detect threats from GKE, EKS and AKS clusters. With our latest plugin, you'll now have the same powerful threat detection capabilities for your OVHcloud MKS clusters 🎉.&lt;/p&gt;
&lt;h2 id="what-is-falco"&gt;What is Falco?&lt;/h2&gt;
&lt;p&gt;Falco is an Open Source cloud-native runtime security tool. It provides near real-time threat detection for cloud, container, and Kubernetes workloads by leveraging runtime insights. Falco can monitor events from various sources, including the Linux kernel, and enrich them with metadata from the Kubernetes API server, container runtime, and more.&lt;/p&gt;
&lt;p&gt;Falco can receive &lt;strong&gt;Events&lt;/strong&gt;, compare them to a set of &lt;strong&gt;Rules&lt;/strong&gt; to determine the actions to perform and generate &lt;strong&gt;Alerts&lt;/strong&gt; to different endpoints.&lt;/p&gt;
&lt;h2 id="what-is-the-ovh-mks-audit-logs-plugin"&gt;What is the OVH MKS Audit Logs plugin?&lt;/h2&gt;
&lt;p&gt;The OVH audit logs plugin (&lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8saudit-ovh"&gt;k8saudit-ovh&lt;/a&gt;) extends Falco's capabilities to OVHcloud Managed Kubernetes Service (MKS) clusters, providing you with the same security insights and threat detection Falco already offers for GKE, EKS and AKS environments.&lt;/p&gt;
&lt;p&gt;With this plugin, you can seamlessly integrate MKS Audit Logs into Falco's event processing pipeline, enabling it to identify anomalies, suspicious activities, and policy violations within your MKS-based workloads.&lt;/p&gt;
&lt;p&gt;Concretely, when a user executes some &lt;strong&gt;kubectl&lt;/strong&gt; commands in an OVHcloud MKS cluster, Audit Logs will be generated. Falco is listening to them, and depending on the configured rules to follow, it will generate some alerts.&lt;/p&gt;
&lt;p&gt;&lt;img src="images/falco-apiserver.png" alt="Falco Kubernetes API Server Audit Logs" loading="lazy" /&gt;
&lt;/p&gt;
&lt;h2 id="using-ovh-mks-audit-logs-plugin"&gt;Using OVH MKS Audit Logs plugin&lt;/h2&gt;
&lt;p&gt;In order to use the OVH MKS Audit Logs plugin, you must follow several steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;deploy an OVHcloud LDP (Logs Data Platform)&lt;/li&gt;
&lt;li&gt;create a data stream into this LDP&lt;/li&gt;
&lt;li&gt;connect an OVHcloud MKS cluster to the data stream (to send Audit Logs into it)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To be able to access our Kubernetes clusters' Audit Logs, you need to deploy an &lt;a href="https://www.ovhcloud.com/en/identity-security-operations/logs-data-platform/"&gt;LDP&lt;/a&gt;. LDP is the managed platform for collecting, processing, analyzing, and storing your logs of the OVHcloud products. Deploy an LDP (Bare Metal Cloud universe) with whatever plan you want.&lt;/p&gt;
&lt;p&gt;OVHcloud Kubernetes Audit Logs will be stored in a data stream. The OVHcloud Audit Logs Falco plugin receive the audit logs through Websocket so you need to enable &lt;strong&gt;Websocket broadcasting&lt;/strong&gt; when you create the data stream on LDP.&lt;/p&gt;
&lt;p&gt;Retrieve the Websocket URL, follow &lt;a href="https://help.ovhcloud.com/csm/en-ie-logs-data-platform-ldp-tail?id=kb_article_view&amp;amp;sysparm_article=KB0055757#retrieve-your-websocket-address"&gt;the guide&lt;/a&gt; to do so.
The Websocket address have this kind of format: &lt;strong&gt;wss://gra&lt;xxx&gt;.logs.ovh.com/tail/?tk=&lt;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Finally, you have to &lt;a href="https://help.ovhcloud.com/csm/en-public-cloud-kubernetes-forwarding-audit-logs?id=kb_article_view&amp;amp;sysparm_article=KB0062285#enabling-audit-log-forwarding-using-the-ovhcloud-control-panel"&gt;connect a MKS cluster to the LDP data stream&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="configuring-falco-to-use-ovh-audit-logs-plugin"&gt;Configuring Falco to use OVH Audit Logs plugin&lt;/h2&gt;
&lt;h3 id="running-locally"&gt;Running locally&lt;/h3&gt;
&lt;p&gt;If you have a Falco running locally, using &lt;a href="https://github.com/falcosecurity/falcoctl"&gt;falcoctl&lt;/a&gt;, add the &lt;strong&gt;falcosecurity index&lt;/strong&gt; (if it's not already the case) and install the k8saudit-ovh Falco plugin:&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:#080;font-style:italic"&gt;# Add falcosecurity index&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;sudo falcoctl index add falcosecurity https://falcosecurity.github.io/falcoctl/index.yaml&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:#080;font-style:italic"&gt;# Install k8saudit-ovh Falco plugin&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;sudo falcoctl artifact install k8saudit-ovh&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;Fill your &lt;strong&gt;falco.yaml&lt;/strong&gt; file in order to add the plugin 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;plugins&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:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;k8saudit-ovh&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;library_path&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;/usr/share/falco/plugins/libk8saudit-ovh.so&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;open_params&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&amp;lt;OVH LDP WEBSOCKET URL&amp;gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#080;font-style:italic"&gt;# gra&amp;lt;x&amp;gt;.logs.ovh.com/tail/?tk=&amp;lt;ID&amp;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:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;json&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;library_path&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;libjson.so&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;init_config&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&amp;#34;&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;load_plugins&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[k8saudit-ovh, json]&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:#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;stdout_output&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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;h3 id="running-in-a-kubernetes-cluster"&gt;Running in a Kubernetes cluster&lt;/h3&gt;
&lt;p&gt;If you have a Falco running in a Kubernetes cluster (on OVHcloud MKS or on another cluster), deployed with Helm, create a &lt;strong&gt;values.yaml&lt;/strong&gt; file with the following content:&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;tty&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;kubernetes&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:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;# Just a Deployment with 1 replica (instead of a Daemonset) to have only one Pod that pulls the MKS Audit Logs from a OVHcloud LDP&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;controller&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;kind&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;deployment&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;deployment&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;replicas&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#666"&gt;1&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:#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;falco&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;rule_matching&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;all&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;rules_files&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:#bbb"&gt; &lt;/span&gt;- /etc/falco/k8s_audit_rules.yaml&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:#bbb"&gt; &lt;/span&gt;- /etc/falco/rules.d&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;plugins&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:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;k8saudit-ovh&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;library_path&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;libk8saudit-ovh.so&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;open_params&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;gra&amp;lt;x&amp;gt;.logs.ovh.com/tail/?tk=&amp;lt;ID&amp;gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#080;font-style:italic"&gt;# Replace with your LDP Websocket URL&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:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;json&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;library_path&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;libjson.so&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;init_config&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&amp;#34;&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#080;font-style:italic"&gt;# Plugins that Falco will load. Note: the same plugins are installed by the falcoctl-artifact-install init container.&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;load_plugins&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[k8saudit-ovh, json]&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:#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;driver&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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;collectors&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;# use falcoctl to install automatically the plugin and the rules&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;falcoctl&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;artifact&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;install&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;follow&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;config&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;indexes&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:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;falcosecurity&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;url&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;https://falcosecurity.github.io/falcoctl/index.yaml&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;artifact&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;allowedTypes&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:#bbb"&gt; &lt;/span&gt;- plugin&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:#bbb"&gt; &lt;/span&gt;- rulesfile&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;install&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;resolveDeps&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;refs&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[k8saudit-rules:0, k8saudit-ovh:0.1, json:0]&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;follow&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;refs&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[k8saudit-rules:0]&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 &lt;strong&gt;values.yaml&lt;/strong&gt; file will install Falco with the &lt;strong&gt;k8saudit-ovh&lt;/strong&gt; and the &lt;strong&gt;json&lt;/strong&gt; plugins.&lt;/p&gt;
&lt;p&gt;Install the latest version of Falco with &lt;strong&gt;helm install&lt;/strong&gt; command:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ helm install falco --create-namespace --namespace falco --values&lt;span style="color:#666"&gt;=&lt;/span&gt;values.yaml falcosecurity/falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This command will install the latest version of Falco, with the k8saudit-ovh and json plugins, and create a new falco namespace.&lt;/p&gt;
&lt;p&gt;Or if you already have Falco deployed in a Kubernetes cluster, you can use the &lt;strong&gt;helm update&lt;/strong&gt; command instead:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ helm update falco --create-namespace --namespace falco --values&lt;span style="color:#666"&gt;=&lt;/span&gt;values.yaml falcosecurity/falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once the Falco pod is ready, run the following command to see the logs:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl logs -l app.kubernetes.io/name&lt;span style="color:#666"&gt;=&lt;/span&gt;falco -n falco -c falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You should see logs like that:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ kubectl logs -l app.kubernetes.io/name&lt;span style="color:#666"&gt;=&lt;/span&gt;falco -n falco -c falco
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Mon Feb &lt;span style="color:#666"&gt;10&lt;/span&gt; 09:15:35 2025: /etc/falco/k8s_audit_rules.yaml | schema validation: ok
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Mon Feb &lt;span style="color:#666"&gt;10&lt;/span&gt; 09:15:35 2025: Hostname value has been overridden via environment variable to: my-pool-1-node-921b61
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Mon Feb &lt;span style="color:#666"&gt;10&lt;/span&gt; 09:15:35 2025: The chosen syscall buffer dimension is: &lt;span style="color:#666"&gt;8388608&lt;/span&gt; bytes &lt;span style="color:#666"&gt;(&lt;/span&gt;&lt;span style="color:#666"&gt;8&lt;/span&gt; MBs&lt;span style="color:#666"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Mon Feb &lt;span style="color:#666"&gt;10&lt;/span&gt; 09:15:35 2025: Starting health webserver with threadiness 2, listening on 0.0.0.0:8765
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Mon Feb &lt;span style="color:#666"&gt;10&lt;/span&gt; 09:15:35 2025: Loaded event sources: syscall, k8s_audit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Mon Feb &lt;span style="color:#666"&gt;10&lt;/span&gt; 09:15:35 2025: Enabled event sources: k8s_audit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Mon Feb &lt;span style="color:#666"&gt;10&lt;/span&gt; 09:15:35 2025: Opening &lt;span style="color:#b44"&gt;&amp;#39;k8s_audit&amp;#39;&lt;/span&gt; &lt;span style="color:#a2f"&gt;source&lt;/span&gt; with plugin &lt;span style="color:#b44"&gt;&amp;#39;k8saudit-ovh&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt;{&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;hostname&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;my-pool-1-node-921b61&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;output&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;09:15:40.698757000: Warning K8s Operation performed by user not in allowed list of users (user=csi-cinder-controller target=csi-6afb06dce281b86b7bab718b5d966dc261b2b1554941ae449519a128cb2e3fb3/volumeattachments verb=patch uri=/apis/storage.k8s.io/v1/volumeattachments/csi-6afb06dce281b86b7bab718b5d966dc261b2b1554941ae449519a128cb2e3fb3/status resp=200)&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;output_fields&amp;#34;&lt;/span&gt;:&lt;span style="color:#666"&gt;{&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;evt.time&amp;#34;&lt;/span&gt;:1739178940698757000,&lt;span style="color:#b44"&gt;&amp;#34;ka.response.code&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;200&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.target.name&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;csi-6afb06dce281b86b7bab718b5d966dc261b2b1554941ae449519a128cb2e3fb3&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.target.resource&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;volumeattachments&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.uri&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;/apis/storage.k8s.io/v1/volumeattachments/csi-6afb06dce281b86b7bab718b5d966dc261b2b1554941ae449519a128cb2e3fb3/status&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.user.name&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;csi-cinder-controller&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.verb&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;patch&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;}&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;priority&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Warning&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;rule&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Disallowed K8s User&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;k8s_audit&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;tags&amp;#34;&lt;/span&gt;:&lt;span style="color:#666"&gt;[&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;k8s&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;]&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;time&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2025-02-10T09:15:40.698757000Z&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt;{&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;hostname&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;my-pool-1-node-921b61&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;output&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;09:15:57.508657000: Warning K8s Operation performed by user not in allowed list of users (user=yacht target=my-pool-1.18051c0a88716868/events verb=patch uri=/api/v1/namespaces/default/events/my-pool-1.18051c0a88716868 resp=403)&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;output_fields&amp;#34;&lt;/span&gt;:&lt;span style="color:#666"&gt;{&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;evt.time&amp;#34;&lt;/span&gt;:1739178957508657000,&lt;span style="color:#b44"&gt;&amp;#34;ka.response.code&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;403&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.target.name&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;my-pool-1.18051c0a88716868&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.target.resource&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;events&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.uri&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;/api/v1/namespaces/default/events/my-pool-1.18051c0a88716868&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.user.name&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;yacht&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.verb&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;patch&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;}&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;priority&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Warning&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;rule&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Disallowed K8s User&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;k8s_audit&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;tags&amp;#34;&lt;/span&gt;:&lt;span style="color:#666"&gt;[&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;k8s&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;]&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;time&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2025-02-10T09:15:57.508657000Z&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt;{&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;hostname&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;my-pool-1-node-921b61&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;output&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;09:15:57.807013000: Warning K8s Operation performed by user not in allowed list of users (user=yacht target=my-pool-1/nodepools verb=update uri=/apis/kube.cloud.ovh.com/v1alpha1/nodepools/my-pool-1/status resp=200)&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;output_fields&amp;#34;&lt;/span&gt;:&lt;span style="color:#666"&gt;{&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;evt.time&amp;#34;&lt;/span&gt;:1739178957807013000,&lt;span style="color:#b44"&gt;&amp;#34;ka.response.code&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;200&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.target.name&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;my-pool-1&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.target.resource&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;nodepools&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.uri&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;/apis/kube.cloud.ovh.com/v1alpha1/nodepools/my-pool-1/status&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.user.name&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;yacht&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.verb&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;update&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;}&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;priority&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Warning&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;rule&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Disallowed K8s User&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;k8s_audit&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;tags&amp;#34;&lt;/span&gt;:&lt;span style="color:#666"&gt;[&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;k8s&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;]&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;time&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2025-02-10T09:15:57.807013000Z&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="let-s-test-it"&gt;Let's test it!&lt;/h2&gt;
&lt;p&gt;In order to test Falco we need to know which rules are installed by default. In our case, as we defined it in the &lt;strong&gt;values.yaml&lt;/strong&gt; file, the k8saudit-ovh plugin follow the &lt;a href="https://github.com/falcosecurity/plugins/blob/main/plugins/k8saudit/rules/k8s_audit_rules.yaml"&gt;k8s_audit_rules.yaml&lt;/a&gt; file. You can take a look at them in order to know them.&lt;/p&gt;
&lt;p&gt;In this blog post we will test one of the well-known default k8s audit 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;rule&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Attach/Exec Pod&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;desc&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&amp;gt;&lt;span style="color:#b44;font-style:italic"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#b44;font-style:italic"&gt; Detect any attempt to attach/exec to a pod&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;condition&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;kevt_started and pod_subresource and (kcreate or kget) and ka.target.subresource in (exec,attach) and not user_known_exec_pod_activities&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;output&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Attach/Exec to pod (user=%ka.user.name pod=%ka.target.name resource=%ka.target.resource ns=%ka.target.namespace action=%ka.target.subresource command=%ka.uri.param[command])&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;priority&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;NOTICE&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;source&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;k8s_audit&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;tags&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[k8s]&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 rule is interesting because an event will be generated if/when an user execute commands in a pod.&lt;/p&gt;
&lt;p&gt;Let’s test the rule!&lt;/p&gt;
&lt;p&gt;In a tab of your terminal, watch the coming logs:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ kubectl logs -l app.kubernetes.io/name&lt;span style="color:#666"&gt;=&lt;/span&gt;falco -n falco -c falco -f
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In an another tab of your terminal, create a Nginx pod and execute a command into it:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ kubectl run nginx --image&lt;span style="color:#666"&gt;=&lt;/span&gt;nginx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ kubectl &lt;span style="color:#a2f"&gt;exec&lt;/span&gt; -it nginx -n hello-app -- cat /etc/shadow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Several seconds laters, in the logs you should see this you will see this Attach/Exec to pod logs:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt;{&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;hostname&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;my-pool-1-node-921b61&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;output&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;09:29:46.302906000: Notice Attach/Exec to pod (user=kubernetes-admin pod=nginx-676b6c5bbc-4xc6t resource=pods ns=hello-app action=exec command=cat)&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;output_fields&amp;#34;&lt;/span&gt;:&lt;span style="color:#666"&gt;{&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;evt.time&amp;#34;&lt;/span&gt;:1739179786302906000,&lt;span style="color:#b44"&gt;&amp;#34;ka.target.name&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;nginx-676b6c5bbc-4xc6t&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.target.namespace&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;hello-app&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.target.resource&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;pods&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.target.subresource&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;exec&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.uri.param[command]&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;cat&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ka.user.name&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;kubernetes-admin&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;}&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;priority&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Notice&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;rule&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Attach/Exec Pod&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;k8s_audit&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;tags&amp;#34;&lt;/span&gt;:&lt;span style="color:#666"&gt;[&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;k8s&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;]&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;time&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2025-02-10T09:29:46.302906000Z&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;💪&lt;/p&gt;
&lt;h2 id="let-s-meet"&gt;Let's meet!&lt;/h2&gt;
&lt;p&gt;If you have planned to go to the KubeCon + CloudNative Con EU 2025 at London, don't hesitate to stop at the Falco booth in the Project Pavillon!&lt;/p&gt;
&lt;p&gt;As always, we meet every week in our &lt;a href="https://github.com/falcosecurity/community"&gt;community calls&lt;/a&gt;,
if you want to know the latest and the greatest you should join us there!&lt;/p&gt;
&lt;p&gt;If you have any questions&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Join the #falco channel on the &lt;a href="https://slack.k8s.io"&gt;Kubernetes Slack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lists.cncf.io/g/cncf-falco-dev"&gt;Join the Falco mailing list&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enjoy 😎,&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Aurélie&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Blog: Falco plugin for collecting AKS audit logs</title><link>https://v0-43--falcosecurity.netlify.app/blog/falco-aks-audit-logs-plugin/</link><pubDate>Sun, 09 Mar 2025 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/blog/falco-aks-audit-logs-plugin/</guid><description>
&lt;p&gt;Troubleshooting Kubernetes events is challenging due to the multitude of data sources involved: container logs, Kubernetes events, cloud logs, and more. Among these sources, Kubernetes audit logs are especially valuable for identifying threats, as every action passing through the Kubernetes API server is recorded there.&lt;/p&gt;
&lt;p&gt;We already provide plugins that let you parse and use Falco to detect threats in audit logs from GKE and EKS clusters. With our latest plugin, you'll now have the same powerful threat detection capabilities for your Azure AKS clusters.&lt;/p&gt;
&lt;h2 id="what-is-falco"&gt;What is Falco?&lt;/h2&gt;
&lt;p&gt;Falco is a Cloud Native Computing Foundation project that provides runtime threat detection. Out of the box, Falco examines syscalls to alert you to any suspicious activity. And, since containers share the same kernel as their host, Falco can monitor not only activity on the host but also activity on all of the containers running on that host. Moreover, Falco pulls data from both Kubernetes and the container runtime to add additional context to its alerts.&lt;/p&gt;
&lt;p&gt;With Falco running on your GKE clusters you can be notified of a wide variety of events, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Did someone start a container with high privileges?&lt;/li&gt;
&lt;li&gt;Has someone shelled into a running container?&lt;/li&gt;
&lt;li&gt;Has an executable been added to the container after it was deployed?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are just a few examples. Falco has over 80 rules that can be used to make you aware of not only external threats but also when clusters aren't being operated in accordance with industry best practices.&lt;/p&gt;
&lt;h2 id="what-is-the-aks-audit-logs-plugin"&gt;What is the AKS audit logs plugin?&lt;/h2&gt;
&lt;p&gt;The AKS audit logs plugin extends Falco's capabilities to Microsoft Azure Kubernetes Service (AKS) clusters, providing you with the same security insights and threat detection Falco already offers for GKE and EKS environments. With this plugin, you can seamlessly integrate AKS audit logs into Falco's event processing pipeline, enabling it to identify anomalies, suspicious activities, and policy violations within your AKS-based workloads.&lt;/p&gt;
&lt;h2 id="using-aks-audit-logs-plugin"&gt;Using AKS audit logs plugin&lt;/h2&gt;
&lt;p&gt;In order to use the AKS audit log plugin, you must first configure your AKS cluster to ship the logs where we can fetch them.&lt;/p&gt;
&lt;p&gt;The current supported output source is Event hub, so when following the &lt;a href="https://learn.microsoft.com/en-us/azure/aks/monitor-aks#aks-control-planeresource-logs"&gt;guide&lt;/a&gt; to configure your AKS audit logs, you must have Eventhub enabled. You can also optionally send it to other sources:
&lt;img src="https://v0-43--falcosecurity.netlify.app/blog/falco-aks-audit-logs-plugin/falco-aks-audit-logs-plugin1.png" alt="aks-audit-logs" loading="lazy" /&gt;
&lt;/p&gt;
&lt;p&gt;Once you have the stream enabled, you must create or reuse a storage account blob container so that the plugin can track the last event that was consumed, which is done trough checkpoints.&lt;/p&gt;
&lt;h2 id="configuring-falco-to-use-aks-audit-logs-plugin"&gt;Configuring Falco to use AKS audit logs plugin&lt;/h2&gt;
&lt;p&gt;First, using &lt;a href="https://github.com/falcosecurity/falcoctl"&gt;falcoctl&lt;/a&gt;, download the plugin:&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;sudo falcoctl artifact install k8saudit-aks&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;In your falco.yaml file, you must add the plugin configuration and later enable the plugin&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;config_files&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:#bbb"&gt; &lt;/span&gt;- /etc/falco/config.d&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:#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;watch_config_files&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:#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;plugins&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:#080;font-style:italic"&gt;# - name: k8saudit&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:#080;font-style:italic"&gt;# library_path: libk8saudit.so&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:#080;font-style:italic"&gt;# init_config: &amp;#34;&amp;#34;&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:#080;font-style:italic"&gt;# open_params: &amp;#34;http://:9765/k8s-audit&amp;#34;&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:#080;font-style:italic"&gt;# - name: json&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:#080;font-style:italic"&gt;# library_path: libjson.so&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:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;k8saudit-aks&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;library_path&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;libk8saudit-aks.so&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;init_config&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;event_hub_name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;${EVENTHUB_NAME}&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;blob_storage_container_name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;${BLOB_STORAGE_CONTAINER_NAME}&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;event_hub_namespace_connection_string&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;${EVENTHUB_NAMESPACE_CONNECTION_STRING}&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;blob_storage_connection_string&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;${BLOB_STORAGE_CONNECTION_STRING}&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:#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;load_plugins&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[k8saudit-aks]&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:#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;stdout_output&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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;Once they are exported, run Falco and after some seconds you'll logs informing the k8saudit-aks plugin was loaded:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;falco -c /etc/falco/falco.yaml -r /etc/falco/falco_rules.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&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-t" data-lang="t"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Tue Dec &lt;span style="color:#666"&gt;17&lt;/span&gt; &lt;span style="color:#666"&gt;18&lt;/span&gt;:&lt;span style="color:#666"&gt;02&lt;/span&gt;:&lt;span style="color:#666"&gt;07&lt;/span&gt; &lt;span style="color:#666"&gt;2024&lt;/span&gt;: Opening &lt;span style="color:#b44"&gt;&amp;#39;k8s_audit&amp;#39;&lt;/span&gt; source with plugin &lt;span style="color:#b44"&gt;&amp;#39;k8saudit-aks&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt;2024&lt;/span&gt;&lt;span style="color:#b68"&gt;/12/&lt;/span&gt;&lt;span style="color:#666"&gt;17&lt;/span&gt; &lt;span style="color:#666"&gt;21&lt;/span&gt;:&lt;span style="color:#666"&gt;02&lt;/span&gt;:&lt;span style="color:#666"&gt;07&lt;/span&gt; [k8saudit&lt;span style="color:#666"&gt;-&lt;/span&gt;aks] opened connection to blob storage
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt;2024&lt;/span&gt;&lt;span style="color:#b68"&gt;/12/&lt;/span&gt;&lt;span style="color:#666"&gt;17&lt;/span&gt; &lt;span style="color:#666"&gt;21&lt;/span&gt;:&lt;span style="color:#666"&gt;02&lt;/span&gt;:&lt;span style="color:#666"&gt;07&lt;/span&gt; [k8saudit&lt;span style="color:#666"&gt;-&lt;/span&gt;aks] opened blob checkpoint connection
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt;2024&lt;/span&gt;&lt;span style="color:#b68"&gt;/12/&lt;/span&gt;&lt;span style="color:#666"&gt;17&lt;/span&gt; &lt;span style="color:#666"&gt;21&lt;/span&gt;:&lt;span style="color:#666"&gt;02&lt;/span&gt;:&lt;span style="color:#666"&gt;07&lt;/span&gt; [k8saudit&lt;span style="color:#666"&gt;-&lt;/span&gt;aks] opened consumer client
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt;2024&lt;/span&gt;&lt;span style="color:#b68"&gt;/12/&lt;/span&gt;&lt;span style="color:#666"&gt;17&lt;/span&gt; &lt;span style="color:#666"&gt;21&lt;/span&gt;:&lt;span style="color:#666"&gt;02&lt;/span&gt;:&lt;span style="color:#666"&gt;07&lt;/span&gt; [k8saudit&lt;span style="color:#666"&gt;-&lt;/span&gt;aks] created eventhub processor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="testing-out"&gt;Testing out!&lt;/h2&gt;
&lt;p&gt;Append rule to &lt;strong&gt;falco_rules.yaml&lt;/strong&gt; file:&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;rule&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;K8s Audit Event Detected&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;desc&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;A test rule that detects any Kubernetes audit event&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;condition&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;ka.req exists&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;output&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;K8s Audit Event Detected: %ka.req&amp;#34;&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;priority&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;DEBUG&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;source&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;k8s_audit&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;tags&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[testing, k8s_audit]&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;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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ falco -c /etc/falco/falco.yaml -r /etc/falco/falco_rules.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then, you should see initialization message, followed by some events from your AKS cluster. Since we have debug enabled, you should see some events from the aksService:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Thu Dec 19 11:44:55 2024: Falco version: 0.39.2 (aarch64)
Thu Dec 19 11:44:55 2024: Falco initialized with configuration files:
Thu Dec 19 11:44:55 2024: /etc/falco/config.d/engine-kind-falcoctl.yaml | schema validation: ok
Thu Dec 19 11:44:55 2024: /etc/falco/falco.yaml | schema validation: ok
Thu Dec 19 11:44:55 2024: System info: Linux version 6.8.0-51-generic (buildd@bos03-arm64-031) (aarch64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #52-Ubuntu SMP PREEMPT_DYNAMIC Thu Dec 5 13:32:09 UTC 2024
Thu Dec 19 11:44:55 2024: Loading plugin &amp;#39;k8saudit-aks&amp;#39; from file /usr/share/falco/plugins/libk8saudit-aks.so
Thu Dec 19 11:44:55 2024: Loading plugin &amp;#39;json&amp;#39; from file /usr/share/falco/plugins/libjson.so
Thu Dec 19 11:44:55 2024: Loading rules from:
Thu Dec 19 11:44:55 2024: /etc/falco/falco_rules.yaml | schema validation: ok
Thu Dec 19 11:44:55 2024: /etc/falco/falco_rules.local.yaml | schema validation: none
Thu Dec 19 11:44:55 2024: /etc/falco/falco_aks_audit.yaml | schema validation: ok
Thu Dec 19 11:44:55 2024: The chosen syscall buffer dimension is: 8388608 bytes (8 MBs)
Thu Dec 19 11:44:55 2024: Starting health webserver with threadiness 4, listening on 0.0.0.0:8765
Thu Dec 19 11:44:55 2024: Loaded event sources: syscall, k8s_audit
Thu Dec 19 11:44:55 2024: Enabled event sources: k8s_audit, syscall
Thu Dec 19 11:44:55 2024: Opening &amp;#39;k8s_audit&amp;#39; source with plugin &amp;#39;k8saudit-aks&amp;#39;
2024/12/19 14:44:55 [k8saudit-aks] opened connection to blob storage
2024/12/19 14:44:55 [k8saudit-aks] opened blob checkpoint connection
2024/12/19 14:44:55 [k8saudit-aks] opened consumer client
2024/12/19 14:44:55 [k8saudit-aks] created eventhub processor
Thu Dec 19 11:44:55 2024: Opening &amp;#39;syscall&amp;#39; source with modern BPF probe.
Thu Dec 19 11:44:55 2024: One ring buffer every &amp;#39;2&amp;#39; CPUs.
&lt;/code&gt;&lt;/pre&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;10:52:03.348668000: Debug K8s Audit Event Detected&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;verb=create, user=aksService, groups=(system:masters,system:authenticated), target=&amp;lt;NA&amp;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;h2 id="let-s-meet"&gt;Let's meet!&lt;/h2&gt;
&lt;p&gt;As always, we meet every week in our &lt;a href="https://github.com/falcosecurity/community"&gt;community calls&lt;/a&gt;,
if you want to know the latest and the greatest you should join us there!&lt;/p&gt;
&lt;p&gt;If you have any questions&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Join the #falco channel on the &lt;a href="https://slack.k8s.io"&gt;Kubernetes Slack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lists.cncf.io/g/cncf-falco-dev"&gt;Join the Falco mailing list&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enjoy 😎,&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Igor&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Blog: How to Deploy Falco with k8s-metacollector + k8smeta Plugin</title><link>https://v0-43--falcosecurity.netlify.app/blog/falco-k8smeta-plugin/</link><pubDate>Mon, 14 Oct 2024 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/blog/falco-k8smeta-plugin/</guid><description>
&lt;p&gt;In today's cloud-native world, securing Kubernetes environments has become increasingly critical as containerized workloads gain complexity. Falco is designed to monitor and detect anomalous activities in Kubernetes clusters and container environments. By continuously observing system calls and enriching event data with metadata, Falco ensures that any suspicious behavior is detected in real-time, protecting against threats like privilege escalations, file tampering, and network anomalies.&lt;/p&gt;
&lt;p&gt;In this tutorial, we will guide you through deploying Falco with two powerful components: &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt; and the &lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt;. These tools significantly enhance Falco’s security event detection by adding important Kubernetes context, such as pod names, namespaces, deployment details, to the alerts.
Additionally, we will explore how to leverage the new &lt;a href="https://falco.org/docs/outputs/formatting/#appending-extra-output-and-fields-with-append-output"&gt;append_output&lt;/a&gt; feature introduced in Falco version &lt;a href="https://github.com/falcosecurity/falco/releases/tag/0.39.0"&gt;0.39.0&lt;/a&gt;. This feature allows you to append extra metadata fields to Falco’s output, without the need to modify your &lt;a href="https://github.com/falcosecurity/rules"&gt;rules&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;By the end of this guide, you will have a Falco setup capable of detecting security issues in Kubernetes with enriched metadata output, ensuring you get a complete picture of your cluster’s security posture. Whether you're an experienced Kubernetes administrator or just starting to explore container security, this guide will help you make the most of Falco's capabilities in a Kubernetes environment.&lt;/p&gt;
&lt;h3 id="what-you-ll-learn"&gt;What You'll Learn:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The purpose and benefits of using the &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt; and
&lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt; to enrich Falco alerts with Kubernetes-specific data.&lt;/li&gt;
&lt;li&gt;How to deploy Falco with the &lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt;
on a Kubernetes cluster.&lt;/li&gt;
&lt;li&gt;How to configure and use the &lt;a href="https://falco.org/docs/outputs/formatting/#appending-extra-output-and-fields-with-append-output"&gt;append_output&lt;/a&gt; feature to enhance Falco alerts with additional metadata fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="prerequisites"&gt;Prerequisites:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;a href="https://falco.org/docs/getting-started/learning-environments/"&gt;working Kubernetes cluster&lt;/a&gt; and some familiarity with Kubernetes concepts.&lt;/li&gt;
&lt;li&gt;Basic knowledge of Falco and how it works.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://helm.sh/"&gt;Helm&lt;/a&gt; installed on your system (for easy deployment of Falco).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let’s dive in and set up a Falco deployment that will give you deeper security insights for your Kubernetes workloads.&lt;/p&gt;
&lt;h2 id="step-1-understanding-k8s-metacollector-and-k8smeta-plugin"&gt;Step 1: Understanding k8s-metacollector and k8smeta Plugin&lt;/h2&gt;
&lt;p&gt;As Kubernetes has become the de facto platform for orchestrating containerized applications, it’s important to gain full visibility into what's happening within your cluster, especially when it comes to security monitoring. Falco can detect suspicious activities based on system calls, but to make these alerts more actionable, additional context about your Kubernetes resources (such as pod names, namespaces, and labels) is invaluable.&lt;/p&gt;
&lt;p&gt;That’s where the &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt;and &lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt; come in.&lt;/p&gt;
&lt;h3 id="what-is-the-k8s-metacollector"&gt;What is the k8s-metacollector?&lt;/h3&gt;
&lt;p&gt;The &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt; is responsible for gathering Kubernetes metadata for security events and sending that
information to Falco. It collects key information for different resources from your Kubernetes cluster, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pods;&lt;/li&gt;
&lt;li&gt;Namespaces;&lt;/li&gt;
&lt;li&gt;ReplicaSets;&lt;/li&gt;
&lt;li&gt;Services;&lt;/li&gt;
&lt;li&gt;Deployments;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The collected metadata provides greater clarity about where and why certain events are happening, which is crucial for pinpointing and mitigating security incidents in large-scale Kubernetes environments. Without this context, security alerts may lack the detail needed for quick and effective response.&lt;/p&gt;
&lt;h3 id="what-is-the-k8smeta-plugin"&gt;What is the k8smeta Plugin?&lt;/h3&gt;
&lt;p&gt;The &lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt; is a source plugin for Falco that works in tandem with the &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt;. While Falco
generates alerts based on detected anomalies, the &lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt; enriches these alerts with Kubernetes-specific
metadata, which allows you to understand exactly which Kubernetes entities (pods, deployments, namespaces) are
involved in the detected event. This context is vital when you're trying to correlate security incidents with the resources they affect.&lt;/p&gt;
&lt;p&gt;Key benefits of the k8smeta plugin include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enriched Alerts: Falco alerts become more informative with Kubernetes-specific data like pod names, namespaces,
and deployment names.&lt;/li&gt;
&lt;li&gt;Improved Debugging: Knowing exactly which pod or namespace is involved in an alert can significantly reduce the time spent debugging and fixing security issues.&lt;/li&gt;
&lt;li&gt;Event Correlation: The plugin makes it easier to correlate low-level system events with higher-level Kubernetes concepts, providing a clearer view of what's happening in your cluster.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By using the &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt; and &lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt; together, you transform Falco’s raw system call data into rich, actionable insights that give you full visibility into your Kubernetes environment.&lt;/p&gt;
&lt;h2 id="step-2-installing-falco-k8s-metacollector-and-k8smeta-plugin-with-helm-and-configuring-append-output"&gt;Step 2: Installing Falco, k8s-metacollector, and k8smeta Plugin with Helm and Configuring append_output&lt;/h2&gt;
&lt;p&gt;Deploying Falco along with the &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt; and the &lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt; using Helm is a seamless process. This step will guide you through adding the Falco Security Helm chart repository, installing Falco, enabling the k8s-metacollector, and configuring the &lt;a href="https://falco.org/docs/outputs/formatting/#appending-extra-output-and-fields-with-append-output"&gt;append_output&lt;/a&gt; feature to append Kubernetes metadata to Falco alerts.&lt;/p&gt;
&lt;h3 id="step-2-1-add-the-falco-helm-chart-repository"&gt;Step 2.1: Add the Falco Helm Chart Repository&lt;/h3&gt;
&lt;p&gt;Before you install Falco, you need to add the official Falco Security Helm chart repository to your Helm setup. Run the following command:&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-bash" data-lang="bash"&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Update your local Helm repositories to ensure you’re using the latest chart version:&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-bash" data-lang="bash"&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;h3 id="step-2-2-install-falco-with-k8s-metacollector-and-append-output"&gt;Step 2.2: Install Falco with k8s-metacollector and append_output&lt;/h3&gt;
&lt;p&gt;With the repository added, use the following command which includes the additional settings to enable the collection
of Kubernetes metadata and to append this metadata to Falco alerts:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm install falco falcosecurity/falco &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; --version 4.11.1 &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 falco &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 collectors.kubernetes.enabled&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#a2f"&gt;true&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 &lt;span style="color:#b8860b"&gt;tty&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#a2f"&gt;true&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-json &lt;span style="color:#b44"&gt;&amp;#39;falco.append_output=[{&amp;#34;match&amp;#34;: {&amp;#34;source&amp;#34;: &amp;#34;syscall&amp;#34;},&amp;#34;extra_output&amp;#34;: &amp;#34;pod_uid=%k8smeta.pod.uid, pod_name=%k8smeta.pod.name, namespace_name=%k8smeta.ns.name&amp;#34;}]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Breaking Down the Command:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;helm install falco falcosercurity/falco&lt;/code&gt;: Installs Falco using the latest chart from the Falco Security repository.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--version 4.11.1&lt;/code&gt;: Uses the &lt;code&gt;4.11.1&lt;/code&gt; version of the chart. At the writing time it's the latest version.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--namespace falco&lt;/code&gt;: Deploys Falco into the falco namespace. This helps keep Falco’s resources organized separately
from other applications.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--create-namespace&lt;/code&gt;: Automatically creates the falco namespace if it doesn’t already exist.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--set collectors.kubernetes.enabled=true&lt;/code&gt;: Enables the &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt; and configures the &lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--set tty=true&lt;/code&gt;: Ensures that Falco logs are emitted as soon as possible.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--set-json 'falco.append_output=...'&lt;/code&gt;: Configures the &lt;a href="https://falco.org/docs/outputs/formatting/#appending-extra-output-and-fields-with-append-output"&gt;append_output&lt;/a&gt; feature to append specific Kubernetes metadata fields to Falco’s alerts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="why-use-the-append-output-feature"&gt;Why Use the append_output Feature?&lt;/h4&gt;
&lt;p&gt;The &lt;a href="https://falco.org/docs/outputs/formatting/#appending-extra-output-and-fields-with-append-output"&gt;append_output&lt;/a&gt; feature allows you to enrich Falco alerts with additional metadata, providing a clearer view of which Kubernetes resources are involved in each security event. This context helps security teams quickly understand the severity and scope of an incident.&lt;/p&gt;
&lt;p&gt;For example, an alert will now include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pod_uid&lt;/code&gt;: To precisely identify the pod.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pod_name&lt;/code&gt;: To know which pod triggered the alert.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;namespace_name&lt;/code&gt;: Namespace where the pod is running.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="step-2-3-verifying-the-installation"&gt;Step 2.3: Verifying the Installation&lt;/h3&gt;
&lt;p&gt;Once the installation is complete, you can verify that Falco and the &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt; are working as expected by
checking the status of the Falco pod in the Falco namespace:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl get pods -n falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You should see the Falco pods running successfully.&lt;/p&gt;
&lt;h2 id="step-3-testing-the-setup"&gt;Step 3: Testing the Setup&lt;/h2&gt;
&lt;p&gt;Now that everything is in place, it's time to test the setup by deploying a simple Nginx pod and triggering Falco to
generate security alerts enriched with Kubernetes metadata.&lt;/p&gt;
&lt;h3 id="step-3-1-deploy-an-nginx-pod"&gt;Step 3.1: Deploy an Nginx Pod&lt;/h3&gt;
&lt;p&gt;To create some activity that Falco can monitor, start by deploying an Nginx pod in the falco namespace:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl run nginx --image&lt;span style="color:#666"&gt;=&lt;/span&gt;nginx --namespace falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This command will launch an Nginx container in the falco namespace.&lt;/p&gt;
&lt;h3 id="step-3-2-wait-for-the-nginx-pod-to-run"&gt;Step 3.2: Wait for the Nginx Pod to Run&lt;/h3&gt;
&lt;p&gt;Confirm that the Nginx pod is up and running by checking its status:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl get pods -n falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once the pod is in the Running state, you can proceed to the next step.&lt;/p&gt;
&lt;h3 id="step-3-3-exec-into-the-nginx-pod-to-trigger-alerts"&gt;Step 3.3: Exec Into the Nginx Pod to Trigger Alerts&lt;/h3&gt;
&lt;p&gt;Exec into the running Nginx pod to simulate an interactive terminal session, which is something Falco is configured to detect:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl &lt;span style="color:#a2f"&gt;exec&lt;/span&gt; -it nginx -n falco -- /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This command opens a shell session inside the Nginx container. Inside the container, run some basic commands like ls or echo to generate system calls that Falco can monitor.&lt;/p&gt;
&lt;h3 id="step-3-4-check-falco-logs-for-alerts"&gt;Step 3.4: Check Falco Logs for Alerts&lt;/h3&gt;
&lt;p&gt;After executing inside the Nginx pod, check the Falco logs to see if any alerts were triggered by the kubectl exec action:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl logs -n falco -l app.kubernetes.io/name&lt;span style="color:#666"&gt;=&lt;/span&gt;falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In the logs, you should see alerts related to the interactive terminal session such as:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;13:18:57.434030270: Notice A shell was spawned in a container with an attached terminal &lt;span style="color:#666"&gt;(&lt;/span&gt;&lt;span style="color:#b8860b"&gt;evt_type&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;execve &lt;span style="color:#b8860b"&gt;user&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;root &lt;span style="color:#b8860b"&gt;user_uid&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#666"&gt;0&lt;/span&gt; &lt;span style="color:#b8860b"&gt;user_loginuid&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;-1 &lt;span style="color:#b8860b"&gt;process&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;bash &lt;span style="color:#b8860b"&gt;proc_exepath&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;/usr/bin/bash &lt;span style="color:#b8860b"&gt;parent&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;containerd-shim &lt;span style="color:#b8860b"&gt;command&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;bash &lt;span style="color:#b8860b"&gt;terminal&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#666"&gt;34816&lt;/span&gt; &lt;span style="color:#b8860b"&gt;exe_flags&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;EXE_WRITABLE|EXE_LOWER_LAYER &lt;span style="color:#b8860b"&gt;container_id&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;7cff9da475c6 &lt;span style="color:#b8860b"&gt;container_image&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;docker.io/library/nginx &lt;span style="color:#b8860b"&gt;container_image_tag&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;latest &lt;span style="color:#b8860b"&gt;container_name&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;nginx &lt;span style="color:#b8860b"&gt;k8s_ns&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;falco &lt;span style="color:#b8860b"&gt;k8s_pod_name&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;nginx&lt;span style="color:#666"&gt;)&lt;/span&gt; &lt;span style="color:#b8860b"&gt;pod_uid&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;2f20370c-6e0b-44b8-8ea1-2aa786d80f13, &lt;span style="color:#b8860b"&gt;pod_name&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;nginx, &lt;span style="color:#b8860b"&gt;namespace_name&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This confirms that Falco is properly configured to detect activity inside the pod and append useful Kubernetes metadata to the alerts.&lt;/p&gt;
&lt;h2 id="key-takeaways"&gt;Key Takeaways:&lt;/h2&gt;
&lt;p&gt;In this tutorial, we explored how to deploy Falco with the &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt; and &lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt; to enhance security monitoring in a Kubernetes environment. By enabling Falco’s &lt;a href="https://falco.org/docs/outputs/formatting/#appending-extra-output-and-fields-with-append-output"&gt;append_output&lt;/a&gt; feature, we were able to enrich security alerts with vital Kubernetes metadata such as pod UID, pod name, and namespace, making the alerts more actionable and informative.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Enhanced Alert Context: By appending Kubernetes metadata, you get more contextualized and meaningful alerts,
enabling better incident investigation and faster resolution.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Seamless Integration: Thanks to Helm, deploying Falco alongside the &lt;a href="https://github.com/falcosecurity/k8s-metacollector"&gt;k8s-metacollector&lt;/a&gt; and &lt;a href="https://github.com/falcosecurity/plugins/tree/main/plugins/k8smeta"&gt;k8smeta plugin&lt;/a&gt; is
easy and efficient, requiring just a few simple commands.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Real-Time Threat Detection: Falco continuously monitors system calls and Kubernetes events in real-time, ensuring
that you’re always aware of potentially suspicious or malicious activities within your cluster.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Blog: Track the Bitcoin transactions with Falco</title><link>https://v0-43--falcosecurity.netlify.app/blog/track-the-bitcoin-transactions-with-falco/</link><pubDate>Wed, 13 Mar 2024 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/blog/track-the-bitcoin-transactions-with-falco/</guid><description>
&lt;p&gt;The number of plugins available for Falco continues to grow thanks to our wonderful community. Thank you all for your help!&lt;/p&gt;
&lt;p&gt;You can find the list of available plugins &lt;a href="https://github.com/falcosecurity/plugins?tab=readme-ov-file#registered-plugins"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The vast majority of plugins developed allow Falco to ingest logs from different sources and raise alerts when suspicious elements are identified by its rules. In order to show that any event stream can be a source if you have the right plugin, and to have something fun to show users during my talks, I developed a Falco plugin to track Bitcoin transactions.&lt;/p&gt;
&lt;h2 id="how-does-it-work"&gt;How does it work?&lt;/h2&gt;
&lt;p&gt;I discovered the site &lt;a href="https://www.blockchain.com/"&gt;https://www.blockchain.com/&lt;/a&gt; exposes a public flux, accessible via a &lt;a href="https://www.blockchain.com/fr/explorer/api/api_websocket"&gt;websocket&lt;/a&gt;, by subscribing to it you can retrieve transactions carried out on the blockchain in real time. This is perfect for a Falco plugin as it allows you to test the ingestion of events via a websocket, and serve as a basis for other plugins.&lt;/p&gt;
&lt;p&gt;I am not going to describe the internal workings of the plugin here, nor how it was developed. If you are interested, you can look at the code &lt;a href="https://github.com/Issif/bitcoin-plugin"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Alternatively, read our documentation explaining how to create a plugin from A to Z: &lt;a href="https://falco.org/docs/concepts/plugins/developers-guide/how-to-develop/"&gt;https://falco.org/docs/concepts/plugins/developers-guide/how-to-develop/&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="default-rules"&gt;Default rules&lt;/h2&gt;
&lt;p&gt;The plugin comes with its default set of rules, we will use them as a working example.
You are free to play with it for your own needs, such as monitoring suspicious movements of your wallet.&lt;/p&gt;
&lt;p&gt;You can find the Falco rules file provided &lt;a href="https://github.com/Issif/bitcoin-plugin/tree/main/rules"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="installation-of-the-plugin"&gt;Installation of the plugin&lt;/h2&gt;
&lt;p&gt;We will see the 3 classic ways to install the plugin:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;via sources&lt;/li&gt;
&lt;li&gt;with falcoctl&lt;/li&gt;
&lt;li&gt;in kubernetes via Helm&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="via-sources"&gt;Via sources&lt;/h3&gt;
&lt;p&gt;The prerequisites are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Golang &amp;gt;= 1.19&lt;/li&gt;
&lt;li&gt;make&lt;/li&gt;
&lt;li&gt;Falco &amp;gt;= 0.36&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We will start by installing download the sources, build and install the plugin:&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;git clone https://github.com/Issif/bitcoin-plugin.git
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f"&gt;cd&lt;/span&gt; bitcoin-plugin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo make install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We will create a &lt;code&gt;falco.yaml&lt;/code&gt; file containing:&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;plugins&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:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;bitcoin&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;library_path&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;/usr/share/falco/plugins/libbitcoin.so&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;init_config&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#39;&amp;#39;&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;open_params&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#39;&amp;#39;&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:#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;load_plugins&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[bitcoin]&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:#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;stdout_output&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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;The plugin comes with a default set of rules which will be sufficient for testing. All that remains is to start Falco with this command:&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;sudo falco -c falco.yaml -r rules/bitcoin_rules.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&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;14:44:21.721357000: Notice The wallet bc1qfpeps3wcmzk422hvm5jeq5lelnqlzznjwyfy69 sent 96.78318104 BTC to &lt;span style="color:#666"&gt;(&lt;/span&gt;bc1q4hwcl377ereljtyn2t7ljdrh9umyxz5uuyl3qn,bc1qfpeps3wcmzk422hvm5jeq5lelnqlzznjwyfy69&lt;span style="color:#666"&gt;)&lt;/span&gt; in the transaction aab62fd0b529cd9da163508ba879d488ff64cce4c130caf6c8bd21ab1701ed46
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;14:44:27.020379000: Notice The wallet bc1qwk9hqnckv0ryhsnsdefcsmlpn3zx7uq3agdsw9 sent 68.68462728 BTC to &lt;span style="color:#666"&gt;(&lt;/span&gt;bc1qg0nkd5nckxvwlslf6lznukgat2vukrnrrcwjcv&lt;span style="color:#666"&gt;)&lt;/span&gt; in the transaction 734526413f6e3eefdf4adc4258e01375ccc145b9d02b7e0ab45517be0f57e7d9
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;14:44:29.393013000: Notice The wallet bc1qm34lsc65zpw79lxes69zkqmk6ee3ewf0j77s3h sent 14.94446421 BTC to &lt;span style="color:#666"&gt;(&lt;/span&gt;3F9e4JvPryCxC5A6TS4VHeT2EJSK2ivjBV,bc1qm34lsc65zpw79lxes69zkqmk6ee3ewf0j77s3h,bc1qaeq3z2edsuspt82qw7uflg0k860clxs7qjhrh0,bc1qnvhjvpa6gaglrg9lxg7w68ye8jdjcj2nk08y20,bc1q22hp7n28whk5h94z93vm05hfx2zxs8ca9gglk7,bc1qe9yxu2myqvt3kegknzj45u704dhtapwy7lxhnv,bc1qye5rp8pcqt4ej3nsz70c3lngacmew2fc4tfljd,bc1qcfqke8as8y08mkclcun9r3hlq4xl5za2vz3n2p,bc1qtqkjq4wq234netyucg247sm6nge9qu7m2fd28g,12Q4AHgzFmKWmY1Z2LEohMoxLVhvCAKsNV,3EyJiePQX4BUt8XXaAG3JmfhwB7cQ8ggp6,bc1q36ary7yaf2eeg6006h4m33drsgw4xa3pu6yvnn,13ybpB8kTgk8bCsnRrpyemNZdE2PJSHMEs,135dx8ncZzWSjhre8ecGG1yenmLwvNZPz4,3Nzr6LAJXstT8ET2CAGMH6h5vfgrh7Q94g,bc1qjhrhwpyc0z8zh6v22vhf5arzf6vcr47tgtkj5a,bc1qpxlsyrcmwuf2rk52emvfe0dvugphzzkxlyzvxv,bc1qf23j9ls2axtl6shpry40l4qat5c695x40vpfm8,bc1qsxsdunam68jkeuu7c3mplza4h74nrjhhu9w7dl,32e54ctKqWXfzKpdNKcCBBdsRoFHKoLijH,bc1qw2gafqcg2267xm2t0r4gfzu7ff392e2vl6s3zc,bc1qc0dwh27y56yajhz0k039j5p7xkwfjprhz7rfkq,3D493LGN6PchbRPtnJQo6dSUTLB8u5vN3i,3DhzjabzhAXTBU9vksNdBZFhZzMYzK7vix,18ex2LKyiLpjaSQStY1CLNbLbSToRkJAy6,bc1q3jvuvkvpukp0mnksfmpvnqq in the transaction 40c33db54610869c75b101431690e73b584b8cc77802eea76fa2d41bbb615852
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;14:44:29.395043000: Notice The wallet 3Hi5VHVgmYZYfAPc9aNvQoNXyEv5rYvJQN sent 50.00000000 BTC to &lt;span style="color:#666"&gt;(&lt;/span&gt;bc1q582qfqtlvfv038jf6k6s6xvd30we7x66katshx,bc1q6j3gxn68m5pkzhtytn3h464kgjnvce79x8nmwq,bc1qmxaaz6g07re55ekmtlmtrc5kj0kpj3lngy5y60,1CPjdsfkqiW6LB2ZNTDYczjKCzPpiJZ4Ci,1JtUKazSgYN6hCM7HPkvzL7JLVXwkL4stN,3GzfFtGVte95ZMFfQsrz3FFgFDHU8Zw6gS,bc1qcyl4sxkczex6gxldrfmfdctr2qsun4cgpufz8j,bc1q0realpv9h4zp3yhdwjeg78njqg97f9sm6ex3xrw8mkrz8g6qamsqua6tcw&lt;span style="color:#666"&gt;)&lt;/span&gt; in the transaction 3025c4566dc6cd6452c0c9ae6dc8cff9583df4530326b29e38e0a5e763a6c1c9
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;14:44:32.577196000: Notice The wallet bc1qfpeps3wcmzk422hvm5jeq5lelnqlzznjwyfy69 sent 96.43310490 BTC to &lt;span style="color:#666"&gt;(&lt;/span&gt;bc1qzrzhnlaru0pqmcxwm80vvvsqpdll9g6t39y686,bc1qfpeps3wcmzk422hvm5jeq5lelnqlzznjwyfy69&lt;span style="color:#666"&gt;)&lt;/span&gt; in the transaction 1083e02c554454db4dcff02f7418198aae5b563c4ec286b4c3ae4d30e649e8d5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;14:44:32.577917000: Notice The wallet bc1qvruk6nhq5rz7whvx9cz6peqrp3nrutae59d63q sent 13.48137244 BTC to &lt;span style="color:#666"&gt;(&lt;/span&gt;1EtV3erwXxeKLhCvXq1BwKit7pMcB5BDvV,bc1qxgepulgdkjju7s8el6932m57svej5uzfvx7207&lt;span style="color:#666"&gt;)&lt;/span&gt; in the transaction 3e000a5745d7d5b6d2791bff75b9045696c2bea497363e845593ac249cc194b5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We can clearly see transactions (sending and receiving) for amounts exceeding 1 BTC appearing in real time.&lt;/p&gt;
&lt;h3 id="with-falcoctl"&gt;With falcoctl&lt;/h3&gt;
&lt;p&gt;The prerequisites are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Falco &amp;gt;= 0.36&lt;/li&gt;
&lt;li&gt;Falcoctl &amp;gt;= 0.6&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Falcoctl is the CLI tool that we developed to facilitate the installation of artifacts around Falco, such as rules and plugins. To find out more, &lt;a href="https://falco.org/blog/falcoctl-install-manage-rules-plugins/"&gt;here&lt;/a&gt; is a blog article about it.&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;sudo falcoctl index add bitcoin https://raw.githubusercontent.com/Issif/bitcoin-plugin/main/index.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo falcoctl artifact install bitcoin-rules:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Both the plugin and the rules will be downloaded thanks to the dependency:&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; INFO Reading all configured index files from &lt;span style="color:#b44"&gt;&amp;#34;/root/.config/falcoctl/indexes.yaml&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Resolving dependencies ...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Installing the following artifacts: &lt;span style="color:#666"&gt;[&lt;/span&gt;ghcr.io/issif/bitcoin-plugin/ruleset/bitcoin:latest bitcoin:0.2.0&lt;span style="color:#666"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Preparing to pull &lt;span style="color:#b44"&gt;&amp;#34;ghcr.io/issif/bitcoin-plugin/ruleset/bitcoin:latest&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Pulling 8758e31efdff: &lt;span style="color:#080;font-style:italic"&gt;############################################# 100%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Pulling 326b3ec82baf: &lt;span style="color:#080;font-style:italic"&gt;############################################# 100%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Pulling 8aec149e9934: &lt;span style="color:#080;font-style:italic"&gt;############################################# 100%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Artifact successfully installed in &lt;span style="color:#b44"&gt;&amp;#34;/etc/falco&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Preparing to pull &lt;span style="color:#b44"&gt;&amp;#34;ghcr.io/issif/bitcoin-plugin/plugin/bitcoin:0.2.0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Pulling e7f990e1e4e6: &lt;span style="color:#080;font-style:italic"&gt;############################################# 100%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Pulling 0dfca1bb2434: &lt;span style="color:#080;font-style:italic"&gt;############################################# 100%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Pulling f269eb62cbf6: &lt;span style="color:#080;font-style:italic"&gt;############################################# 100%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; INFO Artifact successfully installed in &lt;span style="color:#b44"&gt;&amp;#34;/usr/share/falco/plugins&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;As with the installation via sources, the falco.org file should look like:&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;plugins&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:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;bitcoin&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;library_path&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;/usr/share/falco/plugins/libbitcoin.so&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;init_config&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#39;&amp;#39;&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;open_params&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#39;&amp;#39;&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:#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;load_plugins&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[bitcoin]&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:#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;stdout_output&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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;And Falco will be started by the command:&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;sudo falco -c falco.yaml -r /etc/falco/bitcoin_rules.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="in-kubernetes-via-helm"&gt;In Kubernetes via Helm&lt;/h3&gt;
&lt;p&gt;The prerequisites are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Helm&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The installation will consist of just adapting the values ​​in the values.yaml file. Everything will be automatically managed by the templates:&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;tty&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;kubernetes&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:#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;falco&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;rules_files&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:#bbb"&gt; &lt;/span&gt;- /etc/falco/bitcoin_rules.yaml&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;plugins&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:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;bitcoin&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;library_path&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;libbitcoin.so&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;load_plugins&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[bitcoin]&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:#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;falcosidekick&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;webui&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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:#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;driver&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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;collectors&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;enabled&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:#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;controller&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;kind&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;deployment&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;deployment&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;replicas&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#666"&gt;1&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:#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;falcoctl&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;config&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;indexes&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:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;bitcoin&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;url&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;https://raw.githubusercontent.com/Issif/bitcoin-plugin/main/index.yaml&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;artifact&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;install&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;refs&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;bitcoin:0&amp;#34;&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;follow&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;refs&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;bitcoin-rules:0&amp;#34;&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;And the classic Helm command for installation:&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 falco-bitcoin -n falco falcosecurity/falco -f values.yaml --create-namespace
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After a few seconds, you should have the pod running:&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;❯ kubectl get pods -n falco -l app.kubernetes.io/instance&lt;span style="color:#666"&gt;=&lt;/span&gt;falco-bitcoin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;NAME READY STATUS RESTARTS AGE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;falco-bitcoin-7474fbfcb5-srgsg 2/2 Running &lt;span style="color:#666"&gt;110&lt;/span&gt; &lt;span style="color:#666"&gt;(&lt;/span&gt;17m ago&lt;span style="color:#666"&gt;)&lt;/span&gt; 10d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And new events in falcosidekick-ui:&lt;/p&gt;
&lt;p&gt;&lt;img src="images/bitcoin-events-falcosidekick-ui.png" alt="" loading="lazy" /&gt;
&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This plugin has no great purpose other than to dismantle the almost infinite possibilities that open up to Falco thanks to its plugin system. If you wish to be alerted on Telegram of a strange outgoing movement from your wallet, it is now possible with Falco!&lt;/p&gt;
&lt;p&gt;Falco is no longer limited to securing Cloud environments. SaaS or others can also be used in a unified way. The Falco rules syntax has proven to benefit security practitioners in an ecosystem rich with numerous potential integration points.&lt;/p&gt;</description></item></channel></rss>