如果您已经在使用第三方静态分析或漏洞扫描工具,则可以直接将发现结果导入 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 即可完成并保存。
处理导入的发现结果
导入外部发现结果后:
- 运行
cm report以查看已注册发现结果的列表,并获取其生成的<finding-id>值。 - 对导入的发现结果执行验证,以生成概念验证漏洞利用:
cm verify FINDING_ID
- 为发现结果生成并验证安全补丁:
cm fix FINDING_ID