校园网环境的可视化入侵检测系统研究与实现

发布时间:2011-11-22 10:47:07   来源:文档文库   
字号:

校园网络是学校信息化建设必不可少的基础硬件设施,但是接入Internet所带来的安全问题给我们校园网管理者带来了极大的挑战,随处可得的黑客工具和不断曝光的系统漏洞使我们的校园网络无时无刻不处于危险之中。校园网的安全对维护学校正常的教学秩序,保证学校网络资料等起着极为重要的作用。因此,如何保证校园网的安全问题,也就成了一个极为重要的问题。

论文在分析了传统入侵检测系统在保护网络环境中Web系统存在的问题的基础上,提出了基于校园网环境的可视化入侵检测模型。基于该模型设计了可视化入侵检测系统的框架和结构,并实现数据包捕获模块、数据提取模块、事件分析数据库模块、用户行为建模模块、可视化建模模块、异常检测模块、数据绘制与显示模块、安全响应模块和可视化入侵检测查询模块等九大模块。

同时对基于散乱点的可视化入侵检测算法也进行探讨,引入主成分分析和曲线成分分析作为映射工具,提出了一种高逼真度的、确定性的可视化入侵检测算法,采用主成分分析映射结果作为迭代的初值和采用伪随机算法来选择第i点来增加算法的确定性;将映射空间中点间欧式距离与原始空间中标准化会话间平方欧式距离相等作为改进算法的最优化目标来提高逼真度。

最后,选用KDD Cup99数据集进行测试验证,结果表明改进后的曲线成份分析算法可以用于识别内部渗透与外部渗透两种入侵行为。系统实现了对数据的分析、处理以及对非法数据的实时发现和显示,同时存入日志,满足了入侵检测系统的基本功能需求。

关键词:入侵检测,曲线成分分析,可视化,校园网


ABSTRACT

The campus network is essential informationize construction of school basis hardware facilities. But,safe problem about by link up Internet has brought extremely large challenge to our campus network administrative person.The hacker implement being able to be bought anywhere and the system leak being exposed unceasingly make our network not be in danger all the time.Thus,to secure campus network becomes fairly important.

This dissertation analyzes the problem being faced with existing intrusion detection systems while being used to secure web applications providing Internet services,this dissertation put forward a campus network environment based on the visual intrusion detection model.Based on the model of the design of a visual intrusion detection system framework and structure, and to achieve visual analysis of the database management system and visual intrusion detection analyses management system modules.The system includes nine modules:data packet capture module, data extraction module,events analysis database module,user behavior modeling module,visual modeling module,anomaly detection module,the data demonstrate module, security response and visualization module query module of intrusion detection

This dissertation discuss based on scattered point visual intrusion detection algorithms:the introduction of principal component analysis and curvilinear component analysis as a mapping component analysis tools, a high-fidelity and deterministic, a new high-fidelity and deterministic CCA-based visualization algorithm in intrusion detection is proposed.The principal component analysis mapping as a result of the initial use of iterative algorithm and the use of pseudo-random selection algorithm to increase the point of certainty; mapping and spatial distance to the midpoint between the European Space standardization of the original conversation between the European square from the same goals as the optimization algorithm to improve fidelity.

Finally, KDD Cup99 data sets used to test and certify,results show that the improved curvilinear component analysis algorithm can be used to identify the internal and external intrusion infiltration. System achieved data analysis and process,discovery and display of illegal data and storage of suspicious data into log file,the system satisfies the requirements of instrusion detection system.

Keywords: Instrusion Detection, Curvilinear Component Analysis, Visualization, Campus Net


第一章 引言 1

1.1 课题的研究背景 1

1.2 课题的研究意义 4

1.3 入侵检测防御技术研究现状 5

1.4 本课题的主要研究内容 7

第二章 入侵检测技术基础 9

2.1 入侵检测分析 9

2.2 入侵检测系统分类 10

2.2 入侵检测系统基本模型 15

2.2.1 IDES模型 15

2.2.2 CIDF模型 17

2.3 入侵检测系统工作流程 18

2.4 入侵检测系统发展方向 18

2.5 本章小结 20

第三章 可视化入侵检测系统分析与设计 21

3.1系统功能需求 21

3.2 系统性能需求 22

3.3 入侵检测模型设计 23

3.4 入侵检测系统框架设计 25

3.5入侵检测系统结构设计 26

3.5.1入侵检测数据管理子系统 27

3.5.2入侵检测数据分析子系统 28

3.6 本章小结 33

第四章 基于散乱点的可视化入侵检测算法设计 34

4.1 检测算法理论依据 34

4.2 检测算法性能要求 37

4.2.1 逼真度 37

4.2.2 运算速度 40

4.2.3 确定性 40

4.3 主成份分析PCA算法 41

4.4 曲线成份分析CCA算法 44

4.5 PCA算法与CCA算法对比分析 48

4.5.1 理论对比 48

4.5.2 实验对比分析 48

4.6 曲线成分分析CCA算法的改进 55

4.7 传统CCA算法与改进CCA算法的对比分析 57

4.7.1 确定性 57

4.7.2 运算速度 58

4.8 本章小结 60

第五章 可视化入侵检测系统实现 61

5.1 系统开发及运行环境 61

5.1.1 开发环境 61

5.1.2 运行环境 61

5.2 校园网可视化入侵检测系统部署 61

5.3 可视化入侵数据管理子系统实现 62

5.3.1 数据包捕获模块实现 63

5.3.2 数据提取模块实现 66

5.3.3 事件分析数据库实现 73

5.4 可视化入侵检测数据分析子系统实现 74

5.4.1 用户行为建模与可视化建模实现 75

5.4.2 异常检测模块实现 76

5.4.3 数据绘制与显示模块实现 76

5.4.4 安全响应模块实现 77

5.4.5 可视化入侵检测查询模块实现 79

5.5 可视化入侵检测系统实例测试 83

5.5.1 测试过程 83

5.5.2 结果分析 84

5.6 本章小结 85

第六章 结论 86

88

参考文献 89


第一章 引言

1.1 课题的研究背景

随着校园网的不断发展,如何保证网络信息安全已成为广大校园网运营管理人员非常关心并热衷研究的一个课题。网络信息安全包括信息的存储安全和信息的传输安全,从信息系统的安全指标角度来说,就是对信息的可用性、完整性和机密性的保护。

网络的安全威胁一方面来自外部,但更多的来自内部。校园网的用户绝大多数是一群富有攻击性的高素质学生,一方面他们的思想非常活跃、另一方面他们富有冒险性和探索精神(攻击性)。校园网的信息点分布于每个宿舍、每一个办公室和实验室,计算机病毒、不良信息资源和垃圾邮件总是试图侵害/威胁用户对网络资源正常的使用要求。对网络的威胁、攻击还包括:扫描、嗅探、信息流监视、会话劫持、口令破解、IP欺骗、木马、Ping of DeathSYN FloodSmurf攻击、电子邮件炸弹、DDOS以及信息战等[1][[5][6][13][15]

对于网络安全来说,单纯的防火墙(Firewall)[2][29]技术暴露出明显的不足和弱点,如无法解决安全后门问题,不能阻止网络内部攻击(调查发现,50%以上的攻击都来自内部)、不能提供实时入侵检测(Intrusion Detection)能力、对于病毒等束手无策等。因此很多组织致力于提出更多更强大的主动策略和方案来增强网络的安全性,其中一个有效的解决途径就是入侵检测。入侵检测是对计算机系统或网络计算机系统的运行状态进行监视,发现各种攻击企图、攻击行为或者攻击结果,以保证系统资源的机密性、完整性与可用性[3]。入侵检测是防火墙的合理补充,帮助系统对付网络攻击,扩展了系统管理员的安全管理能力,包括安全审计、监视、进攻识别和响应,提高了信息安全基础结构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息,看看网络中是否有违反安全策略的行为和遭到袭击的迹象。入侵检测被认为是防火墙之后的另一道安全闸门,在不影响网络性能的情况下能对网络进行监测,从而提供对内部攻击、外部攻击和误操作的实时保护。

入侵检测从分析方法上[4][5][6][7],可分为误用检测(misuse detection)与异常检测(anomaly detection)两大类。误用检测方法建立入侵活动模型,一旦发现当前用户活动与入侵活动模型相吻合,就发出入侵警报。误用检测方法具有入侵误报率(false positive)低的优点,但只能检测己知攻击,无法检测未知的新攻击。与误用检测不同,异常检测方法构造用户的正常行为模型,一旦发现当前用户活动背离正常行为模型,就发出入侵警报。异常检测致力于发现与正常行为模式(behavior pattern)不一致的用户活动,具有检测未知攻击的能力。因为Web应用系统中用户活动与具体应用有关,难以预测,导致经常有新的攻击类型产生,所以异常检测方法对保护Web应用系统安全具有重要意义,并在入侵检测系统(Intrusion Detection System, IDS)中占据重要地位。

如图1-1所示,基于异常检测的入侵检测系统主要由日志采集、轮廓(profile)创建、入侵检测与安全响应等模块构成[7][39]。日志采集模块以采集目标系统(target system,即被保护的系统)审计日志(audit log)的形式,获得用户活动信息。轮廓创建模块从日志采集模块获得历史日志记录,然后从日志中提取用户的正常行为模式,并创建用户的正常行为轮廓,用以指导入侵检测模块运行。入侵检测模块从日志采集模块获得记录当前用户活动的日志记录,然后比较当前活动与正常行为轮廓间的差异。如果当前活动背离正常行为轮廓,则怀疑当前活动异常,入侵检测模块将发出入侵警报。在发出入侵警报后,安全管理员根据组织的安全策略决定如何进行安全响应。

1-1 基于异常检测的入侵检测系统

尽管基于异常检测的入侵检测系统在保障传统应用系统安全时取得了较好效果,但Web应用系统与Internet环境的特点将导致传统入侵检测系统出现新的问题。

首先,传统的基于异常检测的入侵检测系统一般被用于保障内部使用的计算机系统(例如,财务系统等)安全。这类系统具有严格的安全管理措施,以保证用户行为的规范性。因此,这类系统中用户行为是规范的、高度一致的、易区分的,构造正常用户行为轮廓较为简单。当将基于异常检测的入侵检测系统应用到开放的Internet环境中时,由于用户行为规范性得不到保证,新的问题随之产生。在开放的Web应用系统中,由于用户活动受约束少,不确定性强,导致用户行为一致性差,用户行为模式复杂,难以区分不同的用户行为模式。

因为新用户行为模式往往与老用户不一致,所以在传统的入侵检测系统中对新用户一般不进行入侵检测。在传统入侵检测系统中,新用户数目仅占很少一部分,所以这部分用户可以利用安全管理手段来监督。然而,在提供开放服务的Web应用系统中,新用户所占比例较大,甚至有可能超过老用户。同时,由于这些用户来自开放的Internet环境,无法用安全管理手段规范用户行为。另一方面,为保障Web应用系统安全,必须利用入侵检测手段监督新用户的活动。在现实的Web应用系统中,新用户比老用户的行为模式一致性更差,新用户的行为模式比老用户更加复杂。这就导致了Web入侵检测系统与保障Web应用系统安全的入侵检测系统,必须具有区分复杂用户行为模式的能力。

因此,如果将传统的入侵检测系统应用到Internet环境中,将导致入侵误报率居高不下,入侵检测性能低下。

其次,传统应用系统处于一个封闭环境中,受外界干扰较少。然而,Web应用系统多处于开放的Internet环境中,易受外界环境影响。例如,当系统用户通过Internet访问Web应用系统时,鉴于部分Web应用系统无法获得用户的真实身份,入侵检测系统只能通过用户网络地址来辨识用户身份。由于受Internet中网关、代理服务器等网络设备地址转换的影响,入侵检测系统无法获得用户的真实网络地址。这样,网络环境的影响导致入侵检测系统无法区分用户主体身份。同样,社会环境对于用户行为模式的影响也是显而易见的。Internet用户活动易受舆论宣传、经济环境、组织安全策略等社会大环境影响,导致在Web应用系统中显现出不同行为。

传统的入侵检测系统仅考虑用户在系统中的活动,很少考虑用户所处外部环境。在传统应用系统中,外部环境对用户行为的影响非常小,可以忽略不计。但对处于开放环境的Web应用系统而言,外部环境影响巨大,在入侵检测时必须考虑外部环境因素。因为在这些系统中,仅考虑用户在系统中活动难以判断出用户活动是否入侵行为,所以如果在检测入侵时忽略外部环境因素,将导致入侵检测性能受影响。在实际系统中,Internet用户所处社会、网络环境等信息收集困难,部分信息难以转变为数字化信息传递给入侵检测系统。因此,很少有入侵检测系统考虑外部环境因素。一旦将传统入侵检测系统应用到Internet环境中,系统的检测性能往往无法令人满意。

最后,在传统入侵检测系统保护的目标系统中,用户数目一般在几十至几百,被监控的资源或命令数目约为几十。然而,Web应用系统中无论用户数目还是被监控资源与命令数目都远多于传统的目标系统。如果是系统层日志数据(例如,系统调用日志数据),审计事件数目将会更加巨大。因此,Web入侵检测系统必须具有处理海量日志数据的能力。如果直接使用传统入侵检测系统来保护Web应用系统,运行效率可能会成为影响系统实施的严重瓶颈。

综上所述,Web应用系统在Internet环境中具有了新特点:用户行为一致性差,行为模式复杂;用户行为易受外界环境影响;系统日志是海量数据。上述特点对入侵检测系统的检测性能和运行效率提出了新的挑战。为提高入侵检测系统的检测方法对不同目标系统的适用性,本文将信息可视化(Information Visualization)引入到入侵检测领域。信息可视化是一种重要的人机交互手段,可将计算机的数字信号转换为人类能感知的可视信号。将信息可视化应用到入侵检测领域可以为网络管理员提供直观可视的用户活动等信息,以提高安全专家、安全管理员与入侵检测系统之间的交流效率,强化人机协同,以达到减少误报率和提高检测性能。

在计算机网络的今天,可视化控制台可大幅提高人机交互效率。因此,利用可视化算法,可为安全专家提供直观而可视的点集结构信息,从而辅助安全专家更加合理地选择聚类方法来创建轮廓,最终达到提高轮廓创建准确性之目的。

1.2 课题的研究意义

由于Web应用系统中用户行为一致性较差,导致用户行为模式复杂。己有入侵检测研究成果显示,对不同应用系统使用相同检测方法检测性能各不相同。这表明,对不同用户行为模式采用相同检测方法会有不同的检测性能。如何自适应地选择不同检测方法以使检测性能最佳,一直是入侵检测研究领域的一大难题。Internet环境使该问题更加复杂化。上述选择问题的最大难点在于对用户行为模式的认知方面,要计算机自动地去辨识复杂的用户行为模式是一件非常困难的事情。由于人类具有很强的模式识别能力,如果能在选择检测方法时利用人类杰出的认知能力,可有效提高入侵检测性能。

例如,目前聚类分析(cluster analysis)方法己被应用到轮廓创建过程中[12][13],选择何种聚类方法直接影响到行为轮廓的准确性。选择聚类方法前需辨识点集结构,Internet环境造成了点集拓扑结构复杂,难以由计算机自动辨识。由于人类对复杂拓扑结构具有强大的辨识能力,考虑由安全专家辨识点集结构,选择合适的聚类方法应用到轮廓创建过程中。

另一方面,由于Web应用系统中用户行为易受外界环境影响,入侵检测系统需要结合外界环境因素(例如,安全策略)只能正确认识用户行为规律。在实际系统中,与外界环境有关的知识难以传递给入侵检测系统,导致了入侵检测时信息来源不完整,易出现误报漏报现象,严重影响检测性能。安全专家与安全管理员具有丰富的社会环境、网络环境、组织安全策略等方面知识,如果能够让入侵检测系统借助安全专家与安全管理员的知识,作为用户在目标系统中活动信息的有益补充,则可为入侵检测系统提供全面而准确的知识,有助于提高入侵检测性能。

例如,对于学校图书馆而言,通过非法的代理服务器访问图书馆资源是一种入侵行为,而通过合法的代理服务器访问则为正常行为。但自动化的入侵检测系统只能区分用户是否通过代理服务器访问图书馆Web应用系统,无法确认该次访问是否合法。而安全管理员则可根据自身对网络地址分配等方面的知识,轻易区分出该次访问是否合法。

上述内容充分说明了在入侵检测系统中人机交互的重要性。信息可视化是一种重要的人机交互手段。信息可视化可将计算机的数字信号转换为人类能感知的可视信号,提供给人类。实践证明,可视化的人机接口能向人类提供直观的信息,便于人类感知计算机系统中的数字信息,从而提高人与计算机之间的交流效率,进而提高整个系统的上作效率。将信息可视化应用到入侵检测领域可向安全专家与安全管理员提供直观可视的用户活动等信息,以提高安全专家、安全管理员与入侵检测系统之间的交流效率,强化人机协同,以达到减少误报率、提高检测性能之目的。这样就要求可视化入侵检测系统(Visual Intrusion Detection System, VIDS)具有实时检测、报警、动态安全响应和数据显示和图像绘制等功能,能够很好地帮助网络管理员完成对网络状态的把握和安全的评价。可视化入侵检测系统采用改进的可视化入侵检测算法实现可视化建模,然后利用直观的图形来显示入侵分析的结果,并根据结果进行异常检测,给出警报信息,安全管理员根据组织的安全策略决定如何进行安全响应,对于保护Web应用系统的网络安全具有重要意义。

1.3 入侵检测防御技术研究现状

19804James PAnderson为美国空军做了一份题为《Computer Security Threat Monitoring and Surveillance》(计算机安全威胁监控与监视)的技术报告,第一次详细的阐述了入侵和入侵检测的概念。入侵检测是对(网络)系统的运行状态进行监视、发现各种攻击企图、攻击行为或者攻击结果,以保证系统资源的机密性、完整性与可用性[3][10][11]

自从James P. Anderson1980年在文献 [3][37][38]中提出入侵检测的概念后,入侵检测领域的研究取得了长足的发展。入侵检测领域己有的研究主要围绕入侵检测模型、入侵检测方法、入侵检测策略、入侵检测系统架构及实现机制等方面展开。在众多研究中,入侵检测方法的研究一直居于重要地位。如文献[4]所述,目前己有的入侵检测技术主要包括异常检测、误用检测两大类。异常检测通过定义正常行为轮廓表示正常用户行为模型,检测当前用户活动与正常用户行为模型之间的背离程度。如果有明显背离发生,则认为当前用户活动是异常活动,发出入侵警报。误用检测从己知的入侵活动中提取出攻击特征,并用当前用户活动匹配攻击特征。如果匹配,则发出入侵警报。无论是异常检测采用的方法还是误用检测采用的方法都己被广泛应用到各种入侵检测系统中,并取得了巨大成功。然而,当检测方法应用到Internet环境中Web入侵检测系统时,或多或少遇到了检测性能不稳定的问题,即遇到了适用性问题。为提高检测方法对不同目标系统的适用性,将信息可视化引入到入侵检测领域,以提高入侵检测性能。

在文献[12]中,Lam等人将信息可视化引入到入侵检测中,在联分析(Correlation Analysis)的基础上,利用因子分析(Factor Analysis)数学关工具,提出了基于主成分分析PCA (Principle Component Analysis)的可视化入侵检测算法(Visualization Algorithm in Intrusion Detection )。为便于叙述,基于主成分分析PCA的可视化入侵检测算法在本文中简称PCA算法,Lam等人提出的PCA算法简称传统PCA算法。PCA算法可为安全管理员提供直观的可视化用户行为模式信息,从而为安全管理员深入调查入侵警报创造了良好的上作环境。

然而在该文中,信息可视化处于从属地位,并未提出统一的模型与完整的框架用以指导信息可视化在入侵检测中的应用。在网络应用环境中,该文提出的可视化入侵检测算法具有如下缺陷:

Internet环境中的Web应用系统日志一般是海量数据,由于PCA算法的内存占用空间较大,因而无法可视化海量日志数据。

PCA算法针对不同用户行为模式时逼真程度会有较大变化,即性能与用户行为模式有关。在监控Web应用系统时,由于网络用户行为模式复杂,当该算法被用于处理多种不同行为模式时,会导致算法对部分行为模式逼真程度较高,对部分行为模式逼真程度较低,整体逼真程度较差。

文献[16]中仅给出了基于散乱点(Scattered Point)模型的,可视化入侵检测算法,可视化手段单一。在可视化大量样本时,散乱点显示时将损失部分有价值的信息,显示效果较差。

上述缺陷导致Lam等人提出的可视化入侵检测算法在网络环境中应用受到限制。

Lam等人提出可视化入侵检测的观点之后,信息可视化在日志监控领域得到了发展[13][14][15][16],并在部分文献中提到了将可视化方法应用到入侵检测领域。

文献[13]提出了一个,可视化的日志监控系统—TudumiTudumi将网络访问、用户登录等日志信息与安全审计规则可视化为直观的图像,并提供交互功能,从而使管理员可快速筛选、汇总网络访问、用户登录等日志数据,以利于及时发现用户的异常活动。文献[13]的方法采用了按网络地址汇总的方式,适用于监控用户在网络系统中的活动,但该方法无法提供可视化的用户行为模式信息。

文献[14]关注网络活动的行为模式,将网络活动映射到可视的SOM Self-Organizing Map,自组织映射)图中。管理员通过直接观察可视图来对网络活动进行分类,从而发现异常活动。文献[16]的方法主要对审计事件进行分类与可视化,而不关心用户在会话级别的模式信息。

