基于对象分析的攻击识别方法及装置的制造方法_3

文档序号:9238135阅读:来源:国知局
以利用本次匹配不成功的信息,跳过尽可能多的字符, 实现高效匹配。在匹配步骤如下:1、选定一个匹配起始位置。2、使用AC树进行匹配,如果 匹配失效,跳转步骤1;如果匹配成功,可根据应用需要跳转至步骤1或者退出。ACBM算法 中的AC算法部分比AC自动机算法的实现要简单,不需要考虑失效函数的问题,也就是说 ACBM算法中实现的AC算法部分是一棵树,而在AC自动机的实现是一个图。ACBM算法中的 BM算法的实现要比BM算法本身的实现要复杂一些,因为这是对BM算法的多模式一种扩展。 ACBM算法中的核心数据结构包括:1、MinLen,模式串集合中最短那个模式串的长度:比较 失配时最多跳跃的字符个数不能超过Minlen。2、ACTree,由模式串集合构建出的状态树, 构建方法和AC自动机的构建方法相同,而且不需要计算失效函数,比较简单。3、BCshift: ACTree对应一个坏字符数组,当匹配失效时,查找该数组计算坏字符偏移量。4、GSshift: AC树的每一个节点对应一个好后缀偏移量。
[0047] 假设通过步骤S201获取到对象A、对象B,则以图1的多模库为例,查找多模库进 行多模匹配,如果确定对象A的数据不包含具有属性A的关键字1,则确定没有与对象A匹 配到的关键字,进一步地,对对象B的数据与具有属性B的关键字2和关键字3进行匹配, 如果对象B的数据不包含关键字2但是包含关键字3,则确定匹配到关键字3。对于多模库 包含的其他关键字5,…,关键字N,由于它们的属性(C-N)并非获取到的对象(A和B), 因此不会匹配到。
[0048]S203:从特征库中匹配是否存在针对该对象的、与匹配的关键字具有映射关系的 特征表达式,如果没有匹配到特征表达式,则确定不存在攻击,否则进行后续步骤;
[0049] 其中,确定一条关键字是否为针对所述对象的关键字的方式为:确定该关键字的 属性是否为所述对象;确定一条特征表达式是否为针对所述对象的特征表达式的方式为: 确定该特征表达式的属性是否为所述对象。
[0050] 通过步骤S202已经匹配到关键字,那么在此步骤中,继续判断是否与匹配到的关 键字具有映射关系的特征表达式。仍以上述以图1为例,假设通过多模匹配匹配到一条关 键字3,则根据多模库中关键字与特征库中特征表达式的映射关系,查找到关键字3与特征 表达式3及特征表达式4具有映射关系,那么,此步骤即确定出下一步仅需要对特征表达式 3及特征表达式4进行匹配即可。
[0051]S204 :基于针对该对象的、与匹配的关键字对应的特征表达式,对该对象的数据进 行规则匹配,如果匹配成功,则确定存在攻击,否则确定不存在攻击。
[0052]通过前述步骤,已经确定此步骤中要用于进行正则匹配的有限条特征表达式。仍 以图1为例,由于确定出了特征表达式3及特征表达式4,则在此步骤中,将对象B的数据分 别与特征表达式3和特征表达式4进行匹配,如果有任何的表达式匹配成功,则认为存在攻 击,如果没有一条表达式匹配成功,则确定不存在攻击。
[0053]采用本发明实施例目的是:在第一层次过滤中,过滤掉所有的安全请求数据;第 二层次过滤中,对有嫌疑的数据做一次初步的过滤;第三层次过滤中,消息有攻击行为的可 能行就非常大,用特征表达式来确定。采用本发明实施例,通过第一层次能够过滤掉99%的 数据,第二层次和第三层次过滤中,处理的请求数据大概在10%的比例。也就是,不需要对 99%的正常数据进行特征正则表达式匹配处理。由此,检测效率有显著提高。
[0054]此外,在构建所述特征库过程中,还可以基于攻击的类型,按照主类、子类和规则 的方式组织所述多条特征表达式;同理,在构架多模库过程中,基于攻击的类型,按照主类、 子类和规则的方式组织所述多条关键字。如前所述,网络攻击类型种类繁多。因此,在构建 特征库与多模库时,根据攻击类型,对特征表达式及关键字进行组织。由此,在将通过本发 明实施例完成的安全产品提供给用户时,用户可以有针对性地选择特定攻击防护措施,这 样其他不相关的攻击防护就不需要运行,由此可以提供网络运行速度。
[0055]例如,在构建特征库或多模库时,按照图3示例进行组织。图3示出了根据本发 明一个实施例的按照攻击类型构建特征库或模式库的示意图。图3中,示出了主类1、主类 2,……,主类n(主类2-主类n略去),各主类1下属的子类1、子类2,……,子类n,以及 各子类下属的规则1、规则2,……,规则n。其中,主类是指网络攻击的一个大类,子类是指 该大类下的一个小类,规则是指具体的攻击特征代码。例如,SQL注入属于一个主类,"通过 http协议的get消息进行SQL注入"属于该主类下的一个子类,数据中包含的"select"等 注入语句属于规则。
[0056] 下面以一个http协议具体例子对本发明方案进行说明。
[0057] (1)构建特征库和多模库。
[0058] 构建包括多条特征表达式的特征库以及包括多条关键字的多模库。按照攻击类型 进行建库的一个例子如下:
[0059]

