TikTok: il reverse engineering svela falle enormi sulla privacy
L’app più chiacchierata del momento è sicuramente TikTok, basta guardare i record che sta ottenendo per farsi un’idea di quanto sia diventata popolare.
Attualmente l’app sviluppata da ByteDance vanta dei numeri pazzeschi:
- È stata la seconda app gratuita più scaricata nel 2019, con ben 738 milioni di download
- È disponibile in 141 paesi ed occupa una posizione in top 25 per download in 135 di questi
- È il social media che vanta il più alto engagement rate nel 2019, secondo Influencer MarketingHub
- Vanta 800 milioni di utenti attivi in tutto il mondo
Potremmo continuare ancora a lungo, tuttavia, l’obiettivo di questo articolo è un altro: delle possibili falle riguardo alla privacy.
TikTok: analisi tecnica dell’app
Un paio di mesi fa, è comparso un thread su Reddit, che è tuttora in continuo aggiornamento, nel quale l’utente “bangorlol”, un ingegnere software con 15 anni di esperienza, ha rivelato di aver applicato il reverse engineering per individuare falle riguardanti la privacy degli utenti. Quello che ha scoperto, se fosse confermato, solleverebbe seri dubbi sulla correttezza di queste pratiche.
Sostanzialmente bangorlol ha fortemente sconsigliato agli utenti di continuare ad utilizzare l’app, avvertendoli di un tracciamento invadente.
Ecco il suo messaggio:
“So I can personally weigh in on this. I reverse-engineered the app, and feel confident in stating that I have a very strong understanding for how the app operates (or at least operated as of a few months ago).
TikTok is a data collection service that is thinly-veiled as a social network. If there is an API to get information on you, your contacts, or your device… well, they’re using it.
- Phone hardware (cpu type, number of course, hardware ids, screen dimensions, dpi, memory usage, disk space, etc)
- Other apps you have installed (I’ve even seen some I’ve deleted show up in their analytics payload – maybe using as cached value?)
- Everything network-related (ip, local ip, router mac, your mac, wifi access point name)
- Whether or not you’re rooted/jailbroken
- Some variants of the app had GPS pinging enabled at the time, roughly once every 30 seconds – this is enabled by default if you ever location-tag a post IIRC
- They set up a local proxy server on your device for “transcoding media”, but that can be abused very easily as it has zero authentication
The scariest part of all of this is that much of the logging they’re doing is remotely configurable, and unless you reverse every single one of their native libraries (have fun reading all of that assembly, assuming you can get past their customized fork of OLLVM!!!) and manually inspect every single obfuscated function. They have several different protections in place to prevent you from reversing or debugging the app as well. App behavior changes slightly if they know you’re trying to figure out what they’re doing. There’s also a few snippets of code on the Android version that allows for the downloading of a remote zip file, unzipping it, and executing said binary. There is zero reason a mobile app would need this functionality legitimately.
On top of all of the above, they weren’t even using HTTPS for the longest time. They leaked users’ email addresses in their HTTP REST API, as well as their secondary emails used for password resets. Don’t forget about users’ real names and birthdays, too. It was allllll publicly viewable a few months ago if you MITM’d the application.
They provide users with a taste of “virality” to entice them to stay on the platform. Your first TikTok post will likely garner quite a bit of likes, regardless of how good it is.. assuming you get past the initial moderation queue if thats still a thing. Most users end up chasing the dragon. Oh, there’s also a ton of creepy old men who have direct access to children on the app, and I’ve personally seen (and reported) some really suspect stuff. 40-50 year old men getting 8-10 year old girls to do “duets” with them with sexually suggestive songs. Those videos are posted publicly. TikTok has direct messaging functionality.
Here’s the thing though.. they don’t want you to know how much information they’re collecting on you, and the security implications of all of that data in one place, en masse, are fucking huge. They encrypt all of the analytics requests with an algorithm that changes with every update (at the very least the keys change) just so you can’t see what they’re doing. They also made it so you cannot use the app at all if you block communication to their analytics host off at the DNS-level.
For what it’s worth I’ve reversed the Instagram, Facebook, Reddit, and Twitter apps. They don’t collect anywhere near the same amount of data that TikTok does, and they sure as hell aren’t outright trying to hide exactly whats being sent like TikTok is. It’s like comparing a cup of water to the ocean – they just don’t compare.”
In poche parole, bangorlol sostiene che l’app di TikTok, subito dopo essere stata installata sul dispositivo, inizia a tracciare un’infinità di dati, tra cui:
- Tutte le informazioni tecniche relative al dispositivo sul quale l’app viene installata
- Le altre app presenti sul dispositivo (a volte anche dopo la disinstallazione di queste)
- Tutto quello che riguarda la rete dati utilizzata
- La posizione tramite GPS
Inoltre, questo utente, sostiene che queste attività vengono camuffate dall’app se qualcuno cerca di applicare il reverse engineering, come lui stesso ha fatto, e addirittura che l’app permetta di scaricare dei file zip da remoto. Oltre a questo “Crittografano tutte le richieste di analisi con un algoritmo che cambia ad ogni aggiornamento (per lo meno cambiano le chiavi) così non puoi vedere cosa stanno facendo. Lo hanno anche fatto in modo che tu non possa usare l’app se blocchi la comunicazione con il loro host di analisi a livello di DNS.”
Conclude dicendo che Instagram, Twitter, Reddit e Facebook non fanno nulla di tutto ciò e che possono essere considerati paradisi della privacy in confronto a TikTok. Secondo bangorlol TikTok è un sistema di raccolta dati mascherato da social media.
A sostegno delle sue teorie, ha inoltre pubblicato due link che rimandano a ricerche effettuate sul trattamento dati di TikTok da parte di Zimperium e Penetrum.
Falle nella privacy di TikTok, le perplessità degli utenti
Ovviamente si tratta di affermazioni molto pesanti che hanno suscitato perplessità in alcuni utenti. Alla richiesta di prove, bangorlol risponde così:
“Sto ricevendo molti messaggi privati che mi chiedono di provare la maggior parte di questo con un documento e frammenti del codice incriminato. Ho una discreta quantità di appunti sull’altro laptop che recentemente ha avuto un guasto alla scheda madre e la maggior parte di questi dati si trova sull’SSD del laptop. È un Macbook Pro, quindi recuperare i dati non è esattamente super semplice. Ho alcuni script Frida che ho inviato al mio server Git e alcuni file markdown con registri delle conversazioni che ho avuto con gli sviluppatori di exploit, ma non molto altro. Per ottenere a tutti la prova di cui hanno bisogno, probabilmente dovrò invertire nuovamente l’app e attualmente non ne ho il tempo.
Sto progettando di creare un semplice sito/blog con quello che ho scoperto e aggiornerò questo commento con il link quando sarà fatto. Grazie a tutti per aver prestato la vostra attenzione a questo problema e grazie a tutti coloro che stanno esaminando le mie affermazioni. Ne abbiamo davvero bisogno in questa attuale era di disinformazione.”
Intervistato da Bored Panda, bangorlol ha affermato che “TikTok ha fatto molti sforzi per impedire a persone come me di capire come funziona la loro app. C’è un sacco di offuscamento relativo a tutti i livelli dell’applicazione. Nascondono le funzioni, impediscono ai debugger di collegarsi e attuano alcuni trucchi subdoli per rendere le cose difficili. Onestamente, è più complicato e fastidioso rispetto alla maggior parte delle app che ho analizzato”.
Tale segretezza è comprensibile. I guadagni di TikTok sono aumentati in proporzione al suo aumento di popolarità e l’azienda proprietaria, ByteDance, ha realizzato un utile netto di 3 miliardi di dollari nel 2019.
Inoltre, bangorlol ritiene che ormai come società abbiamo sdoganato la divulgazione delle nostre informazioni personali e non abbiamo più alte richieste di privacy e sicurezza, quindi fornire a TikTok i nostri dati è considerato normale. Continua dicendo: “L’opinione più diffusa tra la maggior parte delle persone “normali” è che non saranno mai presi di mira, quindi va bene. O che non hanno nulla da nascondere, quindi “perché dovrei preoccuparmene?” Penso che questa apatia provenga da persone che non capiscono le implicazioni di sicurezza (a tutti i livelli) della consegna dei nostri dati a un governo straniero che non ha una buona nomea quando si tratta di diritti umani”.
Infine, dato che le sue ricerche risalgono a qualche mese fa, conclude dicendo: “L’app potrebbe aver modificato le tecniche di raccolta delle impronte digitali o aggiunto/rimosso alcune delle cose poco chiare che fanno. Incoraggio vivamente i ricercatori di sicurezza che sono molto più preparati di me e hanno più tempo libero, a dare un’occhiata all’app e scrutare ogni piccolo dettaglio possibile. Ci sono molte cose nelle librerie native, almeno per la versione di Android, che non sono riuscito a capire e non ho avuto il tempo di indagare ulteriormente”.
Anche Anonymus, il famoso gruppo di hacktivisti, ha rilanciato la notizia sul proprio Twitter, come si vede dall’immagine più in basso, invitando chiunque a disinstallare l’app. Inoltre il governo Indiano ha bannato l’app sul proprio territorio. Insomma, i dubbi su TikTok non sembrano così infondati.