恶意 NPM 包 - 它是否适合 2017 年 OWASP 十大?

信息安全 Web应用程序 owasp owasp-前十名 包管理器 npm
2021-08-16 06:22:31

在各种安全论坛上,我看到一篇关于虚构恶意 NPM 包收集信息的帖子的链接。帖子标题:

我正在从您的网站收集信用卡号和密码。就是这样。

我认为帖子中最好的报价:

对我来说幸运的是,我们生活在一个人们安装 npm 包的时代,就像他们正在弹出止痛药一样。

这导致我们公司讨论了恶意 NPM 包是否适合OWASP 2017 年前十名我认为它可以分为以下几类:

  • A6:2017-Security Misconfiguration
    描述说:“不仅所有操作系统、框架、和应用程序都必须安全配置......”。例如,如果您有一个恶意库可以做某事,因为您CSP的配置不正确,我会将其归为此类。

  • A7:2017-Cross-Site Scripting (XSS)
    如果库启用了 XSS 漏洞,它将属于此类别。

  • A9:2017-使用具有已知漏洞
    的组件 如果已知库是恶意的,它将属于这一类。

  • A10:2017-Insufficient Logging&Monitoring
    如果未检测到攻击,则意味着我们的日志记录不足。有各种用于记录客户端 JavaScript 的库,并且可以在此处检查传出请求。当然,恶意库可以尝试禁用此功能,但它仍可能属于此类。

这是正确的还是超出 OWASP Top Ten 2017 范围的恶意 NPM 包?

1个回答

我似乎很清楚A9:2017-Using Components with Known Vulnerabilities完全涵盖了恶意编码的库。我认为 A9 就是为这个用例而创建的。

尽管 OWASP 的措辞谈到了随着时间的推移发现漏洞(Heartbleed)并被替换的旧库,但措辞中没有任何内容表明这一定是漏洞的原因。故意的恶意编码也是一个原因。

可能会出现关于“恶意编码”是否可以等同于“漏洞”的争论,因为恶意代码可以按预期工作而不会产生意外影响。我认为这场辩论有点迂腐,OWASP Top 10 的精神是通过将这两个想法等同起来来支持的。

恶意编码的库不是“错误配置”。配置错误的库本身并不容易受到攻击,但会由于误用而引入漏洞。

恶意编码的库可能会引入 XSS 漏洞,但 A7 在这种情况下过于具体。

日志记录和监控不足是一个影响所有潜在情况的元问题,并且过于广泛而无法适用于这种威胁场景。