让我们现实一点:运行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:仅显示 >=low、medium或high的结果。--confidence-level:过滤掉“猜测”——仅显示高置信度的发现。--ignore-nosec:查看开发人员试图通过# nosec绕过的内容。
5. Dustilock (依赖混淆)
防止攻击者注入恶意私有包。
-a: 仅审核。检查您是否易受包名劫持的影响,而不停止流水线。
6. Hadolint (Docker 智能)
您的 Dockerfile 有问题。Hadolint 知道原因。
--trusted-registry: 供应链安全。仅允许来自internal.ecr.aws的镜像。--strict-labels: 强制执行元数据标准(例如,maintainer,cost-center)。--ignore: 静默不适用于您构建的规则。--error/--warning: 重新映射规则严重性以匹配您的策略。--require-label: 强制执行特定标签格式(正则表达式)。
7. TFLint (Terraform 逻辑)
terraform validate 是语法检查。TFLint 是逻辑检查。
--enable-plugin: 加载特定于提供商的规则(例如,AWS,Azure)以检查 API 规范。--minimum-failure-severity: 控制构建中断阈值(错误,警告,通知)。--call-module-type: 扫描all,local或none模块。--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: 如果严重性 >=medium、high等,则中断构建。--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: 基于技术(例如,wordpress,cve)进行目标扫描。-s/--severity: 按影响级别筛选模板。-fr/--follow-redirects: 跟随 HTTP 301/302 重定向以找到有效负载。-passive: 通过查看现有的头信息/响应进行扫描,而不发送新的“攻击”。-etags fuzz: 在生产中排除模糊测试模板。
总结:“完美”的流水线
- 本地:
pre-commit运行 Gitleaks(基线)、Trufflehog(已验证)和 Hadolint。 - 构建: Trivy 扫描依赖项(
--ignore-unfixed)。Syft 生成 SBOM。Dependency-Check 用于合规性。 - 测试: Checkov 和 KICS 扫描 Terraform 计划。Opengrep 检查代码模式。
- 工件: Clamscan 检查最终的二进制文件/资产。
- 部署: Nuclei 对实时端点进行健全性检查。
调整你的工具,否则它们会调整你。
Plexicus 让这一切变得更简单
通过一个统一的仪表板,并访问我们所有的工具集成,只需点击几下 Plexicus


