Skip to content

HHN0609/npm-pkg-security-tester

Repository files navigation

NPM Security Tester

一个基于 AI 的自动化 NPM 包安全测试工具。通过分析测试用例与 API 模式生成 Fuzzing Driver,并集成(或模拟)Jazzer.js 进行模糊测试以发现安全漏洞。

功能概览

  • 测试用例与 API 模式分析(需要 OpenAI API Key)
  • 模板/LLM 生成 Fuzzing Driver
  • 漏洞检测与报告生成(原型污染、代码注入、路径遍历等)
  • 全流程自动化引擎(AutomationEngine,当前通过脚本演示)

安装与构建

npm install
npm run build

使用方式

当前 CLI 提供以下命令:

  1. 状态检查
npm run start status

展示工具版本、环境与配置摘要等信息。

  1. 分析包并生成 API 模式(需要 OpenAI API Key)
# 将结果写入指定输出目录(默认 ./output)
npm run start analyze <package-name> \
  --api-key <OPENAI_API_KEY> \
  --output ./output \
  --iterations 10000 \
  --timeout 300
  • 该命令会:
    • 读取/验证 OpenAI API Key(命令行传入或配置文件)
    • 提取测试用例并调用 LLM 分析 API 模式
    • 将分析结果保存为:output/-analysis.json

配置 OpenAI API Key

支持两种方式:

  • 命令行参数:--api-key <OPENAI_API_KEY>
  • 配置文件(默认路径):~/.npm-security-tester/config.json 示例:
{
  "api": {
    "openai": {
      "apiKey": "your-openai-api-key",
      "model": "gpt-4"
    }
  },
  "output": { "directory": "./output" },
  "fuzzing": { "jazzer": { "timeout": 300000, "iterations": 10000 } }
}

端到端全流程(演示)

当前 CLI 尚未直接挂接全流程自动化引擎(AutomationEngine)。可通过脚本快速演示完整流程:

node test-e2e.js

执行完成后将看到:

  • 生成的 Drivers:output/drivers/
  • 自动化报告:output/automation-report.json

提示:脚本会自动进行合成分析与模板驱动生成,并在本地环境下模拟/集成模糊测试运行。

输出示例

  • 分析结果:output/<package>-analysis.json
  • 驱动与元数据:output/drivers/*.js*.meta.json
  • 自动化报告:output/automation-report.json

支持的漏洞类型(检测器内置)

  • 原型污染(Prototype Pollution)
  • 代码注入(Code Injection)
  • 路径遍历(Path Traversal)
  • 资源/性能类问题(DoS/内存使用等)

规划与后续

  • 将 AutomationEngine 挂接为 CLI 子命令(如 run/auto)
  • 增强 API 模式合成策略,覆盖更多函数签名
  • 丰富报告内容与可视化

反馈与贡献

欢迎提交 Issue/PR,一起完善工具能力与生态。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published