【计算机蠕虫病毒入侵检测系统的实现】入侵检测系统的实现

元 元 曹海英 河套学院理学系 内蒙古巴彦淖尔 015000

基金项目:河套学院科学技术研究一般项目(项目编号:HTXYZY13007)

【文章摘要】

近年来计算机蠕虫病毒攻击事件频频出现,对信息安全造成很大威胁并使经济遭受重大损失。因此,检测包含计算机蠕虫病毒等恶意软件的技术已成为重要的研究项目。大多数防护软件都是利用比对特征码的方式作为检测恶意软件的主要方法,这种方式虽然有较高的正确判断率与较低的误判率,但是特征码必须从已知的恶意软件样本中取得,所以无法检测未知的恶意软件。因此,本文提出在分析计算机蠕虫病毒在被攻击主机上所进行的行为内容的基础上,根据病毒引发的各项系统状态与资源的变化,建构一个可用于检测已知与未知计算机蠕虫病毒的主机型入侵检测系统。

【关键词】

计算机蠕虫病毒;日志文件;入侵检测系统;告警分析

随着互联网快速的发展和普及,大量的恶意软件也活跃于互联网中,并无时无刻地觊觎着各种敏感资料。根据赛门铁克公司2014 年4 月15 日发布的第十九期《互联网安全威胁报告》(ISTR)。报告揭示, 2013 年针对性攻击的数量较前一年增长了91%,攻击持续的时间是过去的三倍, 显示出近年来恶意软件的发展不仅快速且多样,其所造成的信息安全威胁与经济损失更是难以估计。

从第一个名为Morris 的计算机蠕虫病毒在1988 年诞生至今数十年间,计算机蠕虫病毒随着计算机黑客软件开发技术的日益精进,对于个人、企事业与政府单位的信息安全造成很大的威胁。如: 2001 年,名为Nimda 及Code Red 的两个计算机蠕虫病毒造成了全球超过30 亿美元的损失。微软(Microsoft) 公司在2010 年7 月所发布的第10 期信息安全情报报告中指出在2010 年全球的计算机蠕虫病毒威胁普遍程度达到24.4%。

从上述说明中,我们可以发现计算机蠕虫病毒一直是信息安全的主要威胁来源,而且其所造成的损害可能远超过其它类型的恶意软件。因此开发出一套可应用于Windows 操作系统的主机型入侵检测系统(HIDS) 对促进网络安全是必要的。

一般对恶意软件的检测技术可区分为特征检测和异常检测两种。其中,特征检测技术利用比对特征码或规则作为判断方法,此方法具有较高的正确判断率与较低的误判率等优点。但其缺点是特征码取得不易、特征码数据库需持续更新且日益庞大,以及只能检测已知恶意软件等。异常检测技术则是具有检测已知和未知恶意软件的优点,但其缺点则是误判率高而且无法辨识特定的恶意软件。虽然异常行为检测技术具有以上缺点,但可以发现未知恶意软件。其基本原理是分析计算机蠕虫病毒在被攻击主机上所进行的行为内容,并监控其可能引发的各项系统状态与资源的变化,建构一个可用于检测未知计算机蠕虫病毒的主机型入侵检测系统,并在入侵检测系统中,安装数个可自动产生相关日志的检测程序于客户机上,并且利用开源主机型入侵检测系统OSSEC 所提供的日志数据传输与分析功能,将日志数据传送至服务器端以进行后续分析作业。在服务器端上,OSSEC 的伺服程序负责接收客户机传送的日志数据,并对其进行初步分析以产生告警。再利用该伺服程序所提供的主动反应功能,建立可自动根据告警内容触发分析引擎的机制,以判断客户机是否有计算机蠕虫病毒入侵。

1 计算机蠕虫病毒的特征

