安全分析报告: Salam v2.13.3

安全分数


安全分数 54/100

风险评级


等级

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

严重性分布 (%)


隐私风险

4

用户/设备跟踪器


调研结果

高危 2
中危 21
信息 3
安全 3
关注 1

高危 应用程序使用带PKCS5/PKCS7填充的加密模式CBC。此配置容易受到填充oracle攻击。

应用程序使用带PKCS5/PKCS7填充的加密模式CBC。此配置容易受到填充oracle攻击。
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#identifying-insecure-andor-deprecated-cryptographic-algorithms-mstg-crypto-4

Files:
eb/a.java, line(s) 267,453

中危 Activity (com.salam.app.android.ui.activate.ActivateSimActivity) 未被保护。

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

中危 Activity (com.salam.app.android.ui.onboarding.step.OnBoardingStepActivity) 未被保护。

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

中危 Activity (com.salam.app.android.ui.replacesim.ReplaceSimActivity) 未被保护。

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

中危 Activity (com.salam.app.android.ui.home.recharge.RechargeActivity) 未被保护。

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

中危 Activity (com.salam.app.android.ui.home.postpaid.PostpaidBillPaymentActivity) 未被保护。

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

中危 Activity (com.salam.app.android.ui.common.servicerecharge.ServiceRechargePaymentActivity) 未被保护。

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

中危 Activity (com.salam.app.android.ui.managesim.ManageSimsActivity) 未被保护。

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

中危 Activity (com.salam.app.android.ui.changeplan.ChangePlanActivity) 未被保护。

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

中危 Activity (com.salam.app.android.ui.ecommerce.EcommerceCheckoutActivity) 未被保护。

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

中危 Activity (com.nsoftware.ipworks3ds.sdk.core.ClientOutOfBandChallengeListener) 未被保护。

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

中危 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被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 IP地址泄露

IP地址泄露


Files:
cb/b.java, line(s) 12
com/huawei/location/router/BuildConfig.java, line(s) 9
db/b.java, line(s) 12
kb/a.java, line(s) 12
l8/a.java, line(s) 12
mb/l.java, line(s) 12
ob/a.java, line(s) 28
pb/p.java, line(s) 4
qc/a.java, line(s) 8
sb/a.java, line(s) 9

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

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

Files:
bs/e1.java, line(s) 91
coil/memory/MemoryCache.java, line(s) 211
coil/request/a.java, line(s) 87
com/lokalise/sdk/Lokalise.java, line(s) 526
com/lokalise/sdk/api/poko/Item.java, line(s) 100
com/salam/app/android/data/network/entity/activation/SetOnboardingOrderPasswordApiReq.java, line(s) 55
com/salam/app/android/data/network/entity/auth/UserLoginReq.java, line(s) 80
com/salam/app/android/data/network/entity/onboarding/OnBoardingOrder.java, line(s) 556
com/salam/app/android/data/network/entity/onboarding/SetOnboardingCustomerPasswordApiReq.java, line(s) 55
com/salam/app/android/data/network/entity/profile/UpdatePasswordApiReq.java, line(s) 80
com/salam/app/android/data/network/entity/register/UserRegistrationApiReq.java, line(s) 140
com/salam/app/android/data/network/entity/user/UpdatePasswordApiReq.java, line(s) 80
com/salam/app/android/domain/entity/activation/ValidateOnboardingOrderPasswordReq.java, line(s) 79
com/salam/app/android/domain/entity/auth/UserLoginReq.java, line(s) 78
com/salam/app/android/domain/entity/profile/UpdatePasswordReq.java, line(s) 78
com/salam/app/android/domain/entity/user/ResetPasswordReq.java, line(s) 78
com/salam/app/android/domain/entity/user/UserCred.java, line(s) 96
com/salam/app/android/ui/register/cred/a.java, line(s) 122
i9/b.java, line(s) 106
zl/i.java, line(s) 168

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

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

Files:
gs/t.java, line(s) 11
j$/util/concurrent/ThreadLocalRandom.java, line(s) 10
nts/C0249.java, line(s) 8
nts/C0293.java, line(s) 42
nts/C1021.java, line(s) 9
nts/C1065.java, line(s) 46
nts/RunnableC0445.java, line(s) 4
nts/RunnableC1217.java, line(s) 4
o7/o.java, line(s) 10
us/e.java, line(s) 13
us/h.java, line(s) 5

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

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

Files:
f6/h.java, line(s) 17
m4/l.java, line(s) 25
nts/C0224.java, line(s) 369
nts/C0996.java, line(s) 370

中危 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:
jb/c.java, line(s) 39
u6/a.java, line(s) 65

