用于检测 node 项目的第三方依赖组件是否存在安全漏洞。
该项目是基于 snyk/resolve-deps 的二次开发。
Website:https://security.immomo.com
WeChat:
npm >= 5.2.0
> cd your_node_project/
> npx github:momosecurity/mosec-node-plugin \
--endpoint http://127.0.0.1:9000/api/plugin \
--only-provenance
$ npx github:momosecurity/mosec-node-plugin --help
Usage: mosec [options]
Options:
-V, --version output the version number
-e, --endpoint <value> 上报API
-t, --target <path> 项目所在目录 (default: current dir)
-s, --severity-level <value> 威胁等级 [High|Medium|Low] (default: "High")
--only-provenance 仅检查直接依赖 (default: false)
--with-dev 包括devDependency (default: false)
-h, --help display help for command
以 test/vuln-project 项目为例。
红色部分给出漏洞警告,Path: 为漏洞依赖链,Fix version 为组件安全版本。
MOSEC-NODE-PLUGIN首先会读取package.json文件并解析出项目声明需求的依赖。
之后会递归解析node_modules目录,提取当前项目安装的依赖。如有必要,还会逐级向上层目录查找node_modules目录。
最后进行声明依赖与实际安装依赖的比对,并构造当前项目的依赖树。
最终依赖树会交由 MOSEC-X-PLUGIN-BACKEND 检测服务进行检测,并返回结果。
相关数据结构请参考 MOSEC-X-PLUGIN-BACKEND README.md.