UBEL:免费SCA、依赖/ Linux软件包/ Docker防火墙及AI辅助SAST
UBEL是一个跨生态系统的软件供应链安全平台,它不仅能发现依赖项中的漏洞,还能在安装时强制执行安全策略,阻止已知的恶意包。它支持npm、pip、Cargo等多种包管理器,以及Linux和Windows平台,并提供完整的SBOM和SARIF输出。
UBEL是一个基于软件组合分析(SCA)的供应链安全平台,由开源社区开发。与许多仅生成报告的传统扫描器不同,UBEL具备主动阻断能力——如果扫描发现违反策略,它会直接中断安装过程并给出明确原因。该工具覆盖从开发者添加依赖到CI验证,再到生产环境的整个交付链,确保每个环节的依赖安全。
UBEL支持广泛的生态系统,包括Node.js(npm、pnpm、yarn、bun)、Python(pip)、PHP(Composer)、Rust(Cargo)、Go(Go Modules)、C#/.NET(NuGet)、Java/Kotlin(Maven)和Ruby(Bundler)。此外,它还能扫描Linux(dpkg、apk、rpm)和Windows(注册表、PowerShell)平台上的系统软件,无需提升权限。每个发现的包都会通过PURL去重,确保跨子项目的共享包只被扫描一次。
核心功能之一是“防火墙”机制。以Node.js为例,UBEL先以锁文件模式解析依赖树,生成候选锁文件。扫描通过后才允许实际安装;如果发现策略违规,锁文件会回滚到扫描前的状态,保证node_modules/目录不受影响。同时,系统还会验证候选锁文件和package.json的SHA-256哈希,防止TOCTOU竞态条件攻击。所有包管理器均以--ignore-scripts参数调用,阻断恶意安装前/后脚本。
策略配置以JSON格式存储在项目根目录的.ubel/local/policy/config.json中。默认策略阻止“high”及以上严重性的漏洞,以及未评分的CVE。恶意包(如MAL-*)始终被无条件阻止,无法禁用。每次扫描都会生成时间戳报告,包括JSON、HTML、SBOM(CycloneDX v1.6)和SARIF(v2.1.0)格式。HTML报告无需服务器即可打开,包含严重性仪表盘、可搜索的漏洞表、交互式依赖关系图等。
UBEL可直接集成到CI/CD流水线和Dockerfile中,违反策略时命令返回非零退出码。它也提供程序化API,供AI代理和VS Code扩展调用。完全本地运行,仅向OSV.dev和NVD的公开API发送PURL查询,不收集任何遥测数据或文件内容,确保隐私安全。