{"title":"A Security Study about Electron Applications and a Programming Methodology to Tame DOM Functionalities","authors":"Zihao Jin, Shuo Chen, Yang Chen, Haixin Duan, Jianjun Chen, Jianping Wu","doi":"10.14722/ndss.2023.24305","DOIUrl":null,"url":null,"abstract":"—The Electron platform represents a paradigm to develop modern desktop apps using HTML and JavaScript. Microsoft Teams, Visual Studio Code and other flagship products are examples of Electron apps. This new paradigm inherits the security challenges in web programming into the desktop-app realm, thus opens a new way for local-machine exploitation. We conducted a security study about real-world Electron apps, and discovered many vulnerabilities that are now confirmed by the app vendors. The conventional wisdom is to view these bugs as sanitization errors . Accordingly, secure programming requires programmers to explicitly enumerate all kinds of unexpected inputs to sanitize. We believe that secure programming should focus on specifying programmers’ intentions as opposed to their non-intentions. We introduce a concept called DOM-tree type , which expresses the set of DOM trees that an app expects to see during execution, so an exploit will be caught as a type violation. With insights into the HTML standard and the Chromium engine, we build the DOM-tree type mechanism into the Electron platform. The evaluations show that the methodology is practical, and it secures all vulnerable apps that we found in the study.","PeriodicalId":199733,"journal":{"name":"Proceedings 2023 Network and Distributed System Security Symposium","volume":"28 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings 2023 Network and Distributed System Security Symposium","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.14722/ndss.2023.24305","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
—The Electron platform represents a paradigm to develop modern desktop apps using HTML and JavaScript. Microsoft Teams, Visual Studio Code and other flagship products are examples of Electron apps. This new paradigm inherits the security challenges in web programming into the desktop-app realm, thus opens a new way for local-machine exploitation. We conducted a security study about real-world Electron apps, and discovered many vulnerabilities that are now confirmed by the app vendors. The conventional wisdom is to view these bugs as sanitization errors . Accordingly, secure programming requires programmers to explicitly enumerate all kinds of unexpected inputs to sanitize. We believe that secure programming should focus on specifying programmers’ intentions as opposed to their non-intentions. We introduce a concept called DOM-tree type , which expresses the set of DOM trees that an app expects to see during execution, so an exploit will be caught as a type violation. With insights into the HTML standard and the Chromium engine, we build the DOM-tree type mechanism into the Electron platform. The evaluations show that the methodology is practical, and it secures all vulnerable apps that we found in the study.
电子平台代表了一个使用HTML和JavaScript开发现代桌面应用程序的范例。Microsoft Teams、Visual Studio Code和其他旗舰产品都是Electron应用程序的例子。这种新范式将web编程中的安全挑战继承到桌面应用程序领域,从而为本地机器开发开辟了一条新途径。我们对真实世界的电子应用程序进行了安全研究,发现了许多漏洞,这些漏洞现已得到应用程序供应商的证实。传统观点认为这些错误是消毒错误。因此,安全编程要求程序员显式地枚举所有类型的意外输入以进行清理。我们相信安全编程应该关注于指定程序员的意图,而不是他们的无意图。我们引入了一个叫做DOM-tree类型的概念,它表达了应用程序在执行过程中期望看到的DOM树的集合,因此一个漏洞将被捕获为类型冲突。通过对HTML标准和Chromium引擎的深入了解,我们将dom树类型机制构建到Electron平台中。评估表明,该方法是实用的,它保护了我们在研究中发现的所有易受攻击的应用程序。