0/62

Threat

com.touchtype.swiftkey

Microsoft SwiftKey Keyboard

Analyzed on 2022-02-05T18:36:35.311922

12

permissions

37

activities

22

services

14

receivers

68

domains

File sums

MD5 d74f6baac4da6eeea4fc0622d3146d11
SHA1 c5de75b376341b1334bf6f1f8288febfb5c2ad86
SHA256 90e588af7adf1ebd764a39b258660c1ac459db7b51c1ac08acfd2a78f227dcd7
Size 10.17MB

APKiD

Information computed with APKiD.

/tmp/tmpgf58dz26!classes.dex
anti_vm
  • Build.FINGERPRINT check
  • Build.MODEL check
  • Build.MANUFACTURER check
  • Build.TAGS check
  • SIM operator check
  • network operator name check
compiler
  • r8
/tmp/tmpgf58dz26!classes2.dex
compiler
  • r8 without marker (suspicious)

SSdeep

Information computed with ssdeep.

APK file 196608:FM+7npp+V+pK0/LXvTC8fUfN0hHe1oO0QQASjjUgxFW+Dni2tdwTIhE:FfVwV47/LXvO8cfShU031jUYggNhE
Manifest 768:FJ7y7uoH/iqJO/UQtoTmOh8xJ3yOQpcKV1jpj3RiXLCM+yrM1K4VnNZLjbpRja9R:…
classes.dex 98304:jBcCyJPB/bAAo/lZQpdwXhNyM4fRTgHJkV3r0D+bA4:1cCyJPCZQpdw+pTSc0+b…
classes2.dex 12288:SDSLyWmwYAwc/dxNC+h344yiir/85jH6rmagOstt+RETE0GoCeI9SdHHVGajRBz…

Dexofuzzy

Information computed with Dexofuzzy.

APK file 6144:mUK7e3U/dTh8LWW6WI2/xELba9j6XvZJyxzWm1fmfqlMGhtBWx9TsSeTrl59Z+WV…
classes.dex 6144:mUK7e3U/dTh8LWW6WI2/xELba9j6XvZJyxzWm1fmfqlMGhtBWx9TsSeTro:U70U1…
classes2.dex 1536:G5LTwL2580T4unwa9cn+VUDfPt8Y/ucdy:0Twa580ZwV+V+F86usy

APK details

Information computed with AndroGuard and Pithus.

Package com.touchtype.swiftkey
App name Microsoft SwiftKey Keyboard
Version name 7.8.0.5
Version code 956301392
SDK 21 - 30
UAID 1bfa2535f100cade8a18e78eb84996313fdec456
Signature Signature V1 Signature V2 Signature V3
Frosting Frosted
Blocks found within V2 signature:
  • 0x7109871a: Unknown
  • 0xf05368c0: Unknown
  • 0x6dff800d: Source stamp V2 X509 cert
  • 0x2146444e: Google metadata
  • 0x42726577: Verity padding

Certificate details

Information computed with AndroGuard.

MD5 3ab046d8168b14041a6263e728195eca
SHA1 d5748003cd4bf73c7a468eeb36caec84b7785c26
SHA256 0ad0088dfb347a8a515f2d13b17a561d5c3f9773438a207241bae7483c99b76f
Issuer Common Name: TouchType Limited, Organizational Unit: TouchType Limited, Organization: TouchType Limited, Locality: London, State/Province: London, Country: GB
Not before 2010-07-12T17:27:30+00:00
Not after 2060-06-29T17:27:30+00:00

Manifest analysis

Information computed with MobSF.

