入侵检测(IPS)--基础知识

1.TOE(TCP Offload Engine ,TCP卸载引擎)是一个延续了多年的概念,它旨在使用网卡上专用处理器来完成一些或所有数据包的处理任务。也就是说,通过采用配有TOE芯片的专用网卡,包括TCP在内的四层处理请示都可以从主机处理器转移到网卡(参见图4),其最终的结果就是在加速网络响应的同时提高服务器的性能。

TOE与标准网络驱动的实现主要区别在将用户数据直接拷贝到数据链路层驱动处理,减少了传输层与网络层的数据拷贝,降低了协议复杂度,加快了网络传输速度,减轻了CPU负载。

2.EAL3测评会按照安全目标,配置管理,交付与运行、开发、文档、生命周期支持、测试和脆弱性分析、不同层次的设计审核等几个方面对安全产品进行测评。根据国际通行的CC标准ISO/IEC 15408准则的TOE评估的七个安全认证级别类别,EAL3为系统测试和检查级(methodically tested andchecked),是目前国内网络级的安全设备能认证的最高级别。

3.PP:保护轮廓   ST:安全目标   TOE:评估对象   TSF:安全功能   TSP:执行TOE安全策略  

4.NIDS是Network Intrusion Detection System的缩写,即网络入侵检测系统,主要用于检测Hacker或Cracker通过网络进行的入侵行为。

NIDS的运行方式有两种,一种是在目标主机上运行以监测其本身的通信信息,另一种是在一台单独的机器上运行以监测所有网络设备的通信信息,比如Hub、路由器。

5.snort的工作原理是解析规则集形成规则树,然后利用lihpcap对采集来的数据进行模式匹配,若匹配成功,则认为是有入侵行为发生,进入报警理模块。

6.。Snort将检测规则利用链表的形式进行组织,建立链表时,首先按规则类型分类,分成了五个单独的规则链;然后针对这五个规则链的每一个按协议类型分成相应的节点链表;在节点链表之下又分为若干规则树节点(Rule TreeNode RTN);每个规则树节点下又有若干规则选项,称为选项树节点(Opfion~Tree Node OTN)。每一个RTN对应于规则头,其中包含协议类型、源和目的地址、源和目的端口号等;每一个OTN对应于规则选项结点,其中包含报警信息(msg)、匹配内容(content),TCP标志位(flags)等选项。当数据包到达检测引擎时,Snort将首先匹配规则链,然后根据数据包协议匹配相应的节点链表,于是从左至右遍历RTN,参看源、目的IP及端口号是否匹配,找到一个匹配后,算法向下进行,再进入OTN中寻找匹配,每个OTN结点包含一条规则所对应的全部选项,当数据包与所有函数都匹配成功时,即判断此数据包为攻击数据包,进入告警模块。这里suricata采用了不同的方法,使用源地址目的地址,源端口目的端口,8个匹配选项进行筛选。

7.Snort规则的制定
在设计检测方案时,既要考虑快速地结束一个无效的检测过程,也应该尽量减少检测的范围。如何从众多的参数中选出最适合的、最容易达到匹配目的的参数先进行匹配?以TCP报文来说,独特的属性就是源端口和目的端口。端口可以分为两种,保留端口和非保留端口。对于一般的连接来说,通常在服务器端采用保留端口,在客户端采用非保留端口,所以可以利用保留端口作为独特的参数。Snort可以观察保留端口的位置,如果保留端口在源端口,通常情况下就意味着这是从服务器端发出的网络流量,反之,如果在目的端口,就是从客户端发出的流量。比如当Snort观察到一个HTTP请求报文,先检查它的源端日和目的端口,看是否能找到一个参数来组成独特的集合。一般来说,HTTP请求报文的源端口是超过1024的非保留端口,而它的目的端口是80或者其他已知的HTTP服务端口,此时就可以从特征库中选出目的端口是80,源端口任意的特征组成一个集合,再进行接下来的匹配工作。Netbus是一个流行的用于远端控制的黑客软件。Net—bus通过TCP/IP协议,可以远程将应用程序指派到某一套接字端口来运行,Netbus的执行行为具有典型性,它发出的l12信息包具有多种可分辨的特性。下面就分析IDS是如何针对它制定规则的。
1.netbus木马的客户端有两种,开放的都是12345或12346端口,如果仅仅连接其中任一端口,如TCP 12345就触发事件,那么就定义规则为:
alert tcp $ EXTE RNAL_NET any 一> $ HOME— NET12345(msg:“BACKDOOR netbus backdoor”;flow:to—serv—er,established;)
该规则仅仅指定目的端口为TCP 12345的即为netbus后门,这样即便是其它链接,如Telnet HOST 12345也会触发该事件,容易产生误报。
2.如果对TCP 12345端口发送“Getlnfo/0dI”,触发事件.那么就定义规则为:alert tcp $ EXTE RNAL—NET any 一> $ HOME— NE2345(msg:“BACKDOOR netbus getinfo”;flow:to—server,established;content:“Getlnfo10dI”;)

