威胁模型用于标识项目可能遭受攻击的位置以及受影响的关键要素。每个项目的威胁模型都保存在“安全”→“威胁模型”下,由代码生成初稿,供团队编辑。
初稿
Coroid会读取默认分支的代码生成首个版本,无需AI模型,因此生成初稿无需额外成本。该过程会占用一个代理插槽,与其他扫描任务一致。它能识别JavaScript、TypeScript和Python代码中的以下内容:
- 入口点:HTTP路由和处理程序、OpenAPI操作、队列消费者以及命令行指令;
- 信任边界:身份验证中间件及其他边界;
- 敏感数据:配置项和密钥的读取位置(仅记录名称,不显示具体值);
- 未经身份验证校验的写入操作。
该模型包含五个部分:入口点、信任边界、敏感数据、关键影响要素以及备注。初稿还会列出无法读取的内容及原因:文件过大或无法读取、暂不支持的语言、或达到读取限制。
你的修改会被保留
每条条目都会记录编写人信息。Coroid绝不会覆盖人工编写的内容。
每周一次,以及所有者或管理员选择时重新读取代码,Coroid会再次读取代码。它不会更改原有模型,只会提出变更建议:新增、更新或删除的条目。所有者和管理员可将建议纳入新版本,或驳回这些建议;被驳回的建议不会再被提出。
当变更被接受后,Coroid会跳过不再匹配的内容:包括人工后续修改的条目、已存在的条目或已删除的条目。它会说明跳过了哪些内容。Coroid仅会删除其自身初稿中生成的条目,且需在所有代码都被读取后才能执行此操作。你的表述会被保留,只有代码中识别到的内容才会发生变化。
版本
版本1为初稿。每次接受的提议或修改都会生成新版本,版本历史会记录操作人及操作内容:从代码生成的初稿、人工编辑、Coroid更新的内容,或从设置导入的内容。
谁可以修改它
所有能查看项目的人员均可阅读其威胁模型。所有者和管理员可编辑模型、接受或驳回提议,也可要求Coroid重新读取代码。
使用方式
“安全审计”功能会读取威胁模型来确定优先读取的文件:模型中标记为高影响路径和入口点的代码会优先于其他代码被处理。每个项目的最新威胁模型会随组织设置包一同传输。其历史记录和未处理的提议仍保留在原位置。详情请参阅
设置可移植性
每个项目的最新威胁模型会随组织设置包一同传输。其历史记录和未处理的提议仍保留在原位置。详情请参阅设置可移植性。