防止对JavaScript生态系统的供应链攻击

防止对JavaScript生态系统的供应链攻击

💡 原文英文,约900词,阅读约需3分钟。
📝

内容提要

供应链攻击是JavaScript生态系统中的一个重大问题。文章提出了一种新型的每模块权限系统,允许应用和模块在配置文件中声明所需权限,从而限制权限继承。这种方法有效防止大多数供应链攻击,并确保在未知模块中也能进行权限检查,提升安全性。

🎯

关键要点

  • 供应链攻击是JavaScript生态系统中的重大问题。
  • JavaScript模块继承调用它们的应用或模块的权限,这是一个核心问题。
  • 模块版本的变化可能导致安全隐患,即使依赖项的代码经过审查。
  • 浏览器中的第三方JavaScript模块可能会利用设备资源进行未经授权的操作。
  • 一些离线JavaScript运行时如Deno实施了权限限制,但仍存在继承调用者权限的问题。
  • 当前的安全措施依赖于自动化过程扫描已知模块的漏洞,但资源消耗巨大且无法保证所有模块都被扫描。
  • 提出了一种新的每模块权限系统,允许应用和模块在配置文件中声明所需权限。
  • 新系统包括两个部分:permissions.self和permissions.imports,分别声明应用和模块的权限及其依赖的权限。
  • 运行时会检查模块的权限是否在导入者的限制范围内,超出范围则抛出错误。
  • 新方案相比当前解决方案更轻量且全面,运行时强制执行权限,确保未知模块不会造成安全隐患。
➡️

继续阅读