Anthropic-Cybersecurity-Skills 实战:用 Falco 现代 eBPF 驱动检测容器运行时威胁(容器逃逸、命名空间滥用与特权挂载) Anthropic-Cybersecurity-Skills 实战用 Falco 现代 eBPF 驱动检测容器运行时威胁容器逃逸、命名空间滥用与特权挂载【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills本指南以仓库技能包 detecting-container-runtime-threats-with-falco 为主线讲解如何安装 Falco 并编写、部署自定义规则实时检测容器逃逸MITRE ATTCK T1611、命名空间滥用setns、特权挂载、反向 Shell 与异常出站连接。读完你将掌握 Falco 的 rule/macro/list 规则骨架、关键过滤字段、falco --validate校验与 purple-team 验证流程并能把告警经 Falcosidekick 转发到 SIEM。Falco 是 CNCF 毕业的运行时安全项目最初由 Sysdig 发起它通过驱动消费 Linux 内核系统调用与 Kubernetes 审计事件交给 YAML 规则引擎评估并实时发出告警是检测容器内部运行时威胁的事实标准开源工具。在 Anthropic-Cybersecurity-Skills 仓库的 26 个 container-security 子域技能中见 mappings/mitre-attack/coverage-summary.md本技能聚焦于 Falco 规则编写与其姊妹技能如detecting-container-escape-with-falco-rules、performing-container-escape-detection共同构成从攻击原语到检测规则的完整闭环。一、Falco 工作原理与三种驱动Falco 的检测链路为内核事件源 → 驱动driver→ 规则引擎YAML→ 告警输出。其中驱动是采集系统调用/审计事件的关键组件Falco 支持三种驱动类型参见 api-reference.md驱动driver.kind说明现代 eBPFmodern_ebpf首选默认探针直接内置在 Falco 二进制内无需 init 容器要求内核 ≥ 5.8传统 eBPFebpfCO-RE eBPF 探针内核模块kmod可加载内核模块自动auto由 falcoctl 自动选择最佳可用驱动驱动选择通过falcoctl driver config --type {kmod|ebpf|modern_ebpf}完成或在 Helm 部署时以driver.kindmodern_ebpf指定。在 Kubernetes 上Falco 以 DaemonSet 形态运行保证每个节点都被监控falcoctl会自动从 Falco 规则注册中心安装并更新规则构件。在 Linux 主机上可借助 systemd 单元falco-modern-bpf.service管理探针生命周期。二、安装与驱动确认技能包提供了两条安装路径SKILL.md 的 Prerequisites 一节2.1 KubernetesHelm推荐# Helm (Kubernetes, modern eBPF, JSON output for SIEM ingest) helm repo add falcosecurity https://falcosecurity.github.io/charts helm repo update helm install falco falcosecurity/falco \ --namespace falco --create-namespace \ --set driver.kindmodern_ebpf \ --set collectors.containerd.enabledtrue \ --set falco.json_outputtrue \ --set ttytrue关键参数含义collectors.containerd.enabledtrue让 Falco 识别 containerd 容器运行时并填充容器元数据falco.json_outputtrue输出 JSON 格式告警便于 SIEM 摄取ttytrue保证日志输出不被缓冲截断。2.2 Linux 包安装Debian/Ubuntucurl -fsSL https://falco.org/repo/falcosecurity-packages.asc | \ sudo 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 | \ sudo tee /etc/apt/sources.list.d/falcosecurity.list sudo apt-get update -y sudo apt-get install -y falco2.3 确认驱动运行# Kubernetes: confirm the DaemonSet is running on every node kubectl get pods -n falco -o wide kubectl logs -n falco -l app.kubernetes.io/namefalco | grep -i driver # Linux host: configure driver and start sudo falcoctl driver config --type modern_ebpf sudo systemctl enable --now falco-modern-bpf.service sudo systemctl status falco-modern-bpf.service三、规则、宏与列表Falco 规则三要素每条 Falco 规则由五个必填字段加若干可选字段构成完整字段语义见 api-reference.md字段必填用途rule是唯一规则名desc是人类可读描述condition是触发规则的过滤表达式output是告警文案支持%field插值priority是EMERGENCY、ALERT、CRITICAL、ERROR、WARNING、NOTICE、INFO、DEBUGtags否分类标签如 MITRE 技术 IDenabled否开关true/falsesource否事件来源syscall、k8s_audit可复用的逻辑被抽到macrocondition键可复用的条件片段与listitems键配合in (...)使用的命名值集合中。自定义规则存放在/etc/falco/falco_rules.local.yaml或/etc/falco/rules.d/目录并在/etc/falco/falco.yaml的rules_files中引用。一个典型的规则文件开头长这样# /etc/falco/rules.d/custom-escape.yaml - list: shell_binaries items: [bash, sh, zsh, dash, ash, ksh] - macro: spawned_process condition: evt.type in (execve, execveat) and evt.dir - macro: container condition: container.id ! host3.1 关键过滤字段速查字段含义evt.type系统调用名execve、setns、open、connectevt.dir事件方向退出、进入proc.name/proc.cmdline进程名 / 完整命令行container.id/container.privileged容器身份 / 特权标志container.image.repository镜像名fd.name/fd.type/fd.num文件/套接字路径 / 类型ipv4、ipv6/ 描述符号evt.is_open_write/evt.is_open_readopen() 意图user.name/user.uid操作者k8s.pod.name/k8s.ns.nameKubernetes 上下文四、MITRE ATTCK 映射检测规则如何对齐攻击战术关联文档 references/standards.md 给出了本技能的完整 ATTCK 映射表这是把检测规则与框架对齐、便于威胁建模与覆盖度评估的依据Technique ID名称战术依据T1611Escape to Host逃逸到宿主机权限提升Falco 规则检测容器逃逸中使用的系统调用/文件release_agent、setns、特权挂载T1059.004Command and Scripting Interpreter: Unix ShellUnix Shell执行反向 Shell 规则检测容器内连接到网络套接字的 shellT1610Deploy Container部署容器防御规避 / 执行docker.sock 访问规则检测通过守护进程 API 的容器拉起T1543Create or Modify System Process创建或修改系统进程持久化检测容器内异常进程/服务创建T1071.001Application Layer Protocol: Web Protocols应用层协议命令与控制检测来自容器的意外出站连接这些映射并非摆设它为告警的tags字段提供标准取值如mitre_privilege_escalation、T1611使 SIEM 中的告警能直接关联 ATTCK 技术。仓库层面容器安全子域在 ExecutionT1610、T1059.004与 Privilege EscalationT1611战术上标注为高强度覆盖与本技能高度吻合mappings/mitre-attack/coverage-summary.md。五、NIST CSF 2.0 映射同样出自 standards.md该技能对 NIST CSF 2.0 的映射落点为ID名称依据DE.CM-01对网络与网络服务进行监控以发现潜在不利事件Falco 持续在运行时监控系统调用与网络行为暴露不利的容器活动这也是技能元数据中声明的 NIST CSF 覆盖项见 SKILL.md frontmatter 的nist_csf: [DE.CM-01]在向审计方说明容器运行时监控这一 Detect 能力的合规价值时可直接引用。六、编写五类核心检测规则以下规则完整继承自技能包的 Step 3–Step 6SKILL.md分别覆盖容器逃逸原语与异常行为信号。6.1 cgroup release_agent 逃逸T1611写 cgrouprelease_agent/notify_on_release是经典的容器逃逸原语——攻击者利用特权容器在宿主机上创建可执行文件并让 cgroup 在进程退出时触发它。- rule: Container Escape via cgroup release_agent desc: Detect a process inside a container writing to a cgroup release_agent or notify_on_release file, a classic privileged-container breakout primitive. condition: container and spawned_process and (evt.type in (open, openat, openat2) or evt.typewrite) and (fd.name endswith release_agent or fd.name endswith notify_on_release) and evt.is_open_writetrue output: Container escape attempt via cgroup release_agent (user%user.name command%proc.cmdline file%fd.name container%container.name image%container.image.repository) priority: CRITICAL tags: [container, mitre_privilege_escalation, T1611]注意evt.is_open_writetrue与evt.dir 写操作的退出方向配合可显著降低误报。6.2 setns / nsenter 命名空间逃逸T1611- rule: Namespace Change via setns to Host desc: Detect setns/nsenter used to enter the host namespace (e.g. nsenter -t 1), a common container-to-host escape technique. condition: evt.type setns and container and proc.name in (nsenter, unshare) output: Namespace breakout via setns/nsenter (user%user.name proc%proc.name cmd%proc.cmdline container%container.name image%container.image.repository) priority: CRITICAL tags: [container, mitre_privilege_escalation, T1611]6.3 特权容器中的挂载T1611与 Docker Socket 滥用T1610- rule: Mount Launched in Privileged Container desc: Detect the mount binary running inside a privileged container. condition: spawned_process and container and container.privileged true and proc.name mount output: Mount executed in privileged container (cmd%proc.cmdline container%container.name image%container.image.repository) priority: WARNING tags: [container, mitre_privilege_escalation, T1611] - rule: Docker Socket Accessed From Container desc: A container process reads/writes the host Docker daemon socket. condition: container and (evt.type in (open, openat, openat2, connect)) and fd.name /var/run/docker.sock output: Container touched docker.sock - possible daemon-API escape (proc%proc.name cmd%proc.cmdline container%container.name) priority: CRITICAL tags: [container, mitre_execution, T1610]container.privileged true是判断特权容器的关键字段docker.sock一旦被容器访问攻击者即可调用 Docker API 拉起特权容器对应 ATTCK T1610 Deploy Container。6.4 反向 ShellT1059.004与敏感文件读取T1003 前置- rule: Reverse Shell From Container desc: A shell in a container with stdin/stdout wired to a network socket. condition: spawned_process and container and proc.name in (shell_binaries) and (fd.num in (0, 1, 2)) and fd.type in (ipv4, ipv6) output: Reverse shell detected in container (proc%proc.cmdline connection%fd.name container%container.name) priority: CRITICAL tags: [container, mitre_execution, T1059.004] - rule: Read Sensitive Host File From Container desc: Container reads /etc/shadow or similar after a likely escape. condition: container and (evt.type in (open, openat, openat2)) and evt.is_open_readtrue and fd.name in (/etc/shadow, /etc/sudoers, /root/.ssh/id_rsa) output: Sensitive file read from container (file%fd.name proc%proc.cmdline container%container.name) priority: WARNING tags: [container, mitre_credential_access]反向 Shell 规则利用shell 的 0/1/2 号描述符指向 ipv4/ipv6 套接字这一特征组合精确识别sh -i /dev/tcp/...类回连。敏感文件读取规则覆盖逃逸后常见的凭据收集行为。七、校验规则语法与加载规则写完后必须校验技能包提供 CLI 与辅助脚本两条路径。7.1 CLI 校验与加载# Dry-run validate a rules file without starting the engine sudo falco --validate /etc/falco/rules.d/custom-escape.yaml # Run Falco with only the custom rules to test sudo falco -r /etc/falco/rules.d/custom-escape.yaml # Helm: ship custom rules via values (mounted into /etc/falco/rules.d) helm upgrade falco falcosecurity/falco -n falco --reuse-values \ --set-file customRules.custom-escape\.yaml./custom-escape.yaml其他常用诊断命令api-reference.md命令用途falco -L列出已加载规则falco -l rule查看单条规则详情falco --list列出支持的字段falcoctl artifact install name/falcoctl artifact list安装 / 列出规则与插件构件7.2 辅助脚本 agent.py仓库为本技能提供了 scripts/agent.py一个防御向检测工程辅助工具包含两个模式# 结构校验自定义规则若系统存在 falco 二进制还会调用权威的 falco --validate python agent.py --validate ./falco_rules.local.yaml # 分流 Falco JSON 告警json_output: true 时每行一个 JSON 对象 python agent.py --triage /var/log/falco/events.json --min-priority WARNING从源码看--validate模式会解析 YAML 中的 rule/macro/list检查每条规则是否缺少必填字段rule、desc、condition、output、priority对应REQUIRED_RULE_FIELDS并校验 priority 是否落在PRIORITIES枚举中若环境中存在 falco 二进制则自动追加权威校验任何错误都以非零退出码结束。--triage模式按优先级阈值过滤告警并按 priority、rule、container 三个维度做 Counter 统计输出 Top 15 排行非常适合对 Falco JSON 告警做批量初筛。八、Purple-Team 触发与确认规则加载后必须在测试环境实际触发验证。技能包给出的示例利用一个特权、共享 hostPID 的测试容器执行nsenter进入宿主命名空间# In a test container, trigger the setns rule kubectl run pwn --rm -it --imagealpine --overrides {spec:{hostPID:true,containers:[{name:pwn,image:alpine, securityContext:{privileged:true},stdin:true,tty:true, command:[sh]}]}} -- sh -c nsenter -t 1 -m -u -i -n -p -- id # Confirm the alert fired kubectl logs -n falco -l app.kubernetes.io/namefalco | grep -i Namespace breakout在kubectl logs中看到 Namespace breakout 即证明 setns 规则按预期命中。对 release_agent、docker.sock、反向 Shell 等规则应逐一在隔离的实验环境如 Kind/k3s 或专用测试集群中重复此触发—确认循环。九、告警接入 SIEMFalcosidekick为了让 SOC 真正消费告警技能包建议用 Falcosidekick 将告警扇出到 Elastic、Slack、Splunk 等下游# Deploy Falcosidekick to fan out alerts (Elastic, Slack, Splunk, etc.) helm upgrade falco falcosecurity/falco -n falco --reuse-values \ --set falcosidekick.enabledtrue \ --set falcosidekick.config.elasticsearch.hostporthttps://elastic:9200 \ --set falcosidekick.config.elasticsearch.indexfalco配合 Helm 安装时的--set falco.json_outputtrueSIEM 收到的即为结构化 JSON 告警priority、rule、output_fields等字段可直接用 agent.py 的--triage模式做告警统计与容器维度分流。falco.yaml中outputs/http_output/program_output则提供了不依赖 Falcosidekick 的告警下沉选项。十、官方资源与进一步研究关联文档 standards.md 收录的官方资源Falco 文档、自定义规则集指南、默认规则参考、falcosecurity/rules 维护规则集、Falco Helm chart、falcoctl 与 Falcosidekick 项目主页均可作为深入学习入口其中 falcoctl 负责驱动与规则构件管理falcosecurity/rules 是经过生产验证的默认规则集含 CVE 专项规则建议先基于默认规则集运行、再以本技能的自定义规则补充逃逸专项覆盖。关于使用 Falco 检测 CVE-2025-22224这类新披露运行时 CVE 的检测方法也是规则迭代的重要参考。Falco 支持的完整字段列表可查阅其 supported-fields 参考文档。十一、上线检查清单技能包给出了完整的验收标准SKILL.md可直接作为部署后自检Falco 已用 modern eBPF 驱动安装DaemonSet 覆盖所有节点自定义规则文件通过falco --validate或用python agent.py --validate校验release_agent / setns / 特权挂载 / docker.sock 规则已加载反向 Shell 与敏感文件读取规则已加载每条规则均在实验环境触发并在日志中确认告警优先级设置恰当逃逸原语设为 CRITICAL告警已通过 Falcosidekick 转发到 SIEM规则 tags 包含对应 MITRE 技术 IDT1611、T1059.004、T1610、T1543、T1071.001结语在 Kubernetes 与 Docker 环境中容器逃逸是最具破坏力的运行时威胁之一。借助本仓库技能包你可以在数小时内落地一套基于 Falco modern eBPF 驱动的运行时检测能力从 Helm/包安装、驱动确认到按 ATTCK 战术编写 release_agent、setns、特权挂载、docker.sock、反向 Shell 五类核心规则再到语法校验、purple-team 触发验证与 SIEM 告警接入。整条链路既有关联文档 standards.md 提供的框架映射背书也有 api-reference.md 的字段/CLI 参考和 agent.py 的工程化辅助是一套可复制、可验证、可直接接入 SOC 检测管线的完整方案。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考