一、参考链接

http://https://www.cnblogs.com/milantgh/p/3603127.html

1.1 内容

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

这里举事中来说,事中,也就是实时防护,两者的区别在于一个是纵横度,一个是深度。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等,以及这些关键字的大小写变形和拼接,利用注释逃脱过滤,如下示例:

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

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

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

字符串的数值编码:0x414141414141或0x41004100410041004100

插入被数据库忽略的注释串:sel/**/ect fr/**/om select/**/ from

使用数据库支持的一些字符串转换功能:char(65) 或chr(65)

使用数据支持的字符串拼接操作:'sel'+'ect'+'fr'+'om'"、"'sel'||'ect\||'fr'||'om'可以设想一下,如果要检测以上的变形字符后的攻击则需要增加相应的签名特征,但更重要的是要充分考虑转换编码的种类,上面示例的snort的规则把可疑字符以及其转换后的Hex值放入同一条规则里检查,如果对于变形后繁多的攻击种类,这是滞后的并且会造成臃肿。

对于比较粗浅的攻击方式两者都能防护,但市面上大多数IPS是无法对报文编码做多重转换的,所以这将导致攻击者只需构建诸如转换编码、拼接攻击语句、大小写变换等数据包就可绕过输入检查而直接提交给应用程序。而这恰恰是WAF的优势,能对不同的编码方式做强制多重转换还原成攻击明文,把变形后的字符组合后再分析。

IPS和WAF通常是串联部署在Web服务器前端,对于服务器和客户端都是透明的,不需要做任何配置,似乎都是一样的组网方式,其实有很大差异。首先我们看看市面主流WAF支持的部署方式:

a.桥模式        b.路由模式         c.反向代理         4.旁路模式(非串联)

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

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

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

a.RFC 2616 HTTP协议语法的定义        b.RFC 2396 URL语法的定义         c.RFC 2109 Cookie是怎样工作的     d.RFC 1867 HTTP如何POST,以及POST的格式

RFC中对http的request行长度、URL长度、协议名称长度、头部值长度等都是有严格要求的,以及传输顺序和应用格式,比如html参数的要求、Cookie的版本和格式、文件上传的编码 multipart/form-data encoding等,这些应用层内容只能在具有完整应用层协议栈的前提下才可正确识别和控制,对于不完整的丢包,重传包以及伪造的畸形包都会通过协议校验机制来处理。

WAF对https的加解密和多重编码方式的解码正是由于报文必须经过应用层协议处理。IPS由于其自身的桥模式架构,把HTTP会话"打碎"成多个数据包在网络层分析,而不能完整地从应用层角度来处理和组合多个报文,并且应用层协议繁多,全部去支持也是不现实的,产品的定位并不需要这样。

在前面谈到IPS的安全模式是应用了静态签名的被动模式,那么反之就是主动模式。WAF的防御模式是两者都支持的,所谓主动模式在于WAF是一个有效验证输入的设备,所有数据流都被校验后再转发给服务器,能增加应用层逻辑组合的规则,更重要的是具备对Web应用程序的主动学习功能。

学习功能包括:

a)监控和学习进出的Web流量,学习链接参数类型和长度、form参数类型和长度等;

b)爬虫功能,爬虫主动去分析整个Web站点,并建立正常状态模型;

c)扫描功能,主动去扫描并根据结果生成防护规则。

基于学习的主动模式目的是为了建立一个安全防护模型,一旦行为有差异则可以发现,比如隐藏的表单、限制型的Listbox值是否被篡改、输入的参数类型不合法等,这样在面对多变的攻击手法和未知的攻击类型时能依靠安全防护模型动态调整防护策略。

WAF更多的特性,包括安全交付能力、基于cache的应用加速、挂马检查、防DDOS攻击、符合PCIDSS的防泄密要求等都表明这是一款不仅能攻击防护,同时又必须在满足客户体验和机密数据防护的高度集成的专业产品。

