与腾讯反病毒专家马劲松聊“TAV”
文/ 史中
人人都被迫接受某些事实。例如我们的世界无法根除犯罪,例如网络空间无法灭绝病毒。正是因此,我们需要 AV 常驻在系统之中。不要误会,AV是 Anti-Virus(杀毒软件)的简称。
杀毒一如缉凶,通俗来讲就是依靠通缉犯的照片(病毒样本),找到乔装改扮的罪犯(病毒及变种)。被广泛安装的腾讯管家类软件,其中都搭载了腾讯反病毒引擎 TAV (Tencent Anti-Virus腾讯反病毒引擎)。而这个引擎,出自腾讯七大安全矩阵之“反病毒实验室”之手。
杀毒引擎就像一部汽车的发动机,你无法通过外观来判断它的性能。想要知道它究竟有多大的能力,非得亲自踩下油门不可。当你每次点击查杀病毒的时候,实际上都在和实验室的每一位安全专家“对话”;然而在现实中,用户却很难有机会和他们面对面交谈。
笔者采访到了腾讯反病毒实验室的负责人马劲松,他讲述了腾讯杀毒引擎白手起家的创业故事。
【马劲松】
血战地址栏
作为一名技术出身的“病毒杀手”,马劲松谈吐沉稳,有一种老刑警的风范。
杀毒的本质是技术对抗,而这正是他一直以来专注的领域。马劲松仍然可以清晰地回忆起十年前自己刚到腾讯时的“特别任务”。
当时的搜索引擎还处在江湖混战的阶段,有腾讯的搜搜、3721、百度、谷歌、雅虎、CNNIC。用户在IE地址栏里输入关键词进行搜索的时候,IE 会按照顺位自动指定一个搜索引擎进行查询。为了争到第一顺位,几家搜索引擎在后台已经打得不可开交。于是我和刘桂泽两个人接下了这个对抗的任务。
搜索引擎的流量决定了广告收入规模。通俗来讲,这就像幼儿园的老师让小朋友排好队,排在第一的就可以得到小红花,于是面前的小朋友就开始了你争我夺的“厮杀”。
非常明显,每次我们推送新版本之后,广告收入就会有明显的提升,但是竞品的技术团队也在做同样的对抗,今天我们排第一,明天可能就是对手排第一。所以我们必须不断地研究对手的程序,改进自己的程序。
这样的升级开始以周为单位,之后逐渐白热化到以天为单位。让马劲松颇感骄傲的是,对抗到后来只要下发几十个字节的配置升级文件,就可以保证搜搜的搜索接口排到队首。甚至有的时候,他可以研发出一个“大版本”,让对手两三天都没办法破解。
虽然对抗激烈如斯,但是所有的搜索厂商都在遵守着同样的江湖规矩,那就是:所有的对抗只能在后台进行,不能弹窗,不能崩溃,不能让用户有所感觉。
正是因为如此,在马劲松眼里,十年前的这场混战更像是技术的竞赛,而不是你死我活的战争。
软件对抗中不可能出现一招制敌的战术,如果你使出这样的招数,一定会把战争升级。如此一来局面肯定会失衡,会有更大的麻烦等在后面。
这个观点也成为了后来腾讯反病毒引擎的行为哲学。
手工打磨一部杀毒引擎
2010年,世界上还不存在一个为名“腾讯杀毒引擎”的东东。但是命运总是这么让人猝不及防,3Q 大战爆发。
严峻的形式摆在面前,我们必须要有一部杀毒引擎。但是由于时间紧迫,从头研发肯定来不及,所以我负责和某国际厂商接触,购买一部 OEM(定制生产)引擎。
但是,鉴于腾讯的体量、用户量,当然还有他们对杀毒引擎要求的迫切程度,某厂商制定了苛刻的协议,要了一个高出天际的价码。用马劲松的话说,这个价钱“让人惊愕”。他十分愤怒,然后交了钱。
然而,这部宾利价格的引擎却只提供了夏利引擎的性能。“一旦跑起来,马上占用 200M 内存,连打开 Word 都很卡。”时隔六年,马劲松仍然忍不住吐槽。“而且使用过程中,有客户反应有的病毒查不到,清不掉。我们只好给厂家反映,他们态度倒是很好,24小时响应。只是接到我们的反馈之后就杳无音讯,几个月都不升级。”而这是传统杀软厂商的通病。
2011年,忍无可忍的马劲松拍案而起,决定搞腾讯自己的杀毒引擎。
由于我来到腾讯之前就在国内著名的传统杀毒软件厂商工作,所以我对自己的技术很有信心。但是由于是从零开始,为一个引擎研发虚拟执行、脱壳拆包这些基础能力仍然需要一定的时间。”直到半年之后,腾讯反病毒引擎 TAV 才基本成型,团队决定把引擎放到测试平台上接受考验。
上线测试之前我就觉得应该不会太差,但是收到第一份测试报告的时候我还是非常兴奋,因为我们的引擎对病毒的检出率指标一上来就排在所有竞品的中上等位置。
但是,此时的 TAV 引擎丝毫没有骄傲的资本,因为马劲松一手打造的引擎,对资源的占用甚至超过买来的那部 OEM 引擎。某种程度上他理解了竞品的苦衷,但是他并没想为此妥协。“要保证检出率,同时还要保证检测的速度,这是一个需要仔细考量的平衡。”
为此, 马劲松带领兄弟们做了如下几件事:
在文件进入引擎之前,就要先行筛选过滤。有一些在白名单中的文件可以肯定不是病毒,所以可以利用某些条件,有选择性地让疑似文件进入虚拟执行等耗费资源的流程。
在检测文件安全性的时机上,不一定是文件刚登陆系统就进行检查,而是根据细分场景,在系统闲置的时候,或者拷贝文件的时候对文件进行检查。
对于病毒库进行了精简,团队的安全研究员反复实验,提取到病毒最好的特征,短小的同时误报率低。
改进算法引擎,用机器学习的办法帮助提取病毒的特征。
从2012年中期开始,TAV 的资源占用逐渐达到了马劲松的理想状态,用他的话说,“这才是互联网厂商做的杀毒引擎。现在电脑管家内的 TAV 引擎,包括病毒特征库在内总体积只有不到 10M。”
从那时开始,使用了 TAV 的电脑管家在VB100、AVC、 AV-Test 等国际杀毒软件的官方测评中一直保持在第一梯队,在 PC 杀毒领域紧紧追赶卡巴斯基,小红伞等超一流杀毒引擎。
【2016年度,TAV 将要参加各种机构测评的“日程表”】
有了自己的杀毒引擎,马劲松感到了前所未有的畅快:“这几年我们偶尔还会遇到疑难病毒特殊样本的处理。之前有一个复制能力很强的宏病毒,我们向 OEM 引擎反映了两三个月,都没有得到处理;而我们自己的团队算上关键模块开发的时间,也只用了一周左右就实现完全查杀了。”
马劲松坦言,在杀毒引擎进化的过程中,云的功劳无可替代。一些大体量的陈旧的病毒样本可以放在云端,而目前流行的传染性强的病毒放在本地,也成为了目前各家杀毒引擎的标配。
哈勃创生
一套完整地反病毒体系,不仅应该有“对着照片抓凶手”的前端查杀引擎,还应该有“判断谁是凶手”的后端侦测系统。在最初的阶段,TAV 的病毒库来源的主要部分是通过各种渠道收集来的样本。但是在 TAV 不断完善的过程中,马劲松发现,对于这些样本,自家引擎已经游刃有余了。
于是哈勃系统出现在他们的计划中。简单说来,哈勃就是通过对全网所有文件进行全量分析,然后根据文件的行为检测出新病毒的系统。通俗来说,这个抓捕能力很强的“警察局”要开始增强自己的侦察能力了。
现在哈勃系统每天可以对上千万个全网新增文件进行分析,通过构建一个虚拟的运行环境,加之各种规则来综合判断一个文件是否安全。
告诉哈勃怎样来判断一个文件究竟是不是病毒,这件事情其实远比想象中复杂,因为马劲松和团队面对的,是一个个病毒背后活生生的黑客。
很多病毒会和杀毒软件进行对抗,比如通过周围的条件判断自己是不是运行在杀毒软件的虚拟机中;
还有很多盗号的木马,他们会检测 DNS 服务在不在,检测系统里的 QQ 是否在运行。由于我们不可能在虚拟机中真的安装 QQ,所以我们需要用代码来模拟这些软件存在的特征。
还有些病毒,它的发作需要很特殊的触发条件,例如被下载之后,会等待30秒才开始攻击行为。或者首次运行的时候什么都不干,重启的时候再攻击。对于这种病毒我们就要跳过前面的等待代码,直接检查后面的代码。
还有一些复杂的病毒,他们自身可以加密、变形。这种特殊的病毒,只能依靠真实的执行,让它在运行的过程中自己解密为明文代码。但是这就对虚拟机提出了很高的要求,如果虚拟机写得不够精巧,很可能病毒跑到一半就解密不下去了。
马劲松告诉笔者,由于分析的数据非常庞大,哈勃引擎还可以产生出质量很高的威胁情报。
“在这些病毒样本中,我们可以提取到 IP 地址、URL 地址、手机号、短信号、E-mail 地址。这些都是非常有价值的信息。例如你可以通过 E-mail 查询到注册者的信息,通过网址也可以查询到注册者的信息,这些信息可以提供给腾讯内部以及合作伙伴,看到整个网络中对特定目标的攻击态势。”
【2015年冬天,马劲松和同事们在办公室等待测评结果】
最难跨越的是最后一步
2015年6月,马劲松和反病毒实验室接到了一项艰巨的任务,那就是扛起“手机病毒查杀”的重担。虽然团队专家之前对手机病毒有所研究,但是主攻方向一直是 PC 端。
手机病毒和 PC 病毒虽然原理相同,但是文件格式、黑白名单的比例构成、有害行为的特征都不一样。这些细节的东西还是非常吃功夫的。
马劲松说,他尽量不让兄弟们加班加点,从容有序地完成这个庞大的计划。他告诉笔者一个印象深刻的场景:
到了11月的时候,我们的手机引擎第一次参加 AV-Test 的测评。我们知道成绩就会在这两天公布,于是我们几个人每天都等在公司。由于和德国有时差,所以我们一直等到晚上11点。但是连续两三天都没有等到,去年的冬天非常冷,我们半夜回家都冻得够呛。
不过最后一天晚上十一点半,我们终于等到了那个邮件。我们以98%的检出率得到了满分。那一瞬间,我们突然觉得饿了,大半夜里我就请大伙出去吃了顿大餐。
虽然检出率超过98%就被认定是满分,但是“98%”的数据还是让马劲松觉得很刺眼,因为这意味着距离100%还差两个百分点。但是这2%的距离,却不是轻易可以补足的。奇怪的是,说到如何补足这两个点,马劲松觉得并没有独门绝技。“并不存在我做了某件事,就突然提高了这两个点的一一对应关系。我们其实就是把所有的细节重新扣了一遍,优化了所有觉得有进步空间的逻辑。功夫、心态,98%到100%就差这点距离。”
2016年3月,TAV 在手机病毒查杀评测中第一次拿到了100%的成绩。5月, TAV 在手机病毒查杀评测中又一次拿到了100%的成绩,且是国内唯一一家。
【AV-Test 2016年5月 移动端杀毒软件的测评报告】
“从这以后,我再也看不到竞品的同学秀他们的评测成绩了。”马劲松对此非常骄傲。
说到当年研发 TAV 的初衷,马劲松颇为感慨:
因为杀毒软件的权限是系统级别的,处在核心位置;就像防火墙处在防御系统的边界一样。如果在核心的能力上受制于国外,就有可能被留下后门,做手脚,受制于人。我们没有任何办法。
故事的发展印证了这位“老刑警”的判断,2014年,国家发布规定,国有企业禁止采购国外的杀毒软件。
在马劲松心里,TAV 站在中国的网络边疆之上,守土有责。
相关阅读谁是下一个创业新星?腾讯创业大赛华北区决赛即将开赛
经过层层选拔,最终37个具有颠覆创新思维、商业价值与社会价值兼备的创业团队脱颖而出,进入到7月19日在腾讯众创空间(北京)举办的华北区决赛。承办方:腾讯众创空间(北京)、腾讯众创空间(天津)、英诺创业圈、 耒来科技、 快创学院