You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Falco中定义规则捕获容器内手动命令执行告警

容器内手动命令执行的Falco自定义规则解决方案

你需要捕获容器内任意手动触发的命令执行告警,原规则未生效的核心问题是逻辑优先级错误、未针对手动命令的交互特征做匹配,以下是可行的自定义规则及说明:

原规则问题分析

  1. 逻辑优先级错误:and比or优先级更高,导致规则实际匹配(容器内进程+命令行含空格)或命令行以.sh结尾,会误触发主机上的.sh脚本告警,且未聚焦手动命令的核心特征。
  2. 未匹配交互场景:手动命令执行通常依赖shell程序(bash/sh等)并关联终端,原规则未针对这类关键特征过滤。

基础版规则(覆盖交互式shell场景)

针对最常见的docker exec -it进入容器执行命令的场景:

- rule: interactive_shell_in_container
  desc: 捕获容器内的交互式shell命令执行
  condition: >
    container.id != host and
    proc.name in (bash, sh, zsh, dash, fish) and
    proc.tty != 0 and
    proc.pid != 1
  output: >
    容器内检测到交互式命令执行
    (用户=%user.name 容器ID=%container.id 容器名称=%container.name
    Shell进程=%proc.name 父进程=%proc.pname 命令行=%proc.cmdline)
  priority: WARNING

各条件作用:

  • container.id != host:仅匹配容器内进程,排除主机进程
  • proc.name in (...):覆盖市面上常见的shell程序
  • proc.tty != 0:确保进程关联终端(手动交互操作的核心特征)
  • proc.pid != 1:排除容器内以shell作为PID1的启动进程(这类不是手动触发的交互shell)

增强版规则(覆盖更多手动执行场景)

如果需要覆盖docker exec直接执行单条命令(如docker exec container ls)、手动启动非shell二进制程序的场景,可使用以下规则:

- rule: container_manual_command_execution
  desc: 捕获容器内任意手动触发的命令执行
  condition: >
    container.id != host and
    (
      # 交互式shell场景
      ((proc.name in (bash, sh, zsh, dash, fish)) and proc.tty != 0 and proc.pid != 1) or
      # docker exec直接执行命令的场景(父进程为docker-init/runc)
      (proc.pname in (docker-init, runc) and proc.cmdline != "") or
      # 非shell但关联终端的手动执行命令
      (proc.tty != 0 and proc.pname not in (systemd, init))
    )
  output: >
    容器内检测到手动命令执行
    (用户=%user.name 容器ID=%container.id 容器名称=%container.name
    进程名=%proc.name 父进程=%proc.pname 命令行=%proc.cmdline)
  priority: WARNING

测试验证步骤

  1. 将规则添加到Falco自定义规则文件(如/etc/falco/falco_rules.local.yaml)
  2. 重启Falco服务:systemctl restart falco
  3. 执行手动操作测试:
    • 通过docker exec -it <容器ID> bash进入容器后执行任意命令
    • 通过docker exec <容器ID> ls直接执行单条命令
  4. 查看Falco告警日志:journalctl -u falco -f,确认告警是否正常触发

内容的提问来源于stack exchange,提问作者Harika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:45:30