Financial security teams operating Kubernetes-based microservice architectures (MSA) in cloud-native environments have adopted Falco to effectively address increasing runtime threats. Falco is regarded as a powerful tool that leverages eBPF technology to monitor system call events in real-time at the container and host levels, detecting suspicious activities based on defined security rules. In its early adoption phase, Falco, as expected, generated a vast number of security events, significantly enhancing visibility. However, the problem was that a substantial portion of these events were false positives caused by the normal operation of applications, rather than actual threats. Given the nature of the financial sector, there is an obligation to analyze even minor security events without omission. However, due to numerous false positives, security personnel faced difficulties in identifying and responding to actual threats. This post presents practical strategies to effectively eliminate false positives through Falco rule optimization in such environments, thereby maximizing detection efficiency so that security teams can concentrate on critical threats.
A common challenge faced by many organizations operating Falco in Kubernetes environments is the generality of Falco's default rule set. The default rule set is designed to detect potential threats across various environments, making it prone to generating alerts for normal behaviors of specific applications, deeming them abnormal. For instance, temporary file creation occurring in specific CI/CD pipelines or administrative tasks performed by certain service accounts were frequently categorized as false positives. An easily overlooked aspect is that these false positive alerts not not only increase operational burden but also diminish overall security response capabilities by burying actual critical threat signals within 'noise'. Industry reports indicate that excessive false positives elevate the fatigue of security personnel, ultimately leading to alert fatigue regarding important threat notifications. This resulted in a surge in the number of events forwarded to centralized security information and event management systems like Seekurity SIEM, exacerbating issues such as SIEM performance degradation and insufficient time for security analysts to conduct actual threat analysis. The short lifecycle and dynamic nature of containers, in particular, presented a critical requirement that made false positive elimination even more complex.
Technology Selection Process
To address these challenges, various technical approaches were reviewed. Initially, the adoption of other host-level IDS/IPS solutions or integrated CWPP (Container Workload Protection Platform) solutions, in addition to Falco, was considered. However, Falco was already providing deep visibility at the system call level based on eBPF in Kubernetes environments, and the prevailing judgment was that it was well-suited for lightweight container environments. Furthermore, Falco offers detection rules for various tactics and techniques in conjunction with the MITRE ATT&CK framework, which was highly advantageous for building threat scenarios through Seekurity SIEM/SOAR in the existing security operations environment. In contrast to the 'black box' form of detection rules offered by other commercial solutions, Falco notably provides the flexibility to directly customize and fine-tune its rule sets. This served as a decisive factor in implementing detection logic optimized for our specific application and infrastructure environments.
The key criteria considered during the technology selection process were as follows. First, the provision of deep visibility into runtime security was essential. Falco leverages eBPF to collect detailed events at the system call level, which is critical for detecting advanced attacks such as container escapes and privilege escalation. Second, tight integration and scalability with the Kubernetes environment were crucial. Falco integrates with the Kubernetes API Server, enabling rules to be written using rich Kubernetes metadata such as Pods, Namespaces, and Deployments. Third, customization and flexible rule management were required. To reflect the specific characteristics of our environment and reduce false positives, direct control over the rules was necessary. Based on these criteria, the strategy chosen was to retain Falco as the core runtime security detection engine while optimizing Falco rules themselves to address excessive false positive issues. Simultaneously, it was decided to strengthen the integration with Seekurity SIEM/SOAR for efficient management of detected events and automated responses. Additionally, a plan for integration with the FRIIM CNAPP solution was also reviewed to enhance build-time and deploy-time security, minimizing threat exposure at the runtime stage.
Implementation Process: Falco Rule Optimization Strategy
Falco Rule Set Analysis and Initial Optimization
The first step in Falco rule optimization was an in-depth analysis of the existing rule set. Falco rules consist of three core components: Macros, Lists, and Rules. Macros define reusable groups of conditions, and Lists define sets of specific values. Rules are the logic that ultimately detects events, and they can express complex conditions concisely by referencing Macros and Lists. We first meticulously reviewed the existing rule files (falco_rules.yaml, falco_rules.local.yaml) to identify rules that were unnecessary for our environment or generated an excessive number of alerts. For example, rules specific to certain operating systems or architectures were disabled or modified.
One of the most effective initial optimization methods was adding exceptions (whitelisting) for normal application behavior. If an action occurring within a specific user, process, path, or Kubernetes Namespace was detected by an abnormal rule, conditions were added to explicitly whitelist that action. The following is an example of a Falco rule that whitelists specific file access by an Nginx process running within a particular Pod in a specific Namespace.
# falco_rules.local.yaml
- rule: Disallow Sensitive File Access
desc: "Detect attempts to access sensitive files by non-privileged processes."
condition: >
open_write and not proc.name in (package_managers) and
fd.name contains "/etc/shadow" and
not user.name in (root, system_users)
and not (k8s.ns.name = "my-app-namespace" and k8s.pod.name contains "nginx" and proc.name = "nginx")
output: "Sensitive file accessed by non-privileged process (user=%user.name client_ip=%fd.cip command=%proc.cmdline fd.name=%fd.name k8s.ns=%k8s.ns.name k8s.pod=%k8s.pod.name)"
priority: CRITICAL
tags: [filesystem, host, container, access]
In the example above, the not (k8s.ns.name = "my-app-namespace" and k8s.pod.name contains "nginx" and proc.name = "nginx") part is a condition that whitelists the action of an Nginx process accessing /etc/shadow from an Nginx Pod within the my-app-namespace. Through such detailed whitelisting tailored to the environment, the number of false positive alerts was significantly reduced.
Custom Rule Development and Fine-Tuning
A strength of Falco is the ability to freely develop custom rules tailored to an organization's specific threat model and environment. In addition to tuning existing rule sets, custom rules were developed to detect threat scenarios specific to our environment. For instance, rules were created to detect unusual outbound network connection attempts from a specific container to the external internet, or attempts by an unprivileged container to access sensitive paths on the host file system.
# falco_rules.local.yaml
- rule: Unexpected Outbound Connection from Web Pod
desc: "Detect unexpected outbound connections from web application pods."
condition: >
outbound and fd.sip.is_private = false and
k8s.ns.name = "web-app-namespace" and k8s.pod.label.app = "webapp" and
not fd.port in (80, 443)
output: "Unexpected outbound connection from web app (user=%user.name proc=%proc.name cmdline=%proc.cmdline connection=%fd.name %fd.sip:%fd.sport -> %fd.dip:%fd.dport)"
priority: WARNING
tags: [network, container, web]
- rule: Host Mountpoint Access from Non-Privileged Container
desc: "Detect access to host mountpoints (e.g., /proc, /sys) from containers not explicitly allowed."
condition: >
open_read and fd.name startswith "/host" and
not k8s.ns.name in ("kube-system", "monitoring") and
not k8s.pod.name contains "privileged-daemonset"
output: "Host mountpoint accessed from non-privileged container (user=%user.name proc=%proc.name cmdline=%proc.cmdline fd.name=%fd.name k8s.ns=%k8s.ns.name k8s.pod=%k8s.pod.name)"
priority: CRITICAL
tags: [host, container, privilege_escalation]
These custom rules focused on detailing the condition field. By actively utilizing Kubernetes metadata such as k8s.ns.name and k8s.pod.label, the context of specific applications was accurately reflected, thereby minimizing the potential for false positives and increasing the detection accuracy for actual threats. Furthermore, the priority field of the rules was adjusted to clearly classify alerts based on importance, and this was integrated with Seekurity SIEM to enable concentrated analysis of critical events and execution of automated response playbooks. This also opened up the potential for leveraging AI-powered analysis tools, such as KYRA AI Sandbox, to analyze Falco events and obtain suggestions for rule optimization.
Rule Management Through CI/CD Pipeline Integration
Since Falco rules are managed as static YAML files, it is highly efficient to manage them by integrating with a GitOps-based CI/CD pipeline. A workflow was established where all Falco rule files are managed in a Git repository, and only rules approved after code review are deployed to the production environment when changes occur. Prior to rule deployment, syntactic errors in the rule files were preemptively validated using the falco --validate-rules command to prevent deployment failures.
# Falco 룰 유효성 검사 예시
falco -V /etc/falco/falco.yaml -r /etc/falco/falco_rules.yaml -r /etc/falco/falco_rules.local.yaml
This automated rule management process ensures consistency in rule updates and transparently manages change history, enabling swift rollbacks in case of issues. Furthermore, it contributes to establishing a DevSecOps culture, strengthening collaboration between development and security teams, and supporting the rapid reflection of application changes in security rule sets. Ultimately, a roadmap was established to integrate with the FRIIM CNAPP solution to achieve unified security policy management, including Falco rule validation and deployment within the CI/CD pipeline.
Results and Achievements
The Falco rule optimization project yielded quantitative and qualitative results that exceeded expectations. The most prominent quantitative achievement was a significant reduction in the daily number of Falco alerts and the false positive rate. Prior to optimization, an average of thousands of alerts were generated daily, severely impairing the operational efficiency of the security team. However, after rule optimization, the number of alerts dramatically decreased, and the proportion of alerts related to actual threats increased. This allowed the security team to secure more time for analyzing critical threats and to strengthen their response capabilities.
| Metric | Before Optimization | After Optimization | Improvement Rate |
|---|---|---|---|
| Daily Falco Alerts | 5,000 or more | 500 or less | 90%↓ |
| False Positive Rate | 95% or more | 10% or less | 85%↓ |
| Actual Threat Analysis Time | 1 day or more | Within 2 hours | 80%↑ |
| Automation Level of Response | Manual | Partial Automation | - |
Qualitatively, the security team's work fatigue significantly decreased, and an environment was created that allowed them to focus on critical threat analysis and response. The phenomenon of 'Alert Fatigue' caused by false positives was alleviated, which also had a positive impact on team morale. Furthermore, as the quality of events flowing into Seekurity SIEM improved, the accuracy of Seekurity SOAR's automated playbook execution increased, contributing to a reduction in threat response times. Ultimately, the overall efficiency of the threat detection and response process was enhanced, which was accounted for as a significant achievement in further strengthening the security posture of the cloud-native environment.
Lessons Learned and Retrospection
Through this Falco rule optimization project, several important lessons were learned. The first unexpected realization was that the generality of Falco's default rule set generated far more false positives in specific production environments than anticipated. It was confirmed that a substantial reduction in false positives could only be achieved by not merely disabling a few rules, but by deeply tuning the detailed conditions of Macros, Lists, and Rules. During this process, the necessity of close collaboration with the application development team was also realized. Only by accurately understanding the application's behavior and infrastructure configuration from the development team could rules be written that reduced false positives while maintaining actual threat detection capabilities. Specifically, the insights from the development team played a decisive role in identifying unusual file access patterns permitted only for specific service accounts or Pods.
If the Falco rule optimization project were to be initiated again, more resources would be allocated from the early stages to analyze existing Falco alert data using AI-powered analysis tools, such as KYRA AI Sandbox, and to review the rule optimization patterns suggested by AI. AI-based analysis is expected to significantly increase the efficiency of rule tuning by uncovering complex correlations that humans might easily overlook. Furthermore, while Falco rule optimization plays a crucial role in runtime security, it was reaffirmed that fundamentally strengthening the 'Shift-Left' approach—reducing security vulnerabilities from the development phase—is even more important. The focus should be on the fact that minimizing the number of threats reaching runtime by scanning for vulnerabilities and applying policies during build-time/deploy-time through the FRIIM CNAPP solution is a more efficient security strategy from a long-term perspective. It is crucial not to overlook that while false positive elimination improves the efficiency of security operations, it is a different dimension from reducing the likelihood of actual threats. In essence, a balanced approach between detection and prevention is key.
Application Guide
Organizations aiming to successfully implement Falco rule optimization will find it effective to approach it incrementally, referencing the following guide. First, Environment Characterization and Initial Rule Set Review are paramount. It is essential to meticulously analyze the characteristics of the applications, services, network configurations, and CI/CD pipelines within the operational Kubernetes environment, and to identify rules in the default Falco rule set that are unsuitable for the environment or highly likely to cause false positives. During this process, an initial workshop with the development team should be conducted to enhance understanding of normal application behavior patterns.
Second, a strategy for Gradual Rule Application and Monitoring should be established. Rather than changing and applying all rules at once, the effects of modified rules should be thoroughly validated, starting with specific Namespaces or environments of lower criticality. During this process, it is crucial to continuously monitor Falco event data flowing into Seekurity SIEM and to establish a feedback loop for immediate rule modification in case of false positives. Third, Proactive Utilization of Kubernetes Context is recommended. By including rich Kubernetes metadata provided by Falco, such as k8s.pod.name, k8s.ns.name, and k8s.container.image, in rule conditions, detection accuracy can be maximized and false positives minimized. Finally, focus should be placed on Maximizing Synergy through Integration with Security Operations Solutions. By centralizing high-quality events detected through optimized Falco rules into Seekurity SIEM and leveraging Seekurity SOAR to execute automated analysis and response playbooks, the entire process from threat detection to response can be managed efficiently.
Initiate Cloud Security with FRIIM CNAPP
FRIIM CNAPP
An integrated security platform that protects the entire cloud-native environment, from development to operations. Manage CSPM, CWPP, and CIEM from a single platform.
Learn more about FRIIM CNAPP →

