腾讯吴昊:移动安全威胁

吴昊:各位来宾,各位安全圈的朋友以及各位媒体朋友,大家上午好!很高兴也很荣幸站在这里跟大家讲移动安全问题。前面Bruce也分享了Radware在云端上的安全防护问题。这里分享一下移动端的安全防护问题。

前段时间,大家还在纠结,能不能登上移动互联网的船票,甚至在说这个东西到底是站票还是坐票,经过这几年的发展,移动互联网发生了什么变化呢?CNNET发的一个数据。从2007年移动互联网开始普及,为什么是这个节点呢?

2007年iPhone发布了第一款他的手机,从那个时代大家对智能机的认知已经发生了改变。2008年Android发布,中国互联网从PC时代到移动时代,最终移动互联网在整个网民中的渗透率已经达到现在的90.1%,整体网民达到7亿,而移动互联网网民已经占到6.1亿。

这个大背景下,人们发现整个生活已经离不开移动互联网,大家的智能手机,无论是吃饭还是坐车,基本都会有对应的App帮大家解决这些问题,不像以前PC互联网,大家的入口就只是一个浏览器甚至是QQ。

这是手机管家做的统计,这个数据可能让大家感觉更加触目惊心,在2011-2013年时,移动App的发展是相对平缓的,但到2014-2015年呈指数级的增长。2014年涌现了一波移动互联网的创业浪潮,那时候出现的很多小开发者甚至个人开发者,整个移动App开发效率越来越快,成本也越来越低。

我给儿子辅导英语时,他的老师会推移动App,有很多bug,我就找这个买法者,很惊奇地发现这个App就是孩子的父亲,为了让孩子学好英语,就是简单的录音、上传,让同班同学可以分享。所以,整个移动App已经完全渗透到我们生活的各个领域中。

我们所面临的风险。

机遇永远和风险都是并存的。既然整个行业都盯在这一块,很显然黑产对这块也是虎视眈眈。环境,你的App在Android手机上运行,和它一起运行的可能是其他的App。大家需要知道的是,不光是其他的App在你的手机上,还有这么多的病毒,病毒和App的趋势是相同的,也是2014-2015年呈指数式的增长。

这些病毒是干什么的呢?

黑产为什么会有这么大的动力做这个事情?其实就是为了钱,看排名第一的就是资费吸取,可能你的手机会在不知不觉中中了一款病毒木马,它会发短信和网络链接,消耗你的流量,不知不觉中你的流量就被吸走了。

既然有这么大的动力,它的传播渠道呢?大家会说iOS的审核非常严格,但Android会多达40、50的分发渠道,这样多的分发渠道导致病毒传播也非常快速。这里面利润比较高,有一些步伐厂商会累及病毒,那么你的手机在病毒肆虐的环境中会受到影响。

除了病毒,很多App的开发者,刚把自己的东西发出去,利马仿冒的东西就出来了,甚至它的东西会夹了一些广告,就是你辛辛苦苦做的东西全在给别人打工了。这个仿冒会有非常大的行业性,在游戏里会特别明显.

据不完全统计,90%的游戏都会存在仿冒。我们做了统计,平均每个游戏的仿冒数大概是150家。其实这种仿冒对黑产来说非常简单,它有一套非常成熟的工具。可能你的App过来之后,仿冒就自动化广告插件,自动化编译,发布到各大平台,可能是一体化傻瓜式的操作。

刚才说了应用环境,你的App会面临着竞争对手的仿冒,非常严峻的生存环境,但本身的App是不是也没有问题?

再看一个数据,这是腾讯安全平台部对市面上70%、80%的主流软件做了统计,最危险的是Webview代码执行漏洞,做技术的人知道这个漏洞的危害,也许你无意点了别的链接,也不是上黄色网站,但你的手机就有可能中毒,就有可能变慢,就是因为这个漏洞。

