damianliszkiewicz/projects-audit
GitHub: damianliszkiewicz/projects-audit
一个基于 Bash 的轻量级本地安全扫描工具,用于快速检测 Node.js 项目中已知的恶意或存在漏洞的 npm 依赖包。
Stars: 0 | Forks: 0
# 项目-audit
`projects-audit` 是一个处于早期阶段、基于 Bash 的 Node.js 项目文件夹本地扫描工具。它可以帮助开发者对本地项目中的一小部分已知的恶意、可疑或存在漏洞的 npm 依赖进行快速初步检查。
## 为何开发此工具
Node.js 项目通常依赖于庞大的依赖树,而软件供应链安全问题可能出现在直接和间接的 npm 包中。开发者本地可能包含许多项目文件夹、旧的 lockfile 以及已安装的依赖树,这些都值得在进行深入审查前进行快速检查。
本项目旨在作为一个快速的本地初步扫描工具。它不能替代完整的安全平台、包管理器审计工具、软件成分分析(SCA)工具或人工安全审查。其目标是让针对性检查变得简单、透明且易于扩展。
## 当前功能
- 通过搜索 `package.json` 文件来查找 Node.js 项目。
- 在项目发现阶段跳过 `node_modules`,以加快扫描速度。
- 在每个发现的项目的 `package.json`、`package-lock.json` 以及顶层 `node_modules` 文件夹中检查是否包含 `plain-crypto-js`。
- 在 `package.json`、`package-lock.json` 以及 `npm list axios` 的输出中检查版本为 `1.14.1` 和 `0.30.4` 的 Axios。
- 打印可读的终端输出,显示发现的项目、检查的文件、跳过的检查以及警告信息。
## 使用方法
克隆此仓库,然后为扫描工具添加可执行权限:
```
git clone
cd projects-audit
chmod +x audit-projects.sh
```
在仓库目录中运行扫描工具:
```
./audit-projects.sh
```
默认情况下,脚本会扫描当前目录及其子目录。你也可以指定一个特定的路径:
```
./audit-projects.sh ~/Path/To/Your/Projects
```
该脚本目前没有包安装步骤。它使用标准的 shell 命令,并在扫描的项目包含 `node_modules` 目录时使用 `npm list axios`。
## 扫描工具检查的内容
当前的实现特意保持得小而基于规则。对于每个发现的 Node.js 项目,`audit-projects.sh` 会检查:
- `package.json` 中是否直接引用了 `plain-crypto-js`。
- 如果存在 `package-lock.json`,检查其中是否引用了 `plain-crypto-js`。
- 如果存在 `node_modules`,检查 `node_modules/plain-crypto-js` 是否有该包的实际安装副本。
- `package.json` 和 `package-lock.json` 中是否存在靠近版本字符串 `1.14.1` 或 `0.30.4` 的 `axios` 条目。
- `npm list axios` 输出中已安装的 Axios 版本是否匹配 `1.14.1` 或 `0.30.4`。
这些检查目前是通过 Bash、`find`、`grep` 和 `npm list` 实现的。该扫描工具尚未提供 JSON 输出、安全公告引用、版本范围解析、自动修复或通用漏洞数据库功能。
## AI 辅助漏洞研究愿景
未来版本可能会使用 AI 辅助工作流,帮助从 CVE、GitHub Security Advisories、npm 安全公告、更新日志、维护者披露和安全报告等公开来源中研究最近的 npm 及软件包漏洞。
AI 的预期作用是帮助总结安全公告、提取受影响的包和版本数据、起草候选检测规则,以及生成实用的修复指导。不应将 AI 视为绝对事实来源。每个扫描工具规则都应引用可供贡献者审查的公开安全公告、维护者披露或其他受信任的来源。
## 路线图
### 短期目标
- 为已知的恶意或存在漏洞的包添加更多检测规则。
- 为现有的 `plain-crypto-js` 和 Axios 检查添加测试。
- 为每条规则添加安全公告或来源引用。
- 在警告输出中添加更清晰的修复提示信息。
### 中期目标
- 添加 JSON 输出以支持 CI 和自动化用例。
- 添加 GitHub Actions 示例。
- 添加关于贡献新规则的文档。
- 改进版本匹配机制,超越简单的 `grep` 检查。
### 长期目标
- 构建 AI 辅助工作流,用于监控最新的 npm 漏洞并生成候选扫描工具规则。
- 要求生成的或提议的规则必须具有受信任的公开来源。
- 支持独立于扫描脚本的可维护规则格式。
- 扩展报告功能,同时保持本地扫描的快速和易读性。
## 项目状态
本项目处于早期阶段,正在积极开发中。当前的扫描工具适用于小范围的针对性检查,但尚未成为一个全面的 Node.js 安全扫描工具。
## 许可证
本项目基于 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE)。
标签:Cutter, GNU通用公共许可证, MITM代理, Node.js, 依赖扫描, 域名收集, 应用安全, 暗色界面, 模型提供商