安全分析报告: Two Factor App v1.0

安全分数


安全分数 53/100

风险评级


等级

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

严重性分布 (%)


隐私风险

0

用户/设备跟踪器


调研结果

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

中危 应用程序可以安装在存在漏洞的 Android 版本上

Android 8.0, minSdk=26]
该应用程序可以安装在具有多个漏洞的旧版本 Android 上。支持 Android 版本 => 10、API 29 以接收合理的安全更新。

中危 应用程序已启用明文网络流量

[android:usesCleartextTraffic=true]
应用程序打算使用明文网络流量,例如明文HTTP,FTP协议,DownloadManager和MediaPlayer。针对API级别27或更低的应用程序,默认值为“true”。针对API级别28或更高的应用程序,默认值为“false”。避免使用明文流量的主要原因是缺乏机密性,真实性和防篡改保护;网络攻击者可以窃听传输的数据,并且可以在不被检测到的情况下修改它。

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

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

中危 Activity (com.app.freeguarding.twofactor.dpm.ProvisioningSuccessActivity) 未被保护。

存在一个intent-filter。
发现 Activity与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Activity是显式导出的。

中危 Broadcast Receiver (com.app.freeguarding.twofactor.bot.BootReceiver) 未被保护。

存在一个intent-filter。
发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。

中危 Broadcast Receiver (com.app.freeguarding.twofactor.dpm.VncDeviceAdminReceiver) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Service (com.app.freeguarding.twofactor.lib.AcService) 受权限保护, 但是应该检查权限的保护级别。

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

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

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

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

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

中危 高优先级的Intent (10000)

[android:priority]
通过设置一个比另一个Intent更高的优先级,应用程序有效地覆盖了其他请求。

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

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

Files:
c/w40.java, line(s) 88

中危 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:
c/b21.java, line(s) 73
c/u31.java, line(s) 86

中危 应用程序使用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:
c/mv.java, line(s) 4,318
c/rw.java, line(s) 5,44
c/vk0.java, line(s) 5,6,186
c/xk0.java, line(s) 4,5,112
c/xw.java, line(s) 5,6,7,8,9,169

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

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

Files:
c/gg.java, line(s) 209
c/xj.java, line(s) 11

中危 IP地址泄露

IP地址泄露


Files:
c/z9.java, line(s) 58

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

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


Files:
c/c21.java, line(s) 84
c/jq.java, line(s) 4279
c/kg1.java, line(s) 118,283,284

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

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

Files:
c/cm1.java, line(s) 3
c/dm1.java, line(s) 3
c/em1.java, line(s) 3
c/fm1.java, line(s) 3
c/gm1.java, line(s) 3
c/ma1.java, line(s) 9
c/ra1.java, line(s) 6

中危 不安全的Web视图实现。可能存在WebView任意代码执行漏洞

不安全的Web视图实现。可能存在WebView任意代码执行漏洞
https://github.com/MobSF/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-javascript-execution-in-webviews-mstg-platform-5

Files:
com/app/freeguarding/twofactor/overlay/OverlayActivity.java, line(s) 115,114

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

从应用程序中识别出以下机密确保这些不是机密或私人信息
"google_crash_reporting_api_key" : "AIzaSyDT3q9xO2Ed2iaVz5Ve2nYvRxSS6R4hqH0"
"google_api_key" : "AIzaSyDT3q9xO2Ed2iaVz5Ve2nYvRxSS6R4hqH0"
07a899a7-6514-47f1-8347-af150ad18c3c

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

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

