November 22, 2024 in analysis reports by Esther Onfroy5 minutes
Turaco app demonstrates a blend of typical social network capability while relying heavily on third-party SDKs. This analysis does not reveal any malicious behaviors.
Turaco was a social network Android app in Central African Republic that provides users with various features such as sharing opinions, reading the news and chatting with friends.
We’ve analyzed the following version of the app com.she.turaco
:
fd3db2cc5c8683429594d534ee683981b59b52a7
44a6d67e721ec521566cf1eefeab578fb2f0a080
)4eab7d2c0b7055b39fc69b54dba29aa41ea52855
44a6d67e721ec521566cf1eefeab578fb2f0a080
)58590dc430d215c538237f41e66d50fa22cd37ac
ef184d91be0f5901c3282ffc1ffe1a16b041be42
)6dfc2b4cfbc9f96cae1368a367e75d917273d921
ef184d91be0f5901c3282ffc1ffe1a16b041be42
)44a6d67e721ec521566cf1eefeab578fb2f0a080
ef184d91be0f5901c3282ffc1ffe1a16b041be42
turaco.me
domain name58590dc430d215c538237f41e66d50fa22cd37ac
4eab7d2c0b7055b39fc69b54dba29aa41ea52855
turaco.me
6dfc2b4cfbc9f96cae1368a367e75d917273d921
APKs from Turaco’s website are signed with the certificate 44a6d67e721ec521566cf1eefeab578fb2f0a080
while APKs from Google Play are signed with the certificate ef184d91be0f5901c3282ffc1ffe1a16b041be42
. The 2 APKs in version 1.12
are exactly the same from a binary standpoint (100% similarity) regardless their origin (Dexofuzzy hash: 6144:+K6ttXJkU+yNrzgrcfLlb/NLPgoS11DjXoGqQgfiG71aa0kqWzVFwpBOdMQkOPUJ:DGyukrQlpZ7PVFwXnJhAqn
).
The earliest version (1.1) requests 9 permissions including:
android.permission.READ_EXTERNAL_STORAGE
: allows the application to read from external storageandroid.permission.WRITE_EXTERNAL_STORAGE
: allows the application to write to external storageThe version 1.12 introduces the permission android.permission.RECORD_AUDIO
, probably to record voice messages.
None of the versions we’ve analyzed request permissions to gain access to:
.READ_SMS
/.SEND_SMS
).READ_PHONE_STATE
).ACCESS_COARSE_LOCATION
, .ACCESS_FINE_LOCATION
).READ_CALENDAR
)The way the app is designed to communicate with Turaco’s server is defined in com/she/data/api/TuracoService
but nothing malicious has been identified.
This app relies on 3rd-party SDKs, five of them are known for collecting personal data:
It’s important to note this app uses the Androidx app compatibility library. The purpose of this library is to make applications compatible with older versions of Android. The integration of this library leads to a large number of false positives when analyzed with automatic static analysis tools such as Quark engine. The reason comes from the fact that this library offers a glue between operating system APIs and the Android app by overriding numerous OS APIs such as the ones for reading the IMEI, IMSI, access the agenda, read the SMS messages, list installed apps, etc.
As an example, the call graph below shows that only the Android App Compat library calls the location-related methods such as getLatitude
. But, the code of Android App Compat is never called by the app, this is dead code.
For the sake of comparison, a call from the app (com.she.turaco
) to the method returning the country ISO code of the mobile carrier is shown in the graph below. This graph also shows the SDK of Facebook (com.facebook
) and the SDK of Google Data Transport (com.google.android.datatransport
) read the network operator name.
The app version 1.16 implements all the code necessary to record audio as shown in the graph below. Probably for recording voice messages.
The app version 1.1 was dynamically analyzed with PTS and the dynamic analysis has shown network communications to Facebook and Google Firebase only. No dangerous (as defined by Google) permissions have been requested. The analysis can’t go further than the registration screen since the app requests for a phone number with the country code +236
.
No communication with *.turaco.me
has been observed.
Four data transmissions to Facebook Graph have been observed. Those transmissions include:
Find below an example of data transmission to Facebook Graph:
This data transmission was handled by the SDK Facebook itself as shown in the stacktrace below:
In conclusion, the Turaco app demonstrates a blend of typical social network capability while relying heavily on third-party SDKs, particularly from Facebook and Google. While no malicious behavior nor code was detected, the app integrates SDKs known for extensive data collection, transmitting user-related information such as device details, advertising IDs, and mobile operator names to external servers. This raises potential privacy concerns.
The presence of permissions such as RECORD_AUDIO
in later versions aligns with added features like voice messages but highlights the importance of transparent user communication regarding data use. Despite these permissions, dynamic analysis revealed limited direct communication with the app’s own domain (*.turaco.me
) and no direct access to sensitive data such as SMS, location, or IMEI, which suggests a cautious approach to permissions.
The dependence on Facebook SDKs for analytics and interaction, coupled with the evidence of data transmissions to Facebook Graph, underscores the potential for significant user data tracking. Overall, Turaco appears to function within standard practices for social network apps.