基于进程监听的木马线索提取系统研究
2016-11-21徐国天
徐国天
(中国刑事警察学院 辽宁 沈阳 110035)
基于进程监听的木马线索提取系统研究
徐国天
(中国刑事警察学院辽宁沈阳110035)
研究了基于进程监听的木马线索提取和分析系统。该系统可以按照进程对捕获数据包进行分类,从海量数据包中自动筛选出木马恶意进程收发的数据包,使得可疑进程和可疑通信直观地展现在调查人员面前,从而简化了分析的难度,提高了成功获取木马线索的概率。
木马进程监听线索提取
木马是一种恶意程序,用户在使用计算机、平板电脑或智能手机浏览网页、收发电子邮件时均可能被种植木马。一旦感染木马个人终端将被黑客完全控制。木马可以远程操作受害者计算机、窃取涉密文件、篡改重要数据、盗取网银账户、监听受害者的语音和视频、网络通信[1]。
木马线索的提取和分析是电子数据取证中的难点问题,目前,主要采取两种提取方法:一种是使用逆向分析技术解析木马恶意程序文件,提取相关线索。它是将木马的可执行程序文件反编译为可以阅读的ASCII码源程序,再通过逐条分析源代码的方式找出黑客的线索信息。此方法需要专业基础,操作难度大;另一种是通过网络监听技术来进行木马痕迹提取。它是使用wireshark等数据监听工具捕获被害者主机收发的通信数据,再从捕获的数据包中提取出黑客的相关线索,例如黑客主机的IP地址、使用的控制命令等。但在实际应用中,现有监听软件存在以下问题:①不能实现连续、长时间监控。现有监听软件将捕获的网络数据包保存在主机内存中,当用户停止抓包后,内存中的数据才会被写入到硬盘上。由于内存空间有限,因此,现有软件不能实现长时间、连续监控。而盗号木马在窃取到敏感信息之后通常不会立即发送出去,而是在未来某个时间点统一进行发送,这种不确定性就要求监听软件必须具备长时间、连续监控能力;②现有软件将所有抓取到的数据包混杂在一起,不利于分析;③现有软件不能确定数据包是由哪个进程发出的,不能准确定位恶意程序。
因此,本文设计了一款专门用于木马线索提取的软件系统,以简化木马线索提取操作,弥补公安机关现有木马线索提取能力的不足。
1 基于“进程监听”的木马线索提取方法
进程是指运行中的应用程序,例如聊天使用oico进程,浏览网页使用IE浏览器进程。如图1所示,在受害者主机端运行了一个木马进程,在黑客主机端运行了一个木马控制端进程。受害者主机上的木马进程会将窃取到的敏感信息发送给黑客主机端的控制进程。但是,在发送这些敏感信息之前,要通过控制进程的身份认证。
从图1可以看到,受害者主机端的木马进程提交了用户名和密码,通过认证之后,才会将窃取的敏感信息封装成一个文件发送给黑客控制进程。调查人员只要截获这些通信数据,就可以从中提取出黑客主机的IP地址、黑客的邮箱账号、密码等相关信息。
图1 捕获木马进程通信数据和提取线索
图2 基于“进程监听”的方法自动筛选出木马进程数据包
从图2可以看到,受害者主机端不是只有一个木马进程在运行,而是有十几个、甚至几十个进程在同时运行。这些进程同时与多个外部主机进行网络通信,每秒钟会产生成百上千个通信数据包。木马恶意进程收发的通信数据被淹没在这些海量的通信数据中。调查人员无法确定每个数据包是由哪个进程发出的,进而无法准确定位木马恶意进程收发的数据包,导致提取木马线索的难度极大,同时也非常容易造成误判事件的发生。
2 软件的使用步骤
软件的使用步骤如图3所示。首先在受害者主机端直接运行监听软件或者通过交换机镜像端口捕获通信数据。在开始捕获通信数据之前要进行必要的设置,例如选定一块工作网卡,调整缓存大小,设置硬盘内的存储位置(用于在缓存满时将缓存内的网络数据写入硬盘,实现长时间监听)。其次是激活潜在的木马程序,诱使其向外界发包。盗号木马不会像远程控制木马那样主动的与外界进行通信。因此,调查人员需要采用一些措施促使木马向外界发送通信数据,以便能够提取到相关线索。打开一些登录窗体,例如网上银行登录界面、QQ、MSN等登录窗口,木马会立即识别出这些窗口,如果其中包含木马监控的敏感窗口标题,那么,用户在这个窗体内输入的所有信息都会被记录下来并发送给黑客。但是登录测试结束之后不能立即停止数据包捕获,因为木马通常不会盗取到敏感信息之后立即发送,而是延迟一段时间后在进行信息发送。因此,需要进行较长时间的网络数据捕获。最后停止捕获,查看通信数据中有无木马传递的数据包,提取相关痕迹。
图3 软件的使用流程
3 结果的初步分析
监听软件可能捕获成千上万个数据包(与捕获时间长短、通信状况有关),这些数据包混杂在一起,如图4-a所示。软件在分析阶段将这些混杂在一起的数据包按照进程和协议类型进行划分,得到3条tcp链接。图4-b为第1条tcp链接,它表示hh.exe进程创建了这条tcp链接,本地IP地址192.168.0.1、本地端口1025、远程主机IP地址202.10.22.3、远程端口25,在这条链接上传递了70个数据包。用户可以查看某条通信链接具体的数据包内容(类似sniffer、wireshark等软件对数据包的分析),也可以实现关键字搜索功能。
图4 捕获数据的分析
3.1异常进程的识别
某些木马运行之后有独立的进程,在对捕获结果进行分析时,那些不是用户自身启动的进程将成为调查的重点。例如图4-c和图4-d中的firefox.exe是用户打开火狐浏览器查看网页之后产生的正常进程,而hh.exe属于不是用户启动的特殊进程,被定义为有异常的可疑进程,需要查看hh.exe传递的具体数据以确定其身份。
3.2异常行为的识别
通过通信链接的目的端口可以判断出对应的动作行为,例如tcp21端口说明用户执行了FTP的上传、下载动作;tcp80端口对应浏览网页行为;tcp25端口对应发送邮件;tcp110端口对应接收邮件;tcp443端口对应以HTTPS方式浏览网页;tcp23端口对应一次telnet操作;tcp1433端口对应一次SQL Server2000的登陆等。如果用户自身没有执行对应的动作,但在捕获结果中出现了这种行为,那么可以确定为异常行为。
例如在图4-b中,用户并没有发送邮件,但出现了hh.exe进程传送邮件的行为,这可以识别为异常行为。进入该通信链接、查看传递的70个数据包,可以确定其身份。
3.3异常端口的识别
一般情况下,每个进程都有经常使用的几个常用端口号,例如firefox浏览器通常使用tcp协议的80、443、21、8080等端口,Outlook express经常使用tcp协议的25和110端口。客户计算机上安装的防火墙或杀毒软件出于安全考虑可能只允许某些合法进程(例如firefox、outlook) 进行网络通信,而不允许某些私有进程与外界通信。这就迫使某些木马程序将自身隐藏进某个合法进程之中,以合法身份运行。但从通信端口可以识别出这类异常,例如firefox打开了3030端口、outlook打开了80端口等,这些可以认定为异常端口,需要进入链接查看具体数据包。
另外如果从通信结果中发现某些本不该与外界通信的进程(例如explorer、计算器)产生了网络通信数据,初步怀疑这些进程感染了木马程序,需要进入通信连接,查看具体数据包予以确定。通过对捕获结果的初步分析可以识别出一些异常痕迹,但如果想找出黑客的具体线索,则必须进入数据包加以分析,下面具体研究。
4 盗号木马线索追查
盗号木马在窃取到敏感信息之后,会将信息通过电子邮件发送到黑客指定的电子邮箱,或发送到黑客指定的WEB服务器上。两种通信方式分别使用了ESMTP和HTTP协议。
4.1通过电子邮件传送信息的盗号木马
早期电子邮件传输采用的是SMTP协议,它不对发信人的身份进行认证,也就是说任何人都可以伪造任意发信人发出电子邮件,这就导致欺骗行为和垃圾邮件事件的发生[2]。ESMTP协议可以较好地解决这些问题,它对发信人的身份进行了认证,只有正确提交了发信账户的密码信息,才可以进行电子邮件发送。盗号木马在发送信息之前也要通过邮件服务器的身份认证,使用数据监听工具截获这组通信数据,就可以从中提取出黑客电子邮箱的账户和密码数据。只是这部分数据经过base64编码处理,直接查看到的是乱码数据,经过编码转换后,就可以查看到对应的明文数据,图5显示的是ESMTP协议的通信过程[3]。
图5 通过电子邮件传递盗号信息
身份认证之后就是邮件传送阶段,发信人和收信人帐户信息、邮件的主题和正文数据都包含在通信数据中。这部分信息中的英文和阿拉伯数字信息采用ASCII编码,可以直接查看。中文信息采用base64编码,需要转换之后才能查看。
4.2通过HTTP协议传送信息的盗号木马
一些类型的盗号木马在窃取到敏感信息后,会将这些信息发送到黑客指定的WEB服务器上。盗号木马发送信息采用的是HTTP协议,其通信流程如图6所示。
图6 通过WEB服务器接收信息
从通信流程上看,盗号木马的通信数据与用户浏览网页过程中产生的通信数据极为相似,也是由3次握手建立连接,数据通信,4次挥手中断连接组成。但是仔细观察就会发现,盗号木马产生的通信量极小,不足10个。而正常的HTTP通信数据中,单个tcp数据流中数据包个数要明显多于这一数值,因此,通过单个tcp数据流中传递的数据包个数可以区分正常和异常的HTTP通信数据。
5 远程控制木马线索追查
远程控制木马一般由客户端和服务端组成。在被入侵主机上运行客户端,称为“肉机”。在黑客主机上运行服务端,称为控制端。控制端通过计算机网络对“肉机”进行远程控制。
图7显示的是远程控制木马在不同情况下的通信流程,图7-a流程图显示的是“肉机”与黑客主机可以建立完整通信连接的情况。通信流程依次包括DNS解析过程,3次握手建立连接、数据通信、4次挥手中断连接。此时在受害者主机端使用netstat-an命令可以查看到对应的tcp控制连接,进而可以提取出黑客主机的IP地址和端口号等相关信息。当黑客主机没有开机或控制软件没有打开时,DNS解析过程可以顺利进行,但是“肉机”无法与黑客主机建立tcp数据连接,产生的现象是“肉机”每隔一段时间就会发出一次握手请求,对方主机没有应答(关机时)或者返回RST拒绝报文(控制软件没有启动),如图7-b所示。当DNS映射记录失效时,“肉机”发出的DNS解析请求不会得到应答,如图7-c所示。后两种情况下,在受害者主机端使用netstat-an命令查看不到异常的通信连接,也就无法直接提取出黑客主机的IP地址和端口号等相关线索。但仍可以通过数据包捕获的方式进行线索调查。图7-d是远程控制木马的网终结构。
图7 远程控制木马在不同情况下的通信流程
6基于“进程和通信连接”的搜索方法
在捕获的数据包中,执行搜索是木马线索调查的一项重要内容。盗号木马通常使用HTTP-GET、HTTP-POST、ESMTP协议发送盗取的数据。搜索
包括:“GET”、“POST”、“SUBJECT”等。“GET”和“POST”可以定位木马通过HTTP协议提交的参数,“SUBJECT”可以定位木马发送的电子邮件正文。另外,调查人员还可以自定义搜索
,例如“username”、“pass”等。
目前,使用的搜索方法是在所有捕获数据包中统一执行搜索操作,再逐一查看命中的搜索结果,这种方法如图8-a所示。每个绿色实心圆点代表一个命中的
,调查人员可以逐一查看这些命中数据包。但由于这些数据包属于不同进程的不同的通信连接,因此,不能准确判断出哪些报文是合法进程产生的,哪些是非法进程产生的,也就无法准确定位木马线索。
图8基于“进程和通信连接”的搜索方法
本文开发软件可以按照进程和通信连接将捕获数据包进行分类,如图8-b、图8-c、图8-d所示。在每个通信连接所属数据包内执行关键词搜索,即在每条通信连接垂直方向移动。用户也可以在每条通信连接之间进行切换,即执行水平方向的移动。调查人员可以在“恶意进程或恶意通信连接”中执行关键词搜索。
通常情况下,受害者主机端的木马恶意程序会主动寻找网络中的黑客计算机,并接受它的远程控制。从通信数据中可以提取到相关线索。但是当黑客关闭了计算机,或者关闭了木马遥控程序时,在两台主机之间就不会产生任何通信数据,也就无法提取到相关线索。
[1]徐国天.论中间人攻击对网上银行的安全威胁[J].中国刑警学院学报,2008(1):23-25.
[2]徐国天.基于OSPF路由欺骗的“黑洞”攻击及防御措施研究[J].信息网络安全,2012(11):10-12.
[3]Behrouz A.Forouzan.数据通信与网络[M].北京:机械工业出版社,2005:200-206.
(责任编辑:于萍)
TP309.1
A
2095-7939(2016)03-0050-04
10.3969/j.issn.2095-7939.2016.03.010
2016-05-10
公安部技术研究计划项目(编号:2014JSYJB033);公安部应用创新计划课题(编号:2014YYCXX JXY055);辽宁省教育科学‘十二五’规划立项课题(编号:JG14db440);辽宁省自然科学基金计划项目(编号:2015020091)。
徐国天(1978-),男,辽宁沈阳人,中国刑事警察学院网络犯罪侦查系副教授,主要从事网络安全与电子物证研究。