企业安全建设之蜜罐技术的应用(二)

2019-04-29 6,916

随着越来越多的恶意攻击针对客户端软件,比如web浏览器和Email客户端,使得用户在使用客户端软件时,恶意软件入侵用户主机,给主机安全带来了严重威胁。

当前的防火墙和杀毒软件对已知的客户端恶意代码可以有效的拦截,但对于未知的客户端恶意程序不能够有效地检测。针对这种缺陷,出现了针对客户端软件的蜜罐,即客户端蜜罐,又称honeyclient。通过主动地开启客户端软件来访问数据源,监控有无异常行为出现,对未知恶意程序进行跟踪分析。

图片1.png

客户端蜜罐

客户端蜜罐的思想是由蜜罐的技术发展而来的,传统的蜜罐就是通过精心布置网络陷阱来吸引黑客入侵,从而了解黑客的攻击方法、攻击目的等重要信息。具体来说就是通过诱敌深入、监控和分析,最后达到预防从而保障安全的目的。传统的蜜罐主要指的是服务端的蜜罐。

客户端蜜罐与传统的蜜罐不同,它是针对客户端软件可能存在的安全薄弱性,主动启动客户端软件去寻找可能存在的攻击并分析,是一个主动的过程。而传统的蜜罐是被动的实体,被动地等待攻击者前来攻击。

客户端蜜罐主要针对的是web浏览器和Email客户端,因此它需要数据源,面临着如何达到大的网络覆盖面的挑战。为了解决这一点,客户端蜜罐将蜜罐和爬虫结合在一起。用爬虫爬取网络url来寻找可能存在的通过客户端软件执行的恶意代码,这些恶意代码包括:病毒、后门、僵尸程序、木马下载器、木马释放器、木马代理和一些间谍软件程序等。

客户端引擎设计

客户端引擎运行在各个虚拟机上,利用蜜罐的思想来主动浏览网页。该引擎分为IE引擎模块和监控模块。IE引擎模块负责启动浏览器软件InternetExplorer浏览网页,同时启动监控模块来对浏览网页的行为进行监控,当出现异常行为时,监控模块进行报警,并记录相应的日志文件

IE引擎模块

IE引擎从数据库中获取相关url来开启InternetExplorer。此模块开启4个线程:一个线程负责从数据库取出url,开启InternetExplorer。一个线程负责监测网络状态。另外两个线程创建事件来与监控模块进行通信,当监控模块发现有异常情况时,通知此子模块,模块做出反应,定位url。程序开始之前要加载监控模块,创建事件,并分别通知监控模块事件建立成功,在程序退出时卸载监控模块。

具体过程如下:

1)首先获得网络连接状态,若连接打开则开启InternetExplorer。

2)在开启InternetExplorer一段时间后,检查网络数据流量,若小于某个值,才能试图关闭InternetExplorer。

3)发送消息关闭InternetExplorer。

4)若驱动报警,寻找报警进程打开的url,对此页面进行保存。

每次开启InternetExplorer访问10个页面,由于很多恶意软件的下载需要一定的时间,且它们的运行可能会有一段时间间隔,因此每次停2min(根据网络流量时间会有所延长)。当有异常时,驱动部分报告,模块根据报告找到报警页面。实验访问页面的速度为每小时250个左右。

为了加快速度,系统采用了多个虚拟机来对数据库进行分布式访问,提高了浏览网页的效率。

监控模块

在开启InternetExplorer的过程中,要有监控软件来监控是否有异常行为,比如修改注册表、可执行文件的下载执行、访问网络行为,还有一些黑客惯用的技术,如开启端口、反弹端口等,对这些危险性极高的行为需要重点监控。本系统通过底层驱动来实现监控。主要从以下五个方面进行监控:

1)可执行文件的创建、修改。重点监控的文件夹是InternetExplorer的临时文件夹、Windows系统目录下的system32文件夹等。

