已经有不少朋友从后台咨询我怎么学习恶意样本分析?有做渗透测试的,有做大数据分析的,还有做应急响应、安全服务的,一直想给大家写一篇关于如何学习入门恶意样本分析以及在当前企业安全的环境下,做恶意样本分析到底有什么作用?因为只有知道它有用,你才会花时间去学习。
事实上很多人对恶意样本分析这项工作或技能可能并不是太了解,国内一般招人就叫病毒分析工程师什么的,事实上国外统称为恶意样本分析,因为这样更准确一点,恶意样本包含病毒,或不仅仅是病毒,病毒只是恶意样本的一个种类吧了,很多人其实可能并不太懂这个行业,有些可能也是听身边的一些人聊起过,因为这个行业比较老了,现在的一些95后大多数从事移动安全或漏洞研究,业务安全这块,对病毒分析这项工作不太了解,有些以前也做过,不过可能后面没有去做了,对这个行业也没有过多深入的了解。
我一直从事这个行业有十年了,这篇文章帮大家深入的了解一下这项工作都在做什么,以及从事这项工作在现在企业安全中起到了什么作用?是否有价值?然后再教大家如何入门学习恶意样本分析。
很多人理解的恶意样本分析就是点样本,觉得没啥意思,很枯燥无味,是这样的吗?你真的对点样本了解吗?你真的点过样本吗?你知道样本的价值吗?
事实上你真的一无所知,你知道的只是某些人给你传达的一些可能是错误的信息,事实上这项工作是任何一家真正的安全企业核心的部门之一,样本也是一家安全企业的核心资产之一,任何一家专业的安全公司都会一个专门恶意样本分析的团队,以前叫病毒分析团队,现在可能改成了一些别的名称:叫威胁猎人团队或威胁分析团队,如果一家专业的安全公司,连样本分析人员都没有,那这家公司应该不是专业做安全的,或者这家公司比较小,业务范围还有没涉及到这块知识,大型的专业安全公司,一定会有自己的安全分析团队,比方思科、平底锅、飞塔,赛门铁克、火眼等等。
我先从传统的安全公司说起吧,病毒分析团队在传统的安全公司的作用与工作职责,传统的安全厂商,也就是以前的TO C的安全公司,像瑞星、金山毒霸、江民,以及后面的360,事实上这些公司都有自己的恶意样本分析团队和样本运营团队,360后面为了去误报,还专门会成立一个几十人的去误报样本鉴定团队,在国内这些人有一个大家更熟悉的名字,叫反病毒工程师,主要从事公司样本的运营与分析,那这些人主要在公司做什么呢?
1.恶意样本的运营;
2.流行病毒样本分析。
恶意样本的运营,也就是大家俗称的:点样本,安全公司里面有一批人专门从事这个工作,负责样本的运营,安全公司从各种渠道收集回来的样本,先加入到自己的病毒库里,然后通过一些扫描引擎进行分类处理,俗称样本的分类,安全公司扫描引擎的主要作用就是样本的分类,但是不管是任何一家公司开发的引擎都会存在误报、漏报的问题,这样就需要一批人从事样本的快速鉴定与筛选工作,这类工作就是批量点样本,快速鉴定样本,每天一个样本鉴定人员可能需要人工处理上百个样本,有一些样本运营团队还会开发一些自动化的工具,帮助人工分析入库,一天可以处理几百,几千甚至上万的样本......
上面的工作需要有一些快速鉴定样本的能力,说实在话,如果一直从事这样的工作,真的会很枯燥无味,像流水线上的机器人一样,每天重复做着差不多的劳动,也不需要知道太多的恶意样本分析知识,只需要知道一些简单的知识即可处理,有些甚至连简单的病毒知识都不清楚直接通过第三方网站进行过滤,根本不用分析样本,后面很多安全公司后面为了节约成本都会找一些外包公司,将这类工作外包出去,或者请外包人员从事这类样本运营的工作,由于一些不专业的人士的人工操作,会导致一些人工误报的情况时有发现,也许大多数人理解的恶意样本分析就是这样的吧。
说真的,这样的样本运营工作,既枯燥又无味,而且可替代性非常强,随便找个人,可能一两个月就可以上手,无需过多的安全知识就可以从事,前期如果你对病毒一无所知,可以从这些简单的工作做起,先对病毒有一个大致的了解,然后再深入的研究学习病毒知识,真正的成为一个恶意样本分析员,而不是简单的样本鉴定人员,其实任何一个行业都是如此,先简后难,真正要成为一个行业某个领域的专家,绝不是一两天的事情,需要持续不断的学习和研究。
真正的恶意样本分析师,主要从事的是一些流行样本的分析与处理工作,不仅仅需要很强的专业安全知识,而且需要很强的逆向分析能力,真正要做好一个恶意样本分析师,要学的东西远比你想象中的还要多的多,最后的产出包含两样:
1.专业的安全分析报告,给客户看的;
2.提取样本的规则,给引擎开发人员的。
为啥我说样本是一家安全公司的核心资产呢?以前做TO C安全产品的时候,可能会因为一个样本就可以给公司带来巨大的用户量,也许很多人不明白,为什么?因为你压根也没有经历过那个时代,所以也不会了解,今天我就给大家说一下为啥会这样。
在TO C的时候,大家拼的是客户端安装量,也就是用户量,360以前最高的时候的用户听说达到几个亿,这也就是为啥它后面敢和腾讯叫板的原因,也就是大家都知道的3Q大战,同样你看看现在的今日头条,也是一样的,它同样可以跟腾讯叫板,因为它有用户量,以前我们做TO C安全,如果发现了一款流行的病毒样本,哪个公司第一时间发布了相应解决方案,马上就会发布出来,然后自然会有不少用户下载安装,因为软件都是免费的,360为啥安装量一下子上来了,第一可能是因为免费,还有一个原因是因为几个流行病毒,它处理速度比其它安全公司的快,一下子抢占了先机,以前有一款流行病毒叫鬼影,鬼影的变种一共从一代到六代,不断的变种,感染了无数多台机器,如果谁能先发现变种样本并进行快速的分析和处理,自然就会有用户下载安装了,也就带来了巨大的安装量,有了安装量自然就会给公司带来收益了。
捕获到了这些流行病毒样本,该怎么办?谁来分析处理?大多数开发其实是没有逆向能力的,他们往往对开发比较熟悉或者对产品架构比较了解,对病毒样本并不清楚,这个时候就需要专业的病毒分析人员了,由专业的病毒分析人员对样本进行详细分析,然后给出相应的解决方案,然后协助开发人员进行专杀工具的开发和测试,然后再根据病毒的特征提取相应的规则给引擎开发人员,增加新的特征,从而不断的能过运营提高安全产品的安全能力。
当时安全公司的病毒分析人员的工作就是流行病毒的分析与处理,然后提取病毒规则,如果一家安全公司没有病毒分析人员,我不知道它是怎么做终端安全软件的,所以在传统的安全公司恶意样本分析人员是必不可少的,也是非常重要的一个岗位......
好了,说了传统的安全公司,我也来说一下现在的一些新型的安全公司吧,现在有一些安全从业人员,动不动就说什么传统的安全不行了,我们要采用新的安全技术,要创新,要改革,说传统安全方法解决不了新的安全问题,动不动就谈人工智能、大数据、机器学习,事实上天天谈这些的人很多都不是真正做安全的人,也不懂安全研究,对安全可能并不了解,这又是一个话题了,后面有空我再跟大家扯一下,事实上真正做安全的都了解,这些新的方法和理论就一一定能更好的解决安全问题?研究这些新的方法和理论的人,真的懂安全?
真正做安全的人,不管是渗透测试、漏洞挖掘、逆向分析,都不会动不动就谈人工智能、大数据、机器学习之类的,因为如果连安全都没搞明白,就谈这些方法和理论有啥意义呢?现在大家都在说做企业安全,要做TO B市场,企业安全真的需要人工智能、大数据、机器学习这些新的技术和方法?这些真的能解决企业安全问题?企业客户遇到的安全问题,靠这些真的可以解决吗?
我以前是做TO C的,后面发现TO B的机会来了,然后转到了现在的公司主要负责TO B安全,我来告诉你现在做企业安全,企业客户需要什么吧?他们需要的是好的安全产品+好的服务人员,客户并不关心你用了什么人工智能算法,机器学习,大数据方法,客户需要的是你帮他解决他们企业遇到的安全问题,当你提供客户需要的安全产品,而且当企业遇到安全问题的时候,客户需要你的时候,能给客户提供专业的安全咨询和服务,这是做企业需要的,也是客户需要的。
那说了这么多,恶意样本分析人员怎么才能在企业安全中体现出自己的价值呢?我就从上面两个方面来给说一下,怎么最大化恶意样本分析人员的价值。
做企业安全,如果还是一味的忽悠客户,很难做长,因为做企业安全你一是做一天两天,一年两年,而且未来企业安全的竞争也会越来越大,怎么才能打造一款好的企业安全产品,我之前写过一篇《做安全有什么用,价值何在》,里面主要讲解了如何做好几款企业安全产品,你做的这些产品是否是客户需要的?是否真的能给客户解决一些实际的安全问题,有兴趣的可以去阅读那篇文章,分别从目前流行的几款企业安全产品做了详细的讲解:边界防御类产品防火墙、终端安全产品EDR、内网感知类产品态势感知。
事实上这三款企业安全产品,如果没有安全研究人员提供持续的安全能力输出,这三款产品啥也做不了,安全产品跟其它产品不同,它是一个强运营的产品,不管你现在开发的产品多么厉害,不去运营,最后的结果都是开发出来的产品基本解决不了任何安全问题,至于恶意样本分析人员,就不用多说了,这三款产品的核心都是特征,这些特征从哪里来?引擎的规则靠谁来提取,其实引擎只是做匹配罢了,没有原始的规则,引擎根本无法匹配的,至于现在说的一些人工智能、机器自动学习,听听就好了、企业安全存在的安全问题应该怎么防御,这些都需要安全研究人员进行安全研究,然后再给这些产品输出安全能力,提高这些安全产品的安全能力。
安全本质永远是攻防对抗,不要扯别的,为啥我们要做安全,企业需要安全,不就是因为有做黑产的,如果没有做黑产的,还要做安全的做什么?那既然我们要做的就是对抗黑产,那不去研究黑产,不去研究安全对抗技术,怎么做安全?通过什么方式研究呢?事实上样本就是最好的切入方式,研究样本,你就可以从样本中得到最有价值的东西,逆向分析样本,你可以知道黑产运用了哪些技术手段,使用哪种方式进行传播?样本中利用了哪些漏洞?采用什么免杀技术绕过安全软件?然后再通过分析,弄明白应该怎么样清理这些样本?不仅仅如此通过分析样本,还可以得到各种有价值的最新的IOC特征,将这些IOC特征加入到威胁情报系统里,关联出更多有用的信息,提供给企业安全的客户进行参考,这些都是非常有价值的,也是做企业安全最重要的,因为这最新的威胁情报就是企业安全客户想要的,也是客户最担心的。
任何一款安全产品都是不可能100%的防住病毒的,当企业购买了你的产品之后,他们其实需要的是一种配套的安全服务,没有安全服务和安全应急的人员,想做好企业安全,基本上是不可能的,也许有些大厂前期靠一些关系和资源可能会有一些客户,但当客户遇到安全问题,你不能及时给客户提供好的安全服务,基本后面就很难做了,我做过很多应急响应工作,接触过很多客户?
其实现在企业安全的最大问题,仍然是恶意样本攻击事件,所有的应急响应工作基本都是恶意样本攻击导致的,需要对企户遇到的各种流行的病毒样本进行详细分析。特别是现在勒索病毒攻击、挖矿病毒和各类APT攻击、银行木马流行的时代,网络安全事件也大部分是基于恶意样本攻击的,那这些企业的客户关心的主要有哪些问题呢?我想了想,大致就是两类:
1)我的企业中了什么病毒?这些病毒什么危害?会不会传播?该怎么清除处置?你有没有相关安全产品能解决这个问题?
2)这个病毒是怎么进来的?后面怎么防止再次中毒,能不能提供一些安全防护建议和手段?
一般的企业安全安服人员以及应急响应人员在对企业做应急响应之后都会给客户提供一份详细的应急响应报告,报告里面就是包含了上面的这些东西,通过这种方式再去推广自己公司的其他产品,扩大公司安全产品的市场占有率。
如果你会恶意样本分析,在企业应急响应中可以充分的体现出自己的价值,应急响应人员可以通过分析病毒样本,可以得出这是什么类型的病毒,这个病毒有什么危害,会不会传播,该怎么清理,以及通过在客户机器上进行样本的回溯和查找,弄清这个病毒可能是通过什么方式进来的,然后再输出详细的应急响应报告,客户自然就会很满意了,客户满意了自然就会买单了,所以应急响应人员和安全服务人员拥有一些简单的恶意样本分析技能一定能提高安全服务的质量,以及能得到客户更多的认可。
如果不分析病毒样本,你怎么回答客户的问题?我想问......
如果你想做安全,就先去了解客户,客户需要什么?不管你做哪方面的安全研究,最后都是需要创造价值才有意义,没有价值的安全研究没有意义?安全包含的内容很多,现在做企业安全能给企业客户解决安全问题,才能体现做安全的价值。
上面我已经说了恶意样本分析对企业安全的价值,以及恶意样本从业人员具体都在做什么,是否有价值?做恶意样本分析一定是有价值的,只要有做黑产的存在,就一直需要做安全的,就一定需要深入研究和了解样本的安全人员,因为大多数黑产的表现形式就是攻击样本,做安全接触的最多的也是样本,从样本中可以找到很多有价值的东西。
现在全球每天都在发现各种安全攻击事件,大多数的安全事件都是由恶意样本攻击导致的,安全研究人员一定要多关注国内外大多数的安全公司发布的安全报告和安全事件,我每天都在关注全球发生的各种安全事件,真的太多的样本需要去分析研究了,因为只有去深入的分析和研究了这些样本,你才能更加了解安全,了解黑产,才能做好企业安全防护,并给企业的安全产品输出强大的安全能力,不然怎么提高企业安全产品的安全能力。
那怎么入门恶意样本分析呢?需要学习哪些知识呢?由于现在安全大环境,黑产团队会通过各种不同的恶意样本攻击各种不同平台的,但是现在做企业安全,目前来说主要是以Window/Linux平台为主,云安全服务器主机也主要以Windows/Linux为主,MAC平台和移动平台的企业安全需求现在不多,我这里先以Windows平台为主进行讲解。
之前我在一个安全博客网站上看到过一篇文章,好像叫十分钟学会恶意样本分析,后面我在星球写也一篇文章《恶意样本在线分析网站,你想要的都在这里》,帮助一些没有安全分析能力的朋友快速分析样本,也是为了可以让一些没有安全分析能力的安全应急响应人员和安全服务人员对病毒分析有一些简单的了解,后面有空再进行深入的学习。
为啥一定要深入的研究和学习,因为这些在线分析网站并不能解决所有的恶意样本了,大多数高端的样本都可以轻松的躲避到这些在线的分析网站,如果这些在线分析网站能解决所有的样本分析工作了,那还需要恶意样本分析人员做什么?事实上大部分专业的恶意样本分析人员,从来不会上传样本到这些网站进行分析的,就像我之前说的样本就是一个公司的核心资产,你随便上传样本到这些网站,相当于上传了公司的资产,哈哈哈哈。
学习入门恶意样本分析?我列举了一个学习线路,可以按照下面的步骤进行学习:
通过一些样本动态形为监控工具,对样本的基本行为进行分析,同量还可以通过一些威胁情报网站进行查询分析,对病毒了有一个基本的了解。
需要学习PE文件格式、汇编语言,Windows程序设计,软件调试方法等,通过对样本进行静态分析与动态调试,了解病毒的核心技术原理,Windows上一般的调试工具主要有OD、Windbg、X64DBG等。
学习一些逆向工程的方法与技术,对二进制样本进行逆向分析,有些病毒样本可能加壳了,这个时候需要对一些常用的壳比较熟悉,能手工脱壳。
如果样本利用了漏洞进行传播,就需要去学习一些常见的漏洞原理,可以去看一些漏洞分析与挖掘方面的书籍。
通过上面的学习基本的方法和技能都已经掌握了,后期主要就是不断的实战,去分析各种不同类型的病毒样本,了解各处不同病毒样本的原理,包含:蠕虫病毒、感染型病毒、勒索病毒、挖矿病毒、下载器、盗号木马后门、APT攻击样本、僵尸网络等,通过分析这些样本,可以获取到很多有价值的东西。
恶意样本分析是一项非常复杂的工作,需要学习的东西很多很多,涉及到的知识面也很广,后面可能还会遇到各种不同平台的文件需要分析,做恶意样本分析工作真的需要不断的学习,同时还需要跟各种恶意样本分析专家进行交流,学习别人的一些分析经验和技巧,不断的提高自己的安全分析能力,任何一家大型的专业的安全公司都会拥有一支强大的安全分析团队,这支团队会负责各种最新的恶意样本的捕获和分析工作,像威胁猎人一样,及时跟踪全球最新的安全威胁事件。
做安全的首先要懂安全,然后才知道需要做什么,好好做好自己的事,坚持研究安全技术,研究黑产,从样本中去寻找更多有价值的东西,帮助企业提高安全产品能力,帮助客户解决企业安全问题,才能做好安全,更好的体现自己的价值。
好了,已经七千字了,不扯了,后面有空再写,还是那句话,不管你在安全领域的哪个方向,坚持很重要,这是一个长期的过程,并非一朝一夕的事,还是好好研究安全技术吧,安全的路真的还很长,要做的事还有很多......
*本文原创作者:熊猫正正,本文属于FreeBuf原创奖励计划,未经许可禁止转载
精彩推荐