安全分析报告: Olc v13.3.11

安全分数


安全分数 54/100

风险评级


等级

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

严重性分布 (%)


隐私风险

0

用户/设备跟踪器


调研结果

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

高危 启用了调试配置。生产版本不能是可调试的

启用了调试配置。生产版本不能是可调试的
https://github.com/MobSF/owasp-mstg/blob/master/Document/0x04c-Tampering-and-Reverse-Engineering.md#debugging-and-tracing

Files:
com/oplus/epona/BuildConfig.java, line(s) 2,6
com/oplus/navi/BuildConfig.java, line(s) 2,6
com/oplus/tingle/BuildConfig.java, line(s) 2,4
com/oplus/utils/reflect/BuildConfig.java, line(s) 2,4

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

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

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

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

中危 Broadcast Receiver (com.oplus.olc.coreservice.receiver.EngineerModeActionReceiver) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Service (com.oplus.olc.coreservice.LogCoreService) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Broadcast Receiver (com.oplus.olc.coreservice.receiver.LogKitSwitchReceiver) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Broadcast Receiver (com.oplus.olc.coreservice.customer.CustomerLogReceiver) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Broadcast Receiver (com.oplus.olc.coreservice.receiver.ModemLogReceiver) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Service (com.oplus.olc.coreservice.ModemLogService) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Service (com.oplus.olc.alwayson.LogAlwaysOnService) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Content Provider (com.oplus.olc.uploader.provider.TaskInfoProvider) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Content Provider (com.oplus.epona.internal.EponaProvider) 受权限保护, 但是应该检查权限的保护级别。

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

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

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

Files:
f7/a.java, line(s) 13

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

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

Files:
com/oplus/epona/Constants.java, line(s) 10,11,7,9
com/oplus/epona/internal/AppFinder.java, line(s) 12,13
com/oplus/navi/PluginConst.java, line(s) 20
com/oplus/navi/component/ComponentConst.java, line(s) 7
com/oplus/olc/dependence/logmodel/DynamicModel.java, line(s) 421,427,433,439,445,451,457,463,469,475,481,487,493,499,505,511,517,523,529,535,541,547,553,565,559,571,577,583,589,595,601,607,613,619,625,631,637,643,649,655,661,667,673,679,685,691,697,703,709,715,721,727,733,739,745,751,757,763,769
com/oplus/olc/uploader/model/FileInfo.java, line(s) 246
com/oplus/statistics/data/SettingKeyBean.java, line(s) 4,6
com/oplus/statistics/storage/MemoryPreference.java, line(s) 14,18
com/oplus/tingle/ipc/cursor/ProviderCursor.java, line(s) 9
i4/k.java, line(s) 52

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

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

Files:
com/oplus/navi/internal/PluginContext.java, line(s) 124
com/oplus/navi/internal/PluginSubDirContext.java, line(s) 200,202
com/oplus/olc/coreservice/screenrecord/ScreenRecordService.java, line(s) 100,142,177
com/oplus/olc/uploader/component/AutoClearManager.java, line(s) 74
i5/e.java, line(s) 151
i5/r.java, line(s) 295
j4/z.java, line(s) 829
m4/d.java, line(s) 48,51
n4/d.java, line(s) 16
r4/d.java, line(s) 284

中危 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:
b/b.java, line(s) 121
c6/c.java, line(s) 70
t3/k.java, line(s) 89

中危 应用程序使用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:
n0/a.java, line(s) 4,5,6,7,99
u4/a.java, line(s) 6,7,33

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

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

Files:
j5/f.java, line(s) 39

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

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


Files:
j0/f.java, line(s) 56

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

