前提条件
前提条件
要运行一次扫描:
- 你的组织必须有权访问你要扫描的代码仓库。
- 你需要已获授权使用 Devin 会话。
- 你需要具备 Use code scans 权限。
- 要配置自动扫描计划,你还需要具备 Manage code scans 以及管理 Automations 的权限。
进行首次扫描
- 在左侧边栏中打开 Security,然后点击 Start scan。
- 在 Single repo 下,选择一个要扫描的代码仓库。
- 确保已启用 交互模式。
- 点击 Run Scan。
- 当系统建议的威胁模型准备就绪后,先审阅,再点击 Looks good, start scanning 或提出反馈。
- 随着发现项陆续出现,查看相关证据,并处理需要关注的发现项。
审查并处理发现项
- 打开 — 需要关注。
- 已审查 — 已完成审查,不再需要处理。
- 已忽略 — 被判定为误报或重复项。
发现项包含哪些内容
- 严重性、状态、可利用性、置信度和类别。
- 受影响的文件路径和代码片段。
- 问题的描述以及修复建议。
- 运行时验证结果、支持性证据和验证产物。
- 关联的**拉取请求 (PR) **及其打开、已合并或已关闭状态。
- 代码所有者和备注 (如有) 。
对发现项采取操作
- 分配给 Devin
- 反馈
- 调整
- 状态菜单
启动一个 Devin 会话来修复该问题并创建拉取请求。该会话及其生成的拉取请求都会在该发现项中跟踪。
扫描 Profile
创建 Profile
- 使用 Devin 生成 — 用自然语言描述应用程序、威胁、作用域、排除项和严重程度标准。Devin 会为你起草 Profile。
- 手动创建 — 你自己填写 Profile 的每个输入项。
基本信息
- Profile 名称 — 应按应用程序暴露面或威胁类别命名,而不是按执行扫描的团队命名。示例:
Multi-tenant API authorization。 - 描述 — 概述该 Profile 的作用域和安全目标。示例:
查找公共 API 中的身份验证、授权和租户隔离漏洞。
威胁模型
调查指南
分流指南
运行时验证
报告
修复指引
Advanced 输入
- Include globs — 将扫描范围限制为匹配的文件。例如,
apps/api/**和packages/auth/**。 - Exclude globs — 从所选作用域中排除无关文件。例如,
**/generated/**、**/vendor/**和**/fixtures/**。 - Batch size — 控制每个调查批次中包含多少个带有信号的文件。除非你是有意调整扫描行为,否则请保留默认值。可接受的范围是 1–500;默认值为 5。
组织和企业 Profile
交互模式
- 没问题,开始扫描 — 接受该威胁模型并开始调查。
- 针对威胁模型提供反馈 — 说明需要添加、删除或强调的内容,然后查看修订后的模型。
配置运行时验证
大规模扫描
扫描多个代码仓库
- 可选择输入 代码仓库名称筛选条件。
- 可选择扫描 Profile。
- 保持 跳过已扫描的代码仓库 处于启用状态,以排除已用所选 Profile 扫描过的代码仓库。
- 点击 预览。
- 查看匹配的代码仓库,取消选择你不想扫描的代码仓库,然后确认。
自动扫描
- 在启动单个代码仓库扫描时,选择按日、按周、按月或自定义计划。
- 对于现有扫描,可添加、编辑、禁用其计划,或立即运行该计划。
仅当为你的组织启用 Automations 时,自动扫描才可用。配置它需要同时具备 管理代码扫描 和管理 Automations 的权限。
自动扫描采用增量方式:每次运行只检查自上次完成扫描以来新增的提交。点击 Start scan 则默认会对代码仓库的整个作用域执行完整扫描。
扫描新提交
管理和监控扫描
- 报告 — 下载为该扫描生成的报告。
- 用量 — 查看消耗的 ACU、会话数、扫描时长以及 PR (拉取请求) 统计信息。
- 会话 — 打开执行该扫描的主 Devin 会话。
- 导出为 CSV — 导出扫描的发现项。
- 归档 或 取消归档 — 将扫描从默认列表中隐藏,或将其恢复到默认列表。
- 扫描新的提交 — 启动增量扫描。
安全仪表板
- 拉取请求统计 — 已创建、已合并、处于打开状态和已关闭的拉取请求,以及合并率。
- 发现项趋势 — 在所选时间段内按严重程度分组的发现项。
访问与权限
启动扫描、提交反馈以及将发现项分配给 Devin,还需要具备使用 Devin 会话的权限。Auto Scan 还要求具备管理 Automations 的权限。
默认情况下,成员不会获得代码扫描权限。所有者拥有全部权限,管理员可通过自定义角色向成员授予权限。
将 Security Swarm 与另一款扫描器进行比较
常见问题
Security Swarm 如何减少误报?
Security Swarm 如何减少误报?
Security Swarm 会结合你的代码仓库上下文调查潜在漏洞,而不是孤立地报告存在风险的模式。Devin 会追踪相关数据流,检查验证和授权控制,并评估该问题是否会带来实际的安全影响。每条发现项都包含置信度等级和支持性证据。请先查看这些证据再采取行动,尤其是在某条发现项尚未经过运行时验证时。
我应该在一条发现项中查看哪些证据?
我应该在一条发现项中查看哪些证据?
请检查受影响的代码、入口点、数据流、现有缓解措施、所述影响、置信度和可利用性。启用运行时验证后,还应查看验证结果及其支持性工件。如果证据忽略了某项控制,或声称了缺乏依据的影响,请使用反馈补充缺失的上下文,以改进后续扫描。
运行时验证带来了什么?
运行时验证带来了什么?
运行时验证会尝试通过在隔离环境中构建并运行应用程序来复现一条发现项。验证成功会提供更强的可利用性证据,而验证失败则可以识别出需要进一步审查的假设或环境限制。运行时验证是可选的,并且需要提供足够的验证指引,以便 Devin 能够安全地构建、运行、植入数据并完成应用程序认证。
Security Swarm 如何发现跨多个文件的漏洞?
Security Swarm 如何发现跨多个文件的漏洞?
Security Swarm 会并行分析代码仓库的不同部分,并将结果整合为覆盖整个代码仓库的全局视图。这样它就能识别组件之间的关系,例如某个端点暴露了利用另一个端点所需的标识符。任何由此产生的链式发现项仍应指出相关代码路径,并说明各项条件如何共同构成实际影响。
为什么不同次扫描的结果可能会有所不同?
为什么不同次扫描的结果可能会有所不同?
Security Swarm 使用以 Agent 为核心的分析,因此不同次扫描产生的发现项或表述可能并不完全一致。聚焦的作用域、明确的威胁模型、清晰的严重性标准以及具体的调查指引,都有助于保持覆盖范围一致。请将这些要求记录在可复用的扫描 Profile中,使用交互模式审查建议的威胁模型,并在结果遗漏重要上下文时提供反馈。
扫描完成是否意味着代码仓库中没有其他漏洞?
扫描完成是否意味着代码仓库中没有其他漏洞?
任何安全扫描器都无法保证完全覆盖。结果取决于所选作用域、Profile 指引、可用的代码仓库上下文,以及发现项是否能在已配置的环境中得到验证。请针对不同的攻击者模型或威胁类别分别运行扫描,随着应用程序变化及时更新 Profile,并将 Security Swarm 与你现有的安全审查和测试实践结合使用。