读WAF与IPS的区别总结之摘抄相关推荐

  1. WAF和IPS的区别

    WAF和IPS的区别 WAF:web应用防火墙 定义 位于OSI的第七层应用层,较为片面,但是有深度 主要针对的协议为:FTP.HTTP.HTTPS IPS:网络***防御系统 位于OSI的第三层到第 ...

  2. WAF与IPS的区别总结

    谁是最佳选择? Web应用防护无疑是一个热门话题.由于技术的发展成熟和人们对便利性的期望越来越高,Web应用成为主流的业务系统载体.在Web上"安家"的关键业务系统中蕴藏的数据价值 ...

  3. WAF与IPS的区别

    简要区别: 就功能上讲,WAF与IPS在Web攻击的防御类型上,极其相似,比如SQL注入.XSS攻击等. 但防御方式上还是有区别的,IPS的防御机制主要还是依赖于特征库,特征库强大与否,直接决定了防御 ...

  4. raid读写速度对比_[转载]各个raid对比:性能和运行速度和读写方面(RAID1读和单个磁盘无区别)...

    肯定是RAID5比较好:数据读取方面,RAID1最快:数据安全方面,RAID1最好:数据写入方面,RAID0最快.RAID5兼备这些优点. 认识磁盘阵列 RAID 一.功能 1 对磁盘高速存取(提速) ...

  5. 防火墙、WAF、IPS、IDS、堡垒机的区别

    防火墙: NAT.访问控制.服务器负载均衡.基础的功能是策略控制流入流出IP及端口.nat.端口映射.防火墙定义也较为模糊,多带有集成功能:目前,世面上购买的防火墙大多也带有IPS功能或服务(兼顾功能 ...

  6. IDS与IPS的区别(HIDS、NIDS)

    IDS (入侵检测系统) IDS是英文"Intrusion Detection Systems"的缩写,中文意思是"入侵检测系统".专业上讲就是依照一定的安全策 ...

  7. 幻读与不可重复读区别

    不可重复读与幻读比较相似,都是在一个事务中多次读取到不同的数据.网络上的总结如下 不可重复读:所谓的虚读,也就是大家经常说的不可重复读,是指在数据库访问中,一个事务范围内两个相同的查询却返回了不同数据 ...

  8. IDS与IPS的区别

    IDS (入侵检测系统) IDS是英文"Intrusion Detection Systems"的缩写,中文意思是"入侵检测系统".专业上讲就是依照一定的安全策 ...

  9. python 读帧和绘图的区别

    capture = cv2.VideoCapture(0) while True: #img = cv.QueryFrame(capture) ret, frame = capture.read() ...

最新文章

  1. JavaScript 中的原型原来是这样的
  2. 2022年全球及中国智慧消防栓行业与十四五投资建议与竞争策略研究报告
  3. kettle对字符串去除空格_整理|ABAP基础知识二:常用字符串处理
  4. 【推荐系统】基于知识图谱的推荐系统总结
  5. python使用telnet远程连接linux系统读取信息_Linux服务笔记之一:Telnet 远程登录
  6. 监控三剑客<cacti、nagios、zabbix>
  7. 手推公式+项目实操复现!《机器学习》完整详解
  8. 彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法
  9. Mac 环境下labelImg标注工具的安装
  10. android timepicker 固定样式,android-如何设置格式为24h的TimePicker显示
  11. lte tm模式_LTE的几种模式介绍
  12. 超级警探大战悍匪2java_Java笔记一
  13. FineCMS任意头像上传漏洞复现:文件的四次上传
  14. php 执行opcode,PHP编译原理之Opcode ( Operation Code ) PHP代码执行过程
  15. 2021年大厂iOS 面试题 - 前篇
  16. word2003和word2007如何添加和删除脚注
  17. 服务器证书已过期,WebSphere应用服务器证书过期问题解决
  18. 数据异常检测方法以及实际应用
  19. 工控服务器性能指标,5点弄懂工控机内存条
  20. 程序员要怎样学习英语?

热门文章

  1. MySQL(二)数据的检索和过滤
  2. PAT甲级 -- 1079 Total Sales of Supply Chain (25 分)
  3. 【简便代码】1082 射击比赛 (20分)_17行代码AC
  4. 【Mark 常用方法】Html中<form>标签作用和属性详解
  5. HashMap中hash函数怎么是实现的?
  6. linux降内核版本_ubuntu16.04降级内核版本至3.13.0-85
  7. Web应用_Tomcat部署及优化
  8. shell脚本详解(二)——条件测试、if语句和case分支语句
  9. STM32 map文件解析
  10. Java字节序,java整型数与网络字节序 byte[] 数组转换关系(ByteArrayOutputStream用法)