热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

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

目录Hi实习期分析技术的瓶颈Hi第二天我早早地就到了公司,10楼的开放办公室也没来几个人,而我也是我们病毒分析部第一个到的。过了一会,Rocky也来了。他见我是先到的,特意来到我们

目录

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

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

 

回到目录

下一篇


推荐阅读
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 本文介绍了在win7电脑上进行文件加密的方法,包括利用NTFS的EFS进行加密和使用Win7旗舰版的Bitlocker加密整个分区。同时推荐了超级加密3000、宏杰加密工具和超级盘加密工具等多种加密软件,这些软件具有快速的加密速度和高强度的加密功能,可以防止文件的删除、复制和移动。此外,还强调了保持加密密钥的重要性,以免重装系统后无法打开已加密的文件。最后,提醒读者选择绿色软件,方便使用。 ... [详细]
author-avatar
冫Eva
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有