一. 概述
零时科技安全团队在经过大量对app进行的安全测试之后,总结出了一份相对完整有效的测试列表,建议各大交易所以此自查,防患于未然。
App安全
-
App 运行时虚拟机监测
-
App 运行时root监测
-
App数据备份检测
-
代码反编译检测
-
敏感权限使用
-
敏感信息泄露
-
拒绝服务测试
-
目录穿越安全测试
-
App 缓存安全检测
-
接口安全测试
-
弱加密安全测试
三. 案件分析
零时科技安全团队在对某交易所app进行安全测试时,发现该交易所并未对app进行数据备份检测,安卓AndroidManifest.xml文件中android:allowBackup为true,当这个标志被设置成true或不设置该标志位时,应用程序数据可以备份和恢复,adb调试备份允许恶意攻击者复制应用程序数据。
零时科技安全团队在对某交易所app进行安全测试时,发现该交易所并未对app进行数据备份检测,其AndroidManifest.xml文件中android: allowBackup为true,存在数据任意备份漏洞。
连接手机,然后输入以下备份命令,会出现一个对话窗,输入备份密码即可:
adb backup -nosystem -noshared -apk -f com.xxx.wallet com.xxx.wallet
连接到另一台手机或root的本机,输入下列命令,弹出对话框,输入备份时的密码即可恢复数据
adb restore com
如果用户账号密码保存在本地,则恢复到另一台root的手机后,可以看到各种敏感信息。
零时科技安全团队建议设置AndroidManifest.xml的android:allowBackup标志为false。
若app的apk文件可被反编译,就有可能导致源代码信息泄露,攻击者也可对其进行代码审计以找出可能存在隐患的攻击点。
零时科技安全团队对某交易所app进行安全测试时,通过检测apk文件是否通过加固,代码是否通过加密或者混淆,是否可以通过反编译攻击等方面对该app进行测试。发现该apk文件可被反编译,反编译后可以看到java源代码,导致源代码信息泄露。(通过jadx-gui或其他反编译工具可直接操作apk,查看java源代码。)
零时科技安全团队建议,可使用专业加固工具对apk进行加壳处理。 目前很多系统在app请求权限这一方面上都不甚敏感,这也是如今移动端并不那么安全的成因之一。很多app都会请求一些敏感的权限,有的甚至会直接绕过,不向用户请求就直接自行取得了权限。而这些app有可能对交易所和用户都产生足够的恶意影响。
零时科技安全团队在对某交易所app进行安全测试时,检测APP程序中是否存在敏感权限的使用,发现确实存在敏感权限使用漏洞。 零时科技安全团队建议,可使用专业加固工具对apk进行加壳处理。
代码反编译检测
敏感权限使用
敏感权限如下:
-
android.permision.WRITE_EXTERNAL_STORAGE 允许应用写入外部存储
-
ndroid.permission.READ_PHONE_STATE 允许访问电话状态、设备信息
-
ndroid.permission.CAMERA 允许访问摄像头
-
android.permission.GET_TASKS 允许获取系统应用列表
-
android.permission.MOUNT_UNMOUNT_FILESYSTEMS 允许挂载、反挂载外部文件系统
零时科技安全团队建议禁用不需要的敏感权限。
敏感信息泄露
敏感信息泄露危害极大,如泄露出测试/管理员数据,参数注释信息等。但它又是一种危害虽大却又较容易避免的漏洞,只要开发人员多加注重安全意识即可避免大部分问题。
零时科技安全团队在对某交易所进行安全测试时,查找其 app 程序文件中是否存在敏感信息泄露(如源码中,备份文件中,xml 资源文件中等),发现确实存在敏感信息泄露漏洞,源码中泄露了微信公众号 appid 和 secretkey:
鉴于文章内容较多,本期内容将分为上、下篇,顺序放送。
注:以上所有测试均已经过相关交易所授权,请勿自行非法测试。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论