基于WinPcap的入侵检测

时间:2022-09-27 07:50:34

基于WinPcap的入侵检测

摘要:针对目前日益突出的网路入侵问题,该文提出一种网络入侵检测的方法,该方法基于WinPcap,将网络适配器设置为混杂模式,可以有效地捕获网络数据包,并对数据包进行分析,判断是否有入侵行为。

关键词:入侵检测;winPcap;数据包;拦截

中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)26-7385-02

WinPcap-based Intrusion Detection

FU Long-tian

( Institute of Minjiang, Fuzhou 350011, China)

Abstract: Increasingly prominent view of the current network intrusion issues, This paper presents a method of network intrusion detection, this method is based on WinPcap, the network adapter is set to promiscuous mode is an effective way to capture network packets, and packet analysis to determine whether there is an act of trespass.

Key words: intrusion detection; winPcap; packet; intercept

随着网络技术的发展,越来越多的公司将其核心业务向互联网转移、网络服务成为当前IT业另一个生长点,但网络安全作为一个无法回避的问题呈现在人们面前。计算机网络知识的普及,导致攻击者越来越多,知识日趋成熟,攻击工具与手法日趋复杂多样,单纯的防火墙策略已经无法满足对安全高度敏感的部门的需要,网络的防卫必须采用一种纵深的、多样的手段。网络环境也变得越来越复杂,各式各样的复杂的设备,需要不断升级、补漏的系统使得网络管理员的工作不断加重,不经意的疏忽便有可能造成安全的重大隐患。于是,入侵检测系统成为了安全市场上新的热点,不仅愈来愈多的受到人们的关注,而且已经开始在各种不同的环境中发挥其关键作用。

1 入侵行为(Net Inbreak)与入侵检测系统(Intrusion Detection System)

入侵行为主要是指对系统资源的非法使用,造成系统的丢失和破坏,甚至造成系统拒绝对合法用户的服务。入侵检测系统(IDS)是通过抓取网络上的所有报文,监视、分析用户及系统活动;审计系统构造和弱点;识别、反映已知进攻的活动模式,统计分析异常行为模式;评估重要系统和数据文件的完整性,报告异常和行为模式,使网络安全管理元清楚地了解网络上发生的事件,并能够采取行动阻止可能的破坏。入侵检测一般分为3个步骤,:信息收集、数据分析、响应(被动响应和主动响应)。

2 入侵检测技术

入侵检测技术有很多种类,目前常用的有:基于行为的概率统计方法、神经网络方法,基于知识的专家系统等等。一般来说入侵检测系统在数据传输的各个环节进行检测,IDS结构图如图1。

防火墙阻止了某一类人群的进入,但是无法阻止同一类人群中的破坏分子,因此需要通过IDS系统来监测,定时扫描,才能真正的起到保护系统的作用。在同类检测技术中WinPcap具有很多的优点:从底层捕获数据包,稳定可靠;对网络协议进行封装,使用简单方便;性能较高;可以进行网络扫描,流量监控等操作。

3 基于WinPcap的入侵检测

3.1 什么是WinPcap

WinPcap (windows packet capture)是windows平台下一个免费、公共的网络访问接口,是针对Win32平台上的捕获网络数据包和进行分析的开源库。它包括一个核心态的包过滤器,一个底层的动态链接库(packet.dll)和一个高层的不依赖于系统的运行库(wpcap.dll),为win32应用程序提供访问底层网络的能力。例如:捕获原始数据报,在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉,收集网络通信过程中的统计信息等。其内部结构如图2所示。

WinPcap可以用来开发许多类型的网络工具,比如具有分析,解决纷争,安全和监视功能的工具。特别地,一些基于WinPcap的典型应用有:

A、网络与协议分析器 (network and protocol analyzers)

B、网络监视器 (network monitors)

C、网络流量记录器 (traffic loggers)

D、网络流量发生器 (traffic generators)

E、用户级网桥及路由 (user-level bridges and routers)

F、网络入侵检测系统 (network intrusion detection systems (NIDS))

