DOITAPP
DOIT数据智能产业媒体与服务平台
立即打开
DOITAPP
DOIT数据智能产业媒体与服务平台
立即打开

安全技术:基于NIDS的网络侧木马检测技术

近期,一项借助搜索引擎页面,直接传播木马的新型"挂马"技术,在全球范围内首次出现。受微软"MPEG-2视频"0day漏洞影响,微软和中国电信合作的"114搜索"首当其冲,黑客将大量木马直接插入在搜索结果页面,悄然大肆传播。危害同时波及内嵌"114搜索"框的互联星空、56.com等众多联盟网站。2009年7月对于互联网来说也许是黑色的,2009年上半年的互联网更是满目疮痍。

以木马为代表的应用威胁愈演愈烈

飞速发展的互联网加速了企业信息化建设进程,越来越多的企业开始将其业务系统移植到开放的互联网平台上来。伴随着营销理念和商业模式的转变,来自互联网的安全威胁也在逐渐凸显变化,常见的安全威胁来源,开始由传统的网络层和系统层,转向以恶意代码为代表的应用层。

据业内安全机构研究表明,截至今年7月,国内挂马网页累计高达2.9亿个,共有11.2亿人次网民遭木马攻击,平均每天有622万余人次网民访问挂马网站,其中大型网站、流行软件被挂马的有35万个,比去年同期有大幅度增长。

通过看似正常的互联网站点向用户传播木马等恶意程序,是一种极为隐蔽的攻击方法,很少有用户是因为了解自身操作系统、应用服务的脆弱性,而发现遭受攻击的。因此,在互联网上大量投放利用客户端漏洞的恶意代码,再"借助"用户对互联网站点的盲目信任,就能够很轻松地诱骗客户被动下载万恶的木马程序。当然,更多时候,首先植入用户主机的可能是一个下载器,它会自动连接远端的"木马养殖场",下载更多恶意程序到本地执行,从而使得木马控制者能够获得某些敏感的数据,或通过渗透,最终获取用户主机的控制权限。

木马检测的常见方法

分析一次完整的"网页挂马"攻击过程,可以看到攻击者能够在整条攻击路径的多个环节介入,制造虚假的数据和恶意的流量,正是因为在多个防护层面缺少有效的安全监控机制,才使得攻击最后能够得逞。

为了有效监测并抑制木马等恶意程序的传播和扩散,至少可以从以下三个层面考虑,加以监控,包括:针对目标Web站点的安全评估、网络侧恶意流量检测,以及针对客户端主机的脆弱性检查。

相比其它两种检测方式,网络侧恶意流量检测方案能够为企业提供实时的风险感知能力,具备更低的部署成本,和更大的防护区域,该方案可在现有成熟的NIDS技术和产品进一步发展形成。

对网络中传输的各种流量进行分析,从中发现违反企业安全策略的行为,这是NIDS的核心功能。从技术上,入侵检测技术大体分为两类:一种基于特征标识(signature-based),另一种基于异常行为(anomaly-based)。在面向以木马为代表的新型应用层攻击时,可采用的检测技术则主要包括以下三种:基于协议分析的特征检测、基于行为分析的异常检测,以及基于互联网安全信誉服务的恶意流量检测。

基于协议分析的特征检测技术

特征检测是NIDS应用最为成熟的一类技术,能够准确识别各种已知的攻击行为,并出示详尽的分析报告。该项技术的基本思路是:首先定义"异常流量"的事件特征(signature),如:带有非法TCP标志联合物的数据包、数据负载中的DNS缓冲区溢出企图、含有特殊病毒信息的电子邮件等,再将收集到的数据和已有的攻击特征库进行比较,从而发现违反企业安全策略的行为。该过程可以很简单,通过字符串匹配寻找一个简单的指令;也可以很复杂,使用正则表达式来描述安全状态的变化。

特征检测技术的核心在于建立和维护一个知识库,涉及的特征包括:简单的数据包头域信息,高度复杂的连接状态跟踪,以及可扩展的协议分析。一个经典的特征定义:明显违背RFC793规定的TCP标准,设置了SYN和FIN标记的TCP数据包。这种数据包被许多入侵软件采用,向防火墙、路由器以及IDS发起攻击。

为了规避NIDS的检测,攻击者往往会将恶意流量进行分片、压缩、编码等各种处理。此时,传统的特征检测技术,遇到了一定的技术瓶颈,需要引入智能协议识别和处理技术。

协议分析是在对网络数据流进行重组的基础上,深入分析网络报文的协议特征,发现其所在协议,然后递交给相应的协议分析引擎进行处理,对相关字段进行规则检测,实现4-7层深度协议解码。

