我们现在遇到的app一般有三个平台,andriod、ios、windows,大多都是andriod或ios。首先要保证开发环境是安全的,这里给大家举了一个例子,XcodeGhost事件。
这个事件在网上影响是挺大的,为什么会有这样事件?就是因为我们在中国区开发的时候要下Xcode,这个安装包比较大,在苹果官网上下的比较慢,很多人就选择像装系统那样,别人有的,我直接Ghost回来在我的电脑上用,结果就因为Ghost事件拷贝了别人的环境,但是别人的环境是有木马的,就留了后门,你开发出来的每一个app里面都暗藏了一个后门,这就是XcodeGhost事件。
很多人可能买不起工具,就用破解,破解里面就可能有木马,就像一个录屏软件,你写一行代码,人家就将这个代码发给对方的服务器,你的软件著作权还没有申请完的时候,代码已经跑到别人的服务器上去了。
SDK安全,我们开发的时候经常要用一些SDK的包,或者说我们有的厂商就专门做SDK的工具,针对这块,国家也了一些规定,SDK包谁提供,谁就要提供它安全的保证,安全的服务,否则就不要发布。《 App 使用软件开发工具包(SDK)安全指引》 大家也可以去关注一下。
应用数据安全,数据需要加密。正常不root(越狱)的手机可以正常用,拿不到核心的数据,如果越狱之后,这些数据就像一张白纸,谁都可以拿到,就需要保证,越狱之后,即使拿到这些数据,这些数据也是加密的,需要做很多处理才可以看到原文。
给大家举个例子,2019年发布的《移动应用(App)数据安全与个人信息保护白皮书(2019年)》,一方面要保护数据安全,另一方面也要保证个人信息的收集使用安全。现在这块权责分明,谁收集,谁使用,谁保证安全,如果不能保证国家就会进行处罚。
反破解、反调试、反逆向,吾爱论坛上会有一些破解的方法,如:吾爱破解安卓逆向入门教程app逆向入门分析——破解某APP登录请求参数,这些都是入门级的,不能说你开发了一个软件,却连入门级的破解都防御不了。一定要保证软件的反破解、反调试、反逆向。
最后一点使用Fortify、 CodifiedSecurity在开发阶段尽早介入安全,保证代码的安全。
下图是ios和android的逆向&调试难度的对比
从表里看,每一项好像ios都比android要安全一些,但是话说回来,ios和android访问的是同一个系统,前台可能分了ios客户端和android客户端,但是对于后台来说,是同一个数据库,是同一个API服务器,如果能将android搞定的话,ios基本上也能如法炮制,虽然我不用ios的app,但是也可以通过效仿的方法,访问到ios可以访问的数据,这时候通过服务器就可以攻击到ios的设备上,这也是不安全的,所以需要双重的界定标准。一定要记住,虽然IOS安全,但是一旦出问题那将是雪崩式的问题。