Files:
c/ab0.java, line(s) 63
c/b60.java, line(s) 55,65,75,85,91,119
c/ba0.java, line(s) 35
c/bb0.java, line(s) 153,159
c/c31.java, line(s) 58
c/c80.java, line(s) 61,76
c/c9.java, line(s) 42
c/cd.java, line(s) 359
c/cn0.java, line(s) 110
c/cv0.java, line(s) 14
c/d8.java, line(s) 448,456
c/d80.java, line(s) 14
c/dq0.java, line(s) 35
c/e40.java, line(s) 103
c/e90.java, line(s) 143,316,319,357,364,369
c/f41.java, line(s) 30,40
c/g40.java, line(s) 51,100
c/g50.java, line(s) 57
c/gc0.java, line(s) 64,101
c/ge.java, line(s) 4472,4484
c/h41.java, line(s) 74,95,112,122
c/h8.java, line(s) 328,381,396,860,970
c/h90.java, line(s) 178
c/hb0.java, line(s) 43,48,51,57,60
c/hq0.java, line(s) 17,65,75
c/i60.java, line(s) 134
c/i70.java, line(s) 96
c/ia.java, line(s) 130
c/ib.java, line(s) 666
c/j70.java, line(s) 35
c/jq.java, line(s) 329
c/jv0.java, line(s) 55
c/k41.java, line(s) 89
c/k60.java, line(s) 135
c/km0.java, line(s) 20,30
c/ku.java, line(s) 53
c/l41.java, line(s) 63,82
c/l60.java, line(s) 40
c/l9.java, line(s) 76,86,159,169,242,252
c/ld0.java, line(s) 37
c/m60.java, line(s) 94
c/m8.java, line(s) 140,388,396
c/m80.java, line(s) 193,207,213,226,235,239,246,251,265,270
c/mp.java, line(s) 67
c/na0.java, line(s) 30,53,75
c/nd.java, line(s) 627,646,758
c/o40.java, line(s) 239,354
c/o80.java, line(s) 112,132,153,177,293,310,374
c/oa0.java, line(s) 14
c/oq0.java, line(s) 27
c/ou.java, line(s) 14
c/ov0.java, line(s) 85
c/p30.java, line(s) 45
c/p40.java, line(s) 57
c/p41.java, line(s) 139
c/p80.java, line(s) 23,28
c/po0.java, line(s) 233,318
c/q21.java, line(s) 41
c/q41.java, line(s) 90,118
c/q50.java, line(s) 127,185
c/r40.java, line(s) 15
c/r50.java, line(s) 94,103,120,167,177,206,219,242,249
c/s60.java, line(s) 16
c/s90.java, line(s) 67,89,94,99
c/sc0.java, line(s) 65,102
c/sr0.java, line(s) 15
c/ss0.java, line(s) 46
c/t60.java, line(s) 40
c/tl0.java, line(s) 49,94,113,139,215,229
c/to0.java, line(s) 65,161
c/u21.java, line(s) 99
c/u41.java, line(s) 23
c/u80.java, line(s) 82,133,136,139,142,145,150,153,158
c/uf.java, line(s) 191,201,263,284,290,368,376
c/ul0.java, line(s) 17
c/ur0.java, line(s) 55,126,166,175
c/v60.java, line(s) 98
c/v70.java, line(s) 67
c/v8.java, line(s) 338
c/v90.java, line(s) 21
c/vc.java, line(s) 140,145,160,172,199
c/vn.java, line(s) 812
c/w31.java, line(s) 54,84
c/wf1.java, line(s) 19,24,29,34,39,44,49,54,59,64,69,74,79,84,89,94,99,104,109,114,119
c/x20.java, line(s) 98,148
c/x30.java, line(s) 55,66,187,191,193,199
c/x41.java, line(s) 96,98,104,111,128,138,153
c/x8.java, line(s) 221
c/xa0.java, line(s) 158
c/y10.java, line(s) 198,228,262,269
c/y31.java, line(s) 194,254,258
c/ya0.java, line(s) 352
c/yd0.java, line(s) 57
c/yl0.java, line(s) 37
c/z20.java, line(s) 588,604,619
c/z30.java, line(s) 46
c/zb0.java, line(s) 12
c/zl0.java, line(s) 89,123,149,165,188,230,245,283
com/app/freeguarding/twofactor/lib/VncService.java, line(s) 418

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

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

Files:
com/app/freeguarding/twofactor/lib/AcService.java, line(s) 6,340

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

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

安全评分: ( Two Factor App 1.0)