From 692855a3aa55f2076bee30753032b04b59e5cf82 Mon Sep 17 00:00:00 2001 From: Mike Coleman Date: Sat, 20 Jan 2024 11:09:57 -0800 Subject: [PATCH 1/4] initial commit Signed-off-by: Mike Coleman --- .../en/blog/gcp-plugin/images/featured.png | Bin 0 -> 101923 bytes content/en/blog/gcp-plugin/index.md | 391 ++++++++++++++++++ 2 files changed, 391 insertions(+) create mode 100644 content/en/blog/gcp-plugin/images/featured.png create mode 100644 content/en/blog/gcp-plugin/index.md diff --git a/content/en/blog/gcp-plugin/images/featured.png b/content/en/blog/gcp-plugin/images/featured.png new file mode 100644 index 0000000000000000000000000000000000000000..b3bfa505abda1daa7d8e9749ab5ee23d2966b817 GIT binary patch literal 101923 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�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

$LAz0;ILiF32WxDyNokeKR4fTX0#;N3j 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⋙7sz;mz?8PPJPS(XFG2 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 literal 0 HcmV?d00001 diff --git a/content/en/blog/gcp-plugin/index.md b/content/en/blog/gcp-plugin/index.md new file mode 100644 index 000000000..d1e2fea84 --- /dev/null +++ b/content/en/blog/gcp-plugin/index.md @@ -0,0 +1,391 @@ +--- +title: Getting Started with the GCP Audit Logs Plugin +linktitle: Getting Started with the GCP Audit Logs Plugin +date: 2024-01-22 +author: Mike Coleman +slug: gcp-plugin +images: + - /blog/gcp-plugin/images/featured.png +tags: ["Google Cloud","GCP","Plugins"] +--- + +A while back I wrote a blog on how to run [Falco on Google Kubernetes Engine](https://falco.org/blog/falco-on-gke/). In this blog post, I will walk you through how to use Falco and the Google Cloud (GCP) Audit Logs plugin to extend Falco’s real-time security monitoring across a wide range of GCP services. + +Before we go much further, let’s discuss Falco’s plugin model. Falco plugins are shared libraries that conform to a documented API, hooking into core functionalities. You can use the model to add new event sources, define new fields to be extracted from events, parse content extracted from a data stream, and inject events asynchronously in a given data stream. All officially maintained Falco plugins can be found in the [plugin registry](https://github.com/falcosecurity/plugins). + +## GCP Audit Logs Plugin Overview + +As the name suggests, the GCP Audit Logs plugin ingests GCP Audit Logs for several key GCP services. + +The plugin uses an optimized GCP logging sink to send the most critical events from the monitored services to a user-defined Pub/Sub subscription. The GCP Audit Logs plugin subscribes to the Pub/Sub topic. It forwards the events from Pub/Sub to the Falco engine, which then filters the events and enriches the output with [custom metadata](https://github.com/falcosecurity/plugins/tree/master/plugins/gcpaudit#supported-fields). + + + + +The filtering process is based on a set of custom Falco rules authored with the [Mitre Att&ck framework](https://www.mitre.org/focus-areas/cybersecurity/mitre-attack) in mind. When an action, such as deleting a VM, triggers one of the rules, Falco sends out an alert. + +## GCP Audit Logs walkthrough + +In this section, you will learn how to install and use the GCP Audit Logs plugin. You’ll first configure the necessary GCP services. This includes setting up a Pub/Sub topic and subscription and creating a GCP Logging service sink. Then, you will build the plugin. Next, you’ll install Falco and configure it to use the plugin. Finally, you’ll test everything to ensure it’s all working correctly. + +### Prerequisites + +To follow along with this tutorial, you will need a GCP project and an account with appropriate permissions, including the ability to: + +* Create and manage compute instances +* Create and manage pub/sub topics +* Access GCP audit logs and create custom GCP Logging sinks + +You will also need to have the gcloud command line tool installed on your local machine or use Cloud Shell (which already has gcloud installed). + +Make sure you know the project ID of your GCP project. + +Finally, to build the plugin, you will need to have both Git and Go 1.17 or greater. If you use Cloud Shell, both tools are already installed for you. + +### Step 1: Configure the GCP services + +In this section, you’ll configure the necessary backend GCP services. + +> **NOTE**: This walkthrough creates resources that could incur charges against your GCP bill. The easiest way to reduce charges is to use a project that can be deleted when you are finished. Alternatively, you will need to delete the resources you created manually upon creation. There are instructions on how to do this at the end of the walkthrough. + +To begin make sure you’re authenticated to your GCP account in gcloud and you’ve selected the appropriate project. + +``` +gcloud auth login +gcloud config set project [project id] +``` + +It is helpful later on to have your GCP project ID configured in an environment variable. + + PROJECT_ID="[project id]" + +The next step is to create a Pub/Sub topic to receive the output from the GCP Audit logs. + + gcloud pubsub topics create falco-plugin-topic + +The plugin uses a Pub/Sub subscription to receive events, so create that now. + +``` +gcloud pubsub subscriptions create falco-plugin-sub \ +--topic=falco-plugin-topic` +``` + +Next, create a GCP Logging sink to filter events and send them over to the Pub/Sub topic you just created. In this example, you use Falco’s recommended sink query, but you can adjust the query as you see fit based on your organization’s needs. + +**NOTE**: You will need to manually add your project ID in the first line of the `--log-filter` parameter (all the quotations make variable interpolation difficult). + +``` +gcloud logging sinks create falco-plugin-sink pubsub.googleapis.com/projects/$PROJECT_ID/topics/falco-plugin-topic --log-filter='"projects/[PROJECT ID]/logs/cloudaudit.googleapis.com%2Factivity" AND +(protoPayload.serviceName="cloudsql.googleapis.com" OR +protoPayload.serviceName="logging.googleapis.com" OR +protoPayload.serviceName="iam.googleapis.com" OR +(protoPayload.serviceName="compute.googleapis.com" AND NOT +protoPayload.authenticationInfo.principalEmail=~"^service-") OR +protoPayload.serviceName="pubsub.googleapis.com" OR +protoPayload.serviceName="cloudkms.googleapis.com" OR +protoPayload.serviceName="cloudfunctions.googleapis.com" OR +protoPayload.serviceName="storage.googleapis.com" OR +protoPayload.serviceName="cloudresourcemanager.googleapis.com" OR +protoPayload.serviceName="bigquery.googleapis.com")' +``` + + +You should see a message that the sink was successfully created, but notice the guidance near the end regarding service account permissions (your service account email will be different than below). + +> Please remember to grant `serviceAccount:service-abc123@gcp-sa-logging.iam.gserviceaccount.com` the Pub/Sub Publisher role on the topic.` + +We need to allow the logging service permission to write to Pub/Sub. Start by creating an environment variable for the service account email. + +``` +SA=[service account email from the last command's output] +``` + +For example: + +``` +SA=serviceAccount:service-abc123@gcp-sa-logging.iam.gserviceaccount.com +``` + +Next, bind the Pub/Sub Publisher role to the to the service account. + +``` +gcloud projects add-iam-policy-binding $PROJECT_ID \ +--member=$SA \ +--role=roles/pubsub.publisher +``` + +At this point, any events that match the audit logs filter should be passed onto the Pub/Sub subscription. You can test that by creating and deleting a new Pub/Sub topic and then pulling messages from the subscription looking for any messages with “pubsub” in the output. + +``` +gcloud pubsub topics create test && \ +gcloud pubsub topics delete test +gcloud pubsub subscriptions pull falco-plugin-sub | grep pubsub +``` + +You should see logging output for the Pub/Sub commands you just issued. If you do not, verify that you have correctly created the logging sink (double check you specified your project ID) and that you have bound the Pub/Sub publisher role to the logging service account. + +### Step 2: Build the plugin + +In this step, you will build the GCP Audit Logs plugin, and copy it up to the VM that will be used to run Falco. + +We’ll start by creating the Falco VM. + +``` +gcloud compute instances create falco \ +--project=$PROJECT_ID \ +--zone=us-central1-a \ +--machine-type=e2-medium --create-disk=auto-delete=yes,boot=yes,device-name=falco,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20231213,mode=rw,size=10,type=projects/$PROJECT_ID/zones/us-central1-a/diskTypes/pd-balanced +``` + +While the VM is being created build the plugin. First, clone the plugins repository, then change to the appropriate directory, and finally compile the plugin shared library. + + +``` +git clone https://github.com/falcosecurity/plugins.git +cd plugins/plugins/gcpaudit +make +``` + + +This will create the plugin file (`libgcpaudit.so`), which needs to be copied to the Falco VM. + + +``` +gcloud compute scp libgcpaudit.so falco:~/ --zone=us-central1-a +``` + + +You also need to copy the Falco rules file for the plugin to the VM. + + +``` +cd rules +gcloud compute scp gcp_auditlog_rules.yaml falco:~/ --zone=us-central1-a +``` + +Now shell into the newly created VM. + +**Note**: You may need to follow the prompts to create a new SSH key. + +``` +gcloud compute ssh falco --zone=us-central1-a +``` + +## Step 4: Install Falco and Configure the Plugin + +Now you will install Falco, move the plugin and plugin rules files into the appropriate directory, and edit the Falco configuration file to enable the plugin. + +Start by trusting the Falcosecurity key. + +``` +curl -fsSL https://falco.org/repo/falcosecurity-packages.asc | \ +sudo gpg --dearmor -o /usr/share/keyrings/falco-archive-keyring.gpg +``` + + +Configure the Apt repository. + + +``` +echo "deb [signed-by=/usr/share/keyrings/falco-archive-keyring.gpg] https://download.falco.org/packages/deb stable main" | \ +sudo tee -a /etc/apt/sources.list.d/falcosecurity.list +``` + + +Update the packages list. + + +``` +sudo apt-get update -y +``` + + +The Falco installer needs to have the `dialog` package installed, so install that now. + + +``` +sudo apt install -y dialog +``` + + +Install the Falco binary. + + +``` +sudo apt-get install -y falco +``` + + +You will be prompted to choose a Falco driver: choose **_Modern eBPF_**. + +When asked if you want to automatically update the rulesets choose **_No_**. + +**Note**: In production, you might choose to do the automatic updates, but for this tutorial, it’s not necessary. + +Check to ensure Falco is up and running. + + +``` +sudo systemctl status falco-modern-bpf +``` + + +You should see something similar to the following. + +The output should indicate that Falco is “active (running)”. + +Press **_Q_** to continue. + +Verify that Falco is running appropriately. + + +``` +sudo cat /etc/shadow +cat /var/log/syslog | grep Warning +``` + + +You should see something similar to the following output. + + +``` +Jan 3 19:39:42 falco falco: 19:39:42.522581168: Warning Sensitive file opened for reading by non-trusted program (file=/etc/shadow gparent=bash ggparent=sshd gggparent=sshd evt_type=openat user=root user_uid=0 user_loginuid=1001 process=cat proc_exepath=/usr/bin/cat parent=sudo command=cat /etc/shadow terminal=34816 exe_flags=O_RDONLY container_id=host container_name=host) +``` + + +Copy the plugin and rules files into the appropriate directories. + + +``` +sudo cp libgcpaudit.so /usr/share/falco/plugins +sudo cp gcp_auditlog_rules.yaml /etc/falco +``` + + +Next, you need to edit the Falco configuration file. You’re going to be editing three sections. The first will tell Falco to load the plugin’s rules. The second will instruct Falco to load the plugin (along with the JSON plugin which is also required), and the third will provide configuration information for Falco. + +With whatever text editor you prefer open `/etc/falco/falco.yaml`. + +**Note**: You will need admin privileges to edit the file, so use `sudo` if necessary + +Find the `rules_file:` section and add an entry for `/etc/falco/gcp_auditlog_rules.yaml`. + + +``` +rules_file: +- /etc/falco/falco_rules.yaml +- /etc/falco/falco_rules.local.yaml +- /etc/falco/rules.d +- /etc/falco/gcp_auditlog_rules.yaml +``` + + +Find the `load_plugins:` section, and add entries for `json` and `gcpaudit`. + + +``` +load_plugins: [json, gcpaudit] +``` + + +Finally find the `plugins:` section and append an entry for the GCP Audit Logs plugin. + +> **Note**: Make sure to specify your [PROEJECT ID ] in the last line + + +``` +plugins: +- name: k8saudit + library_path: libk8saudit.so + init_config: + # maxEventSize: 262144 + # webhookMaxBatchSize: 12582912 + # sslCertificate: /etc/falco/falco.pem + open_params: "http://:9765/k8s-audit" +- name: cloudtrail + library_path: libcloudtrail.so + # see docs for init_config and open_params: +- name: json + library_path: libjson.so +- name: gcpaudit + library_path: libgcpaudit.so + open_params: "falco-plugin-sub" + init_config: + project_id: "[PROJECT ID]" +``` + + +Falco is configured to monitor changes to its configuration files, so there is no need to restart the service. + + +### Step 3: Test the Plugin + +With everything configured, the last step is to test the GCP Audit Logs plugin. + +If you read the [plugin rules file](https://github.com/falcosecurity/plugins/blob/master/plugins/gcpaudit/rules/gcp_auditlog_rules.yaml), you will see that there are dozens of different rules that you could test, but to keep it simple we’ll repeat the same test we did earlier and create and delete a Pub/Sub topic. + +Since the VM you created to run Falco does not have `gcloud` installed, the easiest way to do this section is to create a second shell instance either back on your local machine or in Cloud Shell - wherever you originally ran the gcloud commands from. + +In the newly instantiated shell, create and delete a Pub/Sub topic. + + +``` +gcloud pubsub topics create test && \ +gcloud pubsub topics delete test +``` + + +Move back into the SSH session for the Falco VM and check the Falco logs to see if they show entries for the Pub/Sub activity. + + cat /var/log/syslog | grep Pub/Sub + +You should see something similar to the following output: + +``` +Jan 3 19:48:00 falco falco: 19:48:00.117403000: Notice project=project-id A GCP Pub/Sub topic has been deleted by user=user@company.com userIP=10.0.0.1 +userAgent=google-cloud-sdk gcloud/457.0.0 command/gcloud.pubsub.topics.delete invocation-id/d8cf1344e1be4f52a951285c1c158b61 environment/devshell environment-version/None client-os/LINUX client-os-ver/6.1.58 client-pltf-arch/x86_64 interactive/True from-script/False python/3.11.6 term/screen (Linux 6.1.58+),gzip(gfe) authorizationInfo= rawRequest= +``` + +You might have noticed that there is only a notification for the deletion of the topic. Why would that be? Because there is no Falco rule defined for the creation of a new topic. If you wanted to be notified on topic creation, you could very easily add a rule to do that. + +If you’re interested in testing out other rules, go ahead and examine the rules file to see what other scenarios generate alerts (one that I, and many others, could have used for sure is the one that alerts when a storage bucket is made public). Once you have found a rule you want to test, simply perform that action in GCP and then examine the Falco outputs. + + +## Cleanup + +If you want to tear down the services you created during the walkthrough you have two choices. + + + +1. Delete the entire project. + +``` +gcloud projects delete $PROJECT_ID +``` + + +2. Delete just the resources that were created during the walkthrough. From the machine where you ran the gcloud commands originally: + + + + +``` +gcloud compute instances delete falco --zone=us-central1-a +gcloud pubsub subscriptions delete falco-plugin-sub +gcloud pubsub topics delete falco-plugin-topic +gcloud logging sinks delete falco-plugin-sink +``` + + +You might also want to delete the GitHub repo you cloned. + + +## Conclusion + +In this blog post, we took a look at how you can use the GCP Audit Logs plugin to use Falco to alert you to potential security issues across several GCP services. You learned how to set up the plugin by configuring the necessary backend GCP services, build the plugin, and then configure Falco to use it. Finally, you tested it out by creating and deleting a Pub/Sub topic. + +Even with all that we only scratched the surface of not only what the GCP Audit Log plugin can do, but plugins in general. If you check out the [Falco plugins GitHub repo](https://github.com/falcosecurity/plugins) you will see there are plugins for AWS Cloudtrail, Okta, Kubernetes audit logs, and many more. As I mentioned at the outset, if you have a stream of events with a defined set of outputs, you can almost certainly write a Falco plugin to monitor it - the world is your oyster as they say. + +Finally, you may be asking yourself “Ok, so Falco alerted me to this particular event, but what do I do with that information?” Stay tuned, that’s the topic of my next blog post: How to respond to Falco alerts using Falcosidekick. + +In the meantime, feel free to learn more about Falco over at [https://falco.org](https://falco.org). Or, check out the #falco channel on the [Kubernetes Slack channe](https://kubernetes.slack.com)l. If you want to learn more about how to leverage Falco plugins, check out my colleague [Nigel’s blog](https://falco.org/blog/falco-okta-identity/) on using the Okta plugin to create custom identity detections. From 0288a8d43fb6bfcdaf18c9197f7ef2be551238ef Mon Sep 17 00:00:00 2001 From: Mike Coleman Date: Sat, 20 Jan 2024 11:23:52 -0800 Subject: [PATCH 2/4] fixed typos and formatting Signed-off-by: Mike Coleman --- content/en/blog/gcp-plugin/index.md | 37 ++++------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) diff --git a/content/en/blog/gcp-plugin/index.md b/content/en/blog/gcp-plugin/index.md index d1e2fea84..23ebf7a57 100644 --- a/content/en/blog/gcp-plugin/index.md +++ b/content/en/blog/gcp-plugin/index.md @@ -20,7 +20,7 @@ As the name suggests, the GCP Audit Logs plugin ingests GCP Audit Logs for sever The plugin uses an optimized GCP logging sink to send the most critical events from the monitored services to a user-defined Pub/Sub subscription. The GCP Audit Logs plugin subscribes to the Pub/Sub topic. It forwards the events from Pub/Sub to the Falco engine, which then filters the events and enriches the output with [custom metadata](https://github.com/falcosecurity/plugins/tree/master/plugins/gcpaudit#supported-fields). - + The filtering process is based on a set of custom Falco rules authored with the [Mitre Att&ck framework](https://www.mitre.org/focus-areas/cybersecurity/mitre-attack) in mind. When an action, such as deleting a VM, triggers one of the rules, Falco sends out an alert. @@ -175,6 +175,8 @@ gcloud compute ssh falco --zone=us-central1-a Now you will install Falco, move the plugin and plugin rules files into the appropriate directory, and edit the Falco configuration file to enable the plugin. +In this example we are configuring Falco to capture both system calls with the modern eBPF probe and GCP events via the plugin. Enabling sytem call collecition is not necessary, but its included here so we can make sure Falco is running appropriately before installing the plugin. + Start by trusting the Falcosecurity key. ``` @@ -191,10 +193,8 @@ echo "deb [signed-by=/usr/share/keyrings/falco-archive-keyring.gpg] https://down sudo tee -a /etc/apt/sources.list.d/falcosecurity.list ``` - Update the packages list. - ``` sudo apt-get update -y ``` @@ -202,20 +202,16 @@ sudo apt-get update -y The Falco installer needs to have the `dialog` package installed, so install that now. - ``` sudo apt install -y dialog ``` - Install the Falco binary. - ``` sudo apt-get install -y falco ``` - You will be prompted to choose a Falco driver: choose **_Modern eBPF_**. When asked if you want to automatically update the rulesets choose **_No_**. @@ -224,12 +220,10 @@ When asked if you want to automatically update the rulesets choose **_No_**. Check to ensure Falco is up and running. - ``` sudo systemctl status falco-modern-bpf ``` - You should see something similar to the following. The output should indicate that Falco is “active (running)”. @@ -238,30 +232,24 @@ Press **_Q_** to continue. Verify that Falco is running appropriately. - ``` sudo cat /etc/shadow cat /var/log/syslog | grep Warning ``` - You should see something similar to the following output. - ``` Jan 3 19:39:42 falco falco: 19:39:42.522581168: Warning Sensitive file opened for reading by non-trusted program (file=/etc/shadow gparent=bash ggparent=sshd gggparent=sshd evt_type=openat user=root user_uid=0 user_loginuid=1001 process=cat proc_exepath=/usr/bin/cat parent=sudo command=cat /etc/shadow terminal=34816 exe_flags=O_RDONLY container_id=host container_name=host) ``` - Copy the plugin and rules files into the appropriate directories. - ``` sudo cp libgcpaudit.so /usr/share/falco/plugins sudo cp gcp_auditlog_rules.yaml /etc/falco ``` - Next, you need to edit the Falco configuration file. You’re going to be editing three sections. The first will tell Falco to load the plugin’s rules. The second will instruct Falco to load the plugin (along with the JSON plugin which is also required), and the third will provide configuration information for Falco. With whatever text editor you prefer open `/etc/falco/falco.yaml`. @@ -270,7 +258,6 @@ With whatever text editor you prefer open `/etc/falco/falco.yaml`. Find the `rules_file:` section and add an entry for `/etc/falco/gcp_auditlog_rules.yaml`. - ``` rules_file: - /etc/falco/falco_rules.yaml @@ -279,19 +266,15 @@ rules_file: - /etc/falco/gcp_auditlog_rules.yaml ``` - Find the `load_plugins:` section, and add entries for `json` and `gcpaudit`. - ``` load_plugins: [json, gcpaudit] ``` - Finally find the `plugins:` section and append an entry for the GCP Audit Logs plugin. -> **Note**: Make sure to specify your [PROEJECT ID ] in the last line - +> **Note**: Make sure to specify your [PROJECT ID ] in the last line ``` plugins: @@ -314,10 +297,8 @@ plugins: project_id: "[PROJECT ID]" ``` - Falco is configured to monitor changes to its configuration files, so there is no need to restart the service. - ### Step 3: Test the Plugin With everything configured, the last step is to test the GCP Audit Logs plugin. @@ -328,13 +309,11 @@ Since the VM you created to run Falco does not have `gcloud` installed, the easi In the newly instantiated shell, create and delete a Pub/Sub topic. - ``` gcloud pubsub topics create test && \ gcloud pubsub topics delete test ``` - Move back into the SSH session for the Falco VM and check the Falco logs to see if they show entries for the Pub/Sub activity. cat /var/log/syslog | grep Pub/Sub @@ -355,20 +334,14 @@ If you’re interested in testing out other rules, go ahead and examine the rule If you want to tear down the services you created during the walkthrough you have two choices. - - 1. Delete the entire project. ``` gcloud projects delete $PROJECT_ID ``` - 2. Delete just the resources that were created during the walkthrough. From the machine where you ran the gcloud commands originally: - - - ``` gcloud compute instances delete falco --zone=us-central1-a gcloud pubsub subscriptions delete falco-plugin-sub @@ -376,10 +349,8 @@ gcloud pubsub topics delete falco-plugin-topic gcloud logging sinks delete falco-plugin-sink ``` - You might also want to delete the GitHub repo you cloned. - ## Conclusion In this blog post, we took a look at how you can use the GCP Audit Logs plugin to use Falco to alert you to potential security issues across several GCP services. You learned how to set up the plugin by configuring the necessary backend GCP services, build the plugin, and then configure Falco to use it. Finally, you tested it out by creating and deleting a Pub/Sub topic. From 03e7d7def030cb59cfaa2d1b5142dc293c8b41d0 Mon Sep 17 00:00:00 2001 From: Mike Coleman Date: Wed, 24 Jan 2024 05:57:59 -0800 Subject: [PATCH 3/4] Fixed typo --- data/en/reference/daemon/config_options.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/en/reference/daemon/config_options.yaml b/data/en/reference/daemon/config_options.yaml index a6c7f1d4e..84ba84e41 100644 --- a/data/en/reference/daemon/config_options.yaml +++ b/data/en/reference/daemon/config_options.yaml @@ -279,4 +279,4 @@ * `chunk_wait_us`: number (Default: 1000) * `watch_freq_sec`: number (Default: 1) description: | - Since Falco 0.30.0, this allows configuring the how the container orchestrator metadata is downloaded. + Since Falco 0.30.0, this allows configuring how the container orchestrator metadata is downloaded. From 3b8afde70c1deaa7e2ae7f604f17feae5ba8f730 Mon Sep 17 00:00:00 2001 From: Mike Coleman Date: Wed, 24 Jan 2024 09:02:11 -0800 Subject: [PATCH 4/4] added information on selective override Signed-off-by: Mike Coleman --- content/en/docs/rules/appending.md | 134 -------------- content/en/docs/rules/overriding.md | 273 ++++++++++++++++++++++++++++ 2 files changed, 273 insertions(+), 134 deletions(-) delete mode 100644 content/en/docs/rules/appending.md create mode 100644 content/en/docs/rules/overriding.md diff --git a/content/en/docs/rules/appending.md b/content/en/docs/rules/appending.md deleted file mode 100644 index 17fed1a27..000000000 --- a/content/en/docs/rules/appending.md +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: Extending Rules -description: Appending to Lists, Rules, and Macros -linktitle: Extending Rules -weight: 50 ---- - -## Overview - -If you use multiple Falco {{< glossary_tooltip text="rules files" term_id="rules-file" >}}, you might want to append new items to an existing {{< glossary_tooltip text="list" term_id="lists" >}}, {{< glossary_tooltip text="macro" term_id="macros" >}} or {{< glossary_tooltip text="rule" term_id="rules" >}}. To do that, define an item with the same name as an existing item and add an `append: true` attribute to the YAML object. - -{{% alert color="warning" %}} -When appending to lists, items are automatically added to the **end** of the _list_.\ -When appending to rules or macros, the additional content is appended to the {{< glossary_tooltip text="condition" term_id="conditions" >}} field of the referred object. -{{% /alert %}} - -Note that when appending to lists, rules or macros, the order of the rule configuration files matters! For example if you append to an existing default rule (e.g. `Terminal shell in container`), you must ensure your custom configuration file (e.g. `/etc/falco/rules.d/custom-rules.yaml`) is loaded **after** the default configuration file (`/etc/falco/falco_rules.yaml`). - -This can be configured with multiple `-r` parameters in the right order, directly inside the falco configuration file (`falco.yaml`) via `rules_file` or if you use the official Helm chart, via the `falco.rulesFile` value. - -## Rewriting Rules - -On the contratry, if `append` is set to `false` (default value), the whole object will be redefined. This can be used to empty a list, [override a macro](/docs/reference/rules/macros-override/) or even change a rule completely. - -Take into account that override is complete, there will be no merge of previous and new content for that object. When redefining a rule, it will entirely replace the previous one, so if the new object defines fewer YAML map fields than required, Falco could return an error. - -The only exceptions to this are the `enabled` field, that when defined as a single accompanying field, it simply enables or disables a previously-defined rule. And obviously, the `append` field, that when set to `true` for either macros or rules, it just appends the condition/exceptions field. - -## Examples of Appending to Rules - -In all of the examples below, it's assumed one is running Falco via `falco -r /etc/falco/falco_rules.yaml -r /etc/falco/falco_rules.local.yaml`, or has the default entries for `rules_file` in falco.yaml, which has `/etc/falco/falco.yaml` first and `/etc/falco/falco_rules.local.yaml` second. - -### Appending to Lists - -Here's an example of appending to lists: - -##### `/etc/falco/falco_rules.yaml` - -```yaml -- list: my_programs - items: [ls, cat, pwd] - -- rule: my_programs_opened_file - desc: track whenever a set of programs opens a file - condition: proc.name in (my_programs) and (evt.type=open or evt.type=openat) - output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name) - priority: INFO -``` - -##### `/etc/falco/falco_rules.local.yaml` - -```yaml -- list: my_programs - append: true - items: [cp] -``` - -The rule `my_programs_opened_file` would trigger whenever any of `ls`, `cat`, `pwd`, or `cp` opened a file. - -### Appending to Macros - -Here's an example of appending to macros: - -##### `/etc/falco/falco_rules.yaml` - -```yaml -- macro: access_file - condition: evt.type=open - -- rule: program_accesses_file - desc: track whenever a set of programs opens a file - condition: proc.name in (cat, ls) and (access_file) - output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name) - priority: INFO -``` - -##### `/etc/falco/falco_rules.local.yaml` -```yaml -- macro: access_file - append: true - condition: or evt.type=openat -``` - -The rule `program_accesses_file` would trigger when `ls`/`cat` either used `open`/`openat` on a file. - -### Appending to Rules - -Here's an example of appending to rules: - -##### `/etc/falco/falco_rules.yaml` -```yaml -- rule: program_accesses_file - desc: track whenever a set of programs opens a file - condition: proc.name in (cat, ls) and evt.type=open - output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name) - priority: INFO -``` - -##### `/etc/falco/falco_rules.local.yaml` - -```yaml -- rule: program_accesses_file - append: true - condition: and not user.name=root -``` -The rule `program_accesses_file` would trigger when `ls`/`cat` either used `open` on a file, but not if the user was root. - -{{% alert title="Append Exceptions to Rules" color="primary" %}} -It is also possible to append exceptions to rules.\ -[Here](/docs/rules/exceptions/#appending-exception-values) you can find further information. -{{% /alert %}} - -## Precedence of logical operators when appending - -Remember that when appending rules and macros, the content of the referring rule or macro is simply added to the condition of the referred one. -This can result in unintended results if the original rule/macro has potentially ambiguous logical operators. - -Here's an example: - -```yaml -- rule: my_rule - desc: ... - condition: evt.type=open and proc.name=apache - output: ... - -- rule: my_rule - append: true - condition: or proc.name=nginx -``` - -Should `proc.name=nginx` be interpreted as relative to the `and proc.name=apache`, that is to allow either apache/nginx to open files, or relative to the `evt.type=open`, that is to allow apache to open files or to allow nginx to do anything? - -In cases like this, be sure to scope the logical operators of the original condition with parentheses when possible, or avoid appending conditions when not possible. - diff --git a/content/en/docs/rules/overriding.md b/content/en/docs/rules/overriding.md new file mode 100644 index 000000000..3630f248b --- /dev/null +++ b/content/en/docs/rules/overriding.md @@ -0,0 +1,273 @@ +--- +title: Overriding Rules +description: Overriding Falco rules +linktitle: Overriding Rules +weight: 50 +--- +## Overview +There may be cases where you need to adjust the behavior of the Falco-supplied {{< glossary_tooltip text="list" term_id="lists" >}}, {{< glossary_tooltip text="macro" term_id="macros" >}}, and {{< glossary_tooltip text="rule" term_id="rules" >}}. + +To enable this Falco allows you to define multiple rules files. The additional rules files can be used to add new lists, macros and rules or to override (modify) existing ones. + +{{% alert color="warning" %}} +Note that when overriding existing lists, macro, or rule the order of the rule configuration files matters. For example if you append to an existing default rule, you must ensure your custom rules file (e.g. `/etc/falco/rules.d/custom-rules.yaml`) is loaded **after** the default rules file (`/etc/falco/falco_rules.yaml`). + +The load order can be configured from the command line using multiple `-r` parameters in the right order, directly inside the falco configuration file (`falco.yaml`) via the `rules_file` section or through the official Helm chart, using the `falco.rulesFile` value. +{{% /alert %}} + +To facilitate modifying existing lists, macros and rules Falco provides an `override` section that can be added to your custom rules file. Within the `override` section you can specify whether you want to `append` or `replace` information for the given rule, list or macro. + +`append` allows you to add additional values to a list, macro, or rule key + +`replace` allows you to replace the value of an list, macro or macro key + +{{% alert color="warning" %}} +`append` and `replace` cannot be used together. Trying to apply both `append` and `replace` to a key will result in an error. +{{% /alert %}} + +The keys that can be overridden vary by rules component and action being taken: + +* Lists (`append` or `replace`): `{"items"}` +* Macros (`append or replace`): `{"condition"}` +* Rules (`append`): `{"condition", "output", "desc", "tags", "exceptions"}` +* Rules (`replace`): `{"condition", "output", "desc", "priority", "tags", "exceptions", "enabled", "warn_evttypes", "skip-if-unknown-filter"}` + +## Examples of using the `ovverride` section + +The following examples illustrate how you can use the override section to modify existing lists, macros, and rules. + +In all of the examples below, it's assumed one is running Falco via `falco -r /etc/falco/falco_rules.yaml -r /etc/falco/falco_rules.local.yaml`, or has the default entries for `rules_file` in falco.yaml, which has `/etc/falco/falco.yaml` first and `/etc/falco/falco_rules.local.yaml` second. + +### Append an item to a list + +##### `/etc/falco/falco_rules.yaml` + +```yaml +- list: my_programs + items: [ls, cat, pwd] + +- rule: my_programs_opened_file + desc: track whenever a set of programs opens a file + condition: proc.name in (my_programs) and (evt.type=open or evt.type=openat) + output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name) + priority: INFO +``` + +##### `/etc/falco/falco_rules.local.yaml` + +```yaml +- list: my_programs + items: cp + override: + items: append +``` + +The rule `my_programs_opened_file` would trigger whenever any of `ls`, `cat`, `pwd`, or `cp` opened a file. + +### Replace items in a list + +##### `/etc/falco/falco_rules.yaml` + +```yaml +- list: my_programs + items: [ls, cat, pwd] + +- rule: my_programs_opened_file + desc: track whenever a set of programs opens a file + condition: proc.name in (my_programs) and (evt.type=open or evt.type=openat) + output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name) + priority: INFO +``` + +##### `/etc/falco/falco_rules.local.yaml` + +```yaml +- list: my_programs + items: vi, vim, nano + override: + items: replace +``` +The rule `my_programs_opened_file` would trigger whenever any of `vi`, `vim`, or `nano` opened a file. + +### Append an item to a macro + +##### `/etc/falco/falco_rules.yaml` + +```yaml +- macro: access_file + condition: evt.type=open + +- rule: program_accesses_file + desc: track whenever a set of programs opens a file + condition: proc.name in (cat, ls) and (access_file) + output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name) + priority: INFO +``` + +##### `/etc/falco/falco_rules.local.yaml` +```yaml +- macro: access_file + condition: or evt.type=openat + override: + condition: append + +``` + +The rule `program_accesses_file` would trigger when `ls`/`cat` either used `open`/`openat` on a file. + +### Append and replace items in a rule + +##### `/etc/falco/falco_rules.yaml` +```yaml +- rule: program_accesses_file + desc: track whenever a set of programs opens a file + condition: proc.name in (cat, ls) and evt.type=open + output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name) + priority: INFO +``` + +##### `/etc/falco/falco_rules.local.yaml` + +```yaml +- rule: program_accesses_file + condition: and not user.name=root + output: A file (user=%user.name command=%proc.cmdline file=%fd.name) was opened by a monitored program + override: + condition: append + output: replace +``` +The rule `program_accesses_file` would trigger when `ls`/`cat` either used `open` on a file, but not if the user was root. + +The new output message would be `A file (user=%user.name command=%proc.cmdline file=%fd.name) was opened by a monitored program` + +## Appending to existing rules using `append:true` (deprecated) + +{{% alert color="warning" %}} +This method has been depreciated and will be removed in Falco 1.0. +{{% /alert %}} + +If you use multiple Falco {{< glossary_tooltip text="rules files" term_id="rules-file" >}}, you might want to append new items to an existing lists, macros or rules. To do that, define an item with the same name as an existing item and add an `append: true` attribute to the YAML object. + +{{% alert color="warning" %}} +When appending to lists, items are automatically added to the **end** of the _list_.\ +When appending to rules or macros, the additional content is appended to the {{< glossary_tooltip text="condition" term_id="conditions" >}} field of the referred object. +{{% /alert %}} + +Note that when appending to lists, rules or macros, the order of the rule configuration files matters! For example if you append to an existing default rule (e.g. `Terminal shell in container`), you must ensure your custom configuration file (e.g. `/etc/falco/rules.d/custom-rules.yaml`) is loaded **after** the default configuration file (`/etc/falco/falco_rules.yaml`). + +This can be configured with multiple `-r` parameters in the right order, directly inside the falco configuration file (`falco.yaml`) via `rules_file` or if you use the official Helm chart, via the `falco.rulesFile` value. + +## Redefining Rules + +On the contrary, if `append` is set to `false` (default value), the whole object will be redefined. This can be used to empty a list, [apply user-specific settings to a macro](/docs/reference/rules/macros-override/) or even change a rule completely. + +Take into account that when redefining a rule, it will entirely replace the previous rule, so if the new object defines fewer fields than required, Falco could return an error. + +The only exceptions to this are the `enabled` field, that when defined as a single accompanying field, it simply enables or disables a previously-defined rule. And obviously, the `append` field, that when set to `true` for either macros or rules, it just appends the condition/exceptions field. + +## Examples of Appending to Rules + +In all of the examples below, it's assumed one is running Falco via `falco -r /etc/falco/falco_rules.yaml -r /etc/falco/falco_rules.local.yaml`, or has the default entries for `rules_file` in falco.yaml, which has `/etc/falco/falco.yaml` first and `/etc/falco/falco_rules.local.yaml` second. + +### Appending to Lists + +Here's an example of appending to lists: + +##### `/etc/falco/falco_rules.yaml` + +```yaml +- list: my_programs + items: [ls, cat, pwd] + +- rule: my_programs_opened_file + desc: track whenever a set of programs opens a file + condition: proc.name in (my_programs) and (evt.type=open or evt.type=openat) + output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name) + priority: INFO +``` + +##### `/etc/falco/falco_rules.local.yaml` + +```yaml +- list: my_programs + append: true + items: [cp] +``` + +The rule `my_programs_opened_file` would trigger whenever any of `ls`, `cat`, `pwd`, or `cp` opened a file. + +### Appending to Macros + +Here's an example of appending to macros: + +##### `/etc/falco/falco_rules.yaml` + +```yaml +- macro: access_file + condition: evt.type=open + +- rule: program_accesses_file + desc: track whenever a set of programs opens a file + condition: proc.name in (cat, ls) and (access_file) + output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name) + priority: INFO +``` + +##### `/etc/falco/falco_rules.local.yaml` +```yaml +- macro: access_file + append: true + condition: or evt.type=openat +``` + +The rule `program_accesses_file` would trigger when `ls`/`cat` either used `open`/`openat` on a file. + +### Appending to Rules + +Here's an example of appending to rules: + +##### `/etc/falco/falco_rules.yaml` +```yaml +- rule: program_accesses_file + desc: track whenever a set of programs opens a file + condition: proc.name in (cat, ls) and evt.type=open + output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name) + priority: INFO +``` + +##### `/etc/falco/falco_rules.local.yaml` + +```yaml +- rule: program_accesses_file + append: true + condition: and not user.name=root +``` +The rule `program_accesses_file` would trigger when `ls`/`cat` either used `open` on a file, but not if the user was root. + +{{% alert title="Append Exceptions to Rules" color="primary" %}} +It is also possible to append exceptions to rules.\ +[Here](/docs/rules/exceptions/#appending-exception-values) you can find further information. +{{% /alert %}} + +## Precedence of logical operators when appending + +Remember that when appending rules and macros, the content of the referring rule or macro is simply added to the condition of the referred one. +This can result in unintended results if the original rule/macro has potentially ambiguous logical operators. + +Here's an example: + +```yaml +- rule: my_rule + desc: ... + condition: evt.type=open and proc.name=apache + output: ... + +- rule: my_rule + append: true + condition: or proc.name=nginx +``` + +Should `proc.name=nginx` be interpreted as relative to the `and proc.name=apache`, that is to allow either apache/nginx to open files, or relative to the `evt.type=open`, that is to allow apache to open files or to allow nginx to do anything? + +In cases like this, be sure to scope the logical operators of the original condition with parentheses when possible, or avoid appending conditions when not possible. +