{"id":51496,"date":"2024-06-19T10:29:24","date_gmt":"2024-06-19T14:29:24","guid":{"rendered":"https:\/\/www.kaspersky.com\/blog\/?p=51496"},"modified":"2024-06-24T07:04:31","modified_gmt":"2024-06-24T11:04:31","slug":"phishing-with-progressive-web-apps","status":"publish","type":"post","link":"https:\/\/www.kaspersky.com\/blog\/phishing-with-progressive-web-apps\/51496\/","title":{"rendered":"Progressive phishing: How PWAs can be used to steal passwords"},"content":{"rendered":"<p>A security researcher known as <em>mr.d0x<\/em> has published a <a href=\"https:\/\/mrd0x.com\/progressive-web-apps-pwa-phishing\/\" target=\"_blank\" rel=\"nofollow noopener\">post<\/a> detailing a new technique that can be used for phishing and potentially other malicious activities. The technique exploits so-called progressive web apps (PWAs). In this post, we discuss what these applications are, why they can be dangerous, how attackers can use them for their own purposes, and how to <a href=\"https:\/\/www.kaspersky.com\/premium?icid=gl_bb2023-kdplacehd_acq_ona_smm__onl_b2c_kdaily_lnk_sm-team___kprem___\" target=\"_blank\" rel=\"noopener nofollow\">protect yourself<\/a> against this threat.<\/p>\n<h2>What are progressive web apps?<\/h2>\n<p>PWAs are applications developed using web technologies. Essentially, they\u2019re websites that look and function just like native applications installed on your operating system.<\/p>\n<p>The general idea is similar to applications <a href=\"https:\/\/www.kaspersky.com\/blog\/electron-framework-security-issues\/49035\/\" target=\"_blank\" rel=\"noopener nofollow\">built on the Electron framework<\/a>, with one key difference. Electron apps are like a \u201csandwich\u201d of a website (the filling) and a browser (the bread) dedicated to running that site; that is, each Electron application has a built-in browser. In contrast, PWAs utilize the engine of the browser already installed on the user\u2019s system to display the same website \u2013 like a sandwich without the bread.<\/p>\n<p>All modern browsers support PWAs, with Google Chrome and Chromium-based browsers (including the Microsoft Edge browser that comes with Windows) offering the most comprehensive implementation.<\/p>\n<p>Installing a PWA (if the respective website supports it) is very simple. Just click an inconspicuous button in the browser\u2019s address bar and confirm the installation. Here\u2019s how it\u2019s done, using the Google Drive PWA as an example:<\/p>\n<div id=\"attachment_51505\" style=\"width: 1474px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102610\/phishing-with-progressive-web-apps-1.jpg\"><img decoding=\"async\" aria-describedby=\"caption-attachment-51505\" class=\"size-full wp-image-51505\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102610\/phishing-with-progressive-web-apps-1.jpg\" alt=\"How to install a PWA \" width=\"1464\" height=\"1312\"><\/a><p id=\"caption-attachment-51505\" class=\"wp-caption-text\">Installing PWAs only takes two clicks<\/p><\/div>\n<p>After that, the PWA appears on your system almost instantly, looking just like a real application \u2014 with an icon, its own window, and all the other attributes of a fully-fledged program. It\u2019s not easy to tell from the PWA window that it\u2019s actually a browser displaying a website.<\/p>\n<div id=\"attachment_51503\" style=\"width: 1468px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102457\/phishing-with-progressive-web-apps-2.jpg\"><img decoding=\"async\" aria-describedby=\"caption-attachment-51503\" class=\"size-full wp-image-51503\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102457\/phishing-with-progressive-web-apps-2.jpg\" alt=\"What a progressive web app (PWA) looks like\" width=\"1458\" height=\"1214\"><\/a><p id=\"caption-attachment-51503\" class=\"wp-caption-text\">The Google Drive PWA looks just like a real native application<\/p><\/div>\n<h2>PWA-based phishing<\/h2>\n<p>One crucial difference between a PWA and the same website opened in a browser is evident in the screenshot above: the PWA window lacks an address bar. This very feature forms the foundation of the phishing method discussed in this post.<\/p>\n<p>With no address bar in the window, attackers can simply draw their own \u2014 displaying an URL that serves their phishing goals. For example, this one:<\/p>\n<div id=\"attachment_51502\" style=\"width: 1233px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102404\/phishing-with-progressive-web-apps-3.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-51502\" class=\"size-full wp-image-51502\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102404\/phishing-with-progressive-web-apps-3.png\" alt=\"PWA mimicking login.microsoft.com\" width=\"1223\" height=\"903\"><\/a><p id=\"caption-attachment-51502\" class=\"wp-caption-text\">With a PWA, you can convincingly mimic any site \u2014 for example, the Microsoft account login page. <a href=\"https:\/\/mrd0x.com\/progressive-web-apps-pwa-phishing\/\" target=\"_blank\" rel=\"nofollow noopener\">Source<\/a><\/p><\/div>\n<p>Attackers can further enhance the deception by giving the PWA a familiar icon.<\/p>\n<p>The only remaining hurdle is convincing the victim to install the PWA. However, this can be easily achieved with persuasive language and cleverly designed interface elements.<\/p>\n<p>It\u2019s important to note that during the PWA installation dialog, the displayed app name can be anything the attacker desires. The true origin is only revealed by the website address in the second line, which is less noticeable:<\/p>\n<div id=\"attachment_51501\" style=\"width: 1411px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102327\/phishing-with-progressive-web-apps-4.jpg\"><img decoding=\"async\" aria-describedby=\"caption-attachment-51501\" class=\"size-full wp-image-51501\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102327\/phishing-with-progressive-web-apps-4.jpg\" alt=\"Malicious PWA installation dialog \" width=\"1401\" height=\"891\"><\/a><p id=\"caption-attachment-51501\" class=\"wp-caption-text\">The malicious PWA installation dialog displays a name that aids the attacker\u2019s goals. <a href=\"https:\/\/mrd0x.com\/progressive-web-apps-pwa-phishing\/\" target=\"_blank\" rel=\"nofollow noopener\">Source<\/a><\/p><\/div>\n<p>The process of stealing a password using a PWA generally unfolds as follows:<\/p>\n<ul>\n<li>The victim opens a malicious website.<\/li>\n<li>The website convinces the victim to install the PWA.<\/li>\n<li>Installation occurs almost instantly, and the PWA window opens.<\/li>\n<li>A phishing page with a fake address bar displaying a legitimate-looking URL opens in the PWA window.<\/li>\n<li>The victim enters their login credentials into the form \u2014 handing them directly to the attackers.<\/li>\n<\/ul>\n<div id=\"attachment_51500\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102250\/phishing-with-progressive-web-apps-5.gif\"><img decoding=\"async\" aria-describedby=\"caption-attachment-51500\" class=\"size-full wp-image-51500\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102250\/phishing-with-progressive-web-apps-5.gif\" alt=\"Demonstration of password theft using PWA \" width=\"1200\" height=\"622\"><\/a><p id=\"caption-attachment-51500\" class=\"wp-caption-text\">What phishing using a malicious PWA looks like. <a href=\"https:\/\/mrd0x.com\/progressive-web-apps-pwa-phishing\/\" target=\"_blank\" rel=\"nofollow noopener\">Source<\/a><\/p><\/div>\n<p>Of course, convincing the victim to install a native application is just as straightforward, but there are a couple of nuances. PWAs install significantly faster and require much less user interaction compared to traditional app installations.<\/p>\n<p>Additionally, developing PWAs is simpler, as they\u2019re essentially phishing websites with minor enhancements. These factors make malicious PWAs a powerful tool for cybercriminals.<\/p>\n<h2>How to protect yourself from PWA phishing<\/h2>\n<p>Incidentally, the same mr.d0x previously gained recognition for devising the <a href=\"https:\/\/www.kaspersky.com\/blog\/browser-in-the-browser-attack\/44163\/\" target=\"_blank\" rel=\"noopener nofollow\">browser-in-the-browser<\/a> phishing technique, which we wrote about a couple of years ago. Since then there have been several reported instances of attackers employing this technique not only for <a href=\"https:\/\/www.bleepingcomputer.com\/news\/security\/hackers-steal-steam-accounts-in-new-browser-in-the-browser-attacks\/\" target=\"_blank\" rel=\"nofollow noopener\">stealing account passwords<\/a> but also for <a href=\"https:\/\/www.bleepingcomputer.com\/news\/security\/knight-ransomware-distributed-in-fake-tripadvisor-complaint-emails\/\" target=\"_blank\" rel=\"nofollow noopener\">spreading ransomware<\/a>.<\/p>\n<p>Given this precedent, it\u2019s highly probable that cybercriminals will adopt malicious PWAs and devise novel ways to exploit this technique beyond phishing.<\/p>\n<p>What can you do to protect against this threat?<\/p>\n<ul>\n<li>Exercise caution when encountering PWAs, and refrain from installing them from suspicious websites.<\/li>\n<li>Periodically review the list of PWAs installed on your system. For instance, in Google Chrome, type <code>chrome:\/\/apps<\/code>\u00a0into the address bar to view and manage installed PWAs.<\/li>\n<\/ul>\n<div id=\"attachment_51499\" style=\"width: 1490px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102129\/phishing-with-progressive-web-apps-6.jpg\"><img decoding=\"async\" aria-describedby=\"caption-attachment-51499\" class=\"size-full wp-image-51499\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/92\/2024\/06\/19102129\/phishing-with-progressive-web-apps-6.jpg\" alt=\"How to view and remove installed PWAs in Google Chrome \" width=\"1480\" height=\"1160\"><\/a><p id=\"caption-attachment-51499\" class=\"wp-caption-text\">To view or remove installed PWAs in Google Chrome, type chrome:\/\/apps in the address bar<\/p><\/div>\n<ul>\n<li>Use a <a href=\"https:\/\/www.kaspersky.com\/premium?icid=gl_bb2023-kdplacehd_acq_ona_smm__onl_b2c_kdaily_lnk_sm-team___kprem___\" target=\"_blank\" rel=\"noopener nofollow\">reliable security solution<\/a> with protection against phishing and fraudulent sites, which will promptly warn you of potential dangers.<\/li>\n<\/ul>\n<input type=\"hidden\" class=\"category_for_banner\" value=\"premium-generic\">\n","protected":false},"excerpt":{"rendered":"<p>A new phishing technique uses progressive web apps (PWAs) to mimic browser windows with convincing web addresses to steal passwords.<\/p>\n","protected":false},"author":2726,"featured_media":51507,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2683],"tags":[3146,359,1278,16,22,187,76,97,321,422],"class_list":{"0":"post-51496","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-threats","8":"tag-account-hijacking","9":"tag-authentication","10":"tag-browsers","11":"tag-chrome","12":"tag-google","13":"tag-passwords","14":"tag-phishing","15":"tag-security-2","16":"tag-technology","17":"tag-threats"},"hreflang":[{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/phishing-with-progressive-web-apps\/51496\/"},{"hreflang":"en-in","url":"https:\/\/www.kaspersky.co.in\/blog\/phishing-with-progressive-web-apps\/27605\/"},{"hreflang":"en-ae","url":"https:\/\/me-en.kaspersky.com\/blog\/phishing-with-progressive-web-apps\/22921\/"},{"hreflang":"en-us","url":"https:\/\/usa.kaspersky.com\/blog\/phishing-with-progressive-web-apps\/30275\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/phishing-with-progressive-web-apps\/27755\/"},{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/phishing-with-progressive-web-apps\/27459\/"},{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/phishing-with-progressive-web-apps\/30127\/"},{"hreflang":"it","url":"https:\/\/www.kaspersky.it\/blog\/phishing-with-progressive-web-apps\/29004\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/phishing-with-progressive-web-apps\/37743\/"},{"hreflang":"tr","url":"https:\/\/www.kaspersky.com.tr\/blog\/phishing-with-progressive-web-apps\/12482\/"},{"hreflang":"fr","url":"https:\/\/www.kaspersky.fr\/blog\/phishing-with-progressive-web-apps\/21971\/"},{"hreflang":"pt-br","url":"https:\/\/www.kaspersky.com.br\/blog\/phishing-with-progressive-web-apps\/22719\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/phishing-with-progressive-web-apps\/31377\/"},{"hreflang":"ja","url":"https:\/\/blog.kaspersky.co.jp\/phishing-with-progressive-web-apps\/36678\/"},{"hreflang":"ru-kz","url":"https:\/\/blog.kaspersky.kz\/phishing-with-progressive-web-apps\/27925\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/phishing-with-progressive-web-apps\/33748\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/phishing-with-progressive-web-apps\/33412\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/www.kaspersky.com\/blog\/tag\/phishing\/","name":"phishing"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/51496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/users\/2726"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/comments?post=51496"}],"version-history":[{"count":7,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/51496\/revisions"}],"predecessor-version":[{"id":51519,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/51496\/revisions\/51519"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/media\/51507"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/media?parent=51496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/categories?post=51496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.com\/blog\/wp-json\/wp\/v2\/tags?post=51496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}