2)进程的创建。重点监控由浏览器进程,即IEXPLORER.EXE进程创建的所有子进程。

3)注册表项的创建及修改。由驱动来监控键值的read/write操作。重点监控spyware、木马等恶意软件经常修改的键

项,这样可以检测对系统的配置作出的恶意修改。

4)网络行为监控。由于恶意软件的运行大都需要访问网络,因此对访问网络行为进行监控,当有非法文件访问网络时,报警并作出响应。

5)漏洞利用的特征。对已有漏洞的特征进行模式匹配,可以检测到对已有漏洞的攻击。

通信交互

监控模块需要与IE引擎模块进行交互。当浏览一个网页时,若此网页存在非法的行为,则监控模块向IE引擎模块报告,IE引擎模块则根据访问网页记录来定位url。

交互过程如下:

1)IE引擎模块创建事件后通知监控模块;2)监控模块检测到异常情况释放事件;

3)IE引擎模块获得事件询问并得到进程的pid。

IE引擎模块与监控模块采用事件的方法通信。IE引擎模块创建event,然后等待;当监控模块报警时,IE引擎模块获得event,询问监控模块报警原因;监控模块把报警进程的pid交给IE引擎模块,IE引擎模块定位出url。

 

HoneyC

HoneyC是一个低交互客户端蜜罐的实现,这类客户端蜜罐不使用真实的操作系统和web浏览器,而是使用仿真的客户端分析web上的恶意内容。通过静态检查web服务器的相应,发现恶意的服务器,例如,借助不同的特征查找漏洞利用页面。

HoneyC使用仿真的客户端,向服务器索取足够多的响应以满足分析恶意内容的需要。因为是模块化设计,所以HoneyC非常灵活并可以在许多不同的方面扩展。它可以仿真不同的访问客户端,通过不同的方法搜索可疑网站,使用多种方法分析搜集到的数据。

图片2.png

如图画出了HoneyC的示意性描述,客户端蜜罐包括三个不同的组件:排队器、访问器和分析引擎。这次模块彼此交互。排队器负责产生一个可以服务的列队,以备进一步分析。访问器负责与可疑web服务器的实际交互,访问器通常模拟一个正常的web浏览器,向服务器发送请求。访问器将搜集的所有信息再交给分析器。这个组件检查访问器与web服务器交互时是否违背了安全策略。

 

分析恶意软件

在过去,蜜罐捕获的大多活动是手工活动。攻击者将实际地登录系统、键入字符、安装rootkits,并以不同的方式滥用蜜罐。如今,攻击者为提高效率并得到投资回报,大多数攻击都是自动的。这种自动化大多是借助恶意软件实现的。通常可以使用蜜罐捕获到自动的威胁。例如一个运行未打补丁的windows版本系统的蜜罐,将很有可能在几分钟内被攻陷。

面对这样的自动化威胁,传统的手工反编译和逆向工程的方法已经无法对抗恶意软件。必须自动地、有效地和正确地分析自动化恶意软件。自动化意味着分析工具应该快速地而且是无需用户干扰地生成一个恶意软件样本的详细报告,一份机器可读的报告之后可以用于启动自动化响应程序,如自动更新入侵检测系统的特征库,从而保护网络在运行中不被新的恶意软件样本感染。一个工具的有效性是指所有与恶意软件有关的行为都应该被记录下;恶意软件没有被执行的功能应该被忽略。一个工具应产生一个对恶意软件的正确的分析,即每个记录行为应该确实是由恶意软件样本启动的,避免对其作出错误的判断。

 

CWSandbox恶意软件分析工具:

GFI Sandbox的前身是CWSandbox,是一个业界领先的动态恶意软件分析工具。其使用方便,只需要填写email后上传文件即可,文件限制在12288kb内。可分析几乎所有的Windows应用程序或文件,包括感染的Office文档,PDF文件,恶意网址,Flash广告和定制的应用程序。

