基于Falco实现运行时入侵检测

admin 2025年4月1日14:29:36评论21 views字数 2448阅读8分9秒阅读模式

在容器运行的过程中,攻击者可能会入侵容器应用,进行容器逃逸等攻击行为。为了及时发现这些入侵行为,我们需要进行容器运行时的入侵检测。

在本篇文章中,我们将介绍如何安装Falco并自定义检测规则来进行容器运行时的入侵检测。

01、Falco简介

Falco 是一个开源的运行时安全检测引擎,可在主机、容器、K8s 和云环境中提供运行时安全性,实时检测异常行为和潜在安全威胁并发出警报。本文以Centos为测试环境,在宿主机上安装Falco,并在K8s中集成Falco。

02、在主机上安装Falco

(1)在cenos上,导入 Falco GPG 密钥,配置yum存储库,更新软件包列表,安装falco。
rpm --import https://falco.org/repo/falcosecurity-packages.asccurl -s -o /etc/yum.repos.d/falcosecurity.repo https://falco.org/repo/falcosecurity-rpm.repoyum update -yyum install -y falco # 执行命令测试Falco是否安装成功,若失败,尝试执行 falcoctl driver install 下载预编译驱动
基于Falco实现运行时入侵检测
(2)使用 systemd 管理 Falco
sudo systemctl list-unit-files "falco*"# 启用eBPFsudo systemctl enable falco-modern-bpf.service#启用falco-modern-bpf.service还会falco-custom.service创建一个名为 的新别名/服务,sudo systemctl list-unit-files "falco*"#启动服务systemctl start falco-modern-bpf.servicesystemctl status falco-modern-bpf.service
基于Falco实现运行时入侵检测
(3)配置Falco
syslog_output:     #关闭默认输出  enablefalse   stdout_output:      #关闭默认输出  enablefalsefile_output:      #输出到一个指定的日志文件中。  enabletrue  keep_alive:false  filename: /var/log/falco.log
(4)触发规则,查看安全告警
more /etc/shadow     tail -f /var/log/falco.log
基于Falco实现运行时入侵检测
03、自定义检测规则
安全场景:当容器遭受入侵,攻击者通过web漏洞尝试进行远程命令执行或是反弹shell,执行一些系统命令。
检测规则:自定义检测规则,检测父进程为apache2,子进程为bash,匹配到这条策略就会触发告警。
Falco 编写的自定义检测规则:
- rule: Apache spawns bash shell (Web Attack Alert)  desc: “检测 Apache 进程异常启动 Bash,可能为 Web 漏洞利用(如反弹 Shell、远程命令执行)”  condition: evt.type=execve and container.id!=host and proc.pname=apache2 and proc.name="bash"  output: High risk process behavior in container, Apache spawns bash shell (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 exe_flags=%evt.arg.flags %container.info)  priority: critical  tags: [container, shell]
基于Falco实现运行时入侵检测
04、在 K8s集群中部署 Falco
Falco 可以通过 DaemonSet 部署在 Kubernetes 集群的每个节点上,从而实时监控整个集群的系统调用。
(1)添加 Helm 仓库并更新
helm repo add falcosecurity https://falcosecurity.github.io/chartshelm repo update
(2)使用Helm安装Falco
helm install --replace falco --namespace falco --create-namespace --set tty=true falcosecurity/falco
(3)检查 Falco pod 是否正在运行
kubectl get pods -n falco
基于Falco实现运行时入侵检测
(4)创建一个pod,并触发规则
kubectl run pod1 --image=nginxkubectl exec -it pod1 -- cat /etc/shadow
(5)查看falco日志
kubectl logs -l app.kubernetes.io/name=falco -n falco -c falco | grep Warning
基于Falco实现运行时入侵检测
(6)安装 Falcosidekick 和 Falcosidekick-UI
helm upgrade --namespace falco falco falcosecurity/falco --set falcosidekick.enabled=true --set falcosidekick.webui.enabled=true
(7)查看svc,修改为NodeProt
kubectl -n falco get svc
(8)浏览器访问 Falcosidekick UI,默认用户名和密码是admin/ admin。
基于Falco实现运行时入侵检测

原文始发于微信公众号(Bypass):基于Falco实现运行时入侵检测

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月1日14:29:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   基于Falco实现运行时入侵检测http://cn-sec.com/archives/3904208.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息