文献[15][16]为安全管理员提供了一个日志文件分析的,可视化工具,用以提高安全管理员过滤、分析日志的效率。安全管理员可利用该工具观察网络与系统活动,从而及时发现入侵与误用行为。

上述研究成果对日志监控领域具有重要的意义,但出于日志监控的目的,与入侵检测的结合仅局限在研究日志数据可视化方面,并未与自动化的入侵检测方法结合起来。同样出于日志监控的目的,文献[13][16]局限在研究网络数据的可视化方法,缺少针对用户活动数据方面的可视化研究,尤其缺少对Internet用户行为模式进行可视化的研究。文献[13][15][16][26]的研究局限在可视化微观的、个体的行为,而文献[14]的研究局限在可视化宏观的统计行为,在日志监控领域缺少对宏观与微观并重的可视化方法的研究,这为安全管理员根据入侵警报深入调查造成了不便。因此,虽然日志监控领域信息可视化的研究成果对于本文可视化入侵检测的研究具有一定参考价值,但这些成果应用到可视化入侵检测系统中还需与入侵检测模型进行深入的结合。

1.4 本课题的主要研究内容

本课题针对传统入侵检测系统在网络环境中存在的问题,将信息可视化应用到入侵检测领域,并采用理论研究与实验相结合的方法研究可视化入侵检测(Visualization in Intrusion DetectionVID)的模型、框架以及相关算法;并结合校园网环境研究可视化入侵检测系统的应用。

本课题提出的可视化入侵检测建立在异常检测与信息可视化基础之上,研究如何将用户在目标系统中活动等信息转换成安全专家和安全管理员易理解的可视信息,以利于安全专家和管理员更高效地与入侵检测系统协同工作,从而提高入侵检测系统的检测性能。

本课题主要研究内容如下:

1.对入侵检测的概念、入侵检测系统的实现原理、分类、基本模型和发展方向进行了分析。

2.针对目前可视化入侵检测研究缺乏整体框架的现状,提出了基于校园网环境的可视化入侵检测的模型,根据模型设计了可视化入侵检测系统的框架和结构,用以指导可视化入侵检测研究。

3.本课题针对可视化入侵检测算法在网络环境中逼真程度低等的现状,将提出一种高逼真度的可视化入侵检测算法,即一种基于曲线成分分析CCACurvilinear Component Analysis)的可视化入侵检测算法(本文简称传统的CCA算法)。针对传统的CCA算法在确定性方面的缺陷,进一步提出了改进的基于曲线成分分析CCA的可视化入侵检测算法(本文简称改进的CCA算法)。并分别对上述两种算法进行了理论与实验对比分析。

4.本课题结合校园网环境进行合理的规划设计,实现校园网环境的可视化入侵检测系统。针对系统的核心模块——可视化入侵检测分析中的算法采用主成份分析PCA和改进的曲线成分分析CCA算法建立可视化入侵检测过程,并采用KDD Cup99数据集进行了仿真测试验证。

通过本课题研究和系统实现,预期结果如下:通过引入新的映射工具,提出了基于CCA的高逼真度可视化入侵检测算法,并针对确定性需求改进了CCA算法。CCA算法在可视化复杂用户行为模式时具有较高的保留距离信息与区分聚类的能力,更适用于可视化Internet环境中Web应用系统的用户活动信息。本文通过研究信息可视化在入侵检测领域的应用,对入侵检测与信息可视化领域的相关研究都有一定的借鉴作用。基于可视化入侵检测理论,可为安全专家与安全管理员提供高效的辅助工具,从而提高入侵检测的工作效率与准确性。本文的研究工作,为减少入侵检测系统误报率、改善入侵检测性能提供了一种新的思路与途径。

第二章 入侵检测技术基础

2.1 入侵检测分析

韦伯斯特的字典把入侵(Intrusion)定义为“强行进入,或者未被允许、没有权限或不受欢迎的情况下进入一个地方或一个状态的操作”。当我们提到入侵检测的时候,我们指的是通过网络上的计算机来检测一个未被授权的侵入。而入侵检测是对入侵行为的发觉[4][25]。它通过从计算机网络或系统中的若干关键点收集信息,并对这些信息进行分析,从而发现网络或系统中有违反安全策略的行为和遭到攻击的迹象。本文提出的可视化入侵检测指利用可视化手段进行入侵检测的过程。

信息系统的入侵一般是由用户或自动程序(例如,蠕虫病毒)引起的。在本文中,主要针对信息系统中的用户入侵行为。根据文献[3]定义,用户入侵行为可分为三大类:

1. 外部渗透

指用户未经授权使用计算机,但试图获得访问计算机权限的行为。这种行为包括用户尝试登录口令、进行漏洞扫描、发起拒绝服务(Deny of Service, DoS)攻击等。

2. 内部渗透

指用户经授权可以访问计算机中部分资源(指数据与程序),但试图获得访问未授权资源权限的行为。这种行为包括缓冲区溢出(buffer overflows)攻击、CGICommon Gateway Interface)攻击、SQL 注入(SQL injection)攻击等。

3.不法行为

指用户经授权可以访问计算机中资源,但恶意地非法使用这些资源的行为。这种行为包括转手出售数据、多个用户使用一个用户账户等。

随着Internet的发展和网络的普及,许多信息系统基于Web架构。Internet用户一般能访问Web应用系统的部分资源。由于传统的安全机制难以保护Web应用系统不受内部渗透与不法行为的威胁,因此如何利用可视化入侵检测手段识别用户入侵行为日益受到人们关注。

可视化入侵检测技术是建立在异常检测技术与信息可视化技术基础之上,如何将入侵用户在目标系统中活动等有关日志信息转换成安全专家和安全管理员能够理解的可视信息或直观的图像,并提供交互功能,从而使安全专家和安全管理员可快速筛选、汇总网络访问、用户登录等日志数据,以利于及时发现非法用户的异常活动。

2.2 入侵检测系统分类

入侵检测系统是从计算机网络中的关键点收集信息,并分析这些信息,查看网络中是否存在违反安全策略的行为。入侵检测系统可以说是防火墙系统的合理补充和延伸,如果说防火墙是第一道安全闸门,入侵检测系统可以说是第二道安全闸门。入侵检测系统在不影响网络性能的前提下,实时、动态地保护来自内部和外部的各种攻击,同时有效地弥补了防火墙所能达到的防护极限。

随着入侵检测技术的发展,出现了很多入侵检测系统,不同入侵检测系统具有不同的特征。一般根据原始数据的来源和检测原理分类。按照原始数据来源的不同,可以将入侵检测系统分为主机入侵检测系统和网络入侵检测系统;按照检测原理的不同,可以将入侵检测系统分为异常检测系统和误用检测系统。

1. 根据原始数据的来源分类

入侵检测系统对所监控的网络或主机当前状态做出判断,并不是随意臆造,需要以原始数据中包含的信息为基础,做出判断。根据原始数据的来源,可以将入侵检测系统分为基于主机的入侵检测系统(Host-Based IDS,HIDS)和基于网络的入侵检测系统(Network-Based IDS,NIDS)。

1)基于主机的入侵检测系统(HIDS

HIDS主要用来保护运行关键的服务器。它通过监视与分析主机的审计记录和日志文件来检测入侵。图2-1HIDS的网络图[14][24]

2-1基于主机的入侵检测系统(HIDS)网络

2)基于网络的入侵检测系统(NIDS

基于网络的入侵检测系统主要用于实时监控网络关键路径的信息,监听网络上的所有分组来采集数据,分析可疑现象。图2-2HIDS的网络图[14]

2-2基于网络的入侵检测系统(NIDS)网络

NIDS的优点:监测速度快;隐蔽性好;视野更宽;较少的检测器;攻击者不易转移证据;操作系统无关性;可以配置在专门的机器上。

NIDS的缺点:只能监视本网段的活动,精确度不高;在交换环境下难以配置;防入侵欺骗的能力差;难以定位入侵者。

2. 根据检测原理分类

传统的观点是根据入侵行为的属性将其分为异常、误用和混合三种,然后分别对其建立异常检测(Anomaly Detection)模型和误用检测(Misuse Detection)模型。

1)异常入侵检测

异常入侵检测是指为所监测的系统建立一个正常情况下的描述文件,任何违反该描述的事件的发生都被认为是可疑的,即观测活动偏离正常系统使用方式的程度。

异常检测技术假定所有的入侵行为都是异常的,也就是说,如果可以为系统建立一个正常行为文件,那么理论上,也就可以标示所有与已建立的文件不同的系统状态为入侵尝试。

异常检测的方法主要有以下几种:

1)基于统计的异常检测方法

统计方法是异常检测中应用最早的一种方法,也是最接近实用的一种方法。首先,检测器为各种类型的行为都建立一个行为特征表,通过比较当前特征与已存储定型的以前特征,从而判断是否是异常行为。特征表需要根据审计记录情况不断地加以更新。用于描述特征的变量类型有:操作密度、审计记录分布、范畴尺度:度量在一定动作范畴内特定行为的分布情况和数值尺度。统计方法既可以用在NIDS中,也可以用在HIDS中,在NIDS中无法做到细粒度的统计,描述特征的变量主要表现为具有某种特征报文的数量或网络流量;统计方法既可以用在NIDS中,也可以用在HIDS中,在NIDS中无法做到细粒度的统计,描述特征的变量主要表现为具有某种特征报文的数量或网络流量;HIDS则可以记录比较详细的行为特征:CPU的使用,I/O的使用,使用地点及时间,邮件使用,编辑器使用,编译器使用,所创建、删除、访问或改变的目录及文件,网络上活动等。

2)基于神经网络的异常检测方法

神经网络的引入对入侵检测系统的研究开辟了新的途径,由于它有很多优点,如自适应性,自学习能力,因此,在基于神经网络的入侵检测系统中,只有提供系统的审计数据,它就可以通过自学习从中提取正常的用户或系统活动的特征模型,而不必对大量的数据进行存取,精简了系统的设计。这种方法的优点是它不依赖于任何有关数据种类的统计假设,并能较好地处理噪声数据。它的不足之处是网络的拓扑结构和每个元素分配权重必须经过多次的尝试与失败的过程才能确定;另外神经网络不能为它们发现的任何异常提供解释,这就妨碍了用户获得说明性资料或寻求入侵安全问题根源的能力。

3)基于数据挖掘的异常检测方法

计算机联网导致大量审计记录,而且审计记录大多是以文件形式存放(如UNIX系统Sulog),若单独依靠手工方法去发现记录中的异常现象是不够的,往往是操作不便,不容易找出审计记录间的相互关系。Wenke LeeSalvatore J.Stolfo将数据挖掘技术应用到入侵检测研究领域中[9][21][23],从审计数据和数据流中提取感兴趣的知识。这些知识是隐含的、事先未知的、潜在的有用信息,提取的知识表示为概念、规则、规律、模式等形式,并可用这些知识去检测异常入侵和已知的入侵。基于数据挖掘的异常检测方法目前已有现成的KDD算法可以借用,这种方法的优点是可适应处理大量数据的情况。但是,对于实时入侵检测则还存在问题,需要开发出有效的数据挖掘算法和相适应的体系。

4)基于规则的方法

基于规则的方法主要采用规则集来表示正常行为模型。

5)其它的方法

基于免疫系统、贝叶斯网络、机器学习、协议认证、筛选的异常检测方法。

2)误用入侵检测

误用检测也被称为基于知识的检测,它指运用已知攻击方法,根据已定义好的入侵检测模式,通过判断这些入侵模式是否出现来检测。因为很大一部分的入侵是利用了系统的脆弱性,通过分析入侵过程的特征、条件、排列以及事件间关系能具体描述入侵行为的迹象。这种方法由于依据具体特征库进行判断,所以检测准确度很高,并且因为检测结果有明确的参照,也为系统管理员采取相应措施提供了方便。主要缺陷在于与具体系统依赖性太强,不但系统移植性不好,维护工作量大,而且将具体入侵手段抽象成知识也很困难。并且检测范围受已知知识的局限,尤其是难以检测出内部人员的入侵行为,如合法用户的泄露,因为这些入侵行为并没有利用系统的脆弱性。

误用检测的方法主要有以下几种:

1)基于表达式匹配的误用入侵检测

表达式匹配就是在事件流中搜索是否有特定的模式,如果有则为可疑事件。一个简单的例子就是“目标端口80,负载内容包含cmd.exe”能够代表一个通过HTTP试图运行本地程序的模式。

2)基于状态转移分析的误用入侵检测

状态迁移分析系统利用有限状态自动机来模拟入侵。入侵由从初始系统状态到入侵状态的一系列动作组成,初始状态代表着入侵执行前的状态,入侵状态代表着入侵完成时的状态。系统状态根据系统属性和用户权利进行描述,转换则由一个用户动作驱动。每个事件都运用于有限状态自动机的实例中(每个实例都代表了一个攻击模式),如果某个自动机到达了它的最终状态,即接受了事件,则表明该事件为攻击。这种方法的优点是能检测出合作攻击以及时间跨度大的缓慢攻击。不足之处是状态和转换动作是手工编码,因而很难精确表达。

3)基于专家系统的误用入侵检测

