Our annual penetration test result came back and this time around, one finding was reported: Our line-of-business Android App is vulnerable to memory dump attack.
The specifics of the method that were used is a bit obscure because it was down by external contractor who weren't willing to disclose anything beyond their contractual obligation. But from the report I can derive the following information:
- The proof of concept attack were done using Fridump, a python script that's using Frida and Frida server running on the device.
- The specific vulnerability that was reported: They can extract sensitive data from memory dump that was generated using fridump.
- The app under test was our Android 'debug' build. It is not clear to me why they were testing our 'debug' build instead of 'release'.
- The app uses combination of cordova and the now obselete CrossWalk Project. But there were no reports regarding the use of an obselete 3rd party library, so I think they should have more concern but that's issue for another day.
The point is, the sensitive data reported are javascript variable values. I don't have deep understanding regarding the application architecture, this is a 5-year-old legacy app, but I believe when the app is running, javascript code must be loaded into the app memory segment. Anyone who can plant instrumentation tool (like Frida) on the device can read anything from the app's memory segment.
The questions:
So is this still considered the app's vulnerability? Is the Android platform allow mitigation of such attack say by following certain rules?
Is it possible that debug android build is not guarded against memory dump attack? Will the 'release' version be less vulnerable to this kind of attack?