只有准确理解事物的本质,才能对症下药,木马检测亦是如此。通过融合端口分析、协议特征判断、行为分析等技术,借助动态升级的木马特征库,先进的NIDS能够准确检测出运行在任意端口的木马,以及运用Smart Tunnel技术的其它恶意程序。

构建和维护一套可用的攻击特征库,需要花费大量的精力,面对浩如烟海、种类繁多的攻击手段,特征检测模型只能发挥有限的效能,要更好地检测出未知的攻击,还要使用到异常检测技术。

基于行为分析的异常检测技术

异常检测技术通常先构建一个正常的用户行为集合,再比较被监测用户的实际行为模式,和正常模式之间的偏离程度,来判定用户行为的变化,最终确定是否属于入侵。

异常检测技术不需要过多依赖系统缺陷的相关知识,具有较强的适应性。无论攻击者如何变换攻击策略,通过检测行为模式之间的差异来判定是否异常,从而检测出未知的,甚至更为复杂的攻击。

异常检测技术主要用到"模式比较"和"聚类"两类算法,本文主要介绍模式比较算法在NIDS木马检测过程中的应用。

在模式比较算法中,首先通过关联规则和序列规则建立正常的行为模式,然后通过行为比较判定攻击。

关联规则挖掘是数据挖掘最为广泛应用的技术之一,也是最早用于入侵检测的技术。关联规则从用户定义的"支持度"和"可信度"两个维度出发,设定用户合法行为的阈值,通过和用户实际行为的比较来发现攻击。同时,关联规则还会进一步分析一种行为与其它行为之间的相互关联性或相互依靠性,如从被挂马页面下载木马服务端程序的同时,接受远程客户端程序控制的可能性。

序列分析和关联分析类似,其目的也是为了挖掘出数据之间的关系,不同的是,序列规则增加了时间的概念,在检测分布式攻击和插入噪声的攻击时,这种方法比较有效。

下文将结合经常被僵尸网络(Botnet)利用的一种蠕虫(W32/IRCBot-TO)的特征和行为分析,介绍网络侧NIDS检测方法。

僵尸网络是指采用一种或多种传播手段,将大量主机感染僵尸程序(bot程序),从而在控制者和被感染主机之间所形成的一个一对多控制的网络。僵尸网络是一种恶意行为,拥有这些Botnet的人极不愿意让其他人登录到他的服务器中去,同时也为了防止其他黑客夺取其Botnet,他们会有意地隐藏服务器的基本信息,如连入的用户数、可见的用户数、服务器内所建立的频道等,这些信息本来是需要公布给聊天者的,现在却被攻击者有意隐藏了。

但是,由于加入到Botnet服务器中的所谓用户nickname是由bot程序自动生成,所以这些bot的nickname 应该符合一定的生成算法,也就具有了某些规律,通常有IP地址表示法和系统表示法两种"命名规范"。

n IP表示法:将被感染了bot程序的主机(IP)归属国家的三位缩写放在开头,然后在后面加入指定长度的随机数字,如USA|8028032,CHA|8920340;

n 系统表示法:将被感染bot程序的主机的系统类型作为开始的字母,然后在后面加上指定长度的随机数字,如xp|8034,2000|80956

这些nickname的规律性和正常IRC Server中的nickname的随意性是不相同的,其命名特征可以从得到的bot源码中发现并总结出来。

因为Botnet中感染bot程序的主机并不知道自己被控制,所以在没有Botnet控制者指令的条件下是不会有所行为的,更形象地讲他们的行为更像一个个僵尸。而Botnet在传播和准备发起攻击之前,都会有一些异常的行为,如发送大量的DNS查询(Botnet倾向于使用动态DNS定位C&C服务器,提高系统的健壮性和可用性)、发送大量的连接请求等。一个先进的NIDS系统在这个时候应该能够及时发觉此类异常行为。

W32/IRCBot-TO是一种后门蠕虫病毒,能允许远程的入侵者获取访问权限进而控制整个计算机,感染主机通常会成为Botnet中的受害者。以下是特定环境下,蜜网(Honeynet)捕获的异常流量交互过程:

6 <-> TCP 2971 – 445 [SYN, SYN,ACK]

13 -> SMB Negotiate Protocol Request

14 <- SMB Negotiate Protocol Response

17 -> SMB Session Setup AndX Request, NTLMSSP_AUTH, User:

18 <- SMB Session Setup AndX Response

19 -> SMB Tree Connect AndX Request, Path: IPC$

20 <- SMB Tree Connect AndX Response

21 -> SMB NT Create AndX Request, Path: rowser

