从苏宁电器到卡巴斯基--我在卡巴的日子

引言

本文转载了学校的网络安全老师撰写的亲身经历,讲述了他从一个营业员转变成一个病毒分析师的故事。本章节讲述了老师对新篇章的展望和在卡巴斯基的奇闻趣事。

引子

前言

“雨轻轻弹,朱红色的窗;我一生在纸上,被风吹乱。梦在远方,化成一缕香,随风飘散,你的模样。”

——方文山

自从周杰伦的电影《满城尽带黄金甲》上映以来,我就被这部电影主题曲中磅礴而又不失优美的文字所震撼。其中所蕴含的意境,多年来也是不断地在我的内心掀起无数的波澜。我总是期望,我的一生能够如同歌词中所写的那样,跃于纸上,被风吹乱。或在泼墨山水画里,于墨色深处,被隐去。

在我的《从苏宁电器到卡巴斯基》这部小说最后一篇的最后章节中,我曾引用过这句歌词,因为我这些年以来的坎坷且崎岖的经历,是值得被忠实地记录下来,任他人评说,或多年后自己再细细品味,躺在摇椅上慢慢聊的。而这将近二十万字的篇幅,也证明了我的人生并不是空白,我也向这个世界展示了与众不同的,独一无二的我,那么,这也就足够了,我也心满意足了。

本以为,我的曲折与坎坷,或者说那一种如同小说般既视感的经历会随着我入职卡巴斯基而烟消云散,我的未来道路也会随着我的入职而越走越顺。可令我万万没想到的是,入职卡巴并不是一个结束,而是一个个崭新故事的开始,是上天带给我的新的机遇和挑战。与第一部故事的时间跨度相比,这次的故事尽管时间短暂,但其中的酸甜苦辣,又在我的内心深处留下了不可磨灭的印记,是值得分享给大家,是值得我回味的。

此时此刻,当我坐在宽敞明亮的办公室,悠闲地敲下这一系列文字的时候,尽管我是以非常放松的心情与姿态来回顾这段往事的,尽管我每天能够开着小车开开心心地上班下班,倘佯在优美的大学校园之中,看那花开花落,云卷云舒,似乎未来可期,美好无限。但是深藏在这一切背后的那一段惊涛骇浪,又是有谁能够理解并知晓的?而也正是入职卡巴后的这样的一段非凡的经历,使得我如今每一天更加小心翼翼,特别是在职场,对待工作,对待他人,更是战战兢兢,如履薄冰。说得严重一点,就是怕了、倦了,不愿参与过多的事端,如此平静走完一生,也未尝不是一个极好的选择。

花落人断肠,我心事,静静淌。

编年体通史与纪传体通史

想起在中学历史课上,老师曾经为我们介绍过史书编著的两种体裁——编年体通史与纪传体通史。

所谓编年体通史是指完全按照时间的先后顺序来记录历史,这样写的好处在于时间观念比较鲜明,缺点在于如果在同一个时间段出现多件需要记录的事情,那么这种穿插记录的写法容易让人觉得混乱。而纪传体通史则避免了这样的问题,它是以某个历史人物或者某件重要的事情为中心进行论述的。也许这个人或者这件事前后延续了很久,但由于前前后后只记录这个人或者这一件事,因此可以让读者更好地了解事情的全貌。这样的写法在时间跳跃上往往会很大,可能经常需要跳回多年以前或者穿越到多年以后进行论述,因此在介绍多件事情的时候,可能会让人不太容易把握时间的顺序。

这里之所以要以这两个历史概念作为铺垫,是因为我在写第一部小说的时候,其实从总体上还是按照事情的前后发展顺序来记录的,从我2005年刚刚读大学本科作为开始,一直到2016年硕士研究生毕业并入职卡巴斯基作为结束,约12年的时间,是我国传统意义上的一个轮回。不过毕竟我当时的经历比较简单,因此采用“编年体”的记事方法还是可以的,但是到第一部的后期,由于我面临着毕业,面临着求职,后来在研三第二学期入职了卡巴斯基的同时也还需要应付学校里面的很多事务,因此那段经历其实主要使用的是“纪传体”的写作方式,也就是专注于把一件事情说清楚,说完之后再跳回从前去叙述另一件事情。比如我当时就是先专注于论述我的整个毕业过程,然后才回到卡巴斯基的求职故事的。我感觉这样的写法也是可以让大家更好地理解我当时的经历。

那么我的第二部小说,依然会采用这样的叙述方式。但由于从2016年到现在,发生了太多太多让我想都没想过的事情,因此“纪传体”的写作方式会成为我这部小说的主流写法。特别是整个2020年,尽管由于疫情的原因,我大半年的时间都在家里办公,但并不影响我“招黑体质”的充分发挥,所以等这部故事来到2020年的时候,相信大家会通过我所经历的一件又一件的事情而眼界大开。

老同学给我的建议
2018年的时候,我的一个大学同学和我聊天,我就把我写的第一部小说分享给了他看。因为读本科时候我俩关系不错,因此我写的很多故事他也知道,他看了也是深有感触,仿佛都回到了长春理工的四年时光。但由于毕业之后各奔东西就没有了联系,因此他看完我毕业后所经历的种种之后,也觉得我的故事非常地传奇,同时也给我提了点意见,意思是说我不应该把一些人和企业的真名透露出来。

我听了以后觉得很有道理,感觉当时写的很多内容确实是直来直去,不够委婉,很多企业我就直接把名字写出来了,比如苏宁电器,比如卡巴斯基。但是我觉得这么写也并没有什么不好,毕竟我对这两家企业也是非常的认可,没有说什么不合时宜的话,更何况我的大标题就是这两家企业的名字。但到了现在,为了谨慎与稳妥起见,我觉得第二部的故事,除了这两家企业之外,其余所有的企业,我就统一按照时间顺序用A、B、C……来替代了,以避免招致不必要的麻烦。包括一些人也是如此,统一用英文字母进行编号。而为了避免大家通过蛛丝马迹推测出这些企业的名字,我有可能会虚构一些内容,甚至我这些年由于对一些企业有过多次接触,那么相同的企业只要出现在故事中不同的时间点,那么我依然会按照字母表的顺序使用不同的字母进行替代,这几年从A到Z进行编号,我觉得也是足够了。所以大家只要享受故事就好,没必要再开启脑洞去猜测字母背后所代表的是什么了。

对新故事的展望与想法

距离我2017年7月31日从卡巴离职到现在,已经过去了差不多三年半的时间,我还特意看了一下我离职时签署的《离职保密协议》,确认了我作为一名普通员工在三年内不得透露公司的任何商业、技术秘密,那么现在已经过了这个期限,很多东西其实也就可以解封了。但事实上即便没有这份协议,我作为一名普通的分析师,也是完全接触不到卡巴斯基的核心技术的,因此在技术上,我就不可能知道什么重要的秘密,更别提商业机密了。星移斗转,世事变迁,由于战略调整,现在连我当时的部门都不复存在了,但这都是后话,未来可以和大家慢慢分享。

至此,我也不再卖关子,就请大家随着我的文字,与我一同开启一段旅途,远离城市的喧嚣,远离世间的嘈杂,和我回顾那一段段亦真亦幻的故事。在这里,我会书接上回,为大家从我入职卡巴作为起点,以我在卡巴的将近一年半的日子为前半部分,后半部分着重为大家讲述我离开卡巴之后的坎坷,直到我入职新单位为止。由于新的单位已经与卡巴斯基,与安全领域几乎没有什么关系了,也与我的题目《从苏宁电器到卡巴斯基(第二部)》相悖,因此,我究竟能在这个题目下写下多少文字,或者还是另开新题记录我当前的状态,一切都是未知,也许随着时间的推移,也许随着文字展开的深入,会给大家一个答案吧。但不管怎样,我所记录的都是我内心的真实想法,都是我所经历的一段段真实的故事,与大家分享。在这其中,有欢笑、有泪水,有膨胀、有低谷……希望大家能够从我的经历中,少走一些弯路,开创出只属于自己的,独一无二的人生。

好,那么接下来,就是故事的开始……

我在卡巴的日子

聊聊行业薪酬

我相信不论是谁,如果是入职一家新的公司,那么他最想知道的一件事情就是待遇情况了。这里既包含每月实际能到手多少钱,又包括五险一金是否齐全以及是按照高标准还是低标准缴纳。另外,如果是入职IT公司,还会在意年终奖有多少,毕竟某些富裕的IT企业,每到年末就会以此制造新闻来博取大家的关注,以彰显自身的实力。

一言以蔽之,待遇问题也就是年收入究竟会有多少,也是我们进入职场的人喜欢相互打听的问题。比如我研究生那届最厉害的一位同学,签了A公司的算法岗位,年薪30W+(税前,下同),在当时的我看来就是天价了。但也许是近些年互联网行业得到了蓬勃的发展,以我之前所就职的那间高校为例,2019年本科毕业的一位同学签了B公司的开发岗位,年薪直接到了35W+,这对于一所双非院校的本科生来讲,确实是一件难以置信的事情。但如果看看这位同学在校期间的表现,那么他拿到这样的待遇并不难理解,因为这位同学曾带领我们学院的战队在亚洲ACM赛场上拿到过银牌,这可以说是前无古人后面也很难有来者的一件事了。而且这位同学在其导师的项目组也是表现优异,基本上包揽了所有的开发任务,拥有着极强的动手能力。

本以为这位同学的年薪记录会永远保持下去,但令我们都没想到的是,2020年由于疫情的缘故,大部分企业遇到了经济发展的寒冬而不得不调整招聘计划,缩减编制。可即便是在这样不利的大环境之下,学院有位同学签约了C公司,年薪直接飙升到了45W+!!!这里之所以使用了三个感叹号,是因为我已经不知道该用什么样的词汇来形容我震惊的心情了。这也充分说明了,不论我们现在就读于什么样的高校,都不应该妄自菲薄,因为命运是掌握在自己手中的,未来毕业之后能够拿到什么样的待遇,是直接与大学四年所付出的努力成正比的。尽管我们不应该那么世俗,不应该以年薪的多少论英雄,但谁会和钱过不去呢?以自己的辛勤钻研与劳动换回来的待遇,既是对你能力的肯定,更加能够成为学弟学妹心中的传奇,成为一届又一届学生努力的方向,这些事例无疑可以起到非常积极的引导作用。

除了年薪以外,一些初创型的互联网公司甚至还会以股份期权的方式来留住人才,这样等到公司上市,就会造就一大批亿万富翁,因此IT领域绝对是一个造富的行业。前段时间我还听我的一位学生说,现在的一些IT公司为了吸引人才,应届生只要符合他们的要求并入职了这些企业,那么都会有两三万的“签字费”。我以前仅仅在足球转会领域听说过这样的政策,没想到现在的IT圈也这样了。看来各大公司在跑马圈地占领地盘的同时,对人才的攻势竟然也如此猛烈。

当然我上面所讲的这些都是属于一些极端的顶尖情况,根据我的了解,大部分同学的月薪能够达到8K就已经很不错的了,也算是我们这个行业的一个正常水平。再拔尖一点的同学,入职一些大厂,年薪20W+也是可以达到的。比如我指导的一位2021年毕业的,开发能力很强的同学就是这样。

我的待遇

前面说了那么多,都是在讲整个行业以及我所知道的几个应届毕业生的薪酬情况,那么下面言归正传,该讲讲我自己当初在卡巴斯基的待遇了。

这里不妨先回顾一下我来到卡巴之前的两份工作的待遇情况,也好做个对比。我本科毕业于2009年,当时学的是市场营销专业。我在还没有毕业的时候,就在我们老师的图书批发公司上班,前三个月的实习期工资分别是500、600和700元,过了实习期以后,待遇是1100左右。当时是没有五险一金的,估计公司也是考虑到如果为每个员工缴纳社保,势必产成一大笔的支出,这样每个员工每月的到手工资也就更低了,因此社保是需要员工自行自愿去缴纳的。公司没有年终奖,仅仅是由于我运气好才在公司年会上抽中了一部诺基亚1110型号的手机。后来毕业后把我派到了佳木斯去办书展,由于那一个月的书卖得不错,最后的工资加奖金给了我2000元,这超出我预期的收入让我非常开心,也算是达到了公司经理的待遇了。

后来我在2009年8月来到了苏宁当营业员。前三个月的实习期工资是1200左右,实习结束后,我被分配到了新成立的苹果专区。由于每月都能完成销售任务,加上苹果产品的提成也不少,因此每月到手收入基本可以稳定在3000元以上,最好的一次差不多有4000元。当时只要是入职满半年的都会有年终奖,我作为新人领了500元。除此之外还发过一次50元的购物卡。另外毕竟是大企业,五险一金还是很完备的,特别是离职后我还提取了差不多2000元的公积金,所以这样的待遇我还是非常满意的。

最后讲讲卡巴斯基。我记得很清楚,2016年1月末的时候,我的部门领导把我加为了QQ好友,并约我2月份的时候去一趟公司进行下一轮的面试。在QQ上我问了一下我最关心的待遇问题,在第一部小说中,我的原话是——

他开了一个价格,让我听了以后无法拒绝,最令我心动的是,只要我去上班,就给我正式员工的待遇,根本不存在实习期待遇一说,让我看到了卡巴斯基的满满诚意。要知道,我同学里面不管是入职多牛的企业,还没毕业的话,都是属于实习期,拿着三千多或者四千多的报酬,而且好像还是按天计算的,也就是理论上最多可以四千多,要是请个几天假,就没有这些钱了。当然我听说后来很多互联网公司改了政策,取消了实习期待遇,去实习也可以拿正式员工的待遇了。但这仅仅是江湖传闻,都没有卡巴斯基实在。卡巴斯基给予我的这个“特权”,瞬间就把之前对我有意向的公司全都给打压下去了。庆幸自己没早早的就把自己给卖出去,否则真的是亏了。

由于当初在写作第一部小说的时候,我尚在卡巴斯基工作,出于保密的需要,我并没有透漏我的真实待遇,仅仅说这是一个“无法拒绝”的价格。那么我现在可以说了,当时给我的月薪是15K,而且我当时也是毫不犹豫地接受了。

如果与我以往的待遇相比,那么这个薪酬绝对是天价了,即便是和我同一届的同学相比,我也处于一个中上游的位置。举几个我知道的情况,除了那个年薪30W+的同学以外,某入职知名D公司的同学,做产品经理,月薪是11K,另一位入职E公司的同学,做iOS开发,月薪是12.5K,还有一位入职F银行的同学,月薪大约在7K左右,那个同学主要是想留在北京,F银行可以解决北京户口,因此他就不看重待遇了。由于我不知道他们的年终奖是多少,因此这一块没办法对比,而仅仅比较月薪的话,我的待遇确实还是不错的,因此当时领导给我开了这样的一个价格,我才会毫不犹豫地欣然接受,觉得IT企业实在是太美好了。

3月初的时候,我也是收到了人生中第一份正式的Offer Letter,上面用英文写明了我的职位、待遇和入职时间等内容。3月7号,我正式来到公司报到,与人事经理签订了工作合同。由于我当时还没有毕业,因此除了正式的《劳动合同》以外,还签了一份《在校生实习协议书》,正式劳动合同则在我毕业后生效。

尽管我的待遇是15K,但是每月要从中扣除5%的金额放到年终的奖金池里面,全公司的员工都是这样的。然后在年度核算的时候,会依据每位员工全年的表现,从奖金池中按比例取出一定的金额作为大家的年终奖(我那次的年终奖好像是7000)。因此我每月会被扣除750元,实际的税前薪资是14.25K。另外,公司每月还会发放800元的饭补和车补,加上这个补助之后,我的税前待遇其实还是15K。另外,五险一金也都是足额缴纳,每月在扣除完这些税费之后,我实际到手11K+,如果遇到节假日加班,依据加班天数的不同,实际到手13K+甚至是15 K+,每个大型节日还会发200到500元的购物卡。离职后我还领取了约4.1W的公积金。综合以上,卡巴全年12个月的实际到手也会有大概20W+,因此我对于卡巴斯基的待遇还是非常满意的。而这个待遇也并非一成不变的,基本工资每年还会增长约10%,因此当我工作满一年后,每月实际到手的钱大约在13K左右。

但有件令我多多少少耿耿于怀的事情是,尽管这个待遇已经挺不错的了,但是当我离职以后,我去询问一位比我晚一个月入职、技术和我差不多的同事的待遇的时候,他跟我说他的薪酬是17K。他说起初领导也问他15K行不行,他说15K太少了肯定不行,然后领导说17K呢?这个时候他才同意。听了之后我才明白,原来薪酬待遇真的是可以谈的,感觉自己还是社会经验不足。难怪我们和公司签订的劳动合同里面会专门提到不允许相互打探收入情况的问题。但这也是一个很好的教训,我也把这样的经历讲给我的学生听,告诉他们如果你的水平真的不错的话,是可以去试探一下用人单位为你这个职位所制定的工资上限的。也许仅仅一句话,就能让你每月多出来几K的收入也是可能的。

另外还有一点,我一开始也说了,尽管我正处于实习期,但是卡巴依旧给了我正式员工的待遇,这一点就令我非常感恩了。因为这可以在很大程度上解决我的生活费的问题,让我可以真的做到自给自足,与我的同学相比,我已经是非常幸福的了。签合同的时候,我正面临导师不理我,有可能无法按时毕业的问题。就此我也专门询问过人事经理,假设我没办法拿到硕士学位,是否会影响我的工作,人事经理很肯定地说这并不影响。

也正是卡巴斯基给予我的这几点强大的保证,使得我有了坚强的后盾,一方面可以全身心地为卡巴贡献自己的力量,另一方面我也可以兼顾学校的毕业事项,使得我之后可以有很平常的心态去面对毕业过程中的是是非非。卡巴给我的这份恩情,我会永远感激的。

工作环境

相信不管是和什么行业的企业相比,我们IT企业的福利待遇肯定是名列前茅的,这里一方面是薪水处于领先地位(上一篇已有论述),另一方面则是许许多多的IT企业都为自己的员工构建了良好的工作环境,也是其它领域的企业所难以企及的。

还是以我在第一部小说中提到过的“豌豆荚”为例。这家企业于2015年左右,在自己的招聘宣传片中以一位阿姨的视角介绍了公司的办公条件、环境和人际关系等内容。虽然我并不是一个吃货,但是在整部片子中随处都可以看到无数的零食、水果、饮料以及丰富的早、午、晚餐。连公司阿姨都在视频里说,入职的同事们普遍都吃胖了。另外公司还有乒乓球室、游戏室等娱乐场所,也是对工作繁忙的豌豆开发者们起到了良好的调节作用。而这也可以说是我所看过的最温暖最具有感染力的宣传片了。全片并没有激情澎湃的演讲,也没有高大上的特效镜头,有的只是蕴含在豌豆实验室中每一天的幸福与满足。而这,才是最能感染观众内心并留下不可磨灭印象的场景。这也令当时的我对这样的企业非常地向往,相信如果我在读书时研究的是开发类的技术,那么豌豆实验室肯定会成为我求职的首选与向往。

放眼整个IT领域的新兴公司或者老牌知名厂商,它们与豌豆荚的情况也是大同小异的,从这些公司招聘版块的工作环境与福利待遇中就可以看出来,无不在为自己的员工塑造舒适良好的工作条件以吸引人才、留住人才,让大家可以全身心地投入到工作中。

这就与我最初的工作单位产生了鲜明的对比。比如大学没毕业时候在老师的书店卖书,那就是很传统的销售类企业,只有库房、门市和办公室,没有专门的娱乐休息室,更没有无限的水果零食,包括后来在苏宁的门店也是如此。但苏宁还有一间打印室,可供小型会议以及员工吃饭午休使用,由于工作性质的原因,这两个地方更不可能给我们工位。只是后来由于卖苹果手机需要联网激活,领导才在我们专区设置了路由器供苹果使用,就使得苹果专区周围品牌的销售们总来打听我们这里的wifi密码。从某种意义上来说,这也算是一种福利了。

但是来到了卡巴斯基,一切就完全不一样了。首先工位自不必说,因为这是工作性质所需。单位给我配置了两台性能不错的主机以及三台显示器,我用其中的一台监控我们的业务分配界面,一台用于登录远程主机以进行任务的获取、分析、归类等。还有一台则主要用于本地的实际分析调试工作,复杂的分析基本都借助于这台显示器完成。三者各司其责,从而更好地辅助我的日常工作。除此之外,部门领导还为我们每人统一配置了“雷蛇黑寡妇竞技版”的机械键盘,它拥有不错的手感和清脆的声音,可以说是我们分析师的最爱。

以上这些是公司为我们个人所配置的电脑硬件情况。而放眼整间公司,我们员工有专门的休息区,这些区域都是卡座的形式,大家可以自由在这里用餐和休息。公司也有专门的茶水间,里面有微波炉、自动咖啡机和电冰箱。由于我本人还是挺喜欢喝咖啡的,所以我就充分利用了这台咖啡机,每天都会喝两三杯。由于我喝得比较勤,自然也就熟悉了咖啡机的一整套维护流程,比如加水、加咖啡豆、清理咖啡渣等,当时甚至也在考虑等我以后有了自己的房子,要不要也买一台这样的咖啡机。

在卡巴的这一年半时间,在还没有毕业的时候,我早餐一般是在学校食堂解决的,或者有时想改善一下伙食,会在上班路上的麦当劳吃一顿“悠享早晨全餐”。而午餐的话,一开始我是在公司大楼负一层的食堂吃的,我一般吃米线比较多。后来米线有些吃腻了,就去公司附近的肯德基吃一顿午餐。而晚餐一般都是回学校吃,如果偶尔遇到下班比较晚,学校食堂没有什么好吃的情况下,我也会在路上吃“和合谷”或者麦当劳。

以上都是我在还没有毕业时候的情况,后来我发现公司楼下有一家7-11,里面的餐点看着还是挺不错的。于是到了后来,我的一日三餐基本都是吃7-11的盒饭了。一般来说,我早上到公司之前,就会在7-11买好一天要吃的东西。比如早餐一般就是一个三明治或者饭团,午餐和晚餐都是盒饭,由于7-11家的盒饭种类比较多,而且还总是更新,所以我总是换着样地吃,鱼香肉丝盖饭、土豆片盖饭、大虾炒饭等都很不错。记得有段时间7-11新出了一款黄焖鸡米饭套餐,于是我每天中午都会吃这款,大约有两三周吧,一直吃到这个套餐下架。下架之后感觉很可惜,因为7-11的鸡肉做得很香很嫩,汤汁味道恰到好处,配上我自己的茶水,使得每天的午餐时间都是我向往的惬意时光。

我的午餐有时会在茶水间的高脚凳上吃,有时也会在办公室吃。但是在办公室吃有一点不好,那就是饭香有可能会影响到其他的同事,但好在同事们也都习惯了,很多时候大家也都在办公室吃饭,于是我也就在办公室吃了。其实我之所以要在上班时就买好一日三餐,是因为7-11的盒饭实在是太受欢迎了,而我们大楼里面的公司又比较多,因此买晚了就很可能啥也没有了。而我买回来之后,也会充分利用公司的冰箱资源,把午餐和晚餐冷藏起来,吃之前拿出来用微波炉“叮”一下就好。有时在下午的闲暇时间,我也会下楼去买一瓶果汁或者沙拉,酸酸甜甜的味道很符合我的口味。

现在回想起这些,我是真的很感谢7-11给予我了这么多的回忆和满足感,使得我直至今日,依旧怀念那段时光。

住宿

我曾经在第一部小说中写过,在研究生毕业答辩时,评审老师当场宣布我没有通过的时候,尽管我的内心多多少少有些失落和不甘,但总体上并没有给我造成多大的心理压力。一方面是由于我们寝室四个人,只有一个同学通过,另一方面也是最重要的一个原因,那就是我当时已经入职了卡巴斯基,有了非常稳定的收入,人事经理也和我说不论我是不是硕士,都不影响我在卡巴的工作,这就给了我足够的底气去面对发生在我身上的种种不顺。要知道,每逢毕业季,有些学校总会传出由于个别学生不能如期毕业,新签的工作泡汤,于是想不开就轻生的消息。所以从这个方面来说,我是打心底感激卡巴斯基的。甚至我还想过,就算延期毕业也不见得就是坏事,因为我应该还可以住在学校,中蓝公寓一年的住宿费也就大概一千块钱,这个价位不论在哪里,相信都是属于白菜价了。而我如果正常毕业,在北京租房的话,相信一个月怎么都得三千块钱,这样一年就是三万六,是在学校住宿的36倍,因此住在学校可以省下一大笔钱,可以说是延期毕业给我带来的唯一好处了。但好在学校也没硬抓我们的毕业论文,在经过修改之后,我们也都通过了,如期拿到了毕业证和学位证。

那么既然已经毕业了,我自然就不可能继续住在中蓝学生公寓不走,必须要提前在外面租好房子了。其实我对于住房的要求还是有点高的,比如我是肯定不会选择合租的,我需要有自己独立的空间,需要独立的卫浴,至于其它的环境怎样,我不会有过多的要求,毕竟我连阳台都住过。我觉得如果自己去盲目地寻找房源肯定是不太现实的,专业的事情需要由专业人士去办,正好中蓝公寓附近有一家房屋中介公司,于是我在一天下班以后,在回到公寓前就去专门问了一下。结果他们让我首先确定要住在哪里,然后再去那个地方的中介问问。看来这里的房屋中介都是按照区域划分的工作范围。我心想好吧,但是平时我要上班,肯定是没时间去看房子的,于是我就决定在周末去看看。

当时考虑到我公司在雍和宫地铁站附近,所以我就想选择该地铁沿线的房源,能不倒车就不倒车,稍微远一点也行。因为我在学校住宿的时候,上班就需要倒地铁。当时由于“平乐园”站还没有修好,于是我每天都得从中蓝公寓走1.2公里到“九龙山”地铁站,坐7号线经过4站到“磁器口”,再换乘5号线经过6站到“雍和宫”。尽管不是特别远,但又是走路又是换乘,就感觉很麻烦。

“雍和宫”地铁站一共有两条线路,即2号线和5号线。2号线是环路,位于北京市中心,考虑房价因素,我自然不可能住在这里,因此我就只能选择5号线了。该线路的最北边是“天通苑”,可以说是众多“北漂”特别是程序员的聚居地,但我也从新闻上得知,天通苑站在每天的上班时间会特别拥挤,尽管我的上班时间并不是高峰期,但我也不想住在这里,于是我就想先从“立水桥”站附近找找。

