2.1. 基于孤立点挖掘的异常检测的实验
KDD Cup99的UCI数据集中的每个记录由41个离散或连续的属性(如:持续时间,协议类型等)来描述,并标有其所属的类型(如:正常或具体的攻击类型)包含了4大类的入侵攻击类型:Probe,R2L,U2R和DoS。为了检测孤立点挖掘对不同入侵类型的检测效果,从数据集中,抽取5组数据作为测试样本,每一组包含100000个正常记录和5000个入侵记录,其中前四组是单个类的攻击,第5组是4种攻击类的混合。
KDD 数据集中不是每个属性都对检测结果有贡献,Srinivas Mukkamala等人利用支持向量机方法通过实验指出在KDD Cup1999数据集中有13个属性最为重要[16],这13个属性为duration, src_bytes,dst_bytes, urgent, count, srv_count, same_srv_rate, dst_host_count, dst_host_srv_count, dst_host_same_srv_rate, dst_host_same_src_port_rate, protocol_ type和service,其中既包含了数值型属性,也包含了符号型属性。本文的实验也是基于这13个特征。
在实验中对影响较大的阈值参数 分别取值6,8,9,10,11。窗口宽度恒定为1000,窗口滑动单位长度恒定为10。实验结果如表-1所示:
表-1对应相同入侵类型数据不同的 进行检测的结果
偏离度阈值
DOS(neptune) R2L(guess_passwd) U2R(buffer_overflow) Proble(satan)
检测率 误检率 检测率 误检率 检测率 误检率 检测率 误检率
6 100 4.2 45.1 4.2 38.1 5.52 100 4.18
7 100 4.1 40.2 3.6 33.4 4.52 100 3.0
8 100 3.9 40.1 2.46 28.69 4.49 100 2.34
9 100 2.5 35.0 1.23 19.10 3.58 100 1.63
10 95 1.5 24.5 0.2 14.30 2.04 100 0
11 0 0 12.7 0 4.76 1.43 100 0
从实验结果可以看出,孤立点挖掘技术对DOS, PROBE入侵攻击的检测都取得了很高的检测率,但是对R2L, U2R入侵的检测效果不理想。这与现实基本一致。对于R2L, U2R攻击,不像DOS, PROBING那样在短时间内对一些主机发出很多连接,相反R2L, U2R攻击嵌入到包中,正常情况下只存在于一个连接中。由于攻击只出现在单一连接中,无法对其进行足够的特征刻画,因此需要寻找其他更有效的刻画特征;Probe, DoS类攻击相对来说比较固定,而R2L, U2R类攻击种类比较多,且有很多U2R入侵是伪装合法用户身份进行攻击,这就使得其特征与正常数据包比较类似,造成了算法检测的困难。而在KDD99的竞赛中,冠军方法对于这两种类型的入侵连接数据的检测率为13.2%和8.4%,通过对比可以看出本文所提出方法的优越性。
2.2. 自适应入侵检测系统实验
Snort是一个典型的基于误用检测的入侵检测系统,由于它的开源轻量级和易扩展性,我们选用Snort作为我们的测试平台,将孤立点挖掘模块和关联分析模块作为智能检测模块以插件的形式添加到Snort平台下,使得Snort能够检测未知的入侵攻击。同时使用IDS Informer作为攻击平台,它的攻击库包含超过600中预先记录的成功的和不成功的在两块网卡之间或者单独的网卡上模拟的攻击数据,在各种情况下测试入IDS/IPS的反应。减少了任何可能的对最终用户造成问题的安全隐患,让用户可以集中精力进行实际的部署和验证工作。
在实验过程中,由于snort捕获的数据包的特征并不能满足我们的要求,所以我们在snort基础上提取了更多的基于连接的特征如连接时间,连接频度,数据长度,数据负载均值和方差等供孤立点挖掘和关联分析模块来使用。因此我们共选择了的11个基本属性特征:目的地址、源地址、目的端口号、源端口号、传输协议、数据字段长度、TCP选项(4个属性)和5个附加属性特征包括连接时间,连接频度,数据长度,数据负载均值和方差等。使用这16个属性作为孤立点挖掘使用的属性字段,考虑到Snort入侵检测规则库中只包含了基本属性信息,所以在关联分析阶段选择SrcIP、SrcPort、DstIP、DstPort、Protocol、Dsize、Tcp_Flags和CID八个字段来对孤立点数据进行关联规则挖掘。
具体参数设置为 =9,窗口宽度恒定为1000,窗口滑动单位长度恒定为10,设置改进后的Apriori算法支持度为20%,置信度为80% 。具体环境部署如下:集成孤立点挖掘和关联分析模块的Snort安装在192.169.2.141主机上面,模拟攻击工具IDS Informer安装在192.168.2.142机器上,以下是实验结果的一部分。
安装通过孤立点挖掘识别到攻击行为,然后导出的入侵检测规则如下所示(仅列举部分):
alert tcp 192.168.2.142 any->192.168.2.141 any(flags:tcp;dsize:83;msg:CID=5;)
alert tcp 192.168.2.142 any->192.168.2.141 any(flags:tcp;dsize:101;msg:CID=2;)
把这些新的入侵检测规则添加到Snort规则库中,重新启动Snort系统。然后再对IDS informer 执行其变种攻击,可以发现Snort检测引擎可以检测到这些攻击并产生告警,告警信息如下所示(仅选取其中一条):
[**][l:0:0]CID=5[**]
[Priority:0]
01/08-10:26:10.365812 192.168.2.142:3256->192.168.2.141:21
TCP TTL:3 TOS:0x0 ID:75209 IpLen:23 DgmLen:46 DF
******S*Seq:0x6B2AB1C3 Ack:0x0 Win:oxl4F0 TcpLen:35
TCP Options(4)=>MSS:536 NOP NOP SackOK
通过特征提取器对日志记录的分析,新系统能产生关联规则,并进一步转换成检测未知攻击的Snort检测规则。实验结果表明,该新系统具备了检测已知攻击变种及未知攻击的能力。
(责任编辑:adminadmin2008)