导入第三方安全发现结果

如果您已经在使用第三方静态分析或漏洞扫描工具,则可以直接将发现结果导入 CodeMender,以便立即进行验证和修补。

导入安全性报告

CodeMender 会解析外部安全报告,并在其本地数据库中注册发现结果。

导入 JSON 格式的发现结果文件

如需从 JSON 文件导入发现结果,请使用 --file(或 -f)标志。JSON 文件包含一系列发现结果,例如:

[
  {
    "file_path": "src/auth/session_manager.py",
    "start_line": 42,
    "end_line": 47,
    "snippet": "cursor.execute(\"SELECT * FROM users WHERE id = \" + user_id)",
    "title": "SQL Injection",
    "message": "Raw user input concatenated in SQL query",
    "severity": "HIGH",
    "vuln_type": "CWE-89"
  }
]

每个发现结果都包含以下字段:

  • file_path(必需):受影响文件的路径。
  • start_line 和 end_line:易受攻击代码的第一行和最后一行。一个发现结果可能跨越多行。对于单行,您可以设置 line,而不是 start_line 和 end_line。
  • snippet:存在漏洞的代码。如果发现结果既没有行范围,也没有代码段,则表示它涵盖整个文件,cm fix 会在文件中搜索易受攻击的代码。
  • title、message、analysis 和 vuln_type:发现结果的说明。每个发现结果都需要至少包含其中一个字段。
  • severity:CRITICAL、HIGH、MEDIUM 或 LOW。默认值为 MEDIUM。

您还可以导入 SARIF 2.1.0 报告。如需了解您的 CLI 版本支持的格式,请运行 cm report import --help。

运行导入命令:

cm report import --file ./findings.json

互动式导入模式

如果您没有 JSON 文件,可以运行不带 --file 标志的导入命令,在终端中进入交互式向导:

cm report import

按照提示输入每个发现结果的路径、行号、严重级别和说明。在任意提示处输入 q 即可完成并保存。

处理导入的发现结果

导入外部发现结果后:

  1. 运行 cm report 以查看已注册发现结果的列表,并获取其生成的 <finding-id> 值。
  2. 对导入的发现结果执行验证,以生成概念验证漏洞利用:
    cm verify FINDING_ID
  3. 为发现结果生成并验证安全补丁:
    cm fix FINDING_ID