<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Falco – Getting Started</title><link>https://v0-43--falcosecurity.netlify.app/docs/getting-started/</link><description>Recent content in Getting Started on Falco</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://v0-43--falcosecurity.netlify.app/docs/getting-started/feed.xml" rel="self" type="application/rss+xml"/><item><title>Docs: Try Falco with Docker</title><link>https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-docker-quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-docker-quickstart/</guid><description>
&lt;h2 id="install-falco"&gt;Install Falco&lt;/h2&gt;
&lt;p&gt;First, ensure you have a Linux machine with a recent version of Docker installed. Note that the following will not work on Windows or macOS running Docker Desktop.&lt;/p&gt;
&lt;p&gt;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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker run --rm -it &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; --name 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; --privileged &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; -v /sys/kernel/tracing:/sys/kernel/tracing:ro &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; -v /var/run/docker.sock:/host/var/run/docker.sock &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; -v /proc:/host/proc:ro &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; -v /etc:/host/etc:ro &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; falcosecurity/falco:0.43.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Falco is now monitoring your system using the &lt;a href="https://github.com/falcosecurity/rules/blob/main/rules/falco_rules.yaml"&gt;pre-installed set of rules&lt;/a&gt; that alert you upon suspicious behavior.&lt;/p&gt;
&lt;h2 id="trigger-a-rule"&gt;Trigger a rule&lt;/h2&gt;
&lt;p&gt;Open another terminal on the same machine and run:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo cat /etc/shadow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now go back to Falco, and you'll see a message like:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;2024-06-21T08:54:23.812791015+0000: Warning Sensitive file opened for reading by non-trusted program (file=/etc/shadow gparent=sudo ggparent=bash gggparent=tmux: evt_type=openat user=root user_uid=0 user_loginuid=1000 process=cat proc_exepath=/usr/bin/cat parent=sudo command=cat /etc/shadow terminal=34826 container_id=host container_name=host)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is your first Falco event 🦅! If you are curious, &lt;a href="https://github.com/falcosecurity/rules/blob/c0a9bf17d5451340ab8a497efae1b8a8bd95adcb/rules/falco_rules.yaml#L398"&gt;this&lt;/a&gt; is the rule that describes it.&lt;/p&gt;
&lt;h2 id="create-a-custom-rule"&gt;Create a custom rule&lt;/h2&gt;
&lt;p&gt;Now it's time to create our own rule and load it into Falco. We can be pretty creative with them, but let's stick with something simple. This time, we want to be alerted when any file is opened for writing in the &lt;code&gt;/etc&lt;/code&gt; directory, either on the host or inside containers.&lt;/p&gt;
&lt;p&gt;Stop the Falco container with &lt;code&gt;Ctrl-C&lt;/code&gt;, copy the following text in a file and call it &lt;code&gt;falco_custom_rules.yaml&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#008000;font-weight:bold"&gt;rule&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Write below etc&lt;span style="color:#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;An attempt to write to /etc directory&lt;span style="color:#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;&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; (evt.type in (open,openat,openat2) and evt.is_open_write=true and fd.typechar=&amp;#39;f&amp;#39; and fd.num&amp;gt;=0)
&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; and fd.name startswith /etc&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;output&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;File below /etc opened for writing | file=%fd.name pcmdline=%proc.pcmdline gparent=%proc.aname[2] ggparent=%proc.aname[3] gggparent=%proc.aname[4] evt_type=%evt.type user=%user.name user_uid=%user.uid user_loginuid=%user.loginuid process=%proc.name proc_exepath=%proc.exepath parent=%proc.pname command=%proc.cmdline terminal=%proc.tty&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;WARNING&lt;span style="color:#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;[filesystem, mitre_persistence]&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;Then start Falco again, this time mounting the new rule 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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker run --rm -it &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; --name 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; --privileged &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; -v /sys/kernel/tracing:/sys/kernel/tracing:ro &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; -v /var/run/docker.sock:/host/var/run/docker.sock &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; -v /proc:/host/proc:ro &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; -v /etc:/host/etc:ro &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; -v &lt;span style="color:#a2f;font-weight:bold"&gt;$(&lt;/span&gt;&lt;span style="color:#a2f"&gt;pwd&lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;)&lt;/span&gt;/falco_custom_rules.yaml:/etc/falco/falco_rules.local.yaml &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; falcosecurity/falco:0.43.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Finally, open another terminal and write a file in &lt;code&gt;/etc&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo touch /etc/test_file_falco_rule
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You should see an alert in the Falco terminal, just as before. As you can see, a lot of contextual information is displayed, as it was specified in the &lt;code&gt;output&lt;/code&gt; field of the rule. There are many such fields that you can use both in the condition and the output to build your rule.&lt;/p&gt;</description></item><item><title>Docs: Try Falco on Kubernetes</title><link>https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-kubernetes-quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-kubernetes-quickstart/</guid><description>
&lt;p&gt;First, ensure you can access a test Kubernetes cluster running with Linux nodes, either x86_64 or ARM64. Note that using Docker Desktop on Windows or macOS will not work for this purpose. Also, you will need to have &lt;a href="https://kubernetes.io/docs/tasks/tools/"&gt;kubectl&lt;/a&gt; and &lt;a href="https://helm.sh/docs/intro/install/"&gt;helm&lt;/a&gt; installed and configured.&lt;/p&gt;
&lt;h2 id="deploy-falco"&gt;Deploy Falco&lt;/h2&gt;
&lt;p&gt;First, install the helm repository:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm repo add falcosecurity https://falcosecurity.github.io/charts
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm repo update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then install Falco:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm install --replace falco --namespace falco --create-namespace --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; falcosecurity/falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And check that the Falco pods are running:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-sh" data-lang="sh"&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;Falco pod(s) might need a few seconds to start. Wait until they are ready:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl &lt;span style="color:#a2f"&gt;wait&lt;/span&gt; pods --for&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#b8860b"&gt;condition&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;Ready --all -n falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Falco comes with a &lt;a href="https://github.com/falcosecurity/rules/blob/main/rules/falco_rules.yaml"&gt;pre-installed set of rules&lt;/a&gt; that alert you upon suspicious behavior.&lt;/p&gt;
&lt;h2 id="trigger-a-rule"&gt;Trigger a rule&lt;/h2&gt;
&lt;p&gt;Let's create a deployment:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl create deployment nginx --image&lt;span style="color:#666"&gt;=&lt;/span&gt;nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And execute a command that would trigger a rule:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl &lt;span style="color:#a2f"&gt;exec&lt;/span&gt; -it &lt;span style="color:#a2f;font-weight:bold"&gt;$(&lt;/span&gt;kubectl get pods --selector&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#b8860b"&gt;app&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;nginx -o name&lt;span style="color:#a2f;font-weight:bold"&gt;)&lt;/span&gt; -- cat /etc/shadow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now let's take a look at the Falco 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-sh" data-lang="sh"&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 | grep Warning
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You will see logs for all the Falco pods deployed on the system. The Falco pod corresponding to the node in which our nginx deployment is running has detected the event, and you'll be able to read a line like:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;09:46:05.727801343: Warning Sensitive file opened for reading by non-trusted program (file=/etc/shadow gparent=systemd ggparent=&amp;lt;NA&amp;gt; gggparent=&amp;lt;NA&amp;gt; evt_type=openat user=root user_uid=0 user_loginuid=-1 process=cat proc_exepath=/usr/bin/cat parent=containerd-shim command=cat /etc/shadow terminal=34816 container_id=bf74f1749e23 container_image=docker.io/library/nginx container_image_tag=latest container_name=nginx k8s_ns=default k8s_pod_name=nginx-7854ff8877-h97p4)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is your first Falco event 🦅! If you are curious, &lt;a href="https://github.com/falcosecurity/rules/blob/c0a9bf17d5451340ab8a497efae1b8a8bd95adcb/rules/falco_rules.yaml#L398"&gt;this&lt;/a&gt; is the rule that describes it.&lt;/p&gt;
&lt;h2 id="create-a-custom-rule"&gt;Create a custom rule&lt;/h2&gt;
&lt;p&gt;Now it's time to create our own rule and load it into Falco. We can be pretty creative with them, but let's stick with something simple. This time, we want to be alerted when any file is opened for writing in the &lt;code&gt;/etc&lt;/code&gt; directory, either on the host or inside containers.&lt;/p&gt;
&lt;p&gt;Create a file and call it &lt;code&gt;falco_custom_rules_cm.yaml&lt;/code&gt; 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;customRules&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;custom-rules.yaml&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; - rule: Write below etc
&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; desc: An attempt to write to /etc directory
&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; condition: &amp;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; (evt.type in (open,openat,openat2) and evt.is_open_write=true and fd.typechar=&amp;#39;f&amp;#39; and fd.num&amp;gt;=0)
&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; and fd.name startswith /etc
&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; output: &amp;#34;File below /etc opened for writing | file=%fd.name pcmdline=%proc.pcmdline gparent=%proc.aname[2] ggparent=%proc.aname[3] gggparent=%proc.aname[4] evt_type=%evt.type user=%user.name user_uid=%user.uid user_loginuid=%user.loginuid process=%proc.name proc_exepath=%proc.exepath parent=%proc.pname command=%proc.cmdline terminal=%proc.tty&amp;#34;
&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; priority: WARNING
&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; tags: [filesystem, mitre_persistence]&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And load it into Falco:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm upgrade --namespace falco falco falcosecurity/falco --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; -f falco_custom_rules_cm.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Falco pod(s) might need a few seconds to restart. Wait until they are ready:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl &lt;span style="color:#a2f"&gt;wait&lt;/span&gt; pods --for&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#b8860b"&gt;condition&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;Ready --all -n falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then trigger our new rule:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl &lt;span style="color:#a2f"&gt;exec&lt;/span&gt; -it &lt;span style="color:#a2f;font-weight:bold"&gt;$(&lt;/span&gt;kubectl get pods --selector&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#b8860b"&gt;app&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;nginx -o name&lt;span style="color:#a2f;font-weight:bold"&gt;)&lt;/span&gt; -- touch /etc/test_file_for_falco_rule
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And look at 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-sh" data-lang="sh"&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 | grep Warning
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You should see a log entry like the one below:&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-plain" data-lang="plain"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;13:14:27.811647863: Warning File below /etc opened for writing (file=/etc/test_file_for_falco_rule pcmdline=containerd-shim -namespace k8s.io -id d5438fedb274ac82963d99987313dae8da512236ace2f70472a772d95090b607 -address /run/containerd/containerd.sock gparent=systemd ggparent=&amp;lt;NA&amp;gt; gggparent=&amp;lt;NA&amp;gt; evt_type=openat user=root user_uid=0 user_loginuid=-1 process=touch proc_exepath=/usr/bin/touch parent=containerd-shim command=touch /etc/test_file_for_falco_rule terminal=34816 container_id=bf74f1749e23 container_image=docker.io/library/nginx container_image_tag=latest container_name=nginx k8s_ns=default k8s_pod_name=nginx-7854ff8877-h97p4)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="deploy-falcosidekick-and-falcosidekick-ui"&gt;Deploy Falcosidekick and Falcosidekick UI&lt;/h2&gt;
&lt;p&gt;In the previous step we displayed the rule output by examining the Falco log for the pod in the cluster that is running on the node. Now we will see how we can forward these alerts to a custom location or display them in a clean GUI. There are many ways to accomplish this but one is by using &lt;a href="https://github.com/falcosecurity/falcosidekick"&gt;Falcosidekick&lt;/a&gt; which can easily be deployed with the same Helm chart.&lt;/p&gt;
&lt;p&gt;Install Falcosidekick and Falcosidekick-UI in your test cluster:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm upgrade --namespace falco falco falcosecurity/falco -f falco_custom_rules_cm.yaml --set falcosidekick.enabled&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#a2f"&gt;true&lt;/span&gt; --set falcosidekick.webui.enabled&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#a2f"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now check that it is running and its service is set up:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl -n falco get svc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You should see something like this:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
falco-falcosidekick ClusterIP 10.43.212.119 &amp;lt;none&amp;gt; 2801/TCP 61s
falco-falcosidekick-ui ClusterIP 10.43.35.87 &amp;lt;none&amp;gt; 2802/TCP 60s
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="display-events-in-the-falcosidekick-ui"&gt;Display events in the Falcosidekick UI&lt;/h3&gt;
&lt;p&gt;Forward the UI port, which is 2802:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl -n falco port-forward svc/falco-falcosidekick-ui &lt;span style="color:#666"&gt;2802&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And point your browser to http://localhost:2802 . The default username and password are &lt;code&gt;admin&lt;/code&gt; / &lt;code&gt;admin&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now click on &amp;quot;Events&amp;quot; on top of the page and trigger an event again:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl &lt;span style="color:#a2f"&gt;exec&lt;/span&gt; -it &lt;span style="color:#a2f;font-weight:bold"&gt;$(&lt;/span&gt;kubectl get pods --selector&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#b8860b"&gt;app&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;nginx -o name&lt;span style="color:#a2f;font-weight:bold"&gt;)&lt;/span&gt; -- cat /etc/shadow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You should see an event appearing in the Falcosidekick UI&lt;/p&gt;
&lt;p&gt;&lt;img src="https://v0-43--falcosecurity.netlify.app/docs/getting-started/images/falcosidekick-event.png" alt="Falcosidekick Event" loading="lazy" /&gt;
&lt;/p&gt;
&lt;p&gt;The Falcosidekick UI can be used to quickly display events but most likely on a production system you will want to forward events to a centralized location. Falcosidekick supports more than 60 integrations. You can find an example below but you can refer to &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/outputs/forwarding/"&gt;the forwarding documentation&lt;/a&gt; to learn more.&lt;/p&gt;
&lt;h3 id="forward-events-to-a-slack-webhook"&gt;Forward events to a Slack webhook&lt;/h3&gt;
&lt;p&gt;Deploy Falco again, this time disabling the web UI and enabling Slack forwarding. Of course, you can enable both if you wish.&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm upgrade --namespace falco 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; --set falcosidekick.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 falcosidekick.config.slack.webhookurl&lt;span style="color:#666"&gt;=&lt;/span&gt;YOUR_WEBHOOK_URL_HERE &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 falcosidekick.config.slack.minimumpriority&lt;span style="color:#666"&gt;=&lt;/span&gt;notice
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If Slack is configured correctly, when an event is triggered you should receive a message like the following:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://v0-43--falcosecurity.netlify.app/docs/getting-started/images/slack-output.png" alt="Slack output" loading="lazy" /&gt;
&lt;/p&gt;
&lt;h2 id="cleanup"&gt;Cleanup&lt;/h2&gt;
&lt;p&gt;If you wish to remove Falco from your cluster you can simply run:&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-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm -n falco uninstall falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Docs: Try Falco on Linux</title><link>https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-linux-quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-linux-quickstart/</guid><description>
&lt;p&gt;In this scenario, you will learn how to install Falco on an Ubuntu host, trigger a Falco rule by generating a suspicious event, and then examine the output.&lt;/p&gt;
&lt;p&gt;This activity aims to give you a quick example of how Falco works. After you complete it, you should be able to move on to &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-kubernetes-quickstart/"&gt;trying Falco on Kubernetes&lt;/a&gt; or spend some time reading some &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-additional"&gt;additional resources&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;This lab is based on installing Falco on a virtual machine.&lt;/p&gt;
&lt;p&gt;The scenario has been tested using VirtualBox and Lima (for MacBooks running Apple Silicon).&lt;/p&gt;
&lt;p&gt;While this tutorial may work with Ubuntu running on a cloud provider or another virtualization platform, it has not been tested.&lt;/p&gt;
&lt;h3 id="virtualbox-setup"&gt;VirtualBox setup&lt;/h3&gt;
&lt;p&gt;The following steps will set up a VirtualBox virtual machine running Ubuntu 24.04.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Install VirtualBox and Vagrant according to the instructions appropriate for your local system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Issue the following commands from the command line to create an Ubuntu 24.04 virtual machine.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&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;vagrant init bento/ubuntu-24.04
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vagrant up
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Log into the newly launched virtual machine and continue to the &lt;em&gt;Install Falco&lt;/em&gt; section below (the default password is &lt;em&gt;vagrant&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&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;vagrant ssh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="lima-setup-for-apple-silicon-m1-m2"&gt;Lima setup for Apple silicon (M1/M2)&lt;/h3&gt;
&lt;p&gt;This section explains how to create an Ubuntu 24.04 VM on Apple computers running M1 silicon (as opposed to Intel).&lt;/p&gt;
&lt;p&gt;If you are unsure what processor your Apple machine is running, you can find out by clicking the Apple icon in the upper left and choosing &amp;quot;About this Mac&amp;quot;. The first item listed, Chip, tells you what silicon you're running on.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Install Homebrew according to the project's documentation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use Homebrew to install Lima.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&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;brew install lima
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Create an Ubuntu 24.04 VM with Lima.&lt;/li&gt;
&lt;/ul&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;limactl start --name&lt;span style="color:#666"&gt;=&lt;/span&gt;falco-quickstart template://ubuntu-lts
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Shell into the Ubuntu VM, and once you're in the VM, continue to the Install Falco section.&lt;/li&gt;
&lt;/ul&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;limactl shell falco-quickstart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="install-falco"&gt;Install Falco&lt;/h2&gt;
&lt;p&gt;Regardless of which setup you used above, this section will show you how to install Falco on a host system. You'll begin by updating the package repository. Next, you'll install the dialog package. Then you'll install Falco and ensure it's up and running.&lt;/p&gt;
&lt;h3 id="set-up-the-package-repository"&gt;Set up the package repository&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add the Falco repository key.&lt;/li&gt;
&lt;/ul&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;curl -fsSL https://falco.org/repo/falcosecurity-packages.asc | &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;sudo gpg --dearmor -o /usr/share/keyrings/falco-archive-keyring.gpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Add the Falco repository.&lt;/li&gt;
&lt;/ul&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;sudo bash -c &lt;span style="color:#b44"&gt;&amp;#39;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/apt/sources.list.d/falcosecurity.list
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#b44"&gt;deb [signed-by=/usr/share/keyrings/falco-archive-keyring.gpg] https://download.falco.org/packages/deb stable main
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#b44"&gt;EOF&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Read the repository contents.&lt;/li&gt;
&lt;/ul&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;sudo apt-get update -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-dialog"&gt;Install dialog&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Install &lt;em&gt;dialog&lt;/em&gt;, which is used by the Falco installer.&lt;/li&gt;
&lt;/ul&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;sudo apt-get install -y dialog
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-falco-1"&gt;Install Falco&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Install the latest Falco version.&lt;/li&gt;
&lt;/ul&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;sudo apt-get install -y falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;When prompted, choose the &lt;strong&gt;Modern eBPF&lt;/strong&gt; option. This will enable the usage of the modern eBPF-based driver.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://v0-43--falcosecurity.netlify.app/docs/getting-started/images/dialog-1.png" alt="Dialog window - Choose the modern eBPF driver" loading="lazy" /&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When prompted, choose &lt;strong&gt;Yes&lt;/strong&gt;. Although we won't use the functionality in this exercise, this option allows Falco to update its rules automatically.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://v0-43--falcosecurity.netlify.app/docs/getting-started/images/dialog-2.png" alt="Dialog window - Choose the follow automatic ruleset updates" loading="lazy" /&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wait for the Falco installation to complete - this should only take a few minutes.&lt;/p&gt;
&lt;h3 id="verify-falco-is-running"&gt;Verify Falco is running&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Make sure the Falco service is running.&lt;/li&gt;
&lt;/ul&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;sudo systemctl status falco-modern-bpf.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The output should be similar to the following:&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-plain" data-lang="plain"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;● falco-modern-bpf.service - Falco: Container Native Runtime Security with modern ebpf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Loaded: loaded (/usr/lib/systemd/system/falco-modern-bpf.service; enabled; preset: enabled)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Active: active (running) since Wed 2024-09-18 08:40:04 UTC; 11min ago
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Docs: https://falco.org/docs/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Main PID: 4751 (falco)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Tasks: 7 (limit: 2275)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Memory: 24.7M (peak: 37.1M)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; CPU: 3.913s
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; CGroup: /system.slice/falco-modern-bpf.service
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─4751 /usr/bin/falco -o engine.kind=modern_ebpf
&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;Sep 18 08:40:12 vagrant falco[4751]: /etc/falco/falco.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Sep 18 08:40:12 vagrant falco[4751]: System info: Linux version 6.8.0-31-generic (buildd@lcy02-amd64-080) (x86_64-linux-gnu-gcc-13 (Ubuntu 13.2.0-23ubuntu4) 13.2.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Sep 18 08:40:12 vagrant falco[4751]: Loading rules from file /etc/falco/falco_rules.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Sep 18 08:40:12 vagrant falco[4751]: Loading rules from file /etc/falco/falco_rules.local.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Sep 18 08:40:12 vagrant falco[4751]: The chosen syscall buffer dimension is: 8388608 bytes (8 MBs)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Sep 18 08:40:12 vagrant falco[4751]: 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;Sep 18 08:40:12 vagrant falco[4751]: Loaded event sources: syscall
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Sep 18 08:40:12 vagrant falco[4751]: Enabled event sources: syscall
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Sep 18 08:40:12 vagrant falco[4751]: Opening &amp;#39;syscall&amp;#39; source with modern BPF probe.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Sep 18 08:40:12 vagrant falco[4751]: One ring buffer every &amp;#39;2&amp;#39; CPUs.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="see-falco-in-action"&gt;See Falco in action&lt;/h2&gt;
&lt;h3 id="generate-a-suspicious-event"&gt;Generate a suspicious event&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;There is a Falco rule that is designed to trigger whenever someone accesses a sensitive file (of which, /etc/shadow is one). Run the following command to trigger that rule.&lt;/li&gt;
&lt;/ul&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;sudo cat /etc/shadow &amp;gt; /dev/null
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="examine-falco-s-output"&gt;Examine Falco's output&lt;/h3&gt;
&lt;p&gt;One of the endpoints that Falco can write output to is &lt;em&gt;syslog&lt;/em&gt;. There are multiple ways to examine the system logs, but we have featured two for our exercise: using &lt;em&gt;journalctl&lt;/em&gt; and simply using &lt;em&gt;cat&lt;/em&gt; on the log file.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Using journalctl&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Run the following command to retrieve Falco messages that have been generated with a priority of &lt;code&gt;warning&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&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;sudo journalctl &lt;span style="color:#b8860b"&gt;_COMM&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;falco -p warning
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You should see output similar to the following:&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-plain" data-lang="plain"&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;Sep 18 12:50:52 vagrant falco[4751]: 11:48:24.195279773: Warning Sensitive file opened for
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;reading by non-trusted program (file=/etc/shadow gparent=sudo ggparent=bash gggparent=sshd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;evt_type=openat user=root user_uid=0 user_loginuid=1000 process=cat proc_exepath=/usr/bin/cat
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parent=sudo command=cat /etc/shadow terminal=34818 container_id=host container_name=host)
&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;em&gt;&lt;strong&gt;Using /var/log/syslog&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Log messages describing Falco's activity are logged to syslog. Run the following command to retrieve Falco logs:&lt;/li&gt;
&lt;/ul&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;sudo grep Sensitive /var/log/syslog
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You should see output similar to the following:&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-plain" data-lang="plain"&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;2024-09-18T12:50:52.164570+00:00 vagrant falco: 11:48:24.195279773: Warning Sensitive file opened for
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;reading by non-trusted program (file=/etc/shadow gparent=sudo ggparent=bash gggparent=sshd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;evt_type=openat user=root user_uid=0 user_loginuid=1000 process=cat proc_exepath=/usr/bin/cat
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parent=sudo command=cat /etc/shadow terminal=34818 container_id=host container_name=host)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="cleanup"&gt;Cleanup&lt;/h2&gt;
&lt;h3 id="remove-the-lima-virtual-machine"&gt;Remove the Lima virtual machine&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you wish, remove the Lima virtual machine&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;limactl delete falco-quickstart --force
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="remove-the-virtualbox-virtual-machine"&gt;Remove the Virtualbox virtual machine&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you wish, remove the Virtualbox virtual machine&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;vagrant destroy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="card card-sm pageinfo pageinfo-info my-4"&gt;
&lt;div class="card-body"&gt;
&lt;div class="card-text"&gt;
&lt;p&gt;Be sure you are in same subdirectory as the Vagrantfile&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Docs: Learning Environments</title><link>https://v0-43--falcosecurity.netlify.app/docs/getting-started/learning-environments/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/docs/getting-started/learning-environments/</guid><description>
&lt;h2 id="minikube"&gt;minikube&lt;/h2&gt;
&lt;p&gt;The easiest way to use Falco on Kubernetes in a local environment is on &lt;a href="https://kubernetes.io/docs/tutorials/hello-minikube/"&gt;Minikube&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When running &lt;code&gt;minikube&lt;/code&gt; with one of the following drivers &lt;code&gt;virtualbox, qemu, kvm2&lt;/code&gt;, it creates a VM that runs the various Kubernetes services and a container framework to run Pods, etc. Generally, it's not possible to build the Falco kernel module directly on the &lt;code&gt;minikube&lt;/code&gt; VM, as the VM doesn't include the kernel headers for the running kernel.&lt;/p&gt;
&lt;p&gt;To address this, starting with Falco 0.33.0 prebuilt &lt;code&gt;kernel modules&lt;/code&gt; and &lt;code&gt;bpf probes&lt;/code&gt; for the last 3 &lt;code&gt;minikube&lt;/code&gt; major versions, including minor versions, are available at &lt;a href="https://download.falco.org/?prefix=driver/"&gt;https://download.falco.org/?prefix=driver/&lt;/a&gt;. This allows the download fallback step to succeed with a loadable driver. New versions of &lt;code&gt;minikube&lt;/code&gt; are automatically discovered by the &lt;a href="https://github.com/falcosecurity/kernel-crawler"&gt;kernel-crawler&lt;/a&gt; and periodically built by &lt;a href="https://github.com/falcosecurity/test-infra"&gt;test-infra&lt;/a&gt;. The supported versions can be found at &lt;a href="https://falcosecurity.github.io/kernel-crawler/?target=Minikube&amp;amp;arch=x86_64"&gt;https://falcosecurity.github.io/kernel-crawler/?target=Minikube&amp;arch=x86_64&lt;/a&gt;. Falco currently retains previously-built kernel modules for download and continues to provide limited historical support as well.&lt;/p&gt;
&lt;p&gt;You can follow the official &lt;a href="https://minikube.sigs.k8s.io/docs/start/"&gt;Get Started!&lt;/a&gt; guide to install.&lt;/p&gt;
&lt;p&gt;&lt;a class="btn btn-primary" href="https://minikube.sigs.k8s.io/docs/start/" role="button" aria-label="View minikube Get Started! Guide"&gt;View minikube Get Started! Guide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Ensure that you have &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/getting-started/third-party/install-tools/#kubectl"&gt;installed kubectl&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="falco-with-syscall-source-only"&gt;Falco with syscall source only&lt;/h3&gt;
&lt;p&gt;In order to install Falco with the &lt;code&gt;kernel module&lt;/code&gt; or the &lt;code&gt;bpf probe&lt;/code&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create the cluster with Minikube using a VM driver, in this case, Virtualbox:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;minikube start --driver&lt;span style="color:#666"&gt;=&lt;/span&gt;virtualbox
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check that all pods are running:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl get pods --all-namespaces
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add the Falco Helm repository and update the local Helm repository cache:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; helm repo add falcosecurity https://falcosecurity.github.io/charts
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; helm repo update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install Falco using Helm:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm install falco &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 driver.kind&lt;span style="color:#666"&gt;=&lt;/span&gt;modern_ebpf &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; falcosecurity/falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The output is similar to:&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;NAME: falco
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LAST DEPLOYED: Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 08:19:53 &lt;span style="color:#666"&gt;2024&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;NAMESPACE: default
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;STATUS: deployed
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;REVISION: &lt;span style="color:#666"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;TEST SUITE: None
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;NOTES:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Falco agents are spinning up on each node in your cluster. After a few
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;seconds, they are going to start monitoring your containers looking &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;security issues.
&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;No further action should be required.
&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;Tip:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;You can easily forward Falco events to Slack, Kafka, AWS Lambda and more with falcosidekick.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Full list of outputs: https://github.com/falcosecurity/charts/tree/master/charts/falcosidekick.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;You can &lt;span style="color:#a2f"&gt;enable&lt;/span&gt; its deployment with &lt;span style="color:#b44"&gt;`&lt;/span&gt;--set falcosidekick.enabled&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#a2f"&gt;true&lt;/span&gt;&lt;span style="color:#b44"&gt;`&lt;/span&gt; or in your values.yaml.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;See: https://github.com/falcosecurity/charts/blob/master/charts/falcosidekick/values.yaml &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; configuration values.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check the logs to ensure that Falco is running:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl logs -l app.kubernetes.io/name&lt;span style="color:#666"&gt;=&lt;/span&gt;falco --all-containers
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The output is similar to:&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 style="color:#666"&gt;{&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;INFO&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Resolving dependencies ...&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2024-04-17 06:19:49&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;level&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;INFO&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Installing artifacts&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;refs&amp;#34;&lt;/span&gt;:&lt;span style="color:#666"&gt;[&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;ghcr.io/falcosecurity/rules/falco-rules:3&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;]&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2024-04-17 06:19:51&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;level&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;INFO&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Preparing to pull artifact&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;ref&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;ghcr.io/falcosecurity/rules/falco-rules:3&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2024-04-17 06:19:51&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;level&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;INFO&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Pulling layer 1e72f9c4d8fe&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2024-04-17 06:19:52&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;level&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;INFO&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Pulling layer 2e91799fee49&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2024-04-17 06:19:52&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;level&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;INFO&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Pulling layer d4c03e000273&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2024-04-17 06:19:52&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;digest&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;ghcr.io/falcosecurity/rules/falco-rules@sha256:d4c03e000273a0168ee3d9b3dfb2174e667b93c9bfedf399b298ed70f37d623b&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;INFO&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Verifying signature for artifact&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2024-04-17 06:19:52&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;level&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;INFO&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Signature successfully verified!&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2024-04-17 06:19:53&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;file&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;falco_rules.yaml.tar.gz&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;INFO&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Extracting and installing artifact&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2024-04-17 06:19:53&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;rulesfile&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;digest&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;sha256:d4c03e000273a0168ee3d9b3dfb2174e667b93c9bfedf399b298ed70f37d623b&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;directory&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;/rulesfiles&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;INFO&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;Artifact successfully installed&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;ghcr.io/falcosecurity/rules/falco-rules:3&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;2024-04-17 06:19:53&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;rulesfile&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;Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 06:19:54 2024: Falco initialized with configuration file: /etc/falco/falco.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 06:19:54 2024: System info: Linux version 5.10.57 &lt;span style="color:#666"&gt;(&lt;/span&gt;jenkins@ubuntu-iso&lt;span style="color:#666"&gt;)&lt;/span&gt; &lt;span style="color:#666"&gt;(&lt;/span&gt;x86_64-minikube-linux-gnu-gcc.br_real &lt;span style="color:#666"&gt;(&lt;/span&gt;Buildroot 2021.02.12-1-gb75713b-dirty&lt;span style="color:#666"&gt;)&lt;/span&gt; 9.4.0, GNU ld &lt;span style="color:#666"&gt;(&lt;/span&gt;GNU Binutils&lt;span style="color:#666"&gt;)&lt;/span&gt; 2.35.2&lt;span style="color:#666"&gt;)&lt;/span&gt; &lt;span style="color:#080;font-style:italic"&gt;#1 SMP Tue Nov 7 06:51:54 UTC 2023&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 06:19:54 2024: Loading rules from file /etc/falco/falco_rules.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 06:19:54 2024: Hostname value has been overridden via environment variable to: minikube
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 06:19:54 2024: 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;Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 06:19:54 2024: Starting health webserver with threadiness 4, listening on 0.0.0.0:8765
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 06:19:54 2024: Loaded event sources: syscall
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 06:19:54 2024: Enabled event sources: syscall
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 06:19:54 2024: Opening &lt;span style="color:#b44"&gt;&amp;#39;syscall&amp;#39;&lt;/span&gt; &lt;span style="color:#a2f"&gt;source&lt;/span&gt; with modern BPF probe.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wed Apr &lt;span style="color:#666"&gt;17&lt;/span&gt; 06:19:54 2024: One ring buffer every &lt;span style="color:#b44"&gt;&amp;#39;2&amp;#39;&lt;/span&gt; CPUs.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="falco-with-multiple-sources"&gt;Falco with multiple sources&lt;/h3&gt;
&lt;p&gt;Here we run Falco in a &lt;code&gt;minikube&lt;/code&gt; cluster with multiple sources: &lt;code&gt;syscall&lt;/code&gt; and &lt;code&gt;k8s_audit&lt;/code&gt;. The next steps show how to start a &lt;code&gt;minikube&lt;/code&gt; cluster with the &lt;a href="https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/"&gt;audit logs&lt;/a&gt; enabled and deploy Falco with the &lt;code&gt;kernel module&lt;/code&gt; and the &lt;code&gt;k8saudit plugin&lt;/code&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;First, we need to create a new folder under the configuration folder of &lt;code&gt;minikube&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p ~/.minikube/files/etc/ssl/certs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We are assuming that the &lt;code&gt;minikube&lt;/code&gt; configuration folder lives in your home folder; otherwise, adjust the command according to your environment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Let's create the needed configuration files to enable the &lt;code&gt;audit logs&lt;/code&gt;. We are going to create a new file under &lt;code&gt;~/.minikube/files/etc/ssl/certs&lt;/code&gt; named &lt;code&gt;audit-policy.yaml&lt;/code&gt; and copy the required config into it. Copy the following snippet into your terminal shell:&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;cat &amp;lt;&amp;lt; EOF &amp;gt; ~/.minikube/files/etc/ssl/certs/audit-policy.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:#008000;font-weight:bold"&gt;apiVersion&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;audit.k8s.io/v1&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#080;font-style:italic"&gt;# This is required.&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;kind&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Policy&lt;span style="color:#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;# Don&amp;#39;t generate audit events for all requests in RequestReceived stage.&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;omitStages&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:#b44"&gt;&amp;#34;RequestReceived&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;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:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#080;font-style:italic"&gt;# Log pod changes at RequestResponse level&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;RequestResponse&lt;span style="color:#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;resources&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;group&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;# Resource &amp;#34;pods&amp;#34; doesn&amp;#39;t match requests to any subresource of pods,&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;# which is consistent with the RBAC policy.&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;resources&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;pods&amp;#34;&lt;/span&gt;,&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;deployments&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;RequestResponse&lt;span style="color:#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;resources&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;group&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;rbac.authorization.k8s.io&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;# Resource &amp;#34;pods&amp;#34; doesn&amp;#39;t match requests to any subresource of pods,&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;# which is consistent with the RBAC policy.&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;resources&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;clusterroles&amp;#34;&lt;/span&gt;,&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;clusterrolebindings&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:#080;font-style:italic"&gt;# Log &amp;#34;pods/log&amp;#34;, &amp;#34;pods/status&amp;#34; at Metadata level&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Metadata&lt;span style="color:#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;resources&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;group&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:#008000;font-weight:bold"&gt;resources&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;pods/log&amp;#34;&lt;/span&gt;,&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;pods/status&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:#080;font-style:italic"&gt;# Don&amp;#39;t log requests to a configmap called &amp;#34;controller-leader&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;None&lt;span style="color:#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;resources&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;group&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:#008000;font-weight:bold"&gt;resources&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;configmaps&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;resourceNames&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;controller-leader&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:#080;font-style:italic"&gt;# Don&amp;#39;t log watch requests by the &amp;#34;system:kube-proxy&amp;#34; on endpoints or services&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;None&lt;span style="color:#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;users&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;system:kube-proxy&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;verbs&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;watch&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;resources&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;group&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 style="color:#080;font-style:italic"&gt;# core API group&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;resources&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;endpoints&amp;#34;&lt;/span&gt;,&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;services&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:#080;font-style:italic"&gt;# Don&amp;#39;t log authenticated requests to certain non-resource URL paths.&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;None&lt;span style="color:#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;userGroups&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;system:authenticated&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;nonResourceURLs&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:#b44"&gt;&amp;#34;/api*&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#080;font-style:italic"&gt;# Wildcard matching.&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:#b44"&gt;&amp;#34;/version&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:#080;font-style:italic"&gt;# Log the request body of configmap changes in kube-system.&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Request&lt;span style="color:#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;resources&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;group&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 style="color:#080;font-style:italic"&gt;# core API group&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;resources&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;configmaps&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;# This rule only applies to resources in the &amp;#34;kube-system&amp;#34; namespace.&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;# The empty string &amp;#34;&amp;#34; can be used to select non-namespaced resources.&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;namespaces&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;kube-system&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:#080;font-style:italic"&gt;# Log configmap changes in all other namespaces at the RequestResponse level.&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;RequestResponse&lt;span style="color:#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;resources&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;group&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 style="color:#080;font-style:italic"&gt;# core API group&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;resources&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;configmaps&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:#080;font-style:italic"&gt;# Log secret changes in all other namespaces at the Metadata level.&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Metadata&lt;span style="color:#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;resources&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;group&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 style="color:#080;font-style:italic"&gt;# core API group&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;resources&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[&lt;span style="color:#b44"&gt;&amp;#34;secrets&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:#080;font-style:italic"&gt;# Log all other resources in core and extensions at the Request level.&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Request&lt;span style="color:#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;resources&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;group&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 style="color:#080;font-style:italic"&gt;# core API group&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;group&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;extensions&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#080;font-style:italic"&gt;# Version of group should NOT be included.&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:#080;font-style:italic"&gt;# A catch-all rule to log all other requests at the Metadata level.&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;level&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Metadata&lt;span style="color:#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;# Long-running requests like watches that fall under this rule will not&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;# generate an audit event in RequestReceived.&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;omitStages&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:#b44"&gt;&amp;#34;RequestReceived&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;EOF&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;Create the file &lt;code&gt;webhook-config.yaml&lt;/code&gt; and save the required configuration needed by the &lt;code&gt;k8s api-server&lt;/code&gt; to send the audit logs to Falco:&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;cat &amp;lt;&amp;lt; EOF &amp;gt; ~/.minikube/files/etc/ssl/certs/webhook-config.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:#008000;font-weight:bold"&gt;apiVersion&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;v1&lt;span style="color:#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;kind&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Config&lt;span style="color:#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;clusters&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;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;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;cluster&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;# certificate-authority: /path/to/ca.crt # for https&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;server&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;http://localhost:30007/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:#008000;font-weight:bold"&gt;contexts&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;context&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;cluster&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;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;user&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:#008000;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;default-context&lt;span style="color:#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;current-context&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;default-context&lt;span style="color:#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;preferences&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;{}&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#008000;font-weight:bold"&gt;users&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;[]&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;EOF&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;/li&gt;
&lt;li&gt;
&lt;p&gt;Once the configuration files are in place we are ready to start the &lt;code&gt;minikube&lt;/code&gt; cluster:&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;minikube start &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; --extra-config&lt;span style="color:#666"&gt;=&lt;/span&gt;apiserver.audit-policy-file&lt;span style="color:#666"&gt;=&lt;/span&gt;/etc/ssl/certs/audit-policy.yaml &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; --extra-config&lt;span style="color:#666"&gt;=&lt;/span&gt;apiserver.audit-log-path&lt;span style="color:#666"&gt;=&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; --extra-config&lt;span style="color:#666"&gt;=&lt;/span&gt;apiserver.audit-webhook-config-file&lt;span style="color:#666"&gt;=&lt;/span&gt;/etc/ssl/certs/webhook-config.yaml &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; --extra-config&lt;span style="color:#666"&gt;=&lt;/span&gt;apiserver.audit-webhook-batch-max-size&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#666"&gt;10&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; --extra-config&lt;span style="color:#666"&gt;=&lt;/span&gt;apiserver.audit-webhook-batch-max-wait&lt;span style="color:#666"&gt;=&lt;/span&gt;5s &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; --cpus&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#666"&gt;4&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; --driver&lt;span style="color:#666"&gt;=&lt;/span&gt;virtualbox
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="card card-sm pageinfo pageinfo-warning my-4"&gt;
&lt;div class="card-body"&gt;
&lt;div class="card-text"&gt;
&lt;pre&gt;&lt;code&gt; We need at least 4 CPUs for the VM to deploy Falco with multiple sources!
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ol start="4"&gt;
&lt;li&gt;
&lt;p&gt;Add the Falco Helm repository and update the local Helm repository cache:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm repo add falcosecurity https://falcosecurity.github.io/charts
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm repo update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install Falco using the pre-set values 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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;helm install 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; --set driver.kind&lt;span style="color:#666"&gt;=&lt;/span&gt;modern_ebpf &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; --values&lt;span style="color:#666"&gt;=&lt;/span&gt;https://raw.githubusercontent.com/falcosecurity/charts/master/charts/falco/values-syscall-k8saudit.yaml &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; falcosecurity/falco
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check that the Falco pod is up and running:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl get pods -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;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the following command and keep the terminal open:&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 -f
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The command will follow the log stream of the Falco pod by printing the logs as soon as Falco emits them. And make sure that the following lines are present:&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;Mon Oct &lt;span style="color:#666"&gt;24&lt;/span&gt; 15:24:06 2022: Opening capture with plugin &lt;span style="color:#b44"&gt;&amp;#39;k8saudit&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Mon Oct &lt;span style="color:#666"&gt;24&lt;/span&gt; 15:24:06 2022: Opening &lt;span style="color:#b44"&gt;&amp;#39;syscall&amp;#39;&lt;/span&gt; &lt;span style="color:#a2f"&gt;source&lt;/span&gt; with modern BPF probe
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It means that Falco is running with the configured sources.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trigger some rules to check that Falco works as expected. Open a new terminal and make sure that your &lt;code&gt;kubeconfig&lt;/code&gt;
points to the minikube cluster. Then run:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trigger a &lt;code&gt;k8saudit&lt;/code&gt; rule:&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 create cm myconfigmap --from-literal&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#b8860b"&gt;username&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;admin --from-literal&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#b8860b"&gt;password&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#666"&gt;123456&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In the terminal that we opened in step 8 we should see a log line like this:&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;15:30:07.927586000: Warning K8s configmap with private credential &lt;span style="color:#666"&gt;(&lt;/span&gt;&lt;span style="color:#b8860b"&gt;user&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;minikube-user &lt;span style="color:#b8860b"&gt;verb&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;create &lt;span style="color:#b8860b"&gt;resource&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;configmaps &lt;span style="color:#b8860b"&gt;configmap&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;myconfigmap &lt;span style="color:#b8860b"&gt;config&lt;/span&gt;&lt;span style="color:#666"&gt;={&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;password&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;123456&amp;#34;&lt;/span&gt;,&lt;span style="color:#b44"&gt;&amp;#34;username&amp;#34;&lt;/span&gt;:&lt;span style="color:#b44"&gt;&amp;#34;admin&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;/li&gt;
&lt;li&gt;
&lt;p&gt;Trigger a Falco rule:&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; &lt;span style="color:#a2f;font-weight:bold"&gt;$(&lt;/span&gt;kubectl get pods -l app.kubernetes.io/name&lt;span style="color:#666"&gt;=&lt;/span&gt;falco -o name&lt;span style="color:#a2f;font-weight:bold"&gt;)&lt;/span&gt; -- cat /etc/shadow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Check that a log similar to this one has been printed:&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;15:32:04.318689836: Warning Sensitive file opened &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; reading by non-trusted program &lt;span style="color:#666"&gt;(&lt;/span&gt;&lt;span style="color:#b8860b"&gt;file&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;/etc/shadow &lt;span style="color:#b8860b"&gt;gparent&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;systemd &lt;span style="color:#b8860b"&gt;ggparent&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&amp;lt;NA&amp;gt; &lt;span style="color:#b8860b"&gt;gggparent&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&amp;lt;NA&amp;gt; &lt;span style="color:#b8860b"&gt;evt_type&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;openat &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;cat &lt;span style="color:#b8860b"&gt;proc_exepath&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;/usr/bin/cat &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;cat /etc/shadow &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;0&lt;/span&gt; &lt;span style="color:#b8860b"&gt;container_id&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;38e44b926166 &lt;span style="color:#b8860b"&gt;container_image&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;falcosecurity/falco &lt;span style="color:#b8860b"&gt;container_image_tag&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;0.40.0-debian &lt;span style="color:#b8860b"&gt;container_name&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;k8s_falco_falco-bggd7_default_7bb0145f-dca5-452d-a670-01e23d839e5a_1 &lt;span style="color:#b8860b"&gt;k8s_ns&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&amp;lt;NA&amp;gt; &lt;span style="color:#b8860b"&gt;k8s_pod_name&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&amp;lt;NA&amp;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;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="kind"&gt;kind&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://kind.sigs.k8s.io/docs/"&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/a&gt; lets you run Kubernetes on your local computer. This tool requires that you have &lt;a href="https://docs.docker.com/get-docker/"&gt;Docker&lt;/a&gt; installed and configured. Currently not working directly on Mac with Linuxkit, but these directions work on Linux guest OS running &lt;code&gt;kind&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The kind &lt;a href="https://kind.sigs.k8s.io/docs/user/quick-start/"&gt;Quick Start&lt;/a&gt; page shows you what you need to do to get up and running with kind.&lt;/p&gt;
&lt;p&gt;&lt;a class="btn btn-primary" href="https://kind.sigs.k8s.io/docs/user/quick-start/" role="button" aria-label="View kind Quick Start Guide"&gt;View kind Quick Start Guide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To run Falco on a &lt;code&gt;kind&lt;/code&gt; cluster is as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a configuration file. For example: &lt;code&gt;kind-config.yaml&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add the following to the 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;kind&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Cluster&lt;span style="color:#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;apiVersion&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;kind.x-k8s.io/v1alpha4&lt;span style="color:#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;nodes&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;role&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;control-plane&lt;span style="color:#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;extraMounts&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;# allow Falco to use devices provided by the kernel module&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;hostPath&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;/dev&lt;span style="color:#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;containerPath&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;/dev&lt;span style="color:#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;# allow Falco to use the Docker unix socket&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;hostPath&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;/var/run/docker.sock&lt;span style="color:#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;containerPath&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;/var/run/docker.sock&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;/li&gt;
&lt;li&gt;
&lt;p&gt;Create the cluster by specifying the configuration 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-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kind create cluster --config&lt;span style="color:#666"&gt;=&lt;/span&gt;./kind-config.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-kubernetes-quickstart/#deploy-falco"&gt;Deploy Falco with Helm&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="microk8s"&gt;MicroK8s&lt;/h2&gt;
&lt;p&gt;MicroK8s is the smallest, fastest multi-node Kubernetes. Single-package fully conformant lightweight Kubernetes that works on Linux, Windows, and Mac. Perfect for: Developer workstations, IoT, Edge, CI/CD.&lt;/p&gt;
&lt;p&gt;You can follow the official &lt;a href="https://microk8s.io/docs"&gt;Getting Started&lt;/a&gt; guide to install.&lt;/p&gt;
&lt;p&gt;Once the MicroK8s cluster is up and running, you can &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-kubernetes-quickstart/#deploy-falco"&gt;deploy Falco with Helm&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Docs: Additional Resources</title><link>https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-additional/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v0-43--falcosecurity.netlify.app/docs/getting-started/falco-additional/</guid><description>
&lt;h2 id="learn-more-about-falco"&gt;Learn more about Falco&lt;/h2&gt;
&lt;p&gt;If you'd like to dive deeper into the various components that make up Falco, check out the following resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Understand Falco's &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/concepts/event-sources/"&gt;event sources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Learn more about Falco &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/concepts/rules/"&gt;Rules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Review Falco &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/concepts/outputs/"&gt;Alerts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Discover Falco &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/concepts/plugins/"&gt;Plugins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Read the Falco &lt;a href="https://v0-43--falcosecurity.netlify.app/docs/reference/glossary/"&gt;Glossary&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>