IPS(入侵防护系统)与WAF(Web应用防护系统)的区别

IPS(入侵防护系统)和WAF(Web应用防护系统)两款产品有不同的使用场景,随着Web应用发展带来的
复杂度,对安全性要求也日趋增高,Waf的出现是顺应了市场和技术的需要。Web应用防护无疑是一个热门话题。由于技术的发展成熟和人们对便利性的期望越来越高,Web应用成为主流的业务系统载体。在Web上“安家”的关键业务系统中蕴藏的数据价值引起攻击者的青睐,网上流传的Web漏洞挖掘和攻击工具让攻击的门槛降低,也使得很多攻击带有
盲目和随机性。比如利用GoogleHacking原理的批量查找具有已知漏洞的应用程序,还有SQL批量注入和挂马等。但对于重要的Web应用(比如运营商或金融),始终有受利益驱动的黑客进行持续的跟踪。如果说传统的“大而全”安全防护产品能抵御大多数由工具产生的攻击行为,
那么对于有针对性的攻击行为则力不从心。而WAF正是应需求而生的一款高端专业安全产品,这也是市场需求细化的必然趋势。但由于其部署和功能方面与IPS有类似,有人提出疑问,为什么不能用IPS,或者说WAF与IPS有什么异同?谁更适合保护Web服务器?这些疑问其实是有道理的,差异化的产生在于高端需求是不同的,从而需要细化功能贴合具体需求和符合应用现状的产品,这也是用户需求是随着业务自身的发展所决定的。保镖和保安为了更好的理解两款产品差异性,我们先用这个保镖(WAF)和保安(IPS)比喻来描述。大楼保安需要对所有进出大楼人员进行检查,一旦发现可疑人员则禁止他入内,但如果混进“貌似忠良”的坏人去撬保险柜等破坏行为,大楼保安是无能为力的。私人保镖则是指高级别、更“贴身”的保护。他通常只保护特定的人员,
所以事先需要理解被保护人的身份、习惯、喜好、作息、弱点等,因为被保护人的工作是需要去面对不同的人,去不同的场合,保镖的职责不能因为危险就阻止、改变他的行为,只能去预见可能的风险,
然后量身定做合适的保护方案。这两种角色的区别在于保安保护的是整个大楼,他不需要也无法知道谁是最需要保护的人,保镖则是明确了被保护对象名单,需要深刻理解被保护人的个性特点。通过上面的比喻,大家应该明白两者的之所以会感觉相似是因为职责都是去保护,但差异在于职能定位的不同。从技术原理上则会根据定位来实现。下面通过几个层面来分析WAF和IPS的异同。事件的时间轴对于安全事件的发生,有三个时间点:事前、事中、事后。传统的IPS通常只对事中有效,也就是检查和防护攻击事件,其他两个时间点是WAF独
有的。事前是指能在事件发生之前通过主动扫描检测Web服务器来发现漏洞,通过修复Web服务器漏洞或在前端的防护设备上添加防护规则等积极主动手段来预防事件发生。事后则是指即使Web服务器被攻击了,也必须有网页防篡改功能,让攻击者不能破坏网站数据。为什么不能具备事中的100%防护能力?其实从以下几个方面就知道对于事中只能做到相对最佳防护而不能绝对,因为:1. 软件先天是有缺陷的,包括应用到第三方的组件和函数库无法控制其安全性;2. 应用程序在更新,业务是持续发展的、动态的,如果不持续监控和调整安全策略,也是会有疏漏的;3. 攻击者永远在暗处,可以对业务系统跟踪研究,查找漏洞和防护缺陷,用各种变形繁杂的手法来探测,并用于攻击;4. 任何防护设备都难以100%做到没有任何缺陷,无论是各种算法还是规则,都是把攻击影响降低到最小化。所以需要用一个可闭环又可循环的方式去降低潜在的威胁,对于事中疏漏的攻击,可用事前的预发现和事后的弥补,形成环环相扣的动态安全防护。事前是用扫描方式主动检查网站并把结果形成新的防护规则增加到事中的防护策略中,而事后的防篡改可以保证即使疏漏也让攻击的步伐止于此,不能进一步修改和损坏网站文件,对于要信誉高和完整性的用户来说,这是尤为重要的环节。如果仅仅是对于事件的时间轴有区别,那么还是可以采用其他产品来进行辅助,但关键的是事中的防护也是有深度的差异,那么下面我们来谈谈对于事中的差异。纵深度差异事中,也就是实时防护,两者的区别在
于一个是纵横度,一个是深度。IPS凸显的优势在于纵横度,也就是对于网络中的所有流量进行监管,它面对的是海量数据,处理TCP/IP模型中网络流量从物理层到应用层是逐层递交,IPS主要定位在分析传输层和网络层的数据,而再往上则是复杂的各种应用层协议报文,WAF则仅提供对Web应用流量全部层面的监管。监管层面不同,如果面对同样的攻击,比如SQL注入,它们都是可以防护的,但防护的原理有区别,IPS基本是依靠静态的签名进行识别,也就是攻击特征,这只是一种被动安全模型。如下是一个Snort的告警规则:alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:“SQL Injection - Paranoid”; flow:to_server,established;uricontent:“.asp”;pcre:“/(\%27)|(\‘)|(\-\-)|(%23)|(#)/i”; classtype:Web-application-attack; sid:9099; rev:5;这里主要是检查在SQL注入中提交的元字符,包括单引号( ' )和双横( -- ),从而避免注入'1 or 1=1—之类的攻击发生,但同时又要考虑这些元字符转换成Hex值来逃脱过滤检查,于是又在规则里增加了其对应的十六进制编码后的字符串。当然,要从签名特征来识别攻击要考虑的东西还很多,不仅元字符还有SQL关键字,包括:select insert update等,以及这些关键字的大小写变形和拼接,利用注释逃脱过滤,如下所示例:使用大小写混杂的字符:SeLecTfRom“把空格符替换为TAB符或回车符:select[TAB]from关键词之间使用多个空格:select from字符串的数值编码:0x414141414141 或 0x41004100410041004100插入被数据库忽略的注释串:sel/**/ectfr/**/om select/**/ from使用数据库支持的一些字符串转换功能:char(65)或chr(65)使用数据支持的字符串拼接操作:'sel'+'ect '+'fr'+'om’”、“‘sel'||'ect '||'fr'||'om'可以设想一下,如果要检测以上的变形字符后的攻击则需要增加相应的签名特征,但更重要的是要充分考虑转换编码的种类,上面示例的snort的规则把可疑字符以及其转换后的Hex值放入同一条规则里检查,如果对于变形后繁多的攻击种类,这是滞后的并且会造成签名臃肿。对于比较粗浅的攻击方式两者都能防护,但市面上大多数IPS是无法对报文编码做多重转换的,所以这将导致攻击者只需构建诸如转换编码、拼接攻击语句、大小写变换等数据包就可绕过输入检查而直接提交给应用程序。而这恰恰又是WAF的优势,能对不同的编码方式做强制多重转换还原成攻击明文,把变形后的字符组合后在分析。那为什么IPS不能做到这个程度?同样还有对于HTTPS的加密和解密产品架构大家知道IPS和WAF通常是串联部署在Web服务器前端,对于服务器和客户端都是透明的,不需要做任何配置,似乎都是一样的组网方式,其实有很大差异。首先我们看看市面主流WAF支持的部署方式:l 桥模式l 路由模式l 反向代理l 旁路模式(非串联)这两者串联部署在Web服务器前端时,市面上的大多数IPS均采用桥模式,而WAF是采用反向代理模式,IPS需要处理网络中所有的流量,而WAF仅处理与Web应用相关的协议,其他的给予转发,如下图:桥模式和反向代理模式的差异在于:桥模式是基于网络层的包转发,基本都没有协议栈,或只能简单的模拟部分协议栈,分析网络报文流量是基于单包的方式,所以要处理分片报文、数据流重组、乱序报文、报文重传、丢包都不具备优势。同时网络流量中包括的协议种类是非常多的,每种应用层协议都有自身独特的协议特征和格式要求,比如Ftp、SSH、Telnet、SMTP等,无法把各种应用流量放到应用层协议栈来处理。WAF系统内嵌的协议栈是经过修改和优化的,能完全支持Http应用协议的处理,这意味着必须遵循RFC标准(Internet Requests For Comments)来处理Http报文,包括如下主要RFC:l RFC 2616 HTTP协议语法的定义l RFC 2396 URL语法的定义l RFC 2109 Cookie是怎样工作的l RFC 1867 HTTP如何POST,以及POST的格式RFC中对Http的request行长度、URL长度、协议名称长度、头部值长度等都是有严格要求的,以及传输顺序和应用格式,比如Html参数的要求、Cookie的版本和格式、文件上传的编码 multipart/form-data encoding等,这些应用层内容只能在具有完整应用层协议栈的
前提下才可正确识别和控制,对于不完整的丢包,重传包以及伪造的畸形包都会通过协议校验机制来处理。上一节提到的WAF对Https的加解密和多重编码方式的解码正是由于报文必须经过应用层协议栈处理。反之,IPS为什么做不到?是由于其自身的桥模式架构,把Http会话”打碎“成多个数据包在网络层分析,而不能完整地从应用层角度来处理和组合多个报文,并且应用层协议繁多,全部去支持也是不现实的,产品的定位并不需要这样。下一节的学习模式更是两者的截然不同的防护机制,而这一机制也是有赖于WAF的产品架构。基于学习的主动模式在
前面谈到IPS的安全模型是应用了静态签名的被动模式,那么反之就是主动模式。WAF的防御模型是两者都支持的,
所谓主动模式在于WAF是一个有效验证输入的设备,所有数据流都被校验后再转发给服务器,能增加应用层逻辑组合的规则,更重要的是具备对Web应用程序的主动学习功能。学习功能包括:1. 监控和学习进出的Web流量,学习链接参数类型和长度、form参数类型和长度等;2. 爬虫功能,爬虫主动去分析整个Web站点,并建立正常状态模型;3. 扫描功能,主动去扫描并根据结果生成防护规则。基于学习的主动模式目的是为了建立一个安全防护模型,一旦行为有差异则可以发现,比如隐藏的表单、限制型的Listbox值是否被篡改、输入的参数类型不合法等,这样在面对多变的攻击手法和未知的攻击类型时能依靠安全防护模型动态调整防护策略。结尾WAF更多的特性,包括安全交付能力、基于cache的应用加速、挂马检查、抗DDOS攻击、符合PCIDSS的防泄密要求等都表明这是一款不仅能攻击防护,同时又必须在满足客户体验和机密数据防护的高度集成的专业产品,相比IPS而言,WAF真正理解WEB应用交互行为。

时间: 2024-10-03 20:11:15

IPS(入侵防护系统)与WAF(Web应用防护系统)的区别的相关文章

腾讯WAF(Web应用防护系统)应用层实现的架构漫谈

前言 作为腾讯公司级webserver的漏洞防护系统,目前腾讯门神系统(以下简称门神)已经涵盖了近万台webserver服务器,日均处理HTTP数据包达数百亿. WAF 的实现有很多种,详情见 <主流WAF架构分析与探索> .根据公司的业务特点,我们采用了文中提到的"服务器模块+检测云模式". 本文主要讲解我们实现此类WAF的后端整体架构与相关技术方案.在具体实现过程中遇到的种种难点问题,以及此类WAF的优劣势分析. 门神整体框架 图一.门神整体框架图 整体框架分为在线.离

浅析Unix系统下的web服务器的配置安全

中介交易 SEO诊断 淘宝客 云主机 技术大厅 Internet日益普及的今天,PC安全不但要求防治计算机病毒,而且要提高系统抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取.本文仅仅浅析在构造 Web服务器时可能出现的一些情况,希望能引起重视.         一. 安全漏洞         Web服务器上的漏洞可以从以下几方面考虑:         1.在Web服务器上你不让人访问的秘密文件.目录或重要数据.         2.从远程用户向服务器发送信息时

当信息遇到互联网 web信息架构系统

文章描述:当信息遇到互联网 web信息架构系统. 古人云:水到,则渠成.说的是,水流过的地方,自然形成了渠道.比喻时机到了,事情自然就成了. 人类历史基本都在和水打交道,水路基本是古代核心的运输渠道,农业时代的灌溉系统,水利电站-不胜枚举.甚至可以说,水孕育了人类的文明. 在改变世界之前,先要认识世界.构建渠道之前,需要了解水的属性,才能真正地为人所用. 人们常说,互联网就是信息的海洋.如今信息时代,信息如水一般,有很多自然的属性.想构建一个系统来承载信息,就好比古时候人们掘渠.想造福受众,必先

Win7系统中unity web player是什么程序?

  Win7系统中unity web player是什么程序?          如果你安装好Win7没有安装过软件出现该程序,可能系统不够纯净 建议使用:最新纯净版系统 unity web player是什么程序? 1.在win7的程序列表中并没有对该程序的详细说明,而我们使用一 些软件管理软件,如电脑管家的管理软件就可以看到,该程序是一个浏览器的扩展插件如下图: 2.其实是一款浏览器运行Unity3D游戏引擎发布的游戏的插件,和Flash Player很像,安全无毒 3.应该是你玩某款网页游

1-c#基于web白酒销售系统

问题描述 c#基于web白酒销售系统 无法连接到ASP.NTE Development Server 解决方案 如果是VS2012+,微软使用IIS Express代替Web Dev Server了,你需要升级你的项目.

一步一步用jenkins,ansible,supervisor打造一个web构建发布系统

新blog地址:http://hengyunabc.github.io/deploy-system-build-with-jenkins-ansible-supervisor/ 一步一步用jenkins,ansible,supervisor打造一个web构建发布系统. 本来应该还有gitlab这一环节的,但是感觉加上,内容会增加很多.所以直接用github上的spring-mvc-showcase项目来做演示. https://github.com/spring-projects/spring-

基于Web在线考试系统的设计与实现

这是一个课程设计的文档,源码及文档数据库我都修改过了,貌似这里复制过来的时候图片不能贴出,下载地址:http://download.csdn.net/detail/sdksdk0/9361973   数据库原理课程设计说明书              基于Web在线考试系统的设计与实现             目  录   1 课题背景与意义.3 1.1课题开发背景.3 1.2 课题开发意义.3 2 系统需求分析.4 2.1 项目要求.4 2.2 开发方案.5 2.3开发环境.5 3 总体开发.

ftp上传下载,ftp服务器在windows系统下,web服务器在linux系统下

问题描述 ftp上传下载,ftp服务器在windows系统下,web服务器在linux系统下 哪位大神知道: ftp服务器在搭建windows系统下,web服务器在部署linux系统下,现java中使用ftpclient实现上传下载时,下载的文件内容是乱码: 之前web服务器也部署在windows系统下正常的,后来迁移到linux系统下出现乱码了啊,中文文件名编码正常. 查ftpclient的源码发现读取ftp服务器上文件的编码格式固定了,无法在外部修改,有试着将读取出来的文件转码各种编码方式,

html-如何才能系统的学习web前端呢

问题描述 如何才能系统的学习web前端呢 我是一个培训出来的学生,学的是net但是现在想转做web前端,我对js,css,html都有了解.,但是不是精通.求大神给一个方法.谢谢了 解决方案 精通不精通无所谓,前端是一个熟能生巧的技艺,而没有高深的技术.一方面,多向你的同事请教,另一方面,要有一颗精益求精把活做到完美的心,多观察,多想想为什么. 解决方案二: 除了大量的动手实践,大概没有其他办法了.自己架个空间,自己维护空间特效,让它一点点变漂亮,把学到的每一个知识点都写成blog记录下来.一年