安全分析报告: Mobile Tracker Free v154

安全分数


安全分数 30/100

风险评级


等级

  1. A
  2. B
  3. C
  4. F

严重性分布 (%)


隐私风险

2

用户/设备跟踪器


调研结果

高危 21
中危 19
信息 3
安全 3
关注 0

高危 Activity (com.app.activity.FirstActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 App 链接 assetlinks.json 文件未找到

[android:name=com.app.activity.MainActivity][android:host=https://mobile-app-start-app.com]
App Link 资产验证 URL (https://mobile-app-start-app.com/.well-known/assetlinks.json) 未找到或配置不正确。(状态代码:404)。应用程序链接允许用户从 Web URL/电子邮件重定向到移动应用程序。如果此文件丢失或为 App Link 主机/域配置不正确,则恶意应用程序可以劫持此类 URL。这可能会导致网络钓鱼攻击,泄露 URI 中的敏感数据,例如 PII、OAuth 令牌、魔术链接/密码重置令牌等。您必须通过托管 assetlinks.json 文件并通过 Activity intent-filter 中的 [android:autoVerify=“true”] 启用验证来验证 App Link 网域。

高危 Activity (com.app.activity.MainActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.TermsActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.UseSafeWarningActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.CheckingWarningActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.LoginActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.BugAllActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.ActivityRestriction) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.ActivityMessage) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.ScreenshotActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.ScreenActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.picture.ActivityPicture) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.picture.ActivityPictureCamera2) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.picture.ActivityPicturePasswordFailed) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.picture.ActivityPicturePasswordFailedCamera2) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.action.AndroidTextToSpeechActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.liveViewving.LiveRTCActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.liveViewving.LiveRTCServiceActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.app.activity.ActivitySettingsWifiSettings) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 该文件是World Readable。任何应用程序都可以读取文件

该文件是World Readable。任何应用程序都可以读取文件
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#testing-local-storage-for-sensitive-data-mstg-storage-1-and-mstg-storage-2

Files:
com/app/service/RecordCallService.java, line(s) 214,192,242,286,162,238
h1/h.java, line(s) 210,218
h1/i.java, line(s) 118

中危 Activity (com.app.activity.MainActivity) 未被保护。

存在一个intent-filter。
发现 Activity与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Activity是显式导出的。

中危 Activity-Alias (com.app.activity.ActivitySettingsWifiSettings) 未被保护。

存在一个intent-filter。
发现 Activity-Alias与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Activity-Alias是显式导出的。

中危 Broadcast Receiver (com.app.received.BootReceived) 未被保护。

存在一个intent-filter。
发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。

中危 Broadcast Receiver (com.app.received.CallReceived) 未被保护。

存在一个intent-filter。
发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。

中危 Broadcast Receiver (com.app.received.PolicyActivate$PolicyAdmin) 受权限保护, 但是应该检查权限的保护级别。

Permission: android.permission.BIND_DEVICE_ADMIN [android:exported=true]
发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 Broadcast Receiver (com.app.received.SMSReceived) 未被保护。

存在一个intent-filter。
发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。

中危 Service (com.app.service.MyFirebaseMTFMessagingService) 未被保护。

存在一个intent-filter。
发现 Service与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Service是显式导出的。

中危 Service (com.app.service.NotificationListener) 受权限保护, 但是应该检查权限的保护级别。

Permission: android.permission.BIND_NOTIFICATION_LISTENER_SERVICE [android:exported=true]
发现一个 Service被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 Service (com.app.service.AccessService) 受权限保护, 但是应该检查权限的保护级别。

Permission: android.permission.BIND_ACCESSIBILITY_SERVICE [android:exported=true]
发现一个 Service被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 Broadcast Receiver (com.google.firebase.iid.FirebaseInstanceIdReceiver) 受权限保护, 但是应该检查权限的保护级别。

Permission: com.google.android.c2dm.permission.SEND [android:exported=true]
发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 高优先级的Intent (999) - {3} 个命中

[android:priority]
通过设置一个比另一个Intent更高的优先级,应用程序有效地覆盖了其他请求。

中危 应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库

应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04h-Testing-Code-Quality.md#injection-flaws-mstg-arch-2-and-mstg-platform-2