计算机蠕虫病毒是一个能独立复制及自动感染的恶意程序,它有能力通过网络及其他媒介寻找并感染目标主机。大多数的计算机蠕虫病毒利用操作系统或是应用软件的漏洞进行攻击,并取得被攻击主机的管理权限,以进行后续的攻击行为,包含窃取主机上的数据或发动拒绝服务(DOS) 攻击等。计算机蠕虫病毒从功能结构上基本可以归纳为下列五个组件: 1. 侦查组件:用于通过端口扫描检测网络主机是否存在安全漏洞;2. 攻击组件:负责针对侦查组件所发现或程序内定的目标进行感染或攻击,其攻击方式包含缓冲区溢出、字符串格式化等;3. 通讯组件: 用于提供被蠕虫病毒感染的网络各节点间的通讯;4. 命令组件:用于下达各类型的攻击命令;5. 智能组件:为增加通讯或感染效率,计算机蠕虫病毒可利用该组件与其它被攻击主机上的计算机蠕虫病毒交换相关主机或网络特征数据,以达到快速感染或攻击的目的。计算机蠕虫病毒通过上述五个组件的搭配与组合,具备不同的感染与攻击能力,以达到攻击目的。

计算机蠕虫病毒的传播途径比较多, 它会利用各种可行的数据传输媒介作为传播途径,如:实时通讯软件、点对点文件共享、应用程序或操作系统的漏洞、电子邮件、网络聊天室,U 盘等移动存储设备等。

分析已有的计算机蠕虫病毒案例,可以得知一般计算机蠕虫病毒在被入侵主机上所执行的行为可以大致区分为植入阶段、运行阶段、网络传播阶段。另外,若以计算机蠕虫病毒所新增的副本被执行的时机区分,可将计算机蠕虫病毒分为立即执行与非立即执行两种类型。其中非立即执行型的计算机蠕虫病毒大约占其总数的70% 以上。

2 入侵检测系统

入侵检测系统的主要功能为监控与分析计算机系统内的行为或网络流量,以发现可能的恶意攻击行为,主要由三个模块构建主机型入侵检测系统的基本架构:

(1)信息来源模块:负责搜集被监控系统或网络设备的相关状态或内容信息,并依信息内容建立告警,并将告警传送到分析引擎模块进行后续处理。

(2)分析引擎模块:利用告警融合、合并与关联等技术,负责分析信息来源模块所传送的告警,以判断是否发生恶意软件入侵行为,并将分析结果提供至反应模块处理。

(3)反应模块:负责根据分析引擎模块所提供的输出结果采取相对应的措施,例如:主动通知系统管理员或中断入侵者联机等。

另外,按照分析信息来源的不同,入侵检测系统通常可以区分为网络型入检测系统(NIDS) 与主机型入侵检测系统(HIDS) 两种类型。其中,网络型入侵检测系统通常被部署在内部网络与外部网络的连接处,以监听网络上所有进出的数据包,并且通过检查数据包的包头或内容的066

软件开发

Software Development

电子制作


方式,以判定是否包含可能的攻击行为或恶意软件。主机型入侵检测系统则是通过监控主机系统内的系统注册表、日志数据或系统响应等方式,作为判断是否有恶意软件入侵的依据。

网络型入侵检测系统仅能对数据包内容或流量进行入侵检测作业,并为了执行效率考虑一般采用特征码比对的检测技术,因此无法完成对未知恶意软件的检测。但主机型入侵检测系统可监控主机上的相关作业,加上采用异常检测技术,可以检测新型或未知恶意软件。

3 主机型入侵检测系统的实现

主机型入侵检测系统是以异常检测技术为基础的主机型入侵检测系统,通过检测主机系统日志、系统注册表、执行程序、通讯端口和网络数据包,并生成日志,再利用OSSEC 代理程序监控这些日志,并传送至服务器端的伺服程序产生告警。最后建立告警分析引擎以判断客户机是否遭到计算机蠕虫程序入侵,并且将分析结果提供管理人员参考。系统结构如图 1 所示。

在上述的关联作业中,若分析结果发现某程序仅出现网络行为时,告警分析引擎将会搜寻历史告警表格,并检查是否有相关的日志和系统注册表异动告警,以完成对于延时执行型的计算机蠕虫程序的检测作业。

为了达成计算机蠕虫程序的检测目标,需要客户机上安装OSSEC 系统的代理程序及其他辅助程序,以完成以下6 项功能:

(1)OSSEC 系统集成的文件完整性监测程序,用以完成文件完整性的监控作业。根据产生MD5 摘要码。提供告警产生时间;告警的规则序号与该规则默认的等级;告警的信息来源,包含IP 地址与信息种类;告警的描述内容;告警来源的完整数据内容等。

(2)系统注册表监测程序,OSSEC 系统代理程序具有监控系统注册表的功能, 但因无法对系统注册表的机码名称(key name) 与机码数据(key data) 进行监测,所以要另行编写程序监控特定的系统注册表机码名称与数据。

(3)卸载信息监测程序,卸载信息监测程序对系统注册表机码[HKEY_Local_ Machine\SOFTWARE\Microsoft\Windows\ CurrentVersion\Uninstall] 进行名称和数据的读取作业,并将机码名称中出现的[Displayicon] 和[Displayname] 机码名称和数据输出至专用日志。一般卸载信息只有通过正常安装的应用程序才会建立,而计算机蠕虫程序为了隐匿程序相关数据通常不会建立此项信息。

(4)程序监测,用于监控客户机上所执行的全部程序,监测程序除了建立目前客户机上所有执行的程序列表外,并且将此列表内容与原始程序名单进行比对,若发现有新增的程序名称,便会将其输出至日志档案加以记录。

(5)通讯端口监测程序,主要利用操作系统Windows 集成的程序 netstat.exe 产生网络状态信息,记录包含通讯协议种类、目的和来源的IP 地址及端口号、联机状态,程序识别号码等。

(6)数据包监测程序

在计算机蠕虫程序的网络传播阶段中,通常会利用一些简单的网络功能找寻下一个攻击的目标或是发动网络阻绝服务攻击。有些计算机蠕虫病毒会利用ICMP 协议的相关功能扫描可攻击主机。因此对使用ICMP 功能的数据包加以监控是必要的。

前述6 项监测所产生的日志档案均会交由OSSEC 系统的代理程序监控。如果各日志文件中有新增日志数据,代理程序便会将这些数据传送至服务器端上执行的OSSEC 伺服程序进行后续处理。

服务器端主要由OSSEC 伺服程序、数据库管理系统、告警分析引擎,以及管理者通报程序等模块所构成。其中OSSEC 伺服程序负责执行包括接收由OSSEC 代理程序所传送的日志数据并利用译码程序和规则分析过滤日志数据并产生告警, 再依据告警内容触发告警分析作业执行。数据库管理系统负责存储与管理系统所处理与产生的数据。告警分析引擎负责执行告警分析作业,以判断客户机是否遭到计算机蠕虫程序的入侵。最后告警分析作业所产生的结果,将以网页方式通知系统管理人员。

本文提出分析计算机蠕虫病毒在被攻击主机上所进行的行为内容,并由监控其可能引发的各项系统状态与资源的变化,建构一个可用于检测未知计算机蠕虫病毒的以日志数据为基础的主机型入侵检测系统。该系统相较于采用以特征码比对的检测技术而言,可在不需建立庞大特征码数据库的前提下,检测未知的计算机蠕虫病毒。另外,由于一些恶意软件均具有一些共通的特性,如程序的植入与执行等,因此我们所建构的系统亦可作为此类恶意软件的检测辅助。但如何将其它多种文件类型的恶意软件也纳入检测范畴,如何降低误判率及加强检测和告警分析能力是异常检测技术需要继续深入探讨的问题。

【参考文献】

[1] 彭俊好, 徐国爱, 朱振荣, 杨义先. 蠕虫对抗蠕虫模型的分析与改进[J]. 计算机工程,2008(15)

[2] 文伟平, 卿斯汉, 蒋建春, 王业君. 网络蠕虫研究与进展[J]. 软件学报,2004(08)

[3] 秦发成. 基于多阻滞因素Predator-Prey 模型的蠕虫传播机制研究 [D]. 南京邮电大学,2012.

[4] 杨庆涛. 网络蠕虫的检测技术研究与系统设计[D]. 重庆大学,2010.


【作者简介】

元元(1979 ~),男,讲师,从事计算机网络教学与研究;

曹海英(1978 ~),女,讲师,从事计算机软件与理论教学、研究。

图 1 系统结构图067

软件开发

Software Development