Electronegativity:首款Electron应用安全检测工具正式发布

Electronegativity是首款开源工具,专门用于检测Electron应用中的错误配置和安全反模式。它通过AST/DOM解析技术,支持27种安全检查,帮助开发者和安全审计人员识别潜在漏洞。

Electronegativity is finally out!

24 Jan 2019 - Posted by Luca Carettoni

我们很高兴宣布Electronegativity的公开版本发布!这是一款开源工具,能够识别基于Electron的应用程序中的错误配置和安全反模式。

Electronegativity是首款此类工具,可帮助软件开发者和安全审计人员检测和缓解Electron应用中的潜在弱点。

如果您只是想尝试Electronegativity,请直接使用NPM安装:

1
$ npm install @doyensec/electronegativity -g

要审查您的应用程序,请使用以下命令:

1
$ electronegativity -i /path/to/electron/app

结果将以紧凑的表格形式显示,并引用应用程序文件和我们知识库的相关内容。

剩余的博客文章将提供更多关于公开版本的详细信息,并介绍其当前功能。

一点历史

早在2017年7月的BlackHat USA简报会上,我们首次提出了关于Electron安全的全面研究,主要关注框架级漏洞和错误配置。作为研究旅程的一部分,我们还创建了一个安全反模式和必备功能的清单,以说明基于Electron的应用程序中的错误配置和漏洞。

在此基础上,我和Claudio Merloni开始开发Electronegativity的第一个原型。BlackHat演示后不久,我们收到了大量关于如何改进工具的优秀反馈和新想法。回国后,我们开始着手这些改进,直到意识到需要重新设计整体架构。代码库再次转为私有,并在客户项目之间进行了少量优化。

2018年夏天,我们聘用了Doyensec的第一位实习生——Ibram Marzouk,他重新开始致力于该工具的开发。随后,Jaroslav Lobacevski加入项目团队,并将Electronegativity推向了完成线。Claudio、Ibram和Jaroslav,感谢你们的贡献!

虽然确实有些迟了,但我们很高兴最终以更好的形态发布了这个工具。我们相信Electron将会持续存在,希望Electronegativity能成为所有Electron开发者的有用伙伴。

它是如何工作的?

Electronegativity利用AST/DOM解析来查找与安全相关的配置。检查是独立的文件,这使得工具模块化且可扩展。

构建新的检查也相对容易。我们支持三种“家族”的检查,以便工具可以分析Electron应用程序中的所有资源:

  • JS(使用Esprima、Babel、TypeScript ESTree的组合)
  • HTML(使用Cheerio)
  • JSON(使用原生JSON.parse())

当您扫描应用程序时,工具将解包所有资源(如果适用)并使用所有注册的检查执行审计。结果以终端、CSV文件或SARIF格式显示。

支持的检查

Electronegativity目前实现了以下检查。针对每类漏洞,我们创建了一个包含风险信息和审计策略的知识库:

  • ALLOWPOPUPS_HTML_CHECK
  • AUXCLICK_JS_CHECK
  • AUXCLICK_HTML_CHECK
  • BLINK_FEATURES_JS_CHECK
  • BLINK_FEATURES_HTML_CHECK
  • CERTIFICATE_ERROR_EVENT_JS_CHECK
  • CERTIFICATE_VERIFY_PROC_JS_CHECK
  • CONTEXT_ISOLATION_JS_CHECK
  • CUSTOM_ARGUMENTS_JS_CHECK
  • DANGEROUS_FUNCTIONS_JS_CHECK
  • ELECTRON_VERSION_JSON_CHECK
  • EXPERIMENTAL_FEATURES_HTML_CHECK
  • EXPERIMENTAL_FEATURES_JS_CHECK
  • HTTP_RESOURCES_JS_CHECK
  • HTTP_RESOURCES_HTML_CHECK
  • INSECURE_CONTENT_HTML_CHECK
  • INSECURE_CONTENT_JS_CHECK
  • NODE_INTEGRATION_HTML_CHECK
  • NODE_INTEGRATION_EVENT_JS_CHECK
  • NODE_INTEGRATION_JS_CHECK
  • OPEN_EXTERNAL_JS_CHECK
  • PERMISSION_REQUEST_HANDLER_JS_CHECK
  • PRELOAD_JS_CHECK
  • PROTOCOL_HANDLER_JS_CHECK
  • SANDBOX_JS_CHECK
  • WEB_SECURITY_HTML_CHECK
  • WEB_SECURITY_JS_CHECK

利用这27项检查,Electronegativity已经能够识别现实应用中的许多漏洞。未来,我们将继续改进检测并更新工具,以跟上快速变化的Electron框架。立即开始使用Electronegativity吧!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计