slowmist/MistEye-DepScan
GitHub: slowmist/MistEye-DepScan
MistEye-DepScan 是一款轻量 CLI 工具,通过实时查询 MistEye 威胁情报 API 来检测多语言项目及全局环境中是否存在已知恶意依赖包。
Stars: 2 | Forks: 0
# MistEye DepScan
[中文版](README-CN.md) | [English](README.md)
一个极简依赖的 CLI 工具,通过调用 [MistEye](https://app.misteye.io/api-docs) 威胁情报 API 来扫描项目依赖和全局安装的包,以检测已知的恶意包和版本。
## 隐私
## 功能
- 极简的运行时依赖(Python 3.10+;在 3.10 中会自动安装 `tomli` 用于解析 `pyproject.toml`)
- 简单的命令:`scan` / `global` / `check`
- 多生态的 manifest 和 lock 文件解析:npm, PyPI, Rust, Go, RubyGems
- 全局扫描支持系统 Python、Node 全局包 (npm/pnpm/yarn/nvm)、Rust `cargo install` 以及 Go `go install` 二进制文件
- 输出格式:终端表格 / JSON / SARIF
- API 速率限制 (10 req/s)
- 扫描时显示每个包的进度;使用 `-o` 保存完整报告
## 安装
```
git clone
cd MisteyeDepscan
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
# 扫描当前项目
depscan scan .
# 扫描全局安装的包(系统 Python、Node 全局包)
depscan global
```
在虚拟环境中安装后,只要激活了该 venv,就可以在该环境的 `bin` 目录(例如 `.venv/bin/depscan`)中使用 `depscan`。
### 典型的 NVM 和 pnpm 路径
`depscan global` 会扫描 **npm -g**、**pnpm -g**、**yarn global** 以及位于 **nvm / fnm / volta** 版本目录下的包(不仅限于当前活动的 `npm root -g`)。
| 工具 | 典型根目录 | 已安装的 npm 包 |
|------|--------------|------------------------|
| **nvm** | `~/.nvm` (或 `$NVM_DIR`) | `~/.nvm/versions/node/v/lib/node_modules/` |
| **pnpm global** | 因安装方式而异 | 运行 `pnpm root -g`;在 macOS 上通常是 `~/Library/pnpm`,在 Linux 上通常是 `~/.local/share/pnpm` |
- 对于自定义的目录树,请使用 `depscan scan --depth 0`。
您也可以在不依赖 `PATH` 中的 `depscan` 的情况下运行:
```
python -m misteye_depscan scan .
```
### 安装后找不到 `depscan`?
`pip install` 会创建 `depscan` 脚本,但其安装位置取决于您的 Python 和操作系统,并且可能不在 `PATH` 中。如果 pip 输出 `The script depscan is installed in '...' which is not on PATH`,请使用该路径,或者找到用户脚本目录:
```
python3 -m site --user-base
# 脚本通常位于:标签:Python, 依赖扫描, 威胁情报, 开发者工具, 文档结构分析, 无后门, 模型提供商, 逆向工具