“ 上次去一个客户那里交流,聊起杀毒软件,
客户:‘我选择杀毒软件的标准就是看谁的界面好看,我就用谁的’。
我:‘难道不应该看哪个杀毒软件能防住病毒和攻击就选哪个吗?’,
客户:‘杀毒软件都是一样的,没什么区别’。
我:你听谁说的杀毒软件都是一样的?
客户:‘XXX公司的人来的说的,他们说杀毒软件都是一样的,都是靠病毒库,无非就是谁的多的谁的少点,区别不大。既然这样我就选一个我看着顺眼的又便宜的就好了。
我:......
”
这是一个真实的对话。
上次参加一个安全会议,一个专家说:甲方也要懂安全知识,不然就会被乙方强奸,他们说什么就是什么。仔细想想,确实如此。
整理了一个测试方案。分享给大家。
本文分为以下几个部分:
1、测试目的
2、了解病毒传播途径
3、了解黑客攻击途径
4、测试方法
5、测试流程
01
—
测试目的
这两年,关于病毒的新闻层出不穷,尤其是勒索病毒,给企业造成了很大的损失。勒索病毒,是一种流行的病毒,通过骚扰、恐吓甚至采用绑架用户文件等方式,使用户数据资产或计算资源无法正常使用,并以此为条件向用户勒索钱财。主要以漏洞利用、RDP弱口令暴力破解、钓鱼邮件、网页挂马等形式进行传播。这种病毒利用各种加密算法对文件进行加密后,向文件所有者索要赎金。如果感染者拒付赎金,就无法获得加密的私钥,无法恢复文件。关于勒索病毒的更多知识,请参考我之前的文章,或者在本公众号勒索病毒专题中查看。
本测试方案的目的在于测试不同的杀毒软件在防范病毒攻击时的反应,从而找出最适合本单位使用的杀毒软件产品。
我们以最近最具代表性的勒索病毒为例,来介绍一下如何测试杀毒软件。
强调一下啊,这个是针对甲方用户和普通爱好者使用的,并非针对专业人士,如果您认为我写的不对,欢迎探讨。
02
—
了解病毒传播途径
要知道如何选择适合的杀毒软件,我们要先了解病毒的工作流程,也就是说病毒到底是怎么攻进我们的电脑的。
先说常规的病毒传播途径:
1、通过移动介质传播。比如光盘、U盘、移动移盘等,最常见的是U盘。
2、通过文件和程序传播。
3、通过互联网传播。比如网页、邮件等。
4、通过局域网传播。比如漏洞、共享等。
最基本的,防病毒软件应该具备对常规的传播途径进行防范的能力,比如对U盘、网页、邮件、共享等的方式的病毒来源进行拦截。
除了以上的常规传播途径之外,还有一种高级一点的,就是通过黑客攻击的方式进行主动传播。
根据我们大量的取证分析得出来的结论是:目前,勒索病毒的感染方式,除了少量的邮件钓鱼和网站挂马之外,绝大部分都是来源于黑客攻击。因为攻击的背后是人,所以也是最难防范的一种。
黑客攻击的流程一般是这样的:
①、通过社工等多种方式获得目标客户的IP地址(如果不是专门的APT攻击,黑客一般会直接进行第二步)
②、通过端口扫描,找到计算机开放的端口,尤其是高风险端口,比如3389和445.
③、获得权限。找到特定端口的开放信息之后,采用口令爆破或者该端口存在的漏洞进行攻击,进而获得管理员权限。
④、内网搜索。也就是横向渗透,获得局域网内一台电脑的权限后,黑客会对内网机器进行同样的端口扫描和口令爆破,获得内网计算机的用户名和口令。
⑤、登录服务器,关闭杀毒软件。种植后门和勒索木马,对特定计算机进行加密勒索。
⑥、清除痕迹。黑客完成勒索操作后,一般会新建管理员权限的用户或者种下木马,之后尝试清除自己留下的痕迹。
当然黑客也可以通过近场攻击,比如BAD USB的方式进行攻击。“BadUSB”的设备,类似U盘,但不是U盘(系统识别出来是键盘,所以终端管理程序对它无效)。它模拟键盘操作,一旦插入计算机,就会自动执行预设的指令进行攻击,只要利用社工的方式,让用户把它插入计算机就会自动执行黑客事先准备好的恶意代码,不需要人为参与就能完成。
看一下整个的攻击流程,是不是感觉似乎你想像中的杀毒软件只能在第五步植入病毒的时候才会起作用?因为杀毒软件一般情况下只会对文件中的恶意代码进行查杀,所以如果没有形成文件(比如最近很流行的无文件攻击),那么传统的杀毒软件其实是很难防的。
回到上面提到的问题,如果你想问,我想买杀毒产品,哪个厂商的好?某某产品据说排名第一,是不是最好的?这类问题其实很难回答。产品性能当然是有差别的,有的差别还比较大,到底什么样的产品才是适合自己的?为什么有的很贵,有的却很便宜?到底有什么区别?很多用户在疑惑这个问题。
产品只是一个工具,用来解决你某些问题的工具,所以你最重要的是要了解自己的需求,梳理自己的业务,知道自己想要的是什么,根据自己的需要再去按图索骥,就会简单的多。如果我们要对勒索病毒进行防范,现在我们知道了黑客的攻击流程,那么只要针对每一步的攻击都能做到有效防范,就可以最大限度的做到对勒索病毒的防范。
我们在选择产品的时候,只要验证是否能针对这些攻击流程做到有效防范,就知道这款产品是否是我们需要的产品,下面我们来看一下针对黑客的攻击,反病毒产品哪些功能可以做到有效防范:
03
—
了解攻击手法
在测试之前,我们先把黑客的攻击流程进行一下分解梳理一下(除了APT攻击,黑客会针对特定的IP进行攻击外。一般情况下,黑客都是无差别攻击,所以我们从第二步的端口扫描开始):
观察这几年勒索病毒的爆发情况,其实是有一些规则的,一般都是在爆出重大漏洞之后,会迎来勒索病毒的大爆发。比如勒索病毒最开始大面积爆发始于著名的“永恒之蓝”漏洞,除系统漏洞,还有第三方程序的漏洞,比如著名的JBoss Web服务器、WebLogic Web中间件、Adobe Flash等,最近也是频发漏洞。
一旦爆发漏洞,黑客就可以依据这些应用所使用的端口进行扫描,一旦扫描到开放这些端口的IP,黑客就可以进行下一步的动作。在这一步,能有效防范的方法有:打补丁、主机IPS(HIPS),另外就是利用防火墙规则设置ACL。比如WebLogic,它只是一个web中间件,不需要对外提供任何服务,只需要为Web服务器和数据库服务器提供服务就行了,所以只需要在防火墙上设定规则,只允许它跟web服务器和数据库器进行通信,即使它有漏洞,如果不暴露在外面,那么它遭受攻击的可能性就会大大减小。这里的防火墙是指主机防火墙( HFW)。
在这一步,其实被利用最多的是微软远程桌面的3389端口,很多人为了图方便会开放远程桌面服务,同样的也为黑客打开了方便之门,黑客最喜欢扫的就是3389端口,远程桌面确实方便,如果你非要开,建议在防火墙上添加规则:只允许指定的IP可以访问这个端口。
所以你选择的产品起码应该带有主机防火墙和主机入侵检测的功能,如果第一步就能监测到攻击并把黑客拦截在外,那么安全性将会大大提高。你可以利用系统自带的防火墙来实现,也可以使用杀毒软件带的防火墙,只是操作系统自带的防火墙在非域环境下不能做统一的设置和管理。
如果很不幸,第一步被黑客突破了,黑客通过端口扫描到了你的IP,那么他下一步要做的就是利用这个端口,最有效的办法就是漏洞利用攻击。黑客利用已知的漏洞和新的(零日漏洞或之前从未发现的)漏洞,比如Adobe Flash,Adobe Reader,Java运行环境,网络浏览器和Windows组件中,这些程序被植入恶意代码并执行。恶意程序大量的使用了漏洞攻击,但也有(被某些组织或个人等)针对性地漏洞攻击,很难使用传统的检测方式发现和阻止。
正常情况下,我们要求所有服务器应该第一时间打补丁,能及时将最新的漏洞补丁打上,可以很好的防范类似攻击,但问题是针对很多的0day漏洞攻击(0day漏洞是指尚未发布补丁的漏洞),我们根本没有补丁可打,而且即使不是0day,很多单位的服务器也很少能做到及时打补丁,有的是因为盗版,有的是担心打补丁造成系统重启甚至无法系统,有的是担心打过补丁会影响业务系统的运行等等。就在上周,一个医院的客户报告说单位很多电脑蓝屏,我们去一检查,发现经过这么多年的轰炸,他们依然没有打永恒之蓝的补丁。
所以如果你选择的产品也带有针对漏洞攻击的防护功能,可以使黑客的漏洞攻击无效,黑客要想成功入侵,无疑将会大大增加攻击成本。
如果最终黑客还是攻入了您的某一台计算机,可能被攻击的是一台无关紧要的计算机,那么下一步黑客要做的就是进一步扩大战果——进行横向渗透。其实横向渗透和从外网攻击内网一样,也要从扫描开始,进行口令爆破,进而找到并锁定要攻击的服务器。
内网环境下黑客可用的攻击方式就更多了:绝大部分服务器是不连接互联网的,那么黑客要想入侵这些服务器,就要出同时连接内网和互联网的计算机,一般信息科的计算机都是这样,还有些比较隐秘的,比如利用USB无线网卡,偷偷连接WIFI的计算机,这些计算机是最有可能遭到攻击的,以这些计算机为跳板,进入内网环境。
在这里要想防范,就要防止计算机同时连接内网和外网,对于那些私插USB网卡的,需要利用设备控制的功能进行阻止。
如果不入侵服务器是否也能让服务器中招呢?有的,遇到的还不少。比如有些服务器开放了文件共享功能,并且图方便可以写入。那么黑客只需要在能够访问到共享的服务器上引爆勒索病毒,同样可以对共享文件夹内的文件加密。这种情况下,由于病毒程序并没有在服务器上运行,服务器并不能检测到病毒,所以服务器最能对这种情况进行防范。
如果前面的手段都失效了,最终黑客还是进入了服务器(比如服务器存在弱口令,黑客通过远程桌面的合法手段进来了),这种情况下,有没有办法阻止勒索病毒呢?根据我们对感染过勒索的服务器的大量分析,了解到:黑客在这一步,就是进入服务器执行病毒程序,加密文件的过程。如果勒索病毒程序没有被反病毒程序查杀,那最好,直接运行病毒,有的还会擦除痕迹。有时候病毒直接被反病毒程序杀掉了,那么黑客就要想办法关闭或直接卸载反病毒程序。在这里考验的就是反病毒程序对病毒的防范能力,以及自身的健壮性了。比如查杀率、对未知病毒的防范、自身的安全保护措施等等。如果能够把勒索病毒杀掉,或者杀不掉,但是能够让它运行不起来,对服务器来说都是安全的。
所以,在这个环节,杀毒软件最好具有以下的功能:主动防御或行为检测技术,能够对未知病毒进行防范。杀毒软件要有防止关闭和卸载的功能。要有能对进程进行权限设置的功能,对于未授权的程序和进程禁止运行。对共享文件夹的保护等。
说了这么多,对于病毒和黑客攻击的防范,总结起来就是:
l 常规传播:对邮件、网页、共享、U盘等
l 扫描阶段:IPS防护、防火墙;
l 入侵阶段:漏洞防护、共享文件夹的防护
l 内网渗透:IPS防护、防火墙、外设管控、BadUSB
l 攻入服务器:病毒查杀、阻止程序运行、对未知病毒的防范、更新速度
验证一款软件是否能防得住勒索病毒的有效手段就是针对黑客入侵流程的每一步进行测试验证。
04
—
测试方法
测试方法包括静态测试和动态测试
所谓静态测试,就是下载病毒样本包,测试杀毒软件对病毒样本的识别率、管理功能等。
目前很多的测评都是一些静态测试,用病毒样本包来测试产品是否能够识别,对于不能识别的病毒发送给厂商看多久可以更新病毒库,测试厂商对于新病毒的反应速度,同时直接执行不能识别的病毒,看杀毒软件对于未知病毒的主动防御能力。设置应用程序权限,看未设置权限的程序如病毒能否运行等。这种方法主要用于测试防病毒软件的基本功能,包括报告、集中管理等功能。但难以准确反应产品在真实攻击的实战能力。
第二种方法是动态测试,即模拟攻击,测试防病毒软件在面对攻击时的反应,常见的方法是使用KALI LINUX进行模拟攻击。测试防病毒软件在漏洞利用、网络攻击、端口防范等方面如何有效拦截。
05
—
测试步骤
详细的测试步骤,在这里就不说了,有兴趣的朋友欢迎打赏获取。
*本测试报告由丁志军同学进行初稿,大兵修改。
延伸阅读
欢迎扫描二维码关注:大兵说安全