安全分析报告: Phone v5.2.2

安全分数


安全分数 51/100

风险评级


等级

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

严重性分布 (%)


隐私风险

3

用户/设备跟踪器


调研结果

高危 1
中危 15
信息 2
安全 1
关注 1

高危 Activity (com.oneui.mobile.presentation.MobileActivity)如果未对输入进行校验,此配置允许同一设备上没有任何权限的第三方应用程序调用它并发起电话呼叫,而无需用户交互。

一个导出的Activity ,如果没有对接收Intent的输入验证,则可以调用拨号程序进行拨打电话而无需用户交互,这很可能是一个高危漏洞,请人工核验。参考:CVE-2024-37574

中危 应用程序数据可以被备份

[android:allowBackup=true]
这个标志允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。

中危 Service (com.oneui.mobile.presentation.feature.calling.CallService) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Broadcast Receiver (com.oneui.mobile.presentation.feature.calling.CallActionReceiver) 未被保护。

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

中危 Service (androidx.work.impl.background.systemjob.SystemJobService) 受权限保护, 但是应该检查权限的保护级别。

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

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

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

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

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

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

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

中危 应用程序使用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:
L1/M.java, line(s) 9,10,133,170,189,198,245,372,389,744
L1/W.java, line(s) 4,5,159
Z0/C0811c.java, line(s) 9,10,11,12,13,85,219
Z0/C1595c.java, line(s) 9,10,11,12,13,87,221

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

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


Files:
U0/v.java, line(s) 66
v2/c.java, line(s) 81

中危 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等

文件可能包含硬编码的敏感信息,如用户名、密码、密钥等
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#checking-memory-for-sensitive-data-mstg-storage-10

Files:
C2/b.java, line(s) 73
Q0/d.java, line(s) 41
X0/g.java, line(s) 79
Z0/d.java, line(s) 37
Z0/p.java, line(s) 95
Z0/x.java, line(s) 85
com/oneui/mobile/domain/model/contacts/ContactsAccount.java, line(s) 118
d2/C0181e.java, line(s) 78
d2/C0381e.java, line(s) 82
d2/w.java, line(s) 118
g3/C0454b.java, line(s) 134
g3/C1085b.java, line(s) 145
m3/d.java, line(s) 46

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

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

Files:
D5/AbstractC0400a.java, line(s) 3
D5/AbstractC0994a.java, line(s) 3
D5/b.java, line(s) 4
e5/C0443a.java, line(s) 5
e5/C1046a.java, line(s) 5

中危 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:
v2/b.java, line(s) 53

中危 Firebase远程配置已启用

