{"id":22912,"date":"2023-09-14T10:30:21","date_gmt":"2023-09-14T18:30:21","guid":{"rendered":"https:\/\/www.palada.net\/index.php\/2023\/09\/14\/news-16642\/"},"modified":"2023-09-14T10:30:21","modified_gmt":"2023-09-14T18:30:21","slug":"news-16642","status":"publish","type":"post","link":"http:\/\/www.palada.net\/index.php\/2023\/09\/14\/news-16642\/","title":{"rendered":"Are Electron-based desktop applications secure? | Kaspersky official blog"},"content":{"rendered":"<p><strong>Credit to Author: Alanna Titterington| Date: Thu, 14 Sep 2023 18:18:37 +0000<\/strong><\/p>\n<p>Early this year I gave you <a href=\"https:\/\/www.kaspersky.com\/blog\/dangers-of-desktop-messengers\/47453\/\" target=\"_blank\" rel=\"noopener\">five reasons to avoid desktop versions of messengers<\/a>. The fact that many such applications use the Electron framework is one of them. This means that such a messenger works as an additional browser in your system, and its updates are quite difficult to control.<\/p>\n<p>But, as I wrote in that post, it has become clear the problem is much more widespread \u2014 affecting not only messengers but hundreds of other apps as well. Chances are, because of Electron-based apps, you have a many more browsers than you think in your system this very minute&#8230;<\/p>\n<h2>What is Electron, and why do application developers want to use it?<\/h2>\n<p>Electron is a cross-platform desktop application development framework that employs web technologies \u2014 mostly HTML, CSS, and JavaScript. It was originally created by GitHub for its source code editor Atom (hence its original name \u2014 Atom Shell). Later on the framework was renamed Electron, ultimately evolving into an extremely popular tool used to create desktop applications for various operating systems, including Windows, macOS, and Linux.<\/p>\n<div id=\"attachment_49036\" style=\"width: 3010px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" aria-describedby=\"caption-attachment-49036\" decoding=\"async\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2023\/09\/14140036\/electron-framework-security-issues-1-scaled-1-scaled.jpg\" alt=\"Electron framework official site\" width=\"3000\" height=\"1686\" class=\"size-full wp-image-49036\" \/><\/p>\n<p id=\"caption-attachment-49036\" class=\"wp-caption-text\">Main page of the Electron framework official site. <a href=\"https:\/\/www.electronjs.org\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n<\/div>\n<p>Electron itself is based on the Chromium browser engine, which is responsible for displaying web content within a desktop application. So any Electron application is effectively a single website opened in the Chromium browser.<\/p>\n<p>Users usually have no idea at all how the thing works. From their point of view, an Electron application is just another program you install, run in the usual way, give access to some files, occasionally update to the newest version, and so on.<\/p>\n<p>Why has Electron grown so popular with developers? The idea is mainly this: no matter what digital service one might want to create, a web version is still needed. And the Electron framework allows you to develop just the web version and, based on it, produce full-fledged apps for all the desktop operating systems out there.<\/p>\n<p>Electron&#8217;s other convenience features include making installation packages, their diagnostics, publication to app stores, and automatic updates.<\/p>\n<div id=\"attachment_49037\" style=\"width: 3010px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" aria-describedby=\"caption-attachment-49037\" decoding=\"async\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2023\/09\/14140213\/electron-framework-security-issues-2-scaled-1-scaled.jpg\" alt=\"Mullvad VPN uses the Electron framework, too\" width=\"3000\" height=\"3154\" class=\"size-full wp-image-49037\" \/><\/p>\n<p id=\"caption-attachment-49037\" class=\"wp-caption-text\">Et tu autem, Brute! You can find Electron in apps you least expect to<\/p>\n<\/div>\n<p>Summing up, the Electron framework is popular among developers \u2014 most particularly as it allows to greatly accelerate and simplify the application development process for all desktop operating systems in one go.<\/p>\n<h2>Issues with Electron-based applications<\/h2>\n<p>Electron-based applications have a number of drawbacks. The most obvious from the users&#8217; perspective is their sluggishness. Electron-based software is usually resource-intensive and suffers from excessive file size. No wonder: each such app carries <s>its whole home on its back like a snail<\/s> a full-blown Chromium browser. In effect, it operates through that browser \u2014 serving as a sort of intermedium.<\/p>\n<p>Next issue: web browsers are a favorite target of cybercriminals. It&#8217;s worth repeating: inside <em>every<\/em> Electron-based app there&#8217;s a <strong>separate instance of the Chromium<\/strong> web browser. This means your system may have a dozen additional browsers installed, all of which present a tempting target for criminals.<\/p>\n<p>New, serious vulnerabilities pop up almost weekly in a popular browser like Chrome\/Chromium: so far this year <a href=\"https:\/\/cve.mitre.org\/cgi-bin\/cvekey.cgi?keyword=chrome\" target=\"_blank\" rel=\"nofollow noopener\">more than 70 high, and three critical severity-level vulnerabilities<\/a> have been found in Chromium as of the time of writing. Worse yet, exploits for the world&#8217;s most popular browser&#8217;s vulnerabilities appear really quick. This means that a good part of Chrome\/Chromium holes are not just abstract bugs you treat as a matter of routine \u2014 they&#8217;re vulnerabilities that can be used for attacks by cybercriminals out in the wild.<\/p>\n<div id=\"attachment_49038\" style=\"width: 3010px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" aria-describedby=\"caption-attachment-49038\" decoding=\"async\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2023\/09\/14140450\/electron-framework-security-issues-3-scaled-1-scaled.jpg\" alt=\"List of Chrome\/Chromium vulnerabilities found in the first eight months of 2023\" width=\"3000\" height=\"1703\" class=\"size-full wp-image-49038\" \/><\/p>\n<p id=\"caption-attachment-49038\" class=\"wp-caption-text\">Even in fine print, Chromium vulnerabilities found so far in 2023 take up several screens. <a href=\"https:\/\/www.electronjs.org\/apps\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n<\/div>\n<p>For the standalone Chrome browser, this isn&#8217;t such a serious problem. Google is <em>very<\/em> quick to release patches and rather persistent in convincing users to install them and restart their browser (it even thoughtfully re-opens all their precious tabs after restarting so they don&#8217;t need to fear updating).<\/p>\n<p>Things are very different for the Electron-based apps. A Chromium browser built into such an app will only get patched if the app&#8217;s vendor has released a new version and successfully communicated to users the need to install it.<\/p>\n<p>So it appears that, with a bunch of installed Electron apps, not only do you have multiple browsers installed on your system, but also little to no control over how updated and secure those browsers are, or how many unpatched vulnerabilities they contain.<\/p>\n<p>The framework&#8217;s creators <a href=\"https:\/\/www.electronjs.org\/docs\/latest\/tutorial\/security\" target=\"_blank\" rel=\"nofollow noopener\">know full well about the problem<\/a>, and strongly recommend that app developers release patches on time. Alas, users can only hope that those recommendations are followed.<\/p>\n<h2>Which desktop applications are based on Electron?<\/h2>\n<p>Not many folks seem to know how incredibly common Electron-based desktop applications are. I&#8217;ll bet you are using more than one of them. Check them out yourself:<\/p>\n<ul>\n<li>1Password<\/li>\n<li>Agora Flat<\/li>\n<li>Asana<\/li>\n<li>Discord<\/li>\n<li>Figma<\/li>\n<li>GitHub Desktop<\/li>\n<li>Hyper<\/li>\n<li>Loom<\/li>\n<li>Microsoft Teams<\/li>\n<li>Notion<\/li>\n<li>Obsidian<\/li>\n<li>Polyplane<\/li>\n<li>Postman<\/li>\n<li>Signal<\/li>\n<li>Skype<\/li>\n<li>Slack<\/li>\n<li>Splice<\/li>\n<li>Tidal<\/li>\n<li>Trello<\/li>\n<li>Twitch<\/li>\n<li>Visual Studio Code<\/li>\n<li>WhatsApp<\/li>\n<li>WordPress Desktop<\/li>\n<\/ul>\n<p>I personally use around a third of the apps from the list (but, for the record, none of them as desktop applications).<\/p>\n<p>That list is not exhaustive at all though, representing only the most popular Electron-based applications. In total there are several hundred such applications. A more or less complete list of them can be found on a <a href=\"https:\/\/www.electronjs.org\/apps\" target=\"_blank\" rel=\"nofollow noopener\">special page<\/a> on the official website of the framework (but, it seems, not all of them are listed even there).<\/p>\n<div id=\"attachment_49039\" style=\"width: 3010px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" aria-describedby=\"caption-attachment-49039\" decoding=\"async\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2023\/09\/14140709\/electron-framework-security-issues-4-scaled-1-scaled.jpg\" alt=\"List of Electron-based applications \" width=\"3000\" height=\"1697\" class=\"size-full wp-image-49039\" \/><\/p>\n<p id=\"caption-attachment-49039\" class=\"wp-caption-text\">The list of Electron-based desktop applications comprises several hundred online services, including about 20 really popular ones. <a href=\"https:\/\/www.electronjs.org\/apps\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n<\/div>\n<h2>Security considerations<\/h2>\n<p>So how to avoid the threats posed by uncontrolled browsers that thoughtful developers are now unpredictably embedding into desktop apps? I have three main tips regarding this:<\/p>\n<ul>\n<li>Minimize the number of Electron-based apps as much as possible. It&#8217;s not as difficult as it seems: the very fact of using the framework normally suggests that the service has an extremely advanced web version, which is most likely on a par with the desktop application in terms of features and convenience.<\/li>\n<li>Try to inventory all Electron-based apps used by your company&#8217;s employees, and <a href=\"https:\/\/www.kaspersky.com\/blog\/patching-priorities\/48867\/\" target=\"_blank\" rel=\"noopener\">prioritize their updates<\/a>. More often than not, these are collaboration applications of different forms and shades \u2014 from Microsoft Teams, Slack, and Asana, to GitHub and Figma.<\/li>\n<li>Use <a href=\"https:\/\/www.kaspersky.com\/small-to-medium-business-security?icid=gl_kdailyplacehold_acq_ona_smm__onl_b2b_kasperskydaily_wpplaceholder_______\" target=\"_blank\">a reliable security solution<\/a>. It will help you repel attacks in those periods when vulnerabilities are already known and being exploited but the patches haven&#8217;t yet been issued. By the way, Kaspersky products have an exploit protection system: it <a href=\"https:\/\/www.kaspersky.com\/blog\/nokoyawa-zero-day-exploit\/47788\/\" target=\"_blank\" rel=\"noopener\">helps <\/a>our experts detect the exploitation of new, as yet unknown vulnerabilities, and warns the developers of the corresponding programs about these holes.<\/li>\n<\/ul>\n<p> <input type=\"hidden\" class=\"category_for_banner\" value=\"kesb-trial\" \/> <br \/><a href=\"https:\/\/www.kaspersky.com\/blog\/electron-framework-security-issues\/49035\/\" target=\"bwo\" >https:\/\/blog.kaspersky.com\/feed\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2023\/09\/14141558\/electron-framework-security-issues-feature.jpg\"\/><\/p>\n<p><strong>Credit to Author: Alanna Titterington| Date: Thu, 14 Sep 2023 18:18:37 +0000<\/strong><\/p>\n<p>Many popular desktop applications are based on the Electron framework. We explain why this can pose a security problem.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[10425,10378],"tags":[12014,1001,10699,27291,12177,10496,10403,12321,1583,10752,10525],"class_list":["post-22912","post","type-post","status-publish","format-standard","hentry","category-kaspersky","category-security","tag-browsers","tag-business","tag-chrome","tag-electron","tag-enterprise","tag-linux","tag-macos","tag-smb","tag-updates","tag-vulnerabilities","tag-windows"],"_links":{"self":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/22912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/comments?post=22912"}],"version-history":[{"count":0,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/22912\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/media?parent=22912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/categories?post=22912"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/tags?post=22912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}