阿里安全的自动化逆向机器人TimePlayer究竟有多“变态”?
文 / 阿里安全猎户座实验室 杭特
创新互联拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的网站建设、成都网站制作、网站维护、四川雅安电信机房解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、商城网站建设、政府网站等各类型客户群体,为全球数千家企业提供全方位网站维护、服务器维护解决方案。
“如果杀毒软件厂商的自动化水平和能力,相当于天上的卫星,能看到地上奔跑的羚羊。那么,我们能做到什么程度?我们能看到羚羊身上的每个细胞。”
这是阿里安全资深专家、阿里安全猎户座实验室负责人杭特对旗下自动化逆向机器人TimePlayer的描述。虽然这个东东战力爆表,不过杭特淡淡地表示,这只是个开始......
什么是逆向?
×××(或者白帽子)在很多人眼中属于非常神秘的种族,仿佛他们无所不能:破解设备,***系统,发现各种牛B的漏洞。逆向能力,就是这些×××的基本功。其实,各行各业都有自己的基本功,比如学武术要先练站马步,否则下盘不稳,稍微推一下就倒;外科手术,手要既稳又灵活,否则手一抖,割错了地方,那就……当然基本功练到顶级,能达到出神入化的效果,比如武侠小说里内力深厚,可以把木枝当利剑,把树叶当飞镖。
那么×××何时需要这个基本功呢?就是他需要搞清楚一个程序到底在做什么的时候。这里再举几个例子:早期国内企业想造汽车,又没有积累,怎么办呢?买一台日本车,把他大卸八块,发动机变速箱全都拆开,一块一块的研究,然后照葫芦画瓢仿制出自己的型号;一个病人来看病,医生有用听诊器加望闻问切,高级点的各种化验加CT核磁共振,都是为了发现这个病人有何异常;生物和医学研究,需要各种显微镜来观察细胞的各种运行状态,等等。
通过逆向,你就能弄明白:当你点了一下鼠标,你的照片是如何一步步显示在屏幕上的,脸上的青春痘是如何一步步被消除的;当你输入支付密码,你的验证码是如何一步步验证的,你的转账记录是如何一步步生成的;运行一个网上下载的“是男人就下一百层”游戏,背后是如何偷偷的盗取你的聊天记录和网游账号的……
现在逆向都是怎么做?
很不幸,大部分还处于比较原始的状态,除了少数通用工具(IDA、Ollydbg等等),绝大部分工作都需要人来操作。对于刚入门的同学,人工逆向打怪升级还有些成就感,“读了这些文件”,“发了这些数据”,“哦,原来是这么回事”,“MD,它竟然敢这么做”,“哈,终于绕过了这些限制”。但随着时间的推移和技能的提升,逆向工作就成了纯粹的体力劳动,每天只能反反复复的运行程序、设置断点、获取接口数据、修改数据、写分析记录,大量的时间耗费在这些繁文缛节里。
为什么要提自动化逆向,难度如何?
目前的主要矛盾:需要分析的对象数量越来越多、规模也越来越复杂,但分析人员人数有限,还经常出状况(比如高级分析人员的能力无法赋能给初级分析人员,人员流动导致的能力衔接不够,人工分析的准确性无法得到保证)。能不能把重复的人工分析任务完全由自动化的工具来做?答案是肯定的。
一定有些专业人士来挑战:不是有个叫做“脚本”的玩意儿么,你把常用的操作,写个脚本不就完了,或者开发个分析平台啥的,不难。
下面来个类比:
- 开车作为一个现代人的基本技能,不算难,当然也要花1、2个月在驾校学习和考试上。目前我国的驾驶员有3亿。如果人工驾驶,改成自动驾驶,是不是难度陡然提升?现在还没有几家敢说自己达到Level4和Level5的自动驾驶吧?
- 围棋,规则普通人一天差不多就能学会。但如果让超级电脑按照这个规则和人对弈,战胜人类冠军,哪怕计算力超强,也是很困难的事情,否则为什么阿尔法狗那么出名?因为难呐。
又有一些专业人士会反驳:胡说,那些杀毒软件厂商,每天查杀数亿样本,肯定是自动化实现的。我只能说,这个反驳有一定的专业度,但只看到了表象。每个杀毒软件厂商都有一个很大的运营团队(通常数百到上千人),用于人工分析自动化初筛后的样本。他们的自动化水平和能力,相当于天上的卫星,能看到地上奔跑的羚羊,仅此而已。而我们能做到什么程度?我们能看到羚羊身上的每个细胞。
阿里的自动化逆向机器人达到什么程度?
我们将安全从业人员逆向工作的大部分能力完全自动化,创立了自动化逆向机器人TimePlayer。相关的能力么?世界领先,甚至可以说是世界第一,不服来战嘛。
TimePlayer使用的相关的技术非常晦涩难懂,这里就不展开了。下面形象地说一下这个机器人的能力:
- 摄像机:如果要分析一个程序,只需要在TimePlayer里运行一次就可以了,TimePlayer会把该程序所有的行为全部忠实的记录下来,不会遗漏任何的细节。
- 播放机:之前拍摄的内容,可以向前放、向后放、快放、慢放、放大任意处的细节、追踪任意的目标。要注意,这个播放时的结果要和摄像时一模一样,这是很有难度的。
- 显微镜:程序的行为,要做到指令级别的粒度,所有的一切都要能观察到,包括每个指令是什么,寄存器状态,访问的内存内容,等等。打开一个App,通常几十亿条指令就执行完了,上面的内容统统不能遗漏。
大家可以把这个机器人类比成医学界的达芬奇机器人,配合技术高超的医生,能够实现许多很多专家都做不到的事情:
- 前一阵大家都听说过WannaCry勒索病毒,很多用户重要数据被这种恶意软件加密了。如果要恢复这些数据,需要勒索者提供一个叫做“私钥”的东西,这个“私钥”数据量很小,其实是在受害者机器上生成的。由于勒索软件刻意的删除了本机的“私钥”,理论上只能掏钱向勒索者获取。虽然很多安全厂商做了各种分析,貌似很彻底,但都没有我们的独家发现:这个“私钥”实际上在用户态和内核态均有残留,且相较于暴力搜索用户态内存方法,精准的内核态残留提取更为稳定。
- 安全人员工作中经常需要逆向一些网络协议或者文件格式,举个例子,只有逆向doc超级复杂的文件格式以及Word对其的解析过程,WPS才能打开doc文档并对其进行处理。现在,只需要把doc文档放到TimePlayer上打开,就能自动化的对doc文件格式进行分析。以前数人多年的分析工作,现在几天时间就能搞定,还不需要人的参与。
- ***是个对抗的过程。为了对抗人工逆向,防护人员开发了各种各样的工具和产品提升逆向难度,其中最有名的叫做“虚拟机壳”。这种壳本质上就是一个超级复杂的迷魂阵,让逆向者不停的打转,耗费他们的时间和精力。一般只有特别资深的专业人士,经过一定时间的积累,才能搞定这种复杂的对象。TimePlayer利用了独特的技术,可以很轻松地化解这些迷魂阵,让最初级的分析人员也能很快的了解程序的算法细节,甚至都不需要了解,拿来使用即可。“虚拟机壳”这种纯工程化的障眼法,如果不结合一些理论上的难题,未来的天花板会很低。
以上的内容还只是TimePlayer能力的牛刀小试,更进阶的功能由于保密的原因还不能分享,我们会在适当时机进行发布。
另外,说一下对未来***形式的方向性看法。随着社会生活全面互联网甚至物联网化,需要分析的对象,无论是种类还是数量都呈现爆发性增长,指望有限的分析人员来覆盖这些对象是不现实的,人海战术将不能满足要求,自动化、规模化是大势所趋,也是能力能够沉淀的必经之路。
文章名称:阿里安全的自动化逆向机器人TimePlayer究竟有多“变态”?
文章起源:http://hbruida.cn/article/jpdedo.html