其实我这人比较宅,对北京的地理是一无所知的。四年研究生的时光(一年单证,三年双证)我可以说是哪都没去过,顶多在中蓝公寓楼下范围转转,假期时候会去北京站或者北京西坐火车回家。去的最多的地方也就是雍和宫了,毕竟公司在那里。但在卡巴工作一年半,我也是在离职后的2019年才知道雍和宫附近有一个“五道营胡同”蛮有情调,值得逛逛。那年回到北京,我也在“五道营胡同”吃了一顿味道很不错的简餐。读研时候,我们寝室尽管时不时也会聚餐,但也基本都是在楼下吃“鸡公煲”。唯一的一次出去玩,是到南锣鼓巷逛街,那次我们还去了“什刹海”的酒吧喝酒。可惜我们几个消费不足,仅仅坐了半个小时就被请出来了。在北京这几年,我去过的最远的地方也就是当初在选择读单证的学校的时候去过的北京邮电大学(宏福校区)了,当时也仅仅住了一晚就回来了。所以这次为了找房子而去的立水桥,可以说是我去过的第二远的地方了。

一路乘地铁到立水桥,我才惊讶地发现,原来北京地铁竟然还有地上部分,并不是所有的线路都在地下运行的,立水桥地铁站就在地上,这就有些类似于长春的轻轨了。由于我也不清楚地理环境,下了地铁就随便找了一个出口走出来。发现这里的住宅小区也是不少的,那么在每个小区一楼的门市部分,也就自然少不了房屋中介的身影。接下来我就随便找了一家中介,说了一下我的需求,他查了查电脑,就带我到了距离地铁站大约500多米远的“合立方”小区。

这个小区的很多房屋估计也是以出租为主,比如中介带我来的这套房子在11楼,属于上下两层的复式结构。一层有厨房和一间卧室,二层一共有三间卧室。经过房东的改造,每间卧室都设置了独立卫浴。卧室里面的设施也很简单,有床、衣柜、桌子和空调,保证了基本的生活所需。我觉得这里比较符合我的要求,环境也还可以,另外我这人也怕麻烦,不想跑来跑去到处看房子,于是也就和中介确定租下这里了。每月房租三千,中介费也是三千,签了一年的协议。这里的水电费是另算的,网络要我自己去联系运营商安装。一套流程下来,也是很快就确定了住房问题,一点没有拖沓。

那么接下来就是搬家了。由于我还需要在中蓝公寓居住,因此我首先是把暂时用不上的东西一点一点地搬来这里,比如冬天的衣服之类的。每次搬家我都不想让自己太累,因此基本上我只搬运一个背包和一个旅行箱那么多的东西。大约是搬了有两三趟吧,基本上是把我在中蓝暂时不用的物品搬完了。一直到在中蓝的最后一天,那天上午,我才将还放在中蓝的盆以及洗漱用品之类,最后的几件衣服还有衣挂彻底搬走,归还了钥匙,也算是彻底告别了中蓝公寓,这个我住了三年的地方。由于那天是工作日,因此我是端着这些东西上班的,那天下班之后我才把这些东西端回到合立方。

至此,我就一直居住在合立方,一共是一年时间。

我的小说

入职卡巴斯基以后,我觉得自己的生活已经渐渐稳定了下来,人生也终于来到了一个崭新的起步阶段,突然有一天心血来潮,感慨于自己一路走来的不易,就想将这段时间的心路历程记录在CSDN,对我自己来说既是一种回忆,也希望能够给后来人以启迪。毕竟我觉得应该很少有人会有我这样的经历,将这些有趣的故事记录下来,应该会得到大家的喜欢和认可。加上当时我的时间也比较充裕,刚刚入职也没有特别繁重的任务,学校这边临近毕业,只需要准备毕业论文就好,可谓占据了天时地利与人和,来到了创作的黄金时期。

说干就干,我从2016年6月19日发布该系列小说的第一篇作为开始,一直到9月9日完成最后的大结局的写作,前前后后大约花了三个月的时间。故事的时间跨度长达十一年,我用了大概十七万字来给大家讲述其中的是非曲折。当时是在我研究生还没有毕业的时候就开始写了,一直到我脱离学生身份正式入职才“暂时”完成了这个系列。这里之所以说是“暂时”的,是因为那时每当我写完一个时期的故事,把它发在CSDN上之后,我总会突然想起来对于这个时期其实还是有很多值得跟大家讲的故事没有写的。对于我的这种“马后炮”,我当时也没想着去弥补,而在后续故事的写作中,依旧是想到多少就写多少,不会去对之前的文章进行补充。这种情况也一直持续到故事的完成。就在我临近写完的时候,我突然萌生了出书的想法。

以前自己是属于卖书、买书、看书的那类人,出书对于我来说实在是一个难以想象的事情。但是我觉得现在的自己已经具备了出书的条件,个人认为自己的这个系列还不错,修饰一下语言,丰富一下故事内容,我觉得这部作品多多少少还是会有些市场的,不敢说大卖特卖吧,至少可以让出版社不亏钱,甚至小赚一笔应该还是可以的。而对于我个人来讲,出书不单单可以宣传个人品牌,还能够得到一笔稿费。当然我大概也查了一下,稿费并不会很多,但至少自己的劳动成果不会白费,还可以换来真金白银,聊胜于无嘛。

由于我的文章一向都是发在CSDN的,所以我首先想到的就是与CSDN进行合作。我看到各个博客专家似乎也很热衷于出书,我这个新晋专家,自然也是跃跃欲试的。正好CSDN有专门的出书版块,于是也就在2016年8月下旬的时候吧,我就怯怯地申报了出书的计划,等着回复了。其实在CSDN出书,实际上就是与“博文视点”合作,它在计算机领域也是出版了非常多优秀的书籍,与众多大牛合作过,算是计算机类书籍出版界的领头羊了。

没想到“博文视点”的工作效率还挺高,第二天早上九点多,我还在上班途中的地铁里呢,他们的编辑就加我的QQ了。那个编辑很认可我写的东西,但可惜的是,由于我的系列文章属于自传的性质,这并不属于“博文视点”的出版领域,因此也就只能作罢了。最后还说,如果我以后打算出版安全类的书籍,可以找他。

听到这些,尽管我有些失望,但是也怨不得谁。经过与编辑的交流,我当时还真有写一本计算机技术类书籍的想法了。尽管我擅长的是逆向和病毒分析,我的博客里面关于这方面的文章也是不少,但是我并不打算把这些文章整理成册,因为我觉得这类书籍不见得会得到大家的广泛认可,市场估计很小,但也许未来我会改变主意也说不定。

言归正传,说到出书被拒绝,我当时也就没有再找其它出版社的打算了。因为那个时候我的这个系列的小说还没写完,就觉得怎么都得写完了再考虑出书的事情吧。而当九月初我写完了之后,稍微回顾了一下这些文章,或者应该说是初稿,感觉还是有很多地方需要修改和补充的。鉴于《疯狂的程序员》写了三十万字,那么我觉得自己的这本书至少也应该达到二三十万字才可以,要不然实在是太短了。想想在故事中的各个时期,还是有不少事情没跟大家讲的。比如说我本科的时候,也是遇到了不少奇葩的人和事,值得拿出来写一写。比如本科毕业找工作,我仅仅是交代了自己当初的情况,其实我的同学们找工作也并不是一帆风顺,那个年代的整体就业环境其实并不好,也值得拿出来讨论一下。其中的很多事,是在我写完这些故事之后才想起来的,并不是故意隐瞒。这些遗漏的部分,我都打算写在书里面,给大家一个完整的交代。粗略估计,当时我博客中这个系列一共写了36篇文章,应该是占了所有故事的百分之八九十,等我把余下的百分之一二十写完,那么也就能够达到二十万字以上,彻底完成这部小说,于是也就可以筹备出版了。但是会不会有出版社相中我的作品,那就不好说了。当时自己的想法是,我会尽我最大的努力,让这本书面世的。

所以接下来的几个月,我就投入到了小说的修饰工作中。添加了非常多的细节和故事,将一些内容也是重新做了编排,最终突破了二十万字。但我所做的这些并不是直接在CSDN的博文上修改的,而是在我的电子版,也就是Word版上修改的,并没有同步到CSDN。完成之后,我又联系了一个编辑讨论出版事宜,他觉得我的粉丝数有些少,即便出版也不会有什么市场,所以也就作罢了,他说如果一定要出版也行,但得自费,估计要几万块钱。我考虑了一下,觉得还是算了,不如做好自己,积累粉丝资源,某天出名了再出书吧。

第一部小说给我带来的好处

在写作第一部小说时,我是无偿发布在我的CSDN博客的,纯粹地分享自己的故事,并没有什么实质性的收益。仅仅是积累了一些粉丝,增加了不少的访问量。而且由于我是博客专家,还比较活跃,当时在较大的节日会收到CSDN给我们的专家福利。比如2016年的端午,我就收到了“三只松鼠”的大礼包,我当时还没有毕业,于是当我把大礼包拿回寝室的时候,这个福利就被我的同学瓜分了。那个时候突然感觉自己还是挺棒的,相当于是我给大家争取了福利,为寝室做了贡献,我也看出来大家也都很羡慕我。而当年的中秋,同样也是收到了干果礼盒的福利。但我已经毕了业,离开了寝室,于是也就自己独享了。

其实CSDN对于博客专家是有要求的,比如如果一定时期内没有发布原创文章,就会剥夺专家的身份。另外如果每个月有一定数量的原创文章发布,那么CSDN会有额外的奖励,比如程序员杂志以及C币商城里面的书籍等等。我的这三十多篇文章是三个月写完的,那么其实那几个月我都得到了一定的书籍奖励。尽管自从我知道自己能够入职卡巴斯基,就已经不太看书,但是白得几本书也是好的。考虑到程序员杂志刊登的技术比较高端,也不是我的研究方向。因此我当时换取了一些可能用得上的技术类书籍,一本是关于微信商城开发的(当时打算以后业余要做这个),一本是关于手机游戏安全的书籍(新兴方向,必须要了解一下,游戏安全的攻防还是很有意思的,是我未来重点关注的领域)。

另外,尽管我出书的念头被暂时打消了,但我依旧想以额外的形式将我修改后的版本发布出版。当时我并不想直接把修改版放在CSDN,因为考虑到修改版增加了很多有意思的内容,倾注了我不少的心血,因此我决定将修改版以付费的形式发布出来。

当时我将这三十多篇文章汇集成了一个文档,制作了完整的目录,导出为PDF格式,然后我在我博客中的每一篇文章的最后都打了一条广告,给出了一个链接,指向我的QQ空间来宣传我的修改版。我把这部小说定价为15元,给出了微信和支付宝的付款方式,大家只要有兴趣就可以付款购买,然后加我QQ,我就把PDF版发给大家。尽管我想象得很美好,以为小说会大卖特卖,但截至2020年,买过我小说的网友数量用两只手就能数得过来。我觉得实在是太不划算了,而且我还得总盯着QQ,有人购买还得第一时间把小说发过去,无疑增加了我的工作量。而这个时候我发现CSDN上线了个人博客的付费功能,博主只要将自己的系列文章设置为收费模式,那么想要阅读这些文章的网友就得付款后才能观看了。我觉得这个功能不错,于是就删掉了我博客中的所有的宣传链接,将小说的完整版搬到了我的博客上,并将其设置成了付费专栏,价格九块九。我觉得这个价位大家买不了吃亏,买不了上当,是很划算的价格了。尽管这部小说已经错过了最辉煌的时期,但从2021年3月初开始到现在,它在CSDN上的销售势头也还不错,至少比过去要好很多了。我也打算等当前的第二部小说积累到一定规模以后,也设置成付费模式,估计价格还是9.9。我觉得大家购买我的小说,是对我的一种认可与激励,因此在第二部的写作中,我也会再接再厉,为大家献上高质量的有趣故事。

当时加了不少好友

我的第一部小说从开始一直到写完的这段时间,也是加了不少的QQ好友。我很清楚大家是怎么找到我的QQ的,那就是在我CSDN置顶简历里面,有我的QQ邮箱,于是大家也就知道了我的QQ号码,于是就有不少朋友加了我的QQ。后来我还在置顶简历中公开了我的微信号,使得不少网友还加了我的微信。后来由于2020年发生了一件让我觉得挺烦的事,于是我就把简历删掉了,这件事我会在未来的故事中为大家详细讲述,这里也就先卖个关子吧。

其实我觉得多加一些好友是一件挺好的事情,大家聊聊技术聊聊工作聊聊学习,也是蛮有趣的,我也挺喜欢交流。对于其中的几个好友,我比较惭愧的是,当他们加我的时候,不巧正赶上公司只有我自己值班,需要自己一个人来独立处理全球卡巴斯基用户的请求。虽然还没达到手忙脚乱的地步,但也是分身乏术,他们加了我为好友之后,我也只能抱歉地说一下情况,就是实在有点忙,我们迟点再聊吧。他们也都很理解,这也是我比较欣慰的。新加的朋友总会相互聊几句,但也有几个令我不解的是,似乎他们很忙,聊着聊着就让我觉得他们不耐烦了,开始嗯啊地回复我,既然这样,那还是别聊了吧。最奇怪的是,有那么几个朋友,加了我为好友之后,在好长的一段时间里面(准确来讲是直到现在)都没有和我说过一句话。这令我费解,既然如此又何必加我呢?

最后再说两句

以上,我仅仅是泛泛地讲了一下我在写完第一部小说之后的一些事情。而第二部的小说,我还会写很多故事。这些事情有好有坏,有的可能也会充满了戾气。不论做错的一方是不是我,我都会如实的把这些事情记录下来,加上我的思考以及我的看法,并且也欢迎大家来评判。吸取我的经验教训,也可以让大家少走一些弯路。

入职的第一天

之前用了4篇文章的篇幅共一万多字,为大家讲了很多铺垫性质的东西,也许不少朋友已经有些着急了,想知道我在卡巴斯基工作的具体情况和经历。那么从本篇开始,我主要以时间的顺序来为大家捋一捋我正式转行成为病毒分析师的故事。

在第一部的最后一篇,也就是大结局中,我是这样描述我的正式入职的:

然后,人事经理就把我带到了病毒分析办公室。又一次见到了我的主管,他伸出手来和我握了握手,说:“欢迎来到卡巴斯基”。

主管和我的那一次握手,开启了我在卡巴斯基的一段崭新的旅程。

其实,这里还有一些细节没有说,那就是我之前所经历的面试以及签协议的小型会议室,都是在歌华大厦的12楼,卡巴斯基的办公区完成的。但是我们病毒分析部其实是在10楼(也好像是9楼,这里我有点不记得了,原因以后给大家讲)。因此当时我签完合同,人事经理就把我带到了10楼。这里也是一大间很开放的办公场所,也属于卡巴斯基,我们病毒分析部位于最里面,用玻璃墙专门隔出来了一个区域,共计两间办公室。其中较大的一间供我们四个分析师使用,旁边紧挨着较小的一间则是我们部门主管的办公室。

分析师的办公室共计有四张大桌子,呈L型排列,两位老员工坐在L型的长边位置,L型短边的两个工位是空着的。主管问我想坐在哪里,我看到L型短边的工位是前后排列的,要是坐在前面的工位,总有一种被后面的同事监视的感觉,于是我就选择了L直角位置的工位。这样,我右手边就是两个老员工,前面就是另一位还没来的新同事,左手边一个玻璃墙之隔,就是主管的办公室了。

还没来的那位新同事计划下个月再过来,而我右手边的两个工位,在我入职那天,只有离我最远的那个老员工在工作,另一个同事则还在春节休假中,要第二天才能过来上班。其实这里我用“老员工”这个词多多少少有点不准确,因为我们年纪相仿,只不过他俩比我早来了几年而已。然后主管和我说一会负责IT的同事会过来帮我配电脑,今天是我第一天报到,也不用干什么活,把电脑的分析环境配好就行了,然后他就回到旁边的办公室了。

在配电脑装环境的时候,我也和那位老员工攀谈起来,相互加了QQ,我看到它的网名叫“渣兔”,我觉得这个名字还是挺有意思的,那么在我的小说里面,以后就用这个名字称呼他吧。虽然我也正式成为了卡巴斯基实验室的病毒分析师,但其实我当时对自己的水平还是有些不自信的,尽管来到这里之前我已经写了很多的分析文章录了很多的分析视频,主管在面试我的时候也觉得我的水平可以胜任我们的日常工作,但我总觉得自己还有很多方面可以提高,认为技术水平和这些老员工相比还是有很大的差距的。因此在我心目中,他们几个就是大神一样的存在。

当时我想知道大神的具体水平,就问“渣兔”有没有在看雪论坛发表过文章,特别是有没有精华文章,他说没有写过。我又问那你平时会不会研究一些看雪的精华文章,会不会觉得那些文章很深奥,他说还好吧。其实按照我当时的水平,那些看雪的精华文章我读起来是有些困难的,而“渣兔”的轻描淡写,让我觉得他的水平应该是很不错的。我见他身后的小柜子上摆了一些书,我就问有没有哪些书你觉得不错,推荐几本让我也学习一下。他说这些书都不错,然后就让我看几本关于内核的书籍。他还告诉我,他本科毕业时候是在G公司做病毒分析师的。我有点惊讶,因为在此之前,G公司可以说是我向往已久的了。我问“渣兔”当时面试G公司成功的诀窍是啥,他说就是在面试前研究了一下看雪出版的《加密与解密》这本书,然后就顺利入职了。其实他说的这本书我也有,但是买回来以后并没有认真钻研过,不免有些后悔和遗憾,看来读书不在多,而在于精。回想要是我当时能够认真读一读的话,我的工作问题可能早就解决了。但如果真是这样,我势必会与卡巴斯基失之交臂,权衡利弊,还是现在的人生道路比较好。

第一天的时间很快就过去了,我也是配好了自己的电脑,“渣兔”还是很健谈的。临近下班,他和我说未来他会休息大概一周的时间,因为春节时候就是他在值班,明天另一位老员工休完假期会过来接手。临走前,他说打算这几天也要在家看看书,我见他把潘爱民写的《Windows内核原理与实现》这本书带走了。我问他内核知识会不会很难,他说也就那么回事吧,只要肯学还是学得明白的。我挺佩服他,因为当时在我心中,像是内核还有二进制漏洞挖掘这方面的知识,还是很深奥的,是只有大神才有资格研究的领域,当时我也想着为了成为大神,自己以后也得好好学习一下。

“渣兔”回去之后,我来到主管办公室,问问今天还需不需要我做些什么。他说不用了,明天让我准时来就好,于是我也就回学校公寓了。

这就是我在卡巴的第一天,很多的细节历历在目,宛如昨日刚刚发生一样。毕竟这是我人生中意义非凡的一天,值得我去铭记。我也暗暗下定决心,要认认真真完成每天的工作,尽早上手,好好表现,珍惜这来之不易的一切。

为自己起一个英文名吧

卡巴斯基是外企,病毒分析部门除了设置在俄罗斯总部以外,中国和美国也有,因此分析师之间就少不了用英语进行交流,而相互之间在进行称呼时,自然是需要使用英文名字的。包括我们的企业内部邮箱以及即时通讯工具,也都显示的是各自的英文名。所以其实在入职之前,人事经理就让我为自己起一个英文名字,供企业内部交流使用。

话说起名还真是一项艺术,不论是中文还是英文名都是如此。我从来就没有过英文名,因此在起名方面也没啥思路。但至少,我毕竟姓“姜”,所以我的Family name(Last name)自然也就是Jiang,老祖宗传下来的姓氏自然是不可能改掉的。然后就是First name,也就是我的“晔”这个字。如果直接用拼音,使用“Ye”的话,总感觉有些简单,因此我就想看看能不能找到一个英文单词来表示这个“晔”字。

我记得很清楚,在我还在读小学,刚刚学会查字典的时候,我就在《新华字典》里面专门查过这个字,字典对它的释义是“火光旺盛的样子”。我又上网搜了一下,这个字还有“光明灿烂、闪光的样子”的意思。以我当时研究生水平的英语,也就只能想到Spark或者Flash这样的词汇,但我总觉得这两个词怪怪的,有种要闪坏别人眼睛的感觉。于是继续寻找,后来在搜索中发现了Gleam这个单词,它有“闪闪发亮,闪烁着光芒”的意思,我理解为是一种温和的闪光,蛮符合我的性格,于是我就决定用这个词作为我的名字。所以后来我在卡巴的系统里,就叫做Gleam Jiang了,而即便到了今天,我也就在沿用着这个名字。

放眼我们病毒分析部门,我的主管由于名字中有个“岩”字,因此他为自己取的英文名是Rocky,看来他的取名思路和我是一样的。“渣兔”则有些不同,他直接把自己中文姓名的前两个字的拼音拿出来,即Tu Ling作为自己的英文名。当时看到这个,我一度以为他的真名就叫做“图灵”。而那位还在休年假的同事,英文名叫做Seth。那位还没入职报到的同事,后来直接用了自己名字的拼音,也就是Yang。可见,大家也都是按照自己的喜好起名字的。

说到英文名,我以前其实也给自己取过一个英文ID,叫做ioio,或者加上我名字的缩写,即ioio_jy。可能很多朋友都会对这样一个名字感到奇怪,疑惑于它到底表示的是什么意思。我这里可以讲一下,记得我在上初中的时候,当时《帝国时代之罗马复兴》这款游戏很出名,我也很喜欢玩,在众多的兵种里面,最让我头疼的莫过于巫师了。因为对手只要凑集足够数量的巫师,一念咒语,那么我的部队很快就会叛变,从而被对方所利用了。特别是如果我的部队里面有投石车,一旦大部队中有士兵叛变,那么投石车可不管三七二十一,直接往大部队里面扔石头,这样就势必会对我的部队造成重大的伤亡了。所以我如果发现对手在使用巫师,我都得提前做好防范措施。而游戏中巫师的咒语就是“ioi~o”。也正是基于这点,我就把巫师的咒语作为了我的ID,一直用到现在。

另外,其实我们家族也是有族谱的概念的,每一代都属于“X字辈”。比如我爷爷那一辈,名字中间都会有“功”字,我父亲那一辈,名字中间都会有“启”字,而我这辈则是“恩”字。比如我的两个堂兄弟,名字中间都有“恩”字。相信现在的大部分人已经没有“字辈”的概念了。我不清楚自己刚出生起名字的时候,为什么没有加上“恩”字,但我觉得不加挺好的,算是脱离世俗的一种变革。如果加上的话,那我的名字就是“姜恩晔”了,而英文名就变成了Gleam En Jiang了。

擎天柱与六面兽

我第一次去Rocky的办公室是在我第一次来卡巴斯基的时候,在远程和俄罗斯的分析师面试完以后,还需要我当场分析一个样本来考察我的基本能力。于是我就在Rocky的办公室用他的电脑分析了一个恶意程序。当时我就看到,Rocky的桌面上除了摆着三台显示器之外,还放了几个小玩具。其中有擎天柱与六面兽,还有一个三国系列的SD高达。

这个时候我就发现,Rocky是一个标准的八零后大男孩,因为变形金刚绝对是我们这代人共同的经典回忆。比如我就很清晰地记得,在我还在上幼儿园的时候,正值变形金刚动画片在国内最火爆的时候,擎天柱和威震天在电视上天天打得不可开交,而且我当时也买了擎天柱和六面兽的玩具。其实当时的擎天柱和现在的区别很大,现在擎天柱玩具的外观设计主要是参考电影版的变形金刚,很炫酷很复杂。而我小时候看的是动画片,当时的玩具设计也是比较简单,就是四四方方的,把擎天柱的腿还有胳膊往身后一掰就变成卡车头模式了。而六面兽玩具发展到今天,它的变化不是很大,基本还是保持着原貌。我看到Rocky桌面上的这两个变形金刚也都是老款的。其实除了擎天柱以外,我小时候还很喜欢看后来的“头领战士”系列,我还买过一个原装的“老顽固费特”,它可以变形成一辆坦克。现在回想起来,总感觉当时的这些动画片和玩具都很经典,可惜我当时买的这些玩具都不知道哪去了,我也打算以后再买一套回来。

其实当时看到Rocky的桌子上有这么多的玩具,也让我觉得我们卡巴斯基的公司文化还是挺开放的。因为我以前总以为,公司就是严肃办公的地方,是不可以摆放和工作无关的东西的。但是看到Rocky开了这样的头,因此我也就打算好好设计一下我的办公桌了。毕竟这是我人生中的第一个工位,而且以后每天的大部分时间都会在这里度过了,因此自然要设计得有趣一些。但所谓的有趣,其实也就是多摆几个玩具而已。由于我当时挺喜欢乐高模型的,于是后来我就买了乐高IDEA系列的“生活大爆炸”以及“机器人瓦力”这两款,拼好后放在了我的桌面上,而关于我的桌面我也放在了第一部小说中做了专门的介绍,也就是《番外篇——晒一晒病毒分析师的桌面》共两篇文章。而我后来在高校任教,也是延续了这一风格,使得我的工位成了老师办公区里面的一道亮丽的风景。这些故事,我会在未来给大家娓娓道来。

Hi

第二天我早早地就到了公司,10楼的开放办公室也没来几个人,而我也是我们病毒分析部第一个到的。过了一会,Rocky也来了。他见我是先到的,特意来到我们分析师办公室这边,微笑着和我说了一声“早啊”,我也赶紧回复一句“早”,然后他就回到旁边的办公室了。

这个时候我也是领略到了我们卡巴的办公室氛围还是很和谐的,可能大家觉得这一切很正常很自然,但是若在以往,不论是卖书还是卖手机的时候,大家早上来店里工作,顶多是相互瞥几眼完事,基本上不会特意去打招呼的。特别是我听说很多公司的员工之间,为了避免尴尬的情况出现,相互躲着都来不及,更别提主动打招呼了。而我们部门的这一特点——早上来到办公室相互道一声“早”——也是一直延续到了最后。不论是Rocky还是我们四个分析师之间,后到的都会主动和先来的道一声早。其实除了上班时大家会相互问候之外,下班也同样如此,先走的同事也会和Rocky与其余同事道别。一切种种,让我感觉我们部门很是团结,上下级之间并没有什么架子。