基于专家系统的误用入侵检测方法是通过将安全专家的知识表示成规则形成专家知识库,然后运用推理算法检测入侵。用专家系统对入侵进行检测,经常是针对有特征的入侵行为。所谓的规则,即是知识,专家系统的建立依赖于知识库的完备性,知识库的完备性又取决于审计记录的完备性与实时性。这种方法能把系统的控制推理从问题解决的描述中分离出去,输入的攻击信息使用if-then语法,指示入侵的条件被具体地放在if后,然后将事件与条件进行比较,如果匹配就执行then语句后面的动作。它的不足之处是不能处理不确定性;没有提供对连续有序数据的任何处理;另外,建立一个完备的知识库对于一个大型网络系统往往是不可能的,并且如何根据审计记录中的事件提取状态行为与语言环境也是较困难的。

4)基于击键监控的误用入侵检测

击键监控方法假设入侵对应特定的击键序列模式,随后监测用户击键模式并将它与入侵模式匹配,如相同则为入侵行为。这一方法的缺点非常明显:首先,批处理或Shell程序可以不通过击键而直接调用一系统攻击命令序列;其次,操作系统通常不提供统一的击键检测接口,需通过额外的钩函数来监测击键。

5)基于遗传算法的误用入侵检测

遗传算法就是寻找最匹配于所观测到的事件流的已知攻击的组合,该组合表示为一个二进制向量,向量中每一个元素都表示某一种攻击的出现。向量值是按照与各个攻击有关的程度和二次罚函数而逐步演化得到的。同时在每一轮演化中,当前向量会进行变异和重新测试,这样就将误报和漏报型错误的概率降至零。

6)基于专用语言的误用入侵检测

这种实现方法就是入侵检测系统使用专门的语言,如Snort来表示入侵特征。一个入侵特征用一段特定的程序来表示,当一个事件输入到该程序中触发了内部警报状况,就被视为攻击。

3. 根据数据分析时间分类

根据数据分析发生的时间不同,可以分为:脱机分析和联机分析。

1)脱机分析:在行为发生后,对产生的数据进行分析,而不联机分析是在行为发生的同时进行。如日志的审核,系统文件的完整性检查等。

2)联机分析:在数据产生或者发生改变的同时对其进行检查,以发现攻击行为。采用这种方式一般对网络数据进行分析,对系统资源要求较高。

4. 根据系统模块的分布方式分类

根据系统各个模块的分布方式不同,可以分为:集中式和分布式。

1)集中式:这种结构的入侵检测系统可能有分布于不同主机上的多个审计程序,但只有一个中央入侵检测服务器,审计程序将当地收集到的数据踪迹发给中央服务器进行分析处理。显然,这种结构的 IDS 在可伸缩性、鲁棒性和可配置性方面存在致命的缺陷:

第一,随着网络规模的增加,主机审计程序和服务器之间传送的数据量就会骤增,导致网络性能恶化。

第二,系统安全性脆弱,一旦中央服务器出现故障,整个系统就会陷入瘫痪状态。

第三,根据各个主机的不同需求配置服务器非常复杂。

2)分布式:系统的各个模块分布在网络中不同的计算机、设备上,各个模块协同工作。一般来说,分布性主要体现在数据源上,并且数据源可以是异构的;同时对数据的处理组件也应是分布式的。这种分布式的入侵检测系统能够克服上述集中式的缺点,但是同时也带来了其他问题,比如组件间的通信问题,检测信息的协同处理与入侵的全局信息提取等等问题。这种结构是面对网络复杂,数据量较大的情况发展起来的。

2.2 入侵检测系统基本模型

2.2.1 IDES模型

IDESIntrusion Detection Expert System)模型是最早的入侵检测模型,它由Dorothy E.Denning1987年提出[2]。这个模型与具体系统和具体输入无关,对以后的大部分实用系统都有借鉴价值。模型的体系结构见图2-3所示。

2-3 IDES模型体系结构

该模型由以下六个部分构成:

1)主体

主体是指系统操作中的主动发起者,是在目标系统上活动的实体,如用户。

2)对象

系统资源,如文件、设备、命令等。

3)审计记录

审计记录是指主体对对象实施操作时,系统产生的数据,如用户注册、命令执行和文件访问等。审计记录的格式为ActionObjectException-ConditionResource-UsageTime-Stamp>的六元组。

4)活动简档

用以保存主体正常活动的有关信息,具体实现依赖于检测方法,在统计方法中从事件数量、频度、资源消耗等方面度量,可以使用方差、马尔可夫模型等方法实现。

5)异常记录

用以表示异常事件的发生情况。

6)活动规则

活动规则指明当一个审计记录或异常记录产生时应采取的动作。规则集是检查入侵是否发生的处理引擎,结合活动简档用专家系统或统计方法等分析接收到审计记录,调整内部规则或统计信息。

2.2.2 CIDF模型

为了提高IDS产品、组件及与其它安全产品之间的互操作性,美国国防高级研究计划署(DARPA)和互联网工程任务组(IETF)的入侵检测工作组IDWGIntrusion Detection Working Group)发展制定了一系列建议草案,从体系结构、API、通信机制、语言格式等方面规范IDS标准。

CIDF[5]IDESNIDES的基础上提出了一个通用模型,即CIDF模型。它将一个入侵检测系统分为以下组件:事件产生器(Event generators)、事件分析器(Event analyzers)、响应单元(Response units)和事件数据库(Event databases)。

CIDF将入侵检测系统需要分析的数据统称为事件(event),它可以是基于网络的入侵检测系统中网络中的数据,也可以是从系统日志或其它途径得到的信息。这四个组件只是逻辑实体,例如,一个组件可能是某台计算机上的一个进程或线程,也可能是多个计算机上的多个线程,它们以统一入侵检测对象GIDOgeneralized intrusion detection objects)格式进行数据交换。GIDO是对事件进行编码的标准通用格式。GIDO数据流可以是发生在系统中的审计事件,也可以是对审计事件的分析结果。

由于CIDF有一个标准格式GIDO,所以这些组件也适用于其它环境,只需要将典型的环境特征转换成GIDO格式,这样就提高了组件之间的消息共享和互通。CIDF的体系结构如图2-4所示。

2-4 CIDF模型体系结构

2.3 入侵检测系统工作流程

通常入侵检测系统为了分析、判断特定行为或者事件是否为违反安全策略的异常行为或者攻击行为,需要经过下列四个过程如图2-5所示。

2-5 入侵检测流程图

1. 数据采集阶段

入侵检测系统需要采集必要的数据用于入侵分析。

2. 数据过滤及缩略

根据预定义的设置,进行数据必要的数据过滤及缩略,从而提高检测、分析的效率。

3. 检测/分析

根据定义的安全策略,检测/分析。

4. 报警及响应

一旦检测到违反安全策略的行为或者事件,进行报警及响应。

2.4 入侵检测系统发展方向

由于网络上的漏洞不断被发现,入侵技术方法发生了变化,入侵手段与技术也有了改变,这些变化和改变加速了人们对入侵检测系统的研究和推广工作。从最近几年的发展趋势看,入侵技术的发展与演化主要反映在以下几个方面:

1)入侵或攻击的综合化与复杂化。入侵的手段有多种,入侵者往往采取一种攻击手段。由于网络防范技术的多重化,攻击的难度增加,使得入侵者在实施入侵或攻击时往往同时采取多种入侵的手段,以保证入侵的成功几率,并可在攻击实施的初期掩盖攻击或入侵的真实目的。

2)入侵主体对象的间接化,即实施入侵与攻击的主体的隐蔽化。通过一定的技术,可掩盖攻击主体的源地址及主机位置。即使用了隐蔽技术后,对于被攻击对象攻击的主体是无法直接确定的。

3)入侵或攻击的规模扩大。对于网络的入侵与攻击,在其初期往往是针对于某公司或一个网站,其攻击的目的可能为某些网络技术爱好者的猎奇行为,也不排除商业的盗窃与破坏行为。由于战争对电子技术与网络技术的依赖性越来越大,随之产生、发展、逐步升级到电子战与信息战。对于信息战,无论其规模与技术都与一般意义上的计算机网络的入侵与攻击都不可相提并论。信息战的成败与国家主干通信网络的安全是与任何主权国家领土安全一样的国家安全。

4)入侵或攻击技术的分布化。以往常用的入侵与攻击行为往往由单机执行。由于防范技术的发展使得此类行为不能奏效。所谓的分布式拒绝服务(DDoS)在很短时间内可造成被攻击主机的瘫痪。且此类分布式攻击的单机信息模式与正常通信无差异,所以往往在攻击发动的初期不易被确认。分布式攻击是近期最常用的攻击手段。

5)攻击对象的转移。入侵与攻击常以网络为侵犯的主体,但近期来的攻击行为却发生了策略性的改变,由攻击网络改为攻击网络的防护系统,且有愈演愈烈的趋势。现已有专门针对IDS作攻击的报道。攻击者详细地分析了IDS的审计方式、特征描述、通信模式找出IDS的弱点,然后加以攻击。

今后的入侵检测系统大致可朝下述四个方向发展。

1)大规模分布式的检测技术

传统的IDS基本模型是在网络的不同位置放置多个探测器收集网络状态的信息,然后将这些信息传送到中央控制台进行处理分析。

2)更先进的检测算法

计算机免疫、神经网络和遗传算法等算法的相继出现提高了入侵检测的效率。

3)高速网络实时的检测技术

在由Miercom进行的实验室评测中,IntrusionSeeureNet Gig690.86Mb/s的数据流量时可以检测到98%的攻击,在789.6 Mb/s的数据流量时检测到88%的攻击,而在986.94 Mb/s的数据流量下只能检测44%的攻击。因此,随着千兆以太网的出现,如何实现高速网络下的实时入侵检测已迫在眉睫。

4)实现IDS与其他安全部件的互动

实现网络与信息的安全是一项系统工程,不是哪一种单独的安全部件就可以完成的,只有在不同的安全部件之间实现互联互动,才能够更好地发挥它们各自的作用,才可以比较好地保证网络与信息的安全。随着防火墙、入侵检测等技术的不断发展,实现它们之间的互动显得越来越重要。因此,对于安全部件之间的互动协议和接口标准的研究,也是IDS研究的一个重要方向。

2.5 本章小结

本章主要讨论了入侵检测相关知识,引出可视化入侵检测的概念。从原理的角度阐述了入侵检测系统的分类,入侵检测系统的体系模型,入侵检测系统的工作流程以及入侵检测系统的发展方向。

第三章 可视化入侵检测系统分析与设计

本章针对校园网环境,分析可视化入侵检测系统功能需求和性能需求,设计可视化入侵检测模型与系统框架结构。在系统建模中刻画用户行为,给出系统的动态行为过程。

3.1系统功能需求

针对校园网安全的需求分析,得出安全防范系统的可视化入侵检测系统功能如下:

1. 监控、分析用户和系统的活动

这是校园网部署可视化入侵检测系统的首要任务。可视化入侵检测系统通过获取进出某台主机的数据和整个网络的数据,或者通过查看主机日志等信息来实现对用户和系统活动的监控。获取网络数据的方法一般是“抓包”,即将数据流中的所有包都抓下来进行分析。这就对可视化入侵检测系统的效率提出了高的要求。如果可视化入侵检测系统不能实时地截获数据包并对它们进行分析,那么就会出现漏包的现象或网络阻塞的现象,如果是前一种情况,系统的漏报就会增多;如果是后一种情况,就会影响到可视化入侵检测系统所在主机或网络的数据流速,使得可视化入侵检测系统成了整个系统的瓶颈,这显然是用户不愿看到的结果。因此,可视化入侵检测系统不仅要能够监控、分析用户和系统的活动,还要使这些操作足够的快。

2. 入侵异常检测

主要包括两个方面:一方面是可视化入侵检测系统对进出网络或主机的数据流进行监控,看是否存在对系统的入侵行为;另一方面是评估系统关键资源和数据文件的完整性,看系统是否己经遭受了入侵。前者的作用是在入侵行为发生时及时发现,从而避免系统遭受攻击;而后者一般是系统在遭到入侵时没能及时发现和阻止,攻击的行为己经发生,但可以通过攻击行为留下的痕迹了解攻击行为的一些情况,从而避免再次遭受攻击。对系统资源完整性的检查也有利于安全管理员对攻击者进行追踪,对攻击行为进行取证。

3. 记录、报警和响应

可视化入侵检测系统在检测到攻击后,应该采取相应的措施来阻止或响应攻击,首先应该记录攻击的基本情况,其次应该能够及时发出警报。必要时,系统还应该采取必要的响应行为,如拒绝接受所有来自某台计算机的数据、追踪入侵行为等。

4. 可视化显示

用可视化的方式显示当前安全态势,用不同的颜色和形状表示关键点(如外部IP)。可根据需要设置条件,实时显示事件,包括攻击源、目标的MAC地址、IP地址,流量信息;对各种协议相关事件如TelnetSMTP,按需要进行回放。

5. 入侵事件分析和入侵检测查询

可视化入侵检测系统不仅能抓取网络中的数据流并进行分析,与事件库中的入侵行为进行模式匹配,从而对入侵行为进行报警,而且能够进行完备的协议分析,保证对数据流的分析是比较完整的。同时,还具有异常统计的功能,以降低误报率,提高工作效率。安全管理员通过该模块浏览器在远程直接对数据库记录进行查询、分析MySQL数据库中的数据,以加强对特殊事件的管理与监控。

3.2 系统性能需求

1. 实时性

可视化入侵检测系统必须能够尽快的发现攻击或者攻击的企图,这就使得有可能查找出攻击者的位置,阻止进一步的攻击活动,有可能把破坏控制在最小限度,并能够记录下攻击者攻击过程的全部网络活动,并可作为证据回放。

2. 检测能力和方便性

因为入侵场景的复杂性,可视化入侵检测系统应该含有能描述和检测入侵模式的功能强大的计算模型,这是入侵检测系统的主要要求。另外系统必须提供一个方便的方法表达和检测攻击签名。尽管象CPascal这样的通用语言已经足够强大,但对审计数据分析来说就不足够有效了。为了方便,在审计跟踪书籍中匹配攻击签名的计算模型必须支持即插即用的特性和控制结构,能满足审计数据分析的特殊要求。用户使用方便也就是意味着在表达所检测到的入侵模式时要简单且直观。由于穷举当前和将来所有的攻击场景是不可能的,自然有些方法就不可行,特别是只提供了有限表达能力的方法。在这些方法中,当新的攻击场景不能由已有的能力来描述时,新的检测能力必须不断加入到检测引擎中才行。

3. 可复用性

软件的一个有价值的特点是以很小的开销就可以实现在不同的环境中复用。在软件工程中,可复用性在软件开发的不同阶段都有论述。这包括代码的复用性,详细设计的复用性,整体设计的复用性或规范说明部件的可复用性。审计数据分析工具也不例外。审计数据分析工具的复用是相当有价值的,至少封装在其中的知识是如此。当环境改变时,变化可能要涉及到机器组成结构,操作系统,审计机制,安全策略等。审计数据分析工具的可复用性可在逻辑层次上和物理层次上进行考虑。在逻辑层次上的复用性可由通用入侵检测模型来例证,该模型为利用抽象部件(主体,客体,轮廓,活动规则等)来描述可视化入侵检测系统提供了框架。该模型不仅使系统的逻辑设计的移植变得轻松,也减少了不同系统间的对比分析。

4. 效率性

效率对可视化入侵检测系统来说是关键性的需求。首先,攻击场景的复杂性需要有效的检测引擎,它能在审计数据中对复杂的入侵场景进行模式匹配。其次,实时分析是以有效的分析引擎为前提的,它的分析速度至少要比审计数据的产生速度要大上几倍,这样才能保证高峰期的正常运行。再次,在实际的审计机制中,审计文件量过大的事实使得效率需求比离线分析的需求更重要。

5.有效性

设计所建立的可视化入侵检测系统能够对于攻击事件的错报与漏报能够控制在一定范围内。

3.3 入侵检测模型设计

为了保证校园网的安全,本文提出入图 3-1所示的可视化入侵检测模型,用以描述可视化入侵检测的全过程。

3-1可视化入侵检测模型

在该可视化入侵检测模型中,共有两个系统,即目标系统与可视化入侵检测系统。目标系统即被保护的系统,可视化入侵检测系统由四个过程构成:

历史数据可视化过程:从目标系统获得用户历史行为信息,将历史行为信息采用可视化算法转换为图像信息,传递给安全专家。

创建行为轮廓过程:通过与安全专家的交互,创建正常用户行为轮廓,传递给当前数据可视化过程,用以指导检测异常过程的执行。

检测异常过程:从目标系统获得用户当前行为信息,以正常用户行为轮廓作为检测基准,采用自动化的检测方法检测当前用户活动是否背离正常行为轮廓。如果发现背离,则认为当前用户活动异常,发出入侵警报,传递给当前数据可视化过程。

当前数据可视化过程:将正常用户行为轮廓、当前用户行为信息与入侵警报信息转化为可视图像信息,传递给安全管理员,以便安全管理员根据组织的安全策略做出决策。

在图3-1的模型中,存在着三类角色,即:

用户:是被监控的主体。用户在目标系统中的活动被记录下来,并以用户行为信息的形式传递给可视化入侵检测系统。