这是给大家分享的安全的问题,除了安全还有做移动开发的有没有别的问题。(图)苹果从发布到现在整个手机更新换代非常快,而且比例、占比都是挺OK的,现在看中国的Android市场,无论是排名第一的OPPO还是华为,以及小米都耳熟能详,但没有一款机型包括1.5%。如果把这个链条朝下拉,你们可以想像,在中国市场上会有多少款手机,5万款。

在大量碎片化情况下,可能你要应对的不光是把功能做好,更多的是要应对各种各样的适配问题,常见适配问题第一的是Android 00M问题,有的可能在模拟器、主流机型上运行得很好,测试环境中都OK,为什么发布出去用户就卸载,因为用不了,还有各种各样的分辨率等问题。当我们费劲所有的问题把这些搞定之后,我们的产品发布出去了,用户数如何,稳定性如何,可能有的用户用完就卸了,什么原因?不知道。

每天有1400万Android手机都会发生应用崩溃,每个月会有1.8亿设备发生应用崩溃。这对每个开发者来说都是非常巨大的考验。做过Windows开发的都知道,空指针一直是程序员所诟病的,它也是出现最多的问题,在Android环境下其实一样不例外,50%接近一半都是空指针。你如何找到这些点,可能要自己搭建一套很复杂的运营管理系统,但很多小厂商或个人开发者有没有这样的能力?

我们该怎么办?

前面讲了很多数据,其实想给大家说,我们在这种大环境下,有些问题不仅是小厂会面临,腾讯这样的大公司也有很多App,我们这些App怎么解决,是安全问题,适配问题还是跟踪问题?大公司有个好处,专业的人去做专业的事情。这里跟大家稍微分享一下腾讯的研发体系。

腾讯研发体系。

需求阶段,我们安全人员会做一个风险评估,工人有没有潜在的问题,有什么样的恶意?这个地方会做充分的评估,如果评估这个方案不OK,那么对不起,产品就会改方案。

开发阶段,我们会有一整套的研发安全规范,会提供安全API,比如输入、输出和关键地点都会做匹配和适配,最大程度地去避免因为开发者没有安全的经验而导致的低级错误。我们会给代码做混淆各加密,相当于给代码输入一道“防盗门”。

测试阶段,整个应用本身会有漏洞,测试过程中不仅有工人测试,还有人工渗透测试,还有漏洞扫描,这样把漏洞早点发现。腾讯市场上主流真机我们都会采购过来,进行真机测试。

发布阶段,服务器上我们会做服务器的保护和安全防护。

运营阶段,会做质量跟踪,渠道方面的监控。

这是整个研发周期,安全会从头至尾会做培训考试,审计、咨询、执行,这一整套体系下来,我们的App在市面上做安全风险、应用适配都会有一些优势。

对业务代码,我们想做专业的安全保护之后,它就能够提升立项的成本。(图)这是我们的保护框架。业务有很多种形态,无外乎就是APK,SDK,或者源码级的。对这三种形态我们会有分别的对应方式,比如APK就是Dex这一层会判断虚拟机,二进制文件我们会自己写loder站,会把常见的文件抹掉,市面上常见的文件搞不定。还有资源文件,你辛辛苦苦做的资源文件说不定会给别人就用了,我们会做加密。我们会在接口层面做接管。

下面这一层是加解密中心,会根据不同的形态做高强度或低强度的加密。再到下一层就是对抗。最后一层是核心,我们有一套自己的虚拟机,会对代码做混淆变化流存,各种各样的扁平化。过程中会有反调试,反Download的实时防御。这样下去之后你的数据就会非常健壮,有一道防火墙或防盗门,你先得攻破这道门才能了解里面的秘密。

当然,外部竖了一道门,你有漏洞还是不得不修,有漏洞必须要修的。我们对业务做了一套通用的扫描引擎,分为静态和动态,会在数据安全和通信安全、应用安全、第三方主题安全四个维度做自动化的扫描,一旦扫描最基本的低级错误就会被过滤出来。还有主机扫描,进行攻击测试,传输一些扫描,看有没有crush。最底层有APT威胁情报,对近景或远景漏洞都会有威胁情报中心的扫描系统,扫描之后报告给库。

