评论:Netsparker 企业 Web 应用程序扫描程序

漏洞扫描器可以成为任何开发或运营过程中非常有用的补充。由于典型的漏洞扫描器需要检测已部署软件中的漏洞,因此它们(通常)不依赖于它们正在扫描的应用程序所使用的语言或技术。

这通常不会使它们成为检测大量漏洞甚至检测变化无常的错误或业务逻辑问题的首选,但使它们成为测试大量不同应用程序的绝佳且非常常用的工具,其中此类动态应用程序安全测试工具是必不可少的。这包括测试当前作为 SDLC 过程的一部分开发的软件中的安全缺陷,审查部署在一个人网络内的第三方应用程序(作为尽职调查过程的一部分),或者——最常见的是——发现问题各种内部开发的应用程序。

我们回顾了 网络火花 企业,这是业界对 Web 应用程序漏洞扫描的首选之一。

网络火花 企业 主要是一个基于云的解决方案,这意味着它将专注于开放互联网上公开可用的应用程序,但它也可以在代理的帮助下扫描外围或隔离的应用程序,代理通常部署在预打包的 Docker 容器或 Windows 或 Linux 二进制文件。

为了测试这个产品,我们想知道 Netsparker 如何处理一些事情:

1. 扫描工作流程
2. 扫描自定义选项
3、检测精度和结果
4. CI/CD 和问题跟踪集成
5. API 和集成能力
6. 报告和补救工作。

为了评估该工具的检测能力,我们需要一些目标进行扫描和评估。

经过一番思考,我们决定了以下目标:

1. DVWA – 该死的易受攻击的 Web 应用程序 – 一个老式的极其易受攻击的应用程序,用 PHP 编写。应该可以毫无问题地检测到此应用程序中的漏洞。
2. OWASP果汁店 使用 REST API 后端模拟现代单页 Web 应用程序。它有一个 Javascript 重接口、websockets、后端的 REST API,以及许多有趣的测试点和漏洞。
3. 武尔纳皮 – 基于 python3 的易受攻击的 REST API,在 Starlette ASGI 上运行的 FastAPI 框架中编写,具有许多基于 API 的漏洞。

工作流程

登录 Netsparker 后,您会看到一个教程和一个“手持”向导,可帮助您设置一切。如果您之前使用过漏洞扫描器,您可能知道该怎么做,但此功能对于没有这种经验的人很有用,例如软件或 DevOps 工程师,他们绝对应该在开发过程中使用此类工具。

审查 Netsparker 企业

初始设置向导

扫描目标可以手动添加或通过发现功能添加,该功能将尝试通过匹配来自您的电子邮件、网站、反向 IP 查找和其他方法的域来找到它们。如果您的组织中未使用其他资产管理方法并且您找不到资产,则此功能很有用。

可以直接添加或通过 CSV 或 TXT 文件导入用于扫描的新网站或资产。站点可以按组组织,这有助于内部组织或按项目/按部门组织。

审查 Netsparker 企业

添加要扫描的网站

可以按组或按特定主机定义扫描。扫描可以定义为一次性扫描或定期安排以促进持续的漏洞修复过程。

为了更好地指导扫描过程,支持经典扫描范围功能。例如,您可以通过提供完整路径或正则表达式模式将特定 URL 定义为“范围外”——如果您想跳过特定 URL(例如,注销、用户删除功能),这是一个有用的选项。也可以将特定的 HTTP 方法标记为超出范围,这在您测试 API 并希望跳过端点或对象上的 DELETE 方法时非常有用。

审查 Netsparker 企业

初始扫描配置

审查 Netsparker 企业

扫描范围选项

我们非常喜欢的一项功能是支持在扫描之前将“站点地图”或特定请求信息上传到 Netsparker。此功能可用于导入 Postman 集合或 OpenAPI 文件,以方便扫描并提高复杂应用程序或 API 的检测能力。还支持其他格式,如 CSV、JSON、WADL、WSDL 等。

对于红队,支持从 Fiddler、Burp 或 ZAP 会话文件加载链接和信息,如果您想扩展自动扫描工具箱,这将非常有用。我们遇到的一个限制是无法指向包含 OpenAPI 定义的 URL——这一功能对于具有 Swagger Web UI 的 API 的自动化和计划扫描工作流非常有用。

可以通过多种方式自定义和调整扫描策略,从应用程序中使用的语言(ASP/ASP.NET、PHP、Ruby、Java、Perl、Python、Node.js 和其他)到数据库服务器( Microsoft SQL 服务器、MySQL、Oracle、PostgreSQL、Microsoft Access 和其他),到基于 Windows 或 Linux 的操作系统的标准选择。扫描优化应该提高工具的检测能力,缩短扫描时间,并让我们一瞥工具应该在哪些方面表现最佳。

集成 Netsparker

下一个重要问题是,它是混合……还是整合?从集成的角度来看,发送有关扫描事件的电子邮件和 SMS 是标准的,但支持各种问题跟踪系统,如 Jira、Bitbucket、Gitlab、Pagerduty、TFS,以及对 Slack 和 CI/CD 集成的支持。对于其他一切,如果您愿意编写一些集成脚本,可以使用原始 API 将 Netsparker 与其他解决方案联系起来。

审查 Netsparker 企业

集成选项

一个真正实现良好的功能是支持登录到测试应用程序,因为无法保持会话并从应用程序中经过身份验证的上下文进行扫描会导致扫描性能不佳。