还有一件事,对我的影响延续到了现在。那个时候,Rocky有时会给我发信息来通知我一些事情。他每次给我发信息,使用的第一个词一定是“Hi”,借此来打开话匣子。这就让我也深受影响,毕竟在此之前,我有什么事都是直说的,很多时候就会感觉非常突兀。但是加入了“Hi”以后,感觉不管接下来要说什么,都会显得温和了很多。于是包括到现在也是,我只要是单独给一个人发信息,基本上也都会以“Hi”作为开头。如果不用这个词,就有种开不了口的感觉。

实习期

我在之前的故事中讲过,在我刚入职卡巴的时候,尽管我还没有毕业,但是卡巴斯基依旧给了我正式员工的待遇。合同中并没有明确实习期的概念,但是我的部门主管Rocky考虑到我毕竟是新人,就没有让我直接负责具体的工作任务。而是从我第二天上班开始,让我每天分析一些有特点的样本,巩固基础以早点进入实战状态。所以我就把这一阶段称为我的实习期,从2016年的3月初到5月末,一共持续了大概三个月的时间。

Rocky让我分析的恶意程序也是由浅入深,让我对每个样本写一份简要的行为说明,需要从文件操作、注册表操作以及网络行为三个方面进行论述。同时还给了我一份卡巴内部关于恶意程序归类方式的文档。需要在分析完之后,写出该恶意程序属于哪类哪家族。其实一开始的那些较为简单的恶意程序根本就难不住我,毕竟只要把他们拖进IDA,其行为就一目了然了,顶多辅以OD进行动静结合的调试分析。因此前几轮的训练进展得很快,我写的简要的分析说明也是得到了Rocky的认可,他认为我写得又快又准确,这也让我的自信心得到了极大地加强。

而在我上班的第二天开始,我也是见到了我们办公室的另一位老员工Seth,他刚休完年假回来。由于“渣兔”调休,所以接下来卡巴的日常业务就要由Seth负责了。尽管我刚才说在训练期的时候,一般的样本都难不住我,但偶尔也会出现让我头疼的情况,一些奇奇怪怪的样本让我很是没有思路,包括一些由不常见的编程语言生成的样本也是如此。这个时候我往往会请教一下Seth。他也会给我一些工具和建议,等于是拓宽了我的知识面。特别是当我第一次分析到勒索病毒的时候,最后需要对它们进行归类。我想了半天也没想到这类恶意程序到底算是病毒还是木马,于是我就问他,他告诉我说这类恶意程序属于Ransom,准确来讲是Trojan-Ransom。这无疑又是拓宽了我的知识面,毕竟已经读到研究生快毕业了,也没见过“Ransom”这个单词,尽管勒索类恶意程序我是早有耳闻,但也都是看的中文材料,知道他们属于“勒索”或者“敲竹杠”,但英文是啥我还真是不了解。卡巴的资料还都是全英文的,并没有英汉对照,看起来多多少少会有些吃力。因此从这个方面来看,在我的实习期,Seth确实给予了我很大的帮助。

我实习期的上下班时间和其他员工是一样的,都是上午10点到公司,晚上6点下班。每天的工作时间正好是8小时,中午没有特设午休的时间。这样一个时间就让我有了很大的自由度,至少是错开了最严重的早高峰的时间。但由于在我还没有毕业的时候,我是住在学校宿舍的,不单单走到地铁站需要一段时间,上了地铁还需要换乘,这样我上班就大概需要一个小时。所以我基本上都是大概8点出寝室门,到一楼吃个早餐,然后8点半走出中蓝公寓去赶地铁,争取9点钟乘上地铁。但这个时间其实属于高峰期的尾段,乘车的人还是很多的,特别是换乘车站更是如此。想挤上地铁就已经很困难,挤进去之后让我有种呼吸困难的感觉,完全随着人潮而流动,让我切实体会到了身体已经不属于我的感觉。尤其是想要下车的时候,只能一路抱歉一路挤到门口了。因此也是锻炼了自己强大的心理承受能力,不再为踩到别人的脚而内疚。

上班多多少少还好一些,但是到了下班就不一样了,因为6点正属于高峰,有时候在我排队等地铁时,可能需要等两三班才能轮到我上车。可能有些朋友会说,为啥下班之后不晚点走,比如也在公司吃个饭,然后看看书做点研究,等到七八点再走不好吗?没错,这样确实是个好办法。可是,由于我是住宿舍的,北方的大学并不像南方,南方是基本每间寝室都有独立卫浴。北方的大学,无论是长理还是北工大,是有专门的浴室的,是脱离于宿舍而存在的。比如我们中蓝公寓,浴室就在地下一层,每天有固定的开放时间,如果错过了,那就只能等到第二天了。当时我们浴室的开放时间是下午1点到晚上8点,浴室会在晚上7点半停止放人进去,由于住在中蓝公寓的基本都是研究生,大家就算没有出去实习,也基本会在导师的实验室帮忙做项目,因此每天晚上的6点到8点正是我们研究生下班回中蓝的高峰期,同时也是洗澡的高峰期。此时就经常出现这样的一种状况,那就是一个同学占据着淋浴头,而在他周围有好几个同学围着他的场面了。最气人的是,有些占着淋浴头的同学不知道是故意的还是怎样,除了正常的洗澡流程以外,他还会慢条斯理地在哪里叉着腰刷个牙,然后蹲下来洗袜子裤衩,一点也不介意围观同学的感受,让人很是崩溃。

也正是由于要回来洗澡这个原因,我就必须要在晚上6点离开公司,一切正常的情况下,7点10分左右才能回到公寓。着急忙慌地上楼取洗漱用品,然后赶到地下去洗澡,这就差不多七点半了,而且折腾了半天连饭都没吃上,这可以说是最让我苦恼的一件事了。很多时候觉得还是别洗了,但考虑到我毕竟在办公室捂了一整天,上下班又在地铁上和大家挤了差不多两个小时,不洗澡的话我都睡不着觉,因此就促使我每天下班都如同战争时期的急行军,需要第一时间奔赴前线。特别是有些时候遇到麻烦的样本,让我在晚上6点也分析不完,此时我只能满怀歉意地和Rocky说一下理由,保证晚上回到寝室一定完成任务,然后才愧疚地离开。而像是这样一种状况,也就直到我毕业搬离中蓝,住在了外面的小公寓,才算是彻底解决。

三个月的实习期,我一直处于训练的阶段。这期间我还向Rocky表达过我的一些歉意,因为这段时间并没有为公司做出过实质的贡献,却也在领工资。他说没关系的,但愧疚感还是充盈着我的内心。这不像我以前卖货做销售的时候,不管是卖出什么东西,都是在为公司赢利,也是在体现自己的价值,我也可以挣到属于自己的一份提成。可在卡巴,就让我有种公司出钱仅仅是为了让我巩固自己的分析技能的感觉。尽管实习期很轻松,但没有为公司做出过实际贡献,还是让我很不踏实的。

分析技术的瓶颈

其实做恶意程序分析,完全就是一项流程化的工作,在掌握了基本方法之后,接下来就是经验的积累了,不会有更高更深更复杂的技术了。特别是在此之前,我已经积累了不少的分析经验,实习期的样本基本也没啥挑战性,就让我有了种真实的病毒分析工作也“不过如此”的错觉。而这样一种错觉,直到Rocky给了我一批新的样本之后,才出现了180度的扭转。

这天,我又快乐且轻松地分析完了上一批的训练样本,并写了样本行为报告还做了分类,等着Rocky给我新的训练任务。像这种任务和任务间的闲暇,是我最喜欢的时光。既有对已完成任务的满足感,又有对新挑战的期待。

这个时候,Rocky给我发了封邮件,包含有最新的分析任务和样本包。和我说Hi,这次让我分析一些新类型的样本,其中包含有混淆的技术,让我自己先研究一下。“混淆”这个词我还真是第一次听说,以前在学习和研究的过程中没有一本书讲过类似的东西。我也很好奇,于是就先拿第一个样本练练手。

一切按照流程进行,但是在分析的过程中,我发现这个样本似乎是采用了一些加密手段,使得无论是静态还是动态分析都没办法看到这个程序的全貌,这样就很难看到它的真实行为。貌似是一种加壳,但用查壳工具以及脱壳工具也没什么效果。于是在纠结之中,一天就差不多过去了,我依然没有什么头绪。

下午快下班的时候,Rocky过来问我做得怎么样了。我说还没看出来什么,不太清楚这些样本是怎么回事。于是他就过来在我的电脑上,使用OD给我简单演示了一下分析的方法,这个时候我才发现,原来混淆技术可以理解为是一种加壳,以对抗分析师的逆向分析。而这种加壳(或者说加密)的手段是骇客自己发明的,因此通用的去壳工具当然没有效果。而这种混淆技术的基本加密思路也很简单,那就是它的真实操作和数据一开始是以加密的方式放在程序本体的某一个位置的,程序在执行的过程中,会执行分配内存的操作,然后将这些加密的内容拷贝到新申请的内存空间中,之后对这部分的内容进行解密,从而还原出病毒的本体以执行。这还真是为我打开了新世界的大门,才发现原来骇客还有这一手,看来骇客们也是很努力也是很拼的。好吧,既然掌握了基本的解混淆方式,那么接下来我就可以去实际操作一下了。但是临近下班,我要“急行军”回去洗澡,于是也就只能带有歉意地和Rocky说了一下情况,他也就让我回去了。

想象很美好,觉得这些样本只不过是麻烦一些,多了解密操作而已,总感觉并没有超出我的理解和能力的范围,然而现实很残酷,我又被无情地打脸了。回到宿舍洗完澡吃完饭,打开电脑启动分析工具,开始研究第二个混淆样本。可是我发现这个样本的难度比Rocky给我举的那个例子又进阶了不少,我又处于了手足无措的发呆状态。我不想一直卡在这里,随后又看了一下第三个样本,它和之前两个又不一样,Rocky的方法在这里又不管用了。接下来的第四个第五个……同样也是各有特色,让我的知识技能盲区瞬间暴露无遗,给我的自信心造成了毁灭性的打击,觉得自己被这些骇客彻底击败了。那么这也就说明,我那一晚什么成果都没有。

第二天上午继续分析,到了下午大概四点的时候,Rocky又来问我有没有什么进展。我说这些样本都挺难的,除了你给我演示的那个以外,其余的都还没有什么思路。他问我哪个比较麻烦,要再次给我演示一下。于是我就把其中一个我觉得完全不知道怎么回事的样本指给他了,然后他就打开了OD来给我调试分析。这个样本确实麻烦,它采用了很多奇奇怪怪的技术来实现混淆,一些技术我也是完全没有听说过,实际调试时,稍有不慎就错过了核心功能,因此Rocky也是步步小心,每发现一处高明的地方,就给我分析一下。最后差不多六点的时候,才彻底了解了这个程序的混淆方式。这期间,我发现Rocky的分析技能是真的很厉害,我完全不知道自己什么时候才能追赶上他,这就是世界级的实力。

估计Rocky也没想到这个样本花了这么长的时间,让我回去以后再实际动手分析一下,他就回到办公室了。因为已经6点了,我也就收拾东西准备“急行军”了,和Rocky道别时,我发现他还在看书,因为刚才在调试时发现了一个有趣的技术,他想在书里面再好好看看,进一步地确认一下。我记得很清楚,那本书是《C++反汇编与逆向分析技术揭秘》。我突然很感慨,厉害的人总也不会忘记学习,不会忘记去提高自己,正是这种好学的精神让大神能够成为大神。这些精神和态度,是以前我通过视频和自学所学不来的,是卡巴斯基这个公司这个平台才能够提供给我的,从而成为我的宝贵经历与财富,受益匪浅。

后来回到寝室,这个样本我又没调试出来,但至少其余几个没那么复杂的样本,我已经可以调试出来了,感觉这两天的收获很大,探索到了一个未知的世界,感慨良多。而这批混淆的样本,我前前后后大约花了半个月的时间才完全搞定,但对一些复杂的样本,我也处于懵懂的阶段。Rocky考虑到我还有后续的学习任务要完成,也没太抓这批恶意程序,后来就到了下一阶段分析新的样本了。但通过这一阶段的研究,我也发现了自身的不足,而这一批样本,也确实是我实习期中,在技术方面的瓶颈了。

办公室搬家

我在之前的内容中曾经提到过,我们病毒分析部在歌华大厦的10楼,但我也说,具体是几楼我有些记不清了。之所以会这样,是因为当时我们的办公室经历了一次搬家。

其实在我实习期的整个三月份,我就发现10楼办公室的人数就很少,也就我们病毒分析部的人比较全,其余的工位总是空着的。我记得很清楚,三月末的时候,有一天下午,IT部的负责人把我们病毒分析部的所有人叫到了12楼,说是让我们看一下新的办公室,然后我们几个就乘电梯,来到了12楼卡巴斯基办公室最里面的一间,说是以后这里就交给我们了,问问我们对于装修有没有什么想法。Rocky和IT负责人主要讨论了一下布线问题,因为这间办公室再早之前是大领导的独立办公室,网线接口以及插座是不足以支持我们5个人的办公的,因此需要重新布线。比如我们四个分析师的四张办公桌下面就需要分别有独立的网口和插座。由于我们的需求很简单,因此也没有在这里待多久,我们几个也就下楼继续工作了。IT负责人和我们说这些需求几天就能完成,清明过后我们就可以搬上来了。

清明的三天假期过后,IT果然完成了所有的布线工作,办公桌也不需要我们自己搬,我们只要将自己的电脑和个人物品搬上来就好,并不麻烦。而办公室的整体布局主要也还是以之前的布置为基础,我们四个分析师依旧呈L型排列,但位于L型短边的我和新来的分析师Yang则是以面对面的形式排列的。这里尽管是面对面排列,但实际上由于我俩之间还隔着几台显示器,因此除非是站起来,否则也看不到对方。Yang的右后方是办公室门,他的正后方有一个类似于书架的大陈列柜,上面摆放着卡巴斯基之前所获得的奖牌之类,陈列柜的后面就是Rocky的办公桌了。这就相当于是,Rocky已经不再是独立的办公室,而是仅仅靠着一个大型陈列柜将他自己的和我们分析师的办公区域隔开。于是至此,我们病毒分析部就正式进驻12楼了,而之前10楼的其它部门的同事,也陆陆续续地搬上来了,10楼就不再使用了。

于是,在接下来的将近一年半的时间里面,我就一直在这里办公。由于我仅仅在之前的办公室工作了不到一个月的时间,所以对当时我们究竟是9楼还是10楼,我也是印象不深了。毕竟这也不重要了,只要知道我们曾经搬过一次家就行了。

一些回忆

大家从我之前的经历中可以知道,曾经我觉得病毒分析师距离我是那么的遥远,那么的遥不可及,甚至一度以为这辈子都不会与反病毒工作有缘了。而这种心理阴影的由来,就是我屡次失败的求职经历。用人单位对我的要求极高,需要知道如何挖漏洞,如何分析网络协议,怎样分析手机病毒,懂得Web安全,还需要了解计算机内核,比如曾经问过我“冰刃”这类工具某一功能的实现原理。这些经历我在小说的第一部以及我的面试经验系列里面都讲过,大家有兴趣的话可以去看一看。现在回想这些失败的经历,让我深刻地感觉到,即便我在卡巴斯基工作十年,也不见得能够通过他们的面试(估计依旧会在第二轮就挂了)。

说到这里,有件事很奇怪,因为根据我一年半在卡巴斯基做病毒分析师的经验,实际工作中并不需要很高深的反病毒知识,很多时候只要懂得基本的逆向分析技术就可以了,更多的东西可以在工作中慢慢学习,也都是很简单,并没有太大的挑战度。但是这些友商为什么要把招聘门槛定得这么高呢?真的需要这么多的大牛来做简单的病毒分析工作吗?还是说名义上是病毒分析,但实际上其实是做安全产品的研发或者其它深层次的安全研究?我觉得应该不能做开发,因为做开发是另外单独招聘的,分析是分析,开发是开发。而且即便是招聘了很多大牛,客观来说,友商安全产品的技术水平并不见得就非常高,许多核心技术还是掌握在一些老牌厂商的手中,论杀毒能力,不同厂商之间的杀软还是有很大的区别的。所以很多时候,一些友商会通过一些新颖的概念来博得普通用户的注意力,让普通用户以为这些所谓的最新的技术都掌握在这些厂商的手中。但事实上,对很多技术来说,我们这一行并没有什么秘密,你用的技术我们全行业都在用,甚至很早就开始用了,这其中最为典型的当属云查杀。在我以前还是个小白的时候,这个概念确实会唬住我,以为这是一个多么高大上,多么了不起的新技术,以为有些厂商的杀毒水平已经有了质的飞跃……直到最后,我才明白,这不过是一个噱头而已。

作为噱头(卖点),确实在营销方面可以起到很大的作用,有些厂商的产品也确实需要在营销的问题上下功夫。毕竟不论是国内还是国外的杀软,我觉得已经不太可能出现大洗牌的情况,老牌名企依托自己的江湖地位以及多年深厚的积累,总会有坚定的支持者,支持者们也能够通过口口相传的方式,将自己的使用体验传给更多的新用户。而一些后起之秀,可能在某些方面利用独创的营销手段占据了不少市场空间,但是很多事情其实都是具有两面性的,有时为了弥补营收的不足,于是也就只能牺牲用户的某些体验了。当然了,这些事情要是认真讨论的话,完全可以写一篇论文了,在这里我就不再多讲,也许以后我会根据我营销出身的背景,来好好讨论一下这件事。

想起来当初我在求职的时候,我在H公司的论坛提问应该怎么提取病毒特征,其中的一个管理员是这样回复我的:

1 算整个文件的MD5、Hash:这个一般在病毒爆发的最快时间类 出pattern的应急之方法 等以后通过分析,将采用下面的pattern的分析结果。

2 静态分析文件的结构:如PE(关于结构有很多资料的),寻找里面的代码段、入口点等等信息,一般提取2个以上的点,中间用通配符号。

3 特征的提取:通知需要结合动态的分析(也就是让病毒在运行中分析),当然基本还是以静态分析为主。至于位置的选取,有什么特别显著的规律你不必要知道。

看到这个我有点疑惑,其中的一些语句存在不通顺的情况,比如第一个方法中的“最快时间类 出pattern”这句话,就写得很迷惑,而且不知为何还多出了几个空格。于是我当时就好奇地搜索了一下这句话,发现这三条至少早在2012年就已经有网友总结过了,而且当时网友的总结也是这种语句不通还有多余空格的情况。也就是说,H公司论坛的管理员是直接照搬网上的答案了。我本以为这个管理员本身就是H公司的技术,或者他认识H公司的技术,能帮我找到第一手的信息,没想到竟然也是直接照搬网上,就让我很是失望了。

我们的工作模式

三个月的训练期结束以后,Rocky就让我正式接手我们卡巴斯基的日常工作了,这个时候我才了解到我们的日常工作模式是怎样的。

不知道大家之前是否产生过疑惑,那就是一般来讲,很多企业的上班时间是朝九晚六,或者有些忙一点的企业,会遵循996之类的工作时间制度,但是为什么我们病毒分析部采用的却是“朝十晚六”这种正好八小时这么人性化的工作模式呢?这个疑问,直到我训练期结束才真正了解。

之前也跟大家说过,在当时,卡巴斯基的病毒分析部只设置在了在全世界范围内的三个国家,即俄罗斯,中国和美国,每个地方都有大约四名专职的分析师。我们知道,一天是24个小时,而卡巴斯基作为全球顶尖的安全企业,自然是要采用365×24这样的模式来实时地监控全球的安全威胁,以第一时间做出响应的。因此,全世界三个国家的分析师就采用了轮班制,每个国家分别监控并处理8小时的业务,这样就保证了每时每刻都会有分析师在线值班。我们中国这边,监控的是北京时间上午10:00到晚上6:00这个区段;接下来会由莫斯科的分析师接手8小时,直到北京时间的凌晨2:00;最后再由西雅图的分析师负责8小时,到北京时间的上午10:00,此时他们就可以下线,由我们再度接手了。上线和下线是需要通知对方一声的,比如我在上午接手美国的业务时,我会给那边在线的分析师发一句“Hi, I’m working”。晚上交班,俄罗斯那边也会给我发类似的消息,但有时他们可能会不记得发,这个时候我只要在系统中看到他们上线了,那么我也就直接下线了,算是用“意念”来交班了。

这8小时的工作内容很简单,我们有一个类似于收发邮件的系统,我们的技术支持或用户如果遇到新的样本或者不知道怎么解决的安全问题,就可以给我们发邮件,这些邮件会自动分配给在线的病毒分析师进行处理。比如我们如果认为技术支持给我们发送的样本属于恶意程序,我们就会在样本上提取特征,归类入库,这样等病毒库更新以后,我们的产品就可以实现对这个样本的查杀了,然后再回复一封邮件,说这个样本已经被处理,属于恶意程序。相对的,如果分析师不认为这是恶意程序,则要把这个样本放在白名单里面,通知发件人说这个样本是干净的。也就是说,我们的日常工作类似于客服+病毒分析。

另外,这些发送给我们的任务是有优先级的。其中优先级最高的是病毒库更新问题,这种邮件是系统自动发给我们的。假如我们分析师在提取了一条新的病毒特征以后,系统发现这条特征能够匹配到白名单的文件,就会给我们发送这样一条紧急通知,让分析师看看究竟是之前的样本判断有误,还是说特征没有选取好,从而匹配到了白名单的文件。当然也有可能是白名单文件在最初归类时就出现了错误,这样的话,我们需要把它移入到灰名单或者黑名单。像是这种紧急的任务,需要我们大约15分钟内做出判断并处理。

优先级别第二高的是我们卡巴斯基的VIP客户,比如我们所服务的世界500强企业,我们管这类用户的业务叫做MSA任务。由于这些用户购买的是我们查杀能力最强的企业版软件,因此他们就有特权来直接给我们分析师发邮件。这些企业都非常有礼貌、有素质,一般都会彬彬有礼地提出需求,比如发现了一个疑似恶意程序,让我们确认一下。对于这样的重要任务,要求我们分析师在半小时之内做出处理。时间看似很紧,但对于我们这些训练有素的技术人员来说,快的在三五分钟就能做出判断并提取特征归类入库了。毕竟是VIP客户,按道理来说,他们不论是提出任何技术需求,我们也都是要在规定的时间内完成的。即便是给我们样本,让我们做详细分析并写出分析报告,再写一个专杀工具,我们也是得做的,不过我在卡巴的这段时间,并没有VIP客户提出这样的需求。反而是一些不知道什么身份的用户,时不时语气很强硬地让我做一些详细分析,对于这样超出我们业务范围的需求,我自然只能回复抱歉,而这样的用户竟然还威胁我说要去投诉,与真正的VIP客户产生了鲜明的对比,这就让我很不理解了。

上述就是两种优先级别最高的业务,如果我们没有在规定时间内完成并回复,系统就会直接给Rocky发邮件,让Rocky来催我们解决了。而除了这两种任务以外,我们接触最多的其实是我们的技术支持发给我们的任务,一般是误报处理和样本鉴定。有时也会转达客户对于我们杀毒软件产品自身的疑问。这样的任务一般优先级不高,我们只要在4小时内处理完成就好。但我多多少少有点强迫症,在收到这样的任务之后,往往也会按照VIP的时间标准进行处理,而不想让它们积压在我这边。

这里有一种叫做解除误报的任务。客户如果发现我们的产品将客户自认为干净的文件报了毒,就要求我们分析一下原因,想让我们解除掉。这个时候,不能因为客户提出诉求就去解除所谓的误报,因为很多的用户其实是别有用心的,他们编写了一款流氓软件,从而被我们报毒,于是想通过这种提出异议的手段让我们屈服。这个时候就是体现我们分析师技术水平和专业素养的时候了,只要有确凿的证据证明这个软件有问题,无论这个客户再怎么说,甚至拿出合法的营业执照,我们也不能因此而解除报毒。当然了,也确实存在一些企业开发的程序,其写法和病毒的写法高度相似,这个时候我们是可以解除报毒,并将其加入白名单的。特别是有些国家的公司,非常钟情于在Excel表格中加入宏代码,一不小心就触碰到了我们的查杀机制。这就让我着实无奈,因为至少在我以及周边人这么多年使用 Excel的经验来看,就没有人会写宏代码,只有恶意程序的作者才喜欢这么做,也是我们的产品重点查杀的对象。而我们的这种查杀机制又不可能因为个别的用户而做修改,就使得每次出现这样的问题,我们都得手动添加白名单了。

开始正式进入工作状态

在最开始的时候,尽管Rocky已经允许我上线处理日常的事务,但考虑到我毕竟是新人,因此仅仅让我先处理一些简单的请求。这些请求的优先级别不高,以样本鉴定为主,偶尔还会有误报的解除工作。每次收到这样的任务,我首先都会给客户或技术支持回复一句已收到,正在处理中,然后就立刻着手样本的鉴定流程了。

然而也是直到这个时候我才知道,像是Rocky、Seth以及“渣兔”他们三个老员工,在日常的业务处理中,基本就不会使用我还在小白阶段用过的IDA和OD,而是仅仅用一款叫做Hiew的分析工具就可以应付日常的样本鉴定工作了。另外,由于日常还会涉及到大量的样本归类操作,因此我们还会使用一款叫做Far的文件管理工具。这样,每次收到新邮件,有了新的分析请求,我们将样本下载到本地指定目录以后,就会用Far去管理,用Hiew打开分析,最后再利用Far进行文件移动并归类。

可能我在这里描述这两款软件,大家并没有概念,如果要我来形容的话,这两款软件完全就不是Windows时代的产品,整体的风格还停留在DOS时代,需要完全用键盘操作。但事实上,只要上手以后,纯键盘操作会比用鼠标快得多,配合机械键盘的咔咔声,就会很有工作的感觉。

按照我当时对于病毒分析的理解,真正要实现深入研究,势必要采用动静结合的分析手段,也即是需要通过IDA进行静态的总揽全局分析,然后配以虚拟机中的OD进行具体细节的动态调试,只有这样才可以真正掌握一个恶意程序的全貌。特别是对于一些看起来模棱两可的样本,更是需要如此。尽管我们的日常工作仅仅是黑白的判定,可是也经常会遇到一些不太好下结论的情况,即便使用我上述提到的动静结合的方法,也不见得会得到十分准确的结论,更别提仅仅使用Hiew这样的工具了。因为它只能做静态分析,而且界面还十分原始和不友好,功能也很受限。

