各位看官请注意,今天让我们来谈谈梆梆安全加固的那些事儿。而这一切都源自于——“2002年的那场雪”……嗯~抱歉,配乐错误——应该是2012年的那次好奇的“小研究”。
第1件事儿:一次好奇引发的……
缘起缘落,一切都源于那一次好奇。2012年,iPhone 4S赚足了人们的眼球,甚至在成为另类的电子奢侈品。人群里谁要是掏出了这款苹果手机,大有一番“iPhone 4S既出,谁与争锋”的感觉。与此同时,各类应用也在智能手机上大行其道,人们更是玩得不亦乐乎——“低头族”这一崭新的民族自此诞生了!
梆梆安全年轻的技术宅们也被丰富多彩的移动应用(APP)所吸引,而作为技术达人的他们由于习惯使然,在好奇心的驱使下玩得则更“深入”了一点:对某款极具人气的移动应用,从代码角度进行分析发现,往应用里面填加代码竟然如此容易,毫无“阻碍”。换个启动界面?没问题!加段广告?小case! “嘿,哥们,帮我把征婚广告放里面吧!”
无论是偶然中的必然,还是必然中的偶然,梆梆安全的小伙伴们发现也许可以在移动应用安全方面做点事情。经历了艰苦卓绝的努力,他们不但做成了,貌似做得还蛮大。
第2件事儿:摸着石头过河——石头呢?!
自从发现移动应用(APP)的这个隐患后,梆梆安全的技术达人们便开始着手研究能否加强APP的安全性,避免被别有用心者所利用,做坏事儿。
中国人常说“摸着石头过河”,意指在事先不知道河流详细情况下,以身试水摸索着河里的石头,以较为保守甚至原始的方法逐步摸清情况并想办法安全涉水,边干边摸索经验。可对移动应用进行安全加固是一条全新的方向,没有任何可借鉴的模式,可以摸的“石头”在哪里都不知道。陈彪,现在是梆梆安全的CTO,用他的话说当时根本“不知道怎么能出来”,甚至不知道“有没有可能走得通这条路”。
不过他和他们坚持了下来,找到了“石头”,凭着那股技术人员独有的韧劲儿,给APP加上了一把把牢固的安全锁。
第3件事儿:当把庖丁,把这APP给解了
要不说这搞技术的人就是不一样,绝不玩“生穿”这种事儿(把电视穿越坏了还咋看女神啊),APP既然容易被随意添加代码,那就学下庖丁解牛先把它研究个透。
如今,许多APP都是用JAVA语言编写的,同时安卓操作系统的碎片化使得兼容性成为了一个不可避免的问题。JAVA跨平台的特性能够帮助APP在各个版本的移动操作系统里顺畅运行,而正是由于考虑到了跨平台的可移植性问题,使其在逆向上做出很大的牺牲——“JAVA的逆向太容易了”,容易到不仅使得跨平台移植简单了,往里面加点“东西”也简单了。而在“容易”、“简单”这两个词语的背后则是安全漏洞的凸显,针对APP的安全防护显得更为重要。
移动应用在开发之初就只注重功能上的开发,而缺乏安全意识及防范能力。移动应用开放的开发环境、极低的进入门槛,也使得恶意攻击的方式和手段更加多样化。另外,移动应用多样化的特性,使其在输入方式、使用体验、干扰因素等等方面都与传统PC应用有很大不同。特别需要注意的是,移动应用与个人隐私数据及在线支付都非常接近,一旦移动应用出现安全问题,后果不堪设想。
第4件事儿:找你妹之安全加固版
PC上由于语言环境的不同,所以对PC上的应用安全防护主要采用代码混淆的方式。如果移动应用也采取代码混淆的防护方法,就加大了逆向的难度,不利于其跨平台的移植。实际上,由于移动应用所处环境的特殊性,使得传统的应用安全防护方法大多都不适于直接采用。
那么移动应用的安全防护应该怎么去做?要想战胜敌人,就要了解敌人,像敌人那样去思考。比如对APP发起“攻击”式测试,在模拟攻击的过程中发现APP的脆弱点。“在测试过程中,可能APP本身做了安全防护来阻止攻击行为,这时就需要发散思维,以攻击者的角度,从各个方面去攻击、破解、绕过安全防护,充分挖掘APP的脆弱点。”
梆梆安全的技术达人们通过安全加固实现了对APP代码的保护,而通过与用户的沟通又发现了对APP更多的安全防护点,比如,软键盘的安全问题、双因子认证的安全问题等等,“所以后来又开始进行安全SDK的研发。”
第5件事儿:花样的操作系统版本花样的麻烦——不放弃
“三年前应用加固是一个崭新的领域,没有人做过。并且Android移动设备多种多样、系统版本繁多,由于涉及操作系统底层的框架,所以在适配及兼容性上面遇到很多坑坑坎坎。由于没有前人的经验,只能自己去摸索、学习和尝试,需要很强的毅力和技术功底才能在面对不断的问题时不放弃。”
梆梆安全的技术达人们在回忆那段研发岁月时,对于“兼容性调试”的痛苦依然记忆犹新。针对新的APP安全防护点研究出安全防护方法后,要通过反向验证来确定防护点是否正确、防护方法是否有效。而另外一件事儿,就是要解决兼容性的问题,也就是要保证移动应用安全加固程序能够在不同版本的移动操作系统环境下正常运行。
2012年8月移动应用安全加固程序第一版出来后,发现存在兼容性的问题。经过半年的努力,到2012年12月左右基本解决兼容性问题。不过,每当加入新的加固功能后,就要进行兼容性的调整。而随着研发技术的成熟,减少了与安卓系统的接口,从而极大降低了兼容问题的出现。另一方面,海量的用户反馈,帮助梆梆安全能够及时进行兼容性调整,加强了对兼容性问题的解决。“有一次遇到过几款日本的手机上出现兼容性问题,只要手机在手其实问题很好解决,不过为了找到这几款日本的手机,可是费老劲儿喽~”。
有一段时期,梆梆安全技术达人们的手里最不缺的就是手机,市面上能够找到的主流手机几乎都搜集全了。而当在那一款款的新式手机上进行兼容性调试时,梆梆安全的技术达人们总在慨叹:“小伙伴们,还能不能一起愉快的玩耍了”!
现在针对移动应用的安全测试还没有统一的标准,所以梆梆安全一方面根据工信部、银监会、OWASP等国际组织、政府部门或专业安全研究机构颁发的安全标准为测试基准。另一方面梆梆安全在长期的移动APP安全测试和漏洞挖掘工作实践中,总结了移动APP的测试方法和测试规范,并不断进行完善。同时,梆梆安全也在积极与公安部等机构联合制定移动APP安全标准规范。
第6件事儿:奔跑吧,梆梆安全的兄弟们!
在移动应用安全领域,梆梆安全起步早,基础技术积累深厚,拥有领先的安全加固技术,产品形态完善,已经形成从终端应用加固、管道通信加密到云安全管理的“端-管-云”立体服务模式。涵盖针对移动应用开发事前风险规避(安全评估服务、安全编码规范等)、事中漏洞检测和加固保护、事后盗版监测和风险预警的整体移动应用生命周期。
同时,为了强化对APP的保护效果,扩展保护范围,梆梆安全还提供了防外挂、清场、防短信劫持等几十款安全SDK组件。这使得移动开发者们无需再为移动应用的安全问题操心,只需要在代码里加入相关SDK组件,就可以打造出更为牢固可靠的移动应用。原来安全也可以如此简单。 梆梆安全在经历了几代安全加固技术发展后,具有完全的商业化金融级和适合互联网行业的APP加固保护服务能力。而友商的同类产品仍处在梆梆安全1年前,甚至几年前的加固技术发展阶段。
如今,梆梆安全还在抓紧对新移动安全防护技术的研究,力图在移动世界里重新构建起新的网络安全防线。比如借助大数据技术实施更为主动的安全防御,根据用户行为等数据对可能出现的移动安全威胁进行提前预警。
随着移动网络延伸到更多领域(例如,智能家庭网络、车联网、物联网等等),新的安全问题将不停出现。而环境上的差异性,意味着需要从不同角度去思考、发现安全防护的关键点,并基于此建立有效的安全防线。未来,梆梆安全还有很多事情需要去做,也会有新的故事发生,梆梆安全的那些事儿还将继续。
奔跑吧,梆梆安全的兄弟们!