HideDroid — anonymization of outgoing analytics data

Here is another original concept for disarming in-app trackers. The difference between HideDroid and all the previous tools is that it does not block trackers completely or feed them with completely false information, but precisely parses the outgoing traffic and cuts out only privacy-violating data.

HideDroid is an Android app that allows the per-app anonymization of collected personal data according to a privacy level chosen by the user.

In a nutshell,HideDroid collects all the network traffic generated by the invocation of API calls belonging to analytics libraries, and extract the exported data.

Then, it anonymizes the personal and device data using a generalization technique, and the data related to the user’s behavior using an approach based on the concept of local differential privacy, in a way that preserves as much data semantics as possible.

Finally, the anonymized data are sent to the expected recipients by mimicking the original network calls.

Available from the IzzyOnDroid F-Droid repo: https://apt.izzysoft.de/fdroid/index/apk/it.unige.hidedroid
ic_incognito_android_hat_circle

2 Likes

great effort, here’s the paper: https://arxiv.org/pdf/2106.02483.pdf - i scanned it specifically for parts on certificate pinning. Defying tls certificate pinning techniques each “App under test” (AUT) is hard, and they need to use a heavyhanded approach: using Frida to bypass each App configuration

… [to] cope with apps and libraries implementing SSL Pinning techniques, to protect the network traffic, we dynamically instrumented each AUT using Frida in order to bypass the most common implementations of SSL pinning.

so conclude in the end

… if an analytic library enforces SSL Pinning techniques to protect its network traffic, HideDroid is not able to intercept the network requests because the Android app raises an exception due to the invalid certificate.

Despite the existence of SSL bypass techniques such as the use of Frida, or Xposed, they either require root permissions or a per-app instrumentation, which may lead to the crash of the AUT. Moreover, if the app developer applies an additional encryption layer on the network traffic, HideDroid will not be able to decrypt the data programmatically.

We mitigated such issues in HideDroid by considering encrypted data as generic strings even though the corresponding anonymization process (e.g., the data generalization) would break the decryption process at the backend side.

if it can’t mitm it to change bits of id-ing strings, the whole request gets garbled, so the App can make its Call and is less likely to crash, but the http response will most likely be erroneous.

This work was partially funded by the Horizon 2020 project “Strategic Programs for Advanced Research and Technology in Europe” (SPARTA)

No idea where the final A comes from, but to have a pun on DARPA is funny.

2 Likes