首页> 技术观点 > 如何确保APP的安全性

如何确保APP的安全性

发布时间:2018-10-11

APP应用的安全性 常常被大家忽视。APP如何做才安全:

1、首先,我们可以通过软件 下载 AppStore的ipa文件(苹果 把开发者上传的ipa进行了加壳再放到AppStore中),

得到ipa文件 可以分析APP 里包含的一些资源,如:图片、plist文件、静态wap页、.bundle 等。

所以不要 在plist文件、项目中的静态文件中 存储关键的信息,如果要保存,记得加密(这样可以增加破解的难度)。

2、我们可以用软件 查看 APP的沙盒,查看里面存储的 文件:sqlite、plist(NSUserdefault会存到Library下的Preferences中 的 plist文件中)、图片等,NSUserdefault 中不要保存关键信息,如果要保存,还是加密吧。。sqlite也是这样子的。

3、 用 工具 对加壳的ipa 进行脱壳(越狱手机 直接用PP助手下载的就是 脱壳的ipa),再用IDA、Hopper 进行反编译,进行分析 ,可以得到 近乎易懂的 伪代码。

所以 不要在 代码 中保存关键信息,比如接口通信中 AES加密的密钥,可以通过接口获取 这些关键数据。

如果要保存关键数据(比如:密钥 等),可以保存加密后的关键数据,运行的时候进行解密获取真实的数据。这样可以增加破解的难度。

密钥要定期更换。比如 3个月 或半年换一次,如果密钥是从接口获取的,直接修改服务端就可以了。

如果密钥是写在代码里的。就等APP升级新的版本的时候,新版本的APP和其对应的接口版本 修改为新的密钥 就可以了。旧的接口版本和APP版本还用以前的密钥,等强制更新的时候才会失效。

如果一个APP 一个密钥用上几年都不变 ,是很危险的。离职的人员都可以直接用以前 的代码 来获取相关的数据。特别是 支付相关的,有的服务端甚至没有 去校验支付的金额或其他数据,导致 离职人员用1分钱 可以买到 任何价格的 线上产品。。

最好能 进行 代码混淆,能增加反编译的难度,当然只是增加了难度,还是能破解的。

4、用https也是可以被抓包并解析的,所以网络通信 一定要用自己的加密方式 进行加密。

接口返回的数据 最好也进行 加密。

可以这么说:无论 你怎么做,理论上都是可以破解的,但是 破解人员也要考虑成本。。

有的银行的APP,只用了https,通信都不加密,很容易就拿到明文数据了。有的APP里的各种数据都 采用复杂的加密算法,破解人员看到都烦,去破解这个APP的时间还不如去搞其他的几个APP。


一、ipa文件

1、AppStore里的ipa包 可以通过 iTunes 下载到电脑。iOS8.3以下系统的非越狱的手机上,可以用MAC上的PP助手等软件,直接把手机上的ipa文件(包含沙盒里的存储文件)拷贝到电脑。

如果是越狱手机,都可以用PP助手、itools直接把ipa导出到电脑,并且可以用PP助手、iExplorer、itools这些工具 查看 iOS的系统目录。

MAC上安装 iExplorer软件,用iExplorer 可以看到 手机(非越狱也可以) 在 iTunes上备份的内容。

如果你在帮测试美女的手机 调试问题的时候, 在 iTunes上设置 “连接次iPhone时自动同步”(或者点击 备份到本地电脑),默认该手机上的照片、短信等内容都会备份到你的电脑上,用 iExplorer 就可以看到 这位 美女的隐私。

曾经有次不小心看到同事的隐私信息,所以现在都比较注意这块,避免引发误会。

2、拿到ipa文件后,解压缩,得到.app文件,右键显示包内容,可以看到里面的app中的图片、js、plist、静态H5页 等资源。

比如 你要 用微信里的默认表情包,解压微信的ipa包就可以获取到。

3、iOS的系统目录和MAC上的都类似(类unix系统)。


二、沙盒 中的数据

iPhone上 计算器的沙盒:.app文件:应用程序本身的数据,打包时候的一些资源文件(如:图片、plist等文件)、可执行文件。这个目录不会被iTunes同步。

Documents :存储不可再生 的关键数据。不会被iTunes同步

Library:保存配置文件和其他一些文件。NSUserDefault 会存储到 Library下的Preferences中 的 plist文件中。可以直接打开,所以 也不要在 NSUserDefault 中存一些 关键数据,或者 存储的时候 进行 AES等方式的加密。

Library/Caches可以用来保存可再生的数据,比如网络请求,用户需要负责删除对应文件。

这个目录(除了Library/Caches外)会被iTunes同步

tmp:临时文件。不需要的时候,手动将其内文件删除。(当应用不再运行的时候,系统可能会将此目录清空。)

这个目录不会被iTunes同步

存到沙盒的数据都是不安全的,关键数据一定 要做加密存储。


三、Reveal 工具:查看 任意APP 的UI结构

1、不越狱的手机 可以用 Reveal 来查看自己APP的UI结构。不能查看其他APP的UI结构。这里就不再描述了。

2、越狱手机 上可以查看 任何APP的UI结构。

在越狱的手机上,在 Cydia 搜索并安装 Reveal Loader,如果搜索不到。就 点下面的“软件源”,选择“BigBoss”,选择“全部软件包”,点右边R的字母,去一个个找到 Reveal Loader,放心吧,你一定能找到的,我用的iOS7.1的系统测试的,没问题。

安装完成后,打开“设置”页面,下拉到最底部,点击“Reveal”

3.png

3、点击 Enabled Applictions 。然后选中 你想分析的APP。

4、确保iOS和OSX在同一个IP网段内。打开想分析的 APP,如果该APP已经启动,则关闭后再次启动

5、打开MAC上的 Reveal,选中 左上方列表里的 APP,比如QQ:

6、如果 Reveal

左上方 一直显示:No Connection。说明iPhone上的 Reveal Loader 没安装成功,需要配置一下。

首先从MAC上,用PP助手或 iTools 查看“文件系统(系统)”--》Library文件夹,看 Library文件夹下面有没有 RHRevealLoader

文件夹,如果没有,就 右键 新建文件夹,并修改名字为:RHRevealLoader。

在Mac下打开已经安装的Reveal,选择标题栏Help下的Show Reveal Library in Finder  下的 iOS library

选项,将会显示如下界面:将libReveal.dylib 文件通过PP助手拷贝到刚才创建的RHRevealLoader文件夹下,就可以了。

然后 从手机上打开APP, 再 打开 MAC上的 Reveal 软件,左上方 就会出来 相关APP的选项。


爱加密(www.ijiami.cn)是全球专业的移动信息安全综合服务提供商,专注于移动应用安全、安全大数据及物联网安全,坚持以用户需求为导向、持续不断的创新,致力于为客户提供全方位、一站式的移动安全全生命周期解决方案。爱加密的愿景是通过革新性安全方案和7X24小时全天候的专业服务保护更加智能世界的安全,打造和谐、强大、高度安全的万物互联生态环境。

加入收藏