安全分数
安全分数 51/100
风险评级
等级
- A
- B
- C
- 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'}