网络火花 支持经典的基于表单的登录,但也支持需要 TOTP 或 HOTP 的基于 2FA 的登录流程。这是一个很棒的功能,因为您可以添加 OTP 种子并在 Netsparker 中定义时间段,并且您都可以扫描受 OTP 保护的登录名。不再需要填充和添加代码来绕过 2FA 方法来扫描应用程序。

审查 Netsparker 企业

认证方法

此外,Netsparker 使您能够为复杂的登录流程或 javascript/CSS 繁重的登录页面创建自定义脚本。令我惊喜的是,我不需要阅读复杂的文档,只需右键单击 DOM 元素并将它们添加到脚本中,然后按下一步。

审查 Netsparker 企业

用于身份验证的自定义脚本工作流程

如果我们不得不吹毛求疵,我们可能会指出,如果 Netsparker 还支持 U2F / FIDO2 实现(通过软件模拟 CTAP1 / CTAP2 协议),那就太好了,因为这将涵盖最安全的 2FA 实现。

除了基于表单的身份验证之外,还支持基本 NTLM/Kerberos、基于 Header(用于 JWT)、客户端证书和基于 OAuth2 的身份验证,这使得几乎所有企业应用程序的身份验证都变得容易。登录/注销流程也通过自定义对话框进行验证和支持,您可以在其中验证提供的凭据是否有效,并且可以配置如何保留会话。

审查 Netsparker 企业

登录验证助手

扫描精度

现在来看看这篇评论的核心:Netsparker 做了什么,没有检测到什么。

简而言之,DVWA 中的所有内容都被检测到,除了客户端安全性受损,如果不编写自定义规则,根据定义几乎不可能通过安全扫描检测到。因此,从“经典”应用程序的角度来看,覆盖范围非常好,即使是过时的软件版本也被正确标记。因此,对于用相对较新的语言编写的普通的、经典的有状态应用程序,它的效果很好。

从现代 JavaScript 重的单页应用程序的角度来看,Netsparker 从用户界面正确地发现了后端 API 接口,并检测到一个相当复杂的 SQL 注入漏洞,它不足以触发 ' 或 1=1 类型的向量但要调整向量以正确转义初始查询。

网络火花 在 Juice Shop 产品屏幕的评论部分正确检测到存储的 XSS 漏洞。易受攻击的应用程序部分是一个 JavaScript 密集型前端,后端有一个 RESTful API 来助长漏洞。即使是基于 DOM 的 XSS 漏洞也被检测到,尽管特定的易受攻击的端点被标记为搜索 API,而不是作为 DOM XSS 入口点的接收器。从积极的方面来说,该漏洞被标记为“可能”,手动安全审查会发现易受攻击的接收器。

漏洞检测的一个有趣点是 Netsparker 使用一个引擎来尝试验证漏洞是否可利用,并将尝试创建漏洞“证明”,从而减少误报。

不利的一面是,在基于 WebSocket 的通信中没有发现漏洞,也没有发现使用 pyYAML 实现不安全 YAML 反序列化的 API 端点。通过回顾 Netsparker 知识库,我们还 成立 不支持 websockets 和反序列化漏洞。

这当然不是破坏交易的因素,而是需要考虑的事情。这也加强了在应用程序安全扫描堆栈中使用基于 SAST 的扫描器(即使只是免费的开源扫描器)的需求,以提高测试覆盖率以及其他基于手动的安全审查流程。

报告能力

在 PDF 或 HTML 导出选项中支持多级详细信息(从扩展、执行摘要到 PCI-DSS 级别)。我们发现的一项不错的功能是能够为虚拟修补创建 F5 和 ModSecurity 规则。此外,扫描和抓取的 URL 可以从报告部分导出,因此很容易查看您的扫描仪是否命中任何特定端点。

审查 Netsparker 企业

扫描结果仪表板

审查 Netsparker 企业

扫描结果详情

网络火花 的报告功能满足我们的要求:报告包含安全或 AppSec 工程师或开发人员需要的一切。

由于 Netsparker 与 JIRA 和其他票务系统集成,因此将支持大多数团队的一般漏洞管理工作流程。对于单独的安全团队,或者没有集成现代工作流程的地方,Netsparker 还具有一个内部问题跟踪系统,可以让用户跟踪每个发现问题的状态,并针对特定发现运行重新扫描,以查看是否正确实施了缓解措施。因此,即使您没有其他分类方法或流程设置为 SDLC 的一部分,您也可以通过 Netsparker 管理所有内容。

判决书

网络火花 非常容易设置和使用。广泛的集成使其能够集成到任意数量的工作流或管理方案中,并且集成的功能和报告功能拥有您需要的独立工具的一切。就功能而言,我们没有异议。

登录流程——简单的界面、2FA 一直支持到脚本界面,即使在更复杂的环境中也可以轻松进行身份验证,以及报告扫描和爬取的端点的选项——帮助用户发现他们的扫描范围。

考虑到这是一个自动扫描器,它依赖于“黑盒”部署的应用程序,而没有对部署的环境或源代码扫描进行任何工具化,我们认为它非常准确,尽管它可以改进(例如,通过添加检测反序列化漏洞的能力)。经过审查,Netsparker 已确认添加检测反序列化漏洞的功能已包含在产品开发计划中。

尽管如此,我们还是强烈推荐 Netsparker。




分享这个