您的需求已经提交,我们将在48小时内联系您
全国服务热线:400-1000-221
确定
免费享受企业级云安全服务
获取手机验证码
{{message}}
免费试用

ips和waf的功能和区别介绍

作者:
发布时间:2020-07-20

  继pc互联网之后,移动互联网的兴起导致互联网规模越发庞大,而web应用也成为主流的系统载体。waf正是在这种需求之下而产生的高端专业安全产品,但是waf在部署和功能方面却又与ips类似。那么ips和waf的区别在哪里呢?这里跟大家做一下ips和waf功能介绍

ips和waf功能介绍

 

ips和waf功能介绍

 

  入侵防御系统简介

  Intrusion Prevention System:IPS

  位于防火墙和网络的设备之间,依靠对数据包的检测进行防御(检查入网的数据包,确定数据包的真正用途,然后决定是否允许其进入内网)。

  能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够及时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。

  防火墙可以拦截底层攻击行为,但对应用层的深层攻击行为无能为力。IPS是对防火墙的补充。

  IPS是串行部署,部署后会对网络造成一定的延时影响,因此,对网络要求高的公司,可能会选择部署IDS(IDS是旁路部署)。

  当IPS出现故障,系统崩掉了,会自动启用软件Bypass,即此时不对所有的包进行检测,也不对所有的包进行拦截,全部放过。

  入侵防御系统功能

  在ISO/OSI网络层次模型中,防火墙主要在第二到第四层起作用,它的作用在第四到第七层一般很微弱。而防病毒软件主要在第五到第七层起作用。

  为了弥补防火墙和防病毒软件二者在第四到第五层之间留下的空档,几年前,工业界已经有入侵检测系统(IDS:Intrusion Detection System)投入使用。入侵检测系统在发现异常情况后及时向网路安全管理人员或防火墙系统发出警报。可惜这时灾害往往已经形成。虽然,亡羊补牢,犹未为晚,但是,防卫机制最好应该是在危害形成之前先期起作用。

  随后应运而生的入侵响应系统(IRS:Intrusion Response Systems)作为对入侵检测系统的补充能够在发现入侵时,迅速作出反应,并自动采取阻止措施。而入侵防御系统则作为二者的进一步发展,汲取了二者的长处。

  WAF功能介绍

  WAF全称叫Web Application Firewall,和传统防火墙的区别是,它是工作在应用层的防火墙,主要对web请求/响应进行防护。那么WAF有什么功能呢?

  防火墙都是防御性的产品,有防就有攻,要了解WAF有什么功能,就要从攻击者的角度去思考。

  攻击的目的要么是为了利益,要么是为了炫技。目前攻击者大多都是闷声发大财,很少会为了炫技而惹上麻烦。那么,攻击目标越大,越有价值。

  一个攻击者的目标由大到小,往往是这样 :

  全网

  网络上某一主机

  某一主机的数据库

  某一主机WEB系统的管理员

  某一主机WEB系统其它用户

  假设一个WEB网络大致如下,图中为目前能得到仅有信息,下文会一步步完善。

  WEB服务器与浏览器之间已经用传统防火墙防护起来,也就是说,对http://www.a.com进行端口扫描之类的攻击行为已经没用了。攻击者可以通过下面步骤来得到这个网络的信息:

  1)通过OPTIONS,TRACE方法来探测里面的拓扑。如果webserver支持并允许这两个方法,通过检查响应包的Via或Max-forwards字段,可以得到各个节点的域名。

  2)通过检查响应包的Server字段或X-Powered-By字段来确定各个节点的http服务器软件版本和脚本语言解释器版本。同时由第一步得到的域名,也可以到相应域名注册网站(如站长之家)上查找IP。而且有时候,由于网络管理员的疏忽,通向其它节点的路径并没有禁止端口扫描,那样通过端口扫描,可以得到系统信息,如操作系统类型,版本,开启了什么服务。然后在CVE上查询相应版本漏洞和exploit-db上下载相应的payload来攻击,获取主机的控制权。

  3)如果第二步不奏效,也可以通过HTTP的OPTIONS方法来获取网站支持的方法,比如允许DELETE方法,或者PUT方法,那么攻击者可以上传一个脚本获取整个站点的源代码和数据库数据甚至获取整个站点所有主机的权限,或者把认证的脚本给删除。

  4)如果第三步也不奏效,攻击者可能就会扫描所有网页,看是否存在文件路径遍历,文件包含注入,API注入,命令注入之类的漏洞,来获取整个站点的系统信息甚至获取webshell。

  5)如果第四步也不奏效,继续扫描所有页面,看是否有sql注入的漏洞,看能否获取站点的数据库数据或是否可通过数据库执行系统命令,获取主机权限。

  6)如果第五步也不奏效,只能看有没有XSS,url注入等漏洞,能否骗到其它合法用户的权限。或者看能否上传恶意文件。

  再思考多一点,如果攻击者并没有打算攻陷a.com或从它偷取数据,而是频繁向a.com发送消耗大量资源的请求,比如请求会使用大量数据库查询的接口,或上传大量文件,导致正常服务无法响应。这种方式叫做CC攻击(ChallengeCollapsar)。

  那么,WAF必须具备防护CC攻击能力,也就是说,WAF具备限制对某些URI请求次数的能力和限制文件上传功能的能力。

  从性能角度来看,由于HTTP是应用层的协议,每次WAF都要解析它,会造成很大性能损耗。而对于某些经常发恶意请求的IP或进行CC攻击的IP,如果能够在网络层就把它们拦截了,对WAF性能是有很大的提升。所以WAF还必须具备IP黑名单的能力。

  有黑名单就有白名单,对于某些资源,如图像,影音,css,js文件,WAF对它们应用规则,只会浪费计算资源和降低服务的响应速度,所以,需要把一些资源URL放在白名单里。

  关于IP黑名单,再从安全运维角度来看,如果是IP黑名单是通过手工输入,那么,当攻击者使用IP池攻击,可能会导致IP黑名单的防护攻击失效。那么,如果WAF是支持动态黑名单,就可以很好解决这个问题。如果是由WAF本身产生黑名单,会对WAF性能有很大影响,所以WAF需要能够对接实时计算平台,由实时计算平台产生黑名单回馈给WAF。那么WAF就必须支持与实时计算平台对接的能力。

  总体来说,WAF功能有如下:

  禁止HTTP协议的非安全方法

  伪装Web服务的特征

  防止API和命令注入

  防止路径遍历和文件包含注入,对敏感的系统路径进行保护

  防止sql注入

  防止XSS攻击

  防止网页挂马

  防护CC攻击

  文件上传的防护

  动态IP黑名单

  白名单

  与实时计算平台对接

