meowrypto/DepGuard
GitHub: meowrypto/DepGuard
DepGuard 是一个零依赖的 npm 依赖安全扫描 CLI 工具,专门检测依赖包中的加密货币窃取行为模式。
Stars: 0 | Forks: 0
# DepGuard
[](https://www.npmjs.com/package/@meowrypto/depguard)
[](https://www.npmjs.com/package/@meowrypto/depguard)
[](https://github.com/meowrypto/DepGuard/actions/workflows/ci.yml)
[](./LICENSE)
扫描已安装的 npm 依赖,检测**窃取加密货币类行为** —— 剪贴板劫持、助记词扫描、向 Discord/Telegram/Pastebin 渗透数据、混淆 payload,以及在信任它们之前执行下载并运行的 postinstall 脚本。
针对加密货币钱包的供应链攻击是一个真实且日益严重的威胁:一个被入侵或拼写抢注的 npm 包不需要多么复杂,它只需要读取一次你的剪贴板或 `.env` 文件就足够了。DepGuard 是一个小巧、无依赖的启发式扫描器,你可以在本地或 CI 中运行它,以捕获此类攻击最常见的特征模式。
**DepGuard 是一款启发式工具,而非绝对的保证。** 发现异常意味着“这需要人工审查”,而不是“这就是恶意软件”。它会产生误报(合法的加密货币库也会触发助记词特征),并且可能会被有决心的攻击者绕过。请将其作为一种补充检查手段,而不是唯一的防线。
## 安装
无需安装 —— 直接运行:
```
npx @meowrypto/depguard
```
或者将其安装为开发依赖:
```
npm install --save-dev @meowrypto/depguard
```
## 用法
```
# 扫描当前目录的 node_modules(默认)
npx @meowrypto/depguard
# 扫描特定目录
npx @meowrypto/depguard ./some-folder
# 仅在 medium severity 或以上级别时失败(exit code 1)——适用于更严格的 CI
npx @meowrypto/depguard node_modules --fail-on medium
# 输出 machine-readable JSON
npx @meowrypto/depguard node_modules --json > report.json
```
当没有发现达到或超过 `--fail-on` 阈值(默认:`high`)的项时,退出码为 `0`,否则为 `1` —— 因此它可以直接无缝集成到 CI 中。
## 检测目标
| 类别 | 示例 |
|---|---|
| 剪贴板访问 | 读/写剪贴板(典型的钱包地址替换攻击) |
| 助记词 / 密钥扫描 | BIP39 词表引用、`wallet.dat`、`privateKey =` |
| 数据渗透渠道 | Discord webhook、Telegram Bot API、Pastebin、原始 IP 请求 |
| 混淆 | `eval()`、`new Function()`、base64 解码后执行 |
| 安装时执行 | 使用 `curl`/`wget` 下载并执行某些内容的 `postinstall`/`preinstall` 脚本 |
| 凭据收集 | 批量读取 `process.env` |
请参阅 [`lib/patterns.js`](./lib/patterns.js) 获取完整的带注释列表 —— 每一个特征模式都包含了一行关于为何被标记的说明。
## 在 CI 中使用
将 [`examples/depguard-action.yml`](./examples/depguard-action.yml) 复制到你的代码仓库的 `.github/workflows/depguard.yml` 路径下,即可在每次 PR 和推送到 `main` 分支时扫描你的依赖。
## 开发动机
大多数供应链安全工具都是为大型团队和付费层级构建的。DepGuard 旨在成为一款个人开发者或小型开源加密货币项目能够在一分钟内免费接入的工具,实现零配置且自身无任何依赖。
## 贡献
非常欢迎提出特征模式建议 —— 如果你见过真实的攻击使用了本文未涵盖的技术,请提交一个 issue 或 PR,并附带(经过脱敏、非可用作攻击的)示例。关于特征模式的格式,请参见 [`lib/patterns.js`](./lib/patterns.js)。
## 许可证
MIT —— 请参阅 [LICENSE](./LICENSE)。
标签:DNS 反向解析, GitHub Action, GNU通用公共许可证, LNA, MITM代理, Node.js, 云安全监控, 文档安全, 文档结构分析, 暗色界面, 网络信息收集, 自定义脚本, 静态分析