入侵检测方法探索
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
摘??? 要
?? 本文深入研究了TCP/IP协议组中的TCP,IP,UDP协议,数据包地分析,入侵检测方法,NIDS入侵规则的建立,DNS服务器的建立,TCP连接的跟踪。利用VC++开发工具实现数据实时抓包,对数据包实时分析,根据端口,协议,IP地址的指定,将协议,IP源地址,目标地址,包长度等主要协议内容提供给用户,根据入侵规则对简单的入侵事件做出声音提示,实现了简单的DNS解析功能。
关键词:TCP/IP,入侵检测,入侵规则,DNS,VC++
入侵检测系统的基本功能
(1)入侵检测系统应至少要具备以下功能:
监控、分析用户和系统活动
入侵检测系统通过获取进出某台主机的数据或通过“抓包”来获取整个网络的数据,或者通过查看主机日志等信息来实现对用户和系统活动的监控。该功能与事件产生器相对应。
(2)发现入侵企图或异常现象
该功能是入侵检测的核心功能。主要体现在两个方面:一方面是入侵检测系统对进出网络或主机的数据流进行监控,用于判断是否存在对系统的入侵行为。另一方面是评估系统关键资源和数据文件的完整性,用于判断是否已经遭受入侵。前者是在入侵行为发生时,做到及时发现并采取措施避免系统遭受攻击;后者是系统在遭到入侵时没有被及时发现,攻击行为已经发生,但可能攻击的痕迹还没有来得及删除,我们可以通过攻击行为留下的痕迹了解攻击行为,以避免再次遭受攻击。该功能与事件分析器相对应。
(3)记录、报警和响应
入侵检测系统在检测到攻击后,要采取相应的措施阻止攻击或响应攻击。入侵检测系统首先应该记录攻击的基本情况,其次应该能够及时发出警报。该功能与事件数据库和响应单元对应。
3.2实现原理
入侵检测系统作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而入侵检测系统的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。
具体到编程实现上,这种对网卡混杂模式的设置是通过原始套接字(raw socket)来实现的,这也有别于通常经常使用的数据流套接字和数据报套接字。在创建了原始套接字后,需要通过setsockopt()函数来设置IP头操作选项,然后再通过bind()函数将原始套接字绑定到本地网卡。为了让原始套接字能接受所有的数据,还需要通过ioctlsocket()来进行设置,而且还可以指定是否亲自处理IP头。至此,实际就可以开始对网络数据包进行抓包分析了,对数据包的获取仍象流式套接字或数据报套接字那样通过recv()函数来完成。但是与其他两种套接字不同的是,原始套接字此时捕获到的数据包并不仅仅是单纯的数据信息,而是包含有 IP头、 TCP头等信息头的最原始的数据信息,这些信息保留了它在网络传输时的原貌。通过对这些在低层传输的原始信息的分析可以得到有关网络的一些信息。由于这些数据经过了网络层和传输层的打包,因此需要根据其附加的帧头对数据包进行分析。