stefanerdmann/pi-security-scanner
GitHub: stefanerdmann/pi-security-scanner
一个基于 LLM 的 Pi 扩展安全扫描器,用于在安装前检测第三方扩展的多种安全威胁并输出分级报告。
Stars: 0 | Forks: 0
# Pi 安全扫描器
一个在安装前使用 LLM 主分析扫描第三方扩展是否存在安全漏洞的 Pi 扩展。
## 安装
```
pi install npm:@piscanner/pi-security-scanner
```
或者本地测试:
```
pi -e ./extension/index.ts
```
## 用法
### 扫描 GitHub 扩展
```
/scan https://github.com/user/pi-cool-extension
```
### 扫描 npm 包
```
/scan npm:@author/pi-extension
/scan npm:@author/pi-extension@1.2.3
```
### 扫描本地目录
```
/scan ./path/to/extension
/scan /absolute/path/to/extension
```
### 深度扫描(包含依赖)
```
/scan npm:@author/pi-extension --deep
```
### 标志位
| 标志位 | 默认值 | 描述 |
|--------|--------|------|
| `--keep-source` | `false` | 扫描后在磁盘上保留获取的源代码 |
| `--max-files` | `500` | 最大扫描文件数 |
| `--max-size` | `10MB` | 最大总源代码大小 |
| `--deep` | `false` | 分析传递性的 npm 依赖 |
## 工作原理
1. **`/scan` 命令** 解析目标,安全获取源代码(不执行代码),并列出文件清单
2. **发送分析提示** 给 LLM,通过 pi 的代理循环
3. **LLM 读取每个文件**,使用 pi 内置的 `read` 工具并推理威胁
4. **报告发现结果**,通过 `report_finding` 工具输出类别、严重等级与位置
5. **`complete_scan`** 聚合发现结果,计算 PASS/FAIL,并将报告持久化到 `.pi-scan/`
## 威胁类别
| 类别 | 描述 |
|------|------|
| `data_exfiltration` | 读取凭证、环境变量、私钥 |
| `arbitrary_execution` | 使用不受控输入执行 Shell 或 eval() |
| `filesystem_abuse` | 写入项目目录之外或修改系统文件 |
| `network_communication` | 意外的出站连接 |
| `privilege_escalation` | 使用 sudo 或修改系统配置 |
| `obfuscation` | Base64 载荷加 eval、代码混淆 |
| `supply_chain` | 恶意 postinstall 脚本、依赖混淆 |
## 严重等级
- **Critical** — 直接数据窃取或任意远程代码执行 → FAIL
- **High** — 敏感数据访问、无限制 Shell 命令 → FAIL
- **Medium** — 意外网络通信、广泛的文件系统访问
- **Low** — 信息性信号、轻微卫生问题
## 持久化
所有扫描数据存储在项目根目录的 `.pi-scan/` 中(可被 Git 跟踪):
```
.pi-scan/
├── reports/ # Full scan reports (JSON)
├── cache/ # Cached results by fingerprint
└── overrides/ # Audit trail of FAIL overrides
```
## 自动拦截
在 `session_start` 时,扫描器会检查 Pi 的扩展目录中是否存在未扫描的扩展,并警告缺少缓存的 PASS 结果。
## 架构
该扩展使用 **Pi 的现有代理循环**——无需自定义 LLM API 调用。`/scan` 命令准备上下文与工具,然后通过 `pi.sendUserMessage()` 将控制权交给 LLM,由其自然地读取文件并通过结构化工具调用报告发现结果。
标签:C2, GraphQL安全矩阵, LLM 安全分析, MITM代理, npm 依赖审计, Pi CLI 工具, Pi 安全扫描, Pi 扩展安全, 代码执行审计, 代码混淆分析, 威胁情报, 安全开发生命周期, 安全扫描器, 安全扫描报告, 开发者工具, 扩展威胁检测, 数据泄露防护, 文件系统滥用, 权限提升检测, 深度依赖扫描, 结构化威胁分类, 网络探测, 网络通信监控, 自动化攻击, 错误基检测, 静态代码分析