但是,当时以Rocky为代表的分析师,即便是进行复杂样本的鉴定,也仅仅通过Hiew就可以完成了。用Hiew看看样本的反汇编代码,随手翻翻,很快就能做出准确的结论,让我进一步对卡巴斯基的分析师心存敬畏。而事实上,不单单是北京这边的分析师是这样分析的,俄罗斯总部的大神们同样如此,对比自己的水平,简直高下立判。因此在我一开始接手工作时,也是在一点一点地熟悉这种快速分析的方法,从蛛丝马迹中寻求线索,进而做出准确的黑白判断。其实这是非常考验分析师的经验和技术的,直到现在,我也没办法纯靠Hiew实现所有类型样本的鉴定工作,特别是可执行文件尤为如此,很多时候还是得依靠动静结合的方式进行判定。

回到当时,当我对需要鉴定的样本已经做出了分析意见,并给出了分类依据后,我需要先把结论发给Rocky,让他审核一下把把关,看看结论是否有错误,如果没问题,我再回复给客户或者技术支持。在这样的一个训练过程中,也是渐渐地让我了解到了我们整套的分析流程与体系,熟悉了新工具的用法,掌握了很多快速判定的技巧,特别是针对于不同类型的业务,我也是有了自己的理解,明白了这些业务的特点,从而让我可以较好地完成每天的工作。

这样的一个训练过程大约持续了一两个星期,Rocky就让我独立上线开始真实的工作了。由于我的同事Yang比我晚了大约一个月才入职,因此他的训练期结束也是比我晚了一个月。直到他也可以正式上线独立处理日常业务,也就宣告着我们四个分析师的工作团队正式上线了。但考虑到我们每天的业务量并不是非常多,并不需要我们四人同时上线处理,因此我们做了一些分工,每天保持两人上线,以一老带一新的方式工作。

首先,Rocky由于是部门主管,因此并不需要上线处理这些业务,只要总揽全局,并做一些高级研究就好,因此他是周一到周五上班,周六、日休息。其次,由于卡巴斯基要保持全年全天都有分析师在线,因此周六周日也是需要我们值班的。所以当时的安排是,我和Seth周六值班,周日和周一休息;Yang和“渣兔”周日值班,周五和周六休息;其余时间我们四个分析师错开,每人每周上线三天,每天只要保证有人在线即可,余下时间各自只要做高级查杀技术的研究就好。我们四人总结成一张表格的话,如下所示:

周一周二周三周四周五周六周日
休息研究研究上线上线上线休息
Seth休息研究上线上线上线研究休息
Yang上线上线研究研究休息休息上线
渣兔上线上线上线研究休息休息研究

一般来说,由于我们每天的日常任务也不是很多,因此两人在线绝对能够应付得来。但在我和Yang来到卡巴之前,只有Seth和“渣兔”在,有时其中一个人休息的话,另一个人的工作量就会很多,因此在最初只有他们两个人的时候,每个人的工作总体来讲还是比较繁重的。但好在他俩都是老员工,对于日常的业务都能够熟练应对,不像我有时候会出现手忙脚乱的情况,面对不断发来的任务就会应接不暇。而与老员工一起上线工作,也会让我充满底气。

其实卡巴斯基北京病毒分析部门的分析师配置一开始就是四人,只不过有两个人离职了,这才把我和Yang招聘进来,之前也是让Seth和“渣兔”支撑了好久。

而正式开始工作,也是让我感受到了自己终于能够为公司做出实实在在的业绩了。时间也是不知不觉地来到了七月初,那天一早,我回到学院去取毕业证和学位证,宣告了我研究生阶段的结束。我记得很清楚,走出校门,那天特别晴朗,悠闲的云朵飘浮在蔚蓝的天空中,而我也是展开了人生崭新的篇章,接下来的每一天都要与全世界的骇客做斗争,意气风发,自信满满。

那一年盛夏,心愿许得无限大。

加班

大家从我之前所介绍的工作模式中可以看出来,原则上我们各地的分析师只要坚守8小时的工作岗位即可,完全没有必要加班,因为就算手上有做不完的任务,也可以在交班时直接转发给俄罗斯的同事进行处理。同理,要是俄罗斯的同事也处理不完(一般来说不会发生,不存在连俄罗斯大神都处理不了的情况,除非是不想做),也会在交班时转发给美国同事,美国要是也做不完,会再转发给我们的。

我记得很清楚,这种遇到一个任务(Case)转来转去的情况大概发生过两三次。熟悉我们这行的朋友应该知道,网络上有一些很专业的病毒分析论坛,论坛上总会有热心网友时不时地发一批最新的样本上来。有的论坛上的有的网友基本上每天都会发40到50个新鲜样本(也不知他是从哪里收集来的),然后被我们的技术支持看到了,就会把这些样本拿过来,让我们分析师作出判定并归类入库。每天所遇到的这些最新的样本,基本上都还没有被我们卡巴的样本库所收纳,因此我们需要一个一个进行分析。我们不可以先入为主地认为所有文件都是恶意的,因为也许其中也会有干净的文件。这就使得每天所遇到的这几十个样本成为了我们日常工作中最为繁重,没人愿意接的Case。假设某个分析师收到了几个这样的Case,那么他这八小时就可以暂时下线了,无需处理新的Case了,让同班的另一位同事处理就好,而自己则专心分析这几十上百个样本,如此,一天就过去了。

总是出现这样的情况,让我们分析师意见很大,于是就和技术支持说,能不能把这些样本拆分为多个Case,这样虽然样本的总数还是这么多,但至少不会让我们有那么大的心理压力。后来尽管我们的技术支持照做了,但很多时候我们依旧是分析不完的,此时到了交接的时候,如果哪天我们的责任心爆棚,确实可以自己加加班,把手上的这些做完再走,但更多时候则是直接转给俄罗斯人分析,毕竟是大神,我们觉得他们的效率会很高。但也经常遇到这种情况,那就是俄罗斯人也犯懒,这类Case看了一眼之后也不做,直接转交给美国人,而美国人看了一眼之后也直接犯懒,又交还给我们。看着没有经过任何处理的Case,我们的心里也是五味杂陈,会觉得挺搞笑的。而如果我们还是不处理,又转交给俄罗斯人的话,他们可能会直接关掉这个Case,毕竟是自己人发起的分析请求,而不是客户,因此也不会出现由于消极怠工而引发的投诉问题。

另外,当我在职的时候,总部那边一共出现过两次,直接发给我们两三百个样本,让我们进行判定归类。由于每次都是快下班时候发过来,尽管Rocky只是让Seth和“渣兔”留下来分析,但我也想为大家减轻负担,每次都会自告奋勇地留下来去负责其中的几十个。人多力量大,一般到晚上八点也就基本完成了。因此这也是我在卡巴一年半的时间里面,仅仅经历过的两次加班了。

可怜身上衣正单,心忧炭贱愿天寒
其实我对于卡巴的日常Case上手还是挺快的。没记错的话,在2016年9月中秋节的时候,我们部门包含Rocky在内的其余几个分析师都休假了,只留我在办公室值守。那也是我第一次独立上线处理日常事务,整个公司也是空荡荡的,只能听到我不断敲击键盘处理Case的声音。由于担心遇到紧急Case,因此我去买吃的以及去茶水间热饭也都是一路小跑,生怕贻误军机,使得总部一封邮件就去Rocky那里告状了。

但好在那天还是非常平静,没出现重大的问题,都是很普通的日常分析任务,直到晚上六点交班给俄罗斯的分析师,我那悬了八个小时的心才彻底放下来。享受了一会压力过后的悠闲时光,关了电脑锁了公司的门,然后也就回公寓了。

其实像是Rocky、Seth、“渣兔”以及Yang是不喜欢在节日加班的,每次都是我自告奋勇主动要求坚守岗位。这是由于我这个人比较宅,自己在北京闯荡,不上班完全不知道该去干啥,也不喜欢去逛街。因此在卡巴的一年半时间里面,除了有次遇到公司网线需要检修,不得已才在住处办公之外,其余时间,一切节假日,我都是铁定会去公司的。比如每周日和周一,尽管是我的休息时间,但我都会去公司做一些高级查杀技术的研究,并且还能和值班的“渣兔”与Yang聊天,人多就热闹,我觉得还是挺好的,比自己一个人憋着强。特别是他俩如果去吃饭,我还能上线盯一会,算是帮了点小忙。而一些大型节日,比如劳动节、中秋节、国庆节、春节这种,加班会有三倍工资,还是挺爽的。于是大型节日的办公室里就少不了我的身影。以国庆节为例,加完班的当月工资实际到手能达到一万五千多,而平时没有节假日的时候,工资到手也就一万一、二的样子。因此,加班费可以说也是我很大的动力。

但虽说有三倍工资是一件挺爽的事,可自己一个人值班,心里不免还是发虚的,一些紧急的、奇怪的Case总会让我没有头绪,此时就只能求助于老员工甚至是俄罗斯的同事了。因此,独立承担加班的任务,对我来说也是一种微妙的心理状态,即正如《卖炭翁》里所说的那样——

可怜身上衣正单,心忧炭贱愿天寒。

好在我运气不错,这一年半的时光里面,独立值班时并没有遇到啥特别奇怪的事情。顶多是那次公司网络检修,我在公寓办公,受限于网络因素,我的网速很慢,时不时还会掉线,这就让我很紧张,毕竟如果在我掉线时突然来了个紧急任务而耽误了处理,那可就要追责了。但也幸好那天Rocky和我说如果遇到问题可以找他,才让我的心中有了个强大的后盾。那天的Case也很少,直到交班时俄罗斯同事和我说了一句“Hi”以表示他已经上线,我才如释重负。

救星来了,我也就可以下线了。

我与I论坛的是是非非

当我刚读研一的时候,对自己的未来还是非常迷茫的。尽管我读的是数字媒体技术专业,但是我对这一行根本就不感兴趣,对于平面设计、三维建模以及游戏引擎的使用这一类知识没什么兴趣,也不太想学(由于我的导师是这个领域的,因此我必须得学一些,毕业设计也得做这个方向)。当时我的初步想法是学好C/C++语言,毕业之后做一个C程序员,如果学得好的话,也许会去应聘游戏公司,做一名游戏引擎开发工程师。尽管当时我是这么想的,但也没有付出过多的实际行动,因为总感觉自己不是编程的料。加上我的本科还是学营销的,就更加没有竞争力了。另外,我们研一的课程也是挺多的,也就没有太多的时间来学习自己感兴趣的东西,所以我的编程功力并没有得到显著的提升。那个时候我甚至还在想,如果就这样碌碌无为地过完研究生三年,也许毕业以后只能继续卖苹果去了。

也许是机缘巧合吧,在研一第一学期末的时候,某天无意中在网上发现了一套关于软件逆向分析技术的课程,让我发现了一片神奇的天地,跟着课程练习了几遍,学会了逆向分析的基本原理以及简单的脱壳技术,然后又学习了PE结构知识与汇编语言基础,让我感觉逆向分析领域确实很有趣也很吸引人。从那以后,我就走上了计算机安全的道路。由于逆向毕竟是属于灰色地带,而我如果想要从事这方面的工作的话,那么只有病毒分析这一条路了,所以我就改变了志向,希望成为一名病毒分析师。

带我走上这条道路的就是I论坛的坛主,我当时还买了VIP会员,毕竟不能让他白给我讲课,总不能让传播知识的老师喝西北风吧。尽管我是论坛的VIP,但事实上我一般很少去论坛看帖发帖。习惯了看视频教程,再看文字的话就有点看不下去了,而且在论坛和大家扯东扯西也没什么意思。加上后来当我看完相关课程以后,我就开始自己研究了,就更把这个论坛抛在脑后了。但是令我万万没想到的是,时隔三年,我竟然与这个论坛产生了一些瓜葛,发生了一些特别奇葩的事情,让我开始厌恶起这个论坛中的一些人和事。而这一切的开端,就是源于一封电子邮件……

来自I论坛的邮件

2016年9月初,我收到了来自I论坛的一封电子邮件,内容是他们和G公司要联合举办一个有奖征文活动,征文内容是大家学习编程的心路历程,分享一些学习经验和技巧。我看他们的奖品还是挺诱人的,一等奖到四等奖分别是1000、500、200和100块钱的京东购物券。其实I论坛以往是不给我们这些VIP会员发邮件的,也许是考虑到有新的消息能够第一时间告知会员,才在当年7月份开始提供了这项服务。如果不是给我发邮件,我简直都要忘了还有这么一个论坛的存在。

当时见到I论坛举办的这个活动,我觉得不错,打算参加凑个热闹。因为那个时候我的《从苏宁电器到卡巴斯基》系列还剩最后一篇就结束了,而这个系列的文章正好可以完整反映我的学习路,因此我觉得自己参加这个征文活动还是很有竞争力的。于是我当天就急急忙忙地写完了第36篇大结局,晚上快十二点的时候,发在了我的CSDN博客上。接下来就打算修改一下这36篇文章,从而写出参赛的版本。

参赛

由于我的36篇文章的初稿累计有17万字,相信即便我写得再精彩,直接提交参赛的话,也很少有人愿意一口气看完,因此我就打算大幅度地缩减字数。原始的系列文章是从我本科时候开始写起,一直到我入职卡巴斯基作为结束。我觉得其中很多内容可以一笔带过,于是就把我的本科到读研究生(双证)之前的这8年时间,用几千字就概括了。接下来的研究生阶段,也主要是突出我学习以及求职找工作的内容,把我与导师之间的矛盾,我毕业的曲折等故事通通删掉了。这样一来,就剩下了大概两万字的内容。本来还想再删一些,但是考虑到这两万字似乎字字珠玑,于是就没再进行大幅度的修改。接下来我为了突出I论坛,就把原文中其它网站的名字全都换成了“某网站”。再三检查之后,觉得没什么问题了,于是也就提交到I论坛的参赛版块了。两万多字也还是挺多的,限于他们的论坛设置,我的帖子里只能发一万多字,余下的几千字,我就发在了二楼,相当于是跟帖了。所以我一共用了两层楼来承载我的文章,接下来就静待大家的评阅了。

I论坛举办的这次活动的评分标准,是依据“最终得分 = 评分分数(获得的虚拟币总和)+点评分数(每一颗星算一分)”这个公式来计算的,论坛的全体人员(包括论坛管理人员)都可以参加征文比赛也可以参与评分。我的文章是11号提交的,尽管距离开赛仅仅过了两天,但是在我之前也有几个朋友提交了自己的文章。我大概看了一下,他们写得都比较简单,因此我觉得我的优势很大。而从实际的情况来看,我的文章也是好评一片,我的分数疯狂上涨,很快就突破了一百分,牢牢占据着第一的位置,拉开第二名分数越来越多,连续好几天都处于“独孤求败”的位置。于是我觉得第一名稳了,甚至开始计划那1000块钱的京东券该怎么花了。

成为实习版主

这个时候,论坛的一个“元老”也发现了我的“回归”,私信建议我申请论坛的版主职位。最开始我是委婉拒绝的,因为我实在是没兴趣处理论坛事务,毕竟在我看来这就是费力不讨好的事情。但是到后来我遭不住那个“元老”天天对我的劝说,我也就答应了。“元老”建议我申请加解密版块的版主(其实申请就是走个形式),发了申请贴,很快坛主就批准了,于是我也开始了实习版主的生涯。

其实我也不知道应该怎么当实习版主,也不知道自己每天应该做些什么。因为目前论坛最为活跃的当属Python板块,加解密版块已经是明日黄花。起初,我看到这个版块里面有很多历史遗留问题,也就是网友发的提问贴已经过了好久都没人来回复,这样的帖子有很多,而我正好也比较闲,于是也就一一认认真真地写出了我的答案。其实大家的问题还是挺有代表性的,我在想如果我当初在学习的时候,也能有人来指点我,也许我能够提高得更快。其中还有一道宣称是CTF竞赛破解题,来求思路。我简单分析了一下,觉得还是挺简单的,就写出了比较详细的思路和解法。毕竟也是好久没做破解了,解出这道题甚至让我有些兴奋。

在回答完这些历史遗留问题之后,我突然感觉没事干了。当时听说坛主要举办一个破解比赛,我可能要参与出题,内心有点忐忑,毕竟自己并不是那么擅长编程技术,让我做个破解也许还可以,但是出题的话,就不知道咋办好了。可惜的是,我并没有坚持到那个时候。

矛盾

回顾我这十多年的求学与工作的历程,发现不管大事小事,只要发生在我的身上,就总是会出现各种各样的奇葩事情,从而出现令我非常不爽的结果,在I论坛也不例外。

当时我想要用Python加上正则表达式来实现两个功能。由于我对这两个方面的知识并不太了解,我见论坛的Python版块比较活跃,于是就发了一个帖子来问这件事。结果Python版块的实习版主很快就回复我了,说这个问题很简单。我说既然你觉得简单的话,那么这个程序应该怎么写?没过多久,他就把两个程序写出来并且回复我了。当时看了他的程序,我很不理解为什么他们喜欢利用Python的Shell命令行来写程序,一行一行地录入并计算,就好像是把Python当成了一个超级计算器。

不过这都没关系,黑猫白猫抓住老鼠就是好猫。由于我是希望利用一个Python脚本程序来完成两个功能,因此我就把他给我的命令行程序写成了一个.py文件来尝试看看行不行。结果就一直报错,于是我就怀疑他的程序仅仅支持Shell的方式运行。而不能以一个完整的程序的形式执行。由于我需要的是一个程序,准确来说是一个.py文件,Shell程序对于我来说是没有用的,我并不需要Python这样一个超级计算器。另外,我对于他的程序的写法也产生了质疑。举个例子来说,我希望Python程序能够实现把文本中的十六进制ASCII字符码转化为对应的字符。比如文本中要是出现了“\x41”,那么我希望通过Python的运算与转换,将它变成字符“A”并写入一个新的文件。可是他给我的方法,确实能够在屏幕上显示出字符“A”,但是我怀疑这仅仅是显示出来了,而没有实现真实的转换。于是我就把我的疑问在帖子里面回复给他了。

他说他的方法就是实现了真实的转换,我说你的方法仅仅是在显示器上把目标字符打印出来了,并没有实现真实的转换,我用print函数直接打印“\x41”也能够把字符“A”显示出来,但是这样的结果我是不需要的。没想到他竟然不耐烦了,说大家都是实习版主,我怎么就这么磨叽,说我提出的问题他已经解决了,既然已经解决了,那么他就要删帖了。我说你的程序没有达到要求,问题还没解决,为什么要删帖?接下来他私信我说,不想再和我纠缠了,活该我不会。这个时候我还没生气,在原帖又重申了一下我的要求,然后他也不和我讨论程序了,直接说我是“伸手党”之类,开始了人身攻击。我说既然论坛有提问版块,我来这里问问题,怎么就成了“伸手党”?既然这样的话,论坛干脆取消提问功能算了。

就在这个时候,Python版块的大版主,同时也是论坛管理员的一个人,出来说“公道话”了。不愧是“护犊情深”,他直接无视那个实习版主对我的攻击与恶劣态度,指责我不要纠缠,因为问题已经解决,还说我没把需求说明白。也就是说,一切的错误都在我。

他说的那些话,直接让我感觉不爽了,我再次把整件事给他复盘了一遍,却遭到了他的无视。也许是找到了靠山吧,那个实习版主继续跳出来攻击我了。本来就是讨论技术的,却引发了一场口水仗。算了,他们抱团取暖,真的让我心灰意冷。

不再担任实习版主

出现了这种情况,我也不想再讨论什么问题了。权衡了一下,于是到最初的版主申请专区发了一个帖子,内容是我不想再担任实习版主的职务。主要是自己受到了非常不公正的待遇,指出Python的大小两个版主对我的攻击,并贴出了原始帖子以及私信内容。

令我万万没想到的是,尽管已经是证据确凿,但是论坛的其他版主或者管理员竟然一边倒地支持他俩,有点良知的也仅仅保持中立而已。此时Python的大版主(管理员)话锋一转,开始指责我为什么要公开这件事,并提出了一个新的“论点”,那就是那个Python的实习版主还是个孩子而已。我心想你都开始道德绑架了啊,就更加让我不想再说什么了。

后来尽管坛主私信跟我说了不少好话,但我依旧坚持辞职,他也就批准了我的申请。

彻底决裂

辞职之后,我只剩下征文比赛还和I论坛有点关系了。然而奇葩的事情还没有结束。我之前说了,自从我参与了征文比赛以后,我基本上是稳居了第一的位置,其实这也是合情合理的,因为尽管大家的参与程度很高,但是鲜有佳作,因此获得的评分也就不高。距离比赛截止还剩一个多星期的时候吧,论坛的管理员还有版主们突然开始发力,一个接一个地发文章。客观来说,他们的文章水平和其他的网友相比,并没有特别出彩的地方,也都是半斤八两,但是他们这些管理员之间却疯狂打高分,包括一些比较资深的坛友,也会来拍马屁,给这些管理员和版主猛打高分。

其中有两个版主,一共给另一个版主(后来得了一等奖)打了40分。还有一个版主,给后来得了二等奖的人打了20分。而这个版主仅仅给我打了6分。遇到这种情况,我有什么可能在分数上超过他们呢?看到自己的分数被一个又一个“关系户”超越,我也就不再天天关注我的得分了,心想第几名都无所谓了。我也在不断地调低自己的期望值,最初觉得1000块钱就是我的了,后来觉得500也可以,再后来……重在参与吧。

其实关于评分不公平这件事,当时我也私信跟坛主说了,令我大跌眼镜的是,他竟然反问我,说难道我在平时的工作和生活中,事事都是公平的吗?我心想明明是你比赛组织上有问题,现在竟然又赖到我身上了。既然已经如此,我还有什么好说的呢?

公布结果的日子很快就到来了,虽说已经不报任何希望,但也还是好奇自己究竟能得第几名,于是就看到了我的最终评分竟然才50分。

看到这个,我只能理解为他们是要故意做掉我了。我在这个帖子下留言说,我的评分算错了,我应该是138分,即50+88=138。首先跑过来回复我的是加解密版块的大版主,同时也是论坛的管理员。她回复说计分并没有错,分数是“虚拟币数”加上“点评数”,而不是把所有分数都加上。我心里想,你在回复我之前,是不是应该先去我的参赛帖子下面看看呢?动动鼠标去确认一下究竟有没有算错,是一件很难的事吗?不去确认,直接否定我,我只能说I论坛的管理员兄弟们确实是一路人。不过那个时候我已经不想再争论了,直接把我的原帖中的评分截图回复在了评分贴的下面,我说点评分加上虚拟币数,一共是138分,也就是我的最终得分。好了,目前证据确凿,那个管理员终于闭嘴了。末了TA还做了一件好事,at了坛主,于是就得到了修改后的评分表,我排在第四位,获得了100元京东券。

而如果仔细研究整个排名,明显可以发现这就是I论坛管理团队的内部福利。估计坛主他们也没想到,我会参加这次比赛来“搅局”,因为我作为一个路人甲,一个打酱油的,竟然乱入得到了100块钱,至此,我都不知道该怎么写下去了。

后记

后来我删除了我在I论坛的一切,包括我的文章,我的个人信息以及所有的回帖。我不打算再回到论坛,毕竟也是多我一个不多,少我一个不少。对于评分计算错误这件事,坛主可以有千千万万的理由来为自己开脱(比如没看到,没注意看之类的),我也不想讨论过多,相信大家看了上文会有自己的评判。

I论坛的江湖,我还是不再涉足为好。

还愿吾爱破解视频教程大赛

我在第一部小说里面曾经提到过,第四届的吾爱破解视频教程比赛是在2015年的年初举办的,当时不小心错过之后,就想参加2016年的比赛。因为尽管那次比赛我没有参加,但是却极大地改变了我之后的人生走向,因此也是发生了不少的故事。而这次我是铁了心要参赛的,但是年初过去了,年中也过去了,吾爱论坛始终没有要举办赛事的消息,一度觉得今年就不会举办了,觉得没办法还愿了。时间来到了九月初,无意间登录论坛,终于发现了这次比赛的举办消息。

好吧,这次我绝对不可以再错过了。

选题

这次比赛的视频征集范围是“以病毒、脱壳破解逆向分析、追码及注册机制作、程序软件工具编写、移动程序(安卓、苹果等)方面的破解等技术类动画”。我个人擅长的是逆向分析以及病毒分析。比如去年的想法是将我的《跨越CM4验证机制的鸿沟》这三篇博文录制成一个视频,讲解如何通过逆向分析的手段来编写出注册码生成工具。今年本来也想用这个选题,但是考虑到这种商业软件的验证机制还是有些麻烦的(尽管是好多年前的软件),如果录制成视频给大家讲解的话,势必要花费很长的时间。时间越长越会打消大家学习的兴趣,而且我觉得,一次课的时间最好不要超过四十分钟。这样一来,我就需要重新寻找课程的题材了。

那个时候,我每周的工作除了正常的病毒分析以外,还加入了我们反病毒部门的启发研究组,每周会有两天时间专门用于研究启发特征的编写。以往对于启发的认识,仅仅停留在晦涩的文字中,一直没明白什么是启发查杀技术。直到我加入了启发组,才一点一点地明白了其中的原理。考虑到我们的日常分析工作中,几乎每天都会遇到JavaScript木马,总会遇到新的变种,很多时候会惊讶于木马编写者的脑洞,他们为了躲避杀软的查杀,总会有奇思妙想,因此我觉得这场攻防大战是一个充满挑战性的领域。于是就打算以此作为题材,来给大家讲解一下JS下载者木马的自我保护技术、特征码查杀、启发查杀以及主动防御技术。

备课与提交课程

其实我在备课初期,在脑海中也是列好了提纲。在我打算讲解的那几个方面的问题里面,自我保护技术、特征码查杀以及主动防御技术在我以前的博文中其实都是有所提及的,因此这里我只需要按照这次课程的内容稍加修改就可以了,所以我备课的重点就放在了启发查杀的讲解上面。当然了,我课程中所讲的这些知识不可能太深,太复杂的话我自己也不见得能论述清楚从而让大家理解,鉴于JS木马的实现机理并不复杂,所以也并不需要采用复杂的手段来对抗它,一些较为常规的比较简单的方法也就够用了。