Firebase远程配置URL ( https://firebaseremoteconfig.googleapis.com/v1/projects/1024929666603/namespaces/firebase:fetch?key=AIzaSyA_HAZ_myRPzG_gfBc0tPQRmAmOZxGCKEo ) 已启用。请确保这些配置不包含敏感信息。响应内容如下所示:

{
    "entries": {
        "bn_ad": "ca-app-pub-9724255327554994/5912402030",
        "bn_ad_collapsible_load_time": "11",
        "bn_ad_debug": "ca-app-pub-3940256099942544/9214589741",
        "in_ad": "ca-app-pub-9724255327554994/6927847683",
        "in_ad_count": "3",
        "in_ad_debug": "ca-app-pub-3940256099942544/1033173712",
        "in_ad_time": "13",
        "na_ad": "ca-app-pub-9724255327554994/6015401862",
        "na_ad_debug": "ca-app-pub-3940256099942544/2247696110",
        "na_me_ad": "ca-app-pub-9724255327554994/8999484394",
        "ns_bn_ad": "",
        "ns_bn_ad_collapsible": "",
        "phone_in": "ca-app-pub-9724255327554994/6927847683",
        "phone_in_debug": "ca-app-pub-3940256099942544/1033173712",
        "sha_1": "BB:42:0E:50:E5:24:65:86:61:1B:96:30:52:02:55:25:D2:54:23:B8"
    },
    "state": "UPDATE",
    "templateVersion": "299"
}

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

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

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

从应用程序中识别出以下机密确保这些不是机密或私人信息
AdMob广告平台的=> "com.google.android.gms.ads.APPLICATION_ID" : "@string/app_pub_id"
"com.google.firebase.crashlytics.mapping_file_id" : "41bbdc88a2784c2c9581df5f034e49a4"
"google_api_key" : "AIzaSyA_HAZ_myRPzG_gfBc0tPQRmAmOZxGCKEo"
"google_app_id" : "1:1024929666603:android:191f4ed464e2cea6e83c6e"
"google_crash_reporting_api_key" : "AIzaSyA_HAZ_myRPzG_gfBc0tPQRmAmOZxGCKEo"
470fa2b4ae81cd56ecbcda9735803434cec591fa
610c7938-e2cf-424e-9887-10ca1ad1abe1

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

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

Files:
A/c.java, line(s) 60
A/d.java, line(s) 66
A/h.java, line(s) 132,141,254
B/h.java, line(s) 502,507
B/m.java, line(s) 64
B/n.java, line(s) 55,114
B/p.java, line(s) 44,98,112,134,145
B/r.java, line(s) 81
B1/C0478e.java, line(s) 44,54,68,74,45,69,57,75
B1/C0482i.java, line(s) 116,100
B1/C0794e.java, line(s) 44,54,68,74,45,69,57,75
B1/C0798i.java, line(s) 116,100
C0/C0488c.java, line(s) 104,125,119
C0/C0814c.java, line(s) 105,126,120
C0/a.java, line(s) 74
C1/ExecutorServiceC0489a.java, line(s) 170,167
C1/ExecutorServiceC0815a.java, line(s) 170,167
C2/C0329d.java, line(s) 145,178
C2/C0820d.java, line(s) 167,200
D1/C0573c.java, line(s) 16,15
D1/C0574d.java, line(s) 44,43
D1/C0577g.java, line(s) 104,103
D1/C0589s.java, line(s) 67,70
D1/C0590t.java, line(s) 64,69,82,98,65,70,85,101
D1/C0591u.java, line(s) 36,35
D1/C0949c.java, line(s) 17,16
D1/C0950d.java, line(s) 45,44
D1/C0953g.java, line(s) 104,103
D1/C0965s.java, line(s) 67,70
D1/C0966t.java, line(s) 64,69,82,98,65,70,85,101
D1/C0967u.java, line(s) 36,35
E0/AbstractC0595a.java, line(s) 30
E0/AbstractC0996a.java, line(s) 30
E3/C0402a.java, line(s) 56
E3/C0406e.java, line(s) 39,55
E3/C1005a.java, line(s) 59
E3/C1009e.java, line(s) 43,59
F1/h.java, line(s) 75,76
F2/g.java, line(s) 256
G0/a.java, line(s) 17
G1/AbstractC0621D.java, line(s) 115,120,165,174,181,116,121,166,175,182,183,184,188
G1/AbstractC1073D.java, line(s) 115,120,165,174,181,116,121,166,175,182,183,184,188
G1/C0629f.java, line(s) 26,27
G1/C1078c.java, line(s) 66,65,75,89,90
G1/C1081f.java, line(s) 26,27
G1/G.java, line(s) 198,207,249,308,197,206,246,307
G1/o.java, line(s) 175,182,274,284,296,308,326,336,339,342,345,348,362,367,174,181,273,283,295,307,325,335,338,341,344,347,361,366
G1/q.java, line(s) 110,128,109,127,192,253,276,193,254,349
G1/r.java, line(s) 46,52,47,53
G1/v.java, line(s) 78,103,109,115,121,127,135,104,110,116,122,128,136,79
H/h.java, line(s) 25,29,33
H/n.java, line(s) 31
H0/AbstractC0218t.java, line(s) 25,32,39,46,53,60,67,74,81
H0/AbstractC0418t.java, line(s) 25,32,39,46,53,60,67,74,81
H1/a.java, line(s) 9,16,23,8,15,22,33,34,40,41
I/MenuItemC0643c.java, line(s) 264
I/MenuItemC1103c.java, line(s) 264
I/d.java, line(s) 64
I2/C0468i.java, line(s) 21,30,37,29,36,43,44,50,51
I2/C1132i.java, line(s) 22,31,38,30,37,44,45,51,52
I3/C0474B.java, line(s) 92,94
I3/C0476D.java, line(s) 80,93,169,185,197,206,256,259,282,109,288
I3/C0479G.java, line(s) 48,62,36,55
I3/C0489g.java, line(s) 27
I3/C0493k.java, line(s) 60,67
I3/C1138B.java, line(s) 207,231,247,253,209
I3/C1140D.java, line(s) 90,103,181,197,209,218,268,271,294,119,300
I3/C1143G.java, line(s) 50,64,38,57
I3/C1153g.java, line(s) 29
I3/C1157k.java, line(s) 68,96,117,124
I3/x.java, line(s) 143,87,280
J3/C0504a.java, line(s) 99,104,123,127
J3/C1176a.java, line(s) 114,119,138,142
K0/C0675b.java, line(s) 214,289,323,343
K0/C1182b.java, line(s) 214,289,323,343
K1/C0676a.java, line(s) 81,87,94,103,82,88,95,104
K1/C0679d.java, line(s) 21,22
K1/C0685j.java, line(s) 40,43
K1/C1183a.java, line(s) 81,87,94,103,82,88,95,104
K1/C1186d.java, line(s) 22,23
K1/C1192j.java, line(s) 40,43
K3/C0514c.java, line(s) 120
K3/C0517f.java, line(s) 37
K3/C1200c.java, line(s) 129,463,490,155,344,447
K3/C1203f.java, line(s) 45
M/AbstractC0274e0.java, line(s) 43,52,66,86,100,115,129
M/AbstractC0312y.java, line(s) 40
M/AbstractC0491e0.java, line(s) 43,52,66,86,100,115,129
M/AbstractC0529y.java, line(s) 40
M/C0313y0.java, line(s) 742,759,515,527,534,543,733
M/C0530y0.java, line(s) 742,759,515,527,534,543,733
M/Y.java, line(s) 887,816,886
M0/C1291c.java, line(s) 97
M1/e.java, line(s) 12,11
M1/q.java, line(s) 91,92
M1/r.java, line(s) 128,129
N/t.java, line(s) 274
N1/C0724d.java, line(s) 59,78,83,88,66,58,65,70,77,82,87,71
N1/C1340d.java, line(s) 59,78,83,88,66,58,65,70,77,82,87,71
P/c.java, line(s) 71
P1/C1381j.java, line(s) 168,18,296,122
P1/j.java, line(s) 168,18,296,122
P2/C0644f.java, line(s) 249,184,188,201
P2/C1388f.java, line(s) 265,200,204,217
Q/d.java, line(s) 211
Q1/i.java, line(s) 56,97,98,57
R/c.java, line(s) 149
R0/AbstractC0751n.java, line(s) 30
R0/AbstractC1450n.java, line(s) 32
T/C1479f.java, line(s) 474
U0/r.java, line(s) 319
U0/v.java, line(s) 138,141,146
U2/C0718f.java, line(s) 26,33,36,45,83
U2/C1514f.java, line(s) 29,36,39,48,86
U2/n.java, line(s) 97
U3/C0721b.java, line(s) 105,89,111
U3/C0722c.java, line(s) 166
U3/C1517b.java, line(s) 116,100,122
U3/C1518c.java, line(s) 169
V0/a.java, line(s) 327
W0/AbstractC0782a.java, line(s) 71
W0/AbstractC1537a.java, line(s) 71
W0/d.java, line(s) 77,104,76,103
W2/c.java, line(s) 88,91,113,121,122,142,144
X1/d.java, line(s) 163
X2/g.java, line(s) 28,38,15,48,58,68
Y/AbstractC0801d.java, line(s) 91,248
Y/AbstractC1575d.java, line(s) 91,248
Y/AbstractC1576e.java, line(s) 46,49,76
Y/j.java, line(s) 27
Y/u.java, line(s) 74
Y0/c.java, line(s) 111,110
Y0/e.java, line(s) 64,63
Y0/h.java, line(s) 73,59,63
Z0/C0812d.java, line(s) 212
Z0/C1596d.java, line(s) 212
Z0/h.java, line(s) 630,357,372,629,461
Z0/i.java, line(s) 52,53
Z0/k.java, line(s) 16,204
Z0/q.java, line(s) 108
Z0/z.java, line(s) 77,114,67,76,113,68
a0/a.java, line(s) 93
a1/C0346i.java, line(s) 110,150,111,151
a1/C0347j.java, line(s) 107,151,164,176,76,106,116,140,150,163,175,196,203,82,117,197,204,141
a1/C0654i.java, line(s) 110,150,111,151
a1/C0655j.java, line(s) 107,151,164,176,76,106,116,140,150,163,175,196,203,82,117,197,204,141
a2/C0171w.java, line(s) 127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145
a2/C0371w.java, line(s) 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162
com/oneui/view/dialog/ConfirmCheckedDialog.java, line(s) 201
com/oneui/view/dialog/NotifyDialog.java, line(s) 74
d2/AbstractC0377b.java, line(s) 54
d2/AbstractC0971b.java, line(s) 66
e1/k.java, line(s) 36,65,72,75,88,91,94,97,100
e5/a.java, line(s) 60,79
s1/AbstractC1465b.java, line(s) 20
s1/b.java, line(s) 20
u/o.java, line(s) 85
u1/AbstractC1502a.java, line(s) 72,73
u1/a.java, line(s) 72,73
v2/b.java, line(s) 57,74

信息 此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它

此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04b-Mobile-App-Security-Testing.md#clipboard

Files:
D3/AbstractC0187d.java, line(s) 4,12,19
D3/AbstractC0387d.java, line(s) 4,12,19

安全 此应用程序可能具有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:
I2/w.java, line(s) 29
a2/AbstractC0158i.java, line(s) 293,293,294
a2/AbstractC0358i.java, line(s) 296,296,297

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

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

安全评分: ( Phone 5.2.2)