页面标题
本平台专为移动应用安全风险研究与合规评估设计,严禁用于任何非法用途。 如有疑问或建议,欢迎加入微信群交流。
应用基础信息
文件基本信息
应用基础信息
组件导出状态统计
文件结构与资源列表
应用签名证书信息
二进制文件已签名
v1 签名: True
v2 签名: True
v3 签名: False
v4 签名: False
主题: C=ID, ST=Jawa Timur, L=Surabaya, O=Clash, OU=Meta, CN=Clash Meta
签名算法: rsassa_pkcs1v15
有效期自: 2022-06-17 08:49:22+00:00
有效期至: 2027-06-16 08:49:22+00:00
发行人: C=ID, ST=Jawa Timur, L=Surabaya, O=Clash, OU=Meta, CN=Clash Meta
序列号: 0x3fac4796
哈希算法: sha256
证书MD5: 433f7e1f8ee9c5b44dbd677d7b924e7e
证书SHA1: d390ff542977c492bf8ad1adf49f18f8afa69269
证书SHA256: 5f5571af767fe0f611292aa088b445a05f725fb8262fb80a13b69e4d809ae1f1
证书SHA512: 4283db9cc09f8bbdd0b1e83253b7a67e445cbf44fa34472d0ed4b2a58dab7432d26be1c71ba35376f3cd1102a5d75e749d9c8166dac2ffd3a2a8d40e7ef540f2
公钥算法: rsa
密钥长度: 2048
指纹: 38b27603277a18aee58b322bfa3c330ee67ea75ff01af3b030d09f887c83bcb6
找到 1 个唯一证书
证书安全分析
0
1
1
| 标题 | 严重程度 | 描述信息 |
|---|---|---|
| 已签名应用 | 信息 | 应用程序使用代码签名证书进行签名 |
权限声明与风险分级
| 权限名称 | 安全等级 | 权限内容 | 权限描述 | 关联代码 |
|---|---|---|---|---|
| android.permission.RECEIVE_BOOT_COMPLETED | 开机自启 | 允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。 |
|
|
| android.permission.FOREGROUND_SERVICE | 创建前台Service | Android 9.0以上允许常规应用程序使用 Service.startForeground,用于podcast播放(推送悬浮播放,锁屏播放) | ||
| android.permission.READ_EXTERNAL_STORAGE | 读取SD卡内容 | 允许应用程序从SD卡读取信息。 | 无 | |
| android.permission.QUERY_ALL_PACKAGES | 获取已安装应用程序列表 | Android 11引入与包可见性相关的权限,允许查询设备上的任何普通应用程序,而不考虑清单声明。 | ||
| android.permission.ACCESS_NETWORK_STATE | 获取网络状态 | 允许应用程序查看所有网络的状态。 | ||
| android.permission.CHANGE_NETWORK_STATE | 改变网络连通性 | 允许应用程序改变网络连通性。 | 无 | |
| android.permission.INTERNET | 完全互联网访问 | 允许应用程序创建网络套接字。 | ||
| com.github.metacubex.clash.meta.permission.RECEIVE_BROADCASTS | 未知权限 | 来自 android 引用的未知权限。 | 无 |
Manifest 配置安全分析
0
5
0
0
| 序号 | 问题 | 严重程度 | 描述信息 | 操作 |
|---|---|---|---|---|
| 1 |
应用程序具有网络安全配置 [android:networkSecurityConfig=@xml/network_security_config] |
信息 | 网络安全配置功能让应用程序可以在一个安全的,声明式的配置文件中自定义他们的网络安全设置,而不需要修改应用程序代码。这些设置可以针对特定的域名和特定的应用程序进行配置。 | |
| 2 |
应用程序数据可以被备份 [android:allowBackup=true] |
警告 | 这个标志允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。 | |
| 3 |
Activity (com.github.kr328.clash.ExternalControlActivity) 未被保护。 [android:exported=true] |
警告 | 发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。 | |
| 4 |
Service (com.github.kr328.clash.TileService) 受权限保护, 但是应该检查权限的保护级别。 Permission: android.permission.BIND_QUICK_SETTINGS_TILE [android:exported=true] |
警告 | 发现一个 Service被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。 | |
| 5 |
Broadcast Receiver (com.github.kr328.clash.RestartReceiver) 未被保护。 [android:exported=true] |
警告 | 发现 Broadcast Receiver与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。 | |
| 6 |
Content Provider (com.github.kr328.clash.service.FilesProvider) 受权限保护, 但是应该检查权限的保护级别。 Permission: android.permission.MANAGE_DOCUMENTS [android:exported=true] |
警告 | 发现一个 Content Provider被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。 |
可浏览 Activity 组件分析
| ACTIVITY | INTENT |
|---|---|
| com.github.kr328.clash.ExternalControlActivity |
Schemes:
clash://,
clashmeta://,
Hosts: install-config, |
网络通信安全风险分析
1
1
0
0
| 序号 | 范围 | 严重级别 | 描述 |
|---|---|---|---|
| 1 | * | 警告 | 基本配置配置为信任系统证书。 |
| 2 | * | 高危 | 基本配置配置为信任用户安装的证书。 |
API调用分析
安全漏洞检测
0
2
2
0
0
| 序号 | 问题 | 等级 | 参考标准 | 文件位置 | 操作 |
|---|---|---|---|---|---|
| 1 | 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等 | 警告 |
CWE: CWE-312: 明文存储敏感信息
OWASP Top 10: M9: Reverse Engineering OWASP MASVS: MSTG-STORAGE-14 |
升级会员:解锁高级权限 | |
| 2 | 此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它 | 信息 |
OWASP MASVS: MSTG-STORAGE-10 |
升级会员:解锁高级权限 | |
| 3 | 应用程序记录日志信息,不得记录敏感信息 | 信息 |
CWE: CWE-532: 通过日志文件的信息暴露
OWASP MASVS: MSTG-STORAGE-3 |
升级会员:解锁高级权限 | |
| 4 | IP地址泄露 | 警告 |
CWE: CWE-200: 信息泄露
OWASP MASVS: MSTG-CODE-2 |
升级会员:解锁高级权限 |
Native库安全分析
| 序号 | 动态库 | NX(堆栈禁止执行) | PIE | STACK CANARY(栈保护) | RELRO | RPATH(指定SO搜索路径) | RUNPATH(指定SO搜索路径) | FORTIFY(常用函数加强检查) | SYMBOLS STRIPPED(裁剪符号表) |
|---|---|---|---|---|---|---|---|---|---|
| 1 | arm64-v8a/libbridge.so | True
info 二进制文件设置了 NX 位。这标志着内存页面不可执行,使得攻击者注入的 shellcode 不可执行。 |
动态共享对象 (DSO)
info 共享库是使用 -fPIC 标志构建的,该标志启用与地址无关的代码。这使得面向返回的编程 (ROP) 攻击更难可靠地执行。 |
True
info 这个二进制文件在栈上添加了一个栈哨兵值,以便它会被溢出返回地址的栈缓冲区覆盖。这样可以通过在函数返回之前验证栈哨兵的完整性来检测溢出 |
Full RELRO
info 此共享对象已完全启用 RELRO。 RELRO 确保 GOT 不会在易受攻击的 ELF 二进制文件中被覆盖。在完整 RELRO 中,整个 GOT(.got 和 .got.plt 两者)被标记为只读。 |
None
info 二进制文件没有设置运行时搜索路径或RPATH |
None
info 二进制文件没有设置 RUNPATH |
False
warning 二进制文件没有任何加固函数。加固函数提供了针对 glibc 的常见不安全函数(如 strcpy,gets 等)的缓冲区溢出检查。使用编译选项 -D_FORTIFY_SOURCE=2 来加固函数。这个检查对于 Dart/Flutter 库不适用 |
True
info 符号被剥离 |
文件分析
| 序号 | 问题 | 文件 |
|---|
行为分析
| 编号 | 行为 | 标签 | 文件 |
|---|---|---|---|
| 00022 | 从给定的文件绝对路径打开文件 |
文件 |
升级会员:解锁高级权限 |
IP地理位置
手机号提取
URL链接分析
| URL信息 | 源码文件 |
|---|---|
|
172.19.0.2 172.19.0.1 |
com/github/kr328/clash/service/TunService.java |
|
https://raw.githubusercontent.com/loyalsoldier/geoip/release/country.mmdb https://docs.metacubex.one/ https://raw.githubusercontent.com/loyalsoldier/v2ray-rules-dat/release/geoip.dat https://github.com/metacubex/clash.meta https://raw.githubusercontent.com/metacubex/meta-rules-dat/release/geosite.dat https://play.google.com/store/apps/details?id=com.github.kr328.clash https://github.com/dreamacro/clash/wiki https://raw.githubusercontent.com/metacubex/meta-rules-dat/release/geoip.dat https://raw.githubusercontent.com/metacubex/meta-rules-dat/release/country.mmdb https://wiki.metacubex.one https://github.com/metacubex/clashmetaforandroid https://raw.githubusercontent.com/loyalsoldier/v2ray-rules-dat/release/geosite.dat |
自研引擎-S |
Firebase配置检测
邮箱地址提取
第三方追踪器
| 名称 | 类别 | 网址 |
|---|
敏感凭证泄露
已显示 3 个secrets
1、 "key" : "Key"
2、 "secret" : "Secret"
3、 3294e5019815bcec13e0381e3ccc05b5
活动列表
显示 19 个 activities
服务列表
显示 7 个 services
广播接收者列表
显示 2 个 receivers
第三方SDK
| SDK名称 | 开发者 | 描述信息 |
|---|---|---|
| Clash Core | Dreamacro | A rule-based tunnel in Go. |
| Jetpack App Startup | App Startup 库提供了一种直接,高效的方法来在应用程序启动时初始化组件。库开发人员和应用程序开发人员都可以使用 App Startup 来简化启动顺序并显式设置初始化顺序。App Startup 允许您定义共享单个内容提供程序的组件初始化程序,而不必为需要初始化的每个组件定义单独的内容提供程序。这可以大大缩短应用启动时间。 | |
| Jetpack Room | Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。 |
污点分析
当apk较大时,代码量会很大,造成数据流图(ICFG)呈现爆炸式增长,所以该功能比较耗时,请先喝杯咖啡,耐心等待……| 规则名称 | 描述信息 | 操作 |
|---|---|---|
| 病毒分析 | 使用安卓恶意软件常用的API进行污点分析 | 开始分析 |
| 漏洞挖掘 | 漏洞挖掘场景下的污点分析 | 开始分析 |
| 隐私合规 | 隐私合规场景下的污点分析:组件内污点传播、组件间污点传播、组件与库函数之间的污点传播 | 开始分析 |
| 密码分析 | 分析加密算法是否使用常量密钥、静态初始化的向量(IV)、加密模式是否使用ECB等 | 开始分析 |
| Callback | 因为Android中系统级的Callback并不会出现显式地进行回调方法的调用,所以如果需要分析Callback方法需要在声明文件中将其声明,这里提供一份AndroidCallbacks.txt文件,里面是一些常见的原生回调接口或类,如果有特殊接口需求,可以联系管理员 | 开始分析 |