22 <- SMB NT Create AndX Response, FID: 0x4000

23 -> DCERPC Bind: call_id: 0 UUID: SRVSVC

24 <- SMB Write AndX Response, FID: 0x4000, 72 bytes

25 -> SMB Read AndX Request, FID: 0x4000, 4292 bytes at offset 0

26 <- DCERPC Bind_ack

27 -> SRVSVC NetrpPathCanonicalize request

28 <- SMB Write AndX Response, FID: 0x4000, 1152 bytes

29 -> SMB Read AndX Request, FID: 0x4000, 4292 bytes at offset 0

Initiating Egg download

30 <-> TCP 1028 – 8295 [SYN, SYNACK]

34-170 114572 byte egg download …

Connecting to IRC server on port 8080

174 <-> TCP 1030 – 66.25.XXX.XXX 8080 [SYN, SYNACK]

176 <- NICK [2K|USA|P|00|eOpOgkIc] USER 2K-USA

177 -> :server016.z3nnet.net NOTICE AUTH

:*** Looking up your hostname… "" …

179 -> … PING :B203CFB7

180 <- PONG :B203CFB7

182 -> Welcome to the z3net IRC network …

可以看到,Botnet控制者首先向目标主机发起SMB连接请求,通过协商、认证后,建立连接。Bot受控端会主动连接Botnet控制者,下载一个恶意文件,本地执行之后,登陆IRC服务器,同时被Botnet控制者接管。从用户使用的nickname可以看得出,Bot受控端是一台来自美国的Windows 2K主机。

充分了解到上述行为特征后,能够很快研制出基于NIDS的检测规则,结合特征检测和异常行为分析等技术,在感染W32/IRCBot-TO的主机向外建立非法连接时,第一时间给与报警和响应。

基于互联网安全信誉服务的恶意流量检测技术

特征检测技术能够识别已知的攻击类型,但是面对新的未知攻击时,变得束手无策;异常检测技术对于未知的攻击模式有一定检测能力,但在实现上,要求系统对用户行为的正常态有着较强的敏感性,同时能够及时感知用户行为的变化,否则不可避免会产生虚警。

当前,在"地下黑色产业链"的操控下,恶意程序的变种数量越来越多,传播和分散速度越来越快,将远远超过攻击特征库的更新速度,传统的基于特征匹配的检测和响应速度将逐渐滞后。新兴的混合型攻击通常还把功能实现拆分到多个动作完成,以逃避面向行为分析的安全监控。

应对新的安全威胁挑战,尤其是传播超过90%以上恶意代码的Web威胁,需要一种更加全面、高效的监测和防护机制。绿盟科技突破传统的安全监控思路和方式,首次将互联网安全信誉服务的成果应用到NIDS等传统安全产品中。

该项技术的核心思想是:基于绿盟科技的云安全体系,运用部署在全国多个IDC中的探测引擎,对互联网相关资源进行威胁分析和信誉评级,再将研究成果应用到NIDS等安全产品中,一旦检测到网络中有匹配的恶意流量在传输,即刻给予报警和响应,保护用户免受Web流量中病毒、木马、间谍软件和其它恶意程序的危害。

为了跟踪、维持一个全面、可信的Web信誉列表,绿盟科技投入了大量的网络资源和计算资源,对互联网资源(包括域名、IP地址、URL等)进行持续威胁分析和信誉评级,并记录上述资源的内容和行为变化。同时,该信誉服务成果还融合了来自授权客户和第三方合作伙伴的威胁反馈,以及绿盟科技安全研究团队的风险预警,与目标站点的历史信息进行整合,从而建立针对互联网领域的长期信誉追踪机制,并保证加载此项成果的绿盟NIDS等其它产品能够有效地拦截Web威胁,保护用户的访问不受侵害。

结束语

全面的木马检测应该从网络架构、服务器、客户端,以及数据安全等防护层面充分考虑,可以结合主动脆弱性评估、网络侧实时检测,以及本地木马分析等多种方法,进行综合防治。无论使用哪种方法,都要求方案提供商具备先进的漏洞挖掘和分析能力,同时和主流的系统、软件提供商保持紧密的合作,以确保能够第一时间为用户提供先进的攻击防护能力。

飞速发展的互联网,给企业和用户带来了便捷,也为攻击者提供了制作和分发木马、垃圾邮件、钓鱼站点等恶意流量的温床,如何保护企业和用户免受财产损失、信息泄漏和信誉受损等威胁,已经成为整个互联网相关硬件、软件、服务和网络提供商面临的共同挑战。

未经允许不得转载:DOIT » 安全技术:基于NIDS的网络侧木马检测技术