安全分数
安全分数 51/100
风险评级
等级
- A
- B
- C
- F
严重性分布 (%)
隐私风险
3
用户/设备跟踪器
调研结果
高危
2
中危
21
信息
2
安全
2
关注
7
高危 基本配置不安全地配置为允许到所有域的明文流量。
Scope: *
高危 应用程序使用带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: com/v2cross/shadowrocket/util/AES256.java, line(s) 39,24
中危 应用程序数据可以被备份
[android:allowBackup=true] 这个标志允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。
中危 Activity (com.v2cross.shadowrocket.ui.ScSwitchActivity) 未被保护。
[android:exported=true] 发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。
中危 Activity (com.v2cross.shadowrocket.ui.SwitchProfileActivity) 未被保护。
[android:exported=true] 发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。
中危 Broadcast Receiver (com.v2cross.shadowrocket.receiver.WidgetProvider) 未被保护。
[android:exported=true] 发现 Broadcast Receiver与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。
中危 Service (com.v2cross.shadowrocket.service.QSTileService) 受权限保护, 但是应该检查权限的保护级别。
Permission: android.permission.BIND_QUICK_SETTINGS_TILE [android:exported=true] 发现一个 Service被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。
中危 Activity (com.v2cross.shadowrocket.ui.TaskerActivity) 未被保护。
[android:exported=true] 发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。
中危 Broadcast Receiver (com.v2cross.shadowrocket.receiver.TaskerReceiver) 未被保护。
[android:exported=true] 发现 Broadcast Receiver与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。
中危 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被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。
中危 Broadcast Receiver (androidx.work.impl.diagnostics.DiagnosticsReceiver) 受权限保护, 但是应该检查权限的保护级别。
Permission: android.permission.DUMP [android:exported=true] 发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。
中危 Service (com.google.android.play.core.assetpacks.AssetPackExtractionService) 未被保护。
[android:exported=true] 发现 Service与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。
中危 Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护, 但是应该检查权限的保护级别。
Permission: android.permission.DUMP [android:exported=true] 发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。
中危 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等
文件可能包含硬编码的敏感信息,如用户名、密码、密钥等 https://github.com/MobSF/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#checking-memory-for-sensitive-data-mstg-storage-10 Files: coil/memory/MemoryCache.java, line(s) 121 coil/memory/MemoryCacheService.java, line(s) 39 coil/request/Parameters.java, line(s) 148 com/drake/net/exception/NoCacheException.java, line(s) 22 com/v2cross/shadowrocket/BuildConfig.java, line(s) 12 com/v2cross/shadowrocket/dto/V2rayConfig.java, line(s) 3079,1584,1478 com/v2cross/shadowrocket/response/UserInfoResponse.java, line(s) 253 com/v2cross/shadowrocket/util/VpnEncrypt.java, line(s) 16 io/github/g00fy2/quickie/content/QRContent.java, line(s) 161 io/grpc/internal/DnsNameResolver.java, line(s) 74,72,73,75 io/grpc/internal/TransportFrameUtil.java, line(s) 33 org/solovyev/android/checkout/ConcurrentCache.java, line(s) 88,66,37,41,32,52,63
中危 应用程序创建临时文件。敏感信息永远不应该被写进临时文件
应用程序创建临时文件。敏感信息永远不应该被写进临时文件 Files: coil/decode/SourceImageSource.java, line(s) 131
中危 IP地址泄露
IP地址泄露 Files: com/v2cross/shadowrocket/AppConfig.java, line(s) 13,14 com/v2cross/shadowrocket/service/V2RayVpnService.java, line(s) 167,261,165,187,261 com/v2cross/shadowrocket/ui/UserAssetActivity.java, line(s) 221 com/v2cross/shadowrocket/util/Utils.java, line(s) 436 com/v2cross/shadowrocket/util/V2rayConfigUtil.java, line(s) 223,482,622 com/v2cross/shadowrocket/util/V2rayConfigUtilForTest.java, line(s) 210 io/grpc/okhttp/OkHttpClientTransport.java, line(s) 249 io/grpc/okhttp/OkHttpServerTransport.java, line(s) 599,605,611,696
中危 应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据
应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据 https://github.com/MobSF/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#external-storage Files: com/v2cross/shadowrocket/util/LogRecorder.java, line(s) 342,345 com/v2cross/shadowrocket/util/Utils.java, line(s) 518
中危 应用程序使用不安全的随机数生成器
应用程序使用不安全的随机数生成器 https://github.com/MobSF/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#weak-random-number-generators Files: io/grpc/internal/DnsNameResolver.java, line(s) 33 io/grpc/internal/ExponentialBackoffPolicy.java, line(s) 5 io/grpc/internal/RetriableStream.java, line(s) 23 io/grpc/okhttp/OkHttpClientTransport.java, line(s) 70 io/grpc/util/OutlierDetectionLoadBalancer.java, line(s) 26 io/grpc/util/RoundRobinLoadBalancer.java, line(s) 22
中危 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: com/drake/net/utils/FileUtilsKt.java, line(s) 33
中危 应用程序使用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: com/drake/net/cookie/PersistentCookieJar.java, line(s) 6,7,79
中危 应用程序包含隐私跟踪程序
此应用程序有多个3隐私跟踪程序。跟踪器可以跟踪设备或用户,是终端用户的隐私问题。
中危 此应用可能包含硬编码机密信息
从应用程序中识别出以下机密确保这些不是机密或私人信息 AdMob广告平台的=> "com.google.android.gms.ads.APPLICATION_ID" : "@string/admob_appid" "google_crash_reporting_api_key" : "AIzaSyBkTnKSO3yg2WLOPL-bjFsAGTcBlkPypWU" "google_api_key" : "AIzaSyBkTnKSO3yg2WLOPL-bjFsAGTcBlkPypWU" "firebase_database_url" : "https://shadowrocket-ca1e0.firebaseio.com" "key_success" : "Success" "key_success" : "Sucesso" "com.google.firebase.crashlytics.mapping_file_id" : "00000000000000000000000000000000" "key_success" : "Erfolg" 8007E3F02B7D0FF4BA3788FD36149623 68045985735653d087f9a379adf7e6d2 56ecaf7357aad567cecc8622ea165128 30e3cf73579bd567ce998616eb165388 32AD6ABCBEE1BD97585265625BFD9BC9 a3482e88-686a-4a58-8126-99c9df64b7bf
信息 应用程序记录日志信息,不得记录敏感信息
应用程序记录日志信息,不得记录敏感信息 https://github.com/MobSF/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#logs Files: com/drake/net/Net.java, line(s) 471 com/drake/net/log/LogRecorder.java, line(s) 161,234 com/tbruyelle/rxpermissions3/RxPermissionsFragment.java, line(s) 92,49 com/v2cross/iplocationlib/IPAddressUtils.java, line(s) 72,77,226,382,403,411,416 com/v2cross/iplocationlib/Util.java, line(s) 19 com/v2cross/shadowrocket/service/V2RayServiceManager$stopV2rayPoint$1.java, line(s) 41 com/v2cross/shadowrocket/service/V2RayServiceManager.java, line(s) 188,218,247,259,286,324,331 com/v2cross/shadowrocket/service/V2RayTestService$onStartCommand$1$1.java, line(s) 91 com/v2cross/shadowrocket/service/V2RayVpnService$sendFd$1.java, line(s) 52,71 com/v2cross/shadowrocket/service/V2RayVpnService.java, line(s) 278,283,286,298 com/v2cross/shadowrocket/ui/DonateActivity.java, line(s) 254 com/v2cross/shadowrocket/ui/MainActivity$checkFreeServers$1.java, line(s) 85 com/v2cross/shadowrocket/ui/MainActivity$checkUpdate$1.java, line(s) 85,110 com/v2cross/shadowrocket/ui/MainActivity$copyAssets$1.java, line(s) 60 com/v2cross/shadowrocket/ui/MainActivity$tryBindAd$1.java, line(s) 58,72,104 com/v2cross/shadowrocket/ui/MainActivity.java, line(s) 904,910,919,944,947,1441,1321,1323 com/v2cross/shadowrocket/ui/OpenActivity$onCreate$1.java, line(s) 59 com/v2cross/shadowrocket/ui/PerAppProxyActivity$selectProxyApp$1.java, line(s) 97 com/v2cross/shadowrocket/ui/PerAppProxyActivity.java, line(s) 318,337,324,343 com/v2cross/shadowrocket/ui/ShareActivity$checkUpdate$1.java, line(s) 109 com/v2cross/shadowrocket/ui/SubSettingRecyclerAdapter.java, line(s) 206 com/v2cross/shadowrocket/util/AngConfigManager.java, line(s) 740 com/v2cross/shadowrocket/util/MmkvManager.java, line(s) 118,315,391 com/v2cross/shadowrocket/util/SpeedtestUtil.java, line(s) 114 com/v2cross/shadowrocket/util/Utils.java, line(s) 463,470,520,526,168,176 com/v2cross/shadowrocket/util/V2rayConfigUtil.java, line(s) 152,162 com/v2cross/shadowrocket/util/V2rayConfigUtilForTest.java, line(s) 147,157 com/v2cross/shadowrocket/viewmodel/MainViewModel$testAllLocation$3$1.java, line(s) 117 com/v2cross/shadowrocket/viewmodel/MainViewModel$testAllTcping$2$1.java, line(s) 57 com/v2cross/shadowrocket/viewmodel/MainViewModel.java, line(s) 308 com/v2cross/shadowrocket/viewmodel/SettingsViewModel.java, line(s) 58,45 io/grpc/okhttp/internal/Platform.java, line(s) 74 me/drakeet/support/toast/SafeToastContext.java, line(s) 65,73,68 org/solovyev/android/checkout/DefaultLogger.java, line(s) 41,76,20,55,34,69,48,83,27,62 org/solovyev/android/checkout/Security.java, line(s) 24,36,39,52,55,58,61,64
信息 此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它
此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它 https://github.com/MobSF/owasp-mstg/blob/master/Document/0x04b-Mobile-App-Security-Testing.md#clipboard Files: com/v2cross/shadowrocket/util/Utils.java, line(s) 4,131,145,146
安全 此应用程序使用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: com/drake/net/utils/HttpsKt.java, line(s) 60,28,58,58 com/v2cross/shadowrocket/http/SSLHelper.java, line(s) 203,55,201,201 io/grpc/okhttp/OkHttpChannelBuilder.java, line(s) 419,420,507,433,505,505 io/grpc/okhttp/OkHttpServerBuilder.java, line(s) 264,265,278 io/grpc/util/AdvancedTlsX509TrustManager.java, line(s) 109,99,107,107,125
安全 此应用程序可能具有Root检测功能
此应用程序可能具有Root检测功能 https://github.com/MobSF/owasp-mstg/blob/master/Document/0x05j-Testing-Resiliency-Against-Reverse-Engineering.md#testing-root-detection-mstg-resilience-1 Files: com/v2cross/shadowrocket/ui/MainActivity.java, line(s) 960
关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (jihulab.com) 通信。
{'ip': '27.36.125.147', 'country_short': 'CN', 'country_long': '中国', 'region': '广东', 'city': '佛山', 'latitude': '23.026770', 'longitude': '113.131477'}
关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (raw.gitcode.com) 通信。
{'ip': '27.36.125.147', 'country_short': 'CN', 'country_long': '中国', 'region': '北京', 'city': '北京', 'latitude': '39.907501', 'longitude': '116.397102'}
关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (firebase-settings.crashlytics.com) 通信。
{'ip': '180.163.150.162', 'country_short': 'CN', 'country_long': '中国', 'region': '上海', 'city': '上海', 'latitude': '31.224333', 'longitude': '121.468948'}
关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (pagead2.googlesyndication.com) 通信。
{'ip': '180.163.150.38', 'country_short': 'CN', 'country_long': '中国', 'region': '上海', 'city': '上海', 'latitude': '31.224333', 'longitude': '121.468948'}
关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (gitea.com) 通信。
{'ip': '18.166.250.135', 'country_short': 'HK', 'country_long': '中国', 'region': '香港', 'city': '香港', 'latitude': '22.285521', 'longitude': '114.157692'}
关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (app-measurement.com) 通信。
{'ip': '180.163.150.161', 'country_short': 'CN', 'country_long': '中国', 'region': '上海', 'city': '上海', 'latitude': '31.224333', 'longitude': '121.468948'}
关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (gitee.com) 通信。
{'ip': '180.76.198.77', 'country_short': 'CN', 'country_long': '中国', 'region': '北京', 'city': '北京', 'latitude': '39.907501', 'longitude': '116.397102'}