AlaBouali/ubel
GitHub: AlaBouali/ubel
跨生态系统的供应链安全引擎,在依赖安装时强制执行安全策略以防止供应链攻击。
Stars: 0 | Forks: 0
# UBEL ( Unified Bill / Enforced Law ) – 多生态系统安全与策略执行 CLI
Ubel 是一个快速、跨生态系统的安全引擎,负责解析依赖项、生成 PURL、通过 OSV.dev 进行扫描,并在安装过程中执行安全策略以防止供应链攻击。它适用于:
- **PyPI** (通过 `ubel-pip`)
- **npm** (通过 `ubel-npm`)
- **Linux 发行版** (基于 Ubuntu、基于 Debian、RHEL、AlmaLinux、Rocky-Linux 以及 Alpine)
- **Docker** (如果镜像基于上述提到的 Linux 发行版之一)
Ubel 运行于 **CLI**、**自动化脚本** 和 **CI/CD pipelines** 中,可生成清晰的 **JSON** 和 **PDF** 报告。
## ✨ 功能特性
- 跨生态系统的完整依赖解析
- OSV.dev 漏洞扫描 (批量 API)
- 策略引擎 (根据严重程度和感染情况阻止/允许)
- 检查 linux-package 或 node/python 依赖或整个项目 (`check` 模式)
- 安装时强制执行 (`install` 模式)
- 项目级/主机级/内核级/Docker级扫描 (`health` 模式)
- 捕获 Non-CVEs
- 这是一个供应链保护工具
- 自动生成报告 (JSON + PDF)
- 极速 (每次扫描仅需数秒)
## 📦 安装
```
pip install ubel
```
如果你使用的是 Linux,你需要:
- 设置虚拟环境:`python3 -m venv venv`
- 运行并启用虚拟环境 `source venv/bin/activate`
- 然后运行:`pip install ubel`
Ubel 提供的可执行文件:
- `ubel` (Linux 软件包扫描和 OS 级别操作:基于 Ubuntu、基于 Debian、Red Hat、Almalinux、Rocky-Linux 以及 Alpine )
- `ubel-pip` (Python 生态系统)
- `ubel-npm` (Node.js 生态系统)
- `ubel-docker` (Docker)
# 🚀 使用概览
## Main CLI
```
usage: ubel [-h] {check,install,health,init,allow,block} [extra_args ...]
```
## PyPI CLI
```
usage: ubel-pip [-h] {check,install,health,init,allow,block} [extra_args ...]
```
## npm CLI
```
usage: ubel-npm [-h] {check,install,health,init,allow,block} [extra_args ...]
```
## docker CLI
```
usage: ubel-docker [-h] {health}
```
# 🧠 命令详解
### **check**
解析依赖/Linux-packages → 生成报告 → 退出。
#### Python 示例:
```
ubel-pip check
```
如果未传递额外参数,Ubel 将:
- 检测 `requirements.txt`
- 解析所有包
- 扫描它们
- 输出 PDF + JSON
#### npm 示例:
```
ubel-npm check flask==3.1.0
```
如果未传递参数,它将自动检测 `package.json`。
### **install**
与 `check` 相同,但会执行策略并**阻止或允许**安装。
#### Python 示例:
```
ubel-pip install flask==3.1.0
```
或者自动检测项目依赖:
```
ubel-pip install
```
#### npm 示例:
```
ubel-npm install express@5.0.0
```
或者简单地:
```
ubel-npm install
```
(自动使用 `package.json`)
### **health**
扫描**整台机器**或**运行中的项目**,包括:
- 已安装的 PyPI 包
- 已安装的 npm 全局包
- OS 级别包 (基于 Ubuntu/Debian/RHEL/AlmaLinux)
示例:
( 针对 linux )
```
ubel health
```
或者 ( 针对 node.js app )
```
ubel-npm health
```
或者 ( 针对 python app )
```
ubel-pip health
```
此模式会生成庞大、详细的清单和漏洞矩阵。
### **init**
为项目或系统初始化一个策略文件。
示例:
```
ubel init
```
创建默认策略:
```
infections: block
severity:
critical: block
high: block
medium: allow
low: allow
unknown: allow
```
### **allow / block**
从 CI/CD 或脚本流水线中覆盖 Ubel 的决定。
参数可以是:"low"、"medium"、"high"、"critical"。
示例:
```
ubel block high critical
```
# 📁 自动项目检测
对于 **npm** 和 **PyPI**,当运行以下命令时:
- `install`
- `check`
不带参数:
### Ubel 自动加载:
- `package.json` (针对 npm)
- `requirements.txt` (针对 pip)
这使其非常适合 CI/CD 工作流。
# 📤 输出
Ubel 生成:
### **1. JSON 报告**
机器可读,包括:
- 依赖列表
- purls
- 漏洞
- 严重程度
- 感染状态
- 策略决定
- 生成完整的类 SBOM 机器清单
### **2. PDF 报告**
人类可读,包括:
- 统计摘要
- 每个依赖项的漏洞详情
- 修复建议
- 表格
- OSV 参考链接
- 生成完整的类 SBOM 机器清单
# 🧩 生态工具
- `ubel` → 系统包,Linux 发行版
- `ubel-pip` → PyPI 项目,虚拟环境\
- `ubel-npm` → Node.js, npm, package.json 项目
Ubel – 在每个依赖到达生产环境之前确保其安全。
标签:CI/CD安全, DevSecOps, Docker安全, GNU通用公共许可证, JSON, Llama, Node.js, npm, OSV, PDF, PyPI, Python, Vercel, 上游代理, 依赖解析, 包管理器, 安全报告, 安全策略引擎, 安装时防护, 文档安全, 文档结构分析, 无后门, 渗透测试辅助, 统一API, 请求拦截, 逆向工具, 风险治理