启发查杀需要讲解两个方面的内容,即启发引擎的编写以及启发特征的编写。启发引擎用于将原始的JS木马程序解密(因为目前的JS木马都会采取五花八门的加密技术,以对抗杀软的查杀),需要将其还原为我们能够直接识别的程序,最终的目的是要生成一个LOG文件,通过LOG文件就能够直接看出来这个木马在哪个网站执行了下载操作,下载到了本地计算机的什么位置,以及下载的文件名称等关键内容。知道了这些关键信息,接下来就可以编写一个特征或者说一个规则,使其能够匹配到LOG文件中的关键内容,从而进行判定。这样一来,以后如果遇到了未知JS程序,只要先用引擎解出一个LOG文件,再对LOG文件进行特征匹配就可以了。

启发技术的原理说起来简单,但是在具体编程实现中,还是挺困难的。我最开始想使用我们卡巴斯基内部的解密引擎,这是一个较为成熟的软件,能够应对各种不同的脚本,还原出它们的本质。但是考虑到技术保密等等因素,我也就放弃了,最终决定自己写一个简易的解密引擎。

我首先找了一个比较简单的JS下载者木马样本,打算这次的课程就围绕着它进行研究。其实想要解密的话,最为核心的内容是去掉原始代码中多余的字符。骇客为了对抗我们,往往会把自己的木马写得非常晦涩难懂,会加入各种奇奇怪怪的符号来扰乱我们的分析。去除混淆相当于是进行字符串的匹配与替换,那么这里就少不了正则表达式了。光有正则表达式还不行,毕竟我希望实现自动化的启发分析,不可能依靠一些文本编辑工具自带的正则匹配功能进行去混淆的工作。还是需要一种高级语言的驱动,考虑到简洁性(利用很少的代码实现更多的功能)与兼容性(需要很好地兼容正则表达式),最后我选择了Python。

我们分析师并不侧重于编程技术的积累,因此这次在Python加上正则表达式上面,我也是遇到了很大的问题。于是就有了上一篇中的故事,被I论坛的人攻击的故事,这里就不再多讲。最后也就只能自己动手丰衣足食了。我最后写出来的程序尽管还是挺简单的,但是至少能够达到我的目的,对于这次的课程来说够用了。而代码的完善与优化,也就只能抛砖引玉借助于大家的力量,或者以后我有时间的时候,再好好研究一下了。

整个的备课过程还是很拖拉的,当我完成我的讲稿的时候,仅剩下一两天的时间就要截止了。本来还打算做一个PPT,边讲技术边给大家演示,从而达到无缝衔接,便于理解。可惜的是已经来不及了,PPT只能作罢,唯有等我重新录制的时候,再弥补了。

时间很快就来到了10月6号,我打算这天下班早点回去录视频,这样还能够赶上提交的最后期限。但是此时却发生了一个意外,那就是我的笔记本电脑出现了频繁自动关机的情况,这简直让我崩溃。没办法,只能把我在2010年买的一个小笔记本拿出来用了。这个笔记本是ThinkPad推出的第一款红色笔记本,也就是X100e系列。由于2010年春节的时候我没有休息,一直坚守在苏宁,加上那几天iPhone卖得也很好,因此那次的到手工资将近四千块钱,就花了三千多买了这个小红。按照现在的眼光来看,它的性能自然是很差的,但是也没办法了,赶紧录完得了。可是当我配置完环境,提前走一遍录课流程的时候,惊讶的发现我课程中一个非常重要的工具在我这个小红里面用的时候会死机,于是这就彻底宣告了现在连小红也不能用了。没办法,只能再换回我的主力笔记本了,也许它休息了这一会之后,想明白了,不再频繁自动关机了呢?

老天眷恋,也是天无绝人之路,这次开机异常顺畅,挺了一会也没有任何异常。于是我赶紧开始录视频。时隔好几个月再次讲课,感觉多多少少还是有些生疏的,其中有不少断断续续以及讲错稿子的情况出现,不过这都没关系,后期可以编辑,大概花了一个小时吧,终于录完了课程的原稿,接下来就是使用视频编辑软件进行后期制作了。其实这个后期制作也是很简单,无非就是把我讲的不好的部分删掉,但是这也花了我一个多小时的时间,剩下了三十多分钟的课程时间。此时已经来到了10月7号的凌晨1点,赶紧将所有的课程资料打包好,上传到网盘,再到参赛栏目中发个帖子,宣告自己参赛。

说到这里,当时在备课的过程中还有个小小的花絮。我为了说明传统查杀方式的劣势,在我稍微对木马样本做了简单修改之后,发现在VirusTotal上可以躲避掉5家杀软的查杀,而此时我却惊讶地发现,被我修改后的样本虽然也躲过了卡巴的传统查杀,但却被卡巴斯基的启发式引擎给识别了。这就很有趣了,一方面突出了启发查杀的优势,另一方面也体现了卡巴的强大。

改名
我本来是有一个吾爱破解的账号的,账号名叫做ioio_jy,是通过写技术文章申请来的。在吾爱破解论坛,如果想要申请一个账号,要么可以通过发表技术文章的方式来证明自己的实力从而获得资格,要么就花钱充吾爱币买一个账号,或者等到一些节日的时候,论坛开放注册的时候申请。尽管我有账号,但是这次参赛我并不想用这个账号,因为之前与I论坛的种种不快,加上在吾爱破解论坛里面,也活跃着I的版主,考虑再三,不想惹麻烦上身,决定用GleamJ的ID参赛。Gleam是我在卡巴斯基的英文名,J是我姓氏的第一个字母。这次的赛事,吾爱破解为了召集天下“英豪”参赛,于是允许没有论坛ID的朋友发帖参赛。那么这也就给了我一个很好的机会,创建一个新的身份参加比赛。

说说参赛视频里面的声音

很不理解历届那些参赛录视频却不录声音的朋友,按照他们的说法是声卡坏了或者麦克风坏了,每届总有这样的,即便视频中的技术再高明,也很难拿到一个好的名次。其实按照我的理解,在黑客领域,录制视频却不录声音的都是属于不想透露自己身份的那类人。比如揭秘某流行软件的流氓行为,或者演示如何入侵某个网站……类似于这样的情况,才会选择不录自己的声音,而是打开记事本,边打字边给大家讲解。

这样的没声音的视频我看得也是很累,而吾爱破解也有这样的参赛选手,估计评委在评选的时候,内心还是有些崩溃的。因为视频一般很长,技术的东西又比较枯燥,加上没有声音,评委们秉承着认真负责的态度,那么就很容易睡着。但是相比于那些杂音极大的视频,这类没声音的视频已经是天堂了。比如这届比赛就有一个,那个朋友的电脑估计问题很严重,杂音到了刺耳的程度,真不知道那些评委是怎么坚持下来看完的。

当初我是怀着知己知彼百战不殆的态度,尝试性地看了一下那些没声音以及杂音很大的视频,结果顶多坚持三分钟就受不了了。不由得想起来我在去年刚开始当业余讲师的时候,我用电脑自带的话筒来录制的时候,也会有杂音。尽管杂音不是太大,但是我毕竟多多少少有些强迫症,就不能容忍杂音的存在,于是我在对视频进行后期编辑的时候,都会对声音进行降噪之类的处理。尽管很多时候降噪的效果也不好,但我也只能做到这种程度了。后来买了一个专门的话筒,录制的时候情况有所改善,但杂音还是存在,没办法解决。我就总感觉如果利用笔记本电脑录制,杂音就是不可避免的,而我用家里的台式机录制,就几乎不会有杂音,所以当时我在录制我最后一个系列的那四十来节课的时候,就全都是使用家里的台式机录的了。

而我在参加这次比赛的时候,我只能用我的笔记本来录制。无奈的是我把自己的话筒落在了家里,我的笔记本收音效果还极差,到了不论我多大声说话,收的音也几乎听不到的地步。不能不参赛也不能没有声音,于是我就动用了我的平板,打开平板的收音功能,在后台执行,前台应用用来展示我的讲稿,相当于是提词器的功能。平板也相当于是话筒,录完以后把声音文件从平板里面拽出来,用视频编辑软件将录的视频和声音文件合成,做一些后期处理,于是就形成了我最终的参赛视频,视频里听不到任何的杂音。因此我的录制过程也还是挺曲折的。

我在这里讲了这么多,目的其实就是想说,只要大家真的想解决问题,那么总是会有办法的,只是解决问题的过程可能会很麻烦很曲折,但是只要能够达到目的就好。我总觉得那些不录制声音或者视频里面杂音很大的朋友的参赛态度非常不端正,得不到好名次也确实只能怨自己了。

我的对手们

这次的赛事包括我在内,一共有15人参加。其中病毒分析类的只有我自己,安卓逆向破解类的有两人,余下的12个人全都是Windows平台的破解教程。其实我本来打算好好看一下其他14个朋友的参赛作品的,但是正如我上文所说的那样,很多视频在声音方面实在是惨不忍睹,于是我也就不打算继续看下去了。由于我对安卓还是挺感兴趣的,所以把那两个安卓类的教程保存下来了,打算以后好好研究一下。

幸好本次赛事不允许管理团队以及评委参赛,否则我的名次还真的不好说。我在第一部小说里面提到过,在我看过的那么多的计算机技术类的视频教程里面,论讲课功底我只佩服两个人,也就是担任本届赛事评委的Kido以及Ximo。这两个人不单单技术功底雄厚,课程中的语言表达也是非常清晰。说到这里我想起来,我曾经花钱在某平台买过国内某个在漏洞挖掘领域的顶级大神的课程,然而我仅仅听了十来分钟就放弃学习了。因为大神的普通话实在是有些拉垮,有些听不懂,看起来很费劲。

言归正传,本次赛事当所有的参赛作品提交之后,就进入到了评审期。评审期的第一阶段是网友投票,也就是受欢迎程度的评比。受欢迎程度的分数为10到30分,而最后的总分是180分,因此受欢迎程度的评分并不会对总分产生决定性的影响。这种评分方式简直就是我这种“人缘差”的人的福音。当时我也没有拉票,觉得多少分并不重要。而最后的分数也很正常,我是倒数第三,因此如果想要获得名次,就必须期望在评分的第二阶段,评委给我打高分了。对此我还是很有信心的。

结果出炉

那个时候,在等待最终结果的那几天,我还是有些紧张的,当时甚至还发了一条微博,将这次比赛和我的高考以及考研等待成绩时的心态相比,虽然有些夸张,但是这也说明我确实是挺重视这个比赛的,觉得高手不少,拿个三等奖也不错。很快,就盼来了成绩发布的日子。

由于当时公布成绩时并不是依据排名,而是作品最初的提交顺序。由于参赛时我交得比较晚,当时我一眼看去还以为是13名,看后面才知道自己得了第二。第一名是307.1分,我是288.6分。这已经是超出我的预期了,实现了逆袭,我对这个结果很是满意。而论坛秉承着公开公正的原则,同时还公布了所有作品的评分细则,评委是这样说的:

逻辑/语言组织能力有理有据,知识点清晰明澈,不显多余。很棒!

口齿清晰,教程详细,思路明确,一个很好的介绍性教程

我觉得评委的评价也是很客观,得到了专业人士的肯定,我还是非常高兴的。

总的来看,我对于这次的赛事组织赛事结果等方面都非常满意。不单单是由于我得了第二名,心情不错。而是如果所有比赛都能够秉承着这样公平公开公正的原则,那么即便我最后的结果是垫底,那我也是心服口服的。

比赛的奖品的是一个QQ公仔,腾讯钱包。另外第二名可以选择一百块钱以内的技术书籍,我选的是《Python核心编程(第3版)》以及《正则表达式必知必会》,毕竟我这方面比较薄弱,应该好好研究一下。

最后

我觉得自己以往讲课的经验对于这次的比赛还是很有帮助的。参加这次的比赛,也算是为自己还愿,了却了一个心愿。当时想着,如果吾爱破解明年还有这个比赛的话,我一定还会参加的。我甚至觉得现在就应该找录课的素材了。还有一个悬念就是,下次的比赛我要用什么身份参赛呢?GleamJ还是ioio_jy?又或者说是一个新的身份?这个只有下次比赛才会知道了。

在这里,我看到了究极

在南派三叔所写的小说《盗墓笔记》的《云顶天宫》这一部中,说张起灵化妆成“阴兵”去了青铜门后面的世界。等他回来的时候,众人问他在青铜门后面究竟有什么,张起灵回答道,他看到了终极。

直至小说的最后,南派三叔也没描写这个所谓的“终极”究竟是什么,但应该是一种超出常人理解甚至是张起灵理解的事物或者是超自然现象吧。因为“终极”也就预示着一切的尽头,不可能再有更进一步的发展了。而我在卡巴斯基,也遇到了类似的情况。但技术是永无止境的,我觉得用“终极”不妥,所以这里称其为“究极”。

分组

在之前我给大家看的排班表中,我说我们每个分析师在一周五天的工作中,有三天要上线去处理日常的Case,还有两天需要做高级查杀技术的研究。其实在一开始正式走出训练期的时候,我并不知道自己还需要做研究,因为当时我一周五天都是要上线处理Case的,甚至有些时候,我们四个分析师会同时上线。由于我们的业务并没有那么多,因此四个人同时上线,劳动力确实是有些富余了。

大约是训练期结束后的一个多月吧,此时我和另一个新同事Yang都已经处理了一段时间的Case,对卡巴日常的业务也算是比较熟悉了。有一天,Rocky突然对我俩说,我们以后要开始排班,每人一周上线三天,另外两天不用上线,需要加入一些研究组来做一些查杀技术的研究。然后他就把我分配到了启发查杀组,把Yang分到了主动防御组。由于Rocky也是启发组的,因此接下来这段时间就由他来指导我关于卡巴查杀引擎中启发模块的用法以及特征的提取方式。而Yang则由俄罗斯的一位同事进行远程指导。

Yang所学习的主动防御技术有些复杂,一开始还需要先配置好分析环境,听说配置文件有好几个G,安装起来很容易报错,这就让他感觉很头疼,花了很长时间配好以后,特征也很难写。因此他其实也没有在主防组待多久,就和Rocky表达了想要转组的要求,结合他自己的意向,就把他分配到了安卓病毒研究组。他在这方面毕竟也是有些基础,而“渣兔”也在这个组,大家还可以相互交流研究,因此Yang上手很快,没多久就通过了培训,开始正式做安卓病毒特征的编写工作了。

启发查杀组

我这边的启发式查杀相对来说上手还是比较简单的,在卡巴的内部,有一套用于启发特征编写的集成开发环境,有点类似于Visual Studio,我需要学习这套IDE的用法和语法,相当于是新学一门编程语言。然后需要以恶意程序的家族为单位,总结这一类恶意程序的特点,再基于卡巴的启发引擎,写出查杀程序。这样,以后只要出现包含有相同行为的样本,那么旧的特征依旧可以匹配到新的恶意程序。

在此之前,我完全不知道还有启发式查杀这一说,我天真地以为目前最厉害的查杀方式也就是主动防御了,因为我在入职前的自学时,确实看过一些文章,也了解过一些厂商会采用主防这样的方法。而在Rocky面试我的时候,我也仅仅回答了哈希查杀以及传统的特征码查杀这两种方式,并不知道启发是怎么回事,也完全没有听说过。这也就说明了,如果想要接触最先进的技术,还是得进大厂深造的。

在一开始,Rocky仅仅告诉我了一些最基本的启发语法,也给了我一些家族的样本,让我练练手,我需要以最小的代价干掉更多的恶意程序。在这个学习的过程中,由于我对启发理解不透彻,因此也是走了不少的弯路。比如我要是发现样本调用了DeleteFile函数,我可能就要直接报毒了,因为这个样本做了文件删除的操作,我就觉得很可疑。这个时候Rocky就会教导我说,单一的函数不可以拿出来作为特征,毕竟微软将这些API函数发明出来,不可能仅仅是为了给黑客利用的,正常的程序也是可以调用这些函数的。因此编写启发特征,应当提取出只有恶意程序才会使用的函数序列才可以。另外,最好是将静态和动态启发结合来使用,以达到最好的查杀效果。

这里所说的静态是指单单从样本的文件本身层面去找一些可疑的东西,比如奇怪的字符串等,但是如果样本使用了混淆或者加了壳,静态特征就无从下手了,此时就需要将这个样本在沙箱里面运行一下,通过分析沙箱运行出来的日志文件,提取特征。那么这也就是之前所说的函数调用序列了。有些时候日志文件会非常庞大,这就需要依靠分析师的经验从而在合适的地方进行提取了,大海捞针式地找可疑的地方肯定是不行的,这样会非常耗费时间。

每周的任务

当时Rocky让我一周提交八条启发特征,看起来不多,但实际上这确是一个比较艰巨的任务。因为尽管我们有非常好的启发引擎来帮助我们的分析与查杀,但现在很多的样本写得非常地晦涩,极难从中找到一些比较好的特点鲜明的特征出来。所以尽管我一周有两天时间做这方面的研究,但基本上能写出四条特征就已经很不错的了。所以没办法,为了完成任务,我就只能加班了。这个加班并不是每天六点下班以后继续干,而是利用我的休息日,也就是周日和周一,也来公司找样本做研究,提取特征。只有这样才勉强能够完成Rocky给我定下的目标。有时运气好,一周可以写出超过八条的特征,于是我就会把多余的这些留到下周再提交。

随着时间的推移,我发现我们系统样本库中的样本也是越来越少,好分析的都被我和美国的一位新来的分析师给研究完了,余下的都是特征不鲜明的样本了。这就很糟糕了,于是我就又改变了策略。由于我一周是要上线三天处理Case的,这些Case一般就是分析一些最新的样本。因此我就把每天上线遇到的这些样本保存了下来,到我做研究的时候,就专门研究这些最新的样本,这样就极大地缓解了系统库中样本不足的问题。这么做还有一个好处,那就是如果遇到的这些样本是世界上最新的病毒,而我又第一时间对其写出了启发式特征,那么等这些样本再次更新的时候,只要其核心恶意功能没有改变,那么我所编写的旧的特征依旧可以查杀新的样本,真正实现了防患于未然。此时Rocky也会非常惊讶,甚至还边检查我的特征边自言自语问道:我查杀的这些样本都是哪来的啊?

很明显这些样本连他也没见过。而直到我离职,我也没和他说其中的缘由,毕竟他也没正面问我,要是正面问,我当然会说的。

深入学习与总结

除了每次我都能利用启发查杀掉最新的样本从而令Rocky吃惊以外,我自己还看了很多俄罗斯大神编写的启发特征。因为Rocky教我的那些语法都太简单了,随着我对启发式查杀理解的加深,以及样本复杂性的增加,就势必促使我学习一些更加高级的语法以更巧妙地干掉更多的样本。特别是有一次,我写了一条特征可以有效地对抗“白加黑”恶意程序,Rocky见了也有点惊讶,一开始也是有点质疑地问我这样真的可以吗?我自信满满地说没问题,我看了很多这样的样本都具有这样的特性,于是在将信将疑中,Rocky几乎没有对我的特征做什么改动,就审核通过并发布了。要知道,我以往的特征,Rocky或多或少地都会做一些修改,以避免误报或者以适应更多样本的查杀。可越到后来,我就越不需要他的修改了,他能够提出的意见也是非常有限了。其实,这正是他对我能力的无声的认可。

尽管启发式特征非常强大,但是它的缺点也是非常明显的,那就是非常容易造成误报。像是我们日常所处理的Case里面,如果出现了误报,那么大概率是由于启发或者主动防御特征所引起的。毕竟很多开发人员就是喜欢将代码写得和病毒一样,而我们又不可能因为几起误报而修改启发特征。这里其实涉及到一种权衡的思想,有些写得很好的也是有些年头的启发特征,在其下已经查杀了几十万个恶意样本,因此这样的特征我们是坚决不能动的,于是出现误报,也就只能将被误报的文件放进白名单里面了。

启发特征的发布

而我在一开始写启发特征的时候,如果Rocky审核没问题,也会发布出来,但是这种发布需要以Silent的形式发布,也就是这种特征只会默默地收集符合特征的样本,并不会直接报毒。大概收集一周或者半个月之后,分析师可以看一下这段时间的这条特征之下的样本是否出现了干净文件,如果全都是恶意的,那么才可以解除Silent形态以正式发布。假设其中有干净文件,那么就要进一步分析,看看是不是特征没有写好,如果是的话,则要进行修改,然后继续以Silent形式发布,收集样本再次进行研究,如此循环,直至确认没问题才可以发布。因此一条启发特征往往是要经历很长的一段时间才可以发布的,毕竟启发式特征是可以实现一对多的查杀的,一旦由于分析师个人的原因将特征写错,那么势必会出现大规模的误报,从而产生不可逆的后果了。所以Rocky也是小心谨慎,只让我写特征就好,其余的后续工作就由他来处理,偶尔也会让我看看收集到的样本是否有问题,但大部分情况还是可以的,于是也就直接发布了。而熟悉了启发式查杀特征的编写,也预示着我对卡巴的日常工作可以说是完全上手了。

启发特征对我的影响非常深远,往近了说,我在吾爱破解的视频教程比赛中所使用的就是静态启发式查杀的思想,尽管我在课程里面所用的方法和卡巴很不一样,毕竟卡巴是专业的查杀引擎,而我是自己写程序,但却可以达到类似的效果。往远了说,后来我和看雪合作,新出了一套《恶意程序分析与高级对抗技术》课程,里面的高级篇就是举了好几个关于启发查杀的例子,尽管课程里面的启发与卡巴相比依旧是小巫见大巫,但我也是希望通过我的课程的启发,能够令更多的朋友了解到这样的一种思想,从而更好地为世界网络和平做贡献。

人工智能

当时在我离职前,卡巴招聘了一个北邮的实习生,在我们这里做一些高级技术研究。这位同事所研究的内容和卡巴现有的体系又不一样。因为不论是启发还是主防,虽说是目前最为成熟的高级查杀技术,但依旧很传统,特别是当人工智能技术的兴起,那么如何将这一新技术和病毒查杀相结合,势必会成为未来我们领域的主流研究方向。如果人工智能可以达到和分析师一样的水准,一方面可以大大提高病毒对抗效率,另一方面也会彻底解放我们分析师,也会促使我们转行,让我们也投入到人工智能的研究领域。

这位新同事在我们这里主要研究的是机器学习中的初阶——模式识别的一种方法。简单来说,我们知道图像文件其实也是101010这样的二进制文件,而病毒文件也是这样。于是我们可以采用一定的算法,将病毒的二进制文件强行转化为图片形式,主要是转化为灰度图。然后利用图像识别分析算法对其进行特征的提取,也可以计算不同图片文件的相似度,以确定这些病毒图片文件是否属于同一类。

这是一个非常新颖的思路,它最大的好处在于可以无视我们所分析的目标样本文件,因为不论是哪一类的样本,最后都会被转化为图片,然后只要直接调用图像相关算法就好了。而我们传统的分析与对抗方式,不论是启发还是主动防御,都要求我们分析师要熟悉不同恶意程序的特点才行,因为不同类型的文件会具有不同的文件结构、分析方法和分析工具,这就需要我们势必要进行长时间的培训,以熟悉不同样本的分析技术。而有了这种模式识别方式之后,研究人员只要不断地去优化算法就好,将传统的分析技能转化为数学的方法。因此这样的一种方式确实是让我眼界大开。同时可以说也是让我找到了自己未来研究的方向。

现在想想,真的是非常感激卡巴斯基让我接触到了这么多的黑科技,因为我也了解过一些友商的情况,他们并没有诸如启发这样的方式,很多时候依旧要依靠最基本的哈希或特征码查杀的形式。所以我才会有这样的感慨——

在这里,我看到了究极。

跳槽?还是算了吧

这些年一路走来,我曾经遇到过几次跳槽的机会,这几次机会我都曾在第一部小说中有过讲述。比如第一次是在我卖苹果的时候。当时遇到一个职业猎头来苏宁买苹果手机,她见我业务娴熟,于是问我有没有意向应聘苹果,因为苹果打算在长春招聘一个专业销售。第二次是在我已经准备签约卡巴斯基的时候,一个猎头问我是否有兴趣做Web安全方向的工作,她要为一家知名制造类企业招聘一名安全工程师。由于我当时已经心有所属,因此也就没有答应。很多人总说跳槽是增加收入的一个很好的方式,而且如果选择对东家拥有股份并且成功上市,还能尽早实现财富自由。我觉得这种说法没错,但是距离我比较遥远,我也不属于这种投机的性格还是踏踏实实做事比较好。

而在我正式上手卡巴斯基的日常业务之后,竟然有一家公司向我抛出了橄榄枝,根据时间顺序和字母排序,不妨将其叫做J公司吧。J公司可以说是一家在业界比较知名的游戏公司了,我很早就听说过,其线下宣传也做得不错,因为我记得很清楚在我刚从苏宁离职,在沈阳准备软件设计师考试的时候,那天我去报名路上在一家网吧门口就看到了J公司的宣传展板,内容是要举办一次棋牌类的游戏比赛。

当时是J公司安全部门的技术主管,不知怎的找到了我的微博,问我是否有意向谈谈去他们公司工作的事情,然后我们就相互加了微信和QQ。他和我说之前对我多多少少有些了解,觉得我的技术水平还不错,就想问问我的意向,是否想去他们那里工作。然后还和我说,月薪是15K到25K。我说请给我点时间,让我考虑一下吧。

首先这位主管能够找到我并认可我,还是让我挺开心的,感觉也是由于自己之前做了很多的宣传,比如坚持写技术博客之类,就使得很多的前辈以及后辈都知道了我的存在。那么这也就说明了我们作为技术人员,学会如何宣传自己,拓展自己的圈子还是很重要的。另外这位主管给我的起薪就是我在卡巴的薪酬,我觉得我再努力一把,让他直接给我开出每月20K+的薪水应该也不是什么问题,加上这种游戏公司普遍经营情况良好,这样一来,年终奖肯定也会比卡巴斯基多很多。因此综合来看,我的全年收入肯定会在30W+。