安全专家:负责在没有先验知识的前提下,训练入侵检测系统,建立用户正常行为轮廓。安全专家观察历史数据可视化过程提供的直观图像信息,根据知识与经验积累,结合社会、网络环境与组织的安全策略,创建出正常用户行为轮廓。安全专家通过与创建行为轮廓过程间的交互,不断调整正常行为轮廓,以达到准确创建行为轮廓之目的。

安全管理员:负责控制可视化入侵检测系统的日常运行。安全管理员根据当前数据可视化过程提供的可视信息来分析当前用户活动与正常行为轮廓之间的背离程度,深入调查入侵警报,根据自身的经验与知识,结合社会、网络环境与组织的安全策略,从异常用户活动中辨识出真正的入侵活动。

建立可视化入侵检测模型后,即可对可视化入侵检测系统的框架和结构进行深入研究。

3.4 入侵检测系统框架设计

基于图3-1所示的可视化入侵检测模型,参考入侵检测领域与信息可视化领域的已有研究成果[8][19][40][41][42][43],本文提出如图3-2所示的可视化入侵检测系统框架。

3-2可视化入侵检测系统框架

在创建轮廓时期,可视化入侵检测系统与安全专家协同工作。系统监控过程从目标系统采集历史日志数据,并传递给数据提取过程。由数据提取过程将历史日志数据格式化为安全审计事件,并交给历史行为建模过程。历史行为建模过程将用户历史行为模型输出给可视化建模过程。数据绘制过程从可视化建模过程获得可视化模型,输出图像数据,并由数据显示过程将图像数据转换为可视信号,传递给安全专家。安全专家观察可视的用户历史活动信息,创建出用户正常行为轮廓,以指导异常检测过程。如果安全专家希望调整获得的可视信息,可调整系统监控、数据提取、历史行为建模、可视化建模、数据绘制、数据显示等过程的参数,以获得期望的显示内容。

在检测异常时期,可视化入侵检测系统与安全管理员协同工作。经由系统监控、数据提取过程可获得当前用户活动的审计事件。当前行为建模过程将当前审计事件转换为当前用户行为模型,并传递给可视化建模过程与异常检测过程。异常检测过程检测当前用户活动是否与正常行为轮廓相背离,如果背离,则向可视化建模过程发出入侵警报。由可视化建模过程将当前用户行为模型、入侵警报等信息转换为可视化模型。然后,经由数据绘制、数据显示过程将可视化模型显示给安全管理员。安全管理员观察当前用户活动、入侵警报等可视信息,深入调查入侵警报发生的根源,根据组织安全策略决定是否进行安全响应。当安全管理员希望调整获得的可视信息时,也可调整系统监控、数据提取、可视化建模、数据绘制、数据显示等过程的参数,以获得期望的显示内容。

3.5入侵检测系统结构设计

针对图3-1可视化入侵检测模型和图3-2可视化入侵检测系统框架的构思,本文设计可视化入侵检测系统结构如图3-3所示。

3-3可视化入侵检测系统结构

为了实现可视化入侵检测模型中的描述的入侵检测的四个过程,本文将可视化入侵检测系统划分为两个子系统:可视化入侵数据管理系统和可视化入侵检测分析管理系统。其中的可视化入侵数据管理系统主要完成网络数据包的捕获、入侵数据的提取、分析和事件分析数据库的建立,该系统是可视化入侵检测系统(VIDS)的数据基础;而可视化入侵检测分析管理系统是可视化入侵检测系统(VIDS)的核心部分,根据可视化入侵数据管理系统提供的各种数据信息(历史数据和当前数据)对历史用户和当前用户的行为进行描述,并创建相应的可视化模型,然后利用可视化入侵检测算法实现数据向图形信息的映射,形成可视的图形信息。

在以下各节中,将简单介绍可视化入侵检测系统结构图中的各个模块的功能。

3.5.1入侵检测数据管理子系统

可视化入侵检测数据管理系统是可视化入侵检测系统(VIDS)的数据基础,也为可视化入侵检测数据分析管理系统提供数据支持。其主要包括三个部分:数据包捕获模块、数据提取模块和数据事件分析库。

1. 数据包捕获模块:该模块捕获的数据包括网络中的原始数据包和目标系统日志。

1)原始数据包:可视化入侵检测系统(VIDS)利用Libpcap的库函数进行原始数据包的采集,这些库函数可以为应用程序提供直接从数据链路层捕获数据包的接口函数。网络数据的解析机制是整个系统实现的基础,其中最关键的是要保证抓包的高效率和较低的丢包率,这不仅仅取决于软件的效率还同硬件的处理能力相关。

2)目标系统日志:用户在目标系统中的活动被以日志形式记录下来,日志数据反映了用户的主要活动信息。因此,日志数据成为了入侵检测系统的主要数据来源。目标系统的日志种类大致可分为:

基于主机的日志:主要由主机中的操作系统、应用程序日志构成。这类日志需要将传感器安装在被监控主机上,利用传感器直接采集被监控主机的日志数据。

基于网络的日志:主要由网络中的数据包构成。这类日志可通过监听网络中的数据包而获得。

基于网络设备的日志:包括防火墙、路由器等网络设备的日志数据。

其中,操作系统日志包括:系统日志、用户级审计踪迹、内核级审计踪迹。

常用的应用程序日志包括:Web日志、数据库日志。

由于Web日志易于获得,因此对以Web应用系统为目标系统的入侵检测系统而言,常采用Web日志作为入侵检测的数据源。Web日志主要包括访问日志和错误日志。在本文中,主要采用Web 访问日志作为实验的数据来源,部分实验中采用 Solaris 系统的审计踪迹作为实验数据来源。

2. 数据提取模块:该模块采集数据包捕获模块获取的数据作为来源,进行简单的处理,生成统一格式的安全审计事件,然后将经过处理的数据提交给数据分析模块。数据提取过程主要包括如下步骤:

1)协议分析:数据包捕获模块把捕获的数据提交给协议分析模块后,协议分析模块必须对这些数据进行分析,根据相应的协议把这些分析后的数据放到指定的数据结构中,供上层模块调用。同时协议分析模块还要对这些数据包进行一些基本的校验(如校验和等),如出现错误的数据包,及时丢弃。

2)规则匹配:根据源IP、目标IP,源端口范围和目标端口范围等属性分类组织成为规则集的。当一个数据包被检测时,从左向右检测每个规则集的上述四个参数以决定是检测该规则集还是转移到下一个规则集。然后根据已经建立的规则中查找匹配发现入侵。

3)数据预处理:预处理模块的作用就是对网络数据进行预先处理,从而方便随后的检测分析。另外,我们可以发现,基于规则的检测引擎并不能检测所有的入侵,尤其是针对有效载荷的检测,而像端口扫描、SYN Flooding等攻击,按照前面所述的方法很难对它们的特征进行提取。因此,需要特殊情况特殊处理,而预处理就是一个很好的选择。通过预处理可以用一种特殊的方式对数据包进行分析,如果在预处理模块中发现了攻击行为,此时就可以不再需要检测分析模块进一步处理了。

3. 事件分析数据库模块:一个好的入侵检测系统不仅仅应当为管理员提供实时、丰富的警报信息,还应详细地记录实时数据,以便于日后需要取证时重建某些网络事件。数据库管理的前端程序通常与控制台模块集合在一起。

该数据库的数据来源主要是数据提取模块处理后的数据,包括报警信息以及其它重要的信息,以及管理员经过条件查询后对查询结果处理所得的数据,如生成的本地文件、格式报表等。

3.5.2入侵检测数据分析子系统

可视化入侵检测分析系统是整个可视化入侵检测系统(VIDS)的核心,主要完成用户行为轮廓创建、当前和历史数据可视化和异常检测四个过程。该系统主要完成对前面的数据管理子系统中的当前、历史数据信息,采用可视化入侵检测算法(主要是基于散乱点的算法)实现可视化建模,然后利用直观的图形来显示入侵分析的结果,并根据结果进行异常检测,给出警报信息。为完成上述检测过程,将该子系统划分为:用户行为建模、可视化建模、异常检测、数据绘制与显示、安全响应模块和入侵检测查询等六个模块。

1. 用户行为建模:鉴于历史行为建模与当前行为建模的过程较类似,因此在本节中统一阐述行为建模过程。行为建模过程主要将前面数据库管理子系统中数据提取的结果进行分析,以审计事件为输入,建立描述目标系统用户行为的数学模型(即用户行为模型),并输出用户行为模型作为可视化建模、异常检测过程的输入。

建立用户行为模型步骤包括:确定行为建模涉及的主体范围;根据审计事件的客体信息,确定采用何种入侵检测测度。可选择如下测度[8][13]

事件:表示事件是否发生。

事件频率:表示某一周期内发生的事件数目。

事件间隔时间:表示当前事件与前一事件之间的时间间隔。

资源使用时间:表示某一资源(例如,CPU)被占用的时间长短。

资源使用率:表示某一资源(例如,CPU、内存)的使用率。

事件顺序:表示事件发生的先后顺序。

1)如选择事件频率等作为测度,则需要根据主体与时间戳,辨识出用户会话。用户会话可按如下标准进行划分:

固定时间间隔:将所有事件所在时间区域划分成长度相等的时间间隔,同一时间间隔中的事件处于同一会话中。例如,以天、小时、分为时间间隔。

移动时间窗:定义一个时间长度作为时间窗,并随时间流逝移动该时间窗,认为当前在时间窗内的事件处于同一会话中。

登录间隔:认为用户从登录进系统到离开系统之间发生的事件处于同一会话中。

2)针对每一主体,建立行为模型,并以如下的矩阵形式表示[16]

在上述矩阵M中,每一个p维行向量代表主体的一次会话,每一个n维列向量代表一种入侵检测测度。

在本文实验中,主要采用以事件频率为测度,以固定时间间隔作为划分会话的标准。建立行为模型的具体过程描述如下。

当审计事件提取完成后,存在集合:SetsSubjects, ObjectsTimestamp;其中,Subjects:代表主体标识,在本文实验的Web日志采集过程中,该标识取远程用户的IP地址。Objects:代表客体标识。在本文实验中,该标识为被访问的Web资源名。Timestamp:代表审计事件发生的时间戳。在本文实验中,取CLF日志中的请求时间。

则审计事件Events形式具体为公式(3-1):

