NSC2014百度移动安全实验室夏良钊

Safe Zygote – 为移动支付安全护航

尊敬的各位领导各位前辈各位同仁各位嘉宾大家好,就目前这个移动支付安全做一些探讨,其实在以前我们知道,我们去银行转帐,我们去现场,后来又了网银在网上在电脑上又也可以做这个操作,现在有移动互联网可以在任何时候做你的事情,比如上班的时候还一下信用卡,你可以在机场的路上,出租车上支付车费,也可以用支付宝像机票的购买都可以,但是因为这个会要求一些开放性,他需要你去提供一下你个人的信息,还有你自己的授权,这样就带来开放性这种开放性会导致很多的安全的问题,我们下面就当前移动支付所面临的危险做一个探讨,还有就是手机他有ROOT或者不ROOT都会面临一些问题,还有就是Safe  Zygote安全入口方案,还有下一代支付危险的解决的方案。

当前移动支付面临很多的危险,我们看到的就是比如像支付宝大盗,专门支付宝骗取用户的身份信息,还有吸金幽灵,他会专门用于窃取用户的金融类帐户信息,还有,还有微信支付大盗,还有我们的病毒伪装与山寨。据每油品,委聘会、淘宝特卖等等的就是会进行吸费,第一是支付宝大盗,他是二次打包的正常的应用,你看起来是支付宝,其实他不是,他有可能就是像普通的利用一些系统的漏洞做的二次的打包,他运行的时候把你的手机的号码短信上传走,做他们后台的分析研究,决定下一个就是对你操作。还有就是支付类所有的交易,改密码的短信,全部屏蔽,如果他拿到你的信息改你的密码你完全的不知道。

拿他可以通过远程的电话或者钓鱼的页面,就是填入用户名和密码,他可以通过你的信息修改你的支付宝的密码,他也是通过密码找回的方式,最后就是转帐就OK了,银行悍匪他是强迫用户击破设备管理器,正常的办法不会卸载的,他会监控你有没有一些支付类的应用,如果他发现了之后,他会向办法关闭这个程序,用钓鱼的页面替代,你直观上没有感觉的,就是两个界面切换的过程,他会获得你用户的信息,你自己用以输入这个的话,他会上升到远程的服务器,他再开启原来正常银行的程序,让你觉得输错了,其实你的密码被盗走了。

微信支付大盗,他涉及很多新的技术,这个相对难度低一些,他就是拦截用户银行的短信,尤其是像你的有一些支付类的,或者你的支付的密码,或者是你的一些银行的帐户数额的变动,他就把这些短信全部的拦截掉,另外就是他跟之前的那个就是一样就是激发你的管理器,还有一个高防的界面,…

问题总结,伪装过的手机病毒,还有正常应用重新打包,代码注入,还有动态跟踪。他会在你的正常的应用里面注入自己想要注入的代码,还有动态的跟踪你的内存在他的监控的范围内,不ROOT也不是一个很安全的事,因为他是一个很开放的系统,像我自己编了无数次的A(英文)的系统,他的实现往往就有一些,刚才老总讲过,就是比较年轻的人,写一些代码可能有一些问题,这也是不可避免的,当你审计源代码的时候就是可以利用的地方,去年比较出名的就是(英文)的漏洞。…这样可以导致在安装的时候,你看起来像正常的应用,其实是拿正常的应用加了一个恶意的代码,你安装的是正常的应用,但是你使用的是恶意的,另外一个漏洞是今年8月份,也是美国的一个公司,这个漏洞其实就是说,还有领导讲认证这个事,认证码也是和他相关的,(英文)他是做的自签名的,他不关心你的验证的过程,你可以用自签名或者用认证过的签名,但是(英文),你想做什么都是自己的选择,你可以做技术应用类的签名。

关于漏洞这个看起来不是特别的理解这个东西,因为可能很深的技术的细节,漏洞这个是很严重的问题,现在很多人搞一些攻击,像智能的家居,智能的汽车特斯拉用一些比较特殊的系统,如果(英文)用在汽车上的的话,那就很麻烦了,你第二天起来看到你的宝马等等离家出走了。有一些研究他可以去在应用运行的时候去检查你的系统能不能运行一些他想攻击的支付类的应用,有一些研究很有意思,他可以不需要你系统任何的信息,只要你安装应用,他可以根据你内存使用的变化的情况判断。他的命中率不是特别高,但是命中的话很危险。就是你的应用是自己使用的,不需要别人来应用。

还有就是像一些明文的信息的储存,这个东西说白了,大家觉得不会有那么明显的攻击,大家都这么想,其实结果不是这样的,结果有很多的东西都是明文的储存,有一些可能是一些失误,有一些是没有根据那个安全的实现,没有根据标准的规范做的,有的测试不够详尽的。他对各个银行做了一个审计,这是2012年的事情,他发现像明文储存的问题,有一个很典型的事情,有一个银行他在发布应用的时候,由于开发人员的疏忽就是发了一个测试版的应用,他就是应用的时候会打到一个日志里面,这个日志会被其他的应用所读取,这是很危险的问题。

ROOT就是代表你这个应用有很多的权限操作其他的进程,比如有一个例子,像浏览器,就是谷歌他可以在你的应用中做任何的事情,做程序调用,就是钓鱼连的短接。

HOOK,…就是你根本没有印象做这个工程分析,你不知道,他会在你的运行的时候应用的流程劫持掉了,还有一些黑客的软件供那些黑客使用。下面有一些研究的人员做一些研究,可以帮助你做一些很HOOK的这个工作,HOOK就是在背地里做一些你想不到的事情,这个是XPOSED—HOOK,他就是平台最流行的开源HOOK框架。还有就是替换这个APP,还有就是添加和删除HOOK需要充气ZYGOTO。

