<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Falco – Kubernetes</title><link>https://v0-43--falcosecurity.netlify.app/tags/kubernetes/</link><description>Recent content in Kubernetes on Falco</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 18 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://v0-43--falcosecurity.netlify.app/tags/kubernetes/feed.xml" rel="self" type="application/rss+xml"/><item><title>Blog: Falco at KubeCon Europe 2026 — See You in Amsterdam! 🐦</title><link>https://v0-43--falcosecurity.netlify.app/blog/kubecon-eu-2026/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/blog/kubecon-eu-2026/</guid><description>
&lt;p&gt;We're excited to share that the Falco community will be at &lt;strong&gt;KubeCon + CloudNativeCon Europe 2026&lt;/strong&gt; in Amsterdam! Whether you're a long-time contributor, a curious user, or just want to say hi, we'd love to see you there.&lt;/p&gt;
&lt;p&gt;&lt;img src="images/falco-ten-year-badge.png" alt="Falco 10 years badge" loading="lazy" /&gt;
&lt;/p&gt;
&lt;p&gt;Falco is celebrating &lt;strong&gt;10 years&lt;/strong&gt; of development and adoption, and we are on the lookout for people who would like to say Happy Birthday to the project or share their best Falco story. Libby Schulze and I will be on the event floor with mic and camera to capture some amazing moments and memories from Falco's 10 years. So bring your best story, and we'll see you at the Falco booth!&lt;/p&gt;
&lt;h2 id="sneak-peek"&gt;Sneak peek&lt;/h2&gt;
&lt;p&gt;Psst... we have something really cool brewing that we will show at the Falco booth. You, our amazing reader, is the first to hear about this. It's a way to run Falco locally on your development machine, and make sure your AI coding agents are following new rules that are being defined. We'd love to get your feedback on this as we're currently building it!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Here’s where you can find us in Amsterdam and everything we have lined up:&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="project-lightning-talk"&gt;Project lightning talk&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://kccnceu2026.sched.com/event/2EFx1/project-lightning-talk-forensics-with-falco-gerald-combs-maintainer"&gt;&lt;strong&gt;Forensics With Falco&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Speaker:&lt;/strong&gt; Gerald Combs, Maintainer&lt;br&gt;
&lt;strong&gt;When:&lt;/strong&gt; Monday, March 23, 2026 — 10:27 to 10:32 CET&lt;br&gt;
&lt;strong&gt;Where:&lt;/strong&gt; Elicium 2&lt;/p&gt;
&lt;p&gt;Falco has recently expanded its capabilities with capture recording, opening the door to seamless integration with forensic analysis tools like Stratoshark. In this lightning talk, Gerald will walk through how the two tools work together to provide deep visibility into container and system activity. He will demonstrate how captured event data can accelerate investigations and discuss key considerations for safely and efficiently deploying these features in production environments.&lt;/p&gt;
&lt;h2 id="sysdig-led-workshop"&gt;Sysdig-led workshop&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://sysdig.pathfactory.com/kceu26-falco-workshop/"&gt;&lt;strong&gt;Hands-On Cloud Native Security Workshop&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;When:&lt;/strong&gt; Monday, March 23 — 2:00–4:00 PM CET&lt;/p&gt;
&lt;p&gt;Run Atomic Red Team™ tests, then step into the Blue Team role to detect threats and create custom Falco™ detection rules in this hands‑on 90‑minute keyboard workshop.&lt;/p&gt;
&lt;h2 id="conference-talk"&gt;Conference talk&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://kccnceu2026.sched.com/event/2EF6W/in-falcos-nest-the-evolution-of-cloud-native-runtime-security-iacopo-rozzo-sysdig-aldo-lacuku-kong-inc"&gt;&lt;strong&gt;In Falco's Nest: The Evolution of Cloud Native Runtime Security&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Speakers:&lt;/strong&gt; Iacopo Rozzo (Sysdig), Aldo Lacuku (Kong Inc.)&lt;br&gt;
&lt;strong&gt;When:&lt;/strong&gt; Tuesday, March 24, 2026 — 12:00 to 12:30 CET&lt;br&gt;
&lt;strong&gt;Where:&lt;/strong&gt; G102–103&lt;/p&gt;
&lt;p&gt;Falco, the Cloud Native Runtime Security project, is constantly evolving to meet the demands of modern cloud environments. This maintainer track session, led by the Falco maintainers, will dive deep into the latest advancements and the strategic direction of the project. We will focus on two major areas of growth: the introduction of the new Falco Operator and the new features that enhance Falco's performance and reliability.&lt;/p&gt;
&lt;p&gt;The new Falco Operator simplifies the deployment, configuration, and management of Falco across Kubernetes clusters, making it easier than ever for users to secure their runtime environments at scale.&lt;/p&gt;
&lt;p&gt;Furthermore, we will explore the most significant new features integrated into Falco. This includes performance optimizations for high-throughput environments. The session will also touch upon community contributions, ecosystem integrations, and the roadmap for the upcoming release.&lt;/p&gt;
&lt;h2 id="booth-demo"&gt;Booth demo&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Pivoting from detection to investigation with Falco and Stratoshark&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Speaker:&lt;/strong&gt; Gerald Combs&lt;br&gt;
&lt;strong&gt;When:&lt;/strong&gt; Tuesday, March 24, 2026 — 15:45 CET&lt;br&gt;
&lt;strong&gt;Where:&lt;/strong&gt; Sysdig Booth #671&lt;/p&gt;
&lt;p&gt;See how to move from “we detected something” to “here’s what happened” using Falco and Stratoshark. Stop by the Sysdig booth and say hello!&lt;/p&gt;
&lt;h2 id="thank-you"&gt;Thank you!&lt;/h2&gt;
&lt;p&gt;We couldn’t do this without you all in our community - the contributors, users, and everyone who shows up at events. If you’re in Amsterdam, come find us at the talks, the workshop, or the booth. We’d love to meet you and hear how you’re using Falco.&lt;/p&gt;
&lt;p&gt;See you there! 🐦&lt;/p&gt;</description></item><item><title>Blog: Detecting Supply Chain Attacks with Falco Actions</title><link>https://v0-43--falcosecurity.netlify.app/blog/detecting-supplychain-attacks-with-falco-action/</link><pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/blog/detecting-supplychain-attacks-with-falco-action/</guid><description>
&lt;p&gt;The recently discovered CVE for the GitHub action &lt;code&gt;tj-actions/changed-files&lt;/code&gt; brought to light a topic that is really critical for companies: supply chain attacks. With that, we want to discuss and show a bit about how Falco can help your organization detect this kind of attack and other suspect behaviors inside your CI/CD pipeline.&lt;/p&gt;
&lt;h2 id="what-is-falco"&gt;What is Falco?&lt;/h2&gt;
&lt;p&gt;Falco is a cloud native security tool that provides runtime security across hosts, containers, Kubernetes, and cloud environments. It leverages custom rules on Linux kernel events and other data sources through plugins, enriching event data with contextual metadata to deliver real-time alerts. Falco enables the detection of abnormal behavior, potential security threats, and compliance violations.&lt;/p&gt;
&lt;h2 id="what-is-falco-actions"&gt;What is Falco Actions?&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/falcosecurity/falco-actions"&gt;Falco Actions&lt;/a&gt; enable you to run Falco in GitHub Actions to detect suspicious behavior in your CI/CD workflows. If you run it in a pull request, the action will create a comment with the findings.&lt;/p&gt;
&lt;p&gt;Thanks to ad-hoc Falco rules specific to this use case, these GitHub actions can monitor your GitHub runner and detect software supply chain attacks.&lt;/p&gt;
&lt;h2 id="using-falco-actions"&gt;Using Falco Actions&lt;/h2&gt;
&lt;p&gt;To have Falco inside your pipeline, you need to add these two actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;falcosecurity/falco-actions/start&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;falcosecurity/falco-actions/stop&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below you can see an example:&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;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;CI&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;on&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;push&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;pull_request&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;jobs&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;build&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;runs-on&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;ubuntu-latest&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;permissions&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;contents&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;read&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;actions&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;read&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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;steps&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;uses&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;actions/checkout@v4&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:#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;Start Falco&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;uses&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;falcosecurity/falco-actions/start@main&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;with&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;mode&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;live&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;falco-version&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#39;0.40.0&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;verbose&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:#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;My Custom Step&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;run&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&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; echo &amp;#34;This is my custom step&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&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;Stop Falco&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;uses&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;falcosecurity/falco-actions/start@main&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;with&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;mode&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;live&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;verbose&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;&lt;strong&gt;OBS: main is being used here only to simplify how it works, you should always pin your dependencies to a specific commit SHA.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After the execution, you will be able to see the results at the github action summary.&lt;/p&gt;
&lt;p&gt;If you want a more detailed report, you can use the action &lt;code&gt;falcosecurity/falco-actions/analyze&lt;/code&gt;; it will allow you to have a better report with information like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Falco rules triggered during steps' execution.&lt;/li&gt;
&lt;li&gt;Contacted IPs&lt;/li&gt;
&lt;li&gt;Contacted DNS domains&lt;/li&gt;
&lt;li&gt;SHA256 hash of spawned executables&lt;/li&gt;
&lt;li&gt;Spawned container images&lt;/li&gt;
&lt;li&gt;Written files&lt;/li&gt;
&lt;li&gt;A summary of the report generated with OpenAI&lt;/li&gt;
&lt;li&gt;Reputation of Contacted IPs&lt;/li&gt;
&lt;li&gt;Reputation of SHA256 hashes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more informations about the usage, you can check the &lt;a href="https://github.com/falcosecurity/falco-actions"&gt;github repository&lt;/a&gt; for the actions.&lt;/p&gt;
&lt;h2 id="default-rules-file"&gt;Default rules file&lt;/h2&gt;
&lt;p&gt;By default, Falco action will detect a variety of events, following the &lt;a href="https://github.com/falcosecurity/falco-actions/blob/main/rules/falco_cicd_rules.yaml"&gt;default CICD rules&lt;/a&gt;, that can be overridden if you want.&lt;/p&gt;
&lt;p&gt;In the example from the &lt;code&gt;tj-actions/changed-files&lt;/code&gt; exploit, one rule that would be triggered is the &lt;strong&gt;Process Dumping Memory of Others&lt;/strong&gt;, which was used during the exploit to dump environment variables from the main process and print them as part of the Github runner execution.&lt;/p&gt;
&lt;p&gt;The Falco team is always adding new rules to ensure our users get value out of the box, but you can also write your own rules according to your company policy.&lt;/p&gt;
&lt;h2 id="conclusions"&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;These actions are just the beginning of having the Falco capabilities inside the CI/CD pipelines. You can customize and have your own set of rules, keeping all environments and scenarios covered and protected from supply chain attacks.&lt;/p&gt;
&lt;h2 id="let-s-meet"&gt;Let's meet!&lt;/h2&gt;
&lt;p&gt;As always, we meet every 2 weeks on Wednesday at 4pm UTC 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 and Edson&lt;/em&gt;&lt;/p&gt;</description></item><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: Falco at the KubeCon NA 2022</title><link>https://v0-43--falcosecurity.netlify.app/blog/falco-kubecon-2022/</link><pubDate>Tue, 08 Nov 2022 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/blog/falco-kubecon-2022/</guid><description>
&lt;p&gt;It was KubeCon recently. I doubt anyone reading this didn't know about it. And if you attended, you're probably still receiving e-mails about the event.&lt;/p&gt;
&lt;p&gt;KubeCon is where everyone wants to be. And Falco was there too. It did indeed have a great presence: A project meeting, mentions, a few presentations, a keynote, it even had a party!&lt;/p&gt;
&lt;p&gt;Once there, it was Falco time!&lt;/p&gt;
&lt;h2 id="project-meeting"&gt;Project Meeting&lt;/h2&gt;
&lt;!-- Tuesday, Oct 25 | 13:00 - 17:00 --&gt;
&lt;p&gt;A project meeting is where maintainers of the project, users, adopters and contributors have the opportunity to exchange impressions. On Tuesday afternoon, Falco maintainers met with interested users and potential adopters, and presented, not only the background of the project, but also its future roadmap.&lt;/p&gt;
&lt;p&gt;There were questions from the attendees, requests and announcements of upcoming features, and even live demos. From the new plugins framework till the recent gVisor support, including a deep explanation of Falco libraries' insights. If you didn't know how Falco worked internally, you could leave the room being an expert.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://v0-43--falcosecurity.netlify.app/blog/falco-kubecon-2022/images/falco-at-kubecon-na-2022-01.png" alt="Falco Project Meeting at KubeCon NA 2022" loading="lazy" /&gt;
&lt;/p&gt;
&lt;h2 id="presentations"&gt;Presentations&lt;/h2&gt;
&lt;p&gt;Falco is a well known project. It was mentioned in at least five presentations. Some of these, delivered by the core maintainers. Others, by the community or the CNCF organization itself. Its presence in so many occasions reflected the project's reputation in the community.&lt;/p&gt;
&lt;h3 id="keynote"&gt;Keynote&lt;/h3&gt;
&lt;p&gt;Tuesday morning. Still tired from the jet-lag, and after the first day of Cloud Native SecurityCon, our first public Falco moment of the day: A Keynote at the SecurityCon delivered by &lt;strong&gt;Loris Degioanni&lt;/strong&gt;, original creator of Falco.&lt;/p&gt;
&lt;p&gt;Loris introduced the new &lt;a href="https://v0-43--falcosecurity.netlify.app/blog/falco-plugin-github/"&gt;GitHub Plugin for Falco&lt;/a&gt;, which is capable of detecting events like using GitHub actions for cryptominers, pushing code with secrets, or even detecting when someone starred the repository.&lt;/p&gt;
&lt;p&gt;The time dedicated to a keynote is usually short, but for Loris it seemed to be enough to perform a couple of live demos. Don't miss them in this video.&lt;/p&gt;
&lt;p&gt;
&lt;div style="position: relative; padding-bottom: 45%; height: 0; overflow: hidden;"&gt;
&lt;iframe src="https://www.youtube.com/embed/o3Mz3ha3gMM" style="position: absolute; top: 0; left: 0; width: 80%; height: 100%; border:0;" allowfullscreen title="Detecting Threats in GitHub with Falco - Loris Degioanni"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;a href="https://www.youtube.com/watch?v=o3Mz3ha3gMM"&gt;Detecting Threats in GitHub with Falco - Loris Degioanni&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="the-eye-of-falco"&gt;The Eye of Falco&lt;/h3&gt;
&lt;p&gt;That same day, a few hours later, &lt;strong&gt;Stefano Chierici&lt;/strong&gt;, &lt;em&gt;Senior Security Researcher&lt;/em&gt;, and &lt;strong&gt;Lorenzo Susini&lt;/strong&gt;, &lt;em&gt;Open Source Engineer&lt;/em&gt;, both contributors of Falco, presented one of the most exciting of its features: Detection of attempts to escape Linux capabilities.&lt;/p&gt;
&lt;p&gt;During this presentation, Lorenzo did an extensive walkthough on Linux capabilities, explaining the security situation before having them, detailing on its different sets (effective, permitted and inheritable) and its security implications when creating new processes that require higher privileges.&lt;/p&gt;
&lt;p&gt;Stefano, on the other side, walked us through different scenarios showing a variety of real attacks. Therefore, having the CAP_SYS_MODULE capability enabled in the container would allow an attacker to use a Kernel Module to attack; having the CAP_SYS_PTRACE capability active would allow the injection of malicious code into memory; and having the CAP_SYS_ADMIN capability might open more than one path to make our host exploitable.&lt;/p&gt;
&lt;p&gt;Trying not to spoil the end of the presentation (you can already imagine it though), we recommend to watch the following video to see how Falco faces this kind of threats, as it does with many others, by obtaining the state of the container and warning the user if the capabilities exceed the desirable ones.&lt;/p&gt;
&lt;!-- (Oct 25, 2022 | 15:40 - 16:10) --&gt;
&lt;p&gt;
&lt;div style="position: relative; padding-bottom: 45%; height: 0; overflow: hidden;"&gt;
&lt;iframe src="https://www.youtube.com/embed/j3PcSGlJcZI" style="position: absolute; top: 0; left: 0; width: 80%; height: 100%; border:0;" allowfullscreen title="The Eye of Falco: You Can Escape but Not Hide - Stefano Chierici &amp;amp; Lorenzo Susini"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;a href="https://www.youtube.com/watch?v=j3PcSGlJcZI"&gt;The Eye of Falco: You Can Escape but Not Hide - Stefano Chierici &amp;amp; Lorenzo Susini&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="detecting-the-undetectable"&gt;Detecting the Undetectable&lt;/h3&gt;
&lt;p&gt;Falso also squeezed into a presentation from &lt;strong&gt;Carol Valencia&lt;/strong&gt;, &lt;em&gt;Cloud Native Security Advocate at Aqua Security&lt;/em&gt;, where she demonstrated how three different runtime security solutions, Falco among them, were able to detect fileless attacks.&lt;/p&gt;
&lt;p&gt;
&lt;div style="position: relative; padding-bottom: 45%; height: 0; overflow: hidden;"&gt;
&lt;iframe src="https://www.youtube.com/embed/dizRKAjuhS0" style="position: absolute; top: 0; left: 0; width: 80%; height: 100%; border:0;" allowfullscreen title="Fileless Attack - Detecting the Undetectable"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;a href="https://www.youtube.com/watch?v=dizRKAjuhS0"&gt;Fileless Attack - Detecting the Undetectable&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="falco-project-updates"&gt;Falco Project Updates&lt;/h3&gt;
&lt;p&gt;For those that were not able to attend the Project Meetings at the SecurityCon, KubeCon was a second great opportunity to learn from their favority CNCF projects.&lt;/p&gt;
&lt;p&gt;On Friday afternoon, &lt;strong&gt;Jason Dellaluce&lt;/strong&gt; and &lt;strong&gt;Luca Guerra&lt;/strong&gt;, both &lt;em&gt;Open Source Engineers&lt;/em&gt;, as well as Falco maintainers, gave an overview of the Falco project and its recent updates.&lt;/p&gt;
&lt;p&gt;
&lt;div style="position: relative; padding-bottom: 45%; height: 0; overflow: hidden;"&gt;
&lt;iframe src="https://www.youtube.com/embed/pDwmWFa9oAQ" style="position: absolute; top: 0; left: 0; width: 80%; height: 100%; border:0;" allowfullscreen title="Security In the Cloud With Falco: Overview And Project Updates - Jason Dellaluce &amp;amp; Luca Guerra"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;a href="https://www.youtube.com/watch?v=pDwmWFa9oAQ"&gt;Security In the Cloud With Falco: Overview And Project Updates - Jason Dellaluce &amp;amp; Luca Guerra&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://v0-43--falcosecurity.netlify.app/blog/falco-kubecon-2022/images/falco-at-kubecon-na-2022-03.png" alt="Falco Updates at KubeCon NA 2022" loading="lazy" /&gt;
&lt;/p&gt;
&lt;h2 id="falco-kiosk-at-the-cncf-pavillion"&gt;Falco Kiosk at the CNCF Pavillion&lt;/h2&gt;
&lt;p&gt;This year at the KubeCon, Falco maintainers spent a good amount of time at the Falco kiosk. They received visitors interested in the project, some, already users of Falco, others, new users looking to learn about it, even a couple of youtubers asking to interview the maintainers for their channels.&lt;/p&gt;
&lt;p&gt;All in all, an awesome chance to discover, first hand, what people really thought of Falco, wonders and pain points, good and not so good experiences with the tool and its ecosystem. In other words, real and valuable feedback.&lt;/p&gt;
&lt;h2 id="book-signing"&gt;Book signing&lt;/h2&gt;
&lt;p&gt;We haven't mentioned it yet, but Falco even had a book at the KubeCon. Shortly before the event, O'Reilly published &lt;a href="https://www.oreilly.com/library/view/practical-cloud-native/9781098118563/"&gt;Practical Cloud Native Security with Falco&lt;/a&gt;, written by &lt;strong&gt;Loris Degionni&lt;/strong&gt; and &lt;strong&gt;Leonardo Grasso&lt;/strong&gt;, both Falco maintainers with a large experience in the project.&lt;/p&gt;
&lt;p&gt;Wednesday and Thursday, Loris and Leo spent some time signing copies of their book to users and developers interested in learning the secrets of Falco. Receiving a book at the KubeCon is probably not such a highligh anymore. Receiving Falco users willing to queue to receive your book is still a rewarding experience though.&lt;/p&gt;
&lt;h2 id="party"&gt;Party&lt;/h2&gt;
&lt;!-- October 25th, 19:00-22:00 --&gt;
&lt;p&gt;KubeCon is not only about collecting swag and attending presentations, although these are a great source of knowledge (and the swag a lot of stolen space in your luggage). KubeCon is also about interacting with other attendees, having exciting conversations, sharing experiences and point of views.&lt;/p&gt;
&lt;p&gt;So Falco thought of using an evening to do exactly that!&lt;/p&gt;
&lt;p&gt;People at the event (let's call it a party!). So people at the party enjoyed some food, drinks, had meaningful conversations -at least, that's what we want to believe-, and played &lt;a href="https://cardsagainst.io/"&gt;Cards against Containers&lt;/a&gt; -the paper version, not the online one.&lt;/p&gt;
&lt;p&gt;Since the party took place on Tuesday, it meant a nice break between two days full of Security-related presentations, and the KubeCon starting the next day. We didn't stay long, but we had some joy.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://v0-43--falcosecurity.netlify.app/blog/falco-kubecon-2022/images/falco-at-kubecon-na-2022-04.png" alt="Falco Party at KubeCon NA 2022" loading="lazy" /&gt;
&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;As you can see, it was a week full of emotions, opportunities, friends and colleagues, and Falco. We are already looking forward to the next event, and we hope you too.&lt;/p&gt;
&lt;p&gt;And if you didn't get your copy of the book, maybe there'll be another chance next year in &lt;a href="https://events.linuxfoundation.org/cloudnativesecuritycon-north-america/"&gt;Seattle&lt;/a&gt; or &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/"&gt;Amsterdam&lt;/a&gt; ;-)&lt;/p&gt;</description></item></channel></rss>