安全分析报告: ours v0.0.132

安全分数


安全分数 50/100

风险评级


等级

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

严重性分布 (%)


隐私风险

1

用户/设备跟踪器


调研结果

高危 0
中危 14
信息 1
安全 0
关注 2

中危 应用程序已启用明文网络流量

[android:usesCleartextTraffic=true]
应用程序打算使用明文网络流量,例如明文HTTP,FTP协议,DownloadManager和MediaPlayer。针对API级别27或更低的应用程序,默认值为“true”。针对API级别28或更高的应用程序,默认值为“false”。避免使用明文流量的主要原因是缺乏机密性,真实性和防篡改保护;网络攻击者可以窃听传输的数据,并且可以在不被检测到的情况下修改它。

中危 应用程序数据存在被泄露的风险

未设置[android:allowBackup]标志
这个标志 [android:allowBackup]应该设置为false。默认情况下它被设置为true,允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。

中危 Activity (com.aboutyou.dart_packages.sign_in_with_apple.SignInWithAppleCallback) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Broadcast Receiver (io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingReceiver) 受权限保护, 但是应该检查权限的保护级别。

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

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

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

中危 Service (com.google.android.gms.auth.api.signin.RevocationBoundService) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护, 但是应该检查权限的保护级别。

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

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

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

Files:
g6/h.java, line(s) 108,130
g6/i.java, line(s) 99

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

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

Files:
o2/c.java, line(s) 4
y6/a.java, line(s) 3
y6/b.java, line(s) 3
z6/a.java, line(s) 3

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

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


Files:
f4/c.java, line(s) 80
p/q.java, line(s) 131

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

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

Files:
f4/b.java, line(s) 55
f5/a.java, line(s) 120

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

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

Files:
l1/m0.java, line(s) 5,6,71
l1/t0.java, line(s) 4,5,135

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

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

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

从应用程序中识别出以下机密确保这些不是机密或私人信息
凭证信息=> "com.google.android.geo.API_KEY" : "AIzaSyA4bWr9ffbmog8rA2IA__gA0q5XMuiMpus"
"google_crash_reporting_api_key" : "AIzaSyA4bWr9ffbmog8rA2IA__gA0q5XMuiMpus"
"google_api_key" : "AIzaSyA4bWr9ffbmog8rA2IA__gA0q5XMuiMpus"
VGhpcyBpcyB0aGUgcHJlZml4IGZvciBCaWdJbnRlZ2Vy

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

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

Files:
a1/a.java, line(s) 17
a1/n.java, line(s) 57,88,92,157,160,331,344,350,358,376
a1/o.java, line(s) 304,308,313
a1/p.java, line(s) 55
a2/f0.java, line(s) 50
a3/e.java, line(s) 36,61,71
b2/a.java, line(s) 18
b2/c.java, line(s) 202,220,418,422,426,432
b2/c1.java, line(s) 33
b2/f0.java, line(s) 96,99,103,107,111,115,124,128,131,134,166,174
b2/f1.java, line(s) 101
b2/g1.java, line(s) 28
b2/h1.java, line(s) 20
b2/i0.java, line(s) 26
b2/j.java, line(s) 33,39,45,28,51,57
b2/j1.java, line(s) 45
b2/p1.java, line(s) 58,63
b2/s1.java, line(s) 50
b3/c0.java, line(s) 21,77,59,89,39
c3/e.java, line(s) 84
com/baseflow/geolocator/GeolocatorLocationService.java, line(s) 114,128,131,143,148,178,188,195,201,206,217
com/baseflow/geolocator/b.java, line(s) 44
com/baseflow/geolocator/j.java, line(s) 304,292
com/baseflow/geolocator/m.java, line(s) 134,36,39,69,80,84,123
d0/a.java, line(s) 31
d6/a.java, line(s) 15
e1/k.java, line(s) 36,65,72,75,92,97,102,107,112
e2/a.java, line(s) 45,50,37,65
f4/b.java, line(s) 59,76
f6/l.java, line(s) 353
g0/c.java, line(s) 85
g3/a.java, line(s) 90,94
g4/c.java, line(s) 95,98,120,128,129,150,156
g6/i.java, line(s) 143
h1/a.java, line(s) 15,22,29,14,21,28,42,43,49,50
h2/a.java, line(s) 56,67
h3/a.java, line(s) 122,184,187,255,202,269
h6/l.java, line(s) 79
i2/f.java, line(s) 19
i2/n.java, line(s) 18,15
i2/o.java, line(s) 191,223,67,74,164,173,237
i6/j.java, line(s) 13,24,34
k0/b.java, line(s) 173
l2/h.java, line(s) 25
l5/b.java, line(s) 10,14,28,32
m2/b.java, line(s) 71,92
n0/a.java, line(s) 78
o3/e.java, line(s) 169,240,244,256
p/k0.java, line(s) 115,117,121,125,130
p1/a.java, line(s) 117,153
p1/d.java, line(s) 23,41,50,60
q1/i.java, line(s) 158,165
r3/g.java, line(s) 34,41,44,53,87
r3/o.java, line(s) 131
r4/m.java, line(s) 148,152,187
u/c.java, line(s) 20
v1/g.java, line(s) 35
x0/j.java, line(s) 58,133
x1/b.java, line(s) 56,70,45
x1/b0.java, line(s) 55,54
x1/c0.java, line(s) 47,29,64
x1/d.java, line(s) 83,96,117,157,172,275,82,95,116,156,171,274,113,129,141,179,200,241
x1/k.java, line(s) 15,12,12
x1/u.java, line(s) 34,70,126,33,69,83,125,169,193,218,249,84,170,194,219,250,40,160
x1/w.java, line(s) 22
x1/y.java, line(s) 28,35,27,34
y0/b.java, line(s) 107,117,137
y1/b0.java, line(s) 71,89,93,121,128,53
y1/e.java, line(s) 111,156,163
y1/g0.java, line(s) 31,34,56
y1/j.java, line(s) 38,106,51,89,149,155,164,167
y1/k.java, line(s) 39,130
y1/l0.java, line(s) 54,56,50
y1/o.java, line(s) 24
y1/x.java, line(s) 47

关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (pagead2.googlesyndication.com) 通信。

{'ip': '180.163.150.33', 'country_short': 'CN', 'country_long': '中国', 'region': '上海', 'city': '上海', 'latitude': '31.224333', 'longitude': '121.468948'}

关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (app-measurement.com) 通信。

{'ip': '180.163.150.33', 'country_short': 'CN', 'country_long': '中国', 'region': '上海', 'city': '上海', 'latitude': '31.224333', 'longitude': '121.468948'}

安全评分: ( ours 0.0.132)