[0061] 上述例子中,示出了一个主类(主类1,main_claSSl)的策略,而省略了其他主 类2,……,主类n。可以理解,各主类下属包括多个子类(subclass),例如子类1、子类 2,……,子类n,以及各子类包括多个下属的规则(rule),例如规则1、规则2,……,规则 n。其中,一个主类代表网络攻击的一个大类,子类是指该大类下的一个小类,规则是指具体 的攻击特征代码。例如上述例子中,SQL注入(SQLInject)属于一个主类,"通过http协 议的get消息进行SQL注入(GetSQLInject)"属于该主类下的一个子类,数据中包含的 "select"等注入语句属于规则。
[0062] (2)获取http消息,并对http消息进行协议解析,得到消息中各个对象(例如: url、reference、cookie等字段)的数据。
[0063] 通常http消息包括客户机向服务器的http请求消息和服务器向客户机的http响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行 和可选的消息体组成。http的头域包括通用头,请求头,响应头和实体头四个部分。
[0064]例如,
[0065] 一个典型的请求消息为:
[0066] GEThttp://class/download,microtool,de:80/somedata.exe
[0067] Host:download,microtool,de
[0068] Accept:氺/*
[0069] Pragma:n〇-cache
[0070] Cache-Control:n〇-cache
[0071 ] Referer:http://class/download,microtool,de/
[0072] User-Agent:Mozilla/4. 04[en](Win95;I;Nav)
[0073] Range:bytes=554554_
[0074] 其中,Host头域指定请求资源的Intenet主机和端口号,必须表示请求url的原 始服务器或网关的位置;Referer头域允许客户端指定请求uri的源资源地址,这可以允许 服务器生成回退链表,可用来登陆、优化cache等;Range头域可以请求实体的一个或者多 个子范围;User-Agent头域内容包含发出请求的用户信息。
[0075] (3)对获取的对象在建立的库中进行匹配,确定是否存在攻击。
[0076] 将http协议解析获取的对象数据在上述构建的库中进行识别,如果匹配成功,则 确定存在攻击,否则认为不存在攻击。
[0077] 与上述方法相对应,本发明还提供一种基于对象分析的攻击识别装置。该装置可 以通过硬件、软件或软硬件结合实现。具体对,该装置可以是指服务节点(例如,防火墙服务 器),也可以是指服务节点内部的功能实体,只要具有该装置的功能即可。
[0078] 具体地,该基于对象分析的攻击识别装置至少包括:消息获取单元、消息解析单 元、特征库构建单元、多模库构建单元以及匹配单元。
[0079] 其中:
[0080] 消息获取单元用于获取消息。该消息包括应用层协议(applicationlayer protocol)消息。如前所述,应用层协议主要有以下几种。(1)域名系统(DomainName System,DNS):用于实现网络设备名字到IP地址映射的网络服务。(2)文件传输协议 (FileTransferProtocol,FTP):用丁实现交互式文件传输功能。(3)简单邮件传送协议 (SimpleMailTransferProtocol,SMTP):用于实现电子邮箱传送功能(4)超文本传输协 议(HyperTextTransferProtocol,HTTP):用于实现WWW服务。(5)简单网络管理协议 (simpleNetworkManagementProtocol,SNMP):用于管理与监视网络设备。(6)远程登录 协议(Telnet):用于实现远程登录功能。那么,消息获取单元获取的消息至少包括DNS消 息、FTP消息、SMTP消息、HTTP消息、S
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1