Files:
a2/b0.java, line(s) 4,5,82
a2/j.java, line(s) 7,32
a2/u.java, line(s) 6,7,104,120,137,191,239,311
e1/a.java, line(s) 4,5,14,19,20
e1/a0.java, line(s) 4,5,14,19,20
e1/b.java, line(s) 4,5,14,19,20
e1/c0.java, line(s) 4,5,14,19,20
e1/e.java, line(s) 4,5,14,19,20
e1/e0.java, line(s) 4,5,14,19,20
e1/g.java, line(s) 4,5,14,19,20
e1/g0.java, line(s) 4,5,14,19,20
e1/i.java, line(s) 4,5,14,19,20
e1/i0.java, line(s) 4,5,14,19,20
e1/j.java, line(s) 4,5,14,19,20
e1/k.java, line(s) 4,5,14,19,20
e1/k0.java, line(s) 4,5,14,19,20
e1/m.java, line(s) 4,5,14,19,20
e1/m0.java, line(s) 4,5,14,19,20
e1/n0.java, line(s) 4,5,14,19,20
e1/o0.java, line(s) 4,5,14,19,20
e1/r0.java, line(s) 4,5,14,19,20
e1/t0.java, line(s) 4,5,14,19,20
e1/v0.java, line(s) 4,5,14,19,20
e1/w.java, line(s) 4,5,14,19,20
e1/y.java, line(s) 4,5,14,19,20
g3/l.java, line(s) 6,7,631,671
g3/o7.java, line(s) 7,8,450
i1/a.java, line(s) 5,6,7,35,39,48,52
z1/n.java, line(s) 5,28

中危 应用程序使用不安全的随机数生成器

应用程序使用不安全的随机数生成器
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#weak-random-number-generators

Files:
g3/u7.java, line(s) 30
n4/a.java, line(s) 23
p6/l.java, line(s) 15
q7/c.java, line(s) 16
q7/f.java, line(s) 4

中危 应用程序创建临时文件。敏感信息永远不应该被写进临时文件

应用程序创建临时文件。敏感信息永远不应该被写进临时文件


Files:
s5/c.java, line(s) 49

中危 应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据

应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#external-storage

Files:
com/app/activity/ConfigPhoneActivity.java, line(s) 855
com/app/service/FileExplorerRemote.java, line(s) 188,190
com/app/service/ServiceScreenshotRoot.java, line(s) 25
h1/e.java, line(s) 60,62

中危 SHA-1是已知存在哈希冲突的弱哈希

SHA-1是已知存在哈希冲突的弱哈希
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#identifying-insecure-andor-deprecated-cryptographic-algorithms-mstg-crypto-4

Files:
q7/c.java, line(s) 184
s5/b.java, line(s) 49
v5/t.java, line(s) 75
x4/f.java, line(s) 32

中危 MD5是已知存在哈希冲突的弱哈希

MD5是已知存在哈希冲突的弱哈希
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#identifying-insecure-andor-deprecated-cryptographic-algorithms-mstg-crypto-4

Files:
com/app/service/FileExplorerRemote.java, line(s) 260
g3/u7.java, line(s) 196
l1/b.java, line(s) 31
p1/d.java, line(s) 337

中危 应用程序包含隐私跟踪程序

此应用程序有多个2隐私跟踪程序。跟踪器可以跟踪设备或用户,是终端用户的隐私问题。

中危 此应用可能包含硬编码机密信息

从应用程序中识别出以下机密确保这些不是机密或私人信息
"google_api_key" : "AIzaSyDbUBsZ11AUjeuOW9e8g1azhCV3wmDKhQ0"
"password_sms" : "sifresms"
"password_sms" : "MobileTrackerFreeSMS"
"com.google.firebase.crashlytics.mapping_file_id" : "4d9dfcc2619948f5a44f40cabed2e75b"
"firebase_database_url" : "https://myappmobile-537f7.firebaseio.com"
"google_app_id" : "1:38496474107:android:2920adfbaa3767553ab15e"
"google_crash_reporting_api_key" : "AIzaSyDbUBsZ11AUjeuOW9e8g1azhCV3wmDKhQ0"
bb392ec0-8d4d-11e0-a896-0002a5d5c51b
c06c8400-8e06-11e0-9cb6-0002a5d5c51b
258EAFA5-E914-47DA-95CA-C5AB0DC85B11
470fa2b4ae81cd56ecbcda9735803434cec591fa

