企业级node安全保障
第三方依赖的安全隐患
安全现状
- 去年11月, snyk公司发布《2017开源软件安全报告》, 其中扫描了43万个站点, 发现77%的站点包含到至少1个以上已知漏洞.
- OWASP把”Using Components with Known Vulnerabilities”列为十大安全威胁之一.
为什么需要漏洞扫描工具
几乎每个项目都会引用许多第三广告的包, 有人统计一个项目大约80%的代码来自于第三方依赖, 自己写的代码不足20%. 我们用尽全力保证我们20%的代码质量, 却很可能不知不觉间被80%的第三方代码中的漏洞坑害. 同时npm仓库里的包质量良莠不齐, 如果你有在npm官方仓库中提交过自己的作品,你会发现npm不会做任何质量检查, 只要你的包名没有重复, 你就可以提交, npm包虽然众多,但质量参差不齐, 甚至还有一些钓鱼的包. 我们不可能手动检查所有依赖包的安全漏洞,必须借助一些自动化工具.
自动化工具
目前已知的这类自动化工具主要有:nsp (node security platform), npm audit fix, snyk, retire, greenkeeper, OWASP Dependency Check.本文主要介绍nsp及npm收购后做的整合, 和一个商用扫描工具snyk. 并对它们做一个简单的对比. 最后简单介绍了一下retire, greenkeeper, OWASP Dependency Check.
nsp
nsp是一个叫^Lift公司的产品.安装和使用方法都很简单.
安装: :B_exampleblock:
1 npm i -g nsp
使用方法:
1 nsp check
上图是nsp check当前项目时报告的结果, 该项目的第三方依赖含有2个已知漏洞, 下面的表格详细描述了其中一个漏洞的详情.下文中我们会详细说