CodeMender 会将每次扫描、验证和补救尝试记录为由本地 SQLite 数据库 (state.db) 支持的有状态会话。您可以检查有效会话、恢复暂停的任务,以及导出详细的发现结果报告。
会话管理
CodeMender CLI 会在本地维护有状态的执行会话,以便您跟踪正在执行的任务、恢复中断的工作流程并导出安全报告。
列出有效会话和过往会话
运行以下命令可列出所有会话、会话状态(RUNNING、WAITING_FOR_TOOL、COMPLETED、FAILED、CANCELLED)和目标路径:
cm session list
恢复中断的会话
如果因网络中断或步骤失败而导致会话暂停,请从最新的检查点阶段恢复会话:
cm session resume SESSION_ID
取消正在进行的会话
如需终止有效会话并停止后端代理计算执行,请执行以下操作:
cm session cancel SESSION_ID
查看报告和导出补丁
使用 cm report 显示会话发现、验证状态和补丁详细信息。
输出格式
终端表格(默认)
发现结果的总结列表。
cm reportHTML 报告
生成格式化的 HTML 报告。使用 --open(或 -o)可在默认浏览器中自动启动该应用。
cm report --format html --open
Markdown
生成 GitHub Flavored Markdown 报告。
cm report --format md
JSON
以原始 JSON 格式导出所有会话发现结果的详细信息。
cm report --format json
SARIF
以标准 SARIF 格式 (v2.1.0) 导出发现结果,以便与其他安全工具集成。
cm report --format sarif
过滤和排序标志
- 显示建议的代码补丁 (
--patches):在报告中包含生成的修复的完整统一差异。bash cm report --patches - 按严重程度过滤 (
--severity):查看与某个级别(CRITICAL、HIGH、MEDIUM、LOW)匹配的发现结果。bash cm report --severity HIGH - 按状态过滤 (
--status):查看与某种状态(OPEN、FIXED、DISMISSED、REOPENED)匹配的调查结果。bash cm report --status OPEN - 按会话 (
--session) 过滤:查看特定会话 ID 前缀的检测结果。cm report --session SESSION_ID_PREFIX
- 显示代理工件 (
--artifacts):包含代理生成的运行时工件(例如日志、漏洞利用脚本)的路径。bash cm report --artifacts - 对检测结果进行排序 (
--sort):按severity(默认)或time对结果进行排序。bash cm report --sort time - 按发现 ID 过滤:传递特定的发现 ID(或前缀)作为位置实参,以查看单个发现的详细信息。
cm report FINDING_ID_PREFIX
漏洞发现结果状态
CodeMender 会跟踪以下漏洞状态的发现结果:
OPEN- 含义:在扫描期间(或从第三方工具导入)已成功检测到该漏洞,但尚未验证、修补或标记为不活跃。
- 处理方式:这是任何新发现的安全缺陷的初始状态。处于
OPEN状态的漏洞会主动排队等待验证 (cm verify) 或修补 (cm fix)。
FIXED- 含义:CodeMender 已针对漏洞生成补丁,将差异应用于本地代码库,并成功编译和执行验证测试,以证明漏洞利用不再成功。
- 处理方式:确认补丁可解决问题且不会破坏现有代码逻辑后,CodeMender 会将发现的问题转换为
FIXED。除非未来的扫描检测到回归,否则它将保持此状态。
DISMISSED- 含义:相应漏洞被指定为不活跃,原因可能是该漏洞被确定为假正例或已修复,也可能是发现结果的置信度不足,无法确认其是否可被利用(包括是否与您在初始配置期间提供的项目威胁模型相冲突)。
- 处理方式:将某项标记为
DISMISSED会使系统在日后不再发出相关提醒,并使用cm report --status OPEN从有效的 CLI 输出中排除相应发现结果。对已关闭的发现重新运行cm verify会重新检查或恢复已关闭的项目。
REOPENED- 含义:之前标记为
FIXED或DISMISSED的漏洞在后续代码库扫描中被重新检测到。 - 处理方式:此状态表示出现回归(例如,错误的 Git 合并导致补丁被还原)或缓解策略失败。它会标记问题以供立即重新评估,并要求开发者检查修补流程。
- 含义:之前标记为
漏洞严重级别
CodeMender 会将发现结果归类为以下严重程度级别:
CRITICAL- 含义:此漏洞会对您的应用或底层基础架构构成严重风险,可能会导致整个系统被入侵。
- 归类为“严重”的原因:它达到高后果影响阈值(例如远程代码执行或根级写入),可从不受信任的边界直接访问,无需任何前提条件,并且有高可信度的污点流分析或在 CodeMender 的沙盒中执行的经过验证的概念验证 (PoC) 作为后盾。
HIGH- 含义:此漏洞表示严重的安全缺陷,可能会导致未经授权的系统控制、提升权限或严重的数据暴露,但需要满足特定条件才能执行。
- 归类为“高”的原因:虽然利用漏洞的影响很大(例如,任意数据库读取或管理劫持),但可利用性略有受限。它可能要求攻击者拥有标准用户身份验证、依赖于特定的系统配置,或者需要高度精确的一系列操作。
MEDIUM- 含义:该漏洞的风险中等,通常会暴露受限数据或导致局部中断,但对宿主系统的风险较低。
- 归类为“中”的原因:漏洞利用受可达性或复杂性的严重限制。它通常需要主动的用户互动(例如点击恶意链接)、深层权限或复杂条件才能绕过防御层,并且最终影响范围有限。
LOW- 含义:此发现结果表示存在轻微安全风险或缺乏纵深防御的总体卫生状况,本身不会构成直接威胁。
- 归类为“低”的原因:该漏洞的利用难度极低或影响极小。攻击者通常会利用此发现结果进行侦察或配置指纹识别,而不是直接入侵,并且此发现结果无法用于执行任意代码或泄露敏感的应用数据。
Workspace 维护
如需重置本地状态跟踪文件并清理临时执行缓存,请运行以下命令:
cm clean