Let the Cat out of the Bag: Popular Android IoT Apps under Security Scrutiny
<p>Overview of the followed methodology.</p> "> Figure 2
<p>Categorization of trackers per examined app.</p> "> Figure 3
<p>Allocation of trackers per category.</p> "> Figure 4
<p>Number of identified shared library issues per app.</p> "> Figure 5
<p>Breakdown of shared library issues. The NX value is insignificant, i.e., less than 0.5%, and it is not included in the figure.</p> "> Figure 6
<p>Issues identified through taint analysis. The Y axis designates the amount of issues per app.</p> ">
Abstract
:1. Introduction
- We conduct an up-to-date, full-fledged, both shallow and deep analysis of more than four tens of mainstream IoT official Android apps spread across the 6 most popular diverse categories of home/office and wearable devices.
- Contrary to previous work that concentrates on device’s firmware, the use of fuzz testing, and individual app features, say, network communications, the results of our analysis stem from a plethora of both static and dynamic features, the latter after pairing the app with real-life well-known assorted IoT devices. In this respect, the methodology and the results given by this work tackle the specific issue from a more holistic viewpoint.
- The multi-category approach followed, caters for the drawing of important conclusions, directly originating from the juxtaposition of the distinct categories of apps.
2. Methodology
- Based on the number of IoT devices we possess, which naturally is bounded, six popular IoT categories were created, namely, APs, smart TV, wireless IP cameras, smart wearable, smart assistant, and smart bulb/plugs. In this sense, IoT devices that fall into other IoT device categories, say, smart home climate control appliances or smart locks, were intentionally neglected.
- For the given categories, the available official apps were selected based on their popularity, i.e., more than 1M+ downloads in the Google Play Store. Note that for certain devices, there may exist more than one official app. For instance, TP-Link offers at least three official apps, namely “TP-Link Tapo”, “Kasa Smart” and “TP-LINK tpCamera”, which can be used to manage an IoT device.
- Apps that have been analyzed in the past in the context of other research, including that in [1] have been excluded. For instance, the “Kasa Smart” app mentioned in the previous bullet point falls into this category.
3. High-Level Static Analysis
3.1. Permissions
3.1.1. Utility
- U1: CAMERA requests direct access to the camera.
- U2: RECORD_AUDIO allows an app to record audio.
- U3: BODY_SENSORS requests access to different sensors that are responsible for measuring the user’s heart rate, steps, etc.
- U4: ACTIVITY_RECOGNITION allows an app to recognize when a user performs an activity, including heart health statistics, calories burned, training status, and others.
3.1.2. Authentication
- A1: USE_CREDENTIALS allows an app to gain access to authentication tokens. It has been deprecated since API level 23 (v6).
- A2: AUTHENTICATE_ACCOUNTS allows an app to handle the account authenticator, i.e., a part of the AccountManager. The app can also create accounts and get/set their passwords. It has been deprecated since API level 23 (v6).
- A3: GET_ACCOUNTS allows an app to gain access to the accounts that are in the Account Service.
- A4: MANAGE_ACCOUNTS allows an app to manage accounts, including, creating and deleting accounts. It has been deprecated since API level 22 (v5.1).
3.1.3. Location
- L1: ACCESS_FINE_LOCATION allows an app to learn the precise location of the user.
- L2: ACCESS_COARSE_LOCATION allows an app to access the approximate location of the user.
- L3: The hard-restricted ACCESS_BACKGROUND_LOCATION allows an app to access the location of the user, when the app is running in the background. Based on the Android documentation, the app must also request either one of L1 or L2 permissions to eventually gain access to the user’s location.
- L4: ACCESS_MEDIA_LOCATION introduced in API level 29 (v10), allows an app to obtain access to any shared geographic location existing in the user’s shared collection.
3.1.4. Storage
- S1: READ_EXTERNAL_STORAGE grants read access to the external storage of the device, such as an SD card.
- S2: WRITE_EXTERNAL_STORAGE allows an app to gain write access to the external storage of the device.
- S3: REQUEST_INSTALL_PACKAGES allows an app to request and possibly install packages. According to the Android API, this is a signature type permission. Nevertheless, it is often flagged as a dangerous one, because it permits the app to install packages outside the Google Play Store.
- S4: MOUNT_UNMOUNT_FILESYSTEMS permits an app to mount or unmount files for removable storage. This permission requires platform level privilege, and therefore cannot be used by third-party apps. Previous work [9] demonstrates that this permission can be utilized for malicious purposes.
3.1.5. Phone
- P1: READ_PHONE_STATE was added with API level 26 (v8). It allows an app to gain read only access to the phone state, including the cellular network, any active calls the user may have, and to the list of any PhoneAccounts object registered on the device.
- P2: SYSTEM_ALERT_WINDOW permits an app to create windows on top of other already running apps. The Android API states that “very few apps should use this permission; these windows are intended for system-level interaction with the user” and “If the app targets API level 23 or higher, the app user must explicitly grant this permission to the app through a permission management screen.” Previous works [9,10] have shown that this permission is exploited by major malware families.
- P3: READ_CONTACTS allows an app to gain read only access to the user’s contacts.
- P4: WRITE_CONTACTS permits an app to gain write access to the user’s contacts.
- P5: READ_PHONE_NUMBERS is a subset of the P2 permission, and it was introduced with API level 26 (v8.0). This permission authorizes an app to obtain read access to the device’s phone numbers.
- P6: WRITE_SETTINGS is flagged as dangerous starting from API level 23 (v6). By granting this permission, the app gains read/write access to the system settings of the device.
- P7: GET_TASKS has been deprecated since API level 21 (v5). For the sake of backwards compatibility, this permission will still return some data, such as the app own data. As a result, an app can be allowed to retrieve information about currently and recently relevant running tasks. As with S4 and P3 permissions, according to [9], the current permission has been used by three different malware families.
- P8: READ_LOGS allows an app to gain read access to low-level system log files. As with S4, the current permission is not for use by third-party apps. Interestingly, the related work [9] have shown that this permission is frequently abused different malware families.
- P9: READ_CALENDAR allows an app to gain read access to the user’s calendar data.
- P10: WRITE_CALENDAR grants an app write access to the user’s calendar data.
3.1.6. Communication
- C1: RECEIVE_SMS is a hard-restricted permission. It allows an app to receive SMS.
- C2: READ_SMS permits an app to read SMS. It is hard-restricted.
- C3: SEND_SMS authorizes an app to send SMS, and it is hard-restricted as well.
- C4: RECEIVE_MMS is a hard-restricted permission. It allows an app to receive MMS.
- C5: READ_CALL_LOG grants an app read access to the user’s call log. It is hard-restricted.
- C6: CALL_PHONE allows an app to place a phone call without user confirmation.
- C7: USE_SIP permits an app to use the Session Initiation Protocol (SIP) service.
- C8: ANSWER_PHONE_CALLS was added in API level 26 (v8). It allows an app to answer phone calls.
- C9: PROCESS_OUTGOING_CALLS has been deprecated since API level 29 (v10). This is a hard-restricted permission, which authorizes an app to learn the number being dialed in the context of an outgoing call. This means that the app can redirect the call to a different number or abort the call completely.
3.2. Discussion
4. Low-Level Static Analysis
4.1. Network Security and Certificates
Discussion
4.2. Detected CWEs
- CWE-89: This perilous weakness, titled “Improper neutralization of special elements used in an SQL command (’SQL Injection’)” is classified as M7 in OWASP-10. It is present in cases where the app does not sanitize or improperly sanitizes input stemming from an upstream component, e.g., from a Web form for user authentication. All but two apps (95%) were found to be potentially vulnerable to this issue.
- CWE-250: Known as “Execution with Unnecessary Privileges”, this weakness refers to any unnecessary elevated privilege the software may hold when performing an operation. Only one app were found to be susceptible to the relevant weakness.
- CWE-276: The so-called “incorrect default permissions” weakness, appears if the app is granted unneeded read/write permissions. In such a case, any affected file can be potentially read or written by third parties. By referring to OWASP-10, this weakness is classified under M2, namely, “insecure data storage”. All apps, but one, were found to be susceptible to this weakness for at least one of the below reasons. The first, is related to the creation of a temporary file, which may contain sensitive data. This is a significant issue, since anyone is able to access folders that contain temp files. The second, represented by an additional plus sign, relates to the fact that the app requests read or write access to the external storage.
- CWE-295: It is titled “Improper certificate validation” and classified under M3 in OWASP-10. This situation occurs if the app is configured to trust an insecure or self-signed or any sort of certificate during a Transport Layer Security (TLS) handshake. As already pointed out, this weakness may enable an attacker to mount MitM attacks. About 50% of the examined apps were found to be susceptible to this weakness. An additional plus sign in the same column designates that this app is susceptible to the same weakness for their WebView implementation as well.
- CWE-312: It is known as “Cleartext storage of sensitive information”, and is classified as M9 in OWASP-10. When sensitive pieces of information, say, a username and/or password, are kept in cleartext form, anyone can read them. In some cases, such sensitive information may be statically placed in the code of the app, e.g., in a configuration file. As seen from Table 3, the totality of the apps were found to be susceptible to the current weakness.
- CWE-327: The “Use of a broken or risky cryptographic algorithm” is classified as M5 (“Insufficient Cryptography”) in OWASP-10. This weakness pertains to the usage of outdated hash or encryption algorithms. It is observed that all the examined apps, but one may potentially use at least one obsolete hash algorithm, namely either MD5, SHA-1, or both, and 24 of them—those having a value of “3”—support AES-ECB, which is not semantically secure.
- CWE-330: This weakness titled “Use of insufficiently random values” relates to the generation of predictable random values by an app. It typically means that the app employs an insecure random number generator. In the OWASP top 10 mobile risks list, this weakness ranks in the fifth position, namely “insufficient cryptography”. All apps were found to be susceptible to this weakness.
- CWE-502: The app can possibly use an untrustworthy way of deserializing data, which is known as a “Deserialization of Untrusted Data” weakness. In our case, one app were found to use a Jackson deserialization library, which could possibly deserialize data in an unsafe way. Favorably, only one app presents this weakness.
- CWE-532: The weakness, known as “Insertion of sensitive information into log file”, arises when a production app has enabled logging information to a file, while this feature may be of particular aid during the development stage of an app, it must be removed prior to the app is made publicly available. If not, an attacker could read these files and obtain any private information stored in them. All apps were found to be susceptible to this weakness.
- CWE-649: The “Reliance on Obfuscation or Encryption of Security-Relevant Inputs without Integrity Checking” weakness refers to the usage of cryptographic algorithms that require the validation of the encrypted data. Simply put, an app that uses such an algorithm must perform integrity checks to validate that these data are not tampered with. More than thirty of the examined apps rely on AES-CBC with PKCS5/PKCS7 padding, without validating their encrypted results. This means that these apps may be vulnerable to the so-called padding oracle attacks.
- CWE-749: The “Exposed dangerous method or function” weakness belongs to M1 (“Improper Platform Usage”) of OWASP-10. It can arm several major vulnerabilities depending on the case at hand, that is, the underlying vulnerable function. In our case, 29 of the examined apps were found to offer an insecure WebView implementation. The latter is used to display Web content as part of an activity layout. In the presence of this weakness, an attacker could possibly perform a MitM assault or even execute a Cross Site Scripting (XSS) injection. For further information about this issue, we refer the concerned reader to the “WebView” section of [19].
- CWE-919: The overarching “Weaknesses in Mobile Applications” view is related to CWE-749. In this case, both of them refer to the same issue, but for a different matter. Namely, we observed that 17 apps have enabled the remote WebView debugging. It is common knowledge that this particular mode must be disabled before deploying a production app. If not, anyone who can access an unlocked mobile device can easily acquire access to the app’s data.
Discussion
4.3. Tracker Analysis
- Crash analytics: Bugsnag, Bugly, Google CrashLytics, Instabug, Microsoft Visual Studio App Center Crashes.
- Analytics: Amazon Analytics, Dynatrace, Google Firebase, Google Analytics, Google Tag Manager, Keen, Metrics, Facebook Analytics, Microsoft Visual Studio App Center Analytics, New Relic, Optimizely, OpenTelemetry, Sensors Analytics, Splunk MINT, Tencent Stats.
- Identification: Facebook Login.
- Customer support: HelpShift.
- Ads: Amazon Ads, Flurry, Google AdMob.
- Location: AutoNavi, Mapbox.
- Marketing: Adobe Experience Cloud, Braze, Display, Facebook Places, Facebook Share, Huawei Mobile Services (HMS) Core, MixPanel, Salesforce Marketing Cloud, Segment, Swrve, Treasure Data, Urbanairship.
Discussion
4.4. Manifest Analysis
4.4.1. Services, Activities, and Broadcast Receivers
4.4.2. Other Issues
4.4.3. Discussion
4.5. Shared Library Analysis
Discussion
4.6. Outdated Software Components Analysis
Discussion
4.7. Taint Analysis
Discussion
5. Dynamic Analysis
5.1. Access Points
- ASUS Router—This app uses the Link Layer Discovery Protocol (LLDP) to learn about and subsequently communicate with new APs. Following the first successful user login through the AP’s web-based management interface, the app keeps in its cache the administrator’s credentials. That is, the cleartext credentials are stored in the datadatacom.asus.aihomedatabasesrouterprofile file. It is noteworthy that this app uses an HTTP connection to communicate with the AP.
- D-Link WiFi—This app uses an HTTPS connection to communicate with the router. It was perceived that the passphrase of the 2.4 GHz wireless interface is stored in plaintext form by the app in the datadatacom.dlink.dlinkwifishared_prefsROUTER_LIST.xml file.
- Linksys—For some imperceptible reason, this app was unable to discover the AP in the Wireless LAN network; note that the app uses the Internet Group Management Protocol (IGMP) to identify the AP. Therefore, to bind the AP with the app, we manually created an account. The communication between the app and the AP is done over HTTP. It was perceived that the datadatacom.cisco.connect.cloudapp_webviewLocal_Storageleveldb000005.ldb and datadatacom.cisco.connect.cloudapp_webviewLocal_Storageleveldb000026.ldb files contain in plaintext form both the 2.4 and 5 GHz Wi-Fi passphrases, with the former to also include the user’s email address. Another app file that stores the user’s email address in plaintext is the datadatacom.cisco.connect.cloudapp_webviewLocal_Storageleveldb000024.log. The auth token of the app (it is used to authenticate the user against the back-end) is stored in a JSON file; however, there is an expiration time of 7 days. No less important, the email address of the user can be also exposed through the Logcat command-line tool. Recall that Logcat can be executed either as an adb command or directly in a shell prompt of the emulator or connected device.
- Mi WiFi—It was observed that this app dumps sensitive information in the Logcat output. The exposed data include the session key the app uses to authenticate itself against the AP and the Wi-Fi passphrases for both the 2.4 and 5 GHz bands, all in plaintext form.
- Netgear Nighthawk—This app required the user to first create an account. Next, the app scans the wireless LAN network for a supported device; scanning is done over HTTP. After a device is found, the app prompts the user to enter their credentials for connecting to the AP’s web management interface. The analysis performed shows that the app holds in the datadatacom.netgear.netgearupshared_prefsDataModelLocalStorage.xml file the Wi-Fi passphrases for both bands in a plaintext form. Moreover, the “datadatacom.netgear.netgearupshared_prefsLAST_SESSION_PREFERENCE.xml” file includes the email address of the user. Through Logcat, the app exposes the Wi-Fi passphrases of both bands and the administrator’s username. Last but not least, the datadatacom.netgear.netgearupdatabasesnetgear_up_database.db database file stores the details of any device associated with the AP in the past. These pieces of data include MAC addresses in a plaintext form.
- TP-Link Tether—For using this app, the creation of a cloud-based user account is required. The app-to-AP communication is done over TLS v1.3 (cloud) and SSH v2 (AP). The analysis revealed that the datadatacom.tplink.tetherdatabasesgoogle_app_measurement.db database contains the Wi-Fi passphrases of both bands in plaintext form. The same situation regarding credential leakage is applicable to the datadatacom.tplink.tetherfiles.com.google.firebase.crashlyticslog-filescrashlytics-userlog-610FCD100211-0001-0C1D-A212A9CE2A17.temp temporary file the app creates. Moreover, the TP_TETHER_CACHE.DB database stores an MD5 hash of the administrator’s password. The auth token used to authenticate the app against the cloud service is stored in a JSON file in plaintext form; there is an expiration time of 7 days.
5.2. Smart TV
5.3. Wireless IP Cameras
- Mi Home—This app was created with the React Native open-source UI software framework, but in this case, the app’s React package file is left unprotected. This package file contains all dependencies, along with their versions, React needs during compilation time. As a result, one is able to observe every dependency the app uses by just reading the datadatacom.xiaomi.smarthomefilespluginrnsdk10058androidrawnode_modules_reactnative_package.json file, and subsequently searching for any open CVE IDs to exploit it. Another important remark is that the datadatacom.xiaomi.smarthomedatabasesmiio.dbdatabaseand datadatacom.xiaomi.smarthomeshared_prefspassport_ui.xml files contain the user’s email address in plaintext.
- mydlink—This app keeps the user’s email address in the datadatacom.dlink.mydlinkunifieddatabasesmyDB file. Furthermore, the app stores the auth token in a JSON file that expires after 7 days.
- TP-Link Tapo—This app stores the camera’s MAC address in the datadatacom.tplink.iotshared_prefsaria_sp.xml file. Moreover, the auth token value is kept in a JSON file, with the relevant token to expire after 7 days.
5.4. Smart Wearable
- Garmin Connect—Our analysis showed that the datadatacom.garmin.android.apps.connectmobiledatabasescache-database and datadatacom.garmin.android.apps.connectmobiledatabasesgcm_cache.db files contain several sensitive pieces of information in plaintext form, including activity and health data, say, completed steps, burned calories, etc. As with other apps, the app’s auth token is stored in a JSON file, which expires after a week.
- Fitbit—It stores an assortment of plaintext sensitive data in different files. First, the email address of the user is stored in the datadatacom.fitbit.FitbitMobileshared_prefsApplicationSavedState.xml file. The datadatacom.fitbit.FitbitMobileshared_prefsprofile_lite.prefs.xml file reveals the username. The app’s sleep pattern is kept in the datadatacom.fitbit.FitbitMobileshared_prefsSleepSavedState.xml file, while the datadatacom.fitbit.FitbitMobilecachedatacachehttps3A2F2Fstatic0.fitbit.com2Fcontent2Fassets2Fsurvey2Fbc6fb5fe-36b8-4aec-be31-8bc34566e54e2Fsurvey_en.json file includes among others the woman’s birth control options along with any menstruation cycle data. Numerous sensitive pieces of information are stored in the app’s database.
- Huawei Health—It keeps all data in encrypted format. Interestingly, after purchase, for being functional, the watch must be paired to the Huawei Health app. Strangely, however, the current version of this app in the Google Play Store is obsolete. Therefore, the user needs to first download the so-called AppGallery app (the latter is a third-party app store managed by Huawei), which in turn provides access to the latest version of the Huawei Health app.
- Mi Fit—This app keeps the user’s personal goals, say, steps, calories, etc., in its database in cleatext form. The datadatacom.xiaomi.hm.healthshared_prefskeeper.xml file stores a number of sensitive information, including the current weight of the user in plaintext form. Lastly, sensitive data related to a female user, such as the last menstruation time, are kept in the datadatacom.xiaomi.hm.healthshared_prefsFemaleHealth_3077573711.xml file.
- Samsung Health—Apart from Samsung products, this app can be used to manage assorted IoT devices. For this reason, it is able to communicate with other similar apps, such as Fitbit. For activating the app, the user is required to create an account. The app mandates two-factor user authentication through the provision of a mobile phone number. Several files created by this app, including datadatacom.sec.android.app.shealthshared_prefsblood_glucose_trend_data_pref_sync_file_name.xml, contain sensitive user information in plaintext, such as the recorded user’s glucose level, their sleep condition, and food consumption. The app’s auth token, with an expiration time of 7 days, is also stored in the datadatacom.sec.android.app.shealthfilesPersistedInstallation.W0RFRkFVTFRdMTo3OTU2MjEzMTc4OTc6YW5kcm9pZDozYWRjOTkyNjJhYWIxNjI4.json file.
5.5. Smart Assistant
- Amazon Alexa—As already pointed out, for dynamically analyzing this app, the Amazon Echo Dot was utilized. To do so, and prior to the Alexa app’s installation, as a prerequisite, the Google Play Store app and Genymotion’s OpenGApps utility were installed in the emulator. Amazon Alexa requires an active Bluetooth connection to achieve the initialization of the Echo Dot device. However, as already mentioned, due to the incompatibility of Genymotion to provide such a connectivity interface, the initial setup of the Smart hub was accomplished with the aid of a physical device. Amazon Alexa also allows the user to sign in to an existing Amazon account, and this feature was exploited to connect to the device through the app installed in the emulator. The analysis revealed that this app keeps the user’s email address in the datadatacom.amazon.dee.appdatabasescom.google.android.datatransport.event file. Even more, the auth token value is kept in a JSON file, with the token to expire after 7 days.
- Google Home—The Google Nest Mini device was utilized when dynamically analyzing this app. The Google Play Store app was requested to exist in the user’s smartphone from this app. To do so, the Open GAPPS project offered from Genymotion was utilized. Then, to transfer music files from the smartphone to the Google Nest Mini, we installed Spotify for streaming music to the device. This was done with the aid of Miracast over Google Home. The communication takes place over TCP, UDP, MDNS, AJP13, and TLS v1.2 protocols. A handful of app files and two databases contain the user’s email address in plaintext. The server’s session token (Google Nest) was stored in an XML file, expiring after 3.5 h. Lastly, the auth token of the app is stored in the datadatacom.google.android.apps.chromecast.appfilesPersistedInstallation.W0RFRkFVTFRdMTo0OTg1Nzk2MzM1MTQ6YW5kcm9pZDpjNTMzYTJlZjUyMGNjZWM5.json file. The latter token expires after 7 days.
- Samsung SmartThings—The dynamic analysis of this app was accomplished with the use of the Samsung Dryer DV90N62632W. For connecting to the dryer, this app requires the user to login to their Samsung account. Communication is established over the TLSv1.2 protocol. The analysis revealed three distinct database files, namely datadatacom.samsung.android.oneconnectdatabasesCommonData.db, datadatacom.samsung.android.oneconnectdatabasesInternalSettings.db and datadatacom.samsung.android.oneconnectdatabasesMobileAsThing.db containing user’s sensitive information in cleartext. Among these pieces of information were the user’s email address, the Universally Unique Identifier (UUID) of the device, the user’s name and surname, their date of birth, sex, and time/date of each session. Cloud server access and refresh tokens were stored in a datadatacom.samsung.android.oneconnectdatabasesInternalSettings.db file, expiring after 21 h. Lastly, the auth token of the app is stored in the datadatacom.samsung.android.oneconnectsharedprefscom.google.android.gms.appid.xml file. As with all the other apps, this token expires after 7 days.
5.6. Smart Bulb/Plug
- Yeelight—It was observed that this app establishes a TCP connection to transfer the relevant data. This app requires the user to login with a Xiaomi user account. Only the datadatacom.yeelight.cherryshared_prefsmiot.xml XML file contains sensitive data, including the device’s MAC address and its firmware version. The app’s auth token is stored in a JSON file, which expires after a week.
- Wipro—Most of the data communicated or stored by this app are in encrypted form. The only sensitive data exposed is an auth token stored in the datadatawipro.comfilesPersistedInstallation.W0RFRkFVTFRdMToxNzM1MTYyMTA4NDA6YW5kcm9pZDoxMDAyNjZmYmNiYWViNzE3.json JSON file, expiring after 7 days.
5.7. Discussion
6. Related Work
- The discovery of vulnerabilities through fuzz testing contacted against the IoT device [45] along with the accompanying app. Such works mostly target memory corruption vulnerabilities.
- Furnishing a more holistic picture of this area of research. This is done by concentrating only on very popular companion apps, i.e., those that present more than 1M downloads, and by examining the apps from multiple prisms, namely both static and dynamic, and in an in-depth manner. Namely, the outcomes of our analysis originate from a diversity of static and dynamic features, the latter after pairing the app to real-life IoT devices. In this regard, the methodology and the results offered by this work address the specific issue from a more comprehensive angle.
- Embracing IoT apps belonging to the most prevailing categories of devices, thus allowing for the extrapolation of useful and insightful comparisons between them.
7. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
Abbreviations
ADB | Android Debug Bridge |
AP | Access Point |
API | Application Programming Interface |
APK | Android Application Package |
APKiD | Android Application Identifier |
App | Application |
APT | App Transport Security |
BLE | Bluetooth Low Energy |
CVE | Common Vulnerabilities and Exposures |
CWE | Common Weakness Enumeration |
CWSS | Common Weakness Scoring System |
DEX | Dalvik Executable File |
DoS | Denial of Service |
ELF | Executable and Linkable Format binary |
GOT | Global Offset Table |
GUI | Graphical User Interface |
HTTP(S) | Hypertext Transfer Protocol (Secure) |
IGMP | Internet Group Management Protocol |
IoT | Internet Of Things |
IP | Internet Protocol |
Jadx | Dex to Java decompiler |
Json | JavaScript Object Notation |
LAN | Local Access Network |
LLDP | Link Layer Discovery Protocol |
MitM | Man-in-the-Middle |
MobSF | Mobile Security Framework |
MMS | Multimedia Messaging Service |
MUD | Manufacturer Usage Description |
NDK | Android Native Development Kit |
NX | No-Execute |
OWASP | Open Web Application Security Project |
RELRO | Relocation Read-Only |
RPATH | Run-Time Search Path |
SaaS | Software-as-a-Service |
SOHO | Small Office Home Office |
SMS | Short Message Service |
TLS | Transport Layer Security |
VM | Virtual Machine |
XML | Extensible Markup Language |
XSS | Cross-Site Scripting |
Appendix A
Appendix A.1. List of Identified Trackers per App
- ASUS Router: Google Firebase.
- D-Link WiFi: Google Firebase, CrashLytics.
- MyFRITZ!App: Google Firebase, CrashLytics.
- Huawei HiLink: Huawei (HMS) Core.
- Linksys: Google Firebase, CrashLytics, Splunk MINT.
- Mikrotik Pro: Google Firebase, CrashLytics.
- Mi Wifi: Tencent.
- Netgear Nighthawk: Google Firebase, Google Analytics, Google Tag Manager, CrashLytics, Instabug, Optimizely, Urbanairship.
- TP-Link Tether: Google Firebase, CrashLytics.
- Unify: Google Firebase, CrashLytics, New Relic.
- LGThinQ: Adobe Experience Cloud, Dynatrace, Google Firebase, Keen, CrashLytics, Facebook Login, Facebook Places, Facebook Share, Google AdMob, Salesforce Marketing Cloud, Treasure Data.
- Arlo: Google Firebase, CrashLytics, Swrve.
- HiLookVision: Bugly, Google Firebase.
- iVMS-4500: Flurry, Huawei (HMS) Core.
- Mi Home: AutoNavi, Bugly, Facebook Login, Facebook Analytics, Facebook Places, Facebook Share, Huawei (HMS) Core, Segment, Tencent.
- mydlink: Google Firebase, CrashLytics, Facebook Login.
- Wyze: Braze, Google Firebase, CrashLytics, Segment.
- Garmin Connect: Google Firebase, CrashLytics, Facebook Login, Facebook Share.
- Fitbit: Google Firebase, CrashLytics, Facebook Login, Facebook Analytics, Facebook Places, Facebook Share, MS Visual Studio Analytics, MS Visual Studio Crashes, MixPanel, Optimizely, Salesforce Marketing Cloud.
- Huawei Health: AutoNavi, Huawei (HMS) Core.
- Mi Fit: AutoNavi, Facebook Login, Facebook Places, Facebook Share.
- Polar Beat: Google Firebase, CrashLytics, Google AdMob.
- Polar Flow: Google Firebase, Google Analytics, Google Tag Manager, CrashLytics, Huawei (HMS) Core.
- realme Link: Google Firebase, CrashLytics, Facebook Login, Facebook Analytics, Facebook Share.
- Samsung Health: AutoNavi, Google Firebase, Google Analytics, Google Tag Manager.
- Suunto: Braze, Google Firebase, CrashLytics, Facebook Login, Facebook Share, HelpShift, Mapbox.
- Withings Health Mate: Google Firebase, CrashLytics, Huawei (HMS) Core.
- Zepp: AutoNavi, Facebook Login, Facebook Analytics, Facebook Share.
- Amazon Alexa: Amazon Ads, Amazon Analytics, Bugsnag, Google Firebase, Metrics.
- Google Home: Google Firebase, Google Analytics.
- Gosund: Google Firebase, Flurry, CrashLytics, Facebook Login, Facebook Analytics, Facebook Places, Facebook Share.
- Samsung SmartThings: MS Visual Studio Analytics, MS Visual Studio Crashes.
- Philips Hue: Braze, Google Firebase, CrashLytics.
- Yeelight: Google Firebase, CrashLytics.
- Wiz: Google Firebase, CrashLytics, Facebook Login, Facebook Analytics, Facebook Places, Facebook Share, HelpShift.
- Wipro: Google Firebase.
Appendix A.2. List of Identified Outdated Dependencies per App
- ASUS Router, OpenSSL 1.0.2h (10M/8H/3C).
- D-Link WiFi, jQuery 1.7.2 (1M).
- MyFRITZ!App, OpenSSL 1.0.2p (4M).
- Linksys, jQuery 3.0.0 (1H).
- Mikrotik Pro, SQLite 3.26.0 (2H/1M), and OpenSSL 1.1.1 (4M).
- Mi Wi-Fi, OpenSSL 1.0.1h (10M/8H/3C).
- Netgear Nighthawk, Python 2.7 (1M/2H/1C), and OpenCV 3.4.3 (2M/3H).
- TP-Link Tether, SQLite 3.28.0 (1M/1H), and OpenSSL 1.1.1b (1M).
- LGThinQ, libcurl 7.65.1 (1H/2C).
- RemoteNOW, expat 2.0.1 (1M/5H/1C).
- HiLookVision, Libjpeg 1.5.0 (1M/1H), and OpenSSL 1.0.1c (13M/13H/7C), 1.0.2k (6M), 1.0.2q (1M), and 1.0.2p (3M).
- iVMS-4500, OpenSSL 1.0.1c (13M/13H/7C), and 1.0.2k (6M).
- Mi Home, SQLite 3.28.0 (1M/1H), Libjpeg 1.5.0 (1M/1H), OpenSSL 1.1.1b (1M), 1.0.2k (6M), and 1.0.2n (3M), Python 2.7 (1M/2H/1C), libpng 1.6.22beta03 (1C), and 1.6.26 (1C), OpenCV 4.0.1 (2M/3H), zlib 1.2.8 (2H/2C).
- mydlink, OpenSSL 1.0.1g (10M/8H/3C).
- Wyze, SQLite 3.28.0 (1M/1H), OpenSSL 1.1.1b (1M).
- Garmin Connect, Python 2.7.12 (1M/2H/1C), and OpenCV 2.4.13 (2M/17H).
- Fitbit, SQLite 3.20.1 (1M/3H).
- Mi Fit, libjpeg 1.5.0 (1M/1H), and Python 2.7.12 (1M/2H/1C).
- Polar Flow, SQLite 3.31.0 (1M/1H).
- Amazon Alexa, SQLite 3.13.0 (1M/2H/1C).
- Samsung SmartThings, SQLite 3.8.11.1 (2M/2H/1C).
- Wiz, 1.0.2k (6M).
- Wipro, SQLite 3.31.0 (1M/1H), libjpeg 1.5.3 (1M/1H), OpenSSL 1.1.1g, and 1.1.1e (1M), Python 2.7.10 (2M/2H/2C), and 2.4.11 (2M/17H), ffmpeg 3.2.5 (11M/5H/1C).
References
- TP-Link Kasa. Available online: https://play.google.com/store/apps/details?id=com.tplink.kasa_android (accessed on 5 November 2021).
- StatCounter GlobalStats Mobile & Tablet Android Version Market Share Worldwide. Available online: https://gs.statcounter.com/android-version-market-share/mobile-tablet/worldwide (accessed on 5 November 2021).
- OWASP Mobile Security Testing Guide. Available online: https://owasp.org/www-project-mobile-security-testing-guide/ (accessed on 12 September 2021).
- Li, L.; Bissyandé, T.F.; Papadakis, M.; Rasthofer, S.; Bartel, A.; Octeau, D.; Klein, J.; Traon, L. Static analysis of android apps: A systematic literature review. Inf. Softw. Technol. 2017, 88, 67–95. [Google Scholar] [CrossRef] [Green Version]
- Wang, Y.; Xu, G.; Liu, X.; Mao, W.; Si, C.; Pedrycz, W.; Wang, W. Identifying vulnerabilities of SSL/TLS certificate verification in Android apps with static and dynamic analysis. J. Syst. Softw. 2020, 167, 110609. [Google Scholar] [CrossRef]
- Groß, T.; Ahmadova, M.; Müller, T. Analyzing Android’s File-Based Encryption: Information Leakage through Unencrypted Metadata. In Proceedings of the 14th International Conference on Availability, Reliability and Security, ARES ’19, Canterbury, UK, 26–29 August 2019; Association for Computing Machinery: New York, NY, USA, 2019. [Google Scholar] [CrossRef]
- Chatzoglou, E.; Kambourakis, G.; Kouliaridis, V. A Multi-Tier Security Analysis of Official Car Management Apps for Android. Future Internet 2021, 13, 58. [Google Scholar] [CrossRef]
- Kouliaridis, V.; Kambourakis, G.; Chatzoglou, E.; Geneiatakis, D.; Wang, H. Dissecting contact tracing apps in the Android platform. PLoS ONE 2021, 16, e0251867. [Google Scholar] [CrossRef]
- Pierazzi, F.; Mezzour, G.; Han, Q.; Colajanni, M.; Subrahmanian, V.S. A Data-Driven Characterization of Modern Android Spyware. ACM Trans. Manag. Inf. Syst. 2020, 11, 1–38. [Google Scholar] [CrossRef] [Green Version]
- Kumars, R.; Alazab, M.; Wang, W. A Survey of Intelligent Techniques for Android Malware Detection. In Malware Analysis Using Artificial Intelligence and Deep Learning; Springer: Berlin/Heidelberg, Germany, 2021. [Google Scholar] [CrossRef]
- Mobile Security Framework (MobSF). Available online: https://github.com/MobSF/Mobile-Security-Framework-MobSF (accessed on 12 September 2021).
- skylot/jadx: Dex to Java Decompiler—GitHub. Available online: https://github.com/skylot/jadx (accessed on 12 September 2021).
- Mabo, T.; Swar, B.; Aghili, S. A Vulnerability Study of Mhealth Chronic Disease Management (CDM) Applications (apps). In Trends and Advances in Information Systems and Technologies, Proceedings of the WorldCIST’18, Volume 1, Naples, Italy, 27–29 March 2018; Rocha, Á., Adeli, H., Reis, L.P., Costanzo, S., Eds.; Advances in Intelligent Systems and Computing; Springer: Berlin/Heidelberg, Germany, 2018; Volume 745, pp. 587–598. [Google Scholar] [CrossRef]
- Imai, H.; Kanaoka, A. Chronological Analysis of Source Code Reuse Impact on Android Application Security. J. Inf. Process. 2019, 27, 603–612. [Google Scholar] [CrossRef] [Green Version]
- Network Security Configuration. Available online: https://developer.android.com/training/articles/security-config (accessed on 12 September 2021).
- Research Results on SHA-1 Collisions. Available online: https://csrc.nist.gov/News/2017/Research-Results-on-SHA-1-Collisions (accessed on 12 September 2021).
- Duan, Y.; Zhang, M.; Bhaskar, A.V.; Yin, H.; Pan, X.; Li, T.; Wang, X.; Wang, X. Things You May Not Know About Android (Un)Packers: A Systematic Study based on Whole-System Emulation. In Proceedings of the 25th Annual Network and Distributed System Security Symposium, NDSS 2018, San Diego, CA, USA, 18–21 February 2018; The Internet Society: Reston, VA, USA, 2018. [Google Scholar] [CrossRef]
- 2020 CWE Top 25 Most Dangerous Software Weaknesses—CWE Mitre. Available online: https://cwe.mitre.org/top25/archive/2020/2020_cwe_top25.html (accessed on 12 September 2021).
- Google Official Developers Android Webpage—Security Tips. Available online: https://developer.android.com/training/articles/security-tips (accessed on 12 September 2021).
- Exodus Privacy. Available online: https://exodus-privacy.eu.org/en/ (accessed on 12 September 2021).
- Razaghpanah, A.; Nithyanand, R.; Vallina-Rodriguez, N.; Sundaresan, S.; Allman, M.; Kreibich, C.; Gill, P. Apps, Trackers, Privacy, and Regulators: A Global Study of the Mobile Tracking Ecosystem. In Proceedings of the 25th Annual Network and Distributed System Security Symposium, NDSS 2018, San Diego, CA, USA, 18–21 February 2018; The Internet Society: Reston, VA, USA, 2018. [Google Scholar]
- Vallina-Rodriguez, N.; Sundaresan, S.; Razaghpanah, A.; Nithyanand, R.; Allman, M.; Kreibich, C.; Gill, P. Tracking the Trackers: Towards Understanding the Mobile Advertising and Tracking Ecosystem. arXiv 2016, arXiv:1609.07190. [Google Scholar]
- Liu, X.; Liu, J.; Zhu, S.; Wang, W.; Zhang, X. Privacy Risk Analysis and Mitigation of Analytics Libraries in the Android Ecosystem. IEEE Trans. Mob. Comput. 2020, 19, 1184–1199. [Google Scholar] [CrossRef] [Green Version]
- App Manifest Overview|Android Developers. Available online: https://developer.android.com/guide/topics/manifest/manifest-intro (accessed on 12 September 2021).
- Compromising Android Applications with Intent Manipulation. Available online: https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/compromising-android-applications-with-intent-manipulation/ (accessed on 12 September 2021).
- Content Provider Basics|Android Developers. Available online: https://developer.android.com/guide/topics/providers/content-provider-basics (accessed on 12 September 2021).
- Understand Tasks and Back Stack|Android Developers. Available online: https://developer.android.com/guide/topics/manifest/activity-element#aff (accessed on 12 September 2021).
- Launch Mode|Android Developers. Available online: https://developer.android.com/guide/topics/manifest/activity-element (accessed on 12 September 2021).
- Hwang, S.; Lee, S.; Ryu, S. All about activity injection: Threats, semantics, detection, and defense. Softw. Pract. Exp. 2020, 50, 1061–1086. [Google Scholar] [CrossRef]
- Li, L.; Bissyandé, T.F.; Klein, J.; Traon, Y.L. An Investigation into the Use of Common Libraries in Android Apps. In Proceedings of the IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering, SANER 2016, Suita, Osaka, Japan, 14–18 March 2016; IEEE Computer Society: Washington, DC, USA, 2016; Volume 1, pp. 403–414. [Google Scholar]
- Taylor, V.F.; Beresford, A.R.; Martinovic, I. Intra-Library Collusion: A Potential Privacy Nightmare on Smartphones. arXiv 2017, arXiv:1708.03520. [Google Scholar]
- Backes, M.; Bugiel, S.; Derr, E. Reliable Third-Party Library Detection in Android and its Security Applications. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, Vienna, Austria, 24–28 October 2016; Weippl, E.R., Katzenbeisser, S., Kruegel, C., Myers, A.C., Halevi, S., Eds.; ACM: New York, NY, USA, 2016; pp. 356–367. [Google Scholar] [CrossRef]
- RELRO: RELocation Read-Only. Available online: https://medium.com/@HockeyInJune/relro-relocation-read-only-c8d0933faef3 (accessed on 12 September 2021).
- Derr, E.; Bugiel, S.; Fahl, S.; Acar, Y.; Backes, M. Keep me Updated: An Empirical Study of Third-Party Library Updatability on Android. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, CCS 2017, Dallas, TX, USA, 30 October–3 November 2017; Thuraisingham, B.M., Evans, D., Malkin, T., Xu, D., Eds.; ACM: New York, NY, USA, 2017; pp. 2187–2200. [Google Scholar] [CrossRef]
- Salza, P.; Palomba, F.; Nucci, D.D.; D’Uva, C.; Lucia, A.D.; Ferrucci, F. Do developers update third-party libraries in mobile apps? In Proceedings of the 26th Conference on Program Comprehension, ICPC 2018, Gothenburg, Sweden, 27–28 May 2018; Khomh, F., Roy, C.K., Siegmund, J., Eds.; ACM: New York, NY, USA, 2018; pp. 255–265. [Google Scholar] [CrossRef]
- Chatzoglou, E.; Kambourakis, G.; Kolias, C. How is your Wi-Fi connection today? DoS attacks on WPA3-SAE. J. Inf. Secur. Appl. 2022, 64, 103058. [Google Scholar] [CrossRef]
- Chatzoglou, E.; Kambourakis, G.; Kolias, C. Empirical Evaluation of Attacks Against IEEE 802.11 Enterprise Networks: The AWID3 Dataset. IEEE Access 2021, 9, 34188–34205. [Google Scholar] [CrossRef]
- Kolias, C.; Kambourakis, G.; Stavrou, A.; Gritzalis, S. Intrusion Detection in 802.11 Networks: Empirical Evaluation of Threats and a Public Dataset. IEEE Commun. Surv. Tutor. 2016, 18, 184–208. [Google Scholar] [CrossRef]
- Chatzoglou, E.; Kambourakis, G.; Kolias, C. WiF0: All Your Passphrase Are Belong to Us. Computer 2021, 54, 82–88. [Google Scholar] [CrossRef]
- Yu, M.; Zhuge, J.; Cao, M.; Shi, Z.; Jiang, L. A Survey of Security Vulnerability Analysis, Discovery, Detection, and Mitigation on IoT Devices. Future Internet 2020, 12, 27. [Google Scholar] [CrossRef] [Green Version]
- Meneghello, F.; Calore, M.; Zucchetto, D.; Polese, M.; Zanella, A. IoT: Internet of Threats? A Survey of Practical Security Vulnerabilities in Real IoT Devices. IEEE Internet Things J. 2019, 6, 8182–8201. [Google Scholar] [CrossRef]
- Kambourakis, G.; Kolias, C.; Geneiatakis, D.; Karopoulos, G.; Makrakis, G.M.; Kounelis, I. A State-of-the-Art Review on the Security of Mainstream IoT Wireless PAN Protocol Stacks. Symmetry 2020, 12, 579. [Google Scholar] [CrossRef] [Green Version]
- Wang, X.; Sun, Y.; Nanda, S.; Wang, X. Looking from the Mirror: Evaluating IoT Device Security through Mobile Companion Apps. In Proceedings of the 28th USENIX Security Symposium, USENIX Security 2019, Santa Clara, CA, USA, 14–16 August 2019; Heninger, N., Traynor, P., Eds.; USENIX Association: Berkeley, CA, USA, 2019; pp. 1151–1167. [Google Scholar]
- Junior, D.M.; Melo, L.; Lu, H.; d’Amorim, M.; Prakash, A. A Study of Vulnerability Analysis of Popular Smart Devices Through Their Companion Apps. In Proceedings of the 2019 IEEE Security and Privacy Workshops, SP Workshops 2019, San Francisco, CA, USA, 19–23 May 2019; IEEE: Piscataway, NJ, USA, 2019; pp. 181–186. [Google Scholar] [CrossRef]
- Chen, J.; Diao, W.; Zhao, Q.; Zuo, C.; Lin, Z.; Wang, X.; Lau, W.C.; Sun, M.; Yang, R.; Zhang, K. IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based Fuzzing. In Proceedings of the 25th Annual Network and Distributed System Security Symposium, NDSS 2018, San Diego, CA, USA, 18–21 February 2018; The Internet Society: Reston, VA, USA, 2018. [Google Scholar]
- Kumar, R.; Wang, W.; Kumar, J.; Zakria; Yang, T.; Ali, W.; Sharif, A. IoTMalware: Android IoT Malware Detection based on Deep Neural Network and Blockchain Technology. arXiv 2021, arXiv:2102.13376. [Google Scholar]
- Lear, E.; Droms, R.; Romascanu, D. Manufacturer Usage Description Specification. RFC 8520, 2019. Available online: https://datatracker.ietf.org/doc/html/rfc8520 (accessed on 12 September 2021).
App Name | Examined ver. | Popularity | Connectivity |
---|---|---|---|
AP | |||
ASUS Router | 2.0.0.6.28 | 1M+ | Wi-Fi |
D-Link WiFi | 1.4.4 build 1 | 1M+ | Wi-Fi |
Huawei HiLink | 9.0.1.323 | 10M+ | Wi-Fi |
Linksys | 2.16.1 | 1M+ | Wi-Fi |
MikroTik Pro | 1.3.20 | 1M+ | Wi-Fi |
Mi Wi-Fi | 4.2.9 | 1M+ | Wi-Fi |
Netgear Nighthawk | 2.11.5.1716 | 1M+ | Wi-Fi |
TP-Link Tether | 3.4.28 | 10M+ | Wi-Fi |
UniFi Network | 3.9.3 | 1M+ | Wi-Fi |
Smart TV | |||
LG ThinQ | 3.6.12110 | 10M+ | Wi-Fi |
RemoteNOW | 5.01.011 | 1M+ | Wi-Fi |
Wireless IP cameras | |||
Arlo | 3.5.4_28395 | 1M+ | Wi-Fi |
HiLookVision | 3.10.1.0924 | 5M+ | Wi-Fi |
iVMS-4500 | 4.7.12 | 10M+ | Wi-Fi |
Mi Home | 6.10.709 | 10M+ | Wi-Fi |
mydlink | 2.5.0 | 1M+ | Wi-Fi |
mydlink Lite | 3.8.14 | 1M+ | Wi-Fi |
Nest | 5.66.0.7 | 5M+ | Wi-Fi |
TP-Link Tapo | 2.4.25 | 1M+ | Wi-Fi |
Wyze | 2.24.23 | 1M+ | Wi-Fi |
Smart wearable | |||
Galaxy Wearable (Samsung Gear) | 2.2.17082261 | 500M+ | Bluetooth |
Garmin Connect | 4.47 | 10M+ | Bluetooth |
Fitbit | 3.18 | 50M+ | Bluetooth |
Huawei Health | 12.0.8.300 | 100M+ | Bluetooth |
Mi Fit | 5.3.2 | 50M+ | Bluetooth |
Polar Beat: Running & Fitness | 3.5.2 | 1M+ | Bluetooth |
Polar Flow – Sync & Analyze | 6.6.0 | 5M+ | Bluetooth |
realme Link | 1.2.480.53 | 1M+ | Bluetooth |
Samsung Health | 6.18.8.005 | 1B+ | Bluetooth |
Suunto | 4.45.2 | 1M+ | Bluetooth |
Withings Health Mate | 5.6.1 | 1M+ | Bluetooth |
Zepp | 6.1.4-play | 5M+ | Bluetooth |
Smart assistant | |||
Amazon Alexa | 2.2.422256.0 | 50M+ | Wi-Fi/Bluetooth |
Google Home | 2.42.1.14 | 100M+ | Wi-Fi/Bluetooth |
Gosund - include NiteBird | 4.4.3 | 1M+ | Wi-Fi/Bluetooth |
MyFRITZ!App | 2.17.3 (16362) Beta | 1M+ | Wi-Fi |
Samsung SmartThings | 1.7.70.21 | 500M+ | Wi-Fi/Bluetooth |
Smart bulb/plug | |||
Philips Hue | 4.4.0 | 5M+ | Wi-Fi/Bluetooth |
Yeelight | 3.3.06 | 1M+ | Wi-Fi/Bluetooth |
Wiz | 1.23.1 | 1M+ | Wi-Fi/Bluetooth |
Wipro Next Smart Home | 3.22.0 | 1M+ | Wi-Fi/Bluetooth |
App | Utility | Authentication | Location | Storage | Phone | Communication | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
U1 | U2 | U3 | U4 | A1 | A2 | A3 | A4 | L1 | L2 | L3 | L4 | S1 | S2 | S3 | S4 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 | C9 | Total | |
AP | ||||||||||||||||||||||||||||||||||||
ASUS Router | + | + | + | + | + | + | + | 7 | ||||||||||||||||||||||||||||
D-Link WiFi | + | + | + | 3 | ||||||||||||||||||||||||||||||||
Huawei HiLink | + | + | + | + | + | + | + | + | + | + | + | 11 | ||||||||||||||||||||||||
Linksys | + | + | + | + | + | 5 | ||||||||||||||||||||||||||||||
Mikrotik Pro | + | + | 2 | |||||||||||||||||||||||||||||||||
Mi Wi-Fi | + | + | + | + | + | + | + | + | + | + | + | + | + | 13 | ||||||||||||||||||||||
Netgear Nighthawk | + | + | + | + | + | + | + | + | 8 | |||||||||||||||||||||||||||
TP-Link Tether | + | + | + | + | + | 5 | ||||||||||||||||||||||||||||||
UniFi Network | + | + | + | + | 4 | |||||||||||||||||||||||||||||||
Smart TV | ||||||||||||||||||||||||||||||||||||
LG ThinQ | + | + | + | + | + | + | + | + | + | + | + | + | + | 13 | ||||||||||||||||||||||
RemoteNOW | + | + | + | + | + | + | + | + | + | + | 10 | |||||||||||||||||||||||||
Wireless IP cameras | ||||||||||||||||||||||||||||||||||||
Arlo | + | + | + | + | + | + | + | + | + | + | + | 11 | ||||||||||||||||||||||||
HiLookVision | + | + | + | + | + | + | + | + | + | 9 | ||||||||||||||||||||||||||
iVMS-4500 | + | + | + | + | + | + | + | + | + | + | + | 11 | ||||||||||||||||||||||||
Mi Home | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | 16 | |||||||||||||||||||
mydlink | + | + | + | + | + | + | + | + | + | + | 10 | |||||||||||||||||||||||||
mydlink lite | + | + | + | + | + | + | + | 7 | ||||||||||||||||||||||||||||
Nest | + | + | + | + | + | + | + | + | 8 | |||||||||||||||||||||||||||
TP-Link Tapo | + | + | + | + | + | + | + | 7 | ||||||||||||||||||||||||||||
Wyze | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | 18 | |||||||||||||||||
Smart wearable | ||||||||||||||||||||||||||||||||||||
Galaxy Wearable | + | + | + | + | + | + | + | + | + | 9 | ||||||||||||||||||||||||||
Garmin Connect | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | 17 | ||||||||||||||||||
Fitbit | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | 16 | |||||||||||||||||||
Huawei Health | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | 22 | |||||||||||||
Mi Fit | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | 17 | ||||||||||||||||||
Polar Beat | + | + | + | + | + | + | 6 | |||||||||||||||||||||||||||||
Polar Flow | + | + | + | + | + | + | + | + | + | + | + | + | + | 13 | ||||||||||||||||||||||
realme Link | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | 18 | |||||||||||||||||
Samsung Health | + | + | + | + | + | + | + | + | + | + | + | + | 12 | |||||||||||||||||||||||
Suunto | + | + | + | + | + | + | + | + | + | + | 10 | |||||||||||||||||||||||||
Withings Health Mate | + | + | + | + | + | + | + | + | + | + | + | 11 | ||||||||||||||||||||||||
Zepp | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | 18 | |||||||||||||||||
Smart assistant | ||||||||||||||||||||||||||||||||||||
Amazon Alexa | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | 21 | ||||||||||||||
Google Home | + | + | + | + | + | + | + | 7 | ||||||||||||||||||||||||||||
Gozund | + | + | + | + | + | + | + | + | + | 9 | ||||||||||||||||||||||||||
MyFRITZ!App | + | + | 2 | |||||||||||||||||||||||||||||||||
Samsung SmartThings | + | + | + | + | + | + | + | + | + | + | + | + | + | 13 | ||||||||||||||||||||||
Smart bulb/plug | ||||||||||||||||||||||||||||||||||||
Philips Hue | + | + | + | 3 | ||||||||||||||||||||||||||||||||
Yeelight | + | + | + | + | + | + | + | + | + | + | + | + | + | 13 | ||||||||||||||||||||||
Wiz | + | + | + | + | + | 5 | ||||||||||||||||||||||||||||||
Wipro | + | + | + | + | + | + | 6 | |||||||||||||||||||||||||||||
TOTAL | 32 | 24 | 1 | 9 | 8 | 7 | 22 | 8 | 39 | 32 | 18 | 1 | 33 | 38 | 12 | 4 | 26 | 12 | 18 | 2 | 2 | 10 | 14 | 4 | 3 | 3 | 2 | 4 | 6 | 1 | 11 | 10 | + | 8 | + | – |
App | Janus | Network Security | APK Signing | Packers | 89 | 250 | 276 | 295 | 312 | 327 | 330 | 502 | 532 | 649 | 749 | 919 | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AP | |||||||||||||||||
ASUS Router | + | • | + | ++ | ++ | + | 3 | + | + | 13 | |||||||
D-Link WiFi | + | + | + | 3 | + | + | + | 9 | |||||||||
Huawei HiLink | + | + | + | + | ++ | + | 3 | + | + | + | + | 14 | |||||
Linksys | + | + | ++ | + | 3 | + | + | + | + | 12 | |||||||
Mikrotik Pro | + | + | ++ | + | 2 | + | + | 9 | |||||||||
Mi Wi-Fi | + | •, ⊠ | + | + | ++ | + | 3 | + | + | + | 13 | ||||||
Netgear Nighthawk | + | + | + | ++ | + | + | 3 | + | + | + | + | + | 15 | ||||
TP-Link Tether | + | • | + | + | ++ | + | + | 3 | + | + | + | + | 15 | ||||
Unify Network | + | + | + | ++ | + | 3 | + | + | 11 | ||||||||
Smart TV | |||||||||||||||||
LGThinQ | • | + | + | ++ | ++ | + | 3 | + | + | + | + | 15 | |||||
RemoteNOW | + | • | + | + | ++ | + | 2 | + | + | + | + | 13 | |||||
Wireless IP cameras | |||||||||||||||||
Arlo | + | + | + | ++ | + | + | 2 | + | + | + | + | + | 14 | ||||
HiLookVision | + | • | + | + | ++ | ++ | + | 3 | + | + | + | + | 16 | ||||
iVMS-4500 | •, ⊠ | + | ++ | + | + | 3 | + | + | + | + | + | 15 | |||||
Mi Home | + | •, ⊠, ⊞ | + | ++ | + | ++ | ++ | + | 3 | + | + | + | + | + | 21 | ||
mydlink | + | + | + | ++ | + | 3 | + | + | + | + | 13 | ||||||
mydlink lite | + | + | + | + | + | + | 3 | + | + | 11 | |||||||
Nest | + | + | ++ | + | 2 | + | + | + | 10 | ||||||||
TP-Link Tapo | + | • | + | + | ++ | + | 3 | + | + | + | + | + | 15 | ||||
Wyze | •, ⊠ | + | ++ | + | + | 3 | + | + | + | + | + | 15 | |||||
Smart wearable | |||||||||||||||||
Galaxy Wearable | + | + | + | + | + | 1 | + | + | 18 | ||||||||
Garmin Connect | + | ⊛ | + | ++ | + | + | 2 | + | + | + | + | 13 | |||||
Fitbit | ⊛, ⊠, ⊞ | + | + | ++ | + | 2 | + | + | + | + | + | 15 | |||||
Huawei Health | + | + | + | + | ++ | ++ | + | 3 | + | + | + | + | + | 18 | |||
Mi Fit | + | •, ⊠ | + | + | + | ++ | ++ | + | 3 | + | + | + | + | 18 | |||
Polar Beat | + | + | + | + | + | + | + | 17 | |||||||||
Polar Flow | + | + | + | ++ | + | 2 | + | + | + | + | 12 | ||||||
realme Link | + | + | + | ++ | + | + | 3 | + | + | + | + | + | 15 | ||||
Samsung Health | + | + | + | ++ | + | 3 | + | + | + | + | + | 14 | |||||
Suunto | + | ⊛ | + | + | ++ | + | 2 | + | + | 11 | |||||||
Withings Health Mate | + | + | ++ | + | 2 | + | + | + | 10 | ||||||||
Zepp | + | ⊛, ⊠, ⊞, ⊡ | + | + | + | ++ | ++ | + | 3 | + | + | + | + | + | 21 | ||
Smart assistant | |||||||||||||||||
Amazon Alexa | + | + | ++ | + | + | 1 | + | + | + | + | 11 | ||||||
Google Home | + | • | + | ++ | + | + | 2 | + | + | + | + | 13 | |||||
Gosund | + | • | + | ++ | + | 1 | + | + | + | + | 11 | ||||||
MyFRITZ!App | + | + | + | ++ | + | 2 | + | + | + | 11 | |||||||
Samsung SmartThings | + | •, ⊠ | + | + | ++ | + | 3 | + | + | + | + | + | 18 | ||||
Smart bulb/plug | |||||||||||||||||
Philips Hue | + | + | + | ++ | + | 2 | + | + | + | 11 | |||||||
Yeelight | + | + | + | + | 3 | + | + | + | + | + | 12 | ||||||
Wiz | + | •, ⊛, ⊠ | + | ++ | + | 2 | + | + | + | + | 14 | ||||||
Wipro | + | • | + | ++ | + | 3 | + | + | + | + | + | 14 | |||||
Total | 36 | 20 | 27 | 4 | 39 | 1 | 40 | 19 | 41 | 40 | 41 | 1 | 41 | 31 | 27 | 16 | – |
App | Intent-Filter On | Intent-Filter Off | Content | Task | Launch | Cleartext | Backup | Priority | SMS | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Service | Broadcast | Activity | Service | Broadcast | Activity | ||||||||
AP | |||||||||||||
ASUS Router | 1 | 1 | 1 | ||||||||||
D-Link WiFi | 2 | 1 | 1 | 1 | + | + | |||||||
Huawei HiLink | 4 | 2 | 1 | 1 | 2 | + | |||||||
Linksys | 2 | 1 | + | ||||||||||
Mikrotik Pro | 1 | 1 | 1 | + | |||||||||
Mi Wi-Fi | 6 | 3 | 1 | 3 | 1 | 1 | |||||||
Netgear Nighthawk | 1 | 2 | 2 | 1 | 1 | + | |||||||
TP-Link Tether | 1 | 2 | 3 | ||||||||||
UniFi Network | 1 | + | + | ||||||||||
Smart TV | |||||||||||||
LG ThinQ | 2 | 6 | 15 | 1 | 1 | 2 | |||||||
RemoteNOW | 4 | 8 | 2 | 3 | 6 | + | + | ||||||
Wireless IP cameras | |||||||||||||
Arlo | 1 | 2 | 3 | 1 | 1 | 2 | |||||||
HiLookVision | 14 | ||||||||||||
iVMS-4500 | 2 | 6 | 4 | 1 | 3 | 2 | + | ||||||
Mi Home | 2 | 7 | 17 | 8 | 10 | 28 | 2 | 26 | 72 | + | |||
mydlink | 1 | 1 | 1 | 1 | 3 | + | |||||||
mydlink lite | 2 | 2 | 2 | ||||||||||
Nest | 3 | 2 | 1 | 2 | 1 | ||||||||
TP-Link Tapo | 2 | ||||||||||||
Wyze | 4 | 1 | 1 | 1 | + | ||||||||
Smart wearable | |||||||||||||
Galaxy Wearable | 2 | 1 | 1 | 1 | 2 | + | |||||||
Garmin Connect | 1 | 3 | 11 | 5 | 1 | 5 | 5 | ||||||
Fitbit | 1 | 5 | 6 | 1 | 2 | 1 | |||||||
Huawei Health | 22 | 19 | 31 | + | |||||||||
Mi Fit | 4 | 13 | 4 | 6 | 8 | 2 | 2 | 49 | + | ||||
Polar Beat | 1 | 1 | |||||||||||
Polar Flow | 3 | 1 | 1 | 2 | |||||||||
realme Link | 1 | 1 | 1 | 1 | + | ||||||||
Samsung Health | 2 | 4 | 2 | 2 | 8 | 9 | 7 | 3 | + | + | |||
Suunto | 1 | 9 | 3 | 1 | 3 | ||||||||
Withings Health Mate | 1 | 4 | 3 | 2 | 1 | 4 | 1 | ||||||
Zepp | 3 | 5 | 11 | 13 | 5 | 8 | 4 | 1 | + | ||||
Smart assistant | |||||||||||||
Amazon Alexa | 4 | 15 | 17 | 10 | 8 | 6 | 3 | 9 | |||||
Google Home | 12 | 6 | 3 | + | + | ||||||||
Gozund | 1 | 7 | 3 | + | |||||||||
MyFRITZ!App | 12 | 10 | + | ||||||||||
Samsung SmartThings | 2 | 3 | 3 | 2 | 3 | 18 | 6 | 5 | |||||
Smart bulb/plug | |||||||||||||
Philips Hue | 3 | 1 | 1 | + | |||||||||
Yeelight | 3 | 3 | 5 | 1 | 1 | 4 | 4 | + | |||||
Wiz | 2 | 3 | 1 | 5 | 3 | ||||||||
Wipro | 2 | 3 | 5 | 3 | 35 |
App | SQLite | libjpeg | OpenSSL | jQuery | Python | libpng | OpenCV | libcurl | zlib | expat | FFmpeg | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|
AP | ||||||||||||
ASUS Router | + | 1 | ||||||||||
D-Link WiFi | + | 1 | ||||||||||
Linksys | + | 1 | ||||||||||
Mikrotik Pro | + | + | 2 | |||||||||
Mi Wi-Fi | + | 1 | ||||||||||
Netgear Nighthawk | + | + | 2 | |||||||||
TP-Link Tether | + | + | 2 | |||||||||
Smart TV | ||||||||||||
LGThinQ | + | 1 | ||||||||||
RemoteNOW | + | 1 | ||||||||||
Wireless IP cameras | ||||||||||||
HiLookVision | + | ++++ | + | 6 | ||||||||
iVMS-4500 | ++ | 2 | ||||||||||
Mi Home | + | + | +++ | + | ++ | + | + | 10 | ||||
mydlink | + | + | 2 | |||||||||
Wyze | + | + | 2 | |||||||||
Smart wearable | ||||||||||||
Garmin Connect | + | + | 2 | |||||||||
Fitbit | + | 1 | ||||||||||
Mi Fit | + | + | + | + | 4 | |||||||
Polar Flow | + | 1 | ||||||||||
Smart assistant | ||||||||||||
Alexa | + | + | + | 3 | ||||||||
MyFRITZ!App | + | 1 | ||||||||||
Samsung SmartThings | + | 1 | ||||||||||
Smart bulb/plug | ||||||||||||
Wiz | + | 1 | ||||||||||
Wipro | + | + | ++ | + | + | + | 7 | |||||
Total | 9 | 5 | 14 | 3 | 4 | 2 | 5 | 1 | 1 | 1 | 1 | - |
App | Tested Device | Cleartext Traffic | CSIF | Logcat Leak | Auth Token Leak | File Leak | Obsolete Alg. |
---|---|---|---|---|---|---|---|
AP | |||||||
ASUS Router | RT-AX88U | + | + | ||||
D-Link WiFi | DIR-X1860 | + | |||||
Linksys | MR7350 | + | + | + | + | ||
Mi Wifi | AX1800 | + | |||||
Netgear Nighthawk | RAX40 | + | + | + | |||
TP-Link Tether | AX10v1 | + | + | + | |||
Smart TV | |||||||
RemoteNOW | – | + | |||||
Wireless IP cameras | |||||||
Mi Home | Sec. Cam. 1080p | + | + | ||||
mydlink | DCS-6500LH | + | + | ||||
TP-Link Tapo | C200 | + | + | ||||
Smart wearable | |||||||
Garmin Connect | – | + | + | ||||
Fitbit | – | + | |||||
Huawei Health | – | ||||||
Mi Fit | – | + | |||||
Samsung Health | – | + | + | ||||
Smart assistant | |||||||
Amazon Alexa | Amazon Echo Dot 3rd gen. | + | + | ||||
Google Home | Google Nest Mini 2nd | + | + | ||||
Samsung SmartThings | Samsung Dryer DV90N62632W | + | + | ||||
Smart bulb/plug | |||||||
Yeelight | Smart LED Bulb 1S | + | + | ||||
Wipro | – | + |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Chatzoglou, E.; Kambourakis, G.; Smiliotopoulos, C. Let the Cat out of the Bag: Popular Android IoT Apps under Security Scrutiny. Sensors 2022, 22, 513. https://doi.org/10.3390/s22020513
Chatzoglou E, Kambourakis G, Smiliotopoulos C. Let the Cat out of the Bag: Popular Android IoT Apps under Security Scrutiny. Sensors. 2022; 22(2):513. https://doi.org/10.3390/s22020513
Chicago/Turabian StyleChatzoglou, Efstratios, Georgios Kambourakis, and Christos Smiliotopoulos. 2022. "Let the Cat out of the Bag: Popular Android IoT Apps under Security Scrutiny" Sensors 22, no. 2: 513. https://doi.org/10.3390/s22020513
APA StyleChatzoglou, E., Kambourakis, G., & Smiliotopoulos, C. (2022). Let the Cat out of the Bag: Popular Android IoT Apps under Security Scrutiny. Sensors, 22(2), 513. https://doi.org/10.3390/s22020513