rakshit-737/warden-supply-chain-firewall
GitHub: rakshit-737/warden-supply-chain-firewall
一款基于行为分析的软件供应链防火墙,通过静态分析与规则+ML 混合评分在恶意 PyPI 包进入代码库前将其拦截。
Stars: 0 | Forks: 0
# Warden — 软件供应链防火墙
**在恶意开源包*进入*您的代码库*之前*将其拦截。**
[](https://pypi.org/project/warden-supply-chain-firewall/)
[](https://pypi.org/project/warden-supply-chain-firewall/)
[](https://github.com/rakshit-737/warden-supply-chain-firewall/actions/workflows/ci.yml)
[](LICENSE)
一个针对 Python 依赖项的行为防火墙:它会获取并对包的真实代码和元数据进行静态分析,将基于规则和机器学习的信号融合为一个 0–100 的风险判定,并通过 REST API、CI/CLI 拦截机制以及安全团队仪表板来执行组织策略(允许 / 警告 / 拦截)。
[架构](docs/ARCHITECTURE.md) ·
[威胁模型](docs/THREAT_MODEL.md) ·
[API](docs/API.md) ·
[ML 模型](docs/ML_MODEL.md) ·
[构思](docs/IDEATION.md)
## 为什么开发此项目
现代应用程序主要由第三方代码组成,而仅仅一次 `pip install` 就会以开发者或 CI 运行器的完整权限执行代码。攻击者利用这一点,通过恶意发布(在安装时窃取机密信息的代码)、**typosquat**(域名/包名抢注,例如用 `reqeusts` 伪装 `requests`)以及**依赖混淆**来进行武器化攻击。
传统的漏洞扫描器**根本无法捕捉到这些威胁** —— 因为对于尚未有人报告的包,是不存在 CVE 记录的。Warden 是一种*行为*控制措施:它根据**包的构建方式及其具体行为**来决定一个包是否可信,而不是依赖漏洞数据库。这一区别正是该项目的核心所在。
## 它的功能
```
flowchart LR
CLI["warden CLI / CI gate"] -->|POST /scan| API
UI["Security dashboard"] -->|REST + JWT| API
subgraph API["FastAPI backend"]
direction TB
O["Orchestrator"] --> F["PyPI fetcher(safe extraction)"] F --> AZ["6 analyzers →
signals"] AZ --> SC["Hybrid scorer
rules + ML"] SC --> PE["Policy engine"] end API --> DB[("PostgreSQL")] API --> RC[("Redis")] SC --> ML["scikit-learn model"] ``` 对于一个给定的 `(name, version)`(名称与版本),它能够在几百毫秒内完成: 1. **获取**从 PyPI 下载的真实源代码发行版,并在严格的防 zip 炸弹 / 防路径遍历保护下进行解压 —— **全程绝不执行包内的代码**。 2. **分析**通过六个独立的 analyzer 生成可解释的*信号*:元数据/来源信息、基于 AST 的行为分析、安装时执行行为、typosquat 检测、代码混淆检测以及已知 IOC 匹配。 3. **评分**使用*分层*规则引擎 **以及**经过校准的 ML 模型(RandomForest + IsolationForest)对信号进行评分,并采取保守的融合策略。 4. **决策**根据可调的组织策略决定是允许 / 警告 / 拦截,并记录一条可审计的判定结果,同时附上驱动该决策的具体信号。 ## 供审阅者查看的亮点 - **基于行为而非签名** — 能够捕捉前所未见的恶意包。 - **全程可解释** — 每一项判定都会列出触发信号及策略规则;仪表板会同时显示规则评分和 ML 评分。 - **ML 的合理运用** — 非线性风险概率预测 + 无监督异常检测,如果模型缺失则能优雅降级为仅使用规则。(参见 [`ML_MODEL.md`](docs/ML_MODEL.md)。) - **针对恶意输入的加固** — analyzer 的设计初衷就是考虑到其输入是由攻击者伪造的:安全的解压机制、严格的体积/时间/数量上限,并且**不执行任何代码**。(参见 [`THREAT_MODEL.md`](docs/THREAT_MODEL.md)。) - **符合生产级标准** — 带有 refresh 轮换的 JWT 认证、argon2id 哈希加密、RBAC、带有请求 ID 的结构化日志、速率限制、追加式审计追踪、Alembic 数据库迁移、完整的测试套件、采用只读非 root runtime 的容器化部署,以及 CI 流水线。 ## 技术栈 | 层级 | 技术选型 | |-------|---------| | Backend | Python 3.12, FastAPI, SQLAlchemy 2, Alembic, pydantic v2 | | 分析 / ML | Python `ast`, scikit-learn (RandomForest + IsolationForest), joblib | | 数据 | PostgreSQL, Redis (cache + rate limiter) | | Frontend | React 18, TypeScript, Vite, Tailwind CSS, Recharts | | 交付 | Docker + docker-compose, GitHub Actions CI, `warden` CLI | ## 快速开始 (Docker — 全栈) ``` git clone
标签:Apex, AV绕过, FastAPI, Python, React, Syscalls, 云安全监控, 域名收集, 恶意依赖检测, 搜索引擎查询, 文档安全, 无后门, 机器学习, 测试用例, 请求拦截, 软件供应链安全, 远程方法调用, 逆向工具, 配置审计, 静态分析