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

文档序号:9238135阅读:来源:国知局
iformResourceLocator)解码,防 止攻击者以URL编码方式构造SQL注入语句;检测请求数据中是否含有SQL注入攻击常用 的关键字以及分隔符,如"seleCt"、"and"、"; "、"一 _"等,如果不含有,则可以排除注入 攻击的可能,如果有,则提交至下一步进行详细的规则检测;对于包含注入关键字的web请 求,则便利规则库对请求内容进行详细的正则匹配。如果匹配成功,则拦截请求,向客户端 发送警告并记录日志,如果匹配失败,则将请求字符串记录入可疑的攻击代码库,提交网站 管理员分析。本领域技术人员都理解,基于字符匹配的正则表达式检测方案效率低下,为了 一定程度提高检测效率,常常在编写正则表达式规则时,会设置字符检测的偏移量,例如仅 检测整个数据的某段(例如前50个字符),假如SQL注入语句恰好发生在未检测的字段,则 会导致漏报。
[0031] 与传统的正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字 符串不同,本发明是基于对消息进行协议解析从而获取不同对象(即消息预定义字段)、继 而根据对象对规则进行分层次匹配。
[0032] 本发明对应用层协议都适用。
[0033] 应用层协议(applicationlayerprotocol)定义了运行在不同端系统上的应用 程序进程如何相互传递报文。应用层协议的定义包括如下内容:(1)交换的报文类型,如请 求报文和响应报文;(2)各种报文类型的语法,如报文中的各个字段公共详细描述;(3)字 段的语义,即包含在字段中信息的含义;(4)进程何时、如何发送报文及对报文进行响应。 有些应用层协议是由RFC文档定义的,因此它们位于公共领域。例如,web的应用层的协 议HTTP(超文本传输协议,RFC2616)就作为一个RFC供用户使用。如果浏览器开发者遵从 HTTPRFC规则,所开发出的浏览器就能访问任何遵从该文档标准的web,服务器并获取相应 的web页面。还有很多别的应用层协议是专用的不能随意应用于公共领域。例如,很多现 有的P2P文件共享系统使用的是专用应用层协议。目的,应用层协议主要有以下几种。(1) 域名系统OomainNameSystem,DNS):用于实现网络设备名字到IP地址映射的网络服务。 (2)文件传输协议(FileTransferProtocol,FTP):用丁实现交互式文件传输功能。(3)简 单邮件传送协议(SimpleMailTransferProtocol,SMTP):用于实现电子邮箱传送功能 (4)超文本传输协议(HyperTextTransferProtocol,HTTP):用于实现WWW服务。(5)简 单网络管理协议(simpleNetworkManagementProtocol,SNMP):用于管理与监视网络设 备。(6)远程登录协议(Telnet):用于实现远程登录功能。
[0034] 为了说明方便,本发明实施例以http协议消息进行说明。那么,本发明实施例是 基于对http消息进行协议解析(根据httprfc协议规范)从而获取不同对象(即http消息 预定义字段,例如:111'1^6作^1^6、参数、(30〇1^6等字段)、继而根据对象对规则进行分层次 匹配。
[0035] 本发明的实施分为两个阶段,第一个阶段是数据准备阶段,第二个阶段是攻击识 别阶段。
[0036] 在数据准备阶段,要完成构建特征库和多模库。其中,特征库与现有采用正则表达 式进行攻击识别方案的特征库类似,都是由基于正则的多条特征表达式(也可称为"规则") 组成的。但是,与现有特征库(或称为"规则库"等)不同在于,对每一条规则添加了对象的属 性,也就是,建立了"对象一特征"的对应关系。本发明的多模库是新引入的,它是从特征库 生发而来的。多模库包括多条关键字(关键字即攻击的特征数据),每条关键字具有对象的 属性。每种模式即可理解为一个关键字(也就是多模树的每一个节点),而且每一个关键字 具有对象的属性。多模库中的关键字与特征库中的一条或多条特征表达式具有映射关系, 具有映射关系的关键字与特征表达式具有相同的属性。
[0037] 参见图1,为本发明一个实施例的特征库与模式库的关系示意图。
[0038] 图1中,特征库包括多条特征表达式:特征表达式1、特征表达式2、特征表达式3、 特征表达式4、特征表达式5,......,特征表达式N。并且每一条特征表达式具有属性(如上 所述,属性是指对象)。具体地,特征表达式1具有属性A(S卩,特征表达式1的属性为对象A)、特征表达式2具有属性A、特征表达式3具有属性B、特征表达式4具有属性B、特征表 达式5具有属性C,……,特征表达式N具有属性N。从该特征库出发,构建多模库。多模 库包括多条关键字:关键字1、关键字2、关键字3、关键字4、关键字5,……,关键字N。并 且每一条关键字具有属性(如上所述,属性是指对象)。具体地,关键字1具有属性A、关键字 2具有属性B、关键字3具有属性B、关键字4具有属性C、关键字5具有属性C,……,关键 字N具有属性N。其中,一个关键字可以与一条或多条特征表达式具有映射关系,满足映射 关系的关键字与特征表达式要求具有相同的属性。比如,在图1中,具有属性A的关键字1 与同样具有属性A的特征表达式1具有映射关系、具有属性B的关键字3与同样具有属性 B的特征表达式3和特征表达式4具有映射关系、具有属性C的关键字5与同样具有属性C 的特征表达式5具有映射关系。图1中,关键字2与关键字4每样具备映射关系的特征表 达式。需要说明的是,图1仅是特征库与多模库的示例,不构成任何限制,其他组织或对应 关系都可实现本发明实施例。
[0039] 在攻击识别阶段,又分为两个步骤。第一个步骤是,对消息进行协议分析,从而获 取到消息所包含的各个对象。第二个步骤是,对消息进行基于对象的攻击识别,攻击识别具 体又细分为三个层次。第一层次是进行多模匹配,如果出现了多模库中的一个关键字(带对 象的属性),则确定存在攻击嫌疑,进行下一层次过滤,否则认为是安全的数据。第二层次: 根据多模匹配结果进行特征过滤,目的是只是选择出多模匹配命中的关键字对应的特征表 达式,过滤掉其他无关的特征表达式。在该第二层次过滤中,多模关键字与特征表达式的映 射关系能确保进行特征过滤高效快速的完成。如果没有任意一条特征表达式和多模匹配结 果中的关键字有映射关系,那么就可以肯定该数据是安全的;否则进入下一层次过滤。第三 层次:在该步骤中,所有的请求数据都是有攻击嫌疑的,那么就需要最终用过滤出来的特征 表达式进行特征匹配,即真正的基于特征进行正则表达式的字符匹配,来进行最终确认是 否是攻击行为。
[0040] 参见图2,为根据根据本发明一个实施例的基于对象分析的攻击识别方法流程图。
[0041] 该方法流程图包括以下步骤:
[0042]S201 :对获取的消息进行协议分析,解析获得一个或多个对象的数据;
[0043] 以http协议为例,假设获取的是http协议消息,则对该消息进行协议分析,即, httprfc协议规范进行协议分析,从而获得消息包含的各个http协议字段,S卩,获得对象 所包含的数据内容。以http协议为例,本发明的对象是指http消息预定义字段,例如,url、 reference、参数、cookie等字段。
[0044] 本领域技术人员了解,对于http协议,请求信息包括希望返回的文件名和客户 机信息。客户机信息以请求头发送给服务器,请求头包括HTTP方法和头字段。HTTP方法 常用的有GET、HEAD、POST、PUT、DELETE、LINK、UNLINK等方法。头字段包括:DATE:请求 发送的日期和时间;PARGMA:用于向服务器传输与实现无关的信息,这个字段还用于告诉 代理服务器,要从实际服务器而不是从高速缓存取资源;FORWARDED:可以用来追踪机器之 间,而不是客户机和服务器的消息,这个字段可以用来追踪在代理服务器之间的传递路由;MESSAGE_ID:用于唯一地标识消息;ACCEPT:通知服务器客户所能接受的数据类型和尺寸 (*/*表示可以接受所有类型的数据);AOTHORIZATION:向服务器提供旁路安全保护和加密 机制,若服务器不需要这个字段,则不提供这个字段;FROM:当客户应用程序希望想服务器 提供有关其电子邮件地址时使用;IF-MODEFIED-SINCE用于提供条件GET;如果所请求的文 档自从所指定的日期以来没有发生变化,则服务器应不发送该对象;如果所发送的日期格 式不合法,或晚于服务器的日期,服务器会忽略该字段;BEFERRER:向服务器进行资源请求 用到的对象;MME-VERTION:用于处理不同类型文件的MME协议版本号;USER-AGENT:有 关发出请求的客户信息。
[0045] S202:针对对象的数据,利用多模库进行多模匹配,如果匹配到针对该对象的关键 字,则进行后续步骤,否则确定不存在攻击;
[0046] 其中,采用多模匹配算法进行多模匹配。多模匹配算法包括多种,例如Trie树、AC 算法、丽算法等等。本发明实施例优选采用ACBM算法。ACBM算法是在AC自动机的基础 之上,引入了BM算法的多模扩展,实现的高效的多模匹配。ACBM算法的核心思想就是让每 次匹配的起始位置跨度尽可能的大,以提高效率。和AC自动机不同的是,ACBM算法不需要 扫描目标文本串中的每一个字符,可
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1