1、绿盟入侵检测系统,计算机与通信工程学院 信息安全2班,第一部分网络入侵检测技术简介,1.1 为什么需要网络入侵检测系统 今天,越来越多的蠕虫、病毒、木马和黑客成功突破了防火墙的保护,很明显,我们需要网络入侵检测系统。网络入侵检测系统能够协助我们以下几个方面:,免除来自数千种蠕虫、病毒、木马和黑客的威胁免除来自拒绝服务攻击的威胁免除您的网络因为各种 IMS(实时消息系统)、网络在线游戏导致的企业资源滥用免除 P2P 应用可能导致的企业重要机密信息泄漏和可能引发的版权相关的法律问题保障你的电子商务或电子政务系统 24x7 不间断运行提高企业整体的网络安全水平,1.2 常见的入侵检测技术有哪些,IP
2、 碎片重组 入侵者将攻击报文拆分成 IP 碎片后发送,试图逃避NIDS 的侦测。IP 碎片重组将这些碎片重新拼装后分析。由于不同的操作系统采用的重组方式不同,NIDS 必须针对所有的可能进行重组。,TCP 会话跟踪 向服务器发送一个数据区包含 cmd.exe 的TCP 报文不会给服务器带来任何危害,但却可能诱使NIDS 发出一个攻击信息的误报。NIDS 将TCP 特征检测建立在TCP 会话的基础上,从而避免了此类误报,并提高了效率。,TCP 流汇聚 入侵者将 cmd.exe 拆分为c,m,d,.,e,x,e 七个TCP 报文后发送,同样可以逃避NIDS 的检测。TCP 流汇聚能够从多个TCP
3、报文中检测出类似攻击行为。,协议分析 协议分析分为应用层协议解码与应用层状态跟踪两个部分。在 HTTP 协议的GET 请求报文中,前者将请求拆解为各个域,然后进行相应的模式匹配。后者用于跟踪该请求的状态,从中可以判断出攻击是否成功。协议分析是几乎所有新一代入侵检测技术的基础。深入而细致的协议分析能够极大地提高检测的准确性,降低误报率。,特征检测(模式匹配) 将协议解码后的域值与事先精心提取的攻击特征(规则)进行匹配,从中发现潜在的攻击行为。基于特征(规则)的检测是一项传统而成熟的入侵检测技术,提供了很高的准确性与广泛性。,关联分析 实时的关联分析引擎能够发现基本 NIDS 引擎所不能发现的攻击
4、事件,如口令猜测等,是基本引擎的一个重要的补充。,日志归并 当前入侵检测系统面临的一个重要问题是如何将最有用的攻击信息快速地呈现在管理员面前,尽可能地减少或消除无用的信息。日志归并根据一系列事先制定的策略,将多条告警日志合并为一条,从而极大地减少了告警日志的数量。同时也可在一定程度上缓解NIDS 遭受Flood 的可能。,网络流量异常 通过监控网络上流量的变化情况,可以获得当前网络的健康状况。分析长期的历史数据可以判断当前网络是否出现了某种问题。网络异常流量检测作为一项审计功能是入侵检测系统的一个组成部分。,1.3 新一代的入侵检测技术,协议识别 协议识别是新一代的网络安全产品的核心技术。今天
5、,安全产品如防火墙,NIDS,NIPS 均是通过协议端口映射表(或类似技术)来判断流经的网络报文属于何种协议,然后递交给相应的协议分析引擎。但是,事实上,协议与端口是完全无关的两个概念。我们仅仅可以认为某个协议运行在一个相对固定的缺省端口,但是没有任何的法律限制该协议必须绑定在该端口。,标准协议运行在任意端口:HTTP 尽管通常运行在80 端口,但实际环境中可以运行在任意端口,比如312 端口。采用协议端口映射表技术的产品需要管理员必须预先知道这一点,通过管理员手动修改映射表来驱动协议分析引擎认识捕获的通往312 端口的HTTP 报文。由于目前的网络具有的复杂性和动态性,管理员往往不可能知道所
6、有的应用实际运行的端口,也不可能跟踪所有的端口变动,而黑客则可以通过扫描发现这些非标准端口,发动攻击。此时绕过了所有的安全设备,包括NIDS。,数以千计的木马,后门:几乎所有的木马,后门运行在黑客指定的任意端口,管理员事先完全无法获知其端口号,也就无法修改映射表来驱动NIDS 进行检测。事实上,目前传统的NIDS 产品只能检测绑定在缺省固定端口的木马与后门。,协议识别通过动态分析网络报文中包含的协议特征,发现其所在协议,然后递交给相应的协议分析引擎进行处理。具备了协议识别技术的NIDS 产品,能够在完全不需要管理员参与的情况下高速智能准确地检测出对于运行在任意端口的应用层协议的攻击行为,也可以
7、准确发现绑定在任意端口的各种木马、后门,同时,对于运用了Smart Tunnel 技术的软件也能准确地捕获分析。,协议异常检测 基于特征检测(模式匹配)的 NIDS 产品可以精确地检测出已知的攻击。通过不断升级的特征库,NIDS 可以在第一时间检测到入侵者的攻击行为。但是,事实上,存在三个方面的因素导致协议异常的诞生。,厂商从提取某个攻击特征到最终用户的NIDS 产品升级需要一个时间间隔,在这个时间间隔内,基于特征检测的NIDS 产品是无法检测到黑客的该攻击行为的。 来自 0-day 或未公开exploit 的隐蔽攻击即使是安全厂商往往也无法第一时间获得攻击特征,通常NIDS 无法检测这类具有
8、最高风险的攻击行为 Internet 上蠕虫在 15 分钟内席卷全球,即使是最优秀的厂商也不能够在这么短的时间内完成对其的发现和检测,建立在协议分析基础上的 NIDS 产品,发现任何违背RFC 规定后均可视为协议异常。协议异常最为重要的作用是检测未知的溢出攻击与拒绝服务攻击。作为一项成熟的技术,协议异常具有接近100%的检测准确率和几乎0 的误报率。,攻击结果判定 不仅仅过程,还有结果:对于管理员来说,从每天发生的成千上万次攻击中快速定位风险程度最高的攻击成功的攻击是最为重要的事情。 通过对多种尖端检测技术的综合运用以及数千种攻击行为的全面深入分析,可以精确检测出几乎所有攻击的最终结果成功还是
9、失败。依据该结果,管理员可以迅速判断出具有最高风险的安全隐患,并在第一时间作出处理措施加以弥补。,较为简单的例子是针对 HTTP 的CGI 请求攻击。通常服务器返回200 OK 代表请求成功,4xx 为请求失败。NIDS 的协议分析引擎可以借此判断出该攻击的最终结果。复杂的例子来自0-day 的未公开溢出攻击。多种检测方式的综合运用可以最终检测出该攻击的成功与否。 攻击结果判定是新一代 NIDS 技术的显著标志。,基于硬件的 GIGAbit 线速入侵检测 性能是 NIDS 产品不可回避的一个问题。作为网络安全产品,NIDS 应该在任何极端情况下检测出所有的攻击行为。GIGAbit 线速是其最好
10、的保证。新一代的硬件加速技术能够保证NIDS 产品高速稳定可靠地工作在各种复杂的网络环境下。,第二部分 绿盟科技网络入侵检测系统介绍,2.1 总体介绍 该产品为一款专门针对入侵行为监控和报警的网络安全产品。专用硬件系统,支持多级分布式的部署方式,可最大限度地满足大规模的入侵检测部署需求。在分析报告中可以清楚的了解各网段的攻击和蠕虫活动的情况、每个安全问题的详尽的解决方案、为企业网络安全维护提供了强有力的保障。,2.2 系统整体架构,2.3 入侵检测能力 强大的入侵检测底层技术,数据处理能力,多种响应方式,及时的升级与技术支持,2.4 入侵管理特性,2.5 日志与规则管理,2.6 安全可靠的设计
11、,2.7 典型部署与使用,第三部分绿盟入侵检测系统使用技术分析,注:因绿盟入侵检测系统为商业软件,本小组无法获得源代码等详细信息,无法获知此入侵检测系统具体技术细节,故本小组将对具体技术细节进行推测,并进行展示,如有雷同,一笑而过,关于检测规则 检测规则主要分成两块:规则头和规则选项。如下面这条关于木马后门的规则:alert tcp $EXTERNAL_NET any $HOME_NET 0 (msg:BAD-TRAFFIC tcp port 0 traffic;flow:stateless; classtype:misc-activity; sid:524; rev:8;)括号之前部份就是规
12、则头,它主要包含了IP 地址、端口、协议、数据流的方向以及对此规则采取的动作。括号内的内容是规则选项,它包含了报警内容、需要匹配的字符串等内容。,此系统有上千条这样的规则,那如何组织这些规则,最简单的办法,就是一条条地读取规则,构建成一条具有两千多个节点的一维链表。如下图所示:,这样实现虽然简单,但却不现实,因每个数据包都要多次匹配才有结果的话将浪费大量资源。在可预见的将来,规则库还会继续地扩展下去。此时,我们需要对这条链表进行进一步的改造来提高检测效率,最有效的途径就是对规则进行分类。显而易见,每一个进入检测引擎的数据包,是可以很容易地得到包的协议特征的,而规则头中,也包含了规则的协议特征。
13、所以,我们可以把协议特征从规则头中,单独地提取出来对规则进行合理地分类组织,仅以TCP/IP 协议为例,如下图:,不过,这个设计,仍然有许多的不足:有许多的规则,它们规则头都是相同或者是非常近似的。比如一类FTP 的攻击规则,可能大都为“src ip=any,src port=any,dst ip=指定主机,dst port=21” ,上面的链表,为每条这样的规则的规则头都分配了空间,即浪费了内存,又降低了检测效率。所以,有必要根据这一特点,对规则头进行进一步的分析,改善规则链表,如下图所示(只标注了IP规则链,其它协议类似):,这样,同类的规则头又被组织到了一起,整个检测规则树就初现模型了。
14、树的第二层,使用Right 指针来组织该类协议下所有的规则头节点,称之为规则树节点(RTN),而Down 指针指向了该类规则头下有所有规则选项节点,或者被称为选项树节点(OTN),此时对于规则头中的动作,有两个地方可以存储:链表最前面和最后面。如果放在最后,要么放进每个OTN 节点中,或者是在OTN 中设置指针,指向单独的动作节点,这样,规则树相对要扁平一些,扩展性要差一些,而如果置于链表的最前面,即表示将所有的规则先通过动作划分成几大类。每类动作,再按协议来分类,每类协议,再按RTN 来分类,这样,规则树经过了再次的分类和细化,节点的组织更合理一些,规则树就成了一个三维的链表。,我们采用后一
15、种思路:即先将规则通过动作分类,每类动作再根据协议分类。每类协议下面,再通过规则头的特征进行分类。每类规则头又指向了对应的所有规则节点,从而构建出一个三维的规则链表树,采用这一组织方式,结构化更强,也更容易扩展。整个规则树如下图所示:,关于ARP欺骗检测 通过建立MACIP的对照表,收集所有的ARP请求包或应答包,先判断这些包的合法性,然后把实际包的地址信息与对照表中的地址信息做比较,如果不一致,则表明发生了ARP攻击,如图所示:,关于模式匹配算法 BM 算法是一个著名的单模式字符串匹配算法,以后绝大部分的入侵检测模式匹配算法都是在它的基础之上发展而来的。下面简要说明BM 算法的基本原理。,假
16、设有长度为n 的文本字符串tn和长度为m 的模式字符串pm(m n)。BM 算法是将模式串P 和给定的文本T 左端对齐,在扫描的过程中采用自右向左的扫描方式,一旦出现不匹配现象(失配),就可以将模式串P 向右滑动一段距离,在滑动过程中采用了坏字符方法和好后缀方法,滑动的距离是两者之中的最大值。现对BM 算法详细描述如下:将模式串P 和给定的文本T 左端对齐,自右向左开始扫描对比,如果匹配则继续向左扫描,如果能够到达最左端,则说明匹配成功,如果扫描过程中遇到不匹配字符,则根据“坏字符”和“好后缀”启发式策略进行计算,结果中滑动距离较大的来将模式串右移,然后重复上面的操作。,“坏字符”思想:定义s
17、kip数组,如果字符ch没有在p中出现过,则skipch=m;如果字符ch在p出现过,记e表示ch在p中出现的最后位置(下标从0开始),则skipch=m-e-1。从右向左地把模式串同文本做比较,设匹配进行到比较tk-m+1k和p0m-1,从右至左依次检查tk,tk-1tk-m+1。当匹配失败发生在ti!=pj(ik-m+1k,j0m-1)时,采用skipti表示扫描文本的指针向前移动的位数。“坏字符”思想实际上是将ti在p中最后一次出现的位置与文本中的ti对齐后开始新的一轮匹配。“好尾缀”思想:若p后部与t一致的部分之中,有一部分在p中其它地方出现,则可以将p向右移动,直接使这部分对齐,且要
18、求这一部分尽可能大。,BMH算法在移动模式时仅考虑了“坏字符”策略。它首先比较文本指针所指字符和模式串的最后一个字符,如果相等再比较其余m-1个字符。无论文本中哪个字符造成了匹配失败,都将由文本中和模式串最后一个位置对应的字符来启发模式向右的移动。即当匹配开始比较tk-m+1和p0-1时,从右至左依次检查tk,tk-1k-m+1,一旦发现不匹配,就将文本指针重新赋值为k+skiptk(k是一个中间变量,表示文本中每次从右至左开始比较的起始位置)。,关于“坏字符”启发和“好尾缀”启发的对比,研究表明:“坏字符”启发在匹配过程中占主导地位的概率为94.03%,远远高于“好尾缀”启发。在一般情况下,BMH算法比BM有更好的性能,它简化了初始化过程,省去了计算“好尾缀”启发的移动距离,并省去了比较“坏字符”和“好尾缀”的过程。BMH算法的具体描述如下:,以T=“cbhdgfdcbbdbdcbdbfd”,P = “cbdbfd”子串为例,开始匹配时,把模式串与正文自左边对齐,匹配过程如下所示:,谢谢!,