8个用于扫描Node.js应用程序安全漏洞的工具
查找 node.js 安全漏洞并在被黑客攻击之前修复它们,以保护应用程序。
有一些在线工具可以帮助您查找 php、wordpress、joomla 等常见的 安全漏洞,但事情并不简单!它们可能无法检测出您的应用程序是否是基于 node.js 构建的。
最近的研究发现超过 80% 的用户发现他们的 node.js 应用程序存在漏洞。
这些漏洞可能有数百种类型,原因是配置错误、过时的 npm 软件包等等。下面的安全扫描工具应该能够帮助您找到安全漏洞。
本文介绍了如何查找 node.js 安全漏洞并在被黑客攻击之前保护它们。
我还想强调 ,本文侧重于找到漏洞的工具。我建议查看“如何从在线威胁中 保护 node.js”以配置安全保护。
snyk
snyk 是一个方便的选项,用于查找容器、代码依赖和基础设施的漏洞。无论是开发工具、自动化流水线还是工作流程,snyk 都可以直接集成!
在最新更新中,snyk 已包含 spdx v3.20。详细程度将得到改善,但许可证检测的数量应保持不变。此外,它支持 npm 的 lockfile v3
项目。
不要以为这是结局!它还有一些其他优势,包括:
- 使用 snyk,您将通过获取新漏洞的通知保持警惕。
- 它将帮助您防止添加更多依赖项。
有趣的事实是,如果您将 node.js 应用程序部署在容器中,可能还会添加不安全的软件包。snyk 容器 cli 可以帮助您识别减少应用程序攻击面的基础镜像。
nodejsscan
从技术角度来说,nodejsscan 是一个专门为 node.js 开发的静态安全代码扫描器(sast)。它基于的语言是 python。这个工具受到 libsast 的支持,这是一个通用的用于安全工程师的 sast,以及 semgrep,一个用于查找第三方依赖项中的漏洞的开源和最快的静态分析引擎。
要运行 nodejsscan,您需要执行命令 ./run.sh
。这个命令将帮助您在 http://127.0.0.1:9090
上运行 nodejsscan 的 web 用户界面。
关于它的集成,您可以创建 slack 或电子邮件提醒,以获得有关漏洞的通知。
总的来说,它可以发现漏洞并使您的应用程序更安全。这取决于您明智选择的工具,它可以帮助您解决安全漏洞。我建议 node js scan 是一个可行的选择。
auditjs
如果您正在寻找一个完美的漏洞发现器,请开始对 auditjs 建立信任。 auditjs 具有用于识别已知漏洞的 oss index v3 rest api 长剑。它还可以定位过时的软件包版本。
auditjs 支持 npm、angular、yarn 和 bower 包管理器,用于在 node_modules 文件夹中安装依赖项的项目。
安装过程有几种方式,比如通过npx
进行,它提供了最不永久的安装方式,命令是“npx auditjs@latest ossi
”,或者您可以选择全局安装,提供了最永久的安装方式,命令是“npm install -g auditjs
”。
在我的评论中,我建议通过npx
安装。在node.js社区中,通常不鼓励全局安装。
detectify
detectify是另一个用于查找web应用程序漏洞的工具。它最近在市场上赢得了声誉,并成为一个可靠的选择。它提供持续扫描,以测试您的应用程序是否存在最新漏洞。它还支持计划扫描,以便与您的方便并行进行。
我猜您可能会觉得这有点不同寻常;您可以使用可自定义参数创建与您日常使用的工具的关联,并将关键安全发现发送给它们。
最后,我还想强调另一个它提供的功能:无论其资产如何,它都可以提供所有漏洞的完整概览。
megalinter
megalinter被认为是避免技术债务最有效的工具之一,它帮助我们提供干净和高效的代码,使用户在工作流程中节省时间。
megalinter帮助我们遵循代码审核的最佳实践,因为该工具允许开发人员在每个拉取请求上自动更新和分析代码。它主要帮助优化代码审核过程,使用户能够节省大量时间。
然而,就错误日志的验证而言,megalinter帮助开发人员实践一些最佳技术,因此他们可以有效地执行重要的代码错误而无需失败。
除了所有这些重要因素之外,该工具还提供了一系列ide插件,可帮助开发人员安装所需的插件以高效执行各种任务。
除了所有这些多个方面之外,这个工具的一个重要特点是它完全开源,并且对每个开发者都是免费的。
该工具是独立的,不需要任何外部应用程序;它在任何ci工具上都可以高效地工作,我们也可以在本地系统上使用它。然而,该工具与每种编程语言兼容。
因此,任何开发者都可以轻松切换到megalinter以维护一个干净和无错误的编码环境。下面我们介绍如何使用该工具的详细视频描述:
retirejs
建立信任的工具有很多,下一个就是:retirejs。开发人员应该明白,简化开发是令人赞赏的,但您必须及时了解安全补丁。
retirejs团队对帮助用户检测已知漏洞有着清晰的理解和愿景。retirejs基于javascript、typscript和shell。您可以以各种方式使用retirejs,
- 作为cls(命令行扫描器)
- 作为gp(grunt插件)
- 作为gt(gulp任务)
- 作为web浏览器扩展
浏览器扩展在retirejs的用法流程列表中被提及!这里需要强调的是,这些扩展会扫描不安全的库,并在开发者面板上发出警告。这些小功能与其他几个功能结合起来,使retirejs成为查找node.js应用程序中漏洞的最佳选择。
eslint-plugin-security
列表中的下一个是eslint-plugin-security。它专门用于node安全。这个工具将帮助您轻松找到和识别漏洞。安装过程给出了两个选项:npm或yarn!
npm install –save-dev eslint-plugin-security
yarn add –dev eslint-plugin-security
在我的使用过程中,我发现了一些人工干预可以绕过的虚假潜在威胁。在所有必要的检查后,eslint-plugin-security因其对node.js的专门性而占据了一个特定的位置。
node-secure cli
node-secure cli工具是node.js漏洞的可靠选择。该团队开发了一个cli/api,可以彻底分析给定本地package.json或npm包的依赖树,并追踪存储库中的漏洞。
在使用过程中,您可能会发现ui中的节点是红色的。但是,我建议不要担心。只有当包被标记为haswarnings
或hasminifiedcode
时才会发生这种情况
node-secure cli提供了许多功能,其中一些已列在下面:
- ast分析 – 您可以在软件包中的每个.js/.mjs文件上运行它。
- 完整分析 – 它将为每个软件包提供整体组成。
- 强大的覆盖范围 – 此工具允许您分析npm包和本地node.js项目。
从这个工具的整体外观和感觉来看,我相信,借助其跟踪和分析漏洞的能力,开发人员可以主动识别和解决潜在的漏洞。
结论
上述工具应该帮助扫描您的node.js应用程序以寻找安全漏洞,以便您可以保护它们。除了保护核心node.js应用程序外,您还应考虑使用waf来防止在线威胁和ddos攻击。