High Service (com.touchtype.KeyboardService) is Protected by a permission, but the protection level of the permission should be checked.
Permission: android.permission.BIND_INPUT_METHOD [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Activity-Alias (com.touchtype.LauncherActivityIcon) is not Protected.An intent-filter exists.
An Activity-Alias is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. The presence of intent-filter indicates that the Activity-Alias is explicitly exported.
High Activity (com.touchtype.deeplinking.DeepLinkingHandlerActivity) is not Protected.An intent-filter exists.
An Activity is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. The presence of intent-filter indicates that the Activity is explicitly exported.
High TaskAffinity is set for Activity
(com.touchtype.extendedpanel.websearch.EdgeCustomTabCommandSenderActivity)
If taskAffinity is set, then other application could read the Intents sent to Activities belonging to another task. Always use the default setting keeping the affinity as the package name in order to prevent sensitive information inside sent or received Intents from being read by another application.
High TaskAffinity is set for Activity
(com.touchtype.extendedpanel.websearch.WebSearchExtendedPanelActivity)
If taskAffinity is set, then other application could read the Intents sent to Activities belonging to another task. Always use the default setting keeping the affinity as the package name in order to prevent sensitive information inside sent or received Intents from being read by another application.
High TaskAffinity is set for Activity
(com.touchtype.extendedpanel.websearch.WebPageExtendedPanelActivity)
If taskAffinity is set, then other application could read the Intents sent to Activities belonging to another task. Always use the default setting keeping the affinity as the package name in order to prevent sensitive information inside sent or received Intents from being read by another application.
High TaskAffinity is set for Activity
(com.touchtype.richcontenteditor.RichContentEditorActivity)
If taskAffinity is set, then other application could read the Intents sent to Activities belonging to another task. Always use the default setting keeping the affinity as the package name in order to prevent sensitive information inside sent or received Intents from being read by another application.
High Broadcast Receiver (com.touchtype.InstallReferrerReceiver) is not Protected. [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Broadcast Receiver (com.touchtype_fluency.service.receiver.ConnectivityReceiver) is not Protected. [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Broadcast Receiver (com.touchtype.PackageReplacedReceiver) is not Protected. [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Broadcast Receiver (com.touchtype.BootReceiver) is not Protected. [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Broadcast Receiver (com.touchtype.LocaleChangeReceiver) is not Protected. [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Broadcast Receiver (com.touchtype.SimStateReceiver) is not Protected. [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Broadcast Receiver (com.touchtype.telemetry.TelemetryExposeReceiver) is not Protected. [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Broadcast Receiver (com.touchtype.telemetry.TelemetryExposeReceiver$TelemetryExposeDoneReceiver) is not Protected. [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Broadcast Receiver (com.microsoft.tokenshare.AccountChangeReceiver) is not Protected.An intent-filter exists.
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. The presence of intent-filter indicates that the Broadcast Receiver is explicitly exported.
High Service (com.google.android.gms.auth.api.signin.RevocationBoundService) is Protected by a permission, but the protection level of the permission should be checked.
Permission: com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Service (com.google.firebase.messaging.FirebaseMessagingService) is not Protected. [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Broadcast Receiver (com.google.firebase.iid.FirebaseInstanceIdReceiver) is Protected by a permission, but the protection level of the permission should be checked.
Permission: com.google.android.c2dm.permission.SEND [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Service (com.google.firebase.iid.FirebaseInstanceIdService) is not Protected. [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Service (com.google.android.play.core.assetpacks.AssetPackExtractionService) is not Protected. [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High Service (com.microsoft.tokenshare.TokenSharingService) is not Protected. [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.

Browsable activities

Information computed with MobSF.

com.touchtype.deeplinking.DeepLinkingHandlerActivity

Hosts: @string/deep_links_scheme

Schemes: https:// swiftkey:// com.touchtype.swiftkey://

Main Activity

Information computed with AndroGuard.

com.touchtype.LauncherActivityIcon

Activities

Information computed with AndroGuard.

com.touchtype.voice.VoiceInputHelperActivity
com.touchtype.LauncherActivity
com.touchtype.materialsettingsx.NavigationActivity
com.google.androidbrowserhelper.trusted.WebViewFallbackActivity
com.touchtype.materialsettingsx.CrowdsourcingLauncherActivity
com.touchtype.installer.none.NoInstaller
com.touchtype.ui.DialogActivity
com.touchtype.materialsettingsx.aboutsettings.OssLicencesView
com.touchtype_fluency.service.personalize.auth.AuthenticationActivity
com.touchtype.cloud.authv2.msa.MsaAccessTokenApiActivity
com.touchtype.clipboard.cloud.ClaimsActivity
com.touchtype.deeplinking.DeepLinkingHandlerActivity
com.touchtype.cloud.uiv2.CloudSetupActivity
com.touchtype.cloud.uiv2.agegate.AgeNotCompliantActivity
com.touchtype.cloud.uiv2.agegate.AgeGateInputActivity
com.touchtype.cloud.authv2.google.GooglePlayServicesAuthActivity
com.touchtype.materialsettings.themessettings.ThemeSettingsActivity
com.touchtype.materialsettings.SwiftKeyPreferencesActivity
com.touchtype.materialsettings.typingsettings.ResizeContainerActivity
com.touchtype.materialsettings.languagepreferences.LanguagePreferencesActivity
com.touchtype.materialsettings.languagepreferences.LanguageLayoutSelectorActivity
com.touchtype.materialsettings.clipboard.ClipboardActivity
com.touchtype.installer.TypingDataConsentActivity
com.touchtype.installer.core.InstallerActivity
com.touchtype.social.PRCConsentNotificationProxyActivity
com.touchtype.consent.GetRuntimePermissionActivity
com.touchtype.materialsettings.themessettings.customthemes.CustomThemeDesignActivity
com.touchtype.materialsettings.themessettings.customthemes.BackgroundImageEditorActivity
com.touchtype.cloud.ui.MsaAccountPickerActivity
com.touchtype.extendedpanel.websearch.EdgeCustomTabCommandSenderActivity
com.touchtype.extendedpanel.websearch.WebSearchExtendedPanelActivity
com.touchtype.extendedpanel.websearch.WebPageExtendedPanelActivity
com.touchtype.richcontenteditor.RichContentEditorActivity
com.google.android.gms.auth.api.signin.internal.SignInHubActivity
com.google.android.gms.common.api.GoogleApiActivity
com.google.android.play.core.missingsplits.PlayCoreMissingSplitsActivity
com.google.android.play.core.common.PlayCoreDialogWrapperActivity

Receivers

Information computed with AndroGuard.

com.touchtype.RefreshLanguageConfigurationScheduledJob
com.touchtype.cloud.sync.SyncScheduledJob
com.touchtype.AddKeyboardDeltaToSyncPushQueueJob
com.touchtype.InstallReferrerReceiver
com.touchtype_fluency.service.receiver.ConnectivityReceiver
com.touchtype.PackageReplacedReceiver
com.touchtype.BootReceiver
com.touchtype.LocaleChangeReceiver
com.touchtype.SimStateReceiver
com.touchtype.telemetry.TelemetryExposeReceiver
com.touchtype.telemetry.TelemetryExposeReceiver$TelemetryExposeDoneReceiver
com.microsoft.tokenshare.AccountChangeReceiver
com.google.android.gms.analytics.AnalyticsReceiver
com.google.firebase.iid.FirebaseInstanceIdReceiver

Services

Information computed with AndroGuard.

com.touchtype.KeyboardService
com.touchtype.voice.VoiceInputServiceHelper
com.touchtype.social.NotificationInteractionService
com.touchtype.installer.core.IMEEnabledDetectorService
com.touchtype_fluency.service.FluencyServiceImpl
com.touchtype.telemetry.TelemetryService
com.touchtype.cloudmessaging.SwiftKeyFirebaseMessagingService
net.swiftkey.androidlibs.paperboy.PaperBoyAvroService
com.touchtype.cloud.sync.SyncService
com.touchtype.materialsettings.themessettings.service.ThemeDownloadJobIntentService
com.touchtype.scheduler.SwiftKeyAlarmManagerJobService
com.touchtype.scheduler.SwiftKeyJobService
com.touchtype.telemetry.TelemetryJobIntentService
com.google.android.gms.analytics.AnalyticsService
com.google.android.gms.analytics.AnalyticsJobService
com.google.android.gms.auth.api.signin.RevocationBoundService
com.google.firebase.messaging.FirebaseMessagingService
com.google.firebase.components.ComponentDiscoveryService
com.google.firebase.iid.FirebaseInstanceIdService
com.google.android.play.core.assetpacks.AssetPackExtractionService
com.google.android.play.core.assetpacks.ExtractionForegroundService
com.microsoft.tokenshare.TokenSharingService

Sample timeline

Certificate valid not before July 12, 2010, 5:27 p.m.
First submission on VT May 28, 2021, 2:14 p.m.
Last submission on VT July 3, 2021, 8:29 a.m.
Upload on Pithus Feb. 5, 2022, 6:36 p.m.
Certificate valid not after June 29, 2060, 5:27 p.m.

NIAP analysis

Information computed with MobSF.

FCS_RBG_EXT.1.1 The application invoke platform-provided DRBG functionality for its cryptographic operations.
Random Bit Generation Services
FCS_STO_EXT.1.1 The application does not store any credentials to non-volatile memory.
Storage of Credentials
FCS_CKM_EXT.1.1 The application implement asymmetric key generation.
Cryptographic Key Generation Services
FDP_DEC_EXT.1.1 The application has access to ['network connectivity', 'microphone'].
Access to Platform Resources
FDP_DEC_EXT.1.2 The application has access to no sensitive information repositories.
Access to Platform Resources
FDP_NET_EXT.1.1 The application has user/application initiated network communications.
Network Communications
FDP_DAR_EXT.1.1 The application implement functionality to encrypt sensitive data in non-volatile memory.
Encryption Of Sensitive Application Data
FMT_MEC_EXT.1.1 The application invoke the mechanisms recommended by the platform vendor for storing and setting configuration options.
Supported Configuration Mechanism
FTP_DIT_EXT.1.1 The application does encrypt some transmitted data with HTTPS/TLS/SSH between itself and another trusted IT product.
Protection of Data in Transit
FCS_RBG_EXT.2.1
FCS_RBG_EXT.2.2
The application perform all deterministic random bit generation (DRBG) services in accordance with NIST Special Publication 800-90A using Hash_DRBG. The deterministic RBG is seeded by an entropy source that accumulates entropy from a platform-based DRBG and a software-based noise source, with a minimum of 256 bits of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
Random Bit Generation from Application
FCS_CKM.1.1(1) The application generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm RSA schemes using cryptographic key sizes of 2048-bit or greater.
Cryptographic Asymmetric Key Generation
FCS_COP.1.1(2) The application perform cryptographic hashing services not in accordance with FCS_COP.1.1(2) and uses the cryptographic algorithm RC2/RC4/MD4/MD5.
Cryptographic Operation - Hashing
FCS_COP.1.1(4) The application perform keyed-hash message authentication with cryptographic algorithm ['HMAC-SHA1'] .
Cryptographic Operation - Keyed-Hash Message Authentication
FCS_HTTPS_EXT.1.1 The application implement the HTTPS protocol that complies with RFC 2818.
HTTPS Protocol
FCS_HTTPS_EXT.1.2 The application implement HTTPS using TLS.
HTTPS Protocol
FCS_HTTPS_EXT.1.3 The application notify the user and not establish the connection or request application authorization to establish the connection if the peer certificate is deemed invalid.
HTTPS Protocol
FIA_X509_EXT.2.1 The application use X.509v3 certificates as defined by RFC 5280 to support authentication for HTTPS , TLS.
X.509 Certificate Authentication
FIA_X509_EXT.2.2 When the application cannot establish a connection to determine the validity of a certificate, the application allow the administrator to choose whether to accept the certificate in these cases or accept the certificate ,or not accept the certificate.
X.509 Certificate Authentication
FPT_TUD_EXT.2.1 The application shall be distributed using the format of the platform-supported package manager.
Integrity for Installation and Update
FCS_CKM.1.1(2) The application shall generate symmetric cryptographic keys using a Random Bit Generator as specified in FCS_RBG_EXT.1 and specified cryptographic key sizes 128 bit or 256 bit.
Cryptographic Symmetric Key Generation

Code analysis

Information computed with MobSF.

Low
CVSS:7.5
The App logs information. Sensitive information should never be logged.
MASVS: MSTG-STORAGE-3
CWE-532 Insertion of Sensitive Information into Log File
Files:
 defpackage/ba.java
defpackage/vn0.java
defpackage/l9.java
defpackage/n5.java
defpackage/rk0.java
defpackage/yk0.java
defpackage/ke0.java
defpackage/bb.java
defpackage/eh0.java
defpackage/vh0.java
defpackage/vc0.java
defpackage/c51.java
defpackage/rv.java
defpackage/cd.java
defpackage/ma.java
defpackage/aj.java
defpackage/gb1.java
defpackage/kq0.java
defpackage/lq.java
defpackage/vc.java
defpackage/dj.java
defpackage/s2.java
defpackage/kb1.java
defpackage/mn0.java
defpackage/t61.java
defpackage/ib1.java
defpackage/he.java
defpackage/eb1.java
defpackage/j80.java
defpackage/mb1.java
defpackage/ob1.java
defpackage/l91.java
defpackage/h91.java
defpackage/fj0.java
defpackage/zl6.java
defpackage/mp0.java
defpackage/ya1.java
defpackage/ej.java
defpackage/qc0.java
defpackage/e66.java
defpackage/jj0.java
defpackage/fc1.java
defpackage/vr.java
defpackage/t5.java
defpackage/va1.java
com/touchtype/social/PRCConsentNotificationProxyActivity.java
defpackage/pq.java
defpackage/r3.java
defpackage/s61.java
defpackage/uc0.java
defpackage/pg0.java
defpackage/hg0.java
defpackage/kl0.java
defpackage/fj.java
defpackage/tt0.java
defpackage/p1.java
defpackage/vx0.java
com/swiftkey/avro/telemetry/Lumberjack.java
defpackage/q31.java
defpackage/wf0.java
defpackage/tg0.java
defpackage/hl.java
defpackage/cb.java
defpackage/jd0.java
defpackage/ur.java
defpackage/mi0.java
defpackage/zg0.java
defpackage/k10.java
defpackage/f41.java
defpackage/i41.java
defpackage/bl0.java
defpackage/j6.java
defpackage/bs.java
defpackage/dl0.java
defpackage/c41.java
defpackage/jo0.java
defpackage/za.java
defpackage/hr0.java
defpackage/ma1.java
defpackage/kr0.java
defpackage/cj.java
defpackage/rr0.java
defpackage/zr0.java
defpackage/nr0.java
defpackage/ir0.java
defpackage/g5.java
defpackage/dr0.java
defpackage/lb.java
defpackage/a4.java
defpackage/cr0.java
defpackage/ar0.java
defpackage/k9.java
defpackage/ca.java
defpackage/ra1.java
defpackage/bf0.java
defpackage/gl1.java
defpackage/db.java
defpackage/hs.java
defpackage/j5.java
defpackage/ux0.java
defpackage/wi7.java
defpackage/ab.java
defpackage/x67.java
defpackage/si7.java
defpackage/ff0.java
defpackage/b91.java
defpackage/a6.java
defpackage/di0.java
defpackage/l67.java
defpackage/qb1.java
defpackage/yt.java
defpackage/j53.java
defpackage/t67.java
defpackage/si.java
defpackage/d3.java
defpackage/cq0.java
defpackage/gc0.java
defpackage/gj0.java
defpackage/tw0.java
defpackage/ij.java
defpackage/hj0.java
defpackage/dj0.java
defpackage/aw.java
defpackage/w5.java
defpackage/pp0.java
defpackage/yf.java
defpackage/pc.java
defpackage/yl6.java
defpackage/ua2.java
defpackage/ae.java
defpackage/oj0.java
defpackage/dc1.java
defpackage/aa.java
defpackage/wi.java
defpackage/ef.java
defpackage/ta1.java
defpackage/pj.java
defpackage/zm0.java
defpackage/hj.java
defpackage/oa1.java
defpackage/af0.java
defpackage/xi1.java
defpackage/mc1.java
defpackage/lx0.java
defpackage/zt.java
defpackage/va.java
defpackage/b6.java
defpackage/a80.java
defpackage/gg7.java
defpackage/ul0.java
defpackage/qc.java
defpackage/e61.java
defpackage/pb1.java
defpackage/hb1.java
defpackage/db1.java
Info
CVSS:0
This App may have root detection capabilities.
MASVS: MSTG-RESILIENCE-1
Files:
 defpackage/s41.java
Medium
CVSS:7.4
MD5 is a weak hash known to have hash collisions.
MASVS: MSTG-CRYPTO-4
CWE-327 Use of a Broken or Risky Cryptographic Algorithm
M5: Insufficient Cryptography
Files:
 defpackage/pn0.java
defpackage/kr2.java
defpackage/ms1.java
Medium
CVSS:4.3
IP Address disclosure
MASVS: MSTG-CODE-2
CWE-200 Information Exposure
Files:
 com/touchtype/PackageReplacedReceiver.java
defpackage/qs1.java
defpackage/uw5.java
com/touchtype/materialsettingsx/aboutsettings/AboutNavigationPreferenceFragment.java
defpackage/yt1.java
defpackage/j62.java
defpackage/ns1.java
com/touchtype/telemetry/TelemetryJobIntentService.java
defpackage/kv5.java
defpackage/yv5.java
defpackage/rd5.java
Info
CVSS:0
This App uses SSL certificate pinning to detect or prevent MITM attacks in secure communication channel.
MASVS: MSTG-NETWORK-4
Files:
 defpackage/ri7.java
defpackage/si7.java
defpackage/or1.java
defpackage/qk2.java
defpackage/ni7.java
defpackage/oi7.java
Medium
CVSS:7.5
The App uses an insecure Random Number Generator.
MASVS: MSTG-CRYPTO-6
CWE-330 Use of Insufficiently Random Values
M5: Insufficient Cryptography
Files:
 defpackage/et2.java
defpackage/xj4.java
defpackage/mj5.java
defpackage/ee7.java
defpackage/nj5.java
defpackage/y17.java
defpackage/mj7.java
defpackage/rj7.java
defpackage/f97.java
defpackage/uj5.java
defpackage/hh1.java
defpackage/bl2.java
defpackage/or1.java
defpackage/bw5.java
defpackage/ew5.java
defpackage/gr6.java
defpackage/fr6.java
High
CVSS:5.5
App can read/write to External Storage. Any App can read data written to External Storage.
MASVS: MSTG-STORAGE-2
CWE-276 Incorrect Default Permissions
M2: Insecure Data Storage
Files:
 defpackage/nq4.java
defpackage/j21.java
com/touchtype_fluency/service/FluencyServiceImpl.java
defpackage/y71.java
com/touchtype/materialsettingsx/typingsettings/stats/HeatmapFragment.java
defpackage/mz.java
defpackage/mk5.java
defpackage/gx.java
Medium
CVSS:5.5
App creates temp file. Sensitive information should never be written into a temp file.
MASVS: MSTG-STORAGE-2
CWE-276 Incorrect Default Permissions
M2: Insecure Data Storage
Files:
 com/touchtype_fluency/impl/NativeLibLoader.java
defpackage/bd7.java
defpackage/gx.java
com/microsoft/hwr/LibHwrLoader.java
Medium
CVSS:5.9
App uses SQLite Database and execute raw SQL query. Untrusted user input in raw SQL queries can cause SQL Injection. Also sensitive information should be encrypted and written to the database.
CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
M7: Client Code Quality
Files:
 defpackage/ho0.java
defpackage/io0.java
defpackage/oj1.java
defpackage/ir0.java
Low
CVSS:0
This App copies data to clipboard. Sensitive data should not be copied to clipboard as other applications can access it.
MASVS: MSTG-STORAGE-10
Files:
 com/touchtype/materialsettingsx/aboutsettings/AboutNavigationPreferenceFragment.java
com/touchtype/materialsettings/cloudpreferences/CloudPreferenceFragment.java
Medium
CVSS:7.4
Files may contain hardcoded sensitive information like usernames, passwords, keys etc.
MASVS: MSTG-STORAGE-14
CWE-312 Cleartext Storage of Sensitive Information
M9: Reverse Engineering
Files:
 com/touchtype/bibomodels/tenor/TenorModel.java
com/touchtype_fluency/service/languagepacks/IMELanguageDataFactory.java
com/touchtype_fluency/service/jobs/LanguageDownloadJob.java
Medium
CVSS:5.9
SHA-1 is a weak hash known to have hash collisions.
MASVS: MSTG-CRYPTO-4
CWE-327 Use of a Broken or Risky Cryptographic Algorithm
M5: Insufficient Cryptography
Files:
 defpackage/yp.java
defpackage/qv3.java
defpackage/pe7.java
Low
CVSS:0
This app listens to Clipboard changes. Some malware also listen to Clipboard changes.
MASVS: MSTG-PLATFORM-4
Files:
 defpackage/p12.java
Low
CVSS:3.9
App can write to App Directory. Sensitive Information should be encrypted.
MASVS: MSTG-STORAGE-14
CWE-276 Incorrect Default Permissions
Files:
 com/touchtype/PackageReplacedReceiver.java
defpackage/le5.java
Pygal Germany: 500 France: 100 Ireland: 300 Israel: 600 Netherlands: 1000 United States: 4000

Map computed by Pithus.

Domains analysis

Information computed with MobSF.

NL handwriting.staging.swiftkey.com 13.107.246.45
US winnie-citadel.touchtype-fluency.com 104.212.67.232
DE touchtype.jira.com 18.184.99.137
US in.appcenter.ms 40.70.161.7
US github.com 140.82.121.3
IL tokens-auth.touchtype-fluency.com 40.90.65.45
JP mobile.events.data.microsoft.com 40.79.197.35
US telemetry.staging.swiftkey.com 13.107.213.44
US citadel-eeyore-staging.touchtype-fluency.com 13.107.213.45
US www.twitter.com 104.244.42.129
US jenson.api.swiftkey.com 104.212.67.168
NL mds.staging.swiftkey.com 13.107.246.44
IE www.swiftkey.com 40.67.249.7
IL telemetry.api.swiftkey.com 40.90.65.45
NL www.bingapis.com 13.107.5.80
US www.microsoft.com 23.218.209.163
DE aka.ms 104.111.242.51
US swky.co 104.212.67.47
US translate.staging.swiftkey.com 13.107.213.44
IL personalization.touchtype-fluency.com 40.90.65.76
IE data.swiftkey.com 52.178.214.89
NL test-auth-a.touchtype-fluency.com 13.107.246.45
US goo.gl 172.217.18.110
US snippetdata.api.swiftkey.com 104.212.67.224
US www.google-analytics.com 142.250.185.78
US tigger-citadel.touchtype-fluency.com 104.212.67.224
US privacy.microsoft.com 23.218.209.163
US autosuggest.api.swiftkey.com 104.212.67.168
US www.google.com 142.250.185.132
NL login.live.com 20.190.160.129
US support.swiftkey.com 104.16.53.111
US developer.android.com 142.250.181.238
US microsoft.com 40.76.4.15
US bibo.api.swiftkey.com 104.212.67.168
US play.google.com 142.250.186.46
IL users-auth.touchtype-fluency.com 40.90.65.55
US handwriting.api.swiftkey.com 104.212.67.168
FR nleditor.osi.office.net 52.109.68.28
US citadel-winnie-staging.touchtype-fluency.com 13.107.213.45
IL translate.api.swiftkey.com 40.90.65.76
DE www.facebook.com 157.240.20.35
US personalization-staging.touchtype-fluency.com 13.107.226.44
DE go.microsoft.com 2.19.36.223
NL clip.staging.swiftkey.com 13.107.246.45
DE oneclient.sfx.ms 72.247.225.167
US cdn.swiftkey.microsoft.com 4.34.42.101
schemas.android.com
US ssl.google-analytics.com 142.250.185.168
US issuetracker.google.com 142.250.181.238
IE swiftkey.com 40.67.249.7
US app.adjust.com 185.151.204.9
US eeyore-citadel.touchtype-fluency.com 104.212.67.168
US www.bing.com 131.253.33.200
NL test-auth-b.touchtype-fluency.com 13.107.246.45
US cinder-web.services.development.swiftkey.com 13.107.226.45
US install.appcenter.ms 40.79.21.140
US skslm.swiftkey.net 152.199.21.175
ns.adobe.com
US g.tenor.com 142.250.185.202
US plus.google.com 142.250.186.174
US swiftkey-net-api-project-1018135770358.firebaseio.com 35.201.97.85
NL graph.microsoft.com 20.190.160.97
IL swiftkey-sync-production.touchtype-fluency.com 40.90.65.41
NL test1-sync-vpcstaging.touchtype-fluency.com 13.107.246.45
US pagead2.googlesyndication.com 172.217.23.98
US unicode.org 66.34.208.12
NL citadel-tigger-staging.touchtype-fluency.com 13.107.246.45
US www.googleapis.com 142.250.185.74

URL analysis

Information computed with MobSF.

https://www.googleapis.com/plus/v1/people/me
https://www.googleapis.com/plus/v1/people/me?
Defined in com/touchtype_fluency/service/personalize/auth/AccountRetrievers.java
https://www.googleapis.com/plus/v1/people/me
https://www.googleapis.com/plus/v1/people/me?
Defined in com/touchtype_fluency/service/personalize/auth/AccountRetrievers.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
Defined in com/swiftkey/avro/telemetry/core/DeviceInfo.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
Defined in com/swiftkey/avro/telemetry/core/events/ApplicationStartupEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
Defined in com/swiftkey/avro/telemetry/core/events/ActivationEvent.java
http://developer.android.com/reference/android/text/InputType.html).
Defined in com/swiftkey/avro/telemetry/sk/android/LayoutType.java
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
Defined in com/swiftkey/avro/telemetry/sk/android/ScreenSize.java
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
Defined in com/swiftkey/avro/telemetry/sk/android/ScreenLong.java
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
Defined in com/swiftkey/avro/telemetry/sk/android/SnackbarDismissType.java
http://unicode.org/emoji/charts/emoji-ordering.html
Defined in com/swiftkey/avro/telemetry/sk/android/EmojiPanelTab.java
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
Defined in com/swiftkey/avro/telemetry/sk/android/HardKeyboard.java
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
Defined in com/swiftkey/avro/telemetry/sk/android/ScreenDirection.java
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
Defined in com/swiftkey/avro/telemetry/sk/android/HardKeyboardHiddenState.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
http://developer.android.com/reference/android/text/InputType.html).
http://unicode.org/emoji/charts/emoji-ordering.html
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
https://swiftkey.com
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/events/SwiftKeyAndroidTelemetryEvent.java
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
Defined in com/swiftkey/avro/telemetry/sk/android/events/ExtraDeviceInfoEvent.java
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
Defined in com/swiftkey/avro/telemetry/sk/android/events/ExtraDeviceInfoEvent.java
http://developer.android.com/reference/android/content/res/Configuration.html#screenLayout
https://developer.android.com/reference/android/speech/SpeechRecognizer.html#isRecognitionAvailable(android.content.Context)
https://github.com/facebook/device-year-class
Defined in com/swiftkey/avro/telemetry/sk/android/events/ExtraDeviceInfoEvent.java
http://developer.android.com/reference/android/text/InputType.html).
Defined in com/swiftkey/avro/telemetry/sk/android/events/FieldInfoEvent.java
https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html
Defined in com/swiftkey/avro/telemetry/sk/android/events/SnackbarDismissedEvent.java
http://unicode.org/emoji/charts/emoji-ordering.html
Defined in com/swiftkey/avro/telemetry/sk/android/events/EmojiPanelTabOpenedEvent.java
http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem)
Defined in com/swiftkey/avro/telemetry/sk/android/events/FeatureConsentEvent.java
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
Defined in com/swiftkey/avro/telemetry/sk/android/events/HardKeyboardEvent.java
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
http://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden
Defined in com/swiftkey/avro/telemetry/sk/android/events/HardKeyboardEvent.java
https://swiftkey.com
Defined in com/swiftkey/avro/telemetry/sk/android/toolbar/events/NavigationToolbarOemButtonClickFailEvent.java
https://touchtype.jira.com/browse/SKIME-3132,
Defined in com/swiftkey/avro/telemetry/sk/android/toolbar/events/NavigationToolbarButtonEnableStateEvent.java
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
Defined in com/swiftkey/avro/telemetry/sk/android/typing/events/CandidateSelectedEvent.java
https://developer.android.com/reference/java/lang/Character.UnicodeScript.html)
Defined in com/swiftkey/avro/telemetry/sk/android/typing/events/CandidateShownEvent.java
http://www.google-analytics.com
https://ssl.google-analytics.com
Defined in defpackage/ep0.java
http://www.google-analytics.com
https://ssl.google-analytics.com
Defined in defpackage/ep0.java
https://plus.google.com/