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, 依赖扫描, 域名收集, 应用安全, 暗色界面, 模型提供商