安全分析报告: Kapu Sangam v2.8.1

安全分数


安全分数 46/100

风险评级


等级

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

严重性分布 (%)


隐私风险

4

用户/设备跟踪器


调研结果

高危 6
中危 19
信息 3
安全 3
关注 2

高危 App 链接 assetlinks.json 文件未找到

[android:name=com.communityshaadi.android.ui.main.MainActivity][android:host=http://sd2.in]
App Link 资产验证 URL (http://sd2.in/.well-known/assetlinks.json) 未找到或配置不正确。(状态代码:301)。应用程序链接允许用户从 Web URL/电子邮件重定向到移动应用程序。如果此文件丢失或为 App Link 主机/域配置不正确,则恶意应用程序可以劫持此类 URL。这可能会导致网络钓鱼攻击,泄露 URI 中的敏感数据,例如 PII、OAuth 令牌、魔术链接/密码重置令牌等。您必须通过托管 assetlinks.json 文件并通过 Activity intent-filter 中的 [android:autoVerify=“true”] 启用验证来验证 App Link 网域。

高危 App 链接 assetlinks.json 文件未找到

[android:name=com.communityshaadi.android.ui.main.MainActivity][android:host=http://sangam.com]
App Link 资产验证 URL (http://sangam.com/.well-known/assetlinks.json) 未找到或配置不正确。(状态代码:301)。应用程序链接允许用户从 Web URL/电子邮件重定向到移动应用程序。如果此文件丢失或为 App Link 主机/域配置不正确,则恶意应用程序可以劫持此类 URL。这可能会导致网络钓鱼攻击,泄露 URI 中的敏感数据,例如 PII、OAuth 令牌、魔术链接/密码重置令牌等。您必须通过托管 assetlinks.json 文件并通过 Activity intent-filter 中的 [android:autoVerify=“true”] 启用验证来验证 App Link 网域。

高危 App 链接 assetlinks.json 文件未找到

[android:name=com.communityshaadi.android.ui.main.MainActivity][android:host=https://sangam.com]
App Link 资产验证 URL (https://sangam.com/.well-known/assetlinks.json) 未找到或配置不正确。(状态代码:301)。应用程序链接允许用户从 Web URL/电子邮件重定向到移动应用程序。如果此文件丢失或为 App Link 主机/域配置不正确,则恶意应用程序可以劫持此类 URL。这可能会导致网络钓鱼攻击,泄露 URI 中的敏感数据,例如 PII、OAuth 令牌、魔术链接/密码重置令牌等。您必须通过托管 assetlinks.json 文件并通过 Activity intent-filter 中的 [android:autoVerify=“true”] 启用验证来验证 App Link 网域。

高危 Activity (com.communityshaadi.android.ui.main.MainActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 Activity (com.google.android.play.core.missingsplits.PlayCoreMissingSplitsActivity) 的启动模式不是standard模式

Activity 不应将启动模式属性设置为 "singleTask/singleInstance",因为这会使其成为根 Activity,并可能导致其他应用程序读取调用 Intent 的内容。因此,当 Intent 包含敏感信息时,需要使用 "standard" 启动模式属性。

高危 该文件是World Writable。任何应用程序都可以写入文件

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

Files:
com/appsflyer/AppsFlyerLibCore.java, line(s) 4969

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

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

中危 Activity (com.communityshaadi.android.ui.main.MainActivity) 未被保护。

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

中危 Service (com.communityshaadi.android.service.fcm.FcmService) 未被保护。

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

中危 Broadcast Receiver (com.appsflyer.MultipleInstallBroadcastReceiver) 未被保护。

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

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

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

中危 Service (com.google.android.gms.auth.api.signin.RevocationBoundService) 受权限保护, 但是应该检查权限的保护级别。

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

中危 Service (com.google.android.play.core.assetpacks.AssetPackExtractionService) 未被保护。

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

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

Permission: com.google.android.c2dm.permission.SEND [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:
a/p/c.java, line(s) 4,241,252,278,279,280
a/q/a/g/a.java, line(s) 5,6,7,8,58,59
b/b/a/b/i/x/j/b0.java, line(s) 5,6,180,196,398
b/b/a/b/i/x/j/f0.java, line(s) 3,19
b/b/a/b/i/x/j/h0.java, line(s) 4,5,85
b/c/a/a/j/b.java, line(s) 4,5,27,33

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

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

Files:
b/b/a/d/g/c/b.java, line(s) 4
b/b/a/d/g/i/g0.java, line(s) 22
com/appsflyer/internal/b.java, line(s) 13
com/communityshaadi/android/e/a/b.java, line(s) 28
com/communityshaadi/android/service/fcm/NotificationPushWrapper.java, line(s) 23
com/shaadi/notificationdelegate/GenericDelegate.java, line(s) 22
com/shaadi/notificationdelegate/NotificationData.java, line(s) 12

中危 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:
com/appsflyer/internal/aa.java, line(s) 39
com/appsflyer/internal/ai.java, line(s) 29
e/d0/c.java, line(s) 251

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

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

Files:
com/appsflyer/AppsFlyerProperties.java, line(s) 15

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

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

Files:
com/communityshaadi/android/g/f/c.java, line(s) 61,33

中危 IP地址泄露

IP地址泄露


Files:
com/appsflyer/internal/ae.java, line(s) 202

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

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

Files:
com/communityshaadi/android/g/f/a.java, line(s) 37

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

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


Files:
a/n/c.java, line(s) 242
com/communityshaadi/android/g/f/a.java, line(s) 37,38

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

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

Files:
com/appsflyer/internal/ai.java, line(s) 44

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

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

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

从应用程序中识别出以下机密确保这些不是机密或私人信息
"firebase_database_url" : "https://app-notify-b79ce.firebaseio.com"
"google_api_key" : "AIzaSyDPGlaCRYR18-4-ZY93tEpIClMi4aftW6g"
"google_app_id" : "1:886044867688:android:c466c67ec5286188"
"google_crash_reporting_api_key" : "AIzaSyDPGlaCRYR18-4-ZY93tEpIClMi4aftW6g"

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

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

Files:
a/a/k/a/a.java, line(s) 100
a/a/n/g.java, line(s) 133,166,246
a/e/b/d.java, line(s) 205
a/e/b/k/f.java, line(s) 306
a/g/e/c.java, line(s) 572,577
a/g/e/e.java, line(s) 84
a/g/e/f.java, line(s) 40,74
a/g/e/g.java, line(s) 49,107
a/g/e/j.java, line(s) 94,97
a/g/e/k.java, line(s) 92
a/g/i/b.java, line(s) 20
a/g/k/b.java, line(s) 38,49,51,62,64,84,87
a/g/l/b.java, line(s) 19
a/g/m/a0.java, line(s) 270,282,289,298
a/g/m/b.java, line(s) 57
a/g/m/b0/c.java, line(s) 133
a/g/m/f.java, line(s) 21,30
a/g/m/h.java, line(s) 14
a/g/m/s.java, line(s) 594
a/g/m/t.java, line(s) 21,32
a/g/m/v.java, line(s) 20,35,56,83,104,125,146
a/i/b/c.java, line(s) 399
a/j/a/a.java, line(s) 270,925,1061,1064,1073,1079,1113,1133,1137,1142,1156,1192,1207,1221,1225,1231,1290,1304,1322,1329,1336,1397,1408,1415,1498,1549,1635,1644,1667,1674,1830,1891,1904,1957,2025,2066,2122,2290,611,619,652,664,676,688,700,712,724,736,748,755,766,778,64,761,973,1462,1470,1807,2038,2042,2046,2309,2316,2353
a/l/a/a.java, line(s) 30
a/m/a/b.java, line(s) 46,61,69,93,191,210,318,345,351,53
a/m/b/c.java, line(s) 77
a/n/a.java, line(s) 231,348,397,399,197,204,206,212,331,333,342,345,386,110,141,200,208,215,226,237,249,266,312
a/n/c.java, line(s) 55,65,67,118,120,128,170,192,243,259,277,289,293,295,300,114,122,180,196,211,236,285
a/p/c.java, line(s) 67,266,273,332
a/p/e.java, line(s) 155
a/q/a/c.java, line(s) 35,38,50,28,42
a/r/i0.java, line(s) 34,85
a/r/y.java, line(s) 39,48,50,87,100
a/s/a/a/i.java, line(s) 247,250
b/a/a/b/a.java, line(s) 7,13,8,14
b/b/a/b/i/v/a.java, line(s) 7,11,15,23,27
b/b/a/d/a/a/a.java, line(s) 243,275
b/b/a/d/a/a/b.java, line(s) 40,55,65,76
b/b/a/d/a/a/c.java, line(s) 17,29,41,50
b/b/a/d/d/b.java, line(s) 27,44,69
b/b/a/d/d/d.java, line(s) 61,111,125,151,226,240,56,109,123,149,221,239,146,164,176,181,192
b/b/a/d/d/e.java, line(s) 28,25,25
b/b/a/d/d/i.java, line(s) 53,48
b/b/a/d/d/j.java, line(s) 111,151,197,106,149,172,193,227,277,296,339,173,228,278,297,340,140,205
b/b/a/d/d/s.java, line(s) 25
b/b/a/d/d/u.java, line(s) 33,47,25,39
b/b/a/d/d/v.java, line(s) 45,34,64
b/b/a/d/e/a0.java, line(s) 40,43,54
b/b/a/d/e/c0.java, line(s) 55,57,51
b/b/a/d/e/e.java, line(s) 52,121
b/b/a/d/e/j.java, line(s) 86,36,74,166,174,178,187,199,202
b/b/a/d/e/k.java, line(s) 38,90
b/b/a/d/e/o/a.java, line(s) 37,42,61
b/b/a/d/e/t.java, line(s) 75,79,34
b/b/a/d/e/u.java, line(s) 47
b/b/a/d/g/h/o.java, line(s) 16
b/b/a/d/g/i/a3.java, line(s) 108
b/b/a/d/g/i/f.java, line(s) 63
b/b/a/d/g/i/g0.java, line(s) 83,67,56,64,73,124,130,270,281
b/b/a/d/g/i/h3.java, line(s) 73
b/b/a/d/g/i/j3.java, line(s) 21
b/b/a/d/g/i/n4.java, line(s) 16
b/b/a/d/g/i/o3.java, line(s) 22
b/b/a/d/g/i/o4.java, line(s) 30,39,74,88,29,38,73
b/b/a/d/g/i/p3.java, line(s) 25
b/b/a/d/g/i/q3.java, line(s) 22
b/b/a/d/g/i/qa.java, line(s) 21
b/b/a/d/g/i/u3.java, line(s) 228,95,122,115,226
b/b/a/d/h/b/a.java, line(s) 78,82
b/b/a/d/i/a.java, line(s) 63,99,162
b/b/a/e/l/h.java, line(s) 51
b/b/a/e/w/d.java, line(s) 152,184
b/b/a/e/x/b.java, line(s) 32
b/b/a/e/z/g.java, line(s) 254
b/b/a/f/a/a/f.java, line(s) 52,33,59,66,51,58,65,72,73,79,80
b/c/a/a/k/c.java, line(s) 11,17,39
com/appsflyer/AFLogger.java, line(s) 34,144,115,48,60,78
com/appsflyer/AppsFlyerLibCore.java, line(s) 497,515,533,1460,1467,2674
com/appsflyer/internal/z.java, line(s) 28,35,94,102
com/communityshaadi/android/MyApplication.java, line(s) 66,75,83
com/communityshaadi/android/b/a.java, line(s) 34
com/communityshaadi/android/b/b.java, line(s) 45,48,51,54,57,64
com/communityshaadi/android/b/c.java, line(s) 69,139
com/communityshaadi/android/b/e/d.java, line(s) 17
com/communityshaadi/android/b/e/e.java, line(s) 21,26
com/communityshaadi/android/f/a.java, line(s) 50,66,80,82,107,126
com/communityshaadi/android/g/d.java, line(s) 44
com/communityshaadi/android/g/f/a.java, line(s) 121
com/communityshaadi/android/g/f/b.java, line(s) 107
com/communityshaadi/android/service/fcm/FcmService.java, line(s) 15
com/communityshaadi/android/service/fcm/NotificationPushWrapper.java, line(s) 104
com/communityshaadi/android/ui/main/MainActivity.java, line(s) 127,152,252,255,291,307,314,325,337,360,591,614,637,646,650,751,828,830,849,95,244,82,107
com/communityshaadi/android/ui/splash/SplashActivity.java, line(s) 35,58
com/shaadi/notificationdelegate/NotificationData.java, line(s) 43

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

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


Files:
com/communityshaadi/android/c/a/a.java, line(s) 47,47

信息 应用与Firebase数据库通信

该应用与位于 https://app-notify-b79ce.firebaseio.com 的 Firebase 数据库进行通信

安全 此应用程序使用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:
b/c/a/a/g/h.java, line(s) 32,31,30,30
e/u.java, line(s) 116,105,115,114,114

安全 此应用程序可能具有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:
b/b/a/d/g/i/u3.java, line(s) 82
b/b/a/f/a/a/w.java, line(s) 31

安全 Firebase远程配置已禁用

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

{
    "state": "NO_TEMPLATE"
}

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

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

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

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

安全评分: ( Kapu Sangam 2.8.1)