Events Subjects×Objects×Timestamp≠Φ 公式(3-1

在审计事件基础上,可确定审计事件构成的数据集,记为公式(3-2):

Dataset 2Events 公式(3-2

依据组织的安全策略,可定义规则,记为公式(3-3)、公式(3-4):

Filter Timestamp×Timestamp 公式(3-3

Interval Timestamp×Timestamp 公式(3-4

其中,

Filter:表示当前用于过滤审计事件的滑动时间窗口。

Interval:表示划分会话的时间间隔。

依据规则中的滑动时间窗口,对审计事件构成的数据集进行处理,可得过滤后的数据集,记为公式(3-5):

Dataset(Filter)={x|xDatasetx=(s,o,t)1,t2>Filtert1tt2sSubjectsoObjectstTime} 公式(3-5

其中,dataset表示过滤数据集的操作。

在过滤完数据集后,依据规则中的划分会话标准,可得用户会话,记为公式(3-6):

Session(dataset(Filter),Interval)={x|xdataset(Filter)x=(s,o,t)1,t2>Intervalt1tt2sSubjectsoObjectstTime}

公式(3-6

其中,Session表示会话的集合。根据上述数据,可得用户行为模型,记为公式(3-7):

ψ=(dataset(Filter),Interval)={Si|Si

Session (dataset(Filter),Interval)1in} 公式(3-7

其中,n为行为模型中用户会话的数目,n为自然数,表示创建用户行为模型的操作。

用户行为模型ψ也可表示为矩阵M形式。以频率为测度,以固定时间间隔为划分会话标准而得到的矩阵M的示例如表3-1所示。

3-1 矩阵M示例

矩阵M第一个行向量表示一个会话,该会话表示Web用户在200711208:378:38这一分钟内访问了/index.htm页面3次,/bookview/index.htm页面2次,……,/Java/jv01.htm页面0次,/Java/jv02.htm页面0次。这样,通过矩阵形式,就以量化方式描述了用户行为。

文献[16]中提到,可采用矩阵M行向量间的关联关系来描述用户会话间的背离程度。这种关联关系表示了用户行为间的相似程度,刻画了用户行为的内在联系。在信息系统的长期使用过程中,可收集到大量用户会话。在这些会话中,如果许多会话彼此非常相似,则这些会话体现了正常的用户行为。如果某些会话与所有正常会话都不相似,则这些会话体现了异常的用户行为。异常用户行为中,可能存在着用户入侵行为。因此,上述行为模型隐喻地表示了用户的正常与异常行为。

在创建轮廓时期,将行为模型信息传递给可视化建模过程,可最终得到用户历史活动的可视化信息,并传递给安全专家。在检测异常时期,得到行为模型后,不仅可传递给可视化建模过程,还可作为可视化信息的来源之一,传递给异常检测过程,从而自动化地执行检测任务。

2. 可视化建模:可视化建模过程是将由应用数据表示的行为模型映射为由几何数据表示的可视化模型的过程。

可视化建模过程采用可视化入侵检测算法实现。本文主要研究如下可视化入侵检测算法:

基于散乱点的可视化入侵检测算法:该算法将行为模型及相关信息转换为散乱点可视化模型。本文将在第四章中重点介绍对该算法的研究成果,本文将阐述如下两类基于散乱点的可视化入侵检测算法:

基于主成分分析PCA的可视化入侵检测算法。

基于曲线成分分析CCA的可视化入侵检测算法。

可视化入侵检测算法的输入为用户行为模型,输出为散乱点可视化模型。

3. 异常检测:异常检测过程是将用户当前活动与正常用户行为作比较,比较过程可选用不同的数学分析工具,例如:

聚类分析[16][17][18][19]

χ2测试[12][13][14]

T2 测试[13][14]

马尔可夫链[13][14][15]

利用上述数学工具,即可评价当前用户活动与正常行为之间的背离程度(即相似程度)。如果发现当前用户活动背离正常行为轮廓,则发出入侵警报。入侵警报信息传递给可视化建模过程,可视化后最终传递给安全管理员。

4. 数据绘制与显示:本文主要研究基于散乱点的可视化入侵检测算法。该算法将行为模型及相关信息转换为散乱点可视化模型。本文将在第四章中重点介绍对该算法的研究成果,并主要阐述基于散乱点的可视化入侵检测算法

在可视化建模过程完成后,将依次进行数据绘制过程与数据显示过程。数据绘制过程负责将由点、线、面等几何数据构成的散乱点等可视化模型转换成象素点构成的图像数据。在数据显示过程中,则将图像数据在指定的图像输出设备(例如,显示器、打印机等)上显示。

5. 安全响应模块:由于入侵警报可能是误报,安全管理员接收到入侵警报后,首先利用可视化控制台深入调查入侵警报产生的原因,然后根据组织的安全策略决定是否启动安全响应过程。

安全响应过程主要包括:收集入侵证据和调整系统与网络环境。

安全响应过程应在确认发生入侵后才能启动,故启动前需深入调查入侵警报产生原因。在深入调查过程中,安全管理员需要快速而深入地了解用户活动规律,这就需要将当前用户活动、历史用户行为轮廓、入侵警报等信息以直观的方式传递给安全管理员。因此,只有为安全管理员提供准确而直观的可视信息,才能提高安全管理员对入侵警报的处理效率,减少做出错误安全响应的可能性。

6. 可视化入侵检测查询:系统提供对入侵检测结果的数据库记录和入侵事件的查询等功能。管理员可通过该模块浏览器在远程直接对数据库记录进行查询、分析MySQL数据库中的数据,以加强对特殊事件的管理与监控。比如,提取某时段的入侵源IP地址、目标IP地址、攻击类型等主要入侵参数,并作相应的技术统计工作,同时对典型攻击进行专项统计。为计算机取证提供电子证据,为反入侵系统提供反应依据。

3.6 本章小结

本章首先提出了可视化入侵检测模型,用以指导可视化入侵检测研究。然后,在可视化入侵检测模型基础上,本章提出了可视化入侵检测框架。在创建轮廓时期,该框架可利用安全专家的认知能力,提高正常用户行为轮廓的准确程度;在检测异常时期的安全响应阶段,该框架还可提高安全管理员深入调查时的效率与正确性。最后,分析了可视化入侵检测系统的性能需求,并对可视化入侵检测系统结构进行了设计,将可视化入侵检测系统划分为两个子系统:可视化入侵数据管理系统和可视化入侵检测分析管理系统,并对各个功能模块进行了阐述。


第四章 基于散乱点的可视化入侵检测算法设计

本章主要研究基于散乱点的可视化入侵检测算法,即利用用户行为模型构造可视的散乱点数据场的算法。利用该算法可为安全专家创建轮廓与安全管理员深入调查提供可视信息。

根据用途不同,可视化入侵检测算法分为两类:

为安全专家提供可视化信息的创建轮廓时期算法;

为安全管理员提供可视化信息的检测异常时期算法。

创建轮廓时期算法以用户历史行为模型为输入数据,输出隐喻用户历史活动的可视化信息。基于这些可视化信息,安全专家可根据不同的用户行为模式选择合适的聚类算法,用以区分聚类,并进一步完成移除异常数据与精简用户行为轮廓的工作,从而提高正常用户行为轮廓的准确性,最终达到准确创建正常用户行为轮廓之目的。

检测异常时期算法以用户当前活动、正常行为轮廓、入侵警报为输入数据,输出相应的可视化信息。基于这些可视信息,安全管理员可依据不同用户行为模式选择合适的数学分析工具,进一步分析与入侵警报相关的用户活动、行为轮廓数据,得出更精确的结论,从而达到深入调查入侵警报之目的。

4.1 检测算法理论依据

基于散乱点的可视化入侵检测算法将由空间向量表示的用户行为模型映射成为可视的点数据场,通过观察点数据场的位置信息可获得描述用户行为模式的宏观信息。在交互过程中,可观察点数据场的局部放大区域以获得微观的用户活动信息。在该局部放大区域中的可视点可标以不同的颜色、符号、纹理,以区别如下信息:

用户主体标识

用户行为轮廓

用户会话标识

用户会话顺序

日志数据来源

在入侵检测过程中,无论创建轮廓时期,还是检测异常时期,都需要度量用户行为模型中会话间的彼此背离程度。因此,在提出可视化入侵检测算法前,首先应定义度量用户会话间背离程度的标准,即定义用户行为的评价标准。

文献[16]中提到,可采用矩阵M行向量间的关联关系来描述会话间的背离程度。关联关系越强,会话间的相似程度越高;会话间关联关系越弱,相似程度越低。数学上,可采用关联系数rij来度量会话间相似程度,即可以rij作为用户行为的量化评价标准。rij的计算方法见公式(4-1)。

公式(4-1

其中,表示见公式(4-2),表示见公式(4-3)。

1in 公式4-2

1in 公式4-3

在传统的信息系统中,用户活动受约束多,行为较规范,每天都完成类似的固定工作,因此用户行为的一致性较好,表现为同一用户不同会话间的关联关系非常强(rij1)。在Internet环境中,由于缺乏严格的安全管理手段,用户在不同会话中完成的工作可能各不相同,这导致用户行为的一致性差,即同一用户不同会话间的关联关系比较弱。这样的关联关系造成了同一用户可能存在多种行为模式,并且行为模式特征不明显,各种行为模式间界限较为模糊。这导致了用户行为模式的复杂化,从而增加了辨识行为模式的难度。

另一方面,由于用户行为易受外界环境影响,可能导致信息来源不准确。例如,传统信息系统一般运行在局域网环境中,用户身份是确定的,而部分基于Internet的信息系统用户身份信息只能通过网络地址来反映。由于网络地址转换的影响,造成用户身份信息不准确,导致刻画用户行为的信息来源不准确。因为某些用户的活动信息混合在一起,难以分离,所以在入侵检测过程中,某用户的会话可能被错误地划分为另一用户的会话。这可能导致不同用户的行为模式相互之间界限模糊。如何从这样的行为模式中发现用户行为轮廓,是入侵检测研究的一大难题。

某些环境因素的影响也会导致用户行为模式界限模糊。例如,企业对外进行促销活动,可能造成用户频繁调用企业信息系统中部分命令,导致该用户的当前会话与历史会话之间出现差异,从而体现为当前会话与历史会话之间关联关系较弱(即当前会话背离历史会话)。相对于历史会话构成的行为模式,当前会话体现了一种不同的行为模式。由于这种行为模式是特定环境中形成的,因此如果在创建轮廓时考虑这种行为模式,会导致对用户行为模式特征的认识出现偏差。这种偏差会导致用户行为轮廓不准确。

针对上述存在的问题,需要在辨识用户行为模式过程中借助人类杰出的认识能力,因此需要展开对可视化入侵检测算法的研究,以便为安全专家与管理员提供可视化信息。

为可视化用户会话,可对矩阵M按行向量进行标准化(normalization)计算,见公式(4-4)。

1in 公式(4-4

可得标准化后矩阵,记为

xi表示第i个标准化的行向量,记为公式(4-5

1in 公式(4-5

2个标准化的p维行向量在欧氏空间的距离与rij成正比,即有公式(4-6)。

1in 公式(4-6

本文提出的可视化算法建立在异常检测理论基础之上。异常检测多采用统计分析手段实现,基于统计的异常检测方法建立在如下入侵检测假设[8]基础上:大多数正常用户在目标系统中的活动有相似性,即背离程度非常低,可提取出一致的行为模式;异常用户的活动往往背离正常用户行为模式,表现为与正常行为模式的不一致。

根据上述假设,如果采用欧氏距离作为相似性度量,大多数正常用户会话对应的点在原始空间中聚集为聚类,而大多数异常用户会话对应的点在原始空间中表现为聚类外的游离点。因此,通过观察空间点的位置可获得用户行为模式的信息。

如果安全专家能够观察到空间中点之间的距离,感知到聚类与游离点的空间分布,即可辨识出正常会话与异常会话,从而能移除异常数据,并正确精简行为轮廓,使行为轮廓更加精确。如果安全管理员也能观察并感知到这些信息,有助于安全管理员根据入侵警报进行深入调查与进一步分析。

然而,由于Internet环境中Web应用系统的被监控资源数目非常多(例如,淄博职业学院图书馆某Web服务器被监控的资源数目在3004,000之间),使得用户行为模型一般是高维的多元数据。由于视觉限制,人类无法观察到高维空间中的点集,因此需要使用数据映射(data mapping)工具来精简行为模型维度,将高维空间中的点集映射到可视空间中。

因此,本文提出的基于散乱点的可视化入侵检测算法的核心任务是将由会话构成的用户行为模型映射为可视空间中的散乱点图形。

4.2 检测算法性能要求

在研究可视化入侵检测算法之前,首先应明确Internet环境对算法性能提出了哪些要求。本文现从逼真度、运算速度、确定性三方面讨论算法的性能需求。

4.2.1 逼真度

数据映射过程是可视化入侵检测算法中最容易引起失真的部分。在本文中,逼真度主要指在数据映射过程中保留用户行为模式信息的能力。具体而言,逼真度指在映射空间中保留原始空间中点间距离的能力,逼真度可以用映射前后点间距离的差异来度量。

在文献[42]中,引入了dy-dx图来定量分析数据映射工具保留距离信息的能力。由于在Internet环境中用户数目众多,导致进行数据映射时需要一次处理的用户会话数目非常多。因此,在本文的实验中,样本数目也非常多。而dy-dx图采用二维平面点的位置来描述映射工具保留点间距离能力,在样本数目非常多的情况下显示效果不直观。为此,本文提出距离偏差分布图用以度量映射工具保留点间距离的能力。

Xij代表原始空间中标准化行向量xixj之间的欧氏距离,Yij代表映射空间中可视点yiyj之间的欧氏距离,记为公式(4-7)和公式(4-8)。

1ijn 公式(4-7

1ijn 公式(4-8

则可利用公式(4-9)计算原始空间中第i点与第j点间距离Xij与映射空间中相应两点间距离Yij之间的差值Dij

1ijni公式(4-9

Dij为横轴,以Dij的频率计数为纵轴,即可得距离偏差分布图(如图4-1所示)。

4-1距离偏差分布图

通过观察距离偏差分布图,对可视化入侵检测算法的逼真度可进行如下两方面评价:

原始空间与映射空间中点间距离的偏差量;

原始空间与映射空间中点间距离的分布情况。

为距离偏差分布曲线,点间距离的偏差量可用如下公式计算:

公式(4-10

即计算图4-1中阴影部分的面积。当c→∞时,表示所有点间距离的偏差量总和。

通过观察曲线的形状,可评价点间距离的分布情况。图4-2(a)的曲线形状表示在数据映射过程中大部分距离失真较小,少量距离失真较大,失真较小的距离数目多于失真较大的距离数目;图4-2(b)的曲线形状表示在数据映射过程中失真较小的距离数目并不占据优势,有相当一部分距离失真较大。

4-2距离偏差分布曲线

通过距离偏差分布曲线,可度量可视化入侵检测算法保留距离的能力。

可视化入侵检测算法是将高维空间的点集映射到低维可视空间,如果高维空间点集结构复杂,不可避免地会损失距离信息。因此,映射过程应尽可能保留对安全专家与管理员有价值的信息,忽略没有价值的信息。同时,在映射空间中应尽量避免出现误导安全专家与管理员的可视信息。在可视化入侵检测过程中,安全专家与管理员的主要任务是辨识空间中点的聚类,因而更关心映射过程中保留聚类信息的能力。从安全专家与安全管理员角度考虑,可视化入侵检测算法应极力避免如下失真:

1. 在原始空间中分离的多个聚类在映射空间中重叠。聚类重叠使多个聚类在可视空间中只能看到一个聚类,这将不利于安全专家与管理员利用视觉辨识聚类结构与行为模式。最终导致安全专家与管理员无法发现有价值的行为模式信息,从而误导安全专家与管理员作出错误判断。

2. 映射空间中聚类形状发生巨大变化。这将影响安全专家与管理员对聚类形状的判断,进而影响对用户行为模式的判断,导致选择错误的数学工具,以致无法达到优化检测性能之目的。

3. 原始空间的游离点与聚类在映射到可视空间后发生重叠。这会把异常活动与正常行为模式混淆,导致向安全专家与管理员提供错误的用户活动信息。

因此,在评估可视化入侵检测算法的逼真度时,不仅可用距离偏差分布曲线定量评价算法逼真度,还可用上述三条评价标准来定性评价可视化入侵检测算法的逼真度。

4.2.2 运算速度

根据应用场合不同,创建轮廓时期的可视化入侵检测算法的运算速度要求与检测异常时期算法并不相同。

创建正常行为轮廓过程大多在离线情况下完成,并且执行次数较少,对算法运算速度要求不高。而检测异常过程需要经常执行,甚至需要在实时环境下完成,对算法速度要求较高。因此,检测异常时期可视化入侵检测算法要求运算速度较快,而创建轮廓时期算法对运算速度要求不高。但因为Web应用系统的日志数据(尤其是历史日志数据)一般是海量数据,所以也需要适当考虑创建轮廓时期算法的运算速度。

4.2.3 确定性

随着计算机犯罪形势日益严峻,入侵检测系统在打击计算机犯罪中的作用日益凸现。作为安全管理的重要基础设施,入侵检测系统能够将目标系统被攻击的过程保留下来,作为起诉的证据。然而,由于数字化证据的易变性,将入侵检测系统的数据作为证据存在着一些法律方面的问题。因此,为能有效打击计算机犯罪,入侵检测系统设计时必须注意到相关的法律问题,这也是入侵检测领域的一个研究方向。

目前在部分国家,原始的计算机日志(例如,系统日志或网络数据包)可以作为法庭证据。例如,根据美国联邦证据规则第803条第6款,有规律的业务活动形成的计算机日志记录可以作为专家证据提交给法庭[5]。由于这些计算机日志是由日常业务活动形成的,其中除用户入侵记录外还包括了大量的正常用户活动记录,法官难以单凭阅读这些原始记录来评估是否可以作为证据。因此,可行的评估方法是采用从原始日志产生的图表、分析结果作为衍生证据,并评估这些较直观的记录[5]。这样,创建衍生证据过程的正确性就非常重要。

可视化入侵检测系统可将计算机原始日志转变为直观的、易理解的图片。将这些图片作为衍生证据,有利于法官快速、准确地评估证据。为此,需保证创建这些图片过程的正确性。创建过程的正确性要求可视化入侵检测算法需满足如下需求:逼真度高和。其中,结果确定对于可视化入侵检测算法至关重要。它要求算法具有确定性,即根据同一原始记录多次创建衍生证据的结果应完全一样。可以想象,如果一种可视化入侵检测算法导致两次根据同一日志数据生成的图片结果不同,这些图片本身就是不可信的,根本无法作为证据。因此,在设计可视化入侵检测算法时,必须要确保算法的确定性。

4.3 主成份分析PCA算法

基于散乱点可视化模型和异常检测思想,Lam等人采用因子分析的数学工具,首先提出了基于主成分分析PCA[40][44]的可视化入侵检测算法[16],为安全管理员提供了一个可视化的环境用来深入调查入侵警报。

从原理[16]上看,基于 PCA 的可视化入侵检测算法相当于在原始空间中旋转坐标系,找出使协方差矩阵最大的坐标系,然后保留主要成分,忽略次要成分。PCA 算法本质上是一种线性映射技术,保留的是点的主要信号特征,而不是点距离特征。

对于大多数点而言,主要成分对点间距离影响较大,但对某些点而言,次要成分对点间距离影响更大。主要成分影响大的点间距离在使用 PCA 算法精简维度后,距离失真不大;但次要成分影响大的点间距离在使用 PCA 算法精简维度后,距离失真非常大。如果这些受次要成分影响较大的点在空间结构中处于重要位置(例如,两个聚类的边缘),则距离失真可能造成点集结构的严重失真,最终影响到安全专家与安全管理员对聚类划分的结果[45]

假设在 2 维原始空间有 4 个点,结构如图 4-3 所示。

4-3二维空间四点

利用 PCA 算法将图 4-3 4 个点映射到 1 维映射空间。由于点 BCD 与主要成分平行,因此点间距离完全受主要成分影响,不受次要成分影响,这 3个点映射到 1 维映射空间完全没有失真。但点 AC 与次要成分平行,点间距离完全受次要成分影响,不受主要成分影响,这 2 点在 1 维映射空间完全重叠,造成了非常严重的失真。如果在原始空间中点 A C 分布在两个聚类内,则采用 PCA 算法会造成聚类在映射空间中重叠;如果在原始空间中点 A C 在一个聚类内部,假设该 2 点处于聚类边缘,则可能造成聚类形状在映射空间中被“折叠”,导致聚类点集结构严重失真。

由此可知,PCA算法保留距离信息的能力受原始空间点集结构影响。对于某些点集结构,保留距离能力较好;对于某些点集结构,保留距离能力非常差。在可视化入侵检测中,原始空间点集结构是由用户行为模型刻画的,由用户行为模式所决定。因此,PCA算法逼真度受用户行为模式影响,性能极其不稳定。

Internet环境中,由于用户行为模式复杂,对于其中部分行为模式,PCA算法逼真度将会很差。从整体上来看,PCA算法逼真度较差,这将影响到安全专家与管理员对整个系统的行为模式作细致观察。因此,需要一种更高逼真度的可视化入侵检测算法。

数据映射工具是可视化入侵检测算法中的重要组成部分,其特性对可视化入侵检测算法逼真度影响重大。因此,在改进算法逼真度之前,首先需要比较现有的数据映射工具。

现有的数据映射工具主要包括[28][39]

PCAPrincipal Component Analysis,主成份分析[22]

SAMSammon's Nonlinear MappingSammon非线性映射)[31]

MDSMultidimensionality Scaling,多维量表)[32]

AFNAuto-associative Feed forward Neural Networks,自联想反馈神经网络)[33]

SOMSelf-Organizing Map,自组织映射)[34][35]

CCACurvilinear Component Analysis,曲线成分分析)[20][36]

根据文献[30]中的实验结果(如表4-1所示),PCA远比其它映射工具速度快。比较 SAMMDSAFNSOM,则 SAM 的速度较快。

根据文献[20]的比较,SAM的时间复杂度为O(n2),而CCA的时间复杂度为O(n)CCASAM运算速度快。因此,除PCA外,上述映射工具中以CCA 运算速度最快。从空间复杂度角度看,除PCA外,其它工具都是迭代算法。如不对迭代算法进行速度优化,则迭代算法内存需求较小。

4-1 Backer比较算法运行时间的实验结果[32]

映射工具的逼真度可从如下两方面比较:

映射空间中聚类区分能力

映射前后保留距离信息能力

根据文献[31]的实验结果(如图4-4所示),可知SOM在映射空间中的聚类区分性能优于PCASAMMDS AFN

4-4 Backer比较聚类区分性能的实验结果

SOM是将高维空间点映射到可视空间的固定网格中,在映射过程中存在着一定的失真。CCA针对点集映射专门改进了SOM,取消了固定网格的限制,在保留聚类区分性能的同时,还可实现更精确的点集映射。

综合考虑运算速度、内存空间占用与逼真度,本文选择CCA作为高逼真度算法的映射工具。

4.4 曲线成份分析CCA算法

为了提供高逼真度的可视信息,基于文献[20][35]CCA这一数学工具上的已有研究成果,结合可视化入侵检测的理论依据,本文将CCA算法引入到入侵检测领域,在本文中将这种算法简称为传统的CCA算法。该算法分为创建轮廓时期算法与检测异常时期算法两部分。

在创建轮廓时期算法中,CCA映射工具构成了算法的核心。设Xij代表原始空间中标准化行向量xixj之间的距离,Yij代表映射空间中可视点yiyj之间的距离。如文献[20]所述,映射工具通过优化迭代力图使如公式(4-11)所示二次代价函数最小化。

公式(4-11

其中,F(Yij,β)需选择一个有界且单调下降的函数。选取何种 F(Yij,β)影响到算法的稳定性与收敛速度。在语音识别领域,文献[20]建议选取如公式(4-12)所示的函数。

公式(4-12

其中,β是邻接因子,采用一常数作为阈值。

在图像处理领域,文献[35]建议选取如公式(4-13)所示的函数。

公式(4-13

其中,β(t)是邻接因子,β(t)需选择一个随 t 单调递减的函数。t代表当前迭代次数。令t1为最大迭代次数,则有1tt1。令n为用户会话数目,m为用户给定的最大迭代轮数,则最大迭代次数t1 =m×nβ(t)的计算见公式(4-14)。

公式(4-14

其中,β03倍的最大标准偏差ρj1jpβ1=0.01ρj的计算见公式(4-15)与(4-16),为矩阵的元素。

公式(4-15

公式(4-16

通过比较基于CCA的可视化入侵检测算法在可视化淄博职业学院图书馆某 Web 服务器日志时的收敛速度与效果,本文在实验中选取公式(4-13)所示的函数。

基于文献[35]给出的CCA映射工具,结合可视化入侵检测理论依据,创建轮廓时期算法描述如下:

1. 按计算公式(4-14),对矩阵 M 按行向量进行标准化,得到矩阵

2. 按计算公式(4-15)与公式(4-16),针对矩阵的每一列计算均值yj与标准偏差

3. r维映射空间内随机选择初始映射点,计算见公式(4-17)。

公式(4-17

其中,Γ(i, j)表示01之间的随机数,r=2,3

4. 计算参数α0,α1,β0,β1

5. 计算矩阵行向量之间欧式距离(Euclidean distanceXij ,其中

1 i n,1 j n

6. 进行t1次迭代,其中第t(1tt1)步迭代过程如下:

以系统时间或鼠标键盘事件为随机数种子(seed),随机选择1n之间的整数值作为i

针对当前迭代步数t,计算α(t),β(t),其中α(t)为学习因子,是随t单调递减的函数,计算见公式(4-18)。

公式(4-18

其中, = 0.5 = 0.05[35]

计算映射空间中第i点与其它点之间距离Yij(j=1..n,ji)

依据文献[20]提出的公式(4-19)依次计算映射空间中第j点的本次偏移量;并根据偏移量依次平移映射空间中的第j个映射点的坐标,计算见公式(4-20)。

公式(4-19

公式(4-20

上述算法的输出结果为二维/三维散乱点场。根据下一节的理论与实验分析可知,输出结果散乱点间的距离关系较好地保留了原始空间的点间距离关系,因此可视空间中点集结构与原始空间中点集结构类似。在获得点数据场后,将可视点标以不同的颜色、符号、纹理,用于表示用户主体标识、行为轮廓、会话标识、会话顺序、日志数据来源等信息。

安全专家观察上述可视化信息,可感知空间点集结构,选择合适的聚类方法用于区分聚类。并在聚类分析的基础上,完成数据过滤与轮廓精简工作,从而提高行为轮廓的准确程度。

鉴于上述创建轮廓时期算法对所有用户会话进行了可视化处理,导致计算工作量较大。在检测异常时期,由于用户行为轮廓已给定,因此不需要再次可视化表示正常用户行为轮廓的历史用户会话。

给定历史用户会话的原始空间点集{Xi}与映射空间点集{Yi},基于 CCA 映射工具[30],结合可视化入侵检测理论依据,检测异常时期算法描述如下:

1. 对当前会话标准化,得到x

2. 在映射空间选择初始映射点y

3. 计算x与其它标准化会话之间的欧氏距离 Xi

4. 给定β值;

5. 按照如下步骤执行迭代过程直到满足阈值或超过最大迭代次数为止:

计算y与轮廓中所有点间欧式距离Yi

按文献[27]提出的公式(4-21)计算映射空间中当前会话对应点的偏移量Δy

公式(4-21

根据对可视化算法收敛速度与效果的实验观察,选取

公式(4-22

根据计算出的偏移量Δy在映射空间中移动映射点。

上述算法的输出结果为二维/三维散乱点,可将该点标以不同的颜色、符号、纹理,用于表示用户主体标识、行为轮廓、会话标识、会话顺序、日志数据来源等信息。然后,将该点添加到标识正常行为轮廓的散乱点场中,共同构成一个可视点集。安全管理员观察该可视点集,即可直观地观察到当前用户会话与正常行为轮廓之间的背离关系,从而有助于安全管理员进行深入调查。

4.5 PCA算法与CCA算法对比分析

4.5.1 理论对比

如果创建轮廓时期原始空间中第i点与第j点不重叠(Xij0),而这两点在迭代过程中在映射空间中重叠(Yij=0),根据公式(4-19)可知,将有Δy→∞,即在下一轮迭代中这两点会远离。同理,在检测异常时期,如果存在Yi =0,根据公式(4-21)可知,将导致Δy→∞。因此,CCA 算法对原始空间中不重叠的点在映射空间重叠非常敏感,能有效避免原始空间中不重叠的点在映射空间重叠,进而避免聚类间、聚类与点间重叠。

根据公式(4-19)可知,在创建轮廓时期,由于F(Yij,β(t))的影响,,因此Δyj对两点间的短距离比远距离更敏感。在检测异常时期,根据公式(4-21)可知,Δy也对两点间的短距离更敏感。因此,CCA算法可以更好地保留局部结构,即可以更好地保留聚类的内部结构。

根据上述分析可知,与PCA算法相比,CCA算法可有效避免原始空间中不重叠的点在映射空间中重叠,并且能在映射过程中尽可能地保留聚类局部结构,比 PCA 算法具有更高逼真度。

4.5.2 实验对比分析

在本小节中,将通过实验手段来比较PCA 算法与CCA 算法的逼真度。由于创建轮廓时期算法与检测异常时期算法原理相近,本文实验主要对创建轮廓时期部分的算法进行比较。

根据计算公式(4-14)可知,用户会话标准化后,原始空间中所有点都在半径为 1 p 维超球面上。由入侵检测假设可知,原始空间中大多数点聚集在超球面的有限区域内,少数点散布在超球面的其它区域。

根据上述对点集的约束条件,假设原始三维空间中存在如图4-5所示的数据集1。该数据集由5个凸形聚类构成。其中,每个凸形聚类由49个点构成。为区别各个聚类,在本次实验中,聚类ABE以乘号符号表示,聚类C以圆点符号表示,凸形聚类D以加号符号表示。

4-5三维空间数据集

采用PCA 算法将图4-5中点集映射到二维空间,获得如图4-6所示结果,其距离偏差分布曲线如图4-7所示。

4-6 PCA算法实验结果(三维空间数据集 1

4-7 PCA算法距离偏差分布图(三维空间数据集1

采用CCA 算法将图4-5中点集映射到二维空间,获得如图4-8所示结果,其距离偏差分布曲线如图4-9所示。

4-8 CCA算法实验结果(三维空间数据集1

4-9 CCA算法距离偏差分布图(三维空间数据集1

比较图4-6与图4-8的实验结果可发现,原始空间中所有聚类都不重叠,但使用PCA 算法后在映射空间中出现了聚类重叠现象(聚类AB重叠,CD重叠),原始空间中是5个聚类,映射后成了3个聚类。通过放大观察,可发现其中的点有重叠现象。并且,在映射空间中聚类内部结构也已被破坏。在使用CCA 算法后,不仅没有聚类重叠现象,而且聚类在原始空间中的结构也被保留了下来。

比较图4-7与图4-9的距离偏差分布图可发现,CCA算法逼真度明显比PCA算法高。

为进一步对比,假设原始三维空间中存在如图4-10所示的三维空间数据集2。该数据集由2个凹形聚类,1个凸形聚类构成。其中,每个凹形聚类中由74个点构成,凸形聚类由49个点构成。为从视觉上区别各个聚类,以利于观察实验结果,在本次实验中,凹形聚类A以圆点符号表示,凹形聚类B以加号符号表示,凸形聚类C以乘号符号表示。

4-10三维空间数据集2

采用PCA算法将图4-10中点集映射到二维空间,获得如图4-11所示结果,其距离偏差分布曲线如图4-12所示。

4-11 PCA算法实验结果(三维空间数据集2

4-12 PCA算法距离偏差分布图(三维空间数据集2

采用CCA算法将图4-10中点集映射到二维空间,获得如图4-13所示结果,其距离偏差分布曲线如图4-14所示。

4-13 CCA算法实验结果(三维空间数据集2

4-14 CCA 算法距离偏差分布图(三维空间数据集2

比较图4-11与图4-13的实验结果可发现,原始空间中3个聚类都不重叠,但使用PCA算法后在映射空间中出现了聚类重叠现象(聚类AB部分重叠),原始空间中是3个聚类,映射后变成了2个聚类,并且在映射空间中聚类内部结构未被保留。在使用CCA算法后,不仅没有聚类重叠现象,而且聚类结构也被保留了下来。比较图4-12与图4-14的距离偏差分布曲线可发现,CCA算法逼真度比PCA算法高。

通过比较上述4张距离偏差分布图可发现,CCA算法的距离偏差分布曲线形状较为一致,而PCA算法的距离偏差分布曲线形状不一致。图4-12中曲线形状比较接近CCA算法的曲线形状,而图4-7中曲线出现了大幅振荡。这说明PCA算法的逼真度与原始空间点集结构有关,稳定性较差,而CCA算法逼真度的稳定性较好。

观察映射前后距离偏差可以发现CCA算法大多数的Dij值较小,少数的Dij值较大,即算法在映射过程中可保留多数点的距离;但PCA算法则没有这一规律。

综合所有实验结果可发现:CCA算法距离偏差分布曲线形状较稳定,点集结构对分布形状影响不大;而PCA算法受点集结构影响较大,不同的点集会导致不同的分布曲线形状,即算法的距离映射性能不稳定。由于算法距离映射性能不稳定,当利用PCA算法可视化Internet应用环境中的日志数据时,该算法的逼真度一般较差。因为CCA算法距离映射性能较稳定,所以比较适合用于可视化Internet应用环境中日志数据。

4.6 曲线成分分析CCA算法的改进

尽管传统的CCA算法具有较高的逼真度,然而将传统的CCA算法应用到可视化入侵检测中仍存在着一些问题。

首先,安全专家与管理员希望从可视化结果中观测到用户会话之间的关联关系,从而可以从中发现用户的异常行为。由公式(4-16)可以发现,关联系数rij平方欧式距离成正比。如果映射空间中点间欧式距离能与原始空间中标准化会话间平方欧式距离成正比,将大大有利于安全专家与管理员估计用户会话间关联关系。然而,在CCA算法中,是将映射空间中点间欧式距离与原始空间中标准化会话间欧式距离相等作为最优化目标的。这导致了CCA算法的可视化结果不直观,容易误导安全专家与管理员,对用户会话间关联关系的比例做出错误估计。因此,需要对CCA算法进行改进。

其次,由于CCA算法中创建轮廓时期算法的最优化过程中含有随机因素。在选择迭代初始值时,采用了随机分布的点作为初始映射点;在迭代过程中,对第i点的选择也是随机的。随机因素导致了对同一数据集多次运行CCA算法会产生不同的可视化结果。这说明了CCA算法不是一种确定性的算法,该可视化入侵检测算法的结果无法作为有效证据用以起诉入侵者。为使CCA算法具有确定性的结果,也需要对该算法进行改进。

为改善传统的CCA算法的不足之处,本文提出了一种改进的基于曲线成分分析CCA的可视化入侵检测算法,简称改进的CCA算法。对创建轮廓时期算法的改进主要体现在三个方面:第一个方面是为进一步提高传统的CCA算法的逼真度,将映射空间中点间欧式距离与原始空间中标准化会话间平方欧式距离相等作为改进算法的最优化目标;第二个方面是为增加算法的确定性,采用PCA映射结果作为迭代的初值;第三个方面是为增加算法确定性,在迭代过程中采用伪随机算法来选择第i点,并给定种子的生成规则。

设原始空间为p维,映射空间为r维,改进的CCA算法中创建轮廓时期算法的描述如下:

1. 按计算公式(4-4),对矩阵M按行向量进行标准化,得到矩阵

2. 采用 PCA 映射工具将 p维原始空间中的矩阵的行向量映射到 r维映射空间中,将映射结果作为初始点

3. 按计算公式(4-15)(4-16),针对矩阵的每一列计算均值与标准偏差ρj

4. 计算参数α0,α1,β0,β1

5. 计算矩阵行向量之间平方欧式距离Xij,计算见公式(4-23);

公式4-23

6. 进行t1次迭代,其中第t(1tt1) 步迭代过程如下:

1)按计算公式(4-24)选择第i(1in)

公式(4-24

其中,Γ(n)表示以用户会话数n为种子生成伪随机数的操作,Γ(n)的算法参见文献[36];Θ表示取整操作。

2)针对当前迭代步数t,计算α(t),β(t) ,计算见公式(4-18)。

3)计算映射空间中第i点与其它点之间距离(j =1..n, j i) ,计算见公式(4-25)。

公式4-25

4)按照公式(4-26)依次计算映射空间中第j点的本次偏移量;并根据偏移量依次平移映射空间中的第j个映射点的坐标,计算公式见(4-27)。

公式4-26

公式4-27

在上述算法中,伪随机数生成算法Γ(n)取用户会话数目作为种子。在实际应用中,为尽可能避免因得到较差映射结果而影响安全专家、安全管理员、法官的判断,可依次选取n,2n,3n,…作为伪随机数生成算法的种子,多次执行改进的CCA算法,并比较多个可视化结果,从中选取几个最类似的结果作为判断依据。这既保证了采用确定性算法获得确定结果,又可避免对于某些数据集可能获得较差的可视化结果。

在改进 CCA 算法中检测异常时期算法与传统算法不同之处主要在于:第2步中在映射空间选择初始映射点y时,选择固定点(例如,原点)作为初始点。第3步中,采用平方欧氏距离计算Xi

4.7 传统CCA算法与改进CCA算法的对比分析

鉴于传统 CCA 算法与改进 CCA 算法原理相同,因此逼真度相近,在本节中仅比较两种算法的确定性和运算速度。

4.7.1 确定性

由于改进的CCA算法中检测异常时期算法结果仅与初始映射点有关,如确定初始点后结果是确定的,因此在本小节中仅通过实验比较传统的与改进的创建轮廓时期算法的确定性。实验结果如图4-15所示。

4-15 传统的CCA算法与改进的CCA算法确定性比较

在本实验中,分别执行两次传统的CCA算法与改进的CCA算法的创建轮廓时期算法,将图4-15所示数据集可视化为二维点集。然后,针对两种算法分别绘制其X坐标对照图与Y坐标对照图。X坐标对照图中点的横轴坐标等于第一次运行算法所得映射点的X轴坐标,图中点的纵轴坐标等于该算法第二次运行所得映射点的X轴坐标,图中斜线的横轴坐标等于纵轴坐标。Y坐标对照图绘制方法依次类推。如果算法的两次运行结果一致,则该算法的X坐标对照图与Y坐标对照图中所有点都应该在斜线上。从图4-15结果可知,改进的CCA算法两次运行结果完全一致,传统的CCA算法则两次结果不一致。该实验多次重复后,得到相同结论。

由实验可知,与传统的CCA算法相比,改进的CCA算法是一种确定性的算法,可满足可视化入侵检测算法的确定性需求。

4.7.2 运算速度

由于传统的CCA算法与改进的CCA算法检测异常时仅是初始值的选择方式不同,因此运算速度基本相同。

创建轮廓时,传统的CCA算法与改进的CCA算法的时间复杂度接近。CCA算法的运行时间主要花费在两部分中:(1)O(n2)次原始空间中标准化会话间距离运算;(2)O(mn) 次迭代运算。

由于改进的CCA算法需要采用PCA映射结果作为初始值,因此比传统的CCA算法需要花费额外计算代价。然而,传统的CCA算法需要在原始空间中计算欧式距离,而改进的CCA算法只需计算欧式距离的平方值,因此改进的CCA算法比传统算法减少了O(n2)次开方运算。当会话数目较多时,有可能开方运算花费的时间较多,多于PCA映射花费的时间。

为比较两种CCA算法的运算速度,采用图4-5所示数据集 1(共245个会话)与图4-8所示数据集 2(共192个会话),分别运行传统PCA算法、传统的CCA算法与改进CCA 算法,结果如表4-2 所示。

4-2 可视化入侵检测算法运算速度比较

从表4-2 中结果可知,PCA算法运行速度非常快,甚至小于CCA算法执行一轮的时间。与之相比,开方运算需要花费时间则较多。因此,迭代次数相同前提下,改进的CCA算法的速度比传统的CCA算法略快。为比较两种算法的收敛速度,采用图4-5 所示数据集进行实验,记录下每轮迭代完成后的代价函数值,绘制如图4-164-17所示收敛曲线。

4-16 传统的CCA 算法收敛曲线(数据集1

4-17传统的CCA 算法收敛曲线(数据集2

4-164-17中,横轴为迭代轮数,纵轴为代价函数值。为更具可比性,两图中的代价函数统一采用式(4-11)所示二次代价函数,并且改进 PCA算法的原始空间中仍计算欧式距离,而非欧式距离平方值。经过多次重复实验,可发现两种算法的收敛速度大致接近。

综上所述,用户会话数目与迭代轮数较大时,改进的CCA算法的运算速度比传统的CCA算法快。

4.8 本章小结

首先,本章分析了Internet环境中Web应用系统对可视化入侵检测算法性能在逼真度、运算速度、确定性三方面的需求,并提出了逼真度的评价标准。然后基于这些性能需求,分析了基于PCA的可视化入侵检测算法在逼真度方面的不足之处。通过改进映射工具的方法,提出了高逼真度的基于CCA的可视化入侵检测算法,即传统的CCA算法,并与PCA算法进行了理论与实验对比分析。鉴于传统的CCA算法无法满足可视化入侵检测的确定性需求,在基本不影响运算速度、内存占用空间与逼真度的前提下,本章提出了改进的基于CCA的可视化入侵检测算法,即改进的CCA算法,并将其与传统的CCA算法作了对比分析。最后,通过上述两种算法的结合,可更好地实现可视化建模,从而为安全专家与安全管理员提供有价值的可视信息。由于CCA算法处理海量数据的能力不如PCA算法,运算速度也较慢。因此在可视化入侵检测时,可先用PCA算法可视化所有用户会话,给安全专家与管理员一个会话分布的整体印象,然后再用CCA算法可视化局部的用户会话,使安全专家与管理员对局部的会话分布有深入、准确的了解,从而从中识别出异常会话。

第五章 可视化入侵检测系统实现

本章介绍校园网环境可视化入侵检测系统实现方案,对关键技术模块给出细节说明,最后给出可视化入侵检测系统的测试结果与应用分析。

5.1 系统开发及运行环境

5.1.1 开发环境

该系统是基于WEB页面的入侵检测系统。利用Apache 2.0作为WWW服务器;利用PHP作为脚本语言;后台数据库使用MYSQL

5.1.2 运行环境

linux2.6.5内核下运行的入侵检测系统。

5.2 校园网可视化入侵检测系统部署

博职业学院是由几个学校合并组成,后来发展成为国家示范性院校建设单位,该校的校园分布非常分散,有多个校区构成,且这些校区处于不同的地方。在新的形势下,为了适应新的办学格局的需要,该校正在积极地进行校园网络信息系统的建设,构建一个包含本部、分院和分支机构直属库的多级计算机网络系统。目前网络已经完成了本部南区(北区8月份建成)的核心网络主控中心建设及分院与本部内部广域网建设,本部和分院之间内部采用千兆光纤等方式进行连接。为了进一步提高网络安全性,达到建设一个完整、安全和高效的信息系统的目标,网络安全问题已经成为了急需解决的问题。因此,该校决定搭建一套专门的网络和信息安全管理系统来确保整个校园网络的安全。

基于该校目前的工作系统大多是基于浏览器/服务器(B/S)、客户端/服务器(C/S)模式和Internet/Intranet网络计算模式的分布式应用。在这样一个分布式应用的环境中,学校的数据库服务器、邮件服务器、WWW服务器、文件服务器、应用服务器等,每一个都是一个供人出入的“门户”,只要有一个“门户”没有完全保护好,一旦忘了上锁或不很牢固,入侵者就会通过这道门进入系统,窃取或破坏所有系统资源。再者校园网中存在着多种应用系统,包括WWW、邮件系统、办公自动化系统、教务管理系统等。这些系统都可能存在一些安全隐患。利用HTTP服务器的一些漏洞,特别是在大量使用服务器脚本的系统上,利用这些可执行的脚本程序,入侵者可以很容易的获得系统的控制权。数据库系统本身也存在很多安全问题。如何保证和加强数据库系统的安全性和保密性对于该校的正常、安全运行至关重要。此外,虽然该校当前也对安全问题也做了一定的考虑,安装了防病毒软件并设计了防火墙系统,但是鉴于当前IT系统安全性的严重状况,这些考虑还是比较简单的防护,并没有形成一套完整的防护体系。

鉴于上述考虑,对整个校园网络结构分布及其各自己有的防护措施进行了调整和完善,并引入可视化入侵检测系统建立了整个学校校园网络的安全管理体系。并设计了一个由网络管理信息中心负责整个学校校园网络管理,以可视化入侵检测系统为主,以防病毒软件、防火墙为辅这样一个多方位的安全保障体系,以确保整个校园网络系统的安全,具体部署结构如图5-1

5-1 校园网络拓扑结构图

5.3 可视化入侵数据管理子系统实现

可视化入侵数据管理子系统是系统实现的第一步,是可视化入侵检测分析的数据基础。以下为该子系统三个部分:数据包捕获模块实现、数据提取模块和事件分析数据库的实现。

5.3.1 数据包捕获模块实现

数据包捕获模块是进行检测和决策的基础,它的准确性、可靠性和效率直接影响到整个系统的性能。如果采集数据的延时太大,系统可能在检测到攻击的时候,入侵者已经长驱直入;如果数据不完整,系统的检测能力就会大打折扣;如果数据本身不正确,系统就无法检测到某种攻击,造成的后果更加不堪设想。数据包捕获模块的任务是利用数据包捕获工具[37]从网卡上捕获网络上的数据包,再将捕获的数据包经过解码引擎填入到链路层协议的包结构体中,以便对高层次的协议进行解码。

1. 对网络数据包的捕获机制

网络数据包捕获机制指通过捕获整个网络的所有信息流量,根据信息源主机、目标主机、服务协议端口等信息简单过滤掉不关心的数据,再将系统感兴趣的数据发送给更上层的应用程序进行分析。

网络数据捕获可以通过两种方法实现,一种是利用以太网络的广播特性,另一种方式是通过设置路由器的监听端口实现[36]

1)利用以太网络的广播特性进行捕获

以太网数据传输通过广播实现。但是在系统正常工作时,应用程序只能接收到以本主机为目标主机的数据包,其它数据包将被丢弃不作处理,其数据包过滤机制分为链路层、网络层和传输层几个层次,工作流程示意图如图5-2所示。

5-2 正常数据包捕获流程

链路层主要指网卡驱动程序判断所收到包的目标MAC地址,如果不是自己网卡的MAC地址,又不是广播地址和组播地址,将直接丢弃,不向上层提交。网络层判断目标IP地址是否为本机所绑定IP地址,否则将不向上层提交。传输层如TCP层或者UDP层判断目标端口是否在本机己经打开,如果没有打开不作处理,并不向应用层提交。

要截获流经网卡的不属于自己主机的数据,必须绕过系统正常工作的处理机制,直接访问网络底层。首先将网卡工作模式至于混杂模式,使之可以采集目标MAC地址不是自己MAC地址的数据包。

2)在交换环境中的网络数据捕获

在实际应用中,存在很多非以太网接入的情况,如通过光纤接入等。在这些情况下,就不能利用以太网络的广播特性,而必须在路由器中设置监听端口,将流经路由器的所有信息流量通过一个特定的监听端口输出,从而实现数据包的捕获。此时,网络路由工作将不同于正常情况,所有的网络信息数据包除按照正常情况传递外,将同时转发到监听端口。

2. Libpcap捕包机制

考虑到在Liunx平台上对该系统进行实现,本系统采用libpcap对网络数据进行收集。

Libpcap(Packet Capture library)[23]是由Berkeley大学Lawrence Berkeley National Laboratory研究院的Van JacobsonCraig LeresSteven McCanne编写。其通过直接访问数据链路层,从而为应用层程序提供了捕获底层数据包的API.

这个库为不同的平台提供了一致的编程接口,在安装了libpcap的平台上,以libpcap为接口写的程序、应用,能够自由的跨平台使用。图5-3是一个标准的基于libpcap库的应用程序流程。

5-3 基于Libpcap应用的基础流程

主要接口函数说明如下:

pcap_ t *pcap_open_live(char *device,int snaplen,int promisc, int toms,char *ebuf)

获得用于捕获网络数据包的数据包捕获描述字。device参数为指定打开的网络设备名;snaplen参数定义捕获数据的最大字节数;promisc指定是否将网络接口置于混杂模式;toms参数指定超时时间(毫秒)ebuf参数则仅在pcap_open_live()函数出错返回NULL时用于传递错误消息。

pcap_t *pcap_open_offline(char *fname,char *ebuf)

打开以前保存捕获数据包的文件,用于读取。fname参数指定打开的文件名,该文件中的数据格式与tcpdumptcpslice兼容。“-”为标准输入。ebuf参数则仅在pcap_pcap_offline()函数出错返回NULL时用于传递错误消息。

pcap_dumper *pcap_dump_open(pcap_t *p,char *fname)

打开用于保存捕获数据包的文件,用于写入。fname参数为“-”时表示准确输出。出错时返回NULLp参数为调用pcap_pcap-offline()pcap_open_live()函数后返回的pcap结构指针。frame参数指定打开的文件名。如果返回NULL,则可调用pcap_geterr()函数获取错误消息。

char *pcap_lookupdev(char *errbuf)

用于返回可被pcap_open_live()pcap_lookupnet()函数调用的网络设备名指针。如果函数出错,则返回NULL,同时errbuf中存放相关的错误消息。

int pcap_lookupnet(char *device,bpf_u_int32 *net,bpf_u_int32 *maskp,char *errbbuf)

获得指定网络设备的网络号和掩码。net参数和maskp参数都是bpf_u_int32指针。如果函数出错,则返回-1,同时errbuf中存放相关的错误消息。

int pcap_dispatch(pcap_t *p,int cnt,pcap_handlercallback,u_char *user)

捕获并处理数据包。cnt参数指定函数返回前所处理数据包的最大值。cnt=-1表示在一个缓冲区处理所有的数据包。cnt=0表示处理所有数据包,直到产生以下错误之一:读取到EOF;超时读取。callback参数指定一个带有三个参数的回调函数,这三个参数为:一个从pcap_dispatch()函数传递过来的u_char指针,一个pcap_pkthdr结构的指针,和一个数据包大小的u_char指针。如果成功则返回读取到的字节数。读取到EOF时则返回零值。出错时则返回-1,此时可调用pcap_perror()pcap_geterr()函数获取错误消息。

int pcap_loop(pcap_t *p ,int cnt,pcap_handlercallback,u_char *user)

功能基本与pcap_dispatch()函数相同,只不过此函数在cnt个数据包被处理或出现错误时才返回,但读取超时不会返回。而如果为pcap_open_live()函数指定了一个非零值的超时设置,然后调用pcap_loop()函数,则当超时发生时pcap_dispatch()函数会返回。cnt参数为负值时pcap_loop()函数将始终循环运行,除非出现错误。

void pcap_dump(u_char *user,struct pcap_pkthdr *h,u_char *sp)

向调用pcap_dump_open()函数打开的文件输出一个数据包。该函数可作为pcap_dispatch()函数的回调函数。

int pcap_compile(pcap_t *p ,struct bpf_program *fp,char *str,int optimize,bpf_u _int32 netmask)

str参数指定的字符串编译到过滤程序中。fp是一个bpf_program结构指针,在pcap_compile()函数中被赋值。optimize参数控制结果代码的优化。netmask参数指定本地网络的网络掩码。

int pcap_ setfilter(pcapt *p ,struct bpf_program *fp)

指定一个过滤程序。fp参数是bpf_program结构指针,通常取自pcap_compile()函数调用。出错时返回-1;成功时返回0

5.3.2 数据提取模块实现

数据提取模块是实现入侵检测系统VIDS的基础,它为检测模块提供分析的数据。根据数据包和系统日志提取出相应的特征数据,并对其进行规范化,以方便后面的数据分析。数据提取的三个过程是:协议解析、规则解析和数据预处理。

1. 协议解析

数据包捕获模块把捕获的数据提交给协议解析模块后,协议解析模块必须对这些数据进行分析,根据相应的协议把这些分析后的数据放到指定的数据结构中,供上层模块调用。同时协议解析模块还要对这些数据包进行一些基本的校验(如校验和等),如出现错误的数据包,及时丢弃。

协议解析模块设计了一些对数据报进行表述的数据结构,在这些数据结构中,存放数据的Packet结构是其中最为关键的一个,数据包的数据结构如下:

typedef struct_ Packet

{

struct pcap_pkthdr *pkth; /* BPF数据指针 */

u_int8_t *pkt; /* 指向原始数据包的指针 */

EtherHdr *eh; /* Ethernet头部 */

IPHdr *iph, *orig_iph; /* IP头部 */

u_int32_t ip_options_len;

u_int8_t *ip_options_ data;

TCPHdr *tcph, *orig_tcph;

u_int32_t tcp_options_len;

u_int8_t *tcp_options_ data;

UDPHdr *udph, *orig_udph;

ICMPHdr *icmph, *orig_icmph;

echoext *ext;

u_ int8_ t *data; /* 指向包负载的指针*/

u_ int16_ t dsize; /* 包负载大小 */

u_int8_t frag_flag; /* 分片标志 */

u_int16_t frag_offset; /* 分片偏移量 */

u_ int8_ t mf; /* 更多分片标志 */

u_ int8_ t df; /* 不分片标志 */

u_ int8_ t rf; /* 保留 */

u_int16_t sp; /* 源端口(TCP/UDP) */

u_int16_t dp; /* 目标端口 (TCP/UDP) */

u-int16_t orig_sp; /* 原始数据包源端口 (TCP/UDP) */

u_int16_t orig_dp; /* 原始数据包目标端口 (TCP/UDP) */

u_int32_t caplen;

u int8_ t uri_ count; /* 包中URI的数量 */

Options ip_options[40]; /* IP选项结构 */

u_int32_ t ip_option_ count; /*IP选项数量*/

Options tcp_options[TCP_OPTLENMAX]; /* tcp选项结构 */

u_int32_t tcp_option_ count; /* tcp选项数量 */

u_int8_ t csum_flags; /* 检验和 */

u_int32_ t packet_flags; /* 特殊标志 */

}Packet:

从数据结构Packet的定义中可以看出Packet包含了一个IP数据包的Ethernet头部、IP头部、UDP头部、ICMP头部以及端口信息、协议选项、各种标志等所有信息极为方便后续模块调用。

在数据包解码时,首先判断以太网封装的协议是否为IP协议,如果不是,则直接返回。否则首先解析出IP头部,再根据所封装的协议,并分别对TCPUDPICMP解析,将各项值写入Packet结构中对应的字段。

2. 规则解析

在本系统中,采用了Snort的入侵行为描述方法。这种描述方法简单、易于实现,能够描述绝大多数的入侵行为。

在这种描述方法中,每条规则表达一种攻击手段,规格格式可概括图5-4的形式。

5-4 攻击模式规格结构

Snort的规则在逻辑上分为两部分:规则头(Rule Header)和规则选项(Rule Option)。规则头部分包括:规则行为(rules action)、协议(protocol)、源/目的IP地址、子网掩码以及源/目的端口。规则选项包含了所要显示给用户查看的警告信息,以及用来判定此报文是否为攻击报文的其他信息(比如TCPFlag字段以及数据字段的内容等)

下面是一条简单的规则:

alert tcp any any ->192.168.1.0/24 111 (content:”|00 01 86 a5| “;msg:”mountd access“;)

在这个格式中,位于左括号之前的部分为规则头,而包含在括号内的部分称为规则选项。选项中,位于冒号“:”之前的词称为选项关键字(Option Keywords)。而对于规则选项部分,并不是任何规则都是必需的,它们只是用来更明确地定义所要进行某种处理的数据包必须满足的条件。只有当组成规则的各个部分都满足时,才能触发对应的操作。

1ParseRulesFile() 规则文件解析函数

功能:逐行读取规则文件,并调用规则解析函数ParseRule进行处理。

2ParseRule() 规则解析函数

功能:处理单个的规则并把它添加到规则列表中。

3ProcessHeadNode() 规则头解析函数

功能:处理规则头信息,并根据需要把它添加到相应的规则列表中。

4ParseRuleOptions() 规则选项解析函数

功能:处理规则的选项部分,并把它添加到规则链表中合适的位置。

5ProcessPacket() 报处理函数

功能:数据报检测总控函数,调用解码和预处理函数。

6Preprocess() 预处理函数

功能:按顺序执行所有的预处理函数,包括数据分片重组、流重组代码转换等,最后调用规则检测函数。可以说,检测机制从这里才真正开始。

7Detect() 规则检测函数

功能:调用EvalPacket() 函数开始对当前数据包进行检测,察看是否存在匹配的规则。

8EvalPacket() 规则树查找函数

功能:根据协议查找相应的链表,选择相应的规则树进行检测。

9EvalHeader() 规则头检测函数

功能:完成二维空间递归链表检测。调用规则头内部的检测函数进行检查匹配,主要包括CheckBidirectional, CheckSrcIP, CheckSrcIPNotEq等。

10EvalOpts() 规则选项检测函数

功能:执行递归检测,依次与选项链每一规则进行匹配,判断当前数据包是否与某条规则匹配。对每一个选项中的不同选项类型,都调用存放在此选项结构中的OptFpList函数链中相对应的匹配函数进行匹配操作,如content选项主要由函数CheckANDPatternMatch()实施匹配操作,而flags选项则对应于CheckTcpFlagsQ函数。

3. 数据预处理

数据预处理模块的作用就是对网络数据进行预先处理,从而方便随后的检测分析。另外,我们可以发现,基于规则的检测引擎并不能检测所有的入侵,尤其是针对有效载荷的检测,而像端口扫描、SYN Flooding等攻击,按照前面所述的方法很难对它们的特征进行提取。因此,需要特殊情况特殊处理,而数据预处理就是一个很好的选择。通过数据预处理可以用一种特殊的方式对数据包进行分析,如果在数据预处理模块中发现了攻击行为,此时就可以不再需要检测分析模块进一步处理了。常用的预处理内容如下一些:

1minfrag的格式

minfrag预处理检查分组数据包的大小是否低于某一设定的闽值。数据包分组通常是由源和目的地址之间的路由器来进行的。一般来讲,商业网络设备不会将数据包的分组大小设置于512字节。因此,能使用这个事实监控小的数据包分组,这种小的分组数据一般说明某些试图在分组里隐藏它们的数据。

其格式为:minfrag:

2HTTP Decode的格式

HTTP Decode用于处理HTTP URL地址字符串,并将串中的数据转化为可读的ASCII字串。这样做的目的是为了检测到躲避Web URL扫描的行为和攻击,这些入侵行为常常会通过地址字符串中某些异常字符的设置,来躲避对HTTP通信可疑行为的内容分析检查。这种预处理模型采用标准端口号作为它的参数(典型的808080)

格式为:http_decode: [unicode][cginull]

3Portscan Detecto:的格式

Portscan向标准日志设备中记录从一个源IP地址所发出的端口扫描活动的开始和结束。如果指定了一个日志文件,在记录扫描类型的同时也记录目的IP地址和端口号。端口扫描定义为在时间T()之内对超过P个端口的TCP连接尝试,或者在时间T()之内对超过P个端口发送UDP数据包。端口扫描可以是对任一IP地址的多个端口,也可以是对多个IP地址的同一端口。Snort 1.6版本可以处理单对单和单对多方式的端口扫描,而现在的版本可以处理分布式的端口扫描(多对一或多对多)。端口扫描也包括单一的“隐蔽扫描”数据包,比如NULL, FIN, SYN-FIN, XMAS等。如果包括秘密扫描的话,端口扫描模块会对每一个扫描数据包告警。该模块的参数有:

network to monitor监视端口扫描的目标网络以network/CIDR表示。

number of port在探测期间访问的端口数目。

detection period以秒计数的端口访问时间限制。

logdirlfilename告警信息存放的目录/文件名,告警也可以写入标准的告警文件中。

格式为:portscan:

4PortScan Ignorehosts的格式

如果用户的服务器(比如NTP, NFSDNS服务器)会妨碍端口扫描的探测,可以通知portscan模块忽略源自这些主机的TCP SYNUDP端口扫描。

该模块的参数为IPs/CIDR的列表。

格式为:portscan ignorehosts: < host list>

5Frag2的格式

Frag2是一个新的IP碎片重组预处理器。Frag2的内存使用和碎片时间超时选项是可配置的。不给出参数,frag2将使用缺省的内存量(4MB)和时间超时值(60)。这个时间值用来决定一个没有重组的分段将被丢弃的时间长度。

格式为:

preprocessor frag2:[memcap],[timeout],[min_ttl][detect_state_problems],[ttl_ limit]

timeout在状态表中保存一个不活跃的流的最大时间值,如果发现活动就重新刷新对话并且这个会话被自动拾起。缺省值是30秒。

memcap 内存消耗的最大值,如果超出这个值,frag2就强制削减那些不活跃的会话,缺省值是4MB

min_ttl 设置frag2接受的最小ttl值。

detect_state_problems发现重叠分段时报警。

ttl_limit设置ttl的极限值,它可以避免报警。

6Stream4格式

Stream4 模块使snort具有TCP流重新组装和状态分析能力。强壮的流重组能力使得snort能够忽视无“状态”攻击,例如,stick粘滞位攻击。Stream4也能够给大量用户提供超过256TCP同步连接。Stream4缺省配置时能够处理32768TCP同步连接。Stream4有两个可配置的模块,stream4 preprocessor和相关的stream4_reassemble插件。

Stream4格式为:

preprocessor stream4:[noinspect],keepstats[machine|binary],[timeout],[memcap],

[detectscans],[d etectstate_problems],[disable_evasion_alerts],[ttl_limit]

noinspect 关闭状态监测能力。

keepstats[machine|binary]]保持会话统计,如果是“machine”选项就从机器的模式读入,如果是“binary”选项就用统一的二进制模式输出。

timeout 在状态表中保存一个不活跃的流的最大时间值,如果发现活动就重新刷新对话并且这个会话被自动拾起,缺省值是30秒。

memcap 内存消耗的最大值,如果超出这个值,frag2就强制削减那些不活跃的会话,缺省值是8MB

detect_scans打开portscan的报警能力。

detect_state_problems打开流事件报警能力,例如,没有RST的数据包、带有数据的SYN包和超出窗口序列号的包。

disable_evasion_alerts关闭事件报警能力,一例如,TCP重叠。

ttl_limit设置ttl的极限值。

7Portscan2格式

这个模块将检测端口扫描。它要求包含Conversation预处理器以便判定一个会话是什么时间开始的。它的目的是能够检测快速扫描,例如,快速的nmap扫描。

格式为:preprocessor portscan2: [scanners_maxJ, [targets_max], [target_limit], [port_limit], [timeout]

scanners_max一次所支持的扫描一个网络的主机数。

targets_max分配代表主机的节点的最大数。

target_limit在一个扫描触发前,一个扫描器所允许扫描的最大的主机数。

port_limit在一个扫描触发前,一个扫描器所允许扫描的最大的端口数。

timeout一个扫描行为被忘记的秒数。

8Telnet Decode格式

telnet_decode预处理器使snort能够标准化telnet会话数据的控制协议字符。它把数据包规格合成单独的数据缓存,这样原始数据就能够通过rawbytes content修饰词来记录或者检验了。缺省情况下,它运行在21, 23, 25119端口。

格式为:preprocessor telnet decode

5.3.3 事件分析数据库实现

为实现WEB分析查询模块,我们首先要实现对事件数据库的设计(这里我们采用MYSQL数据库),以使得由入侵检测程序所获取的数据能够保存到我们设计好的数据库中。同时,分析查询模块也是从该数据库中对数据进行分析统计。

WEB查询分析模块中,所设计的事件数据库的PDM模型如图5-5所示。

5-5 数据库PDM模型图

事件分析数据库把可视化分析检测系子统检测到的数据信息记录下来,以便于以后的分析。在事件分析器产生了很多有用的原始信息,需要及时把它们存储下来,不然它们就会丢失,这个功能由事件分析数据库来完成的。在本系统中我们使用MySQL来建立存储系统,MySQL数据库是Linux下一个非常流行的数据库。我们设计的事件分析数据库主要包括二维表,它们是:数据表(data),tcp表(tcphdr,udp表(udphdr,icmp表(icmphdr,opt协议表(opt),ip表(iphdr),分析结果表(sniffer),响应日志表(response)等。各表内容设计如下:

1)数据表(data):包括从网络中接收网络包的号码、时间、攻击信息和攻击代码。数据包的号码与其它表进行关联的主键。为了能够将分析的结果保存到数据库中,数据包表中需设置一个表示攻击信息的属性字段。规定当攻击信息字段为0时表示该数据没有匹配到攻击。攻击代码字段用来保存网络中传输的解析后的数据,如果不是IP数据,则保存所有的原始信息。字段包含:数据包号、时间、数据等。

2tcp表(tcphdr此表用来存储分析TCP协议后的的信息,包括10个属性,数据包的号码和9TCP头部信息字段。数据包的号码是为了与分析结果表建立关联,所以也设为主键。字段包含:数据包号、时间、IP源端口、目的端口、TCP头的部分字段等。

3udp表(udphdr)此表用来存储分析UDP协议后的的信息,包括5个属性,数据包的号码和4UDP头部信息字段。数据包的号码是为了与分析结果表建立关联,所以也设为主键。字段包含:数据包号、时间、IP源端口、目的端口、UDP头的部分字段等。

4icmp表(icmphdr:此表用来存储分析ICMP协议后的的信息,包括5个属性,数据包的号码和4ICMP头部信息字段。数据包的号码是为了与分析结果表建立关联,所以也设为主键。字段包含:数据包号、时间、IP源端口、目的端口、ICMP头的部分字段等。

5opt协议表(opt):此表用来存放分析opt协议后的数据包信息,包括7个属性,数据包的号码、时间、硬件类型、协议类型、硬件地址长度、协议地址长度等。数据包的号码是为了与分析结果表建立关联,所以也设为主键。字段包含:数据包号、协议号、协议代码等。

6ip表(iphdr):此表用来存储分析IP协议后的的信息,数据包的号码是为了与分析结果表建立关联,所以也设为主键。字段包含:数据包号、IP源端口、目的端口等。

7)分析结果表(sniffer)字段包含:数据包号、IP源端口、IP目的端口、异常代码等。

8)响应日志表(response)字段包含:数据包号、IP源端口、IP目的端口、响应类型

5.4 可视化入侵检测数据分析子系统实现

将该子系统划分为:用户行为建模、可视化建模、异常检测、可视化入侵检测查询、数据绘制与显示和安全响应模块等六个模块。该子系统根据数据提取的结果利用CCA算法建立可视化入侵检测过程。

5.4.1 用户行为建模与可视化建模实现

为了更好地体现出分析查询模块各个具体功能模块间的关系和数据流的流向,我们设计了入侵事件分析查询模块的数据流程图,如图5-6所示。从图5-6中,可以比较清晰地看到各个模块之间的关系以及程序数据的基本流向。

5-6数据流程图

WEB分析查询模块的设计

1用户登陆模块

参数用户输入的用户名和密码。

功能实现对用户输入的用户名和密码的验证工作,并根据检验结果,决定是否运行进入查询页面。

2所有入侵信息汇总模块

参数用户选择的有效时间段(小时)或某个指定的日期,默认取24小时。

功能根据日期限制,提取该时间内所有检测并记录到数据库中的入侵数据,并对其进行统计分析归类工作,最后在WEB页面中显示出来。

3某类入侵信息汇总模块

参数在网页间隐含传递的时间限制参数和入侵类型参数。

功能根据日期限制和入侵类型,提取该时间内该类入侵的所有数据,并对其进行统计分析归类工作,最后在WEB页面中显示出来。

4IP入侵信息汇总模块

参数在网页间隐含传递的参数有目标类型、时间限制和IP地址。

功能根据目标类型、时间限制和IP地址,提取满足条件的所有入侵数据,并对其进行统计分析归类工作,最后在WEB页面中显示出来。

5.4.2 异常检测模块实现

异常检测也被称为基于行为的检测,其设计实现步骤如下:

1.初始化模型

对于已经建立的用户行为模型,主要的问题是模型的初始参数的选择。所以选取好的初始参数,使得局部极大与全局最大接近,这样对于模型很重要。一般的方法是采取随机的选取,然后可以再调整。只要进行两三次可以选择好的模型参数,从而解决初始的模型选择不当的问题。

2.模型的优化

从数据捕获模块得到的数据只是PACKET结构,内容很多,这些信息不能作为统计分析模型参数的值,必须进行规范化处理。然后是对模型进行优化,也就是对模型参数进一步进行优化,使之能反映网络流量的实际特征。

3.阀值确定

对于模型的各个参数进行了优化以后,需要找到一个比较好的阀值来确定是否存在DDos攻击。我们利用观测序列中长度为L的子序列的生成的概率,然后选择它们的误检率,这样就得到了相应的合适的阀值。

4.生成警报信息

确定好阀值就可以进行检测,然后根据检测的结果,确定用户的行为是否正常,系统或网络是否正常;并将异常信息存储在事件分析数据库中的分析结果表中和向可视化建模传递数据信息。

5.4.3 数据绘制与显示模块实现

该模块首先读取事件分析数据库中的基础数据完成用户行为可视化建模,即利用PCACCA算法将数据向图形信息转化;然后根据计算的结果和异常检测传递过来的异常信息采用PHP语言变成实现数据的图形显示。有关PCACCA算法已经在第四章详细描述。利用PHP语言进行绘图主要是利用JpGraph类库来实现,平面统计图实现方法如下程序所示。

程序:[alerts_chart.php]

功能:运用JpGraph类库,实现绘制平面统计图的功能

主要代码:

include (JPGRAPH_PATH."jpgraph.php"); //包含jpgraph的类库文件

include (JPGRAPH."jpgraph.php");

$tcp=$_GET ['tcp'J;

$udp“$_GET ('udp'];

$icmp=$_GET ['icmp'];

$data=array ($tcp,$udp,$icmp);

//创建平面饼图对象

$graph=new PieGraph (320, 170,"auto");

$graph->SetShadow ();

//创建饼图并进行参数设置

$pie=new PiePlot ($data);

$pie->SetCenter (0:30,0.5);

$pie->SetLegends (array ("TCP ({$data [0]))","UDP ({$data [1]})","ICMP (,$data[2]})"));

$graph->Add ($pie);

//手工添加标题文字

$text=new Text ("Types of Traffic", 0, 0)

$text->Pos (0.3, 0.05);

$text->SetEont (FF_FONT1, FS_BOLD);

$graph->AddText ($text);

$graph->Stroke ();

5.4.4 安全响应模块实现

当入侵检测系统发现系统有入侵事件发生时,就要让系统管理员等相关人员了解有安全问题发生,并且需要采取相应的响应措施。响应就是当入侵检测系统检测到入侵行为时作出的反应。从响应的方式上分为主动响应和被动响应。

1. 响应技术

1)主动响应

在主动响应中,系统自动地或以用户设置的方式来阻断攻击过程或以其他方式影响攻击过程。可以选择的措施有:针对入侵者采取的措施、修正系统、收集更详细的信息。

2)被动响应

被动响应是指为用户提供信息,由用户决定接下来应该采取什么措施。被动响应根据危险程度高低的次序提交给用户,这里的危险程度是普报机制与问题汇报。

警报和通知:警报的响应方式有多种,用户可以自己定制适合自己系统运行过程的鳌报。最常用的警报和通知是显示在屏幕上的警告信息或者窗口,一般出现在入侵检测系统的控制台上,也可以出现在用户安装入侵检测系统时所定义的部件上,还可以通过电子邮件或者移动电话等给系统管理员和安全人员发送警报和警告信息。

SNMP陷阱和插件:入侵检测系统可以被设计成与网络管理工具一起协同运作。这些系统可以更好的利用网络管理的基础设备,在网络管理控制台上发送和显示警报。一些产品利用简单网络管理协议(SNMP)的消息或陷阱作为一种报警方式。这种结合可以带来几个好处,如可以利用普通通信信道的功能,提供适应当时网络环境的主动响应。此外,SNMP陷阱让用户可以将响应检测到的问题的处理工作转移到接受陷阱的系统上。

2. 安全响应设计

创建了数据库后,就需要一种响应机制对数据库中收集到的报警数据进行分析并产生报告,本系统利用分析控制台引擎(ACID)和日志文件进行数据分析,ACID是一个基于PHP的分析引擎,可以对MySQL数据库的数据进行查找和处理,ACID具有以下特点:

1)用于寻找与报警元信息。例如签名、检测时间)匹配的报警的查询生成器,以及潜在的网络证据。

2)数据包解码器将对记录报警的第3层和第4层的数据包信息提供图形显示。

3)报警管理通过提供逻辑组来给报警组提供报警,删除报警或者误报,发送E-mail或者在各个报警数据库之间传送报警。

4)基于时间、探测器、签名、协议、IP地址、TCP/UDP端口号,根据指定的参数生成各种图标和统计数据。

5-7界面里显示的信息包括:触发安全规则的网络流量中各种协议所占的比例、替报的数量、入侵主机和目标主机的IP地址及端口号等;ACID控制台还提供强大的搜索功能,用户可根据时间、IP地址、端口号、协议类型等多种条件的灵活组合在入侵事件数据库中进行查询,以帮助网管人员进行分析。

5-7数据分析实现样图

入侵特征库是否丰富对一个网络入侵检测系统非常重要,本系统同时支持多种有影响的入侵特征库包括CERT/CCarachNIDSCVE等。在带报中除了列出入侵事件的命名外还有到相应入侵特征库的Web链接,如果某个警报存在多个命名则同时予以列出以便参考,网络管理人员可通过这些链接去查找在线入侵特征库以便获得关于特定入侵事件的更加详细的信息和相应的解决办法。

应用ACID提供的制图功能可以直观地对网络入侵事件进行分析,而生成的图表又可进一步丰富网管人员编制的报告。

5.4.5 可视化入侵检测查询模块实现

目前,基于服务器端的脚本语言相当丰富,常用的PHP, Perl, JSP, ASP等都是其中优秀的代表。其中PHP具备以下特点是一个基于服务器端的脚本语言能运行于UNIX, Linux等多种操作系统上,开放源码并有良好的扩充性运行时消耗的资源相对较小,特别是作为Apache Web服务器的模块时,运行代码不需要调用外部二进制程序,服务器也不需要承担任何额外的负担具有强大的数据库支持能够支持多种网络协议。鉴于PHP所具有的优良特性,故而最终我们决定采用PHP语言来实现系统的设计。

该模块主要根据登录系统用户级别不同来划分权限,并根据权限不同设定不同的查询范围和内容。如管理员可查询某时段的入侵源IP地址、目标IP地址、攻击类型等主要入侵参数,并作相应的技术统计工作,同时对典型攻击进行专项统计。以下是用户登录和IP信息汇总代码。

1. 用户登录

程序:[check_login.php]

功能实现验证用户合法性的功能。通过对输入的用户名和密码的验证判断当前进入的用户是否为合法用户,并决定程序的最终转向。

主要代码

//页面初始化并输出页头

session_start ();

require once("page_top.php");

//检查输入的用户名和密码是否正确

$sql_query="SELECT user_name,password FROM user WHERE user name=

--\"$user_name\" AND password=\"$password\",,or die("Error in query");

$sql_result=mysql_query ($sql_query);

$error_str=mysql_error ();

if($error_str){die($error_str);}

//’若检查不到输入的用户名和密码,则}}.ar进一步的操作

if( mysql_ fetch_array($sql_result)=FALSE)

{ ?>显示非合法用户信息,并重新跳转到登陆页面,具体代码()

else {

//对于合法用户,则授权其进一步的操作

$valid user=fuser_name;

session_resister("valid user");

echo "