搬瓦工 VPS Falco 运行时安全监控教程

Falco 是由 Sysdig 创建并捐赠给 CNCF 的云原生运行时安全工具。它通过监控 Linux 内核的系统调用来实时检测容器和主机上的异常行为,包括意外的进程执行、可疑的文件访问、异常的网络连接等。与 Trivy 等构建时扫描工具不同,Falco 专注于运行时的行为监控,能够发现镜像扫描无法覆盖的动态攻击行为。

一、安装 Falco

1.1 包管理器安装

# 添加仓库
curl -fsSL https://falco.org/repo/falcosecurity-packages.asc | gpg --dearmor -o /usr/share/keyrings/falco-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/falco-archive-keyring.gpg] https://download.falco.org/packages/deb stable main" > /etc/apt/sources.list.d/falcosecurity.list
apt update

# 安装 Falco(使用现代 eBPF 驱动)
apt install falco -y

# 启动服务
systemctl start falco
systemctl enable falco

1.2 Docker 部署

docker run -d \
  --name falco \
  --restart always \
  --privileged \
  -v /var/run/docker.sock:/host/var/run/docker.sock \
  -v /proc:/host/proc:ro \
  -v /etc:/host/etc:ro \
  falcosecurity/falco:latest

二、默认检测规则

Falco 内置了丰富的检测规则,覆盖常见的安全威胁:

  • 容器内启动交互式 Shell
  • 容器内读取敏感文件(/etc/shadow、/etc/passwd)
  • 容器内执行特权操作
  • 异常的出站网络连接
  • 系统关键目录的写入操作
  • 新进程的可疑行为(如挖矿程序特征)
# 查看默认规则文件
cat /etc/falco/falco_rules.yaml

# 查看本地自定义规则
cat /etc/falco/falco_rules.local.yaml

三、自定义规则

cat >> /etc/falco/falco_rules.local.yaml <<'EOF'
# 检测容器内的反弹 Shell
- rule: Reverse Shell in Container
  desc: Detect reverse shell connections from containers
  condition: >
    container and
    evt.type=connect and
    fd.typechar='4' and
    fd.ip != "0.0.0.0" and
    proc.name in (bash, sh, dash, zsh, nc, ncat)
  output: >
    Reverse shell detected (container=%container.name
    command=%proc.cmdline connection=%fd.name
    user=%user.name image=%container.image.repository)
  priority: CRITICAL
  tags: [container, network, shell]

# 检测容器内安装软件包
- rule: Package Manager in Container
  desc: Detect package manager execution in container
  condition: >
    container and
    spawned_process and
    proc.name in (apt, apt-get, yum, dnf, apk, pip, npm)
  output: >
    Package manager executed in container (container=%container.name
    command=%proc.cmdline user=%user.name)
  priority: WARNING
  tags: [container, process]

# 检测挖矿程序
- rule: Crypto Mining Activity
  desc: Detect crypto mining related processes
  condition: >
    spawned_process and
    (proc.name in (xmrig, minerd, cpuminer, minergate) or
    proc.cmdline contains "stratum+tcp" or
    proc.cmdline contains "pool.mining")
  output: >
    Crypto mining detected (command=%proc.cmdline
    container=%container.name user=%user.name)
  priority: CRITICAL
  tags: [cryptomining, process]
EOF

# 重新加载规则
systemctl restart falco

四、查看告警

# 实时查看 Falco 告警
journalctl -u falco -f

# 查看日志文件
tail -f /var/log/falco/falco.log

# 以 JSON 格式输出告警
# 编辑 /etc/falco/falco.yaml
# json_output: true
# json_include_output_property: true

五、告警通知集成

5.1 使用 Falcosidekick 转发告警

docker run -d \
  --name falcosidekick \
  --restart always \
  -p 2801:2801 \
  -e SLACK_WEBHOOKURL=https://hooks.slack.com/services/xxx \
  -e SMTP_HOSTPORT=smtp.gmail.com:587 \
  -e SMTP_FROM=falco@example.com \
  -e SMTP_TO=admin@example.com \
  -e SMTP_USER=your_email@gmail.com \
  -e SMTP_PASSWORD=your_app_password \
  falcosecurity/falcosidekick:latest

5.2 配置 Falco 输出到 Falcosidekick

# 在 /etc/falco/falco.yaml 中配置
# http_output:
#   enabled: true
#   url: http://127.0.0.1:2801

六、性能优化

  • 使用现代 eBPF 驱动替代传统的内核模块,更稳定也更安全。
  • 合理设置规则优先级,避免低优先级规则产生过多告警。
  • 使用条件排除可信进程,减少误报。
  • Falco 通常占用 100-200MB 内存和少量 CPU。

七、测试检测能力

# 触发"容器内启动 Shell"规则
docker exec -it some-container /bin/bash

# 触发"读取敏感文件"规则
docker exec some-container cat /etc/shadow

# 查看 Falco 是否产生告警
journalctl -u falco --since "1 minute ago"

总结

Falco 填补了容器运行时安全监控的空白,与构建时的 Trivy 扫描和部署时的 Cosign 签名验证一起,构成了完整的容器安全生命周期管理。在搬瓦工 VPS 上部署 Falco 可以实时发现容器中的可疑活动。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。