一种基于NDIS驱动的Web服务器攻击过滤及综合防护方法

文档序号:7614707阅读:171来源:国知局
专利名称:一种基于NDIS驱动的Web服务器攻击过滤及综合防护方法
技术领域
本发明涉及网络安全防护领域,具体涉及一种基于NDIS驱动的Web服务器攻击过 滤及综合防护方法。
背景技术
Web服务器处理hternet用户发来的网页请求和数据包时,其存在的漏洞被黑客 进行注入式攻击已成为黑客入侵Web服务器的一种主要手段,并逐年增长。注入式攻击Web 服务器成功后,会篡改网页、加挂木马、控制服务器作为肉鸡进行非法攻击等,因此,对发送 给Web服务器的数据包进行有效过滤和防护,阻止注入式攻击,保证Web服务器的正常运 行,具有重大社会意义。目前,针对该问题的解决方案分为两类第一类、如图1所示,通过硬件方式实现网络数据过滤,在服务器的网络前端通过 名为“ffeb应用防火墙”的硬件设备对hternet用户发送给Web服务器的网页请求和数据 进行过滤和防护。第二类、如图2所示,通过软件的形式,采用Web服务器程序挂接过滤和防护模块 的形式,对Web服务器所接收到的hternet用户发送来的网页请求和数据进行过滤和防 护。第一类技术由于采用硬件实现,因此其采购、维护、部署成本较高,灵活性较差, 但是在处理速度上有优势;第二类技术采用软件实现,但是其技术实现只能针对某种具体 的Web服务器有效,对用户存在局限性,比如针对微软的IIS服务器的ISAPI模块,针对 Apache服务器的ModSecurity模块;如果做成产品,则存在需要同时维护针对不同Web服 务器的多个版本,维护成本高。

发明内容
本发明针对这个问题,提出并实现了一种在Windows环境中,利用NDIS驱动获取 Internet用户发送给Web服务器的网页请求和数据,进行分析、发现其中潜在的攻击企图, 加以过滤和处理的防护技术。本发明是通过如下技术方案实现上述技术目的的,本发明提出一种基于NDIS驱 动的Web服务器攻击过滤及综合防护方法,包括NDIS驱动按照预先设定进行HTTP协议筛 选,并从接收到的数据包中筛选出满足端口要求的HTTP数据包,并交给运行在用户态的安 全检测服务模块;安全检测服务模块对所述HTTP数据包进行分析、检测,并发送抛弃不安 全HTTP数据包的指令至NDIS驱动;NDIS驱动抛弃所述不安全HTTP数据包。优选的,“NDIS驱动抛弃所述的不安全HTTP数据包”后还包括构造一个用户设定内容的HTTP响应包发给请求的用户,并中断与该用户的连接。优选的,还包括所述安全检测服务模块对所述HTTP数据包进行分析、检测,并发 送放行安全的HTTP数据包的指令至NDIS驱动;
NDIS驱动将放行的HTTP数据包提交上层协议,最后传输给Web服务器;Web服务器对所述安全的HTTP数据包进行处理,并将HTTP返回数据通过协议栈下 发至NDIS驱动;NDIS驱动将所述HTTP返回数据通过网卡驱动下发至网卡;网卡将所述HTTP返回数据通过网络反馈给用户。优选的,"NDIS驱动按照预先设定进行HTTP协议筛选,筛选出满足端口要求的 HTTP数据包,并交给运行在用户态的安全检测服务模块”之前还包括用户通过网络发送数据包到达网卡;网卡将数据包上传NDIS驱动。有益效果本发明提出并实现了一种在Windows环境中,利用NDIS驱动获取 hternet用户发送给Web服务器的网页请求和数据,进行分析、发现其中潜在的攻击企图, 加以过滤和处理的防护技术。本发明属于一种软件技术,成本较低,灵活性较高,另外,由于 本技术使用了基于NDIS驱动来获得hternet用户发给Web服务器软件的网页和数据进行 过滤,而所有的Web服务器软件都是基于标准的HTTP协议实现的,因此本发明所实现的技 术能针对所有的Web服务器程序,不存在局限性。