中危 此应用程序可能会请求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:
tm/b.java, line(s) 9,9,9,11,9,11,9,9

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

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


Files:
coil/decode/h.java, line(s) 53

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

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

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

从应用程序中识别出以下机密确保这些不是机密或私人信息
凭证信息=> "com.google.android.geo.API_KEY" : "AIzaSyDZVbTUoi1ckudof8_aXvU_KSHJXb8pqxA"
华为HMS Core 应用ID的=> "com.huawei.hms.client.appid" : "appid=106845649"
"google_api_key" : "AIzaSyBttLztpus6_jPNYkfHit0Gqi5_Iejm2v8"
"google_app_id" : "1:1015258598420:android:9e3368f9f98d6cd569eb01"
"google_crash_reporting_api_key" : "AIzaSyBttLztpus6_jPNYkfHit0Gqi5_Iejm2v8"
"masterpass" : "Masterpass"
"pref_category_key_camera" : "pckc"
"pref_key_camera_live_viewport" : "clv"
"pref_key_camerax_front_camera_target_resolution" : "cfctas"
"pref_key_camerax_rear_camera_target_resolution" : "crctas"
"pref_key_front_camera_picture_size" : "fcpts"
"pref_key_front_camera_preview_size" : "fcpvs"
"pref_key_info_hide" : "ih"
"pref_key_live_preview_face_detection_classification_mode" : "lpfdcfm"
"pref_key_live_preview_face_detection_contour_mode" : "lpfdcm"
"pref_key_live_preview_face_detection_face_tracking" : "lpfdft"
"pref_key_live_preview_face_detection_landmark_mode" : "lpfdlm"
"pref_key_live_preview_face_detection_min_face_size" : "lpfdmfs"
"pref_key_live_preview_face_detection_performance_mode" : "lpfdpm"
"pref_key_live_preview_object_detector_enable_classification" : "lpodec"
"pref_key_live_preview_object_detector_enable_multiple_objects" : "lpodemo"
"pref_key_live_preview_pose_detection_performance_mode" : "lppdpm"
"pref_key_live_preview_pose_detector_show_in_frame_likelihood" : "lppdsifl"
"pref_key_pose_detector_rescale_z" : "pdrz"
"pref_key_pose_detector_run_classification" : "pdrc"
"pref_key_pose_detector_visualize_z" : "pdvz"
"pref_key_rear_camera_picture_size" : "rcpts"
"pref_key_rear_camera_preview_size" : "rcpvs"
"pref_key_segmentation_raw_size_mask" : "srsm"
"pref_key_still_image_object_detector_enable_classification" : "siodec"
"pref_key_still_image_object_detector_enable_multiple_objects" : "siodemo"
"pref_key_still_image_pose_detection_performance_mode" : "sipdpm"
"pref_key_still_image_pose_detector_show_in_frame_likelihood" : "sipdsifl"
6ba38576498ce3f0c5c2cf322a493ee4097c33b83005106839227cfafb3e87d9
7fr8HEzMShfeptv9P2nFuE0QZhTo6sJJoJTipTf2I3c51FaL
3404a9c401f933655e9b450c08d3adc39972e061
5zjyKvTEsoyc7CryFA6GL1tcArNwXWL46iT
3517262215D8D3008CBF888750B6418EDC4D562AC33ED6874E0D73ABA667BC3C
64b1726e770be0db99709286b929a24d1c89f0f75aa7f74d65db5108d4ac3769
6106ebcd669ea1a238b3d6f05e1054b1a813a1d5218366ed13b7a56d2a68e9d7
258EAFA5-E914-47DA-95CA-C5AB0DC85B11
7b2d07f0d6d0263d9b537fff5b9c1ea03615e280e49a0bb4fc4c6ef833148d6a
470fa2b4ae81cd56ecbcda9735803434cec591fa
ccda01785ee509c71fca082833afcb3a
7a932c0e587e93d468406e14500ed81122dc808703961aaba3e32890d6b1880c
be3bb3f5d466629ec5a90aeb18b0f328b0a18b98c9558d45e82df5f5e20148b1
CgvzK8SAjoShfrAYB7FL88QnPsUW2obw8yWYOLrdk3tyc0FBDcrgyC0Gtga7mS8q01lalcl2nR7kLl
30faa37a-0708-44c4-8941-9de3e2dda342
11b1f9af54083d86b93d983d07ed663888c72853f6e304b206ae3f934e6b2d8d
B92825C2BD5D6D6D1E7F39EECD17843B7D9016F611136B75441BC6F4D3F00F05
E49D5C2C0E11B3B1B96CA56C6DE2A14EC7DAB5CCC3B5F300D03E5B4DBA44F539
zoccIBwIbimJ402DVGqEVIrCy7TAZEWKLalg1ycqNlRtNoNFJVHVtCOyyQtmdKy609G
hqJ5obT9098uRGbmjxtKOWfXDLP43mprEJPH7xjc2DDXmNDvqXPH8AlGR
sha256/4a6cPehI7OG6cuDZka5NDZ7FR8a60d3auda+sKfg4Ng=
ab2a9c474aec5fbbc654303c04eb736ea92c1c6026f1244be3012a120cd6a4eb
aV7h5zCoAlRjTaApQN2j9711wcfiFyN0sfB8o
0123456789ABCDEFabcdef
e27d8d15d3e020e6ab26cf7d86b539df

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

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

