1、入侵检测技术课件第6章 基于网络的入侵检测技术基于网络的入侵检测技术 2第6章 基于网络的入侵检测技术基于网络的入侵检测技术:q分层协议模型与TCP/IP协议q网络数据包的捕获q包捕获机制BPF模型q基于Libpcap库的数据捕获技术 q检测引擎的设计q网络入侵特征实例分析q检测实例分析基于网络的入侵检测技术 3TCP/IP协议分层结构TCP/IP分层分层协议协议OSI 分层分层应用层应用层FTPSMTPTelnetDNSSNMP7传输层传输层TCPUDP4网络层网络层IP,ICMP (RIP,OSPF)3ARP,RARP链路层链路层EthernetTokenBusTokenRingFDDIW
2、LAN21基于网络的入侵检测技术 4数据报文的分层封装基于网络的入侵检测技术 5以太网帧格式基于网络的入侵检测技术 6ARP/RARP报文格式基于网络的入侵检测技术 7IP数据报头格式基于网络的入侵检测技术 8ICMP回应请求与应答报文格式基于网络的入侵检测技术 9UDP报文格式基于网络的入侵检测技术 10TCP报文格式基于网络的入侵检测技术 11局域网和网络设备的工作原理qHUB工作原理 q网卡工作原理q局域网工作过程 基于网络的入侵检测技术 12SnifferqSniffer是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。qSniffer要捕获的东西必须是物理信号能收到的
3、报文信息。所以,只要通知网卡接收其收到的所有包(该模式叫作混杂promiscuous模式:指网络上的设备都对总线上传送的所有数据进行侦听,并不仅仅是针对它们自己的数据。),在共享HUB下就能接收到这个网段的所有数据包,但是在交换HUB下就只能接收自己的包和广播包。qSniffer的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题。qSniffer作用在网络基础结构的底层。通常情况下,用户并不直接和该层打交道,有些甚至不知道有这一层存在。基于网络的入侵检测技术 13共享和交换网络环境下的数据捕获q要想捕获流经网卡的但不属于自己主机的所有数据流,就必须绕开系统正常工作的处理机制,直接
4、访问网络底层。q首先需要将网卡的工作模式设置为混杂模式,使之可以接收目标地址不是自己的MAC地址的数据包,然后直接访问数据链路层,获取数据并由应用程序进行过滤处理。q在UNIX系统中可以用Libpcap包捕获函数库直接与内核驱动交互操作,实现对网络数据包的捕获。q在Win32平台上可以使用Winpcap,通过VxD虚拟设备驱动程序实现网络数据捕获的功能。基于网络的入侵检测技术 14常用的包捕获机制包捕获机制系统平台备注BPFBSD系列Berkeley Packet FilterDLPISolaris,HP-UNIX,SCO UNIXData Link Provider InterfaceNIT
5、SunOS 3Network Interface TapSNOOPIRIXSNITSunOS 4Streams Network Interface TapSOCK-PACKETLinuxLSF=Linux 2.1.75Linux Socket FilterDrainIRIX基于网络的入侵检测技术 15BPF的模型及其接口缓存缓存过滤器过滤器缓存协议栈链路层驱动器链路层驱动器程序1程序3程序2过滤器链路层驱动器程序4基于网络的入侵检测技术 16Libpcap介绍 qLibpcap的英文意思是 Packet Capture library,即数据包捕获函数库。q它是劳伦斯伯克利国家实验室网络研究组
6、开发的UNIX平台上的一个包捕获函数库,其源代码可从ftp:/ftp.ee.lbl.gov/libpcap.tar.z获得。q它是一个独立于系统的用户层包捕获的API接口,为底层网络监测提供了一个可移植的框架。基于网络的入侵检测技术 17Windows平台下的Winpcap库 qLibpcap过去只支持Unix,现在已经可以支持Win32,这是通过在Wiin32系统中安装Winpcap来实现的,其官方网站是http:/winpcap.polito.it/。qWinpcap的主要功能在于独立于主机协议而发送和接收原始数据报,主要提供了四大功能:q(1)捕获原始数据报,包括在共享网络上各主机发送/
7、接收的以及相互之间交换的数据报;q(2)在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉;q(3)在网络上发送原始的数据报;q(4)收集网络通信过程中的统计信息。基于网络的入侵检测技术 18Winpcap结构示意图 基于网络的入侵检测技术 19检测引擎的设计q网络检测引擎必须获取和分析网络上传输的数据包,才能得到可能入侵的信息。q检测引擎首先需要利用数据包截获机制,截获引擎所在网络中的数据包。q经过过滤后,引擎需要采用一定的技术对数据包进行处理和分析,从而发现数据流中存在的入侵事件和行为。q有效的处理和分析技术是检测引擎的重要组成部分。q检测引擎主要的分析技术有模式匹配技术和
8、协议分析技术等。基于网络的入侵检测技术 20模式匹配技术q从网络数据包的包头开始和攻击特征比较;q如果比较结果相同,则检测到一个可能的攻击;q如果比较结果不同,从网络数据包中下一个位置重新开始比较;q直到检测到攻击或网络数据包中的所有字节匹配完毕,一个攻击特征匹配结束。q对于每一个攻击特征,重复1步到4步的操作。q直到每一个攻击特征匹配完毕,对给定数据包的匹配完毕。基于网络的入侵检测技术 21协议分析技术q网络通信协议是一个高度格式化的、具有明确含义和取值的数据流,如果将协议分析和模式匹配方法结合起来,可以获得更好的效率、更精确的结果。q协议分析的功能是辨别数据包的协议类型,以便使用相应的数据
9、分析程序来检测数据包。q可以把所有的协议构成一棵协议树,一个特定的协议是该树结构中的一个结点,可以用一棵二叉树来表示。q一个网络数据包的分析就是一条从根到某个叶子的路径。在程序中动态地维护和配置此树结构即可实现非常灵活的协议分析功能。q协议分析有效利用了网络协议的层次性和相关协议的知识快速地判断攻击特征是否存在。他的高效使得匹配的计算量大幅度减小。基于网络的入侵检测技术 22特征(signature)的基本概念 qIDS中的特征就是指用于判别通讯信息种类的样板数据,通常分为多种,以下是一些典型情况及识别方法:q来自保留IP地址的连接企图:可通过检查IP报头的来源地址识别。q带有非法TCP 标志
10、组合的数据包:可通过对比TCP报头中的标志集与已知正确和错误标记组合的不同点来识别。q含有特殊病毒信息的Email:可通过对比每封Email的主题信息和病态Email的主题信息来识别,或者通过搜索特定名字的附近来识别。q查询负载中的DNS缓冲区溢出企图:可通过解析DNS域及检查每个域的长度来识别利用DNS域的缓冲区溢出企图。还有另外一个识别方法是:在负载中搜索“壳代码利用”(exploit shellcode)的序列代码组合。q通过对POP3服务器发出上千次同一命令而导致的DoS攻击:通过跟踪记录某个命令连续发出的次数,看看是否超过了预设上限,而发出报警信息。q未登录情况下使用文件和目录命令对
11、FTP服务器的文件访问攻击:通过创建具备状态跟踪的特征样板以监视成功登录的FTP对话、发现未经验证却发命令的入侵企图。基于网络的入侵检测技术 23典型特征-报头值 一般情况下,异常报头值的来源有以下几种:来自保留IP地址的连接企图:可通过检查IP报头的来源地址识别。q许多包含报头值漏洞利用的入侵数据都会故意违反RFC的标准定义。q许多包含错误代码的不完善软件也会产生违反RFC定义的报头值数据。q并非所有的操作系统和应用程序都能全面拥护RFC定义。q随着时间推移,执行新功能的协议可能不被包含于现有RFC中。基于网络的入侵检测技术 24候选特征 q只具有SYN和FIN标志集的数据包,这是公认的恶意
12、行为迹象。q没有设置ACK标志,但却具有不同确认号码数值的数据包,而正常情况应该是0。q来源端口和目标端口都被设置为21的数据包,经常与FTP服务器关联。这“种端口相同的情况一般被称为“反身”(reflexive),除了个别时候如进行一些特别NetBIOS通讯外,正常情况下不应该出现这种现象。“反身”端口本身并不违反TCP标准,但大多数情况下它们并非预期数值。例如在一个正常的FTP对话中,目标端口一般是21,而来源端口通常都高于1023。qTCP窗口尺寸为1028,IP标识号码在所有数据包中为39426。根据IP RFC的定义,这2类数值应在数据包间有所不同,因此,如果持续不变,就表明可疑。基
13、于网络的入侵检测技术 25报头值关键元素 qIP地址,特别保留地址、非路由地址、广播地址。q不应被使用的端口号,特别是众所周知的协议端口号和木马端口号。q异常信息包片断。q特殊TCP标志组合值。q不应该经常出现的ICMP字节或代码。基于网络的入侵检测技术 26检测实例-数据包捕获08/19-10:35:22.409202 192.168.0.4:137-192.168.0.255:137UDP TTL:128 TOS:0 x0 ID:19775 IpLen:20 DgmLen:78Len:50=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
14、+=+=+=+=+=+=+08/19-10:35:23.152199 192.168.0.1:137-192.168.0.255:137UDP TTL:128 TOS:0 x0 ID:19776 IpLen:20 DgmLen:78Len:50=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+08/19-10:35:32.467024 192.168.0.2:1221-61.135.153.190:80TCP TTL:128 TOS:0 x0 ID:4643 IpLen:20 DgmLen:48*S*Seq:0 x811D5ED1 Ack:0 x0 Win:0 xFFFF TcpLen:28TCP Options(4)=MSS:1460 NOP NOP SackOK=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+基于网络的入侵检测技术 27检测实例-端口扫描基于网络的入侵检测技术 28检测实例-拒绝服务攻击基于网络的入侵检测技术 29小结q分层协议模型与TCP/IP协议q网络数据包的捕获q包捕获机制BPF模型q基于Libpcap库的数据捕获技术 q检测引擎的设计q网络入侵特征实例分析q检测实例分析