安全分析报告: Code Recipes v2.43

安全分数


安全分数 41/100

风险评级


等级

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

严重性分布 (%)


隐私风险

0

用户/设备跟踪器


调研结果

高危 4
中危 11
信息 1
安全 1
关注 0

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

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

Files:
ru/code_samples/obraztsov_develop/codesamples/MainActivity.java, line(s) 229,233

高危 默认情况下,调用Cipher.getInstance("AES")将返回AES ECB模式。众所周知,ECB模式很弱,因为它导致相同明文块的密文相同

默认情况下,调用Cipher.getInstance("AES")将返回AES ECB模式。众所周知,ECB模式很弱,因为它导致相同明文块的密文相同
https://github.com/MobSF/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#weak-block-cipher-mode

Files:
botX/OoOo.java, line(s) 40

高危 该文件是World Readable。任何应用程序都可以读取文件

该文件是World Readable。任何应用程序都可以读取文件
https://github.com/MobSF/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#testing-local-storage-for-sensitive-data-mstg-storage-1-and-mstg-storage-2

Files:
botX/OoOo.java, line(s) 94

高危 如果一个应用程序使用WebView.loadDataWithBaseURL方法来加载一个网页到WebView,那么这个应用程序可能会遭受跨站脚本攻击

如果一个应用程序使用WebView.loadDataWithBaseURL方法来加载一个网页到WebView,那么这个应用程序可能会遭受跨站脚本攻击
https://github.com/MobSF/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#static-analysis-7

Files:
y3/n.java, line(s) 117,11

中危 应用程序存在Janus漏洞

应用程序使用了v1签名方案进行签名,如果只使用v1签名方案,那么它就容易受到安卓5.0-8.0上的Janus漏洞的攻击。在安卓5.0-7.0上运行的使用了v1签名方案的应用程序,以及同时使用了v2/v3签名方案的应用程序也同样存在漏洞。

中危 应用程序可以安装在有漏洞的已更新 Android 版本上

Android 5.0-5.0.2, [minSdk=21]
该应用程序可以安装在具有多个未修复漏洞的旧版本 Android 上。这些设备不会从 Google 接收合理的安全更新。支持 Android 版本 => 10、API 29 以接收合理的安全更新。

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

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

中危 Activity (ru.code_samples.obraztsov_develop.codesamples.MainActivity) 未被保护。

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

中危 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/MobSF/owasp-mstg/blob/master/Document/0x04h-Testing-Code-Quality.md#injection-flaws-mstg-arch-2-and-mstg-platform-2

Files:
a4/b.java, line(s) 5,6,124
h1/b.java, line(s) 4,23
j0/d.java, line(s) 5,66
n1/b.java, line(s) 5,138
o1/d.java, line(s) 7,62
o1/j.java, line(s) 4,32
o1/k.java, line(s) 4,5,95
p1/f.java, line(s) 4,31
p1/i.java, line(s) 4,20
p1/o.java, line(s) 4,5,63

中危 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:
z3/e.java, line(s) 44

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

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

Files:
d/n0.java, line(s) 11
t3/a.java, line(s) 3
t3/b.java, line(s) 3
t3/c.java, line(s) 4
u3/a.java, line(s) 4

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

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


Files:
u0/d.java, line(s) 86

中危 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:
j/a1.java, line(s) 77

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

从应用程序中识别出以下机密确保这些不是机密或私人信息
DCqzhwPsNid4F84F+1l6IpKLsP0QH17Y6dgj+vRTFeo=
HRzYOlwXDJkSsqVsksgR6MCquN/mPoJkpSJUcIsPgxw=
Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U=

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

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

