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, 请求拦截, 逆向工具, 风险治理