信息 应用程序记录日志信息,不得记录敏感信息

应用程序记录日志信息,不得记录敏感信息
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#logs

Files:
a1/c.java, line(s) 192,205
a2/u.java, line(s) 396
b5/a.java, line(s) 62
c5/f.java, line(s) 59,70
d/t.java, line(s) 42,59,78
d5/c.java, line(s) 59,99
e1/p.java, line(s) 24
e5/c.java, line(s) 55,76
e5/d.java, line(s) 51,56,60,67
f1/b.java, line(s) 690
g3/j3.java, line(s) 208
g5/a.java, line(s) 164,169
g5/b.java, line(s) 43
h2/d.java, line(s) 88,103
h2/f.java, line(s) 41,58,79
h2/h.java, line(s) 12,15
h2/m.java, line(s) 55
h2/q.java, line(s) 33,63,80,97,122,140,146
h2/t.java, line(s) 27,36
h2/v.java, line(s) 48
i0/u.java, line(s) 553
i2/i.java, line(s) 181
l0/h.java, line(s) 29
r1/b.java, line(s) 57,86,118,121
r1/d.java, line(s) 145,237
r4/a.java, line(s) 22,28,32
r4/o.java, line(s) 63
t1/q.java, line(s) 24
t4/b.java, line(s) 16
u4/b.java, line(s) 74
v4/c.java, line(s) 28,31,34
v5/d0.java, line(s) 34,44
v5/f0.java, line(s) 36,37,46,47,80
v5/i.java, line(s) 60
v5/j0.java, line(s) 66,66
v5/k0.java, line(s) 48,49,79,101,181,182
v5/m.java, line(s) 31,85,108
v5/m0.java, line(s) 27
v5/n0.java, line(s) 57,68,90
v5/u.java, line(s) 28,43,52
v5/v.java, line(s) 57
w4/c.java, line(s) 8
x1/a.java, line(s) 8
x4/a0.java, line(s) 23
x4/f0.java, line(s) 60
x4/h0.java, line(s) 28,33,37
x4/k0.java, line(s) 45,56,60,67,89
x4/l.java, line(s) 21
x4/n.java, line(s) 51
x4/o0.java, line(s) 52,238,240,243,248
x4/p.java, line(s) 26,37
x4/s.java, line(s) 38
x4/v.java, line(s) 92,109,214,238,259,306,310,313,317,318,329
x4/z.java, line(s) 86,108,111,117
y4/e.java, line(s) 83,93
z1/a.java, line(s) 59
z1/e.java, line(s) 97
z1/k.java, line(s) 29,33
z1/q.java, line(s) 23

信息 此应用侦听剪贴板更改。一些恶意软件也会监听剪贴板更改

此应用侦听剪贴板更改。一些恶意软件也会监听剪贴板更改
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04b-Mobile-App-Security-Testing.md#clipboard

Files:
com/app/service/ClipboardService.java, line(s) 20,5

信息 应用与Firebase数据库通信

该应用与位于 https://myappmobile-537f7.firebaseio.com 的 Firebase 数据库进行通信

安全 此应用程序可能具有Root检测功能

此应用程序可能具有Root检测功能
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05j-Testing-Resiliency-Against-Reverse-Engineering.md#testing-root-detection-mstg-resilience-1

Files:
x4/g.java, line(s) 167,167,168

安全 此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击

此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05g-Testing-Network-Communication.md#testing-custom-certificate-stores-and-certificate-pinning-mstg-network-4

Files:
g7/w.java, line(s) 143,142,151,141,141

安全 Firebase远程配置已禁用

Firebase远程配置URL ( https://firebaseremoteconfig.googleapis.com/v1/projects/38496474107/namespaces/firebase:fetch?key=AIzaSyDbUBsZ11AUjeuOW9e8g1azhCV3wmDKhQ0 ) 已禁用。响应内容如下所示:

{
    "state": "NO_TEMPLATE"
}

安全评分: ( Mobile Tracker Free 154)