下面根据附图和实施例对本发明作进一步详细说明;图1、现有技术中基于硬件Web应用防火墙的技术的拓扑图;图2、现有技术中通过软件方式实现网络数据过滤的基本原理图;图3、为本发明中实施例1的总体流程图;图4、为本发明中实施例1中NDIS驱动筛选出满足端口要求的HTTP数据包的流程 图;图5、为本发明中实施例1中安全检测服务模块对上述HTTP数据包进行分析、检测 的流程图;图6、为本发明中实施例1中HTTP数据包按照HTTP协议拆解并进行分析的总体流 程具体实施例方式本发明的核心思想为一种基于NDIS驱动的Web服务器攻击过滤及综合防护方 法,其特征在于,包括NDIS驱动按照预先设定进行HTTP协议筛选,并从接收到的数据包中 筛选出满足端口要求的HTTP数据包,并交给运行在用户态的安全检测服务模块;安全检测 服务模块对所述HTTP数据包进行分析、检测,并发送抛弃不安全HTTP数据包的指令至NDIS 驱动;NDIS驱动抛弃所述不安全HTTP数据包。实施例1结合图3,描述本实施例S1、用户通过网络发送数据包至网卡。S2、网卡将数据包上传NDIS驱动。具体为、网卡将数据包上发到网卡驱动,网卡驱动通过接卡将数据交给NDIS驱
4动。S3、NDIS驱动按照预设通过HTTP协议筛选出满足端口要求的HTTP数据包,并将 上述HTTP数据包交给运行在用户态的安全检测服务模块。安全检测服务模块处在用户层。结合图4,对“NDIS驱动筛选出满足端口要求的HTTP数据包”做进一步说明HTTP 数据包既是IP包也是TCP包,且为预设端口的数据包。S31、通过NDIS规范获得下层发来的网络数据包。S32、判断是否是一个IP包,如果是,转到S33,如果否,转到S36。S33、判断是否是一个TCP包,如果是,转到S34,如果否,转到S36。S34、判断是否为预设端口的数据包,如果是,转到S35,如果否,S36。S35、将数据包放入缓冲区,并通知安全检测服务模块。通知安全检测服务模块通过驱动与用户层程序通信接口规范完成。S36、将数据包按照规范提交给上层协议驱动。S4、安全检测服务模块对上述HTTP数据包进行分析、检测,并将对HTTP数据包进 行放行处理或抛弃处理的指令反馈至NDIS驱动;安全检测服务模块对一个HTTP连接的多 个数据包进行缓存和管理维护。结合图5,如下对“安全检测服务模块对上述HTTP数据包进行分析、检测”做进一 步说明S41、安全检测服务模块接到NDIS驱动的通知,并从缓冲区获得HTTP数据包。S42、从上述HTTP数据包中提取来源IP地址、发送端口、接收端口、TCP包的 sequence号、acknowledgement号、负载数据在数据包中的偏移。S43、判断此HTTP数据包是否来自于白名单中的IP地址,如果是,转到S411,如果 否,转到S44。S44、判断此HTTP数据包中包含的是否为HTTP的GET请求,如果是,转到S49,如果 否,转到S45。S45、判断此HTTP数据包中包含的是否为HTTP的POST请求的第一个包,如果是, 转到S48,如果否,转到S46.S46、根据会话管理队列判断是否有未完成传输的POST请求,如果是,转到S47,如 果否,转到S411。S47、在会话管理队列中检查该HTTP数据包所对应的会话,并将此HTTP数据包追 加到所对应会话的数据队列中,完成后,转到S49。S48、将POST请求的第一个数据包加入到会话管理队列中,等待后面将到的数据 包,完成后,转到S49。S49、对HTTP数据包按照HTTP协议拆解并进行分析。在获得完整或者较为完整的(POST数据不会在一个包里面就发送过来)的HTTP 数据包以后,需要对数据包按照HTTP协议的约定,分析出请求的类型、URI、各HTTP头以及 对应的值、HTTP协议所载内容等,按照各种类型攻击的特点,有些攻击是利用URI的、有些 攻击是利用HTTP头或者值的、有些攻击是利用HTTP头中的Cookies的、有些是利用URI或 者HTTP body中所带的参数的,为了提高效率,要进行区分对待和处理,减少没必要的检查
5和判断,因此需要构造一个规则库,其格式如、FILENAME IARGS I ARGS_NAMES “攻击特征” “攻 击类型”,其中的FILENAME | ARGS | ARGS_NAMES表明需要检查三个部分,分别是、FILENAME,本 次HTTP请求所请求的服务器上的某个文件的文件名;ARGS以及ARGS_NAMES,本次HTTP请 求所附带的参数。举例说明、比如客户在浏览器地址栏中输入、http://www. mytest. com/ showdetail. asp ? id = 49 ;and 1 = 1 则 FILENAME 代表了 showdetail. asp, ARGS 代表 了 49 ;and 1 = 1,ARG_NAMES代表了 id。根据每一条规则,将对一个HTTP请求中的不同 部位进行对应的检查,检查依据由规则中的“攻击特征”确定,“攻击类型”为描述性文字, 表示本类攻击的名字,本发明一共支持对16种攻击进行检测、特诺依木马攻击、Session fixation攻击、SQL盲注攻击、SQL注入攻击、XSS攻击、FiIe注入攻击、System Command注 入攻击、Coldfusion注入攻击、LDAP注入攻击、SSI注入攻击、PHP注入攻击、Persistent Universal PDF XSS 攻击、Email 注入攻击、HTTP Response Splitting 攻击、路径遍历注入 攻击、RFI (Remote File Inclusion)攻击。结合图6,对“HTTP数据包按照HTTP协议拆解并进行分析”做进一步说明、S491、判断HTTP数据包中是否存在用户定义的过滤关键词,如果是,转到S4916。 如果否,转到S492。S492、判断HTTP数据包是否拆解完成,如果是,转到S4912,如果否,转到S493。S493、读入下一行数据。S494、判断读入的数据行是否为HTTP请求行,如果是,转到S497,如果否,转到
5495。S495、判断读入的数据行是否为HTTP HEADER行,如果是,转到S498,如果否,转到
5496。S496、判断读入的数据行是否是HTTP BODY,如果是,转到S499,如果否,转到 S492。S497、分析得到URI、FILENAME、ARGS以及ARGS_NAMES并存入拆解后的HTTP各元 素队列。S498、分析得到 HEADERS、HEADERS_NAMES、COOKIES、C00KIES_NAMES 并存入到拆解 后的HTTP各元素队列。S499、判断HTTP BODY是否通过Multipart上传附件,如果是,转到S4910,如果否, 转到S4911。S4910、通过multipart格式分析得到ARGS以及ARGS_NAMES并存入拆解后的HTTP 各元素队列。S4911、直接分析得到ARGS以及ARGS_NAMES并存入拆解后的HTTP各元素队列。S4912、判断是否所有规则都已经处理,如果是,转到S4916,如果否,转到S4913。S4913、调入下一条规则,转到S4914。S4914、按照规则中定义的检查内容和检查规则,对拆解后的HTTP请求中的相应 内容进行检查。S4915、根据检查结果,判断是否有符合规则中定义的攻击特征,如果是,转到 S4916,如果否,转到S4912。S4916、结束检测过程,清理现场,将检测结果通知调用程序。
S410、根据分析结果判断该HTTP数据是否安全,如果是,转到S412,如果否,转到 S411。S411、通知处于等待状态的NDIS驱动,此HTTP数据包安全,放行此数据包。S412、通知处于等待状态的NDIS驱动,此HTTP数据包不安全,丢弃数据包,并构造 用户设定内容的HTTP数据包返回给用户,中断连接。S5、NDIS驱动依照安全检测服务模块的指令,将放行的HTTP数据包提交上层协 议,最后传输给Web服务器;将抛弃的数据包放弃上发,并构造一个用户设定内容的HTTP响 应包发给请求的用户,中断连接。S6、Web服务器进行处理,将HTTP返回数据通过协议栈下发,到达NDIS驱动。S7、NDIS驱动将HTTP返回数据通过网卡驱动下发至网卡。S8、网卡将HTTP返回数据通过网络发送给用户。本发明并不局限于此实施方式,以本发明思想为基础的相关实现均在本发明的保 护范围内。
权利要求
1.一种基于NDIS驱动的Web服务器攻击过滤及综合防护方法,其特征在于,包括 NDIS驱动按照预先设定进行HTTP协议筛选,并从接收到的数据包中筛选出满足端口要求的HTTP数据包,并交给运行在用户态的安全检测服务模块;安全检测服务模块对所述HTTP数据包进行分析、检测,并发送抛弃不安全HTTP数据包 的指令至NDIS驱动;NDIS驱动抛弃所述不安全HTTP数据包。
2.如权利要求1所述的一种基于NDIS驱动的Web服务器攻击过滤及综合防护方法,其 特征在于,"NDIS驱动抛弃所述的不安全HTTP数据包”后还包括构造一个用户设定内容的HTTP响应包发给请求的用户,并中断与该用户的连接。
3.如权利要求1所述的一种基于NDIS驱动的Web服务器攻击过滤及综合防护方法,其 特征在于,还包括所述安全检测服务模块对所述HTTP数据包进行分析、检测,并发送放行安全的HTTP数 据包的指令至NDIS驱动;NDIS驱动将放行的HTTP数据包提交上层协议,最后传输给Web服务器; Web服务器对所述安全的HTTP数据包进行处理,并将HTTP返回数据通过协议栈下发至 NDIS驱动;NDIS驱动将所述HTTP返回数据通过网卡驱动下发至网卡; 网卡将所述HTTP返回数据通过网络反馈给用户。
4.如权利要求1所述的一种基于NDIS驱动的Web服务器攻击过滤及综合防护方法,其 特征在于,“NDIS驱动按照预先设定进行HTTP协议筛选,筛选出满足端口要求的HTTP数据 包,并交给运行在用户态的安全检测服务模块”之前还包括用户通过网络发送数据包到达网卡; 网卡将数据包上传NDIS驱动。
全文摘要
本发明提出一种基于NDIS驱动的Web服务器攻击过滤及综合防护方法,NDIS驱动按照预先设定进行HTTP协议筛选,并从接收到的数据包中筛选出满足端口要求的HTTP数据包,并交给运行在用户态的安全检测服务模块;安全检测服务模块对所述HTTP数据包进行分析、检测,并发送抛弃不安全HTTP数据包的指令至NDIS驱动;NDIS驱动抛弃所述不安全HTTP数据包。本发明属于一种软件技术,成本较低,灵活性较高,本发明所实现的技术能针对所有的Web服务器程序,不存在局限性。
文档编号H04L29/08GK102123155SQ20111006742
公开日2011年7月13日 申请日期2011年3月21日 优先权日2011年3月21日
发明者曾湘宁 申请人:曾湘宁
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1