Pride and Prejudice in Progressive Web Apps: Abusing Native App-like Features in Web Applications
Jiyeon Lee, Hayeon Kim, Junghwan Park, Insik Shin, Sooel Son School of Computing, Graduate School of Information Security
1
Pride and Prejudice in Progressive Web Apps : Abusing Native - - PowerPoint PPT Presentation
Pride and Prejudice in Progressive Web Apps : Abusing Native App-like Features in Web Applications Jiyeon Lee, Hayeon Kim, Junghwan Park, Insik Shin, Sooel Son School of Computing, Graduate School of Information Security 1 Limitations of Web
Pride and Prejudice in Progressive Web Apps: Abusing Native App-like Features in Web Applications
Jiyeon Lee, Hayeon Kim, Junghwan Park, Insik Shin, Sooel Son School of Computing, Graduate School of Information Security
1Limitations of Web Apps
⁻ Heavily depend on network connection ⁻ Low user engagement
Source: comScore Mobile Metrix, U.S., Age 18+, June 2016Apps 188.6 Webs 9.3
Average minutes per visitor 2Limitations of Native Apps
⁻ High cost ⁻ Difficult to share
Monthly Unique Visitors (M)Apps 4.0 Webs 11.4
Source: comScore Mobile Metrix, U.S., Age 18+, June 2016 3Progressive Web Apps (PWAs)
⁻ Twitter Lite ⁻ Financial Times ⁻ Forbes
Push Notifications Offline Browsing Add to Home Screen 4⁻ Twitter Lite ⁻ Financial Times ⁻ Forbes
Progressive Web Apps (PWAs)
5Core Components: 1) Service Worker 2) Cache 3) Push
SERVICE WORKER CACHE PUSH
This Study
Vulnerabilities: 1) Service Worker à Cryptocurrency Mining 2) Cache à Inferring User’s Browsing History 3) Push à Phishing Attack
SERVICE WORKER CACHE PUSH
Technology behind PWAs: Service Worker
⁻ Firefox 44+, Chrome 45+, Edge 17+, Opera 32+
</>
SERVICE WORKER WEB APP NETWORK
7Offline Browsing
Web Push Notifications
SERVICE WORKER PUSH SERVER WEB SERVER
9How Many PWAs Exist in the Wild?
Features Used Number of websites Push 3,351 (80.5%) Cache 513 (12.3%) Both 196 (4.7%) Others 495 (11.9%) Total 4,163 (100%)
10I-I. Phishing Risks of Web Push
11General Appearance of Web Push
12General Appearance of Web Push
ICON TITLE BODY DOMAIN 13Sender Can Customize,
ICON TITLE BODY DOMAIN 14Sender Can Not Customize,
ICON TITLE BODY DOMAIN 15representing the source of a push message
DOMAIN localhost:8000Vulnerabilities We Found
⁻ Firefox on GNOME, Ubuntu MATE, Cinnamon, Budgie, and Pantheon ⁻ Samsung Internet, Firefox on Android
Push without domain Push with domain
Chrome Firefox Samsung InternetI-II. Phishing risks of Third-Party Push Libraries
17⁻ Scheduling push notifications, Reporting the statistics of subscribers, Supporting HTTP websites
Emerging Third-party Push Services
Image Source: https://sendpulse.com/features/webpush 18How push is Supported on HTTP Sites
19How push is Supported on HTTP Sites
20A css-styled permission dialog that is drawn by the library An actual permission dialog that a browser asks
How push is Supported on HTTP Sites
21An address of website that user visits A HTTPS domain that library creates
How push is Supported on HTTP Sites
Bounding
22Permission Delegation Attack
NETWORK ATTACKER Powered by library Powered by AttackerX
Allow http://benign.com to send notifications? 23I-III. Domain Name Spoofing Attack of Web Push Notifications
24Web Push in Detail
SERVICE WORKER PUSH SERVER WEB SERVER
Web Push in Detail
SERVICE WORKER PUSH SERVER WEB SERVER
Web Push in Detail
SERVICE WORKER PUSH SERVER WEB SERVER
Web Push in Detail
SERVICE WORKER PUSH SERVER WEB SERVER
Web Push in Detail
SERVICE WORKER PUSH SERVER WEB SERVER
The EndpointURL is confidential information!
Web Push Protocol: VAPID
SERVICE WORKER PUSH SERVER WEB SERVER
Public Key Private Key
⁻ Without a private key, cannot send push messages
30VAPID in the Wild
SERVICE WORKER PUSH SERVER WEB SERVER
Domain Spoofing Attack
SERVICE WORKER PUSH SERVER WEB SERVER
NETWORK ATTACKER
32 A push with spoofed domain, “kirannewsagency.iz.do”Why Phishing via Web Push Matters?
Real-world phishing
33History Sniffing Attack
⁻ E. Felten at al., Timing Attacks on Web Privacy [CCS 2000] ⁻ Z. Weinberg at al., I Still Know What You Visited Last Summer: Leaking Browsing History via User Interaction and Side Channel Attacks [S&P 2011] ⁻ S. Son at al., What Mobile Ads Know About Mobile Users [NDSS 2016]
History Sniffing Attack on PWAs
History Sniffing Attack on PWAs
History Sniffing Attack on PWAs
History Sniffing Attack on PWAs
if victims have visited target PWAs
https://attacker-pwa.com Onload event handler Onload event handler 39History Sniffing Attack on PWAs
Advantages: 1) Accuracy 2) No outgoing requests
https://attacker-pwa.comif victims have visited target PWAs
Onload event handler Onload event handler 40Consequences of History Sniffing Attack
Using Service Worker
42Cryptocurrency Mining in the Web
⁻ Stops when user leaves
COINHIVE 43Cryptocurrency Mining Attack
⁻ Stops when user leaves
Advantages: 1) Stealthy 2) Lasting Longer
Cryptocurrency Mining Attack
⁻ Service Worker becomes idle ⁻ Service Worker cannot use WebSocket
45Cryptocurrency Mining Attack
⁻ Service Worker becomes idle ⁻ Service Worker cannot use WebSocket
⁻ Push notifications
46Cryptocurrency Mining Attack
⁻ Non-visible push ⁻ Re-subscription
Most stealthy!
Cryptocurrency Mining Results
Lessons Learned
⁻ adopt VAPID ⁻ treat EndpointURL as confidential information
Conclusion
https://github.com/spostman/ppp-ccs2018
50Thank You!
Consequences of Permission Delegation Attack
Third-party Library Attack Success Number of affected HTTP sites SnedPulse 93 Izooto 18 Pushwoosh 4 Foxpush 1 OneSignal X 528 Pushcrew X 31 Pushengage X 19 Urbanairship X 2 A permission delegation attack against http://www.koimoi.com 52Domain Spoofing Attack Implication
Third-party Library Attack Success Number of affected HTTP sites SnedPulse 93 Izooto 18 Pushwoosh 4 Foxpush X 1 OneSignal X 528 Pushcrew X 31 Pushengage X 19 Urbanairship X 2 A push with spoofed domain, “kirannewsagency.iz.do” A push with spoofed domain, “afn.sendpulse.com” 53Web Push Protocol: VAPID
SERVICE WORKER PUSH SERVER WEB SERVER
Web Push Protocol: VAPID
SERVICE WORKER PUSH SERVER WEB SERVER
Domain Spoofing Attack
SERVICE WORKER PUSH SERVER THIRD-PARTY SERVER
Domain Spoofing Attack
SERVICE WORKER PUSH SERVER THIRD-PARTY SERVER
NETWORK ATTACKER
57 A push with spoofed domain, “afn.sendpulse.com”