运行时的风险,一个正常应用运行的时候,就是用手机点这个图表,就是通过起动器,像系统(英文)向他请求,就是麻烦你想十组进程,麻烦你告诉(英文)一生把你自己复制一下然后运行我自己的代码,因为(英文)的安全性没有人能够保证,如果说已经被劫持了,所以这是一个很严重的问题,后边可以看清楚,就是ZYGOTO已经被劫持了,就是在你看不见的情况下都劫持了。

这是运行时风险实例,本来我应该拿一个银行的案例,所以我拿FACE做例子。

如何在不可信的环境里面创造一个可信的环境,我们如何保护我们所创建的运行的环境,在让正常的应用同可信的环境里面去运行,这是我们想要做的事情。手在点图表的时候还是一样的,系统没有变,也会请求,但是在请求之前,他会问你要不要Safe  Zygote启动,如果你想就用,他就是安全,如果你不用的话就是正常的系统的流程,如果你用Safe  Zygote启动的时候,他启动不是系统的那个启动的,我们是由自己编译的启动的,这个Safe  Zygote资深带很多注入的措施,你再启动的时候就不会存在任何的恶意的代码,这个是一个安全的问题,你进来就是安全了,运行的时候你这个安全的进程在防护,所以不会有任何的安全的问题。

这是方案的演示,其实拿的也是银行的例子,但是运行的时候很利于检测的。

4+1,就是我们提供了四个加强的方案,就是应付我们支付宝大盗之类的问题,还有一个就是反恶意,还有反篡改,还有就是反调试,还有就是反注入这几个问题。反注入就是反对你对其他的进程,做一些注入的工作,还有反调试,就是没有办法偷取我系统进程里面的任何的信息,反恶意就是百度的搜索引擎,这个恶意的软件识别的系统,他其实很多的技术在里面,那他跟支付安全相关的就是有还有漏洞的扫描病毒的扫描,…现在有一些应用减固的提供商,这个提供商会对你的应用进行加固。他帮你进行加固就是反调,由于这个东西加固以后对安全的软件来讲,也是一个挑战,你不对他进行减固…。

反篡改,篡改就是可以重新的打包分发。这个风险很高,他在任意的位置增加恶意的代码,就是你有相应的权限,比如你的应用是很流行重要系统的应用,他有很多的权限,他有办法的,如果他对你的应用重新打包之后,他可以随时随地的发扣费的短信,偷偷的打越洋的电话。

还有正版验证和检测盗版,应用加固,我们自己提供的应用加固和其他的应用加固商是一样的,就是针对银行特别安全的诉求。一些盗版的检测,我们上面有一个图关于这个的,我们会对自己的产品做盗版的检测,监控所有的渠道,看哪一些渠道有我们的盗版的品牌图表,还有我们盗版我们的代码,这是我们简单的报告。其实我们有一个监控很多的,像我们自己客户的应用。

反调试,这个是向开发人员用这个功能,因为他想知道,一步一步运营下来,每一步运营出现问题知道问题发生在哪里,调试是开发人员必须的工具,但是像恶意的这种应用也可以用调试,调试的办法,或者黑客也可以用调试调试你的应用,他可以在任何的时候获取你快存的内容,就是你输入密码之后,他都可以找出来你的密码,这个风险也是非常的高,为了阻止你的运行的状态被窥探你必须做调试的工作,你这个工作要越快越好,而且要必须时刻的做。不然的话,在A(英文)里面防止人家调试你的程序是很难的。

反调试就是功能开始之前之后的对比,差别就是开启之前就是向应用开发者调试的,开启之后你不能挂接的这个,他有自己的协议,这个时候协议被关闭了,甚至可以直接的关闭底层的这种调试。

反注入,其实应用程序本身的应用环境必须是安全的,注入的时候他会在应用的程序里面插入一些其他的代码,你这个代码不知道,而且你也没有特别的提示就是告诉你,你的某一段内存有一些恶意的代码,他的风险也是这样的,你的应用程序运行任何的数据和流程,像倪志福的时候,你从这个界面挑到这个界面就完成了,你注入之后,你的流程会被劫持,你的从这个界面跳到这个钓鱼的界面…。

要扫描一些应用进程中注入的模块,你要保证里的应用进程中是系统的模块。另外有要清除,这是一个例子,就是微信大盗,他和注入相关,一个恶意的应用在运行的时候,会注入微信的进程和QQ的进程里面,他会去注入恶意的代码,然后破戒一些关键的IPI然后你所有的注入日志都会被窃走的,这个是很危险的,有的人在微信QQ上隐私的东西很多,这是支付类的信息,这个很危险。

一个小的总结,4+1,一个是从你的程序的出生开始,到应用运行的这个过程中一直提供防护,防护你系统的恶意的软件,防止你被调试注入。

这是我们自己产品做的例子,大家可以看到,这个例子就是我们系统已经有了注入的东西可以注入的,这里面所有应用启动的,你是什么软件,不管你做什么东西,都会得到这个模块,这个模块我们在启动(英文)中会检测到。我们也针对自己的一些特点,他们自己想要的数据做了一些优化,像注入调试和篡改方面的。

这就是我想要分享的谢谢大家!

上一篇:NSC2014腾讯移动安全实验室陆兆华

下一篇:沈逸:沉着应对美国网络安全新攻势