其实如果单单从收入上来看,这样的待遇还是很让我心动的,当时我确实也是犹豫了一下,没想到我刚刚毕业不久,同时也是入职不久,就遇到了这样的一个黄金的加薪跳槽的机会,着实让我心中暗喜。但我之所以会犹豫,是因为我觉得Rocky对我还是挺好的,整个办公室的氛围也是不错,但是还没工作多久呢,我人就跳槽了,于情于理都有些说不过去。最最重要的是,每天驱动我工作和研究的其实是一种崇高的使命感。说实话,每天面对着那些枯燥的汇编代码以及二进制数据,相信不论是谁,不论起初有多么旺盛的斗志和澎湃的激情,都会被日常工作所磨去。可是每当我想到自己每天面对着的是全世界的顶尖骇客,我所保卫的是全世界网络的安全,就会让我每一天都充满干劲。即便每天挤地铁很烦,住的地方也不是百分百符合我的心意,没有一天休息过……这些看似不利的因素都会被我的使命感所征服。通过敲击键盘上的一个个按键,将一个个字符组合成一条条语句,进而转化为最终的查杀规则,再想想我所编写的这些规则最终会抵挡住骇客的无数攻击,从而保卫我们用户的安全,此时无尽的自豪感就会在我的心中冉冉升起,而这种感觉是只有卡巴斯基才会给我的,是其它任何企业都无法望其项背的,是值得我永远珍惜的。而且当我的指尖在机械键盘上舞动的时候,也如同弹奏出了优美的旋律。此时键盘就是我的武器,在没有硝烟的战场上,发起了与网络另一头的骇客的攻防作战……正是这样的一种感觉,才会让我有些为难,但好在,也仅仅纠结了一夜而已。

第二天上午,我就非常坚定地做出了我最终的回复,我将自己的上述感觉说与了J公司那位主管听,他应该也是觉得我态度坚决,因此就没再进行过多的说服工作。我还是非常感谢他,给了一个值得我向往的机会,同时也算是拓展了我的人脉,丰富了我的阅历。

Why Clean

众所周知,卡巴斯基杀毒软件在业界拥有着悠久的历史,它是一家俄罗斯的企业。而经过多年的技术积累,它也拥有世界上顶尖的查杀水平。因此在我的心目中,俄罗斯总部的大神们总有种高人一等的感觉。他们确实有这个资本,因为想想他们人均都是Rocky或更高的水平,我自然只有虚心请教的份。

其实我们分析师也是分等级的,比如初级就是Junior Malicious Analyst,中级是Malicious Analyst,相当于是脱离了Junior。高级是Senior,再往上是专家Expert等。我们北京的四个分析师都是属于中级,Rocky的等级我不太清楚,主要是因为他已经转为管理岗,等级可能就不太重要了。专家级的分析师基本都集中在俄罗斯总部。我本以为新入职的分析师都是中级,但直到美国一位新同事入职,我才发现他是属于Junior也就是初级分析师,也是我所见过的唯一一位初级了。

在这样的企业工作,或者准确来说是外资企业上班,我们同事之间相互交流除了使用即时通讯工具之外,更多地是通过邮件的形式。我们中国这边,相互交流自然是用即时工具,但不同国家之间,更多地是依靠邮件的形式了。想想也是,毕竟国家和国家之间存在着时差,如果没有什么特别紧急的事情,通过邮件联络就好,而邮件的形式似乎也是很多大公司所采用的交流方式。但也正是这样的一种形式,最后却成为了我们几个新晋分析师所不太喜欢甚至内心有些抗拒的东西。

正常来说,总部下发的一些通知会采用邮件的形式,再抄送一些大领导知晓。除此之外,由于俄罗斯的分析师比较负责,他们如果质疑我们对一些样本的鉴定结果,也会给我们发邮件进行询问。比如我记忆深刻的一次就是那天上午十点我准时到达了办公室开始新一天的挑战。这个时候我发现邮箱中有一封来自俄罗斯的邮件,这个人我不认识,通过Title也看不出他的具体身份,邮件的内容很简单,就是给了我一个哈希值,然后说这个样本中有部分数据并不是明文显示,而是被加密了,加上有两个友商也报毒了,而最后一行就两个单词——Why Clean

当时我内心想法是他不认可我觉得这个哈希值所对应的样本是干净的说法,想听听我的意见。想起来这个样本是我昨天分析归类的,当时我通过一些简单的判定方法以及实际在虚拟机运行的结果,并没有看出它的可疑行为。可是这个样本即便没有明显的毛病,也确实不太像是一个正常的程序,因为我完全没看出它的功能是什么。这就属于我们日常分析中最让我感到纠结的一类样本了。友商报毒这件事我也知道,但也仅供参考,还是得由我们分析师下判断的。由于我不可能在这个文件上面一直耗着,于是我就将其归到了Clean这一类中,结果俄罗斯的这位同事就不认可了。

我给他回复了一封邮件,说了一下我的判定理由,主要就是说样本中存在对自身数据的加密行为并不能作为判定的决定性依据(Critical Evidence),通过我的分析没看到它的可疑行为,友商的结论只能作为参考,所以我认为它是干净的。

其实我内心的真实想法是不能因为友商报毒了我们就要报毒啊,我们得有自己的看法,否则直接把友商的结论照搬不就好了,这样确实可以大大减轻我们的工作量,也就是以后拿到样本直接查友商是否报毒,报了的话我们直接报掉就好了,但是这样未免有些不负责吧。因此我当然还是要以自己的分析结论为主的。

我回复完以后,没过多久就收到了他的回信,这次只有一个单词,那就是interesting,然后就直接告到Rocky那里了。这个时候我才知道,原来他是我们病毒分析组的老大,是Rocky的上司。Rocky了解完前因后果之后,告诉我说不应该这样回复他,然后就让我还是把这个样本报掉吧。

事后想想,对于这种既没有明显的恶意行为,又没有明显的正常行为,其自身还拥有加密数据,加上该样本的流行度极低,友商也有报毒的,直接将其报掉确实是正确的选择。我通过这件事也算是增长了见识,对我自身的分析判断能力也算是一种提高了。但也正是由于这件事,我终于发现俄罗斯的一些同事不论是和我同级的还是比我等级高的,似乎都喜欢在不和你进行讨论的前提下直接告状。

后来我还了解到,对于“渣兔”和Seth而言,他俩也经历过很多类似的事情,所以很多时候他俩也是睁一只眼闭一只眼,既然俄罗斯人认为我们这边的样本分析结论有问题,那就直接按照总部的意思办就好了。但于我个人来讲,尽管我觉得我个人的心理素质很强大,但也不想给Rocky添麻烦,从而出现一级压一级的情况,所以每次的分析判定我也会更加小心谨慎,每天上班打开电脑查看邮件也都是有些战战兢兢,只要没看到有总部的邮件,我都会长长地舒一口气,然后才投入到当天的工作中,也算是一种心理阴影了吧。

而在这样的阴影之下,后来又发生了一件让我左右为难的事情。我记得很清楚那天是周六,需要我上线处理日常的Case,而Seth则做一些高级研究,编写Snort特征。从下午两点开始,我发现系统陆陆续续地提示了一些可能的误报信息。每隔几分钟就有白名单的文件被报毒了,不敢怠慢,我赶紧看了一下原因。原来是一位俄罗斯的分析师写了一条启发特征,这条新特征就在不断地查杀白名单的文件。我看了一下那些被报毒的程序,实在没看出它们的恶意行为而这个分析师所写的特征又十分抽象,我一时没理解它的查杀原理。因此我就只能为这些被报毒的白名单文件“加金水”,添加强特征以证明它们都是干净的,这样就不会被任何特征查杀了。于是那天直到我下班我就一直在干这件事也算是最忙的一个周六了。

周一的时候,Rocky来上班,可能是有人给他发邮件提到周六的这件事了吧,毕竟如果我们的新特征会一直匹配白名单文件的话,会对我们病毒库的发布造成影响。而如果病毒库三四个小时都不能更新,就算是一次严重事件了。于是他就问了我前因后果,我解释了一下,后来他问我既然出现了这么多的误报,为什么我不把这条特征给禁用掉。我心想虽说我拥有启发权限,但俄罗斯人编写的特征我哪敢禁掉啊,万一特征里面包含有我未能理解的查杀技术,从而漏报了大量恶意样本可怎么办,这样总部那边岂不是又要告我状了啊。但Rocky和我说特征该禁还是要禁掉的,影响病毒库的发布是大事。我心想好吧,想起“渣兔”曾经跟我说过他也遇到过类似的事情,当时就果断将特征禁掉了,结果俄罗斯人就直接去投诉了。因此,这类事情可以说是我在卡巴工作时遇到的最为纠结的事情了。

易语言

从我之前的描述中,相信大家也能看出俄罗斯人多多少少还是有些高高在上的感觉的,尽管我遇到的更多还是被投诉,但其实我也曾遇到过一次被感谢的事情。

那一天,Rocky给我发信息问我能不能使用易语言写一个Hello world程序给俄罗斯人发过去,他们想研究一下这种语言编译出来的程序的特点。熟悉我们这行的朋友应该都知道,易语言是由我们国人研发的,为了解决很多开发者不懂英语,记不住英文单词,从而对开发望而却步的情况,就使用纯中文来实现程序开发的一种语言。它的本意是好的,但却被不少心怀叵测的人给恶意利用了。这些人本身没太学过英语,遂专攻易语言编程,为了挣快钱,就用它来编写病毒木马以及游戏辅助等程序,因此在黑灰领域就出现了不少易语言类的恶意程序。而易语言本身编译出来的程序天生自带加密功能,分析起来很麻烦,和C语言写出来的程序很不一样,因此易语言的逆向也是一门学问。现在俄罗斯分析师也注意到了这个情况,就想深入研究一下,打算从最简单的Hello world程序开始。但是他们不懂中文,不可能去学中文来入手易语言的研究,正好我们中国分析师懂中文,遂求助于我们。

其实我那个时候也从来没用过易语言,也仅仅是听说过而已。我在虚拟机中安装好了开发环境,先是问了一下“渣兔”懂不懂怎么写程序,他说他也不会。我之所以问他这个问题,是因为我一直怀疑他精通游戏辅助的写法,而他说他不会,我倒是蛮惊讶的。因为起初是有一次他把他的U盘借给我了,我发现其中有不少关于辅助的程序和资料,后来我也曾旁敲侧击地问他对于辅助的看法,他回答得也是模棱两可,让我感觉他就是不想正面回应这个问题,于是也就加深了我的怀疑,我觉得他就是懂辅助的原理,那么大概率就会使用易语言了。但他说他不会,没办法,我也不能强求,于是只能自己动手丰衣足食了,还好网上资料比较丰富,我很快就写了一个最简单的Hello world,测了一下没问题,就给俄罗斯人发过去了。然后他们就给我回复了一句“Thank you”。

这是我第一次也是惟一一次收到总部的感谢,尽管只有两个单词但也有种自己的工作被认可的感觉。当时也希望自己未来能少收甚至不收到投诉,而多一些认可与感激。

灰色样本

在我们日常的分析工作中,除了我之前提到过的最常见的干净程序以及恶意程序以外,在这种看似“非黑即白”的世界里面,其实还存在着一种介于二者之间的灰色程序。比如说骇客工具、游戏辅助以及那些严重影响用户日常工作和生活的广告程序等。这类样本也需要由我们分析师判定和归类,但与恶意程序相比所不同的是,一般情况下,我们的产品并不会直接将这些程序查杀掉,而是会弹出一个提示框,由用户去决定这些可疑程序的去留。

其实对于这些样本的判定,我觉得还是非常考验一个分析师的魄力的,此时分析能力已经是次要的了。因为处在当今这个互联网上啥啥都免费的时代,很多公司为了创造收入,只能从广告以及推广上做文章,于是,各种恼人的广告铺天盖地而来。定时或者不定时地在我们屏幕的正中央或者右下角弹出推广信息,这些弹窗有时还会做一个假的关闭按钮,这样就会令很多小白用户不知所措了。很多时候,这类程序还会采用恶意程序经常采用的自我保护措施,小白用户即便想要卸载,也很难将其清理干净。但考虑到这些程序的开发公司很多都是正规的大厂,为了不必要的麻烦,我们也不好直接将其查杀掉,所以会将其列为灰色程序,;由用户选择处理的方式。而我之所以在一开头用了“魄力”这个词,是因为如果分析师真的不小心将人家的干净程序列为了恶意的,就算是列为灰色的,那么极有可能会收到该公司对我们的起诉了。即便你真有确凿的证据证明人家的软件有问题,可是人家可能依旧会起诉你,欲加之罪何患无辞,闹上法庭那就是一件很麻烦的事情了,因此在我看来,我们这一行还是有一定的风险的。每发布一条特征,都需要经过再三的斟酌。

两个和灰色程序相关的Case

而这里既然谈到了灰色程序,;我曾经遇到过两件事可以和大家分享一下。

第一件事是在我上线处理日常Case的时候遇到的。没记错的话应该是周六,还是我国的一家软件开发公司,他们给我们发邮件说卡巴将其列为了恶意程序,被直接查杀了,于是就问我们是否可以解除误报。我先是简单看了一下,个人认为直接将其列为恶意确实有些过头了,我觉得调整为干净也未尝不可,尽管它也存在一些恼人的成分在里面。谨慎起见,为了避免出现不必要的麻烦,我还看了一下起初为其进行归类的分析师是谁,发现是美国病毒分析部的负责人将其列为恶意的。尽管我也有关掉这条查杀特征的权限,但我觉得还是和这个分析师沟通一下比较好。由于这个问题有点复杂,我也算是绞尽脑汁,把考研以及六级英语的作文技巧都搬出来了,以“总-分-总”的形式写了一篇好几百字的E-mail,交代了前因后果,说了我的分析看法,最后说是否需要调整查杀结论由美国分析师决定。再三检查确认无误之后,忐忑地点击了发送按钮,然后就下班静待结果了。

由于存在时差,因此美国同事也不可能立刻回复我。第二天尽管我休息,但我依旧来到公司做一些研究。打开邮件系统,发现美国的同事回复我了,写得虽然比较简略,但也把结论说得很明白,那就是经过他的再次分析,决定将其调整为灰色程序,并且他已经修改完了。我回复了一句Thank you,然后赶紧又给那家公司回复了处理结果。也许和他的预期还是有些差距,但至少我们的产品不会直接将其查杀掉了,因此他多多少少还是比较满意的吧。

经历了这件事,我最大的感慨就是终于明白了考研以及四六级英语出题人的良苦用心。感觉当初备考时学习的那些作文技巧确实是可以运用于实际的书面交流中的,而“总-分-总”的形式也确实是一种比较科学的表达方法。后来回到珠海当了老师,我也和每一届的同学分享我的这个经历,从而鼓励大家要好好学习,特别是英语的学习,不存在没用的知识,只存在不会运用知识解决实际问题的人。

关于灰色程序的第二件事发生在Rocky身上。众所周知,在我们日常的工作和学习中,只要是使用电脑,那么就免不了和压缩包打交道。因为很多时候我们需要处理的文件会很多,如果不打个包的话,传输以及处理起来就会很不方便,也就是说,解压缩软件在当今社会拥有着广泛的使用群体。除了比较老牌的winzip以及winrar以外,这些年也是出现了很多后起之秀也想来分一杯羹。其中既有大公司,也有小企业。而不论是老牌的还是后来者,大家普遍采取的是免费的模式,采用弹出式或者其它广告形式来盈利。当然你也可以一次性花钱买断,这样就不会有弹出广告了。

我记得很清楚,一次我在处理线上Case的时候,收到一条由我们的技术支持发来的解除误报的请求,说是一家公司开发了一款压缩软件(我这里姑且将其叫做X-zip吧),然后就被我们的产品提示为灰色的广告程序了。那家公司觉得有些冤枉,于是就联系了我们的技术支持想改变我们的检测结果。一般来说,拿到这样的Case,我们分析师首先得尝试复现一下这条检测,以确认我们的产品确实会检测该软件。我发现,该软件是被一条启发式特征给检测到的,这条特征还很新,是几天前发布的,作者是Rocky。

我觉得以Rocky的水平,肯定不会无缘无故地就将某个公司的产品直接查杀的,其背后肯定有确凿的证据。我看了一下他写的那条特征,其检测原理是只要某个程序体内包含有X-zip的完整名字,特别是在安装的过程中出现了这个名字,那也就说明它是X-zip公司推出的软件,于是就将其判定为灰色广告程序了。那么这也就说明了,Rocky就是想干掉该软件。

稳妥起见,我又通过多引擎扫描看了看兄弟厂商的检测结果,发现还真是有不少大厂将其列为了灰色程序,严重的还有直接将其定义为恶意程序的。这样我就更加确定了我们对这个程序的检测结果是正确的。后来也经过与Rocky的商量,我就回复我们的技术支持说这个检测结果是正确的,它就是灰色的广告程序。

这里我提到了多引擎扫描,其实除了卡巴以外,从检测结果的准确性和及时性这两个方面来看,我最为认可的友商就是NOD32了,有些时候,他们获取到的恶意样本比卡巴还早,使得他们的查杀速度遥遥领先于其它厂商,而且还基本不会出现误报的情况,并且听说他们的病毒库还很小,特征很精致,一条特征可以匹配到很多个样本,让我很是佩服。

而我刚才提到的X-zip这款工具,本以为那是我唯一的一次与它的交集,但没想到后来我到高校当了老师,又遇到了一次。当时我是在检查大家在线提交的作业,我发现一个同学上交的是一个html文件,而我要求大家要提交文档的形式,于是这就让我感觉很奇怪。打开这个网页文件,发现是一个推广页面,意思是我如果想查看这个同学的作业,需要安装一款解压缩软件,而为了获取我的信任,它还列出了这个同学所提交的文件名,确实是我的这次实验要求的内容。而之所以要安装这款软件,它的解释是因为我当前的解压缩工具有些古老了,而他这款可以实现超高压缩比,并且还宣称自己通过了主流杀软的验证等,说得还是挺让人心动的。我好奇地点了一下该工具的下载链接,发现下载下来的安装文件正是X-zip。我把这个安装包上传到VirusTotal进行多引擎扫描,发现在总共73家杀软中,有52家将其列为了恶意或者广告类程序(Adware),而大厂所定义的样本查杀名称(Verdict)里面也包含有X-zip,说明这些大厂绝对不是误报,而就是想干掉它,否则不会取一个这么准确的名字。

除了使用多引擎以外,我还上网搜了搜有关X-zip的新闻,发现之前还有一家国内的安全公司对这款软件做了详细的分析,以证明它确实存在着一些恼人以及恶意的行为。那么现在结论就很明确了,这就是一款有问题的软件,自身行为有问题,诱导用户安装也很有问题。而它这种逐步获得用户信任的方式,也可以理解为是一种社会工程学技巧,我后来甚至还在我的《计算机网络安全》这门课上的《社会工程学》章节以它作为例子为大家做了分析。而由此引申开去,其实当今网络上有非常多的软件也会有类似的诱导行为,比如我明明想安装谷歌浏览器,结果搜索出来的前几条结果根本就不是谷歌,排在前几位的浏览器也会说自己采用了非常先进的技术,甚至图标都会和Chrome如出一辙,使得很多人一不小心就安装错了。这种例子在我身边比比皆是,因此处于当今这样的一个网络时代,时常怀有戒心,擦亮双眼真的非常重要。

远控工具

关于远控工具的故事也是源自于一个Case。这次也是我在线时候,直接收到了K公司发来的邮件,说是我们的杀毒软件直接把他们的产品列为远控木马了。为了证明他们的清白,他们在邮件中甚至还附上了他们公司的工商登记证书等材料,说明他们是合法合规的企业。

看到这些,我突然有点惊讶。因为K公司的这款软件在很早以前就是非常知名的远控木马,很多入门级别的分析文章都会拿这款木马作为例子,也是杀软重点查杀的对象。我在最初接触恶意程序的时候,也在视频里看过这款木马的使用方法和查杀方式。它可以很轻易地生成远控客户端,然后经过黑客的免杀处理,辅之以社会工程学技巧,就可以使网络上的无数用户中招了。没想到K公司今天竟然把它商业化了,成立了公司来推广这个产品,真的是此一时,彼一时,三十年河东,三十年河西啊。

我也不敢懈怠,由于Rocky那天不在,我就问了一下Seth关于这种Case的处理方式。他和我说我们卡巴认可的远控工具只有三四种,其余都是需要列为木马干掉的。因此只要回复说我们的检测结果是正确的就可以了。我觉得也对,不能因为人家成立了公司,我们就要给它解除检测,毕竟远控工具是一种非常敏感的软件,是黑客常用的攻击工具,一旦我们放松了警惕,市面上就可能涌现出一大批类似的程序了,那样的话可就糟糕了,不如一开始就高标准严要求,绝对不能开这样的先河。

年会X吉姆尼

时光飞逝,2016年很快就到了尾声,时间不知不觉就来到了2017年的一月份。我毕业已经有半年多的时间了,而加入卡巴也有十个月了。由于西方要过圣诞节假期,而我们的很多客户也处在欧美,因此那段时间我们的Case量很少。另外,估计黑客也在过节吧,毕竟是难得的休息时间,因此我们分析师当时分析的新涌现出来的恶意样本也是寥寥无几。

一般来说,企业都会在年终搞一个年会,租一个场地,大家吃吃喝喝,做做游戏,演演节目,乐呵乐呵。比如在2009年的年初,当时我还在老师的企业卖书,我们的老大就在一家酒店租了个很大的场地组织了一场年会。当时每个部门都出了至少一个节目,比如我们库房就是用手语表演小虎队的《爱》,我个人还表演了一个纸牌魔术,同时我还被抓出来当作主持。最开心的是我当时在抽奖环节还抽中了一等奖,也就是一部诺基亚的1110手机。尽管那款手机能实现的功能非常简单,也就只能打电话和发短信,还是个黑白屏,但我就喜欢这种简约的款式,后来也是用了蛮久,直至被诺基亚5800所取代。

而在2010年初,我已经加入了苏宁电器,当时的年会是在一家更大型的酒店举办的,摆了N桌,同样是每个部门都得出节目,我就表演了几个魔术以及跆拳道的破板表演,其中一个魔术由于道具原因还没呈现出效果,但总体上还是挺好的。

卡巴的年会是在2017年的年初举办的,这次我们是去一家度假村。上午我们集体坐大巴从公司出发,下午举办的活动。也是摆了N桌,这次就不需要表演节目了,大家更期待的是抽奖环节,比如iPhone、iPad以及笔记本电脑等,在我看来公司也是投了不少钱在奖品方面,可惜我啥也没抽中,我们部门也没人中奖。由于我们部门也都不是爱玩的人,因此晚上的卡拉OK环节我们就没有参加,各自回房间了。当时我是和“渣兔”一个房间,我发现他回来以后竟然还找了几张纸边听录音边抄写英语单词,我就很佩服他的好学精神。不知道他仅仅是想提升自己的英语水平,还是说以后有出国的打算。第二天上午我们是自由活动,然后下午就回公司了。

其实我个人属于非常不爱玩的人,喜欢安静,因此我所经历的这三家企业的年会并没有给我留下多深刻的印象,唯一期待的也就是抽奖环节。如果可以选择的话,我宁愿选择直接放假在家宅着发呆。当然了,如果参加年会并不需要被抓出来表演节目,那么我也是能够接受的。

其实这次年会有件事对我产生了一定的影响。那就是在去往年会的路上,Rocky并没有跟我们一起,而是自己开车去的度假村。我早就知道Rocky的车是一辆越野车,他朋友圈时不时也会分享一些假期去沙漠开车冲坡的视频,很是热血,很是阳刚,于是我就一直想见见他的车。来到度假村和Rocky见了面,我说想看看车,于是我们几个就一起来到停车场参观。可能由于Rocky平时“豁车”比较厉害吧,他的车头有些新伤,很多地方都损坏了,一个大灯都破了,他说要等假期去修修,其实从之前的聊天中,我就得知他的车已经修过几次了,不是这里磕了就是那里撞了,也许这就是越野车的命运吧。

Rocky的车是一辆铃木吉姆尼,作为入门级别的越野车还是非常不错的,他那款性价比高,越野能力超强。而目前最新款的吉姆尼虽然外观更加方正酷炫,但是受到各方面影响,加价情况还是比较严重的,刚推出的时候甚至一度炒到了30W人民币,要知道Rocky那款也就十几万。他那款吉姆尼如果硬要举几个缺点的话,一方面是发动机动力有待提高,而Rocky后来也确实进行了更换,配置了一台性能更加强劲的发动机。其实这也就说明,玩越野的人,往往后期在车辆改装上的投入还是蛮多的,甚至可能远远超过当初买车的价格。另外,吉姆尼的空间也有些偏小,第二排几乎不能坐人,但这对越野却是一个优势,因为小巧的车身反而便于通过复杂的路面环境。因此尽管最新款的吉姆尼要30W,依旧有不少人为了情怀而买单。想想同等价位,偏重家庭以及公路舒适性的话,完全可以买一辆丰田汉兰达了,而且这款车还非常保值。或者必须要买硬派越野车,也可以考虑三菱帕杰罗劲畅了。但不管怎么讲,萝卜白菜各有所爱,其实我也蛮喜欢最新款吉姆尼的设计的,很方正,是硬汉的感觉。

尽管我当时并没有驾照,但是我觉得越野真的是一件很酷的事情。当时也想着自己以后也应该把驾照考下来,买一辆越野车,假期也像Rocky一样去探索未知的世界,甚至还可以去最偏远的地方做慈善,成为志愿者去做救援,毕竟越野车不惧任何路段,皮实耐造,我觉得这才是人生,是直到现在我依旧想要完成的一个目标。因此,看了Rocky的吉姆尼,了解了Rocky的经历,可以说在我的心中埋下了一粒小小的种子,我也在静待它的生根、发芽、开花与结果。

过年值班

我在之前的故事中和大家说过,我在卡巴斯基的这一年半的工作时光中,是基本没有休息过的,即便是周末,我也会到公司做一些研究,而即便是中秋、国庆这种法定节假日,我也会主动申请加班,毕竟三倍工资还是比较诱惑的,即便是春节也不例外。

