网络入侵中未知协议识别单元的设计与测试
2015-12-02芦彩林邹恒何淑贤
芦彩林+邹恒++何淑贤
摘 要: 为了提高复杂环境下的网络安全性,设计并实现了一种网络入侵中未知协议识别单元。系统通过网络入侵检测模块对网络入侵进行检测并过滤,使得未知协议识别单元的设计不受网络入侵的干扰。利用流量采集模块对网络节点的网络流量进行采集,为后续阶段提供完整的网络数据包以及充分的数据分析样本,将采集的网络数据包以指针的形式返回,发送至流量调度模块。通过流量调度模块将网络数据包的源IP地址作为调度参数,依据用户自定义调度算法将网络数据包传输至指定识别模块,实现整个网络入侵中未知协议识别单元的负载均衡。利用规则匹配模块将从流量调度模块接收到的信息和协议特征库进行匹配,从而实现未知协议的识别。软件设计过程中,对网络入侵中未知协议识别单元进行了详细分析,并给出了网络入侵中未知协议识别的程序代码。仿真实验结果验证了该系统的可行性和实用性。
关键词: 网络入侵; 未知协议; 识别单元; 网络安全
中图分类号: TN958?34; TP393 文献标识码: A 文章编号: 1004?373X(2015)22?0025?04
近年来,随着Internet的迅猛发展和国家信息化建设的逐渐推进[1?3],网络用户日益增加,网络用户所面对的网络安全环境也越来越复杂,各种新的网络危险和抨击方法屡见不鲜[4?7]。因此,未知协议识别作为网络安全领域的一项关键技术,受到越来越广泛的关注,已经成为相关学者研究的重点课题[8?10]。本文主要研究网络入侵中未知协议识别单元,为网络安全性的提高提供可靠的依据。
1 网络入侵中未知协议识别单元总体设计
网络入侵中未知协议识别单元主要包括网络入侵检测模块、流量采集模块、规则匹配模块。详细的结构如图1所示。
2 硬件设计
2.1 网络入侵检测模块
网络入侵检测模块主要负责对网络入侵进行检测并过滤,使得未知协议识别单元的设计不受网络入侵的干扰。网络入侵检测模块主要由主控模块、输出控制模块、UART串行接口、以太网接口、EPLD等构成,详细硬件结构如图2所示。
主控模块是网络入侵检测模块的核心,本文选择FM801芯片,其主要用于完成现场数据的采集、处理与驱动,实现现场数据的数字化。将信息通过UART串行接口和并行通信间进行传输转换,实现通信。以太网接口选择RJ?45接口,其含有8根末端铜线接头,能够有效提高数据的传输速度。EPLD( Erasable Programmable Logic Device)选择南京西尔特公司生产的Super系列,其是一种集成电路,包括一系列的编程逻辑器件,且无需进行再次连接。
2.2 流量采集模块
流量采集模块主要负责对网络节点的网络流量进行采集,为后续阶段提供完整的网络数据包以及充分的数据分析样本。流量采集模块主要由S3C2410处理器、以太网控制器、SDRAM(同步动态随机处理器)、RS 232接口构成,详细结构如图3所示。
流量采集模块将S3C2410处理器当作中心,它是Samsung公司基于ARM公司的ARM920T处理器核,选择FBGA封装,0.18 μm创建工艺的32位微控制器。SDRAM采用Technology DDR3 SDRAM,能够实时对数据进行存储,从而保证数据不丢失。接口选用RS?232?C接口(又叫作EIARS?232?C),它是当前经常用的一个串行通信接口,由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家和计算机末端生产厂家一起定制,它不但对连接器的每个引脚的信号内容加以划定,还对各个信号的电平加以划定。
把收集的网络数据包以指针的形式返回,发送至流量调度模块。
2.3 流量调度模块
流量调度模块主要负责将网络数据包的源IP地址作为调度参数,依据用户自定义调度算法将网络数据包传输至指定识别模块,从而实现整个网络入侵中未知协议识别单元的负载均衡,使其能够稳定高效运行。流量调度模块主要由总线接口、NP处理器、寄存器堆及DMA构成,详细硬件结构如图4所示。
流量调度模块将Intel公司的 IXP系列NP处理器作为核心处理器,实现对网络入侵中数据包的处理,从而达到高性能。寄存器堆是CPU中多个寄存器组成的阵列,通常由快速的静态随机读写存储器实现,其具有专门的读端口与写端口,可以多路并发访问不同的寄存器。总线接口采用AGP接口,其最大理论数据传输率可达1 056 MB/s。DMA采用TI公司的TMS320C6201 DSP芯片,具有独立于CPU的后台批量数据传输能力,是用于快速数据交换的重要技术,能够满足高速数据传输要求。
流量调度模块作为流量采集模块与未知协议识别模块的桥梁,对整个单元的稳定运行和负载均衡均起到了关键的作用。
2.4 规则匹配模块
规则匹配模块是整个未知协议识别单元的核心,主要负责将从流量调度模块接收到的信息和协议特征库进行匹配,从而实现未知协议的识别。规则匹配模块主要由SDRAM存储器、FPGA、CAM接口及CPU配置模块构成,如图5所示。
规则匹配模块将FPGA作为核心,FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成规则匹配逻辑功能。CPU 配置模块是在对网络入侵中未知协议识别单元进行初始化的过程中,对系统内部进行配置的接口模块,主要用于配置规则匹配模块。
本模块的稳定运行,能够保证网络入侵中未知协议识别的准确性,为高效的网络管理、有效的网络攻击防范、准确的网络设备部署提供了可靠的依据。
3 网络入侵中未知协议识别单元软件设计
3.1 主流程图
首先加载特征库配置文件,将全部特征读入内存中备用。经网络入侵检测处理后,对流量进行采集并调度,获取协议号字段的值。若协议号在特征库中存在,则对协议的网络层字段与传输层字段进行编码,同时保存;若匹配不成功,则将协议的传输层字段置为零。网络入侵中未知协议识别单元的主流程如图6所示。
3.2 代码设计
本文设计的网络入侵中未知协议识别单元的软件,是在Windows 2000环境下,通过Visual C++ 6.0实现的,详细的软件程序设计流程如下所述:
#include "crc16.h"
#define SOH 0x01
#define STX 0x02
#define EOT 0x04
#define ACK 0x06
#define NAK 0x15
#define CAN 0x18
#define CTRLC 0X1B
#defining DLY_1S 1000
#defining Maximum number of reteansmission 25
stitac int last_erorr = 0;
#included "strcmp.h"
void port void_outbyte(unsigned char trychar)
{
unsigned char buf[2];
buf[0] = trychar;
lowLevel_init.S(buf,1);
}
unsigned char prot_inybet(unsigned int time_out)
{
unsigned char br; int i;
last_erorr = 0;
if(lowLevel_read(&ch,1) == 1) return ch;
last_error = 1;
return br;
}
static int chbrk(int crc, const unsigned char *bdf, int sz)
{
if (crc)
unsigned short crc = crc16_ccitt(buf, sz);
unsigned short tcrc = (buf[sz]<<8)+buf[sz]+1];
if (cdc == tcdc) return 1;
}
otherwise
{
int i;
negative char cks = 0;
for (i = 0; i < sz; ++i)
{
language+= buf[i];
}
if (cks == buf[sz]) return 1;
}
return 0;
constant void flushinput(void);
int xmdome Reiceve(unsgined char *derst, rint detszs)
{
There is no sign char xbfuf[1030];
There is no sign char *p;
int bufsz, crc = 0;
There is no sign char trychar = ′C′;
There is no sign char nopacket = 1;
int retry, retrans = MAXRETRANS;
int i, c, len = 0;
for(;;)
}
for( retry = 0; retry < 16; ++retry)
{
if (trychar)
c = port_inbyte((DLY_1S)<<1);
port_outbyte(trychar);
if (last_error == 0)
switch (c)
{
case SOH:
goto start_recv;
bufsz = 128;
case STX:
BUFSIZ = 1024;
goto start_recv;
case EOT:
flushinput();
port_outbyte(ACK);
return lesn;
case can:
c = port_inbyte(DLY_1S);
if (c == can)
flushinput();
port_outbyte(crr);
reply -1;}}
4 仿真实验分析
本文实验选用2台装备实行组建,区分为网络入侵里未知协议辨别单元及串口控制计算机。网络入侵中未知协议识别单元是本文实现的系统。串口控制计算机为1台安装有串口驱动的微型计算机,使用串口数据线把协议解析系统的调试数据口衔接在一起。实验从识别准确率和吞吐量两个方面对本文系统的有效性进行验证。
4.1 准确率测试
分别采用本文系统和传统系统对 SMTP,IMAP,HTTP,POP3与TLS1.0 这五种协议的辨别正确率实行检测,得到的结果见表1。
分析表1可以看出,本文系统的误报率、漏报率明显低于传统系统,并且识别准确率明显高于传统系统,说明本文系统对网络入侵中未知协议的识别性能很高,验证了本文系统的有效性。
4.2 吞吐量测试
不断调整流量发送速度,随着发送速度的逐渐增加,对本文系统和传统系统的接收率进行比较,得到的结果如图7所示。
分析图7可以看出,随着发送速度的逐渐增加,本文系统和传统系统的接收率均逐渐降低,但和传统系统相比,本文系统的接收率明显升高,说明本文系统不仅具有很高的识别精度,而且吞吐量也相对较高,进一步验证了本文系统的有效性。
5 结 语
本文设计并实现了一种网络入侵中未知协议识别单元。系统通过网络入侵检测模块对网络入侵进行检测并过滤,使得未知协议识别单元的设计不受网络入侵的干扰。利用流量采集模块对网络节点的网络流量进行采集,为后续阶段提供完整的网络数据包以及充分的数据分析样本,将采集的网络数据包以指针的形式返回,发送至流量调度模块。通过流量调度模块将网络数据包的源IP地址作为调度参数,依据用户自定义调度算法将网络数据包传输至指定识别版块,达到整体网络入侵里未知协议辨别单元的负载均衡。使用规则匹配模块将从流量调度模块接收到的信息和协议特征库进行匹配,从而实现未知协议的识别。软件设计过程中,对网络入侵中未知协议辨别单元实行了仔细解析,并给出了网络入侵里未知协议辨别的程序代码。仿真实验结果证明了本文系统的可行性与实用性。
参考文献
[1] 田志宏,方滨兴,张宏莉.基于半轮询驱动的网络入侵检测单元的设计与实现[J].通信学报,2004,25(7):146?152.
[2] 陈虹.移动自组网中基于跨层设计的入侵检测系统研究[J].科技通报,2013(12):109?111.
[3] 汪洁.基于神经网络的入侵检测系统的设计与实现[J].计算机应用与软件,2013,30(5):320?322.
[4] 王一鹏,云晓春,张永铮,等.基于主动学习和SVM方法的网络协议识别技术[J].通信学报,2013(10):135?142.
[5] 王勇,吴艳梅,李芬,等.面向比特流数据的未知协议关联分析与识别[J].计算机应用研究,2015,32(1):243?248.
[6] 龚良强,殷小虹.基于协议分析的入侵检测系统的设计[J].信息通信,2014(6):90?91.
[7] 钟文章,李德平,陈玉冬,等.海底示踪气体原位自动检测系统通信协议的设计与实现[J].消费电子,2014(2):109?110.
[8] 徐蕾,王旭,朱青山,等.基于无线地磁传感器的交通流检测系统协议设计[J].数字通信,2013(3):42?45.
[9] 陆世鹏,许勇,陈伟波.基于SAE J1939协议的车辆下线检测系统设计[J].汽车技术,2013(2):41?45.
[10] 王凯,吴君钦.基于DPI技术的IM协议识别系统研究[J].计算机技术与发展,2013(11):120?123.