VC420 基于特征的主机入侵检测系统VC
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
设立防火墙和杀毒软件是保护计算机安全的主要手段,但随着操作系统的安全隐患被越来越多的发现,攻击者往往能绕开防火墙和杀毒软件来对目标进行攻击。从其他方面提高计算机安全性越来越迫切。基于该思想,设计了一个IDS(基于特征的入侵检测系统),目的是通过这个IDS监视并分析网络流量来发现攻击企图或者攻击行为,采取报警、回复假的不可达信息或断开连接等手段,来保护计算机安全。
本次设计完成了一个IDS的设计和实现,详细论述了该IDS的结构和功能,阐述了相关概念和设计原理,并给出了部分关键代码。最后总结了本次设计的IDS的优点和缺陷,从性能方面对本次设计进行了评价。 [来源:http://think58.com]
〖本文来自:计算机毕业网 〗
况,IDS的出现让人们的眼睛恍然一亮。什么是IDS: “IDS是英文“Intrusion Detection Systems”的缩写,中文意思是入侵检测系统。专业上讲就是依照一定的策略,对网络、系统的运行情况进行监视,尽可能发现各种攻击企图、行为或攻击结果。以保证网络资源系统的机密性、完整性和可用性。” [1]入侵检测的定义为:“发现非授权使用计算机的个体(如“黑客”)或计算机系统的合法用户滥用其访问系统的权利以及企图实施上述行为的个体。执行入侵检测任务的程序即是入侵检测系统。入侵检测系统也可以定义为:检测企图破坏计算机资源的完整性,真实性和可用性的行为的软件“。[2]
入侵检测系统与传统防火墙的优势在于IDS不是被动保护而是主动检测,”入侵检测系统是对防火墙的必要补充……在国内,随着关键部门、关键业务越来越多,迫切需要具有自主版权的入侵检测产品,但现状是入侵检测技术还不成熟,处于发展阶段,需要进一步研究”。[3] think58好,好think58 [版权所有:http://think58.com]
贝尔实验室的本贾尼•斯特劳斯特卢普(Bjarne Stroustrup)博士在20世纪80年代发明并实现了C++(最初这种语言被称作“C with Classes”)。一开始C++是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、名字空间(name space)逐渐被加入标准。1998年国际标准组织(ISO)颁布了C++程序设计语言的国际标准ISO/IEC 14882-1998。遗憾的是,由于C++语言过于复杂,以及他经历了长年的演变,直到现在(2004年)只有少数几个编译器完全符合这个标准(这么说也是不完全正确的,事实上,至今为止没有任何一款编译器完全支持ISO C++)。
Forrester最新的调查显示,C++、微软VisualBasic和Java是众多公司产品体系的首选语言。对100家公司的调查显示,C/C++、VisualBasic和Java在产品体系中的使用比例分别是59%、61%和66%。 think58 [资料来源:www.THINK58.com]
(1)pcap_lookupdev
pcap_lookupdev用来查找系统第一个可以使用的网络适配器,查找成功后,
返回该设备的名称;如果系统有多个网卡,也可以使用pcap_findalldevs函数来查找选取。
(2)pcap_open_live
函数用于打开指定网络适配器,准备截取数据。其调用形式为:
pd = pcap_open_live() /* 以下是参数 */
( pv.interface, /*设备名称*/
snaplen, /*捕获包的长度,通常设置为65536,表示捕获链路层上的所有数据*/
pv.promisc_flag ? PROMISC : 0, /*网卡是否工作于混杂模式*/
READ_TIMEOUT, /*超时时间控制,单位毫秒*/
Errorbuf ); /* 出错信息存储 */
(3)pcap_open_offline
Libpcap 使用库函数pcap_open_offline 进行脱机方式截获,即先将网络上的数据截获下来,以文件形式储存到磁盘上,等事后方便时再从磁盘上读取数据文件来做进一步分析。
(4)pcap_snapshot
函数用于获取数据链路层协议的类型。
(5)pcap_compile 和pcap_setfilter
在进行数据包截获时,常常并不需要捕获所有的包,如只需要捕获ARP协议 内容来自think58
{
switch(datalink)
{
case DLT_EN10MB: /* Ethernet */
grinder = DecodeEthPkt;
break;
case DLT_IEEE802: /* Token Ring */
grinder = DecodeTRPkt;
break;
/* 以下略 */
}
}〖本文来自:计算机毕业网 〗 think58.com [资料来源:http://www.THINK58.com]
其中 grinder 是 snort.c 中的全局的函数指针,其定义如下:参考文献
[1]IDS.百度百科浏览词条[OL].http://baike.baidu.com/view/34066.Htm,2007-6-10。
[2]曾昭苏,王锋波.基于数据开采技术的入侵检测系统[J].自动化博览,2002,8:29-31。
[3]常琤.基于规则的网络入侵检测系统设计与原型实现[D].北京:中国科学研究院研究生院[硕士论文],2003-5-1。
[4]网络系统层次安全技术.百度百科浏览词条.[OL].http://baike.baidu.com/view/677597.htm,2007-6-10。
[5]唐洪英,付国瑜.入侵检测的原理与方法[J].重庆工学院学报,2002.4:71-73。
[6]张杰,戴英侠.入侵检测系统技术现状及其发展趋势[J].计算机与通行,2002.6:28-32。
[7]刘美兰.走协同之路--IDS发展方向探讨.计算机安全2005年07期[J],2005。
[来源:http://think58.com]
typedef void (*grinder_t)(Packet *, struct pcap_pkthdr *, u_char *); /* ptr to the packet processor */
copyright think58 [资料来源:http://THINK58.com]
[资料来源:http://think58.com]
think58 [资料来源:www.THINK58.com]