Files:
a0/d.java, line(s) 28,31,34,72,116,127
a0/k.java, line(s) 23,55
a2/a.java, line(s) 47,57
b2/b.java, line(s) 278,412,1893,1907,1918,1961,292,302,407,425,1689
b4/b.java, line(s) 89,150,200,221,245
c0/k.java, line(s) 20
c1/f.java, line(s) 171
c1/q.java, line(s) 266
c3/l.java, line(s) 1013,118,127,1562,1571,853,552
c4/c.java, line(s) 15,19
d/c.java, line(s) 320,339
d/c0.java, line(s) 60
d/h0.java, line(s) 639,1311,1948,1950,1953,1080,1089,1099,1108,1129,1164,1187,1215,715,876,879,1415,1428,1826
d/n.java, line(s) 387
d/q0.java, line(s) 300,368,366,395
d/s.java, line(s) 33
e0/e.java, line(s) 28
e1/a.java, line(s) 27,30
f3/b.java, line(s) 16
f3/c.java, line(s) 46,54,59,71,82,96,100,128
f3/d.java, line(s) 33
f3/g.java, line(s) 39,71,84,97
g0/c.java, line(s) 82
g0/j0.java, line(s) 77
g0/q.java, line(s) 25,38,85,147,190,209,233
g0/q1.java, line(s) 26
g0/r1.java, line(s) 30,42,49,58
g0/u0.java, line(s) 284,210,283
g0/v1.java, line(s) 66,85,57
g0/x0.java, line(s) 17,28
g2/a.java, line(s) 116,121
h/j.java, line(s) 60,109,121,131
h/k.java, line(s) 149
i/i.java, line(s) 414
i/o.java, line(s) 515
j/a0.java, line(s) 551,562,582,597,602,607,612,617
j/a1.java, line(s) 75,97,102,135,49,54,144
j/b3.java, line(s) 223
j/j.java, line(s) 78,154,210,178,190
j/k4.java, line(s) 112,196
j/m1.java, line(s) 19
j/o4.java, line(s) 23
j/q1.java, line(s) 78,87,191
j/r0.java, line(s) 34,89,94,119
j/r2.java, line(s) 264,54,59,66,176,247
j/s3.java, line(s) 82,236,352,168,321,332,358,394,408
j/w3.java, line(s) 24
j/x.java, line(s) 55
j/x0.java, line(s) 59
j/x2.java, line(s) 19
j/y2.java, line(s) 22,32,43,55
j/z.java, line(s) 200
j0/d.java, line(s) 95,96,126,127,211
j1/n.java, line(s) 75,82,74,81
j2/b.java, line(s) 32
k0/u.java, line(s) 15,14
l0/d.java, line(s) 32
n0/e.java, line(s) 232
n1/b.java, line(s) 52,51
o1/d.java, line(s) 89,88
o1/k.java, line(s) 499,500
p2/c.java, line(s) 106,142
ru/code_samples/obraztsov_develop/codesamples/MainActivity.java, line(s) 266,255,256,260,274
ru/code_samples/obraztsov_develop/codesamples/MyApplication.java, line(s) 44,25,28,38,42,34
s/c.java, line(s) 56
s/g.java, line(s) 45
s/h.java, line(s) 27
s/j.java, line(s) 304,323,335
s/n.java, line(s) 394,528,534,535,536,545,583,589,590,591,600,649,431,438,474
u0/a.java, line(s) 82,195,40,47,54,56,62,50,58,65,78,99,112,159
u0/d.java, line(s) 34,45,47,87,106,179,199,203,211,218,256,258,272,316,80,192,253,260,286,295,320,339
u1/d.java, line(s) 55,130,135
u1/e.java, line(s) 84,98,144,165,173,197
u1/h.java, line(s) 48
u1/j.java, line(s) 27
u1/l.java, line(s) 39
u1/p.java, line(s) 20
u2/b.java, line(s) 195
v0/e.java, line(s) 630,635
w/f.java, line(s) 46
w/l.java, line(s) 38,48,58
w1/d.java, line(s) 262,476
w1/m.java, line(s) 33
w1/o.java, line(s) 274,332
w2/d.java, line(s) 79,113
x/e.java, line(s) 63
x0/e0.java, line(s) 132,105
x0/f1.java, line(s) 36
x0/k1.java, line(s) 160
x0/u0.java, line(s) 151
x0/y.java, line(s) 532
x1/a0.java, line(s) 40,46
x1/c0.java, line(s) 44
x1/e.java, line(s) 51
x1/l.java, line(s) 78,81,110,113,116,155,160
x1/o.java, line(s) 15
x1/u.java, line(s) 97,110
x1/v.java, line(s) 30
x1/x.java, line(s) 41,56
x2/d.java, line(s) 15
y/b.java, line(s) 227,431,57,67,403,412,578,587
y/p.java, line(s) 64,88,98
z/f.java, line(s) 33,38
z/g.java, line(s) 35
z/h.java, line(s) 54
z/i.java, line(s) 38
z/j.java, line(s) 46,110
z2/e.java, line(s) 266,322,319,352,374
z2/g.java, line(s) 143

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

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

安全评分: ( Code Recipes 2.43)