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中的节点是红色的。但是,我建议不要担心。只有当包被标记为haswarningshasminifiedcode时才会发生这种情况

node-secure cli提供了许多功能,其中一些已列在下面:

  • ast分析 – 您可以在软件包中的每个.js/.mjs文件上运行它。
  • 完整分析 – 它将为每个软件包提供整体组成。
  • 强大的覆盖范围 – 此工具允许您分析npm包和本地node.js项目。

从这个工具的整体外观和感觉来看,我相信,借助其跟踪和分析漏洞的能力,开发人员可以主动识别和解决潜在的漏洞。

结论

上述工具应该帮助扫描您的node.js应用程序以寻找安全漏洞,以便您可以保护它们。除了保护核心node.js应用程序外,您还应考虑使用waf来防止在线威胁和ddos攻击。

类似文章