ips和waf的区别

  

ips和waf的区别

 

  ips和waf的区别在哪里?为了更好的理解两款产品差异性,我们先用这个保镖(WAF)和保安(IPS)比喻来描述。

  大楼保安需要对所有进出大楼人员进行检查,一旦发现可疑人员则禁止他入内,但如果混进“貌似忠良”的坏人去撬保险柜等破坏行为,大楼保安是无能为力的。

  私人保镖则是指高级别、更“贴身”的保护。他通常只保护特定的人员,所以事先需要理解被保护人的身份、习惯、喜好、作息、弱点等,因为被保护人的工作是需要去面对不同的人,去不同的场合,保镖的职责不能因为危险就阻止、改变他的行为,只能去预见可能的风险,然后量身定做合适的保护方案。

  这两种角色的区别在于保安保护的是整个大楼,他不需要也无法知道谁是最需要保护的人,保镖则是明确了被保护对象名单,需要深刻理解被保护人的个性特点。

  图 1.1 保镖和保安

  通过上面的比喻,大家应该明白两者的之所以会感觉相似是因为职责都是去保护,但差异在于职能定位的不同。从技术原理上则会根据定位来实现。下面通过几个层面来分析WAF和IPS的异同。

  事件的时间轴

  对于安全事件的发生,有三个时间点:事前、事中、事后。传统的IPS通常只对事中有效,也就是检查和防护攻击事件,其他两个时间点是WAF独有的。

  图 1.2 事件时间轴

  如上图所示,事前是指能在事件发生之前通过主动扫描检测Web服务器来发现漏洞,通过修复Web服务器漏洞或在前端的防护设备上添加防护规则等积极主动手段来预防事件发生。事后则是指即使Web服务器被攻击了,也必须有网页防篡改功能,让攻击者不能破坏网站数据。

  为什么不能具备事中的100%防护能力?其实从以下几个方面就知道对于事中只能做到相对最佳防护而不能绝对,因为:

  1. 软件先天是有缺陷的,包括应用到第三方的组件和函数库无法控制其安全性;

  2. 应用程序在更新,业务是持续发展的、动态的,如果不持续监控和调整安全策略,也是会有疏漏的;

  3. 攻击者永远在暗处,可以对业务系统跟踪研究,查找漏洞和防护缺陷,用各种变形繁杂的手法来探测,并用于攻击;

  4. 任何防护设备都难以100%做到没有任何缺陷,无论是各种算法还是规则,都是把攻击影响降低到最小化。

  所以需要用一个可闭环又可循环的方式去降低潜在的威胁,对于事中疏漏的攻击,可用事前的预发现和事后的弥补,形成环环相扣的动态安全防护。事前是用扫描方式主动检查网站并把结果形成新的防护规则增加到事中的防护策略中,而事后的防篡改可以保证即使疏漏也让攻击的步伐止于此,不能进一步修改和损坏网站文件,对于要信誉高和完整性的用户来说,这是尤为重要的环节。

  图 1.3 WAF安全闭环

  如果仅仅是对于事件的时间轴有区别,那么还是可以采用其他产品来进行辅助,但关键的是事中的防护也是有深度的差异,那么下面我们来谈谈对于事中的差异。

  事中,也就是实时防护,两者的区别在于一个是纵横度,一个是深度。IPS凸显的优势在于纵横度,也就是对于网络中的所有流量进行监管,它面对的是海量数据,下图的TCP/IP模型中网络流量从物理层到应用层是逐层递交,IPS主要定位在分析传输层和网络层的数据,而再往上则是复杂的各种应用层协议报文,WAF则仅提供对Web应用流量全部层面的监管。

  图 1.4 数据结构图

  监管层面不同,如果面对同样的攻击,比如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等,以及这些关键字的大小写变形和拼接,利用注释逃脱过滤,如下所示例:

  使用大小写混杂的字符 :SeLecT fRom“

  把空格符替换为TAB符或回车符 :select[TAB]from

  关键词之间使用多个空格 :select from

  字符串的数值编码 :0×414141414141 或 0×41004100410041004100

  插入被数据库忽略的注释串 :sel/**/ect fr/**/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支持的部署方式:

  1、 桥模式

  2、 路由模式

  3、反向代理

  4、旁路模式(非串联)

  这两者串联部署在Web服务器前端时,市面上的大多数IPS均采用桥模式,而WAF是采用反向代理模式,IPS需要处理网络中所有的流量,而WAF仅处理与Web应用相关的协议,其他的给予转发,如下图:

  图 1.5 多协议图

  桥模式和反向代理模式的差异在于:桥模式是基于网络层的包转发,基本都没有协议栈,或只能简单的模拟部分协议栈,分析网络报文流量是基于单包的方式,所以要处理分片报文、数据流重组、乱序报文、报文重传、丢包都不具备优势。同时网络流量中包括的协议种类是非常多的,每种应用层协议都有自身独特的协议特征和格式要求,比如Ftp、SSH、Telnet、SMTP等,无法把各种应用流量放到应用层协议栈来处理。

  绿盟科技WAF系统内嵌的协议栈是经过修改和优化的,能完全支持Http应用协议的处理,这意味着必须遵循RFC标准(Internet Requests For Comments)来处理Http报文,包括如下主要RFC:

  ◆ RFC 2616 HTTP协议语法的定义

  ◆ RFC 2396 URL语法的定义

  ◆ RFC 2109 Cookie是怎样工作的

  ◆ 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和IPS的区别

  WAF:web应用防火墙

  定义

  位于OSI的第七层应用层,较为片面,但是有深度

  主要针对的协议为:FTP、HTTP、HTTPS

  IPS:入侵防御系统

  位于OSI的第三层到第七层,比较全面,但是浅

  为了更好的理解两款产品差异性,我们先用这个保镖(WAF)和保安(IPS)比喻来描述。

  大楼保安需要对所有进出大楼人员进行检查,一旦发现可疑人员则禁止他入内,但如果混进“貌似忠良”的坏人去撬保险柜等破坏行为,大楼保安是无能为力的。

  私人保镖则是指高级别、更“贴身”的保护。他通常只保护特定的人员,所以事先需要理解被保护人的身份、习惯、喜好、作息、弱点等,因为被保护人的工作是需要去面对不同的人,去不同的场合,保镖的职责不能因为危险就阻止、改变他的行为,只能去预见可能的风险,然后量身定做合适的保护方案。

  这两种角色的区别在于保安保护的是整个大楼,他不需要也无法知道谁是最需要保护的人,保镖则是明确了被保护对象名单,需要深刻理解被保护人的个性特点。

  IPS凸显的优势在于纵横度,也就是对于网络中的所有流量进行监管,它面对的是海量数据,下图的TCP/IP模型中网络流量从物理层到应用层是逐层递交,IPS主要定位在分析传输层和网络层的数据,而再往上则是复杂的各种应用层协议报文,

  WAF则仅提供对Web应用流量全部层面的监管。

  WAF更多的特性,包括安全交付能力、基于cache的应用加速、挂马检查、抗DDOS攻击、符合PCIDSS的防泄密要求等都表明这是一款不仅能攻击防护,同时又必须在满足客户体验和机密数据防护的高度集成的专业产品。本文仅从产品特征的对比角度来分析了WAF的部分技术原理,但没否定IPS的价值,毕竟两者在部署场景和功能上具有很大差异。

  WAF更多的特性,包括安全交付能力、基于cache的应用加速、挂马检查、抗DDOS攻击、符合PCIDSS的防泄密要求等都表明这是一款不仅能攻击防护,同时又必须在满足客户体验和机密数据防护的高度集成的专业产品。本文仅从产品特征的对比角度来分析了WAF的部分技术原理,但没否定IPS的价值,毕竟两者在部署场景和功能上具有很大差异。

  

ips和waf的功能和区别介绍

 

  关于ips和waf功能介绍以及ips和waf的区别就为大家介绍到这里,篇幅较长,大家观看还需要有点耐心。ips和waf的优点各有区别,但是目前来说waf则更适应目前的主流web应用防护,因此如果是有条件的朋友,不妨两个都选择。

标签: