the heavy metal that poisoned the droid
play

The heavy metal that poisoned the droid Tyrone Erasmus Introduction - PowerPoint PPT Presentation

The heavy metal that poisoned the droid Tyrone Erasmus Introduction Android Security Model Static vs. Dynamic analysis Mercury: New framework on the block Finding OEM problems Techniques for malware How do we fix this?


  1. The heavy metal that poisoned the droid Tyrone Erasmus

  2. • Introduction • Android Security Model • Static vs. Dynamic analysis • Mercury: New framework on the block • Finding OEM problems • Techniques for malware • How do we fix this? • Conclusion

  3. /usr/bin/whoami • Consultant @ MWR InfoSecurity • My 25% time == Android research • Interested in many areas of exploitation

  4. Introduction • Why android?

  5. Security Model • User-based permissions model • Each app runs as separate UID • Differs from conventional computing • Except when shared UIDs are used • App resource isolation

  6. Security Model

  7. Security Model Application 1 Application 2 shared_prefs shared_prefs files files cache cache databases databases UNIX permissions!

  8. Security Model • App manifest = all configuration + security parameters

  9. Security Model Memory corruption vulnerabilities: • Native elements that can be overflowed • Code execution: • In context of exploited app • With permissions of app • Want more privileges? YOU vs. KERNEL

  10. IPC Apps use Inter-Process Communication • Defined communication over sandbox • Exported IPC endpoints are defined in AndroidManifest.xml

  11. IPC - Activities • Visual element of an application

  12. IPC – Services • Background workers • Provides no user interface • Can perform long-running tasks

  13. IPC – Broadcast Receivers • Get notified of system and application events • According to what has been registered • android.permission.RECEIVE_SMS

  14. IPC – Content Providers • Data storehouse • Often uses SQLite • Methods that are based on SQL queries

  15. IPC Summary • All can be exported • Explicitly by exported=true • Implicitly by <intent-filter> • Content Provider exported by default • Often overlooked by developers

  16. IPC Summary Simple Application Rich Application Activity Activity Service Broadcast receiver Content provider

  17. What they all say • Permissions and developer name Hmmm...

  18. Scary Contradictions • Apps containing root exploits • Browser vulnerabilities • Cross-application exploitation

  19. Cross-application exploitation • What can 1 app do to another? • Completely unprivileged • Malware implications • Android-specific attack surface

  20. Static analysis Examine Write Download Extract Understand Decompile attack custom apps manifests entry points vectors POCs

  21. Static analysis • Iterative • Create/ Time consuming Amend Code Analyse Compile Test Upload

  22. Why Dynamic analysis ? VS. • Time-efficient • Better coverage • Re-usable modules

  23. New tool - Mercury • “The heavy metal that poisoned the droid” • Developed by me 

  24. Mercury...What is it? • Platform for effective vulnerability hunting • Collection of tools from single console • Modular == easy expansion • Automation • Simplified interfacing with external tools

  25. Mercury...Why does it exist!? • Testing framework vs. custom scripts • INTERNET permission – malware can do it too! • Share POCs – community additions

  26. Mercury...How does it work? Client/Server model • Low privileges on server app • Intuitive client on pc Client Server ( On PC) ( On Device)

  27. Mercury...Show me your skills • Find package info • Attack surface • IPC info • Interacting with IPC endpoints • Shell

  28. Interesting fact #1 ANY app can see verbose system info • Installed apps • Platform/device specifics • Phone identity

  29. Impact Profile your device • Get exploits for vulnerable apps • Better targeting for root exploits • Use this info track you • Only Required permission: INTERNET

  30. Interesting fact #2 • Any app with no permissions can read your SD card • It is the law of the UNIXverse

  31. Impact • A malicious app can upload the contents of your SD card to the internet • Photos • Videos • Documents • Anything else interesting? • Only Required permission: INTERNET

  32. Debuggable apps • More than 5% of Market apps • Allow malicious apps to escalate privileges • debuggable=true Open @jdwp-control socket 

  33. Mercury...So I can extend it? • Remove custom-apps == Quick tests • Create new tools • Share exploit POCs on GitHub • Some cool modules included already: • Device information • Netcat shell • Information pilfering OEM apps

  34. Mercury...Dropbox example • Custom exploit app • No structure for debugging

  35. OEM apps • Pre-installed apps often == vulnerabilities • Many security researchers target these apps

  36. OEM apps Lets find some leaky content providers! • Promise of: • Information pilfering glory • Rampant SQLi • No custom app development

  37. Research findings Leaks instant messages from: • Google Talk • Windows Live Messenger • Yahoo! Messenger

  38. Research findings Leaks: • Facebook • MySpace • Twitter • LinkedIn

  39. OEM apps HTCloggers.apk allows any app with INTERNET • ACCESS_COARSE_LOCATION • ACCESS_FINE_LOCATION • ACCESS_LOCATION_EXTRA_COMMANDS • ACCESS_WIFI_STATE • BATTERY_STATS • DUMP • GET_ACCOUNTS • GET_PACKAGE_SIZE • GET_TASKS • READ_LOGS • READ_SYNC_SETTINGS • READ_SYNC_STATS

  40. Research findings Leaks: • Email address and password • Email content • IM & IM contacts

  41. Research findings Leaks: • SMS using SQLi • Credits to Mike Auty – MWR Labs • Feels so 2000’s

  42. OEM apps Steps to win: • Webkit vulnerability • Browser has INSTALL_PACKAGES • Exported recording service • Bugging device 

  43. Research findings Leaks: • SMS • Emails • IMs • Social Networking messages

  44. Research findings Leaks: • Portable Wi-Fi hotspot • SSID • WPA2 password

  45. Research findings • Have found more than 10 similar type vulnerabilities • Across many OEM apps

  46. Research findings - Impact An app with 0 granted permissions can get: • Email address and password • Email contents • SMS • IM & IM contacts • Social networking messages • Call logs • Notes • Current city • Portable Wi-Fi hotspot credentials

  47. Why is this happening? Manufacturers bypass OS features • Lack of knowledge? • Tight deadlines?

  48. Malware deluxe Building a user profile • Installed package info • Upload entire SD card • Pilfer from leaky content providers • Get device/platform info

  49. Malware deluxe Useful binaries for device/platform info • toolbox • dumpsys • busybox Promise of: • Useful info

  50. Malware deluxe Dirty tricks • Pipe a shell using nc • Crash the logreaders Promise of: • Shells - everybody loves ‘ em  • Someone actually doing this 

  51. Malware deluxe Fresh exploits • Installed apps + versions • Download latest available exploits • Exploit vulnerable apps for fun/profit • Same goes for root exploits

  52. Android the blabbermouth Permissions required: android.permission.INTERNET

  53. Which would you install?

  54. How do developers fix this? • Can’t help Android vulnerabilities • Can make secure apps • Stop information being stolen from your app • Check exposure with Mercury

  55. Mercury – Future plans • Testing ground for exploits of all kind • Full exploitation suite?

  56. return 0; • Feedback forms • Questions?

Recommend


More recommend