2012年07月23日 14:18供稿中心:兆隆教育
对黑盒安全而言,首先是需要防止被反编译,尤其是对重要程序内容,例如用户登录密码的加密方式、某个游戏的游戏分数加密传递,因为各种工具,譬如android-apktool就能够轻松地对APK程序进行反编译与重打包。而对反编译的预防,除了可以使用混淆或加花代码之外,隐藏特殊文件或将特殊文件加密也是个不错的方法。
其次是对请求的分析,终端与服务器端通信无论是B/S还是C/S,java抑或C,网络的访问始终要用到http请求,即使是在游戏程序中,在游戏结束后也会有一个类似于Game Center的中心来让玩家上传分数与其他人PK。而在Android客户端黑盒的安全测试当中,对http请求的分析同样占了相当重要的一部分,对这些请求的测试等同于web端的测试,攻击者可以拦截这些由客户端发出的请求,并构造成其需要的内容发送给服务器端,如果服务器端没有做相关判断,一厢情愿的认为客户端不会被篡改,那么很可能会导致各种意想不到的后果。
事实上,在一些互联网公司里,开发人员对客户端服务器的安全关注度远远不如web端,而客户端能获取到的数据权限却是和web端相同的,那么即使web端安全防护再好,客户端接口的一个小失误就能让整个公司的安全体系崩溃,譬如某个获取数据接口的一个水平权限bug。
最后是对一些功能点的分析,例如如果存在评论功能点,那么这个评论中容不容许出现链接,容许出现链接的话要不要加上跳转标签(注意有些手机浏览器会对http开头的请求自动加上跳转标签);再例如,如果存在信息传递的话,是否对私密信息做了加密处理,许多应用存在通讯录漫游功能,那么将通讯录向服务器传输,再向服务器拉取这个过程中对数据是否做了信息的加密,也同样是个要重点关注的点,明文传递的数据 是KFC或starbuck搭建AP的骇客们最喜欢的内容。
以上的黑盒测试点只是简单的列举了一下通常需要注意的点,希望Android测试人员能够在关注产品功能的同时也更加重视产品的安全特性,Android的黑盒安全测试内容当然远不止这些,只期能抛砖引玉,找出合适自己测试产品的安全测试规则手段与规则。