G、网络扫描器 (network scanners)

H、安全工具 (security tools)

3.2 入侵检测系统的开发

3.2.1 获得合适的网络适配器

要开发入侵检测系统,首先要获得网络适配器,WinPcap提供了一个pcap_findalldevs() 函数完成这个功能,这个函数返回一个相连的pcap_if结构的列表,使用pcap_freealldevs(alldevs)释放网络适配器。程序片段如下:

if (pcap_findalldevs(&alldevs, errbuf) == -1)

{fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf);

exit(1);

}

for(d=alldevs;d;d=d->next)

{printf("%d. %s", ++i, d->name);

if (d->description)

printf(" (%s)\n", d->description);

else

printf(" (No description available)\n");

}

pcap_freealldevs(alldevs);

3.2.2 打开适配器捕获数据包

获得网络适配器后,使用pcap_open_live()打开,在一般情况下,适配器只接收目的地址为自己的数据包;其他主机间交换的数据包被忽略了。不过当适配器处于混杂模式时它接收所有的数据包:这意味着在共享媒体(象non-switched Ethernet)中WinPcap也可以捕获其他主机的数据包。混杂模式是大多数包捕获程序的缺省模式,所以我们将适配器设置为混杂模式。程序片段如下:

/* Open the adapter */

if ( (adhandle= pcap_open_live(d->name, // name of the device

65536, // portion of the packet to capture.

1, // promiscuous mode

1000,// read timeout

errbuf // error buffer

) ) == NULL)

{fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n");

/* Free the device list */

pcap_freealldevs(alldevs);

return -1;

}

/* Retrieve the packets */

while((res = pcap_next_ex( adhandle, &header, &pkt_data)) >= 0)

{if(res == 0)

/* Timeout elapsed */

continue;

/* convert the timestamp to readable format */

ltime=localtime(&header->ts.tv_sec);

strftime( timestr, sizeof timestr, "%H:%M:%S", ltime);

/*print the data */

printf("%s,%.6d len:%d\n", timestr, header->ts.tv_usec, header->len);

}

if(res == -1){

printf("Error reading the packets: %s\n", pcap_geterr(adhandle));

return -1;

}

3.2.2 数据包的分析

网络数据捕获到以后,可以保存到数据库或者文件,即:把上述代码printf("%s,%.6d len:%d\n", timestr, header->ts.tv_usec,

header->len);改成存储程序。判断是否有入侵行为,实质是对网络数据包进行分析。数据包分析方法众多文献都有详尽的论述,本文不做累述。本文使用的方法是:先把捕获的数据进行分类,统计各类数据出现的频率。如果发现在没有网络请求时,却频繁接收到类似数据包;如果出现数据异常外流;出现不明原因的数据扰动等等现象都可以判定入侵行为。

4 结束语

网络安全是企业威胁企业信息安全的重要方面,如何把好网络安全关是企业信息安全的永久话题,基于WinPcap的入侵检测手段,有效地捕捉网路数据包,进行流量统计,数据分析,从而确定判断是否有入侵行为。所以本方法的使用将为企业的网络安全提供一道“路障”关卡,实时监测,实时处理。

参考文献:

[1] 薛质.信息安全技术基础和安全策略[M].北京:清华大学,2007.

[2] 段云所.信息安全概论[M].北京:高等教育出版社,2004.

[3] 张曜.加密解密与网络安全技术[M].北京:冶金工业出版社,2006.

[4] 王代潮,曾德超,刘岩,著.信息安全管理平台理论与实践[M].北京:电子工业出版社,2007.

[5] 谢储晖.空间知识网格基础与应用[M].徐州:中国矿业大学出版社,2005.

[6] Dieter Gollmann,Computer Security[M].John Wiley & Sons,2004

[7] IEEE Standard 802.11.W ireless I N M edium Access Co ntrol (MAC)and Physical Layer (PHY)Specifications[S].1999.

上一篇:基于多镜头的视频行为识别方法 下一篇:实时数据库系统方案的设计与实现