服务地址: http://www.sunbeltsecurity.com/sandbox/

CWSandbox用于win32操作系统系列,它满足了这三个设计标准:自动化、有效性和正确性。

CWSandbox本身包含两个应用程序:cwsandboc.exe和cwmonitor.dll。该沙盒创建一个恶意软件应用程序的挂起进程,并将DLL文件注入其中(DLL注入)。当这个DLL文件被初始化时,所有用于关键API函数的钩子函数被安装(API拦截)。然后该沙盒向DLL程序发送一些运行选项,而该DLL反过来会回复一些恶意软件进程运行时的信息。

CWSandbox使用DLL注入和API拦截技术,检测恶意软件执行期间所有相关的函数调用。根据现实世界中的一个恶意软件二进制文件的实例,以及我们的自动化处理的一些初步结果,展示了这种方法的可行性。

 

恶意软件样本分析有一种方法:通常分为代码和行为的二进制分析

代码分析:通过分析恶意软件样本的代码,可以检查所有可能的控制流。因此,可以发现所有的功能,甚至是只有在一定条件下才会被触发的隐藏行为。最简单的方法是检查源代码本身,但这往往是不可能的,因为通常无法得到恶意软件的源代码。即使得到了源代码页无法确定二进制可执行文件是否与源文件一致。

代码分析也有一个严重的确定,大多数当前流行的恶意软件二进制文件,借助不同的二进制文件压缩工具或加密工具进行了模糊化处理。因此它们可以使逆向工程更加困难。对于一个给定的二进制文件,先解压再开始实际的分析是非常费时的。此外,压缩工具还试图欺骗通常的反汇编程序,所以有了这些工具使得代码分析更加困难。

行为分析把恶意软件的二进制文件当作一个黑盒子处理,只分析其执行过程中外在的可见到的行为。动态分析即为观察一个软件工件的一个或多个行为,通过执行软件本身分析它的属性。动态分析恶意软件有两种不同的方法:

1) 事先保存一个完整的系统状态镜像,恶意软件执行后前后对比完整的系统状态。

2) 监视恶意软件应用程序执行过程中的一切行为,例如借助调试程序或专门工具。

需要注意的是行为分析也是有风险的:首先,执行恶意软件样本有风险,类似一个正常的蜜罐,你允许恶意行为发生,因此一些防范措施是必要的。第二,由于只检查一个执行路径,结果不一定完整,也就是说,某些条件才能触发的功能,若执行期间条件不成立,则将不能发现这些行为。

 

基于行为分析的不同构件:

Api拦截、DLL注入:需要基础:有操作系统的基本知识(进程管理,内存管理),会在VS下编写和调试Win32应用程序和动态链接库

Api拦截:

Windows Api 是一个程序员的接口,用于访问Windows资源,如文件、进程、网络、注册表和Windows所有其他主要部分。用户应用程序使用API代替直接的系统调用,因此这为行为分析提供了可能。如果监视所有相关的API调用及其参数,我们便可得到一个动态的分析。API本身包含几个在WINDOWS系统目录中的DLL文件,其中最重要的是kernel32、dvapi32.dll、ws2_32.dll和use***.dll文件。几乎所有的API函数都不直接调用系统,而只是封装给所谓的Native API,它在文件ntdll.dll中实现。

DLL注入:

DLL注入是将代码注入到一个远程进程中,并让远程进程调用LoadLibrary()函数,从而强制远程进程加载一个DLL程序到进程中。而当DLL被加载时就会运行DLL中的DllMain()函数,所以就会为恶意代码的执行提供机会,而因为DLL本身是由感染后的进程加载的同时PE文件也并没有对系统进行过多的敏感操作,所以这种技术具有相当强的一种隐蔽性。

图片3.png

 

下面给出了几个恶意软件分析平台:

1、 REMnux - 用于逆向工程和恶意软件分析的Linux工具包

图片4.png

