让我们现实一点:运行trivy image并不是DevSecOps。这只是噪声生成。

真正的安全工程是关于信噪比。它是关于构建一个开发人员尊重的管道,而不是他们绕过的管道。本指南提供了17种行业标准工具的“生产级”配置,以在不影响业务的情况下阻止漏洞。


阶段1:预提交和本地(左移或回家)

在CI中发现问题已经太晚了。你只是浪费了计算资源和开发人员的上下文切换时间。在他们的笔记本电脑上捕捉它。

1. Gitleaks(秘密守护者)

不要成为在GitHub上泄露AWS密钥的公司。

大多数人盲目运行Gitleaks。专业人士使用基线

  • --baseline-path:黄金票。运行一次新扫描,保存输出。现在Gitleaks只会对的秘密发出警报。
  • --redact:在输出日志中掩盖发现的秘密(百分比0-100)。绝不二次泄露。
  • --enable-rule:通过ID专注于特定的秘密类型(例如,仅AWS密钥)。
  • --follow-symlinks:不要让秘密隐藏在符号链接后面。
  • --ignore-gitleaks-allow:不允许使用内联“跳过”注释。强制执行规则。
  • --max-target-megabytes:避免扫描巨大的二进制文件。

2. Trufflehog(验证者)

找到看起来像密钥的字符串是一回事。检查它是否有效是另一回事。

Trufflehog 的特点是通过验证提供者的凭据来区分自己。

  • --no-verification:更快的模式。如果您只想进行静态分析,可以跳过“实时检查”。
  • --results:通过 verified(真正的危险)或 unknown 来过滤输出。
  • --filter-entropy:即使没有正则表达式匹配,也能找到高熵字符串(可能是密码)。从 3.0 开始。
  • --detector-timeout:限制每个检测器的执行时间,以防止 CI 挂起。
  • --archive-max-depth:避免陷入嵌套的 zip 炸弹。

3. Opengrep(快速静态分析)

Grep 已死。结构化搜索万岁。

兼容 Semgrep 的引擎,用于使用代码模式而不仅仅是字符串来查找错误。

  • --baseline-commit关键。 仅扫描自特定提交以来更改的代码(增量扫描)。
  • --config:从 YAML 限制或注册表加载自定义规则。
  • --dataflow-traces:显示数据从源到汇的完整路径。
  • --exclude-minified-files:跳过 .min.js 和其他密集的、不可读的文件。
  • --strict:如果配置无效或出现 WARN 级别错误,则构建失败。

4. Bandit(Python 安全性)

Python AST 分析的标准。

  • -t / --tests:仅运行特定测试 ID(白名单)。
  • -s / --skips:跳过特定测试 ID(黑名单)。
  • --severity-level:仅显示 >= lowmediumhigh 的结果。
  • --confidence-level:过滤掉“猜测”——仅显示高置信度的发现。
  • --ignore-nosec:查看开发人员试图通过 # nosec 绕过的内容。

5. Dustilock (依赖混淆)

防止攻击者注入恶意私有包。

  • -a: 仅审核。检查您是否易受包名劫持的影响,而不停止流水线。

6. Hadolint (Docker 智能)

您的 Dockerfile 有问题。Hadolint 知道原因。

  • --trusted-registry: 供应链安全。仅允许来自 internal.ecr.aws 的镜像。
  • --strict-labels: 强制执行元数据标准(例如,maintainercost-center)。
  • --ignore: 静默不适用于您构建的规则。
  • --error / --warning: 重新映射规则严重性以匹配您的策略。
  • --require-label: 强制执行特定标签格式(正则表达式)。

7. TFLint (Terraform 逻辑)

terraform validate 是语法检查。TFLint 是逻辑检查。

  • --enable-plugin: 加载特定于提供商的规则(例如,AWS,Azure)以检查 API 规范。
  • --minimum-failure-severity: 控制构建中断阈值(错误,警告,通知)。
  • --call-module-type: 扫描 alllocalnone 模块。
  • --var-file: 注入变量以准确评估条件逻辑。

阶段 2:CI 守门员(信任,但要验证)

这是作战室。在构建过程中进行深入分析。

8. Trivy (重磅选手)

瑞士军刀。

  • --ignore-unfixed: 强制性。 如果没有补丁,不要使构建失败。监控它。
  • --ignore-status: 过滤掉具有特定状态的漏洞。
  • --pkg-types: 将扫描重点放在os包或library依赖项上。
  • --offline-scan: 在隔离环境中运行。
  • --include-dev-deps: 不要忽略devDependencies——它们仍然可能危害构建环境。
  • --list-all-pkgs: 输出所有内容。生成完整的SBOM至关重要。

9. Syft (SBOM生成器)

你无法保护你不知道拥有的东西。

  • --enrich: 添加在线元数据以获得更丰富的使用上下文(Golang、Java等)。
  • -s / --scope: 扫描所有层(all-layers)或仅扫描最终镜像(squashed)。
  • --select-catalogers: 针对特定的包管理器(npm、pip、apk)。
  • --platform: 针对特定架构(例如,arm64)。

10. Grype (SBOM扫描器)

接过Syft的接力棒。

  • -f / --fail-on: 如果严重性 >= mediumhigh等,则中断构建。
  • --only-fixed: 仅报告可操作的漏洞。
  • --by-cve: 按CVE ID组织输出以便跟踪。
  • --ignore-states: 忽略通用的“wontfix”或“not-affected”状态。