回想起来,在我毕业之后似乎仅仅回过一次珠海,也就是我毕业那年的七月,由于要办理档案迁移,于是我就休了个年假,回珠海办理档案的接收工作。其实流程也很简单,无非就是到我户口所在地的人才中心办理一下接收业务就好。可能很多朋友并不在乎自己的档案,毕业之后连自己的档案在哪里都不知道了,除非考公务员事业编等才需要档案来计算工龄、核实表现、确认干部身份等,否则也许我们一辈子都不会和档案打交道了。说起来现在的政策也还真是在不断地进步,毕竟在我本科毕业,档案还留在吉林省人才中心的时候,每年是需要收取保管费用的。比如我当时在长春考研,按道理应该是在户口或工作所在地报考,但当时幸好工作人员说我档案在这里也行,我就着急忙慌地去省人才开具了档案证明,然后才有惊无险地报了名,考了研。当时为了开具证明,我还补交了自我毕业以来这段时间的保管费用。后来考上研,档案迁移到了北京,毕业后又迁回珠海,还真是蛮折腾的。

言归正传,当时决定留在卡巴值班的有我和“渣兔”。没记错的话,我俩应该是提前休息的,也就是在年三十之前赶紧利用调休或者年假来休息几天,然后从三十开始上班。而Rocky、Seth和Yang则是在我俩提前休息的时候上班的,他们仨则完整地休了一个春节假期。话说我还真是和春节值班有缘,因为我的上一份工作,也就是还在苏宁卖苹果的时候,那次的春节我就坚守在工作岗位上,每天都能卖出一部手机,提成也是不少,而这次我又坚守在了工作一线。

我觉得春节值班有个好处,那就是比较清静,大街上没几个人,公司里也没几个人。特别是在交通方面,在过年那几天,从雍和宫到我住的立水桥,一路上都没几个人乘坐地铁,我也终于有座位可以坐着了。要知道,以往是根本不会让我有这样的机会的,能不被挤得双脚悬空就已经谢天谢地了,而我也是第一次真正的“坐”地铁。除了公司没人以外,其实我住的地方也仅仅剩下我自己了,其余的租户也都回家了,如同整个两层复式都是我租下来的一样。但是人少会带来一个坏处,那就是公司楼下的7-11也不会准备那么多那么丰盛的食品了,就别说我最喜欢吃的黄焖鸡米饭了,就连最常见的鱼香肉丝盖饭、土豆片盖饭都没了,仅仅有诸如鸡蛋炒饭这种最简单的餐品,而且数量也极其稀少,去晚了也就啥都没有了,更多的还是那种紫菜饭卷,但这种饭卷一方面是吃不饱,另一方面也不咋好吃。好在那几天我去得都比较早,还是可以把午餐和晚餐都买到的,早餐吃个饭卷喝个奶也还可以。但“渣兔”由于去得比较晚,加上他不像我是一大早就把一天的吃的都囤下来,而是买一顿吃一顿,因此他基本也就只能吃泡面或者将就点零食了。

总体来看,过年那一周的值班除了吃饭有些简单以外,其他也都还好,Case也不是很多。其实那次值班给我印象最深刻的一件事是在年初一的时候,根据传统习俗,雍和宫在农历新年的第一天会有祈福活动,听说有人在刚听完新年的钟声就直接过来排队了,就是为了抢到头柱香,为新年博得一个好彩头。我也是提前收到了通知说当天雍和宫地铁站会关闭,估计是为了保证祈福活动的安全起见吧。因此我也就只好提前一站下车,然后走路去公司了。没想到我刚出地铁站,就发现地面上已经排了超长的队伍,一路延续到雍和宫。加上封路限行等措施,导致整个队伍行进速度非常缓慢,还好我是有所准备,比平时早了半小时出门,预留出了很多时间,加上我一路闪转腾挪,终于提前几分钟有惊无险地到了公司,和美国同事做了交接。也算是丰富了我的经历,间接参与了祈福的活动。

差点捅娄子

由我之前给大家看的排班表也能发现,我们每天上线处理Case,都是“一老带一新”的模式。能够入职卡巴斯基,就算是新人,那么在病毒分析这方面的技能应该都是没问题的了,但是每天的Case不仅仅是只有病毒分析,我们的一些客户会针对于我们的产品问一些更加深层次的问题,或者遇到病毒库宕机的情况,我们甚至还需要给俄罗斯的值班工程师打电话进行处理……诸如此类的Case,我们新人往往会束手无策,只能让老员工帮忙出面解决了。所以过年期间,“渣兔”能和我一起值班,也就相当于是吃了一颗定心丸,让我不论遇到什么样的Case都不怕了。

但没想到老员工偶尔也会有粗心的时候。过年值班中的某一天,我和“渣兔”共同上线处理Case,可能由于人少比较无聊吧,他时不时地会自言自语几句,我就隐隐约约听到他说了一句:哎呀,竟然敢自删除,果断报掉呀。我当时也没太在意,估计是因为他发现了一个拥有自己删除自己这样行为的程序,就觉得这个程序有问题,于是就直接拉黑放到病毒库了吧。之前我也和大家聊过,我们卡巴拥有非常严格的特征发布前的审核机制,每提取一条新的特征,都会在庞大的白名单数据库中进行匹配,确定没问题才会发布出去。而就在“渣兔”自言自语过后不久,我突然收到了一条系统紧急提醒的Case,说是有一个特征匹配到了大量白名单的文件,需要马上查看原因。而这条特征正是“渣兔”提取的。

不敢怠慢,需要赶紧分析这条特征所对应的样本文件,找到并拖进虚拟机运行一下,发现这似乎是一个由某极其知名厂商开发的升级程序,有美观的界面,有完整的进度条。我心想现在的黑客都这么用心了吗?模仿得也太像了吧,和我之前分析过的恶意程序完全不一样。常见的恶意程序只要实现恶意功能就好,没有谁还会为它做一个界面出来的,这种“骗人骗到底”的情况,我还真是第一次见。而当这个进度条走完以后,似乎觉得我不用升级,于是也就自删除了。那么整个流程下来,也就只有这个“自删除”操作确实有些奇怪,但也不能因此就认定它是恶意的。又看了一下数字签名,确实是那家知名厂商的,我心想难道现在连数字签名都能伪造了吗?稳妥起见,我直接到该公司的官网下载了一个升级程序,一运行,发现它的界面和这个“病毒”完全一致,运行完之后同样有自删除操作,这么大的厂,在它官网下的程序不可能是病毒吧。至此,我终于确认了,这家公司为了不给用户的电脑产生过多的垃圾文件,都会在升级完成之后,很贴心地将升级程序删除掉。由于是“渣兔”提的特征,所以我还是和他说一下情况比较好,由他来禁掉自己的特征,这样也算是解决了这样的一条报警Case。

幸好我们的审查机制比较严格,我没有因为是老员工提取的特征而放松警惕,否则必将导致全世界范围内的大规模误报了,真要这样的话,那家公司势必要起诉我们了,从而出现一大堆的麻烦事。突然感觉,自己才是整个环节中最坚固的防线。

买房

一提到买房,相信会令很多同龄人以及九零后头疼不已。随着房价的不断升高,使得很多人每月收入中的绝大部分都要贡献给银行用以偿还贷款。就使得本来可以过得很滋润的生活突然变得捉襟见肘。大城市尤为如此,于是也就涌现出了不少值得的讨论话题,比如究竟应该是租房还是买房?究竟应该在大城市蜗居,还是在小城市住豪宅?像是我们公司,或者很多在北京打拼的人,会选择在北京与河北的交界(比如燕郊)买一套房子,然后每天起早贪黑地赶地铁倒公交上下班,也是实属无奈之举。

而对于我来说,其实也摆脱不了“房奴”的命运。再早以前,我是希望留在长春工作、定居的,当时长春的房价也还不贵,于是家里就给我在长春买了一套房子,当时买的是期房,也就是还没有盖起来呢,我们就已经买下来了,相当于当时我的那套房子的位置还是“空气”的形态。其实买期房还是需要很大的勇气的,因为大家可以去搜一下,全国各地都有那种买了期房以后,开发商跑路了的情况。有些是盖到一半就不盖了,有些是已经盖起来了,但是门窗水电啥都没有,还都是毛坯房呢,开发商就跑路了。看到有些业主即便是这样依旧咬着牙硬着头皮住了进去,我都有些心酸,对于他们来说也没办法,毕竟一辈子的积蓄都投到房子里了,不住也得住了。这也可以看出来,买期房还是需要很大的勇气的。相比较而言,买现房就比较保险了,但是结合各地的楼市情况,很多房产卖的基本都是期房,而且刚一开盘就被抢光了,哪还轮得到你等房子盖起来再买呢?就算盖起来以后有二手房可以让你买,估计房价已经至少翻了一倍了。因此,我觉得买房也是一门学问,是需要权衡多种因素综合考虑的。

回到我在长春买房的时候,当时我的房子是当地一家非常知名的开发商的楼盘,在长春已经是深耕多年了,因此出现烂尾情况的可能性极低,但即便如此,当时依旧出现了交房逾期的情况,就直接打乱了我后面的计划。比如我考上了北京的研究生,也留在了北京工作,于是也就没有留在长春的打算了,更何况长春也没有我这样的职位。所以等交房之后,我就决定把长春的房子卖掉,打算在珠海买一套,毕竟我没有北京户口,北京房价也是奇高,倒不如在我长大的地方买了,也许以后会回到珠海工作和生活,至此永远定居呢。

在我读研假期的时候,其实就时不时地会逛逛珠海的楼市了。珠海的房价也是一直在涨,我也很后悔为什么不早点在珠海买房。现在要买的话,必须要先把长春的房子卖掉,这样才有钱在珠海买的。好在长春的开发商比较出名,加上我的还是毛坯,和新房子没有任何区别,因此总体上来看,还是比较好卖的。可惜的是当时长春房价几乎没涨,因此我基本也是原价卖出,我觉得对于房产而言,没涨就是亏的。

记得我是在春节值完班以后,休了几天的年假,回到珠海买房的。当时市区的新楼盘已经是比较贵的了,所以家里也在想要不买一个老小区,觉得也不错。可我觉得老小区未免也太老了,估计比我岁数都大了,楼房旧得一塌糊涂,车位也比较稀缺,因此就没同意家里的建议。最后,我选择的是稍微有些偏远的一个地方的新楼盘。尽管不在市中心,但周围的配套设施还是比较丰富的,距离高铁站也不远,这就大大地方便了我的出行,在未来的故事中我还会提到这件事。

另外,房子的布局还是比较合理的,这一点就比我之前走的几家大开发商的楼盘要好了。但唯一的不足在于,尽管是现房,但由于还没有通过验收,因此什么时候交房也就变得遥遥无期了,加上又是小开发商,因此我们心里面多多少少还是有些没底的。不过现在也管不了那么多了,手上的钱也仅仅能买这里的最小户型,还得背负上30年的房贷。贷款的审核也挺严格,需要提供我工资卡的流水,这些我之前在北京的时候就都已经准备好的了。选了个心仪的楼层和户型,一切也就尘埃落定,接下来就只要面对每月沉重的贷款了。

我认为贷款反而是我前进的动力,需要我不断拼命努力地去赚钱,而不是直接躺平,这也可以说是生命和奋斗的意义,从此我就有了自己的小窝,也在为这个温馨的小窝而拼搏。 我希望自己的小窝能够有间书房,这里面有到顶的书柜和丰富的藏书,还能有个小梯子让我登上书柜去取书。无需很大,只要能让我流连于书海之中,领略浩瀚的经典,那便心满意足了。若有浓香的咖啡与舒适的沙发,我就能让身体一直驻留在这小小的空间中,而让思绪飞去很远很远的地方。不由得想起莎翁的名剧《哈姆雷特》中的一句话——

即使把我禁锢在果壳之中,我仍然自诩为无限的宇宙之王

就是这样一种感觉。

我还希望能够有一间足够大的阳台,平时种些花花草草在这里,为生活添几分情调,摆上小桌和小凳,品一品香茗,摆一摆棋局,领略古人的智慧,感悟生命的美好……

尽管我当时依旧在北京上班,距离我能正式入住还遥遥无期,但至少是有了盼头有了期许,而不再是四处漂泊流浪的状态,让我终于有了自己的归宿。

WannaCry

如果大家对于科技互联网圈子的新闻比较感兴趣的话,相信会对2017年5月的“WannaCry勒索病毒”事件记忆犹新,因为这个病毒在当时的全世界范围内掀起了极大的波澜,众多的企事业单位深受其害,造成的金钱和数据损失难以估量,从某种意义上来说,它甚至引领了勒索病毒新一轮的爆发浪潮。而通过这样的一次爆发,也让我对于卡巴斯基的技术实力有了更进一步的了解。

我记得很清楚,爆发的那天是周六,没记错的话Seth那天有事,就请假没来,只有我自己在公司值班。我大约九点半就到了公司,按照惯例先打开邮箱,看看有没有人告我状。这个时候我发现有一封俄罗斯总部给我发来的邮件,发信人是我们病毒分析部轮值组(Shift Group)的老大。看到名头,我先是心里一惊,这个领导应该是专门负责管理我们每天上线的分析师的。但不管怎样,我也是做好了道歉的准备了,心里也在拼命回想自己到底是分析错了什么东西。

打开邮件,发现内容仅仅是通知我一下,说是在昨晚有一款勒索病毒开始爆发,今天在我轮班的时候肯定会收到全世界范围内的询问邮件,这个老大让我按照一定的话术进行回答。比如我们卡巴已经发现了这个威胁,并且已经写出了分析报告,让我到时候可以把报告链接发给询问的用户。最后还说,我们可以回复用户说卡巴已经做了妥善的处理,已经可以查杀这款勒索病毒了。

其实这个时候我并不知道WannaCry这件事,也不知道它已经开始肆虐了,毕竟爆发的时间在我国的深夜,目前应该还属于初期,因此相关新闻还没有那么快曝出来。我回复了一句已收到,然后点进链接看了看总部工程师写的报告,发现俄罗斯人的办事效率还真是高,在这么短的时间内就把这款病毒分析得明明白白。然后我还发现,总部的启发组老大已经写出了相关的启发式规则,并且已经发布出来了。看了一下规则,发现他写得非常抽象,主要是查杀一堆二进制代码,并不是我这个水平能够看明白的。这也让我感受到了公司对这次危机的重视,也让我心里有了底,感觉自己今天只要答疑就好了。

十点钟准时交班,果然,陆陆续续就有一些客户和技术支持发来问询的Case,我也是按照领导的要求做了标准的回复。临近中午的时候,Rocky还给我发来信息问我情况怎么样,我说已经按照要求在做了,他听了之后也没说什么,看样子还是挺放心的。Rocky当时在外地参加一个活动,也无暇顾及我这边。我也有信心处理好今天的Case,卡巴斯基将这8小时交给我,那就放心好了。

而这一天的值班,都非常地平淡,我真的完全没有感受到WannaCry掀起的波澜。直到下班后看了一些报道以及一些后续消息,才知道它的厉害之处。几天后,我也是突发感慨,遂写了一篇文章来说说自己对这次危机的感觉,我就把全文放在下一小节里面了。

我的感慨

这几天看到网上对WannaCry勒索病毒讨论得沸沸扬扬,不免有些感触。

其实该病毒的这次爆发,完全可以类比N年前“熊猫烧香”爆发的情况。也就是国内杀软纷纷歇菜,让本来就没什么高超技术含量的病毒横行于世。所不同的是,这次在病毒横行的时候,假设有技术爱好者出来质疑国内杀软的查杀水平,那么该杀软厂商的公关人员就会第一时间跳出来辟谣,内容无非是自己被诽谤了,要采用法律手段惩处造谣者,我们最新的病毒库已经可以防御该病毒,我们的杀软是最安全的等等。也算是借机蹭了一下热点,为自己的产品打了广告。并且还会尽可能快地将病毒分析报告写出来,可能还会放出专杀工具或者解密工具之类,表明自己的应急响应工作做得还是不错的。

当大家都在热火朝天地讨论这款病毒的逆天之处的时候,我甚至都有点不好意思和卡巴斯基的俄罗斯技术大神们讨论这件事,因为很可能当我眉飞色舞添油加醋地把这件事告诉他们之后,换来的仅仅是一个轻蔑与不屑的“哦”。

用“云淡风轻,处变不惊”来形容那些技术大神,再贴切不过了。毕竟,他们确实有充足的资本表现出不屑的态度。为什么这么说呢?

前两天在卡饭论坛,有一个帖子出名了,叫做《WanaCrypt0r勒索病毒:20款杀软主防测试》。作者在自己的测试环境中,在断网并且只使用去年12月份的病毒库的前提下,测试了国内外知名杀软厂商对WannaCry勒索病毒的防御情况,结果是只有6款杀软能够成功拦截住这次的威胁,卡巴斯基位列其中。

于是帖子的作者得出了一个非常重要的结论,也就是之前传闻说,世界上几家顶级安全厂商的技术水平领先国内N个月,看来是真的。

杀软即便半年不更新,用户的计算机依旧是安全的。这就是不屑的资本。

有公关团队说这种测试方法不科学,因为现实中杀软的病毒库当然会经常更新,当然需要联网不断升级来保护用户的安全。

这件事说得没错,但是有个很重要的问题也许大家没注意到,仅仅通过病毒库的更新来对抗恶意程序,那么杀软永远只能处于后手地位。在新病毒大规模爆发的时候,杀软厂商的反应再快,那也是需要时间的,也是在无数用户中招之后,分析师获取了样本,加入黑名单,才能更新病毒库,才能真正保证自己用户的安全。

说实话,这类杀软厂商估计还活在史前时期。

自从我应聘屡屡失败以来,有件事很是感慨。那些面试我的面试官们,既然拥有那么高超的技术水平,招聘到的人才似乎无所不精无所不懂,但是这些年积累的技术经验,做出的产品怎么就没有一丁点儿的进步呢?与国外顶尖厂商相比,差距怎么还是这么大呢?你的产品的界面确实做得越来越漂亮,平面广告设计得也是越来越精美,但是技术水平却还在原地踏步。说得不好听一点,尽管某些杀软所采用的一些系统底层的技术我不懂,但是凭借着我今天的开发水平,我自己开发一个杀软出来,也不见得比你们差多少。

这几天我还了解到,国内某杀软厂商,还在拼命地到处收集样本,赶紧加入到自己的黑名单,从而抵御这波攻势。真的,我真是有些感慨。你一个一个地拉黑这些样本,你得干到什么时候才能把不断出现的新变种都加到黑名单呢?你们怎么就不能根据手上现有的样本,好好做一下分析,写出启发或者主动防御的特征来彻底堵死病毒蔓延的势头呢?

哀其不幸,怒其不争。

大神们入职国内的这些杀软企业后,似乎也开始散漫颓废了。

总能看到,我国的一些大神在国际级别的安全领域赛事获得大奖的新闻,那些大神在世界上也都有着响当当的名号,促使无数的后辈们投身于安全事业中。同时还能给人以一种高大上的感觉,似乎真的成为了顶尖黑客。

确实,我也承认,国人在安全的一些方面,比如逆向破解和漏洞挖掘等确实有独到之处,但是,这毕竟是单打独斗,并不能将其转化为实实在在的工程项目。就如同开锁,天下一切锁头都拦不住你,那么你确实是旁人眼中的大神。但是,请问大神,锁头要怎么设计才会更加安全呢?你能提出一套完整的解决方案吗?

这就是我们国内安全领域的一个可悲之处。

国外的大神们,很多人真的不屑于去研究怎么撬锁,而是将精力花在了如何设计出更加安全的锁头出来,这就极大地推进了安全工程的发展。这是一项庞大且复杂的事业,需要多人协同研究,单打独斗是不可以的。那么其实这也就解释了,为什么国外会有6款杀软在半年不更新的前提下,依旧能够有效预防未知的威胁了。国内的大神们,成就的仅仅是他们自己,包括大神所在的公司,也能蹭一下热点,借机宣传一下自己。而国外的大神,成就的是一个个成熟的安全产品以及完善的安全工程理论。

这就是差距。

当然,我也承认,那六款杀软也许碰巧就能拦住这次的威胁,你换一种病毒,也许那六款杀软也会无一幸免。这种可能性是存在的,但是,我并没有看到。

作为一个杀软厂商,如果还停留在写病毒分析报告,制作专杀工具的层面,那与我当初求职应聘时候的情况又有什么区别?这种工作对于一个在安全领域刚刚入门的人来说,是必备的基本功,但是如果作为一个杀软厂商还倚重这些,是不是有点Low了?

(PS:本小节提到的一些事情,还会在我未来的故事中有所体现,这里先卖个关子,也算是让我彻底看清了一些杀软厂商的部门领导和工程师在面对诸如此类危机的时候,在意识形态和实际行动上是怎么处理的。)

邻里矛盾

我在临近毕业的时候,就在合立方小区租了一套复式中的一个房间,房东将这套复式的四个房间都做成了独立卫浴的形式,分别租给了包括我在内的四个租户。其中一楼一户,二楼是三户。一楼还有一间小厨房,但我们基本没人用,所以也就基本不存在煤气费的问题。除此之外的水电费还有物业费,就由我们四户来平分了。其中的物业费和水费每月很少,就不讨论了,但是电费,则变成了我们邻里间讨论最多的话题,甚至还成为了邻里矛盾。

在合立方的时候,由于我每天基本都是早出晚归,加上一切假期都不休息,因此我也就是只有晚上在这里,而且基本也就是洗洗睡了,也没有什么大型用电器,顶多是一个台灯和一台笔记本电脑,根本就用不了多少电。而且我住的这里还是挺凉快的,所以夏天的时候,在我印象中好像连空调都没怎么开过。

没记错的话,整个夏天,我们每户每月交的电费大概是50元左右,由于我这个人神经比较大条,不太在意这些小节,对电费没什么概念,因此我也不知道这个价格到底是高还是低,至少我是可以接受的。但即便如此,我们其中有一户“大哥”,依旧觉得这个价格实在是太高了,时不时就在群里面喊几声说这个月的电费实在是太贵了,想找到到底是谁用了这么多的电,可是他也查不出来。其实夏天还好,但渐渐入冬之后,情况就不一样了,因为我们是没有暖气的,北京的冬天还是挺冷的,所以我们几户就要各自想办法取暖了。于是就直接导致了,刚一入冬的那个月,我们每户的电费直接飙升到了100元,也就相当于四户是400元。这回“大哥”可就彻底不高兴了,总问到底是谁在用大功率用电器。由于我多多少少还是比较抗冻的,因此我也不需要额外的电暖气之类的用电器,仅仅是偶尔才会开一会空调的暖风,睡前开一会,让屋子有点热气之后就关掉。我心想那应该不是我了,可能是哪个兄弟怕冷,会一直开热气的缘故吧。我觉得我多贡献一些电费是无所谓的,帮助一下有需要的兄弟嘛。而那个“大哥”是和女朋友一起住的,是唯一的一户住了两个人的租户,按道理水电这些自然是他那户用得多,可他竟然也这么斤斤计较,实在是让我受不了。

特别是过年前后,是全年最冷的时候,我也有些受不了北京没有暖气的室内温度,于是空调的暖风也稍微开久了一些。而那个月,仅仅半个月,我们的电费就一共花了400元,相当于全月花了大约800块钱,于是就导致“大哥”直接炸了。我实在是有些受不了“大哥”的态度,我也就基本不开空调了,特别是过年值班的那几天,只有我自己在合立方,我晚上回去睡觉会穿着里面带绒毛的保暖内衣和羽绒服,身上会盖着夏天的毛巾被和冬天的棉被,但即便如此,依旧还是冷得瑟瑟发抖,难以入睡。也许大家都没有经历过这样的日子,但这应该就是我在外地打拼,让我感觉最苦的时光了。想想再早之前,我在佳木斯卖书,虽说是夏天,尽管是睡阳台,但晚上还是挺凉爽的,并没有经历过北京这样的情况。

也正是因为这样,让我觉得还是早点搬家比较好,坚决不要和他们一起住了,可以的话就直接彻底自己一个人一个房子,就比如说单身公寓就很符合我的要求,我也开始到处去了解北京各种划算的公寓了,想等房子到期,就赶紧搬走了。

帐篷

我心中对越野的向往从看到Rocky的吉姆尼作为开始,但我当时一没有驾照,二不具备在京购车的条件,因此很多事情也就只能深埋心间,想想也就行了。但是一颗户外探险的心始终还是有的,我也会时不时上网刷一下有没有新奇的户外装备,就在某天,我发现某网的户外帐篷正在打折,非常划算,于是也就没再考虑自己到底有没有机会去户外露营,毫不犹豫地下单购买了全套装备。有帐篷、睡袋、垫子、户外万用工具等,甚至还有一盏露营灯。

现在的一些电商快递普遍很有效率,特别是在北京,由于本地就有货仓,因此只要下单早,比如中午之前,那么最快下午就能送到,再稍晚一些下单,则会在晚上送到。甚至你只要肯额外再出些配送费,还能加急给你送过来。就比如我还在北工大的中蓝公寓的时候,由于我总是网购,快递小哥都认识我了,我只要一到楼下,小哥马上就能把我的快递挑出来,甚至一天还会见上几面。当时我几乎一切用品都会选择在电商平台购买,就是看中了平台的低廉价格和极快的配送速度。而我毕业之后,就把常用的配送地址改成了歌华大厦,很快也和快递小哥混熟了,不单单是取货,后来这个平台还增加了二手回收业务,我也会偶尔把我的一些不需要的电子产品通过这个平台卖二手,那么第一道检查关就是由这个快递小哥进行的。后来回到了珠海,甚至到今天,这家电商平台依旧是我的首选。

话说除了网购,我时不时也会帮Rocky取一些快递。因为他隔三差五都会出差,于是我都会自告奋勇地帮他这个忙。但是他的快递就不像我经常光顾的那家电商平台那样是在歌华大厦的后门取件,而是需要在歌华地下的统一取货点去领的。而这个地下取货点还比较绕,我们大厦的电梯不能直达,每次取一次快递都得十多分钟。但尽管如此,我依然乐此不疲。这并不是拍马屁,而是因为在歌华地下,总会停着不少好车,我很喜欢去参观这些名车。比如我最喜欢的是一辆奥迪R8,自钢铁侠1开始,我就相中了这款车的设计,非常酷炫,希望自己以后也能拥有一辆。而自从第一次帮Rocky取了快递之后,我就发现地下也停着这样一款车,由于我不可能天天在地下待着看车,于是借口取快递就成为了很好的理由。

