Study of Mobile Web App Security: Findings and Recommendations

Slide Note
Embed
Share

Explore the findings of a large-scale study on mobile web app security conducted by Patrick Mutchler, Adam Doupe, John Mitchell, Chris Kruegel, and Giovanni Vigna. The study reveals vulnerabilities in hundreds of thousands of mobile apps, emphasizing the importance of securing WebView elements and restricting content loading to enhance app security.


Uploaded on Sep 06, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. A Large-Scale Study of Mobile Web App Security Patrick Mutchler, Adam Doupe, John Mitchell, Chris Kruegel, Giovanni Vigna

  2. The big picture

  3. Hundreds of thousands of vulnerable apps

  4. Definitions

  5. A Large-Scale Study of Mobile Web App Security

  6. A mobile web app is an app that embeds a fully functional web browser as a UI element.

  7. A Large-Scale Study of Mobile Web App Security

  8. 1,172,610 Android apps

  9. 998,286 w/ WebViews

  10. A Large-Scale Study of Mobile Web App Security

  11. 1. Loading untrusted web content 2. Leaking URLs to foreign apps 3. Exposing state changing navigation to foreign apps

  12. 1. Loading untrusted web content 2. Leaking URLs to foreign apps 3. Exposing state changing navigation to foreign apps

  13. You should restrict the web-pages that can load inside your WebView with a whitelist. - Facebook

  14. only loading content from trusted sources into WebView will help protect users. - Adrian Ludwig, Google

  15. Goal: Find apps that load untrusted content in WebViews

  16. 1. Navigate to untrusted content

  17. // In app code myWebView.loadUrl( foo.com );

  18. <!-- In HTML --> <a href= foo.com >click!</a>

  19. <!-- More HTML --> <iframe src= foo.com />

  20. // In JavaScript window.location = foo.com ;

  21. publicboolean shouldOverrideUrlLoading( WebView view, String url){ // False -> Load URL in WebView // True -> Prevent the URL load }

  22. publicboolean shouldOverrideUrlLoading( WebView view, String url){ String host = newURL(url).getHost(); if(host.equals( stanford.edu )) return false; log( Overrode URL: + url); return true; }

  23. publicboolean shouldOverrideUrlLoading( WebView view, String url){ String host = newURL(url).getHost(); if(host.equals( stanford.edu )) return false; log( Overrode URL: + url); return true; }

  24. publicboolean shouldOverrideUrlLoading( WebView view, String url){ String host = newURL(url).getHost(); if(host.equals( stanford.edu )) return false; log( Overrode URL: + url); return true; }

  25. What does untrusted mean?

  26. 2. Load content with HTTP

  27. 3. Use HTTPS unsafely

  28. publicvoid onReceivedSslError( WebView view, SslErrorHandler handler, SslError error){ // handler.cancel() -> cancel the load // handler.proceed() -> ignore the error }

  29. publicvoid onReceivedSslError( WebView view, SslErrorHandler handler, SslError error){ handler.proceed(); }

  30. publicvoid onReceivedSslError( WebView view, SslErrorHandler handler, SslError error){ handler.proceed(); }

  31. Results

  32. Vulnerability % Relevant % Vulnerable Unsafe Nav 15 34 HTTP 40 56 Unsafe HTTPS 27 29

  33. Popularity

  34. Outdated Apps

  35. Libraries 29% unsafe nav

  36. Libraries 51% HTTP 29% unsafe nav

  37. Libraries 51% HTTP 53% unsafe HTTPS 29% unsafe nav

  38. Takeaways

  39. Takeaways Apps must not load untrusted content into WebViews

  40. Takeaways Apps must not load untrusted content into WebViews Able to identify violating apps using static analysis

  41. Takeaways Apps must not load untrusted content into WebViews Able to identify violating apps using static analysis Vulnerabilities are present in the entire app ecosystem

  42. Questions?

Related


More Related Content