SuperAPI AI 工具集

ubs-scanner

安全与审计

查看项目

更新于 10-16 04:08

技能介绍

UBS(Ultimate Bug Scanner)是一款面向多语言的自动化缺陷扫描工具,定位为静态分析扫描器,用于在代码进入生产环境前发现缺陷,尤其是 AI 编码代理经常引入的模式。

主要能力 UBS 可检测 1000 多种缺陷模式,覆盖以下语言:JavaScript/TypeScript、Python、C/C++、Rust、Go、Java、Ruby、Swift。

检测的缺陷类别

  • 严重(始终报告):空指针崩溃与未防护访问;安全漏洞(XSS、eval 注入、SQL 注入);缓冲区溢出与不安全内存操作;释放后使用与重复释放。
  • 高(按“关键少数”报告):缺失 async/await 导致的静默失败;类型比较错误(NaN 检查、布尔逻辑错误);资源生命周期失衡(未关闭文件、goroutine 泄漏);错误路径缺少 defer/清理。
  • 中(相关时报告):使用已弃用 API;次优模式;缺少错误处理。

使用方式 快速扫描(开发阶段): ubs scan . --severity=critical ubs scan src/auth.rs src/parser.rs --severity=high 完整扫描(验证阶段): ubs scan . --all-rules ubs scan . --format=sarif > ubs-report.sarif ubs scan . --format=json > ubs-findings.json 按语言扫描: ubs scan . --lang=rust --include-unsafe ubs scan . --lang=typescript --strict 过滤关键少数发现: ubs scan . --severity=high,critical --confidence=90

与质量门禁集成 当由 quality-gate 技能调用时,流程包括:确定扫描范围(PR/提交中变更的文件、来自 intake 的风险画像);选择合适规则(涉及安全使用 --rules=security,不安全代码使用 --rules=memory-safety,异步代码使用 --rules=concurrency);执行 ubs scan <changed-files> --rules=<risk-based> --format=json;报告发现(严重/高为阻塞项,中为非阻塞跟进,低不报告)。

输出格式 质量门禁报告包含状态(通过/带跟进通过/失败)、发现汇总(严重/高/中数量)、严重(阻塞)与高(应修复)条目及规则 ID、描述、文件与行号、修复建议,以及证据(命令与完整报告文件)。代码审查输出包含严重级别、规则 ID、位置、问题、影响与修复方式,并给出修复前/后的代码对比。

常见发现与修复示例

  • JS/TS 空值访问:使用可选链与空值合并(user?.profile?.name ?? 'Unknown')。
  • JS/TS 缺失 await:在 async 函数中对 fetchData() 使用 await。
  • Rust 无界分配:设置 MAX_ITEMS 上限并在超限时返回错误。
  • Python 注入:使用参数化查询替代字符串拼接。
  • Go 资源泄漏:使用 defer f.Close()。

安装 curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/ultimate_bug_scanner/main/install.sh | bash brew install ultimate-bug-scanner docker pull dicklesworthstone/ubs

验证 运行 UBS 后:确认所有严重发现已处理;对接受的风险记录理由;将 UBS 报告纳入质量门禁证据包。

约束 不得在未明确签字的情况下忽略严重安全问题;所有代码变更在合并前应运行 UBS;质量门禁报告中应包含 UBS 证据;修复后需重新运行以确认解决。

限制与说明 资料未提供 UBS 的收费、价格、平台支持范围、性能指标、扫描速度基准以及所有规则的完整清单,这些内容暂未提供。