镜像扫描和运行时防护是云原生安全的两大关键防线:Trivy用于部署前漏洞扫描,支持多维度检测与CI集成;Falco负责运行时行为监控,基于eBPF实时告警或阻断异常;落地需结合镜像签名、分级策略与上下文告警。

镜像扫描和运行时防护是云原生安全的两个关键防线:前者在部署前发现漏洞和风险,后者在容器运行中实时拦截异常行为。只做扫描不防运行时,等于大门装了锁却敞着窗户;只靠运行时防护不扫镜像,又像让保安盯着一个已藏有炸弹的房间。
用Trivy快速扫描容器镜像
Trivy 是目前最轻量、准确率高且开箱即用的开源镜像扫描器。它能识别操作系统包漏洞、语言级依赖(如 Python 的 pip、Node.js 的 npm)、配置错误(如特权模式、敏感挂载)和硬编码密钥。
- 安装后直接扫描本地镜像:trivy image nginx:1.21
- 扫描远程仓库镜像(需先登录):trivy image harbor.example.com/project/app:v2.3
- 生成 HTML 报告便于团队共享:trivy image --format template --template "@contrib/html.tpl" -o report.html nginx:alpine
- 建议在 CI 流水线中加入阈值检查,例如阻断 CVSS ≥ 7.0 的高危漏洞:trivy image --severity CRITICAL,HIGH nginx:latest
用Falco监控容器运行时行为
Falco 是 CNCF 毕业项目,专为检测异常容器行为而设计。它通过 eBPF 或内核模块监听系统调用,一旦发现可疑动作(如非预期进程启动、敏感文件读写、shell 交互、提权操作),立即告警或阻断。
- 默认规则覆盖常见攻击面:反弹 shell、容器逃逸尝试、SSH 登录、/proc/self/fd 访问等
- 可自定义规则,例如禁止任何容器写入 /etc/passwd:- rule: Write to etc passwd
- 输出支持多种渠道:stdout、Syslog、Kafka、Slack、Prometheus(配合 falcosidekick)
- 在 Kubernetes 中以 DaemonSet 部署,自动适配各节点内核版本(eBPF 模式更稳定,推荐启用)
把扫描和防护真正落地的三个要点
工具再好,不融入流程就只是摆设。实际落地要注意三件事:
- 镜像必须带签名才允许运行:用 cosign 签名镜像,配合 Notary v2 或 OPA Gatekeeper,在 K8s 准入控制(Admission Controller)中校验签名有效性
- 运行时策略要分环境分级:开发环境可只告警,预发环境记录并通知,生产环境对高危行为(如 mount namespace 修改)直接拒绝
- 告警必须关联上下文:Falco 告警里至少包含 pod name、namespace、容器 ID、触发规则、时间戳和原始事件字段,否则运维无法快速定位问题容器
不复杂但容易忽略。扫描不是“跑一次就完事”,防护也不是“装上就安心”。持续验证策略有效性,定期重扫基线镜像,更新 Falco 规则集,才能让安全真正跟上云原生迭代的速度。










