在容器运行的过程中,攻击者可能会入侵容器应用,进行容器逃逸等攻击行为。为了及时发现这些入侵行为,我们需要进行容器运行时的入侵检测。
在本篇文章中,我们将介绍如何安装Falco并自定义检测规则来进行容器运行时的入侵检测。
01、Falco简介
Falco 是一个开源的运行时安全检测引擎,可在主机、容器、K8s 和云环境中提供运行时安全性,实时检测异常行为和潜在安全威胁并发出警报。本文以Centos为测试环境,在宿主机上安装Falco,并在K8s中集成Falco。
02、在主机上安装Falco
rpm --import https://falco.org/repo/falcosecurity-packages.asc
curl -s -o /etc/yum.repos.d/falcosecurity.repo https://falco.org/repo/falcosecurity-rpm.repo
yum update -y
yum install -y
falco
# 执行命令测试Falco是否安装成功,若失败,尝试执行 falcoctl driver install 下载预编译驱动
sudo systemctl list-unit-files "falco*"
# 启用eBPF
sudo systemctl enable falco-modern-bpf.service
#启用falco-modern-bpf.service还会falco-custom.service创建一个名为 的新别名/服务,
sudo systemctl list-unit-files "falco*"
#启动服务
systemctl start falco-modern-bpf.service
systemctl status falco-modern-bpf.service
syslog_output: #关闭默认输出
enable: false
stdout_output: #关闭默认输出
enable: false
file_output: #输出到一个指定的日志文件中。
enable: true
keep_alive:false
filename: /var/log/falco.log
more /etc/shadow
tail -f /var/log/falco.log
- 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.fla
gs %container.info)
priority: critical
tags: [container, shell]
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm repo update
helm install --replace falco --namespace falco --create-namespace --set tty=true falcosecurity/falco
kubectl get pods -n falco
![基于Falco实现运行时入侵检测 基于Falco实现运行时入侵检测]()
(4)创建一个pod,并触发规则
kubectl run pod1 --image=nginx
kubectl exec -it pod1 -- cat /etc/shadow
kubectl logs -l app.kubernetes.io/name=falco -n falco -c falco | grep Warning
helm upgrade --namespace falco falco falcosecurity/falco --set falcosidekick.enabled=true --set falcosidekick.webui.enabled=true
kubectl -n falco get svc
原文始发于微信公众号(Bypass):基于Falco实现运行时入侵检测
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论