2024年3月28日发(作者:)
分布式木马检测系统设计实现
蔡洪民;伍乃骐;滕少华
【摘 要】随着网络安全问题日益严重,网络攻击手段层出不穷.特洛伊木马程序作为
一类主要的恶意代码,在侵犯个人隐私、远程监控他人电脑方面给计算机用户带来
巨大困扰.实现一个分布式的木马程序检测系统,将深度包检测技术应用到检测木马
程序上,使用正则表达式匹配攻击模式检测木马程序,加强了网络的安
全.%Networks attack means emerge endlessly along with the growing
serious network security problems. As a kind of main malicious code,
Trojan horse program brings great troubles to computer users in the areas
of infringing personal privacies and remotely monitoring the computers of
others, etc. The authors implement a distributed Trojan horse program
detection system by applying the deep packet inspection technology to
the detection of Trojan horse program, we use regular expression to match
the attack mode in detecting the Trojan horse program, therefore have
strengthened the security of networks.
【期刊名称】《计算机应用与软件》
【年(卷),期】2012(029)005
【总页数】3页(P278-280)
【关键词】网络入侵检测系统;特洛伊木马;深度包检测技术;正则表达式;Greta
【作 者】蔡洪民;伍乃骐;滕少华
【作者单位】广州中医药大学信息技术学院 广东 广州 510006;广东工业大学机电
工程学院 广东 广州 510006;广东工业大学计算机学院 广东 广州 510006
【正文语种】中 文
【中图分类】TP393.08;TP309
0 引言
随着计算机网络越来越成为在当今社会生活不可缺少的一部分,随之而来的网络安
全的问题也越来越明显。近年来,频频发生网络攻击事件,给受害者带来重大损失。
2009年5月播放软件暴风影音导致的南方六省断网事件、2010年1月搜索引擎
公司百度被自称是伊朗网军的黑客组织入侵,导致网民无法正常登陆百度网站达8
小时等事件已经表明网络安全问题已经成为刻不容缓的问题。
作为网络安全的“第二道闸门”的入侵检测技术,部署在防火墙之后,能够实时检
测网络流,通过对捕获的数据包进行分析处理,匹配入侵特征库,来检测各种入侵
攻击[1]。在分布式入侵检测系统中,策略统一由控制台定义、管理,控制台按
照分发协议将策略“推”到各个Agent客户端,再由各个Agent客户端实施策略
[2]。因为分布式入侵检测系统能够解决传统集中式的入侵检测存在的一些问题,
目前对分布式入侵检测系统的研究已经成为一个热点领域。
特洛伊木马程序作为一类主要的恶意代码,自诞生以来因其隐蔽的远程监控和侵犯
个人隐私给互联网用户带来巨大的危害,因此网络敲诈勒索事件频频发生。恶意攻
击者利用木马程序构建僵尸网络,并据此进行分布式拒绝服务攻击和发送垃圾邮件,
严重威胁到大面积互联网的安全。据统计,网页挂马已经成为地下黑客产业链中的
支柱产业。因此对特洛伊木马的攻击检测刻不容缓。
本文基于深度包检测技术实现了一个分布式特洛伊木马检测系统,各个Agent代
理端将数据包解析到应用层,通过正则表达式方法检测特洛伊木马攻击,取得良好
的效果。
1 基于正则表达式的深度包检测技术
1956年,数学家Stephen Kleene提出了正则表达式,主要通过字符的格式匹配
进行词法分析。正则表达式要自动完成与字符串的匹配工作,需要通过正则表达式
匹配引擎。正则表达式匹配引擎通常采用自动机理论,将正则表达式编译成有限状
态自动机。当前对正则表达式匹配引擎的研究主要集中在深度报文检测领域。
当前最著名的基于正则表达式的协议识别系统就是,它是Linux的
Netfilter/Iptables上一个开放源代码的软件,实现了应用层协议的识别[3]。
其他正则库还有Boost、CAtlReg、Greta等。Boost内容复杂,且需要一步步编
译,CAtlreg不能在VC6下用,GRETA是微软研究院推出的一个正则表达式模板
类库,GRETA包含的C++对象和函数,仅有6个文件,使字符串的模式匹配和替
换变得容易。
深度报文检测,也称报文内容检测,是防火墙、IDS/IPS、应用层协议识别、网络
监控、流量控制、内容审计等应用中的一项重要技术。传统的数据包过滤技术只检
查包中网路层的IP报头和传输层的报头,能控制站点之间、网络之间的访问,但
不能控制传输的数据内容,因为内容是应用层数据;DPI技术对数据包进行网络层
上的解析的前提下,进一步进行基于应用层协议的解析,清楚地知道数据包各个数
据位上的含义[4]。目前深度报文检测主要集中在研究入侵检测系统如何采用正
则表达式检测报文中是否含有恶意代码,例如在入侵检测系统Snort和Bro中引
入了正则表达式来表示规则。
综合以上,作者研究实现了一个基于DPI技术,应用GRETA正则库进行模式匹配
的分布式的特洛伊木马检测系统。
2 分布式入侵检测系统设计与实现
2.1 设计目标
据统计,特洛伊木马程序、计算机病毒和蠕虫是当今最主要的网络安全威胁。因此
对于特洛伊木马等网络攻击的检测可以加强网络安全。
本系统采用分布式结构,通过部署在局域网内部各个位置网络代理相互协作运行,
可以对特洛伊木马等攻击进行有效检测,达到加强网络安全的目的。当各个网络代
理发现木马通信以后,马上将入侵事件上报瘦服务器端,同时也会发送邮件进行报
警。同时,各个代理端Agent之间也可以通过即时通信、文件传输等方式进行入
侵信息的共享,这样从服务器端就可以对整个局域网络进行实时监控。
2.2 网络代理端的设计
本系统网络代理端的设计参考通用入侵检测框架CIDF(Common Intrusion
Detection Framework),CIDF系统框架分为事件发生器、事件分析器、事件数
据库和响应单元4个组件。本系统网络代理端分为捕包分析、日志记录、报警、
与服务器端通信等几个模块。本系统网络代理端的结构如图1所示。
图1 本系统网络代理端结构图
捕包分析模块采用Winpcap来捕获数据包,将捕获的数据包交给包分析引擎;协议
分析模块将数据包初步解析成IP包和ARP包,进一步将IP包解析成TCP包、
UDP包、ICMP包,针对TCP包进一步实现应用层协议解析,解析出
HTTPFTPP2P等应用层信息,同时对分片包进行分片重组,使用GRETA正则库
匹配入侵特征码检测网络攻击,其中入侵特征库参考开源入侵检测系统SNORT提
供的特征库规则构建;与服务器端通信模块与服务器端建立连接,相互之间通过消
息进行通信,发现入侵事件,写入远程服务器端数据库;日志记录模块对将捕获的
网络数据包解析后写入日志数据库中;报警模块一方面是通过SMTP协议发送报警
邮件到指定邮箱,另一方面将入侵事件写入远程服务器端数据库和本地日志文件。
本系统采用VC++开发,利用socket编程实现,数据库使用SQL Server2000,
正则库使用微软的GRETA。本系统网络代理端采用的主要技术是:
1)多线程技术捕获网络数据包,进行协议分析和TCP数据流重组。
Winpcap(windows packet capture)是 libpcap的 Windows版本,是
Windows平台下一个免费、公共的网络访问系统,它为win32应用程序提供访
问网络底层的能力。本系统客户端的捕获数据包模块就是基于Winpcap来实现的。
如果在一个繁忙的网络上进行截获,而不设置任何过滤规则,那么捕获的数据包是
非常多的,同时如果应用程序不进行必要的性能优化,那么将会大量的丢失数据包,
因此本系统客户端采用多线程技术来处理数据包;在程序中使用三个线程进行操作:
一个线程只进行捕获操作,另一个线程进行过滤操作,第三个线程进行数据包处理
操作。
2)深度包检测技术在协议分析的基础上将数据包解析到应用层,通过通信端口与通
信内容相结合检测木马程序[5]。
当网络中存在特洛伊木马程序通信时,一方面木马程序使用特定端口进行通信,另
外,数据包载荷里面有特征码[6]。以灰鸽子为例,作者对其通信数据包进行分
析,它会主动去攻击者的免费空间读取文本文件内容获取攻击者IP地址,进而主
动连接控制端TCP 8000端口[7]。通过实验作者将捕获数据包解析到应用层
HTTP协议时GET请求包中存在类似文件的请求[8]、使用TCP端口
8000都作为灰鸽子木马的通信特征,另外通过实验截取到灰鸽子木马通信时的数
据包负载长度是9,特征码是“_M DKGEM”。数据截图如图2所示。
图2 使用Ethereal截取灰鸽子木马通讯数据包
本系统客户端基于以上入侵特征对捕获的数据包解析到应用层,解析出应用层协议
和数据负载,匹配木马端口特征库和入侵特征码数据库,达到检测扫描攻击和特洛
伊木马程序的目的。
3)SOCKET编程技术实现各个Agent代理端之间多种通信方式。
各个Agent代理端一旦检测到入侵攻击后马上报警,一方面向指定邮箱发送邮件,
另一方面把检测到的入侵信息写入日志文件、写入远程服务器端数据库。各个
Agent之间还可以通过即时通信、文件传输实现相互之间的信息共享。
4)反弹连接技术,主动连接服务器端。
本系统客户端参考特洛伊木马中的“反弹连接”技术[9],把它应用到DNIDS
中。本系统客户端一经上线,马上主动到指定邮箱读取邮件,从邮件内容获得本系
统管理端IP地址,进行主动连接,从而方便了服务器端的管理。
2.3 瘦服务器端的设计
本系统的瘦服务器端与上述Agent代理端基本功能模块是相同的,但另外增加三
个模块:身份认证模块、与客户机通信模块、全局策略设置模块。身份认证模块对
登录管理端的管理员用户进行一个身份认证;与客户机通信模块与客户端建立连接
后,可以根据全局配置策略向客户机下达命令;全局策略模块从控制台进行整个系
统的全局策略的设置。
本系统瘦服务器端按照全局策略模块中的设置,向已建立连接的网络代理端下达命
令。网络代理端发现入侵事件后,将其写入远程瘦服务器端数据库,同时写入本地
日志文件。
2.4 分布式木马检测系统的工作流程
本系统各网络代理端与服务器端建立连接后,服务器端与部署在各个位置的多个客
户端就可以对整个局域网进行实时监控。网络代理端根据配置,实时监控本地主机,
当检测到入侵事件后直接写入本系统服务器端的数据库(如图3所示)。
图3 本DNIDS系统结构示意图
3 实验结果
本系统采用分布式结构,解决了集中式入侵检测系统存在的因单检测点压力大而导
致频繁丢包的问题;采用多线程技术,将捕包与解析包分离开来,也大大减少了系
统的丢包率;通过服务器端的统一全局策略配置,实现了各代理端协同一致,从服
务器端的入侵事件数据库中可以对整个局域网络的攻击有一个总体的把握,加强了
网络安全。
本系统在某大学校园网环境中进行测试,该大学校园网采用“核心-汇聚-接入”的
三层网络结构。在校园网络各汇聚交换机上采用端口镜像技术将本汇聚交换机主干
链路数据同步到同一台汇聚交换机的另外一个物理端口上。安装了本分布式系统各
个AGENT端的服务器就通过双绞线连接在此物理端口上,籍此实现对本汇聚交换
机的所有进出数据在旁路进行实时监控。整个分布式系统通过部署在校园网各个网
段的各个代理端的实时通信,能够对整个校园网的木马通信进行监控,效果良好。
通过DPI技术对数据包负载进行深度包检测,能够发现“灰鸽子”木马等常见木
马程序的通信行为,进而检测到校园网内存在的僵尸网络木马程序。实验结果如图
4所示。因为使用DPI技术,本系统具有检测精确度高、检测效率高的优点;但因
木马特征库的完备问题,存在对于未知木马无法检测的缺点。
图4 本系统代理端检测灰鸽子木马实验结果
4 结语
本系统通过服务器端与校园网络各个位置的Agent网络代理端进行通信,实时监
控校园网的网络状态,检测局域网络的木马程序等网络攻击,加强了校园网络的安
全。本系统在木马的特征库的完备性方面需要进一步扩充,同时减少对木马程序的
误报和漏报问题,这都是下一步继续开展的研究工作。
“道高一尺,魔高一丈”,网络入侵与防御的对抗会长期持续下去。随着入侵检测
技术的发展,新问题会不断出现。一句话,网络安全任重道远。
参考文献
[1]玄加林,才书训.分布式入侵监测中负载平衡实现策略研究[J].计算机工程
与设计,2006,5(27):1618-1621.
[2]金钟,刘清祥.分布式网络入侵检测代理系统的改进设计方案研究[J].计算
机工程与设计,2007,10(28):4911-4914.
[3]李云波.基于深度包检测技术入侵检测系统设计与实现[D].东北大学,
2008.
[4]陈亮,龚俭,徐选.基于特征串的应用层协议识别[J].计算机工程与应用,
2006(24):16-19.
[5]姚姜源.基于网络通讯内容的木马检测系统设计与实现[D].北京交通大学,
2009.
[6]邢云冬,刘胜利.木马网络通信特征提取模型的设计与实现[J].计算机工程
与设计,2010,31(20):4382-4384,4446.
[7]揭开灰鸽子神秘的面纱—灰鸽子技术深度解析[J].电脑报,2005(48).
[8]谭敏生,汤亮.基于HTTP的网络数据包还原技术研究[J].计算机技术与发
展,2007,6(17):176-178,231.
[9]阮宁君.端口反弹型木马通信技术研究及防范措施[J].信息安全与通信保密,
2007,12:99-101.


发布评论