顶级Electron应用SAST工具ElectroNG正式发布

Doyensec发布ElectroNG SAST工具,专为Electron应用安全检测设计,具备50+检测规则、版本感知检测机制和图形化界面,支持精确识别Electron版本相关漏洞。

ElectroNG,我们的高级SAST工具发布了!

2022年9月6日 - 作者:Luca Carettoni

正如2021年11月在阿布扎比Hack In The Box #CyberWeek活动上所承诺的,我们激动地宣布ElectroNG现已在https://get-electrong.com/开放购买。

我们这款针对Electron应用的高级SAST工具是多年应用研发的成果!Doyensec自2017年BlackHat USA首次发布Electron框架全面安全概述以来,一直是Electron安全领域的领导者。此后,我们报告了该框架本身及流行Electron应用中的数十个漏洞。

历史回顾

我们在2019年初发布了Electronegativity开源项目,作为辅助Electron应用手动审计的一组脚本。此后,我们发布了多次更新,对开发者进行安全最佳实践教育,并围绕Electron应用安全建立了强大社区。Electronegativity甚至被框架的官方安全文档提及。

同时,Electron已成为开发跨OS桌面应用的首选框架。目前有超过一千款公共桌面应用及更多内部工具和自定义实用程序使用它。大型科技公司投入大量资源押注这项技术,显然Electron将长期存在。

新特性

考虑到框架的演进和新兴威胁,我们很快意识到Electronegativity需要重大更新,包括检测能力和特性,以帮助现代公司"安全构建"。

2020年底,我们制定了项目路线图并组建开发团队,最终打造出现在的ElectroNG。本篇博文将重点介绍相比开源版本的主要改进。底层还有更多功能,我们将在后续文章和演示中详细介绍。

用户界面

如果您曾使用过Electronegativity,会明显发现ElectroNG不再是命令行工具。相反,我们构建了一款现代桌面应用(使用Electron开发!)。

您的浏览器不支持视频标签。

更好的检测,更多检查项

ElectroNG采用新的决策机制,基于改进的HTML/JavaScript/Typescript解析和新启发式方法标记安全问题。开发完成后,我们改进了所有现有原子和条件检查,以减少误报并提高准确性。现在有超过50项检查来检测错误配置和安全漏洞!

但最重大的改进在于创建Electron依赖检查。ElectroNG将尝试确定应用使用的具体框架版本,并据此动态调整扫描结果。考虑到Electron API和选项变更频繁,这提升了工具在识别关键问题时的可靠性。

为给读者提供具体示例,考虑一个较少人知的设置affinity。Electron v2引入了新的BrowserView/BrowserWindow webPreferences选项,用于将多个窗口聚集到单个进程中。指定后,具有相同affinity的BrowserView/BrowserWindow实例加载的网页将在同一渲染器进程中运行。虽然此设置旨在提升性能,但在不同Electron版本中会导致意外结果。

考虑以下代码片段:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
function createWindow () {
  // 创建浏览器窗口
  firstWin = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      affinity: "secPrefs"
    }
  })

  secondWin = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: false,
      affinity: "secPrefs"
    }
  })

  firstWin.loadFile('index.html')
  secondWin.loadFile('index.html')

查看两个webPreferences定义中的nodeIntegration设置,可能预期第一个BrowserWindow可访问Node.js原语,而第二个被隔离。但这并非总是如此,这种不一致可能使不安全的BrowserWindow向攻击者开放。

不同Electron版本的结果至少可以说是令人惊讶的:

affinity选项在v14中已完全弃用,作为Electron维护者计划的一部分,以更紧密地与Chromium的进程模型对齐,确保安全、性能和可维护性。此示例展示了关于渲染器设置的两个重要事项:

  • 使用的具体Electron版本决定了哪些webPreferences适用,哪些不适用
  • 某些webPreferences的语义和安全影响随框架具体版本而变化

条款与价格

ElectroNG可在线购买,价格为每年每用户688美元。访问https://get-electrong.com/buy.html。

只要软件安装在单个人拥有的机器上,许可证不限制项目数量、扫描次数甚至安装次数。如果您是顾问,可以为任意数量的应用程序运行ElectroNg,只要您自己运行而非同事或客户。批量订购(超过50个许可证)请联系我们!

Electronegativity与ElectroNG

随着ElectroNG的出现,我们已经收到关于Electronegativity未来的询问。

Electronegativity和ElectroNG将共存。Doyensec将继续支持开源项目,如同过去几年所做。一如既往,我们期待以拉取请求、问题和文档形式的外部贡献。

ElectroNG的开发重点将放在付费客户重要的功能上,最终目标是为Electron应用提供有效且易用的安全扫描器。有新团队支持该项目也将为Electronegativity带来创新,因为适用于开源版本的错误修复和功能也将被移植。

正如其他项目过去成功所做的那样,我们希望工具的免费社区版和付费版共存能为用户提供选择最适合方案的灵活性。无论您是独立开发者、小型咨询公司还是大型企业,我们相信Electronegativity和ElectroNG能帮助根除基于Electron的应用中的安全漏洞。

其他相关文章:

  • Visual Studio Code Jupyter Notebook RCE - 2022年10月27日
  • Diving Into Electron Web API Permissions - 2022年9月27日
  • Electron APIs Misuse: An Attacker’s First Choice - 2021年2月16日
  • Signature Validation Bypass Leading to RCE In Electron-Updater - 2020年2月24日
  • Electron Security Workshop - 2019年7月3日
  • Electronegativity 1.3.0 released! - 2019年6月11日
  • Subverting Electron Apps via Insecure Preload - 2019年4月3日
  • Electronegativity is finally out! - 2019年1月24日
  • Instrumenting Electron Apps for Security Testing - 2018年7月19日
  • Electron Windows Protocol Handler MITM/RCE (bypass for CVE-2018-1000006 fix) - 2018年5月24日
  • Modern Alchemy: Turning XSS into RCE - 2017年8月3日
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计