开元棋牌- 开元棋牌官方网站- APP下载如何保证APP的安全性?

2026-01-04

  开元棋牌,开元棋牌官方网站,开元棋牌APP下载

开元棋牌- 开元棋牌官方网站- 开元棋牌APP下载如何保证APP的安全性?

  基于这个问题,推荐我厂信息安全部王桂林的一篇文章,这篇文章从攻防原理层面解析了iOS APP的安全策略。希望对题主有所帮助,原文如下:

  本文从攻防原理层面解析了iOS APP的安全策略。iOS以高安全性著称,但它并非金刚不坏之身。对于信息安全而言,止大风于青萍之末是上上策,杭研深入各个细节的研发工作,正是网易产品质量的保障。

  世所公认,iOS系统安全性非常高,很少出现漏洞,几乎不会中毒的情况。然而随着各种iOS安全隐患的频频出现,人们逐渐认识到,iOS跟Android一样也面临严重的安全问题。苹果宣称所有的iPhone都很安全,不会被恶意软件攻击,其实这只不过苹果封闭式的系统管理能够及时处理漏洞罢了,这也正是苹果不敢开放的原因。

  我们已经习惯,每个新的iOS系统出来没多久,就会有大牛找到越狱的方法。比较有名的越狱团队如iH8Sn0w、Geohot、Comex等,以及国内的盘古团队。就像最新iOS 10.1.1版本,刚出来一个星期,安全研究员Luca Todesco就在推特上晒图自曝越狱成功,iH8Sn0w和盘古团队也取得了不错的进展。只要越狱了,iPhone手机就处于完奔状态,很多平时不能做的事情就可以做了,比如破解分析APP、大范围泄露用户隐私数据等。

  其中,跟我们iOS开发者息息相关的问题,主要就是被破解、分析。APP被破解分析进而刷单作弊,或者APP被山寨以次充好等。APP一直以来存在的“山寨”现象,引起越来越多开发者的不满,山寨泛滥的后果将是劣币驱逐良币,打击创新者的积极性,造成恶性循环。

  比如上面的《神庙逃亡》应用,左边是合法的,右边是山寨的,山寨的APP就把图标的背景色以及局部做了一些修改,看起来和正品是如此的相似。

  这类APP在淘宝上都有销售。正常情况,一个手机只能有一个微信账号在线,但是微信分身版让用户可以在同一个手机上同时登录多个微信号,这样可以满足一些用户的不同需求,比如进行公众号营销、用不同的微信号联系不同的人等。同时这些破解后的微信还有一键转发小视频、一键评论、一键点赞等强大的功能。

  打开这款神器后再登录微信,如果微信群里有人发出红包,它就会第一时间帮你抢到红包了,从此“发家致富,迎娶白富美,走上人生巅峰”,哈哈!

  那么,看起来如此高级的东东又是怎么实现的呢?下面我们做简要的介绍,只有在了解了它们的实现原理后,我们才能更好地保护我们的APP不被分析、破解。

  懂得如何攻击才会懂得如何防御,一切都是为了之后的防御作准备。这里总结一下为hack而做的准备工作。

  它通常是和Clutch一起使用的,因为APP Store上的APP都是加密过的,需要先解密。Clutch解密后,就可以得到APP的源码结构,包括资源文件、二进制文件等,下面以XX新闻APP为例:

  “class-dump NewsBoard”,就可以得到应用的类信息,包括函数名:

  上图显示,从IDA工具就可以看到该APP使用的一些类名和方法名,进而就可以分析到方法里面的实现逻辑了。

  我们在开发一款SDK的时候,想了解下公司外部竞品SDK的使用情况,到底有多少APP在集成他们的SDK。那么,这到底该怎么做呢?

  去竞品那里打听?好像不太现实,唯一的办法就是“自动动手,丰衣足食”。我们从XX助手上获取一定数量的APP,一般是拉取榜单的数据,比较有意义,然后分析拉到的APP里包含了哪些SDK。当然这得基于概率统计学的原理,获取足够多的样本,比如一万、十万都是可以的。那么又如何从XX助手服务器拉取这些数据呢?

  大家可能都会想到,那就是分析XX助手的网络协议,然后通过代码模拟网络协议,请求数据,获取APP,再分析APP的符号。分析网络协议,最简单的就是网络抓包,但是估计现在很难再有裸奔的网络包了,XX助手确实也没有明文的网络包,所以只有逆向分析了。值得庆幸的是,它的APP没有做加固、保护,分析起来就简单多了。、

  其中的一个类TRApiServices很像是网络请求的接口。Hook该类的调用输出,点击 榜单 ,并有了以下log输出:

  再进一步去分析”writeBodyHeader”方法以及”getBody”等方法,就可以知道网络请求的发送格式了;要想知道网络数据返回的格式,还得去分析” parseGetChartsAppListData:error”这个方法,一切准备妥当后,就可以下载了。

  对应用程序中使用到的字符串进行加密,保证源码被逆向后不能看出字符串的直观含义。

  对应用程序的方法名和方法体进行混淆,保证源码被逆向后很难明白它的真正功能。

  字符串会暴露APP的很多关键信息,攻击者可以根据界面显示的字符串,快速找到相关逻辑的处理函数,从而进行分析破解。加密字符串可以增加攻击者阅读代码的难度以及根据字符串静态搜索的难度。

  里面已经没有明文的字符串了,全是用byte的形式保存的,打包生成APP后,他们也就无法直观的看出实际内容了,这对破解者会造成巨大的难度:

  符号混淆的中心思想是将类名、方法名、变量名替换为无意义符号,提高应用安全性;防止敏感符号被class-dump工具提取,防止IDA Pro等工具反编译后分析业务代码。

  “Labels”栏里,显示的这些符号,不管是类名还是方法名,谁也看不出来到底什么意思,这个函数到底是什么功能,就有点丈二和尚摸不着头脑的感觉,这就大大增加了破解者分析APP的难度。

  它就只有一行有效代码,包含两个关键函数,已经算最简单的函数体了,混淆前的汇编代码如下:

  这里主要包含两个API的符号: NSStringFromClass、UIApplicationMain。其余就是一些消息发送以及内存管理的相关符号,但如果进行一定的代码逻辑混淆后,这个结构就会变得大不一样了。

  NSStringFromClass、UIApplicationMain这两个函数,逻辑结构已经变得非常复杂了,如果一个函数中,包含更多的代码的话,那这个结构将更加复杂,对破解者来说将是一个很耗时间、精力的过程,一般早早就会放弃分析了。

  除了上面的一些被动保护方法,我们还可以加入一些主动的防护机制,比如反调试等。

  iOS下的这些方法,相对于Linux下的方法要少很多,例如fork一个子进程,ptrace父进程进行检测方式不再奏效。而且,要完全防止程序被调试或者被逆向,理论上是不可能的,但可以增加破解者调试的难度。

  总之,添加以上的一些保护措施后,iOS APP的安全性会获得很大的增强,大大提高了破解者破解的难度。对于iOS开发者来说,有必要了解这些措施,特别是针对一些金融、证券类APP的开发,保护方面的需求比较大,比如国内某知名移动支付工具就添加了一些调试检测以及反调试的功能。

  欢迎点击免费试用网易云提供的Android 应用加固和iOS 应用加固服务。

  如果个人或者公司没有能力把控安全的话 然后你的产品对安全要求又比较搞 我建议你去找专业的安全公司或者团队做测试

  题主的问题其实是整个移动业务系统的安全,这个是目前大部分以以哦的那个APP为主要业务渠道平台的企业或者个人普遍遇到的问题,因为相比于传统的业务系统,移动业务系统中的不安全因素要多很多。

  移动业务系统主要分,APP客户端、通信网络、后端服务器三部分,资金交易,交互数据的安全要兼顾这三个部分的安全防护。 其实服务器防火墙似乎个不错的措施,但是目前大部分是传统的WAF防火墙,并不能很好的切合移动业务系统的防护需求,缺少了对移动端APP及通信网络的防护。

  目前在做移动业务系统防火墙产品的有一家,产品叫iMAF,16年底由海云安首家推出,引入了移动业务安全整体防御的理念,如下

  通过三个体系的协同防护,实现了对移动业务系统的安全保护,针对的是一些交易数据抓包窃取,薅羊毛、盗刷、身份欺诈等常见业务安全攻击行为。

地址:广东省广州市天河区88号 客服热线:400-123-4567 传真:+86-123-4567 QQ:1234567890

Copyright © 2012-2025 开元棋牌- 开元棋牌官方网站- 开元棋牌APP下载 版权所有 非商用版本