REMnux是一个用于辅助逆向分析人员完成逆向分析任务的免费虚拟机镜像。其中包含了大量的逆向分析工具,可分析基于Web的恶意软件,如恶意的JavaScript,Java程序,和Flash文件。它也有工具可以分析恶意文档,如微软的Office和Adobe PDF文件,还有通过内存取证逆向病毒的实用工具。目前,REMnux由Lenny Zeltser维护,并得到了David Westcott的广泛支持与帮助,你可在https://remnux.org下载到它。

REMnux是基于特征库来的,所以无法对应新的恶意软件,魅力在于检测恶意软件非常方便。它配备了很多工具,详细了解请参考:

https://bbs.77169.com/forum.php?mod=viewthread&tid=371235&from=timeline&isappinstalled=0

 

2、ClamAV是一个C语言开发的开源病毒扫描工具用于检测木马/病毒/恶意软件等。可以在线更新病毒库,Linux系统的病毒较少,但是并不意味着病毒免疫,尤其是对于诸如邮件或者归档文件中夹杂的病毒往往更加难以防范,而ClamAV则能起到不少作用。ClamAV有集成在REMnux中。可以参考上面给出链接中的REMnux配备的工具。

官方地址:http://www.clamav.net/

下载地址:http://www.clamav.net/downloads

安装方式可参考:

https://blog.csdn.net/liumiaocn/article/details/76577867?from=timeline&isappinstalled=0

linux下ClamAV使用 可参考:

https://www.cnblogs.com/bethal/p/6030716.html

 图片5.png

 

3、利用ZeroWine进行恶意软件行为分析

图片6.png

图片7.png

Zero Wine是一个开源的(GPL v2)研究项目,用来对恶意软件的行为进行动态分析。实际上,Zero Wine只是使用WINE在一个安全的虚拟沙箱(也就是在一个隔离的环境中)运行恶意软件来收集该程序调用的API的有关信息。Wine使用调试环境变量WINEDEBUG来输出恶意软件调用过的API,当然也包括恶意软件所传递的值。有了这些信息,恶意软件的行为分析将变得非常轻松。

Zero Wine是作为QEMU的虚拟机映像发行的,它带有一个已安装的Debian操作系统。这个虚拟机映像包括加载和分析恶意软件并根据收集到的信息生成报告的软件,该软件位于/home/malware/zerowine。通过正确的命令行选项运行该虚拟机,可以使用一个基于web的图形界面(一个使用Python语言编写的CGI)来加载要分析的恶意软件。

ZeroWine在Windows 7的安装和测试 参考如下:

http://blog.sina.com.cn/s/blog_624a83600101qmmp.html

Windows+VM安装zerowine 参考如下:

https://blog.csdn.net/gj333/article/details/17042551

 

4、Anubis是一个提供可控环境来执行用户提交的二进制文件的动态恶意软件分析平台。该系统通过监视关键的Windows API和系统服务调用、跟踪网络数据流、记录网络通讯,实现对二进制文件的分析,并生成综合分析报告。由于它通过公开的网络接口和很多安全组织、反病毒公司获得恶意程序样本,用户群广泛,所以收集到的样品体现了互联网上广泛而多样的恶意程序。

可以提交URL和文件进行分析,分析报告可以选择HTML,XML,PDF,TXT,PDF五种格式,报告中包含了测试文件及其释放文件的文件操作,网络操作,注册表操作等信息。并且对这些操作进行了细分。

相对于Norman的在线沙盒,来自奥地利的Anubis沙盒界面更加的友好,同时提供的分析资料更加详细。另外分析处理的速度也很快。基本上在2分钟之内就可以搞定。同时如果不方便在线看网页,Anubis也可以把分析报告发送到您的邮箱去,择日再看也是可以的。

服务地址: http://anubis.iseclab.org/index.php


本文作者:Lemon

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/104951.html

Tags:
评论  (0)
快来写下你的想法吧!

Lemon

文章数:68 积分: 647

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号