再回到帐篷的话题,由于电商很有效率,因此我也是很快就收到了货,直接寄到了我公司,一大箱子的东西,也是费尽了力气才搬回我的办公室。部门同事也像看热闹般很好奇我买的帐篷,纷纷前来围观。话说现在的帐篷使用起来还真是方便,比如我买的那个,就如同一把超大的雨伞,一撑就直接打开了,使用很是简单。而我之所以买这个帐篷,之所以直接寄到公司,就是想着以后不如直接在公司住了,因为我对于邻里关系实在是很不满意。加上我们病毒分析部的办公室也是挺大的,完全有足够的空间让我把帐篷展开,因此后来,我一般都会选择周末直接在公司住。铺上垫子,展开帐篷,盖着睡袋也就直接休息了。尽管依然是冬天,但即便是开着窗户,无需空调,办公室里面还是非常暖和的,这就和我在合立方产生了鲜明的对比。另外如果我选择在公司住,洗漱用品自然也是备齐的,偶尔还会到楼下买些小海鲜,算是作为宵夜了。而且还省去了上下班的时间,我可以用这些时间来写更多的启发特征做更多的研究,因此那段住在办公室的日子还是挺有意思的。特别是我一般会选择在周六的晚上住在公司,周日来值班的同事见我这么早就到了,往往也很是惊奇,而听闻我是在这里住的,就更加地惊讶了。

搬家

不知不觉,我在合立方已经住了差不多一年的时间了,由于我实在是受不了那个斤斤计较的“大哥”,因此我也是下定决心,等租约到期,必须要搬走了。而我这次选房,也是铁了心要选单身公寓,贵点就贵点吧,我希望能有个让我安心的地方住。

其实我在还没有毕业的时候,并不是只有合立方这一个选择,我当时也是想挑一个单身公寓的,而且我也去实地考察了一家,具体的名字我忘记了,整体上还是非常干净舒适的,一切家用电器齐全,社区设施也是非常地完善,但就是名额有限,不容易排上号。另外,那家公寓距离我公司也比较远,需要倒地铁,路上一个来回差不多两个小时了,并且租金也是比较贵,要差不多四千元一个月,比合立方贵了将近一千元。结合我的收入,综合考虑各方面的因素,我最后才选择了合立方。

而我这次下决心搬家,先是在同事中问了一圈,其中和我同期入职的Yang正好之前住的就是这种公寓,在距离宋家庄地铁站非常近的“分中公寓”。他由于个人原因,刚刚搬走,他要是早知道我想换房子,就直接转给我了。价位也就三千出头,我觉得不错,是我能接受的,于是选了一个周末,我也不去公司加班了,直接从合立方坐地铁来到了分中公寓。

说来也巧,合立方在雍和宫的北面,而分中公寓在雍和宫的南面,都是乘坐地铁五号线即可,不用倒车,而且分中公寓到地铁站的距离还比合立方到地铁站的距离近一些。加上这里还是始发站,运气好还能有座位,远远没有天通苑那边那么挤。到了这里,尽管它没有我之前看的4000块钱的公寓条件好,但毕竟是一分钱一分货嘛,我也不喜欢到处去货比三家,因为我神经大条,不拘小节,因此我也就直接定下来住在这里了。之后的搬家也是非常简单,因为我的东西比较少,实在不行还可以把公司作为中转站,没过多久就把东西倒腾完了。与合立方的中介做好交接,我就彻底离开了这个让我感觉很不舒服的地方。

自己住在分中公寓让我有种获得了自由的感觉,因为以前在合立方的时候,“大哥”就住在我对门的位置,他也不喜欢关门,我每次下班回来甚至有时候上班,都会有一种被监视的感觉。但是我现在住的这间公寓也有不好的地方,那就是通风比较差,也照不到什么阳光,房间里也总有一种潮湿的气味。但这间公寓的管理还是比较完善的,哪里坏了出了问题,直接和管理员说就好,维修师傅很快就会过来解决问题。另外,我觉得宋家庄这边好吃的也比较多,比如楼下马路对面就有7-11,我在歌华楼下能吃到啥,在这里的7-11也就能吃到啥,而且店里直接有微波炉来热饭。并且,通过某外卖平台,我还发现附近有一家专门做海鲜的小店,他们的海鲜大杂烩很是符合我的胃口,在经济条件允许的情况下,我都会点一份回来当做宵夜,里面有各种海鲜,每次吃得都很是满足,也算是我在分中公寓极好的回忆了。

刚搬过来的时候,我甚至还趁某电商平台打折的时候买了一把老板椅,小哥只负责送到公寓楼下门口,我累了一身汗搬到我住的四楼,费了半天劲终于组装好了。之所以要买它,主要是因为我对公寓的整体感觉还不错,以后在周末,要是觉得懒了,也就不打算去公司了,在这里过一天也是不错的选择。就算要写启发特征,我也可以远程登录工作,或者看看美剧看看电影也都是非常地惬意。

这里缺少台灯,我在电商网站闲逛时觉得小米台灯不错,就果断下单买了一个回来。配合小米APP,甚至还可以通过手机控制台灯的明暗与开关等,这样我躺在床上就可以直接关掉办公桌上的台灯了,很是方便。尽管并不是什么高大上的技术,但我却通过这盏台灯体会到了科技带来的便利。想起上个世纪90年代末期,我还在读小学时曾经学过一篇课文,讲的就是未来的家电非常智能化,可以让我们在临近下班的时候,就远程开启空调将室内调整到合适的温度,也可以开启电饭煲进行煮饭……没想到这么多年过去了,这样的家电并没有得到普及,我唯一感受到的类似的电器,竟然是一盏台灯。

同事的婚礼

在卡巴的这段时光,我还经历了Seth的婚礼。而说到婚礼,我感觉自己也是好久没参加过了。不像小时候,总是被父母领着参加这个亲戚那个亲戚的婚礼。渐渐长大,与同龄的亲戚渐渐疏远,加上我每年有时在北方有时在南方,也是错过了不少关系不错的同学朋友的婚礼。而说到同事的婚礼,我觉得很多时候是一种尴尬的存在,因为作为每天抬头不见低头见的同事,如果某人结婚却不告诉你,会让你觉得有种被冷落的感觉。而如果通知你,把请柬交到你手上,很多时候也不太想去,既不想凑那个热闹也不想随那个份子钱。特别是如果你已经结婚了,还是在来这个单位之前结婚的,那么你这个份子钱只要交出去就别想着再收回来了。不过Seth在我们这里人缘还是蛮好的,他既然邀请到我们了,我们还是很乐意去的。

Seth比我年长几岁,我总感觉程序员结婚似乎普遍晚一些,还有大学老师也是这样,也许年轻时的大部分时光都贡献给科研事业了吧,加上这一行的大部分人都比较内向,于是就耽误了各自的终身大事。

没记错的话,Seth的婚礼选择在了周日,这天值班的同事向美国的分析师申请了求助,也就是让他们帮忙盯半天的业务,等婚礼结束了回到公司再交接。Seth选择的这间酒店还是比较大的,整个婚礼流程也是遵循着现如今的传统,他还邀请了之前在卡巴工作的同事来参加,也算是我的前任吧,叫做KAKA,他后来跳槽到了另一家安全公司主要研究漏洞方面的攻防技术,也正是由于他的跳槽,使得职位出现了空缺,才给了我这样的机会入职。

感觉KAKA是那种低调健谈型的,总是知道很多的行业内幕,让我们大开眼界。我其实也是一直很佩服他这种研究二进制漏洞的人才,觉得他们这一领域才是真正的智慧交锋与碰撞,也让我想着以后有机会也不妨研究一下这方面的技术,或许可以成为大神从而有工资翻倍的机会呢。

婚礼的过程这里就不再赘述了,由于Seth要去度蜜月,因此接下来这差不多两周的线上业务时间,只要是轮到我值班,都是我自己盯着,包括周六也是我孤零零地一个人。但也好在没有难处理的Case,Seth也很快回来和我并肩作战了。因此参加同事的婚礼,也是一次难得的经历,在那之后一直到今天,我就没再参加过谁的婚礼了。就算有人邀请,我也是会有所推脱,但份子钱还是会到位的。有的好友觉得我不去还收我的份子钱不好,于是就会选择不接收我的转账,感觉这样的朋友还是很够意思的。

不再处理MSA的业务

我在这小节为大家讲的故事,估计是我在卡巴生涯中最大的一次职场危机了,可能直到现在,Rocky对我还会产生一点误会,这个误会我会在之后的故事中简单说一下,其源头就是一个MSA的Case。

之前和大家谈到过,我们日常的Case分为很多种,比如过年值班时差点捅娄子的属于紧急告警类的Case,一般的用户以及我们的技术支持给我们发来的是属于日常处理最多的类型,一般也就是样本的判定和解除误报等。但是我们的VIP客户是可以绕过我们的技术支持而直接给我们分析师发邮件的,这就属于MSA的Case了,这类Case要求我们必须在半小时内处理完毕,也算是VIP用户的特权了。

某天我接到了一个MSA的Case,是说他们发现了一个样本,但是不确定是不是干净的,于是就发过来让我们判断一下。这其实也是最常见的MSA的Case类型了,我找到这个样本,先是结合监控工具在虚拟机里面运行了一下,并没有发现什么可疑行为。然后我通过解包工具发现这似乎是一个用Python编写的exe程序,可以解出一些诸如SHA256的加密算法文件。谨慎起见,我分别在Win7和WinXP平台跑了一遍,也没有找到任何可疑行为,似乎是一运行也就结束了,多引擎扫描也没见友商报毒,我就以为这似乎是一套用于算法加解密的Python工具集,于是就直接回复说这是个干净的程序,然后就把它放到白名单了。

但没想到,第二天Rocky直接给我发信息,问我为什么说这个程序是干净的,我说我运行了之后没发现可疑行为啊,他说那在解包之后,有那么多加密算法是怎么回事?我说也许这是一个用于算法加密的工具吧。然后他让我看看那些解密出来的文件,以及还原后的Python程序,说一方面,还原后的Python代码明显有用于加密勒索的信息,另一方面,这些解密出来的文件在我们的病毒库中已经有完全一样甚至是非常相似的,说明之前出现过类似的恶意程序,那么也就说明,当前这个程序也是恶意的。最重要的是,这还是一个勒索程序。

我感觉Rocky的言辞非常地犀利和激动,他说的这些确实是我没看出来的东西,然后他还给我发来了一些我近期处理过的Case,说我的这些处理方式根本就不标准。我完全不知道怎么回复好了,也许Rocky说得对,我确实是有些疏忽吧。但是他这次的反应这么强烈,莫非是总部有人告状了?特别是MSA这么重要的企业的文件,我判断错了于是就导致总部的震怒吗?于是就直接找到了Rocky责问是怎么带的团队吗?我觉得我的这个猜测还是非常有可能的。

最后,Rocky和我说,从现在开始,所有的MSA任务不允许我再处理,统一交给和我一起值班的Seth处理。另外,其余的Case,如果他在,那么我在处理完之后,就由Rocky检查,没问题再进行回复,如果Rocky不在,则由Seth代为检查。

我感觉这简直就是晴天霹雳,直接剥夺了我独立处理Case的权利,但是Rocky也算是给足了我面子,没有当面指责我,而是仅仅在聊天工具上和我说了这件事。好吧,既然是犯了错,那么我就应当承担一切后果。从那之后,每次只要接到MSA的业务,我就直接转交给Seth处理,处理普通的Case,我则更加小心翼翼,严格依照标准的话术进行回复和处理,然后再让Rocky或者Seth看看有没有问题,没问题再回复我们的客户或者技术支持。那段时间我的压力也是很大,生怕再犯错从而惹领导不高兴。这样的日子大概持续了一两周吧,Rocky估计是消气了,也觉得我的分析处理没有问题了,就让我一切照旧,就无须交给他检查了,我也恢复了处理MSA任务的权利。

尽管之后我就没有再犯过什么错误,但是作为一名技术人员,我多多少少还是有些较真的。再早以前,我确实没分析过由Python生成的exe程序,经验不足等因素导致我出现了判定错误的结果。直到在很后很后的后来,我无意中看了一篇如何分析这类程序的帖子,于是我就按照帖子所说,一点一点地解包了之前那个病毒样本,还原了Python程序,一行一行代码进行分析。最后的结论是,这个程序确实会执行加密的操作,还能生成提示用户中招的网页,因此从这个角度来说,将其判定为恶意是没有任何问题的。但是,之所以我起初运行时没有抓到加密行为,是因为这个程序在加密前还需要获取用于加密的Key文件,由于我的虚拟机里面没有这个文件,因此也就不会进行加密了。包括客户的电脑也是一样,我相信应该也是不存在这个Key文件的,而这个Key文件要去哪里获取,就不得而知了。因此从这个角度来说,将这个文件判定为是干净的也未尝不可,毕竟它需要苛刻的条件才能实现恶意功能,而这个苛刻的条件一般来说是不具备的。但不管怎么讲吧,尽管没有恶意行为,但是直接将其拉黑也确实是最好的选择。而这次的MSA事件,也确实是我职场中的一次极大的风波了。

艰难的抉择

当前的第16篇是我在卡巴斯基的最后一部分故事了。尽管这个阶段只有一年多的时间,却写了16篇近8万字,估计也是在我的两部小说里面,字数最多的一个时期了。

从没毕业的时候开始,也就是2016年的3月初,一直到从卡巴离职,即2017年的7月末,一共17个月的时间,我觉得自己在卡巴也是经历了不少的事情,也许,确实到了该离开的时候了。

一方面,在卡巴每天的工作对于我来说,可以讲是例行公事,每周三天上线处理Case,也就是那么几种类型。余下两天做高级研究,所采用的方法也还是那么几种,似乎已经不可能通过工作来提高自己了,也仅仅是在现有的水平之下,拓展拓展眼界而已。其实如果仔细想想,我入职前后的水平真的有突飞猛进的变化吗?好像没有。做病毒分析还是采用动静结合的方法,只不过是学了一些快速判定的技巧,见识到了更多的病毒种类。另外还接触到了卡巴自己的高级查杀引擎,也就仅此而已吧。可能,即便再工作几年时间,我能够达到Rocky的判定水平,那也只不过是建立在拓宽了眼界的前提下,借助于卡巴斯基这样完善的分析环境分析条件之下才能达到的,我的基础分析技能并没有什么进步,而且一旦脱离了这个体系,我又得使用最原始的工具去一点一点地分析了。

另一方面,结合我的条件,我是不可能在北京买车买房定居下来的。加上几个月前又在珠海买了房,因此我的最终归宿也只能是珠海。

回顾我在第一部小说中的故事,再延伸到第二部小说,卡巴可以说是我的第3份工作。其中我的第一份工作是在老师的书店,主要任务是搬书、打包和卖书,前后一共是8个月的时间。第二份工作是在苏宁电器卖手机,起初是诺基亚,后来是苹果,一共待了12个月的时间。感觉都不是很长,如果将这样的工作经历写在我的简历里面,那么势必会给用人单位一个不好的印象,甚至直接在简历筛选阶段就被干掉了。另外,我也在第一部小说中为大家介绍了我屡战屡败,屡败屡战的求职经历,可谓是异常的艰辛。我并没有信心说再给我一次机会就一定能够通过面试从而应聘上工作,尽管我有卡巴的经历。而且,我的年纪也在这摆着呢,我是1986年出生的,2017年已经是31周岁了,是而立之年了。要知道,对程序员来说,35岁就是一道坎,我离它只剩4年时间,现在还要为一份工作而拼搏奔波,似乎,离职并不是明智的选择。

如果结合之前的MSA事件,可能一些朋友会觉得我是不是因为这件事而有离职打算的。其实并不是,这件事虽然让我不舒服了几天,但还不至于迫使我离职的地步,多年的坎坷,让我的内心还不至于那么脆弱,其实是多种事情混合在一起导致我产生了这样的想法,而这样纠结要不要离开的日子大概持续了一两周的时间,我最终下定决心,还是走吧。

那天一早,我又是第一个到的办公室,Rocky是第二个到的。我酝酿了一段时间,趁同事们都没来,走到Rocky面前表达了我离职的想法,问Rocky接下来的流程是什么。也许他也有点惊讶吧,他和我说不太清楚流程,让我去问问人事经理。随后问我为什么打算离职,我说我的家毕竟在珠海,综合考虑我还是回去吧,然后他就没再说什么了,本以为他会挽留我几句,但却没有,不知道是不是因为之前MSA事件导致他的气没有完全消掉的原因呢?

随后我就去找了人事经理,她和我说需要在系统里面申请一下,需要相关领导审批通过,并且还需要我写一封离职信,我就把这封信的全部内容放在下一小节吧。

我的离职信

尊敬的领导:

您好!

我也是经过了长时间的权衡,才做出的离职的决定。主要考虑到我在读研究生开始,就和我的家庭处于分居的状态,这样的情况对于一个家庭来说,其弊端是远远大于利的,所以我觉得从现在开始,一切都应该以家庭为重了。我期望的离职日期是7月31号,因此我提前一个月进行申请。

回顾我在卡巴斯基的这16个月的时光,尽管很短暂,但却异常充实。作为国际安全领域最为顶尖的企业,卡巴斯基让我获得了前所未有的视野,这是国内任何一家安全公司所不可能具备的。也让我接触到了这个领域非常多的先进技术和先进的思想,如同为我开启了新世界的大门,使我不至于成为井底之蛙。这些先进的技术与思想,既不可能在书本中学到,也不可能在网络上习得,是只有卡巴斯基这样的平台才能够给予我的。因此,这16个月的时光,可以说令我的技术水平产生了天翻地覆的转变,这种转变远远大于我之前在自学阶段,那几年的积累。当然,这里应当特别感谢的是我们反病毒部门的领导和同事,正是由于他们指导有方,我才会取得今天的进步。

我至今还很清晰地记得,当我入职没多久的时候,曾经在我的博客里面写过这样的一段话:“不论我与卡巴斯基以后会怎样,不论我未来路在何方,我今天能够入职卡巴斯基,成为卡巴斯基实验室的一名病毒分析师,这终将会成为我这辈子永远的骄傲。”

这份骄傲,在我16个月的工作时光中,每天都充盈着我的内心。即便我离职了,我也相信,自己会永远保有这份骄傲。我以后必然也会入职其它的公司,但不同的是,入职其它公司,仅仅是为了生计而工作,但在卡巴斯基的时光,则是为了一份骄傲与自豪而奋斗,这种光荣的使命感,是只有卡巴斯基才能够赋予我的。因此,这段日子,每天都是我最为美好的回忆,也是我职业生涯里面最为光辉的一笔财富。

最后,我由衷地希望卡巴斯基能够在安全领域取得更加长足的进步,获得更多的奖项,保卫更多用户的安全。也希望未来不论在我的工作还是生活中,都能够与卡巴斯基产生更多的交集。让我能够继续为未来更加辉煌的卡巴斯基而骄傲下去。

此致

敬礼

再见了,卡巴斯基,我曾经的梦

用我今天的眼光来看这份离职信,我自己都会惊讶当初落于纸上的这些质朴文字所蕴含的真情实感,它是那么地情真意切,那么地遗憾与不舍。

我向人事经理递交了这封信,在系统中走完了流程,认认真真地完成了最后一个月的工作。尽管我没有向部门的同事提过离职这件事,但大家竟然也都知道我要离开了。另外,我在分中公寓也仅仅住了三个月而已,我的一些物品还是要寄回珠海的,这些物品更多的是一些书籍衣物,不重要的东西比如床单被褥等,我也就没带走了。

7月31号一早,我在公寓办理完了一切退房手续,背着一个书包,拽着一个旅行箱,最后一次乘上通往公司的地铁,坚守最后一天的岗位。其实这最后一天我是不需要做Case的,因为这天是周一,根据排班,是“渣兔”和Yang在线,当然Rocky也在。Seth已经在两天前的周六,我俩共同值班时就和我道过别了。我今天过来,主要是把离职的流程走完,比如归还公司门卡,退还电脑等。一切都搞定也差不多到了下午五点左右,我也没必要等到六点的下班时间了,我和大家说我所有的手续都办完了,我还是早点走吧,还得去火车站乘车呢。然后大家就不约而同地把我送到了电梯,与我告别。这一刻,我强忍着泪水,也让我的内心五味杂陈。

走出歌华大厦,发现下午的天气很好,天空很蓝。让我的思绪不由得回到了我在北工大取得毕业证,满怀喜悦地迈出校门的那个七月,那一天,天气是一样的好,天空是一样的蓝。

那一年盛夏,心愿许得无限大,是何等的踌躇满志,意气风发。可今天,我终将青春还给了她,连同指尖弹出的盛夏,心之所动,就随风去吧。同样的盛夏,同一片蓝天下,却是两种截然不同的心境。离开这里,在我的眼中,噙着泪花。我知道,我今生再也不会有这样的机会入职这样顶尖的企业去对抗全世界的骇客,终于体会到了“有心杀贼,无力回天”的无奈。

起初,我能来到卡巴斯基完全就是一个巧合,若不是我注册了看雪账号,若不是我发过求职贴,贴子中还附上了我的技术博客链接,Rocky就不可能给我发私信问我有没有意向面试一下卡巴斯基,而若不是我当时还没有找到工作,若不是那天恰好心血来潮用账号登录了看雪而不是用游客身份,就不可能发现Rocky的私信,自然也就不会有之后的一系列故事了。一切的一切,宛如神奇的蝴蝶效应,所以可以说,我能够遇见卡巴斯基,是最美丽的意外……

来到雍和宫地铁站,乘地铁直接到了火车站,我买的是直达珠海的动卧,大概晚上七八点发车,第二天早上七点多也就到了,非常方便,我之前还在念书的时候就总坐这班车,但也许,这是我最后一次乘坐这班车了。

自从我2012年来到北京读研究生,至今已经过去了五年时间,也是到了彻底离开北京的时候了,至于以后我是否还有机会回来,是回来上班还是回来旅行,一切也都是一个未知数,一切也都只能服从命运的安排了。

上了火车,尽管是回家,回到自从我小学一年级就开始扎根成长的地方,但对于我来说无疑是踏上了新的征程。前路漫漫,我完全不知道等待我的究竟是什么,我的内心也是非常地没底和迷茫。唯一能够知道的,那就是又回到了艰辛的求职状态了。

太多的伤,难诉衷肠,叹一句当时只道是寻常。再见了,卡巴斯基,我曾经的梦……

同事的纪念金牌

起初我和卡巴签订的是三年的工作合同,在签字的时候,我的内心并没有考虑过究竟要在这里工作多久,当然我是希望能够长久一些,这样我的简历才好看,就比如说至少三年比较好,然后再签一个长期这样。后来工作了一段时间,我发现公司的政策中对于老员工是有一项奖励措施的,也就是工作满5年可以得到一种奖励,满10年又是另外的奖励等。其中5年期满除了有金钱上的奖励以外,还能得到卡巴斯基的一块纪念金牌,于是我就暗暗地把工作5年作为了我的职场目标。

无奈事与愿违,我仅仅工作了一年多就离开了,自然也与这块金牌无缘了。就在我离职几个月之后,我看到朋友圈中Seth和“渣兔”分别晒出了他俩获得的金牌,原来他俩工作都已经满五年了。我看了之后非常地羡慕,倒不是因为金牌,就算是铜牌铁牌,在我心中其纪念和象征意义才是最重要的,是值得用一生去珍藏的。可惜,这却成为了我职场中的一个很大的遗憾。

后记

离职以后,我就几乎没再和卡巴的同事联系过,顶多看看朋友圈,看看大家都发了些什么有意思的东西,就没再有过多的交集了。直到2017年的年底,当时我已经通过了一家我不敢说名字的单位的笔试和面试(这家单位我会在之后的故事中详细讲讲),并且已经来到最后的政审环节了,他们的审查员要求我提供上一个工作单位的同事的联系方式,要打电话核实我的背景和表现,于是我在征得了大家同意的情况下,就把Rocky、Seth、“渣兔”和Yang的联系方式提供出来了。后来他们联系了Seth和Yang来调查我的情况,其实也给“渣兔”打电话了,但估计他当时在睡觉,就没接到。这也是我离职后的惟一一次与他们联系。而在聊天中,我才知道由于公司业务调整,Seth、“渣兔”和Yang要被“优化”了,当时他们正在和公司商谈补偿事宜,看看究竟能谈到N加几。我觉得卡巴这样的大企业,绝对会给出非常优厚的方案的,后来我也就没再关注下去。而他们三个当时也在开始找下家了,大概是2018年的年初吧,他们仨也就正式离职了。

后来,Seth和Yang不约而同地加入了同为安全领域的K公司(根据时间和字母顺序,排到K了),“渣兔”稍微晚了一些,但最后也加入了K公司。除了他们三个,原卡巴的一位做开发,平时和我们部门关系比较好,总是来我们办公室溜达的同事也加入了K,看来他们几个可以继续做同事,继续在相同的领域奋斗了。于是北京的卡巴病毒分析部这边,也就只剩下了Rocky。

其实在我离开以后,卡巴也是打算再招一个分析师来填补我的空缺的,我也在求职网站上看到了招聘消息。但也许是计划没有变化快吧,还没招到人呢,老员工就要纷纷离开了。我们之中,Rocky是待得最久的了,他是在2020年的9月,在我们的群聊中,我才知道他去了极其闻名的L公司,这家公司不在北京,位于我国的南部,对于Rocky来讲也算是英雄远征了。他在此之前也是结了婚,从结婚照上来看,Rocky竟然胖了不少,要知道,Rocky在我心中可以算是一个健身达人了,时不时就会去健身房练练,甚至还在办公室买过练习引体向上的器械。看来男人结了婚确实容易发福。而在2021年的5月,Rocky还在群里发了招聘贴,我知道L公司在业界基本是顶薪,但我已经不可能再回到那个圈子了,所以也就只能看个热闹了。

这就是我们病毒分析部门所有同事的归宿。也许他们未来会有更好的发展,去到更加广阔的平台,但已经不在我的这个系列故事中了,因此就不会用更多的笔墨去讲述。至此,我与卡巴斯基的故事就彻底结束了,我也来到了人生的一个崭新的阶段,翻到了一个全新的篇章。我曾考虑过是否要换一个标题,因为接下来的故事已经和苏宁与卡巴没有任何关系了,但是懒惰使然,加上我也不善于起名,因此不妨先保留这个题目,再讲三年故事以结束第二部的小说,如果还有第三部,我再考虑标题的事情吧。