11. Checkov (IaC治理)

在云配置错误导致损失之前预防它们。

  • -s / --soft-fail: 警告但不终止。最佳用于“观察模式”。
  • --check / --skip-check: 白名单或黑名单特定检查(CKV_AWS_1)。
  • --skip-framework: 忽略整个框架(例如,扫描 Terraform 但跳过 CloudFormation)。
  • --enable-secret-scan-all-files: 将秘密扫描扩展到标准配置文件之外。
  • --block-list-secret-scan: 从秘密扫描器中排除特定文件。

12. KICS (保持 IaC 安全)

广泛 IaC 覆盖的替代方案。

  • --exclude-queries: 通过过滤掉特定查询 ID 来减少噪音。
  • --exclude-categories: 按安全域过滤发现。
  • --fail-on: 定义哪些严重级别返回非零退出代码。
  • --minimal-ui: 简化的 CLI 输出以获得更清晰的日志。
  • --disable-secrets: 关闭内部秘密扫描(使用 Gitleaks 代替)。

13. Terrascan (代码即政策)

专为多云政策实施而设计。

  • -i / --iac-type: 通过指定平台优化(k8s, helm, terraform)。
  • -t / --policy-type: 按提供商过滤政策(aws, azure, gcp)。
  • --severity: 定义报告的最低严重性。
  • --non-recursive: 仅扫描当前目录。

14. OWASP Dependency-Check (遗留与合规)

Java 和 .NET SCA 的重型工具。

  • --failOnCVSS: 如果任何库超过 CVSS 分数(例如 7.0),则中断构建。
  • --suppression: 使用 XML 文件来“静音”已知安全漏洞(VEX-lite)。
  • --enableExperimental: 使用新的分析器来处理不常见的语言。

15. DevSkim (多语言卫生)

以开发者为中心的 IDE 和 CI 检查。

  • --rule-ids: 将分析限制为特定规则。
  • --ignore-globs: 使用标准 glob 模式跳过噪声文件。
  • --skip-git-ignored-files: 自动与 .gitignore 同步。
  • --skip-excerpts: 通过删除代码示例来保持报告简洁。

阶段 3:运行时与工件(最后一道防线)

扫描最终工件或实时环境。

16. Clamscan (恶意软件防御)

因为有时候人们会将病毒上传到你的 S3 存储桶中。

  • --exclude / --exclude-dir: 跳过文件/目录模式以节省时间。
  • --detect-pua: 查找“潜在不需要的应用程序”(广告软件、挖矿程序)。
  • --detect-structured: 扫描信用卡/社会安全号码等敏感数据模式。
  • --scan-pdf / --scan-html: 启用对文档类型的深度检查。
  • --cross-fs: 允许跨不同文件系统进行扫描(谨慎使用)。

17. Nuclei (黑客的刀)

模板化扫描,感觉像是非法的。

  • -t / --templates: 运行特定的模板文件或目录。
  • -tags: 基于技术(例如,wordpresscve)进行目标扫描。
  • -s / --severity: 按影响级别筛选模板。
  • -fr / --follow-redirects: 跟随 HTTP 301/302 重定向以找到有效负载。
  • -passive: 通过查看现有的头信息/响应进行扫描,而不发送新的“攻击”。
  • -etags fuzz: 在生产中排除模糊测试模板。

总结:“完美”的流水线

  1. 本地: pre-commit 运行 Gitleaks(基线)、Trufflehog(已验证)和 Hadolint
  2. 构建: Trivy 扫描依赖项(--ignore-unfixed)。Syft 生成 SBOM。Dependency-Check 用于合规性。
  3. 测试: CheckovKICS 扫描 Terraform 计划。Opengrep 检查代码模式。
  4. 工件: Clamscan 检查最终的二进制文件/资产。
  5. 部署: Nuclei 对实时端点进行健全性检查。

调整你的工具,否则它们会调整你。

Plexicus 让这一切变得更简单

通过一个统一的仪表板,并访问我们所有的工具集成,只需点击几下 Plexicus

撰写者
Rounded avatar
José Palanco
José Ramón Palanco 是 Plexicus 的 CEO/CTO,这是一家在 2024 年推出的 ASPM(应用安全态势管理)领域的先锋公司,提供 AI 驱动的补救能力。此前,他于 2014 年创立了 Dinoflux,一家被 Telefonica 收购的威胁情报初创公司,并自 2018 年以来一直在 11paths 工作。他的经验包括在爱立信的研发部门和 Optenet(Allot)担任职务。他拥有阿尔卡拉大学的电信工程学位和德乌斯托大学的 IT 治理硕士学位。作为公认的网络安全专家,他曾在包括 OWASP、ROOTEDCON、ROOTCON、MALCON 和 FAQin 在内的多个著名会议上发表演讲。他对网络安全领域的贡献包括多项 CVE 发布以及开发了多种开源工具,如 nmap-scada、ProtocolDetector、escan、pma、EKanalyzer、SCADA IDS 等。
阅读更多来自 José
分享
PinnedCybersecurity

Plexicus 上市:AI 驱动的漏洞修复现已推出

Plexicus 推出 AI 驱动的安全平台,实现实时漏洞修复。自主代理即时检测、优先处理并修复威胁。

查看更多
zh/plexicus-goes-public-ai-driven-vulnerability-remediation-now-available-for-all
plexicus
Plexicus

统一的 CNAPP 提供商

自动化证据收集
实时合规评分
智能报告