用途
Forge Security Review 用于对 Atlassian Forge 应用执行白盒安全审查,并报告经过验证的发现,包含可利用性、影响、证据和修复指导。适用于用户要求审查 Forge 应用安全性、进行白盒安全审计、检查授权绕过与租户隔离问题,或对 Forge 代码库运行完整静态分析等场景。
主要能力
审查覆盖以下安全领域:
- 认证与授权(AuthN/AuthZ)
- 注入与输入验证
- 租户隔离与跨租户泄露
- 密钥与存储
- 出站请求/远程/CSP 与清单权限
- 公开入口点(web trigger)
- 智能体及其他 Forge 安全风险
对确认可利用的发现按 CVSS v3.1 严重性和影响排序,并为每个确认发现提供:CVSS 向量与基础分数、严重性等级、可利用性与影响、文件证据与 source-to-sink 追踪、CWE 映射、可复现的 PoC/测试步骤(含具体命令)。同时包含假设和证据缺口。当存在漏洞时,不只报告扫描器计数。
使用方式
技能触发后按以下流程执行:
- 首先从技能目录运行静态分析:
scripts/run_static_analysis.sh <forge-project-root-directory>- Windows 使用
.ps1脚本
- 在任何深度代码审查之前先读取
manifest.yml。 - 首先加载
assets/security-rules/_global-forge.mdc。 - 仅根据清单和代码信号加载相关类别索引规则。
- 仅当真实代码模式触发匹配的检测启发式时,才加载深层子规则。
规则路由工作流
阶段 1:侦察(强制)
先读取 manifest.yml 并提取:
permissions.scopespermissions.external.fetchpermissions.content.scriptsmodules(resolver/webtrigger/scheduledTrigger/rovo 等)remotesapp.runtime.name
构建执行映射:
- UI 模块 -> bridge 调用 -> resolvers/functions
- 外部入口点(web triggers、events、schedules)
api.asUser()与api.asApp()路径- 出站 fetch 目标
阶段 2:索引规则选择(两层加载)
始终首先加载:
assets/security-rules/_global-forge.mdc
然后仅加载相关类别索引规则:
| 信号 | 加载 |
|---|---|
| 任何有意义的 scope 使用、变更或 asApp() 使用 | assets/security-rules/forge-authn-authz/_index-authn-authz.mdc |
| webtrigger 或 scheduledTrigger 模块 | assets/security-rules/forge-webtrigger-entrypoints/_index-webtrigger-entrypoints.mdc |
| permissions.external.fetch 或 remotes | assets/security-rules/forge-egress-remotes/_index-egress-remotes.mdc |
| SQL API 或不可信输入到达 resolver 汇聚点 | assets/security-rules/forge-injection/_index-injection.mdc |
| 多租户模式、模块/全局状态、缓存复用 | assets/security-rules/forge-tenant-isolation/_index-tenant-isolation.mdc |
| 凭据/令牌/密钥处理 | assets/security-rules/forge-secrets-storage/_index-secrets-storage.mdc |
| 不安全的 CSP 或可能的 scope/配置错误 | assets/security-rules/forge-manifest-config/_index-manifest-config.mdc |
| Rovo 模块/操作 | assets/security-rules/forge-rovo-agents/_index-rovo-agents.mdc |
| 基线日志/错误/静态分析关注点 | assets/security-rules/forge-auditing/_index-auditing.mdc |
| 依赖/包风险审查 | assets/security-rules/forge-misc/_index-misc.mdc |
子规则策略:读取索引后,仅加载与代码中观察到的检测启发式匹配的子规则。不要预先加载某个类别中的所有子规则。
阶段 3:分析与验证
对每个已加载类别:
- 枚举可达入口点。
- 追踪 source -> validation/authz -> sink。
- 用证据确认可利用性。
- 对确认的发现按 CVSS v3.1 评分。
聚焦审查模式
如果用户要求窄范围审查(例如仅授权),加载:
- 全局基线
- 请求的类别索引
- 该类别中仅匹配的子规则
仍应提及在范围外观察到的任何明显关键发现。
审查工作流
- 构建执行映射:
- UI Kit/Custom UI 入口点
- Bridge 调用与 resolver 处理器
api.asUser()/api.asApp()调用路径- 外部出站/远程与触发器入口点
- 对每个发现,追踪 source -> validation/authz -> sink。
- 在归类为确认漏洞之前验证可利用性。
- 将不可利用的加固观察保留在单独的“需要验证”部分。
- 为每个问题提供文件级证据和实用测试线索。
静态分析模式
如果用户要求完整扫描,从以下文件运行完整工作流:
assets/security-rules/forge-auditing/static-analysis-forge.mdc
预期工具(可用时):Semgrep、npm audit、Snyk、gitleaks。
输出要求
- 提供 markdown 安全审计报告。
- 按 CVSS v3.1 严重性和影响排序确认的可利用发现。
- 为每个确认发现包含:CVSS 向量与基础分数、严重性等级、可利用性与影响、文件证据与 source-to-sink 追踪、CWE 映射、可复现的 PoC/测试步骤(含具体命令)。
- 包含假设和证据缺口。
- 当存在漏洞时,不只报告扫描器计数。
规则资产
审查规则打包在本技能下的 assets/security-rules/:
- 全局基线:
assets/security-rules/_global-forge.mdc - 类别索引:
assets/security-rules/forge-*/_index-*.mdc - 类别深度检查:
assets/security-rules/forge-*/*.mdc
限制
- 除非用户明确要求修复,否则不修改应用代码。
- 所有扫描输出和生成的产物写入
security-audit-artifacts/。 - 默认使用清单驱动路由以减少 token 使用,不预先加载每个规则文件。
- 静态分析预期工具(Semgrep、npm audit、Snyk、gitleaks)仅在可用时使用。
示例触发短语
- “Review this Forge app for security”
- “Do a white-box security audit of my Forge app”
- “Check this app for authz bypass and tenant isolation issues”
- “Run full static analysis for this Forge codebase”