切勿将内部测试版本随意发放测试

工作中发现的一些问题

在一些公司中,为了测试的方便,经常会使用他们的企业证书去部署应用到测试设备上面。这样看似没什么问题,但是这里隐藏了一个安全问题。就是代码中的方法名和字符串经过反汇编都会一览无余地显示出来。

一些实践

工具:Hopper

Hopper 是一个OSX平台下的反汇编程序,可以将二进制的可执行文件反汇编,查看程序中的方法,地址,字符串等,功能比较强大。

通过PP助手下载渠道包 .ipa 文件,解压缩之后进入 payload 目录下,将 .app 文件拖入 Hopper 中。之后一路默认选项。反汇编之后,我们在 String 的标签中可以看到一些乱码。这是由于在将 app 上传到 iTunes Connect 发布之后,苹果会对代码进行加密和混淆,使得字符串变成了一堆乱码,方法名称也全部变成了 c++ 标准库的代码。

经由企业证书打包部署渠道下载的 .ipa 文件,解压后发现,其文件结构和 AppStore 渠道下发的压缩包中目录结构明显不同。只有一个 payload 文件夹。再次将这个文件夹中的 .app 文件拖入 Hopper 中以默认选项进行反编译。结果发现,程序中的方法名称,字符串一览无余的以明文方式显示在 Hopper 中,包括 App 中用到的 AppKey ,AppSecret,token 以及众多的调试用信息都会显示出来。

结论

综上所述,如果企业渠道的内测版本文件被别有用心者获取之后,将会使重要的字段信息泄漏,从而导致请求被模拟或者身份被仿冒等安全问题的发生。

Tips

在测试中务必使用 Adhoc 证书进行小范围有限发布测试,并且注意一定要限制测试的范围,不可使别有用心的人获取到这些敏感信息。