我们的App每天会出一个统一报告,你要关注的点非常简单,只要看这个报告里是否有漏洞修复,达到我们发布的标准。

真机测试,几千台机器,不可能每个人对应一点,所以我们做的一个平台化测试平台。我们有中控系统会管理脚本,会通过网络发到每个手机终端上,在手机终端上你的App会有一套KAT框架,在管理整个App的生命周期。

比如App的安装、卸载以及各种各样点击的触发、上报、数据的录取,内存的消耗等各种各样会做统一的分析,最终也是把结果以报告形式反馈给开发者。也就是说你的App做完之后,每个自动化编译之后,它的漏洞结果、测试结果、适配性结果,市面上几款机型适配率99%还是98%一目了然。对这些机器还可以测试,远程登到这些机器上进行远程调试,帮助定位这些问题。

质量跟踪。真机测试之后回到质量跟踪,这是每个App打到SDK,会做负载均衡。腾讯系的App量还是非常大的,每个App搭一个Crush分析框架不现实,这是统一的框架,我们会做负载,会做联网数据、崩溃数据,消息中间层会对逻辑堆栈进行处理。

比如今天新增了多少用户,明天本来应该在线的用户离线了多少,哪些用户是你的潜在用户或高ARPU值的用户。我们通过后台一个分析数据库和搜索引擎,最终你从前台都能通过每个业务开放权限查到自己的业务对应的报告。

腾讯在这块投入了非常大的人力物力解决这些问题,每一块涵盖了无论购买真机还是组建安全团队都会消耗非常大的人力、物力、财力。对中小企业来说真的会很奢侈,有没有很方便的,假如我是小开发者,你帮我全部搞定。我们把之前所说的这套框架做了整合,最终我们提出一个口号是——移动安全一站式服务。什么叫一站式服务?只要在我们这儿全部都可以搞定,很方便。

黑产也方便了,病毒、木马可能都会过来用。所以,我们在前面有个样本扫描系统,这也是依赖于电脑管家强大的病毒查杀能力,我们在给行业提供便利的同时要主打外来黑产。审计层很多黑产就过不了。对于用户他有多种选择,可以通过Web入口做,可以通过PC工具,甚至通过API集成他的环境。

进来之前我们会先做一下体检,告诉你那个地方有危险,哪个地方应该做什么东西。当这些东西做完之后,有的用户会不太懂下一步要做什么,我们这里更多的是提炼一种解决方案,就是用户可能是电商用户、游戏用户、互联网金融用户或银行用户,对不同用户对应的解决方案都不一样。

我们会包装一些,比如可能你的游戏需要防破解,金融可能需要一些知识产权保护,或者交易流程的保护,电商可能会需要一些信息数据,有些需要病毒木马杀毒。每个垂直领域我们都有一套分级的保护方案,你可以选择轻量、中量或高强度的方案,我们会有不同的方案。各种插件式的组件你都可以自由勾选,自由组合。

插件的支撑是依赖于腾讯支撑的大平台,我们有应用的Top级的,有应用管家、海量病毒库,会对监控做监测爬取。比如游戏外面出现盗版之后我们盗版系统马上会发现。所有的真机测试和质量跟踪系统,你前面遇到的无论是环境问题、安全问题还是App自身的问题在这里都能得到一站式的解决。

这套框架出来之后,用户已经开始自动化接入了,比较庆幸的是,现在云作为一个很好的出口,在云上做非常好的整合,在App生命周期里,无论是代码集成、上线测试、发布运营它都涵盖,在平台上能找到所有的对应功能,而且所有这些东西都能非常得简单。

目前我们通过这个平台已经做了超过10万款应用,服务了1亿终端。未来在腾讯其他App领域可能还会孵化出新的工具或新的解决方案,我们都会依赖云把整个解决方案对外发布,也希望所有中小开发者和我们一起去共同组建云端App生态,一起为App整个行业健康发展,腾讯希望为大家保驾护航。

谢谢!

上一篇:Radware姚宏洲:https环境的安全威胁和对抗情况

下一篇:杨大路:安全智能连接传统安全措施