DevSecOps 武器库:从零到英雄

运行 `trivy image` 不是 DevSecOps——而是噪声生成。真正的安全工程是关于信号与噪声的比率。本指南提供了17种行业标准工具的生产级配置,以在不影响业务的情况下阻止漏洞,分为三个阶段:预提交、CI 守门员和运行时扫描。

José Palanco José Palanco
Last Updated:
2 min read
Share
DevSecOps 武器库:从零到英雄

让我们现实一点:运行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

Written by
José Palanco
José Palanco
José Ramón Palanco is the CEO/CTO of Plexicus, a pioneering company in ASPM (Application Security Posture Management) launched in 2024, offering AI-powered remediation capabilities. Previously, he founded Dinoflux in 2014, a Threat Intelligence startup that was acquired by Telefonica, and has been working with 11paths since 2018. His experience includes roles at Ericsson`s R&D department and Optenet (Allot). He holds a Telecommunications Engineering degree from the University of Alcala de Henares and a Master`s in IT Governance from the University of Deusto. As a recognized cybersecurity expert, he has been a speaker at various prestigious conferences including OWASP, ROOTEDCON, ROOTCON, MALCON, and FAQin. His contributions to the cybersecurity field include multiple CVE publications and the development of various open source tools such as nmap-scada, ProtocolDetector, escan, pma, EKanalyzer, SCADA IDS, and more.
Read More from José
More to read

Related posts

AI原生修复:应对氛围编码安全挑战
Learn

AI原生修复:应对氛围编码安全挑战

仅靠检测已无法跟上AI驱动的开发速度。AI原生修复是下一层防线——帮助团队在SDLC的每个阶段修复、验证并追踪AI生成代码中的漏洞。

Josuanstya Lovdianchel Josuanstya Lovdianchel ·
Vibe Coding 安全:在 AI 生成代码上线前确保其安全
Learn

Vibe Coding 安全:在 AI 生成代码上线前确保其安全

AI 编码工具正在编写近一半的新代码。其中 45% 的代码在发布时至少包含一个漏洞。Vibe Coding 安全是一种保护由 AI 创建的软件安全的实践——在风险到达生产环境前进行检测、优先级排序和修复。

Josuanstya Lovdianchel Josuanstya Lovdianchel ·
Ready when you are

Stop paying per developer.
Start closing the loop.

Plexicus is the AI-native ASPM that scans, filters, fixes, pentests, and explains — autonomously. Unlimited developers, unlimited repos, fair-use AI actions. Real free tier, €269/mo annual when you're ready.