从苏宁电器到卡巴斯基(第二部)第05篇:我在卡巴的日子 V

目录

Hi

实习期

分析技术的瓶颈


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确实给予了我很大的帮助。

扫描二维码关注公众号,回复: 13055396 查看本文章

我实习期的上下班时间和其他员工是一样的,都是上午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考虑到我还有后续的学习任务要完成,也没太抓这批恶意程序,后来就到了下一阶段分析新的样本了。但通过这一阶段的研究,我也发现了自身的不足,而这一批样本,也确实是我实习期中,在技术方面的瓶颈了。

 

回到目录

下一篇

猜你喜欢

转载自blog.csdn.net/ioio_jy/article/details/115307755