2025 年最值得关注的 JavaScript 漏洞

黑客不断开发利用 JavaScript 漏洞的新方法。以下是开发人员应该了解的 JS 攻击媒介。

2025 年最值得关注的 JavaScript 漏洞

JavaScript在 Stack Overflow 的年度开发者调查(总体而言,不仅仅针对 Web 开发)中再次保住了顶级编程语言的地位,击败了Rust 等竞争对手,但这并不意味着它就无懈可击。

相反,JS 是在客户端验证的,这意味着黑客正在不断开发新的方法来利用漏洞并领先开发人员和安全专家一步。

因此,在本文中,我们将解决给 JavaScript 开发人员带来最大麻烦的漏洞和攻击媒介。从表面上看,这些问题将一直成为 2025 年甚至更久以后的热门话题。

JavaScript:安全问题和挑战

2023 年,一种特别恶意的 JavaScript 恶意软件袭击了全球 40 家银行和 50,000 名用户。它通过网络钓鱼传播,并生成虚假的登录页面,并配备了旨在窃取 OTP(一次性密码)和其他登录数据的恶意 JS 代码。

这个案例以及许多类似的案例强调了一个事实:即使像 JS 这样无处不在的东西也可能容易受到攻击。

当然,首先是声誉损失。但是,如果威胁行为者利用 JS 漏洞并设法访问用户数据,尤其是如果这些数据以 MS 365 备份的形式保存,或者保存在保护不力的 Google Drive 上,后果可能是灾难性的。

如果发生此类事件,被利用的网站可能会承担任何经济损失。更不用说,相关部门将仔细检查该网站,并检查是否存在任何其他违规行为。

更糟糕的是,有成千上万个第三方 JS 库,每个库都有各种已知漏洞,威胁者可以利用这些漏洞,但难度各不相同。如果网站所有者未能实施CSP 和 SRI 等相关安全策略,这些风险可能会进一步加剧,因为 JavaScript 环境没有内置标准安全权限。

重点是:如果您不关心为了安全目的而加强 JS 代码,那么成本将会令人眼花缭乱!

2025 年需要警惕的 7 个 JavaScript 漏洞

威胁者正在转向新的、更先进的技术来绕过现有的安全协议,并将 JS 变成他们的摇钱树。与此同时,一些旧威胁仍在幕后隐现。

1.高级跨站点脚本攻击(XSS)

XSS 攻击涉及黑客向网站注入恶意脚本,可通过多种方式实现。注入后,脚本通常会在用户访问网站或应用程序时执行恶意软件,从而感染网站或用户的计算机。

其目的是窃取敏感信息或修改网站以进行恶意活动。这种攻击通常针对银行、金融机构和处理金融交易的网站。

这可能是网络犯罪分子偷偷读取银行对账单、记录财务详细信息(嗅探)以及寻找漏洞来攻击最终用户或金融机构本身的一种方式。

2.跨站请求伪造(CSRF)

跨站请求伪造 (CSRF)会强制经过身份验证的最终用户执行非预期操作。它通常通过社会工程技术进行传播,例如在电子邮件、网络聊天或短信中发送链接,诱骗用户转账或输入财务详细信息。

如果这种技术危害了具有高级别访问权限的用户,则可能造成更大的灾难,甚至危及整个应用程序及其所有用户。更糟糕的是,人工智能生成的攻击使人们更难辨别虚假页面和真实页面,从而让事情变得更加混乱。

因此,除了教育网络用户了解社交工程风险之外,预防 CSRF 攻击的最有效方法是在相关请求中包含 CSRF 令牌。这些令牌强制执行与每个用户会话唯一关联的严格标准,从而防止恶意行为者发起攻击。

3. 服务器端 JavaScript 注入(SSJI)

服务器端代码注入漏洞存在于将用户可控制数据集成到由代码解释器动态验证的字符串中的 Web 应用程序中。