Files:
a3/l.java, line(s) 244
a3/z0.java, line(s) 54
a5/a.java, line(s) 100
a6/a.java, line(s) 20
bc/a.java, line(s) 74
bc/b.java, line(s) 23,57,84
c3/f2.java, line(s) 74
c3/r1.java, line(s) 49
c3/y0.java, line(s) 61
com/apollographql/apollo3/network/http/LoggingInterceptor.java, line(s) 49,67
com/apollographql/apollo3/network/ws/a.java, line(s) 108
com/apollographql/apollo3/network/ws/b.java, line(s) 415
com/apollographql/apollo3/network/ws/c.java, line(s) 207
com/apollographql/apollo3/network/ws/e.java, line(s) 506
f3/d1.java, line(s) 35
f3/h0.java, line(s) 166
f3/i.java, line(s) 24,130
f3/x0.java, line(s) 41
h1/b.java, line(s) 383
hs/e.java, line(s) 770
i1/c.java, line(s) 142,176
i3/a.java, line(s) 37,106,111
io/realm/DynamicRealm.java, line(s) 324
io/realm/Realm.java, line(s) 1019
io/realm/RealmCache.java, line(s) 160,421
io/realm/a.java, line(s) 283,293,396
io/realm/i2.java, line(s) 203,243
io/realm/internal/Util.java, line(s) 62,67,72,78
io/realm/internal/d.java, line(s) 20
io/realm/internal/f.java, line(s) 73,69
io/realm/j2.java, line(s) 621
j1/a.java, line(s) 41
k1/a.java, line(s) 79
k4/a.java, line(s) 132
kr/b.java, line(s) 61
l1/a.java, line(s) 19
l1/e.java, line(s) 39
n1/j.java, line(s) 86
nts/C0603.java, line(s) 177
nts/C1375.java, line(s) 175
p3/y.java, line(s) 20
p3/z.java, line(s) 43,52,126,142,192
qu/b.java, line(s) 104,123
r0/j.java, line(s) 122
rs/e.java, line(s) 59,96,96
t1/f.java, line(s) 76,158
t1/p.java, line(s) 76,158
v1/c.java, line(s) 37
v3/y.java, line(s) 15
x5/a.java, line(s) 23
ys/g.java, line(s) 172,55,67,92,100,121,124,144,147,169,189,190,191
z0/a.java, line(s) 32

信息 应用程序可以写入应用程序目录。敏感信息应加密

应用程序可以写入应用程序目录。敏感信息应加密


Files:
com/lokalise/sdk/shared_prefs/LokaliseInstallationInfo.java, line(s) 33
lg/b.java, line(s) 62
ng/a.java, line(s) 75,83,75,83

信息 此应用程序使用SQL Cipher,确保密钥没有硬编码在代码中

此应用程序使用SQL Cipher,确保密钥没有硬编码在代码中


Files:
ym/d.java, line(s) 85

安全 此应用程序使用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:
com/oppwa/mobile/connect/provider/c.java, line(s) 116,114,116,110,111,112,113,113
mb/k.java, line(s) 43,84,163,42,83,162,41,80,159
nts/C0424.java, line(s) 310,229,309,223,308,308
nts/C0489.java, line(s) 128,127,126,126
nts/C0592.java, line(s) 939,938,937,937
nts/C1196.java, line(s) 315,234,314,371,379,228,313,313
nts/C1261.java, line(s) 129,128,127,127
nts/C1364.java, line(s) 955,954,1613,1622,953,953
qs/d.java, line(s) 115,114,113
qs/e.java, line(s) 150,139,149,162,148,148
qs/j.java, line(s) 117,116,115,115
qs/k.java, line(s) 268,255,267,266,266
zd/j.java, line(s) 79,77,79,74,75,76,76
zf/a.java, line(s) 43,27,42,41,41

安全 此应用程序可能具有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:
tm/d.java, line(s) 224

安全 Firebase远程配置已禁用

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

响应码是 403

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

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

安全评分: ( Salam 2.13.3)