从应用程序中识别出以下机密确保这些不是机密或私人信息
YWN0aW9uLmNvbS5oZXl0YXAub3BlbmlkLk9QRU5fSURfU0VSVklDRQ==
3e90c8af8aed4fdddfe251776b7a93f5
8c5b24e07a024eea2f00336137fd0f253686b8c7
Y29tLm5lYXJtZS5zdGF0aXN0aWNzLnJvbS5zZXJ2aWNlLlJlY2VpdmVyU2VydmljZQ==
Y29tLm5lYXJtZS5zdGF0aXN0aWNzLnJvbQ==
bcb6b006fd96cb6cf4245dc2a4b99c48
728E6B5E6D3FAA00E2DE12CC464D027BFFE2DD87329967F72028F2FD13C122E9
Y29tLmhleXRhcC5vcGVuaWQuSWRlbnRpZnlTZXJ2aWNl
4900734c010240a846af4887983ab420
dbb6ced0a9231ddb34d556c2a9e57c57
Y29tLmhleXRhcC5vcGVuaWQuSU9wZW5JRA==
Y29tLm5lYXJtZS5zdGF0aXN0aWNzLnJvbS5zZXJ2aWNlLkZpbGVVcGxvYWRTZXJ2aWNl

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

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

Files:
a3/b.java, line(s) 229,242
a3/f.java, line(s) 15,11,19,23
b/b.java, line(s) 68,73,79,82,89,97,115,134,141
b/c.java, line(s) 16,19,22
b/d.java, line(s) 9
c/a.java, line(s) 40,50,65,75,92,104,116,125,138,152,164
c/c.java, line(s) 49,64
c0/c.java, line(s) 133
c3/a.java, line(s) 20,30,33
c4/a.java, line(s) 175
c6/a.java, line(s) 20,23,26
c6/b.java, line(s) 9
c6/c.java, line(s) 64,83,90,115,120,126,129,136,144
com/coui/appcompat/widget/COUIEditText.java, line(s) 932
com/coui/appcompat/widget/COUISearchViewAnimate.java, line(s) 254
com/coui/appcompat/widget/COUISnackBar.java, line(s) 214
com/coui/appcompat/widget/b.java, line(s) 144,174
com/coui/appcompat/widget/f.java, line(s) 281
com/coui/appcompat/widget/floatingbutton/b.java, line(s) 274
com/coui/appcompat/widget/keyboard/SecurityKeyboardView.java, line(s) 186,500,503,1241
com/coui/appcompat/widget/keyboard/a.java, line(s) 209,447
com/coui/appcompat/widget/l.java, line(s) 447,439
com/coui/responsiveui/config/ResponsiveUIConfig.java, line(s) 79,147,217,218,243,263,264,48,92,97
com/oplus/epona/internal/ProviderRepo.java, line(s) 33
com/oplus/epona/utils/Logger.java, line(s) 28,34,44,57
com/oplus/log/Logger.java, line(s) 276,271
com/oplus/log/a.java, line(s) 168,170,39,42
com/oplus/log/core/i.java, line(s) 79,134
com/oplus/log/log/AndroidLog.java, line(s) 14,21,16,12,18
com/oplus/log/uploader/ResponseWrapper.java, line(s) 30
com/oplus/log/uploader/UploadManager.java, line(s) 230,311,351,388,459,201,248,255,296,325,331,341,377,379,392,448,450,463,358,401,417,475,491
com/oplus/olc/logcollection/task/BatteryStatsTask.java, line(s) 19
com/oplus/olc/logcollection/task/InterConnectTask.java, line(s) 19,21
com/oplus/olc/modulebusiness/QualityProtectModuleContent.java, line(s) 22,28,35,39
com/oplus/statistics/util/LogUtil.java, line(s) 10,15,20,34,39
com/oplus/tingle/ipc/utils/Logger.java, line(s) 30,35,44,64
com/oplus/utils/reflect/BaseField.java, line(s) 20
com/oplus/utils/reflect/RefBoolean.java, line(s) 36,54
com/oplus/utils/reflect/RefByte.java, line(s) 36,54
com/oplus/utils/reflect/RefChar.java, line(s) 36,54
com/oplus/utils/reflect/RefClass.java, line(s) 22,31,47,50,82,112
com/oplus/utils/reflect/RefConstructor.java, line(s) 32,45,53,55,89,101
com/oplus/utils/reflect/RefDouble.java, line(s) 36,54
com/oplus/utils/reflect/RefFloat.java, line(s) 36,54
com/oplus/utils/reflect/RefInt.java, line(s) 36,54
com/oplus/utils/reflect/RefLong.java, line(s) 36,54
com/oplus/utils/reflect/RefMethod.java, line(s) 75,83,99,111,132,141,159
com/oplus/utils/reflect/RefObject.java, line(s) 35,53
com/oplus/utils/reflect/RefShort.java, line(s) 36,54
d2/a.java, line(s) 507
e3/c.java, line(s) 39
f3/b.java, line(s) 41
g0/b.java, line(s) 29,37,55
g2/d.java, line(s) 126,159
g3/b.java, line(s) 65,23
h/b.java, line(s) 85,107
h2/b.java, line(s) 22
j0/f.java, line(s) 105,108,114
j2/g.java, line(s) 496
j4/g.java, line(s) 83,88,94,105
j6/a.java, line(s) 150,156,162,70,95,107,142,167,171,187,191
k1/j.java, line(s) 57
k1/s.java, line(s) 24
k1/t.java, line(s) 21,38,54
k4/i.java, line(s) 116
k5/f.java, line(s) 13,19,25,31,42,48
m/c.java, line(s) 77,227
m/e.java, line(s) 24,33,47,56
m/f.java, line(s) 27
m/i.java, line(s) 60,74,78
m/j.java, line(s) 154,167,173,226,253,263,274,282,153,166,172,225,252,262,273,281,107,176,220,244
m/n.java, line(s) 59
m0/c.java, line(s) 32,35,47,25,39
n/a.java, line(s) 57
n/b.java, line(s) 62
n/f.java, line(s) 196,241,259,265
n3/b.java, line(s) 6,10,14
n5/a.java, line(s) 7,16,20
o/c.java, line(s) 552,557
o/e.java, line(s) 64
o/f.java, line(s) 36,68
o/g.java, line(s) 48,210
o/j.java, line(s) 81,84
o/k.java, line(s) 97
o0/h0.java, line(s) 35,84
o0/x.java, line(s) 31,40,42,79,92
o3/b.java, line(s) 20
o3/c.java, line(s) 26,33,28,24,30
p/a.java, line(s) 85,94,152,162
p/e.java, line(s) 38,61
p0/h.java, line(s) 238,241
p1/h.java, line(s) 48
p2/a.java, line(s) 28
p2/b.java, line(s) 263,553,705
p2/f.java, line(s) 91
p2/l.java, line(s) 30,60
r4/d.java, line(s) 50,43,213
s/b.java, line(s) 22
t2/a.java, line(s) 21
t2/b.java, line(s) 35,71,88
t3/d.java, line(s) 14,21
t3/j.java, line(s) 16,33
t3/k.java, line(s) 44,59,49
t4/a.java, line(s) 17,26,35,42,50,67,77,79,146,155,162,170
t5/d.java, line(s) 25,30,35
u/b.java, line(s) 33,45,47,59,61,75,78
v/c.java, line(s) 17
w/a0.java, line(s) 689,855,500,512,519,528,36,55,846
w/b.java, line(s) 73
w/f.java, line(s) 18,27
w/h.java, line(s) 13
w/s.java, line(s) 630
w/t.java, line(s) 18,29
w/v.java, line(s) 14,29,47,69,85,102,122
w0/a.java, line(s) 78,168,178,56,181,132,140
w0/b.java, line(s) 55,95,66,126,82,116
x/c.java, line(s) 126
z/c.java, line(s) 24,33
z/h.java, line(s) 27,36
z2/g.java, line(s) 193
z2/u.java, line(s) 97

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

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

Files:
n7/d.java, line(s) 185,183,182,182

安全 此应用程序没有隐私跟踪程序

此应用程序不包括任何用户或设备跟踪器。在静态分析期间没有找到任何跟踪器。

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

{'ip': '119.147.175.15', 'country_short': 'CN', 'country_long': 'China', 'region': 'Guangdong', 'city': 'Guangzhou', 'latitude': '23.127361', 'longitude': '113.264252'}

安全评分: ( Olc 13.3.11)