8.多数TCP规则定义的特点是以端口为特征、以标志位或者协议的字段为特征、以某个数据段为字符串特征。在定义规则时,抓住这些特征或特征的组合,可以有效提高IDS的工作效率。

9.Snort通过两种机制来满足网络流量的需要将网卡设置为混杂模式利用libpcap 从网卡捕获网络数据包
网卡的默认工作方式是忽略所有不是自己的MAC地址为目的地址的流量通过将网卡设置成混杂模式可以监听网络中的所有流量数据包捕获函数库是一个独立的软件工具数据包捕获库函数能直接从网卡获取数据包 Snort就是通过调用该库函数从网络设备上捕获数据包它工作在OSI模型的数据链路层在不同的平台上使用Snort系统需要安装不同版本的Libpcap比如在Linux和Unix系统下需要安装Libpcap而在Windows系列系统下就需要安装Winpcap。

10.Snort卓越的速度源于简单的规则匹配,如果只对每个包进行数字和字符串的匹配处理,性能就能适应快速的高负载网络。Snort则通过预处理器来实现这些功能。Snort有多个预处理器包括frag2 stream4 http_decode Telnet_negotiationportscan rpc_decode等常用的预处理器这些预处理器的主要功能为:
1)包重组
基于特征的检测将包数据和定义良好的模式进行匹配但是不能对跨包的数据进行检测通过frag2 插件将分片重组到一个完
整包中可以确保攻击者不能用IP分片来躲避检测通过stream4插件进行流重组我们可以用单包特征机制在TCP会话中跨越多
个包进行模式匹配最后通过stream4的状态维护功能特征匹配可以具备一些智能来判断哪些包应该丢弃哪些包处于链接中
用一句话总结包重组预处理器帮助Snort检测匹配数据分布在多个包中的攻击。
2)协议解码

基于规则的检测提供简单的串/位匹配的功能但无法检测HTTP协议中不同形式的URL除非使用无限大的规则集 http_decode预处理器帮助Snort在规则匹配前规范化URL 简单的规则匹配还可能因为数据中间插入的协议信息而失败 Telnet_negotiation和rpc_decode预处理器去除数据中不应该进行模式匹配的部分rpc_decode预处理合并RPC消息分片Telnet_negotiation预处理器去除Telnet的协议协商过程 用一句话总结协议解码预处理对协议数据进行处理使串匹配功能在更明确的数据上工作。
3)异常检测

基于规则的检测,由于其简单性而工作可靠,它的过程精确,可以很容易地调整配置减少误报,也容易进行优化,但是有些攻击
无法通过这种模式来检测, Snort发展了协议异常检测,portscan预处理器,允许Snort跟踪在一个时间段内接收的扫描类型的包对
超过阈值的情况进行报警,Back Orifice预处理器,使Snort不用巨大的规则集,就可以检测加密的Back Orifice流量。

11.Snort解析规则时分别生成TCPUDPICMP 和IP 这4个不同的规则树每一个规则树包含独立的三维链表RTN(规则头) OTN(规则选项)和FUNC(指向匹配子函数的指针)。


12.为提高规则匹配的速度Snort采用了Boyer- Moore字符串匹配算法二维列表递归检索(RTN 和OTN)以及函数指针列表(称为三维列表)等方法。


13.

你可能感兴趣的:(计算机网络)