如果数据验证不正确,威胁者可以修改输入并注入任意代码,然后在服务器上执行。如果成功,这种类型的攻击可以破坏整个应用程序的数据和功能,甚至使用 Web 服务器对其他系统发起其他攻击。

为了防止 SSJI 攻击,用户可控制的数据不应合并到动态评估的代码中。如果这不可能,则需要严格验证所有代码,最好使用仅接受特定值的白名单。

4. 表单劫持

表单劫持是一种老威胁,但仍然可以相对轻松地导致数据被盗。只需要一个劣质的代码库,就会发生以下情况:

  1. 攻击者通常会将一小段 JS 代码注入网站的表单处理过程中。
  2. 当用户提交表单时,恶意 JS 会拦截数据,并在将数据发送到合法目的地之前(或代替)将其发送到攻击者的服务器。
  3. 由于表单行为正常,用户和网站所有者通常不知道这种盗窃行为。

表单劫持越来越令人担忧,尤其是对于电子商务网站或任何通过表单处理敏感用户信息的网络应用程序而言。对抗这种众所周知的风险的唯一方法是定期进行完整性检查,并为用户提供电子商务的一次性付款选项。

5. 原型污染

原型污染是一种 JS 漏洞,它允许威胁行为者向全局对象原型添加任意属性,而用户定义的对象也可以继承这些属性。然后可以使用这些原型来允许或覆盖对象行为。

为了发起攻击,威胁行为者必须识别能够实现任意代码执行的 JS 函数或 DOM 元素。

利用这些全局对象后,黑客可以控制 Web 应用程序中原本无法实现的属性,从而可以从内部发起攻击。

在客户端 JavaScript 被利用的场景中,黑客很可能会尝试 DOM XSS。 同时,服务器端,原型污染通常用于进行远程代码执行。

6.不安全的直接对象引用(IDOR)

不安全的直接对象引用(IDOR)主要影响依赖用户提供的输入来访问对象和数据库记录的 Web 应用程序。

这种错误的访问控制实施可能会导致这些控制被重定向,从而向威胁行为者授予未经授权的访问权限。想象一下Node.js 构建的应用程序从数据库访问用户 ID,事情只会从那里开始螺旋式上升。

如何抵御 IDOR 攻击?开发人员在构建 JS 应用程序时应避免使用直接对象引用,而是实施用户输入验证、全局唯一标识符 (GUID) 和随机标识符以防止 IDOR 漏洞。

7.供应链攻击

供应链攻击针对的是用于提供网络功能的第三方工具和服务。例如,第三方库包含预先编写的脚本,使网站和应用程序的开发更加容易。

因此,间接攻击的目标是将第三方工具连接到应用程序的依赖项,例如为 AI 聊天机器人提供支持或允许网站接受付款的依赖项。

威胁者通常会针对特定供应商,在其软件中添加恶意代码,然后在客户安装更新时将其推送给客户。由于客户信任来源,这些攻击可以成功大量渗透。

2024 年 6月使用 Polyfill.io JS 库进行的攻击可能是此类攻击发生的最新例子。虽然显而易见的解决方案是专注于知名的开源库,但这也会阻碍创新,因为会减缓采用更新、更高效的 JS 库的速度。

结论

JavaScript 在构建网站和网络应用程序时的好处显而易见,但这种编程语言的广泛流行也带来了风险。由于 JavaScript 是在客户端进行验证的,因此确保应用程序安全的过程变得更加困难。

许多此类漏洞是在开发应用程序时产生的,其中最常见的两个错误是错误的输入验证和使用用户可控制的数据。

但是,有些攻击需要更先进的缓解技术,例如使用安全令牌。请注意安全。

作者:terry,如若转载,请注明出处:https://www.web176.com/news/frontend/28445.html

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2024年10月11日 下午5:30
下一篇 2024年10月30日 下午5:39

相关推荐

发表回复

登录后才能评论