Web安全---Web防火墙与挂马检查
Jack zhai
 
1、 Web防火墙产品:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
防止网页被篡改与审计恢复都是被动的,能阻断***行为才是主动型的,前边提到的IPS/UTM等产品是安全通用的网关,也有专门针对Web的硬件安全网关,国内的如:绿盟的Web防火墙,启明的WIPS(web IPS),国外的有imperva的WAF(Web Application Firewall)等。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
Web防火墙,主要是对Web特有***方式的加强防护,如DDOS防护、SQL注入、XML注入、XSS等。由于是应用层而非网络层的***,从技术角度都应该称为Web IPS,而不是Web防火墙。这里之所以叫做Web防火墙,是因为大家比较好理解,业界流行的称呼而已。由于重点是防SQL注入,也有人称为SQL防火墙。
Web防火墙产品部署在Web服务器的前面,串行接入,不仅在硬件性能上要求高,而且不能影响Web服务,所以HA功能、Bypass功能都是必须的,而且还要与负载均衡、Web Cache等Web服务器前的常见的产品协调部署。
Web防火墙的主要技术的对***的检测能力,尤其是对Web服务***的检测,不同的厂家技术差别很大,不能以厂家特征库大小来衡量,主要的还是看测试效果,从厂家技术特点来说,有下面几种方式:
Ø  代理服务:代理方式本身就是一种安全网关,基于会话的双向代理,中断了用户与服务器的直接连接,适用于各种加密协议,这也是Web的Cache应用中最常用的技术。代理方式防止了***者的直接进入,对DDOS***可以抑制,对非预料的“特别”行为也有所抑制。Netcontinuum(梭子鱼)公司的WAF就是这种技术的代表。
Ø  特征识别:识别出***者是防护他的前提。特征就是***者的“指纹”,如缓冲区溢出时的Shellcode,SQL注入中常见的“真表达(1=1)”…应用信息没有“标准”,但每个软件、行为都有自己的特有属性,病毒与蠕虫的识别就采用此方式,麻烦的就是每种***都自己的特征,数量比较庞大,多了也容易相象,误报的可能性也大。虽然目前恶意代码的特征指数型地增长,安全界声言要淘汰此项技术,但目前应用层的识别还没有特别好的方式。
Ø  算法识别:特征识别有缺点,人们在寻求新的方式。对***类型进行归类,相同类的特征进行模式化,不再是单个特征的比较,算法识别有些类似模式识别,但对***方式依赖性很强,如SQL注入、DDOS、XSS等都开发了相应的识别算法。算法识别是进行语义理解,而不是靠“长相”识别。
Ø  模式匹配:是IDS中“古老”的技术,把***行为归纳成一定模式,匹配后能确定是***行为,当然模式的定义有很深的学问,各厂家都隐秘为“专利”。协议模式是其中简单的,是按标准协议的规程来定义模式;行为模式就复杂一些,
Web防火墙最大的挑战是识别率,这并不是一个容易测量的指标,因为漏网进去的***者,并非都大肆张扬,比如给网页挂马,你很难察觉进来的是那一个,不知道当然也无法统计。对于已知的***方式,可以谈识别率;对未知的***方式,你也只好等他自己“跳”出来才知道。
“自学习”功能的发展
Imperva公司的WAF产品在提供***防护的同时,还提供了另外一个安全防护技术,就是对Web应用网页的自动学习功能,由于不同的网站不可能一样,所以网站自身页面的特性没有办法提前定义,所以imperva采用设备自动预学习方式,从而总结出本网站的页面的特点。具体的做法是这样的:
通过一段时间的用户访问,WAF记录了常用网页的访问模式,如一个网页中有几个输入点,输入的是什么类型的内容,通常情况的长度是多少…学习完毕后,定义出一个网页的正常使用模式,当今后有用户突破了这个模式,如一般的帐号输入不应该有特殊字符,而XML注入时需要有“<”之类的语言标记,WAF就会根据你预先定义的方式预警或阻断;再如密码长度一般不超过20位,在SQL注入时加入代码会很长,同样突破了网页访问的模式。
网页自学习技术,从Web服务自身的业务特定角度入手,不符合我的常规就是异常的,也是***检测技术的一种,比起单纯的Web防火墙来,不仅给***者下“通缉令”,而且建立进入自家的内部“规矩”,这种双方向的控制,显然比单向的要好。
Citrix公司收购了Teros后,推出的应用防火墙通过分析双向流量来学习Web服务的用户行为模式,建立了若干用户行为模型,一但匹配上你是某个行为,就按该模式行为去衡量你的行为做法,有“越轨”企图立即给予阻断。这个自适应学习引擎与Imperva公司的网页自学习有些类似,不过一个重点是学习网页特点,一个是学习用户访问的规律。
从安全角度来说,网页自学习技术与***防护结合使用,是理想的选择。
“黑白名单”功能的使用
“黑名单”是明确需要阻断的访问者,一般来说是有过不良记录的外部访问者,或者名声狼籍的人;“白名单”是需要无条件信任的访问者。该技术在互联网审计产品中常用。后来,由于***者可以采用代理服务器,IP地址不断变化;僵尸网络的“肉鸡”也可能是实际用户,采用封锁IP的方式也越来越不是办法。但是内网的Web服务就不同了,由于的内部业务的用户是 “可预知”的,办公室电脑的IP也是可以固定的,所以白名单技术在WEB防护上开始大量使用,若与身份认证系统连起来,还可以对用户网卡的MAC地址一起绑定,抗欺骗、冒充的能力更为强一些。
很多Web防火墙包含了黑白名单的功能,该功能的使用效果依赖于用户维护安全策略的动态更新,需要运维人员“比较勤快”,尤其是黑名单的维护需要动态跟踪网络访问者的情况,所以真正能用好该方法的不是很多。
Web防火墙的未来出路:
有一种说法:因为Web服务器前的负载均衡设备、Web 加速设备是不可缺少的,又是Web服务器群的出口必经之路,所以Web防火墙的功能有可能与这些设备合并。这种发展趋势有些象网关UTM与单独的FW、IPS、AV、***等设备进化发展一样,UTM就是这些网关的集成产品。
但我有一个不同的看法:UTM部署于网络的外连接出口,一般是互联网出口,其网络安全隔离作用,这里的带宽价格昂贵,所以拥有大带宽的用户很有限,而Web服务器群是与网络主交换机连接的,提供的是应用处理能力,要求的参数常是并发用户的数量与在线用户的数量,服务器一般都是千兆接口,目前的交换机就可达到几十个TB的交换能力,在大流量链路上做多功能集成的安全产品,又是应用层的检测,对产品的硬件压力是巨大的,能达到“线速”流量的产品一定价格昂贵,因此Web防火墙的这种合并思路是有待商榷的。
2、 Web***检查工具:
Web安全不仅是维护网站自己安全,通过网站***用户电脑的危害也十分棘手。网页容易被挂上***,或被XSS***利用,是否有工具可以对所有的网页进行安全检查呢?这里用到了“爬虫”技术。
“爬虫”技术最早是搜索引擎“发明”的,搜索网站放出N个小“爬虫”,在世界各地的网站上循环扫描,收集网站上的新信息,建立供世界人民查找的数据库,这样大家就可以从Google、百度等搜索门户上搜到你想要的任何东东。由于“爬虫”来自网站外部,可以模拟用户打开网站的实际效果,所以“爬虫”很快被网站用来测试自身性能的“用户体验”工具,比如网页打开的速度,用户互动的等待时间等。作为用户体验工具,“爬虫”很快也在企业内部网络上开始流行,关注用户感受,是08年开始IT领域内最流行的开发理念。
所谓“爬虫”就是这样一些进程,按照一定的规则(横向优先搜索、纵向优先搜索),将网站上所有的页面扫描一遍,(你知道很多网站的点击率飞涨的原因了吧,是有无数的小爬虫在工作…),在对网页上关心的事情进行检查。由于是以用户的身份“浏览”网页,所以没有静态与动态页面的差别。Web***检查工具就是基于这个原理开发的,不同于搜索爬虫的是,在网页检查时,重点查看网页是否被挂***,或被XSS利用。因为网站内的URL链接去向应该可追溯的,所以对XSS的检查是很有效的。(“爬虫”有些象网页防篡改的文件检查进程是吧,不过一个是在Web服务器的内部,另一个是在web服务器的外部)
Web***检查工具一般作为安全服务检查使用,也可以单独部署一台服务器,定期对网站检查,发现问题及时报警。该工具目前市场上产品化的还很少,一般是非销售的,也有些免费的类似软件可以试用,随着Web服务在企业内的应用增多,该工具可能会象防病毒检查工具一样流行。

Web安全(下)---主动类安全产品技术分析相关推荐

  1. java超线程_超线程多核心下Java多线程编程技术分析

    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述超线程多核心下Java多线程编程技术分析,更多Java专业知识,广州疯狂 ...

  2. Google Test(GTest)使用方法和源码解析——模板类测试技术分析和应用

    写C++难免会遇到模板问题,如果要针对一个模板类进行测试,似乎之前博文中介绍的方式只能傻乎乎的一个一个特化类型后再进行测试.其实GTest提供了两种测试模板类的方法,本文我们将介绍方法的使用,并分析其 ...

  3. 正大国际期货:外盘期货交易中常见的五类技术分析方法

    外盘期货交易中,技术分析是必不可少的,技术分析是指以市场行为为研究对象,以判断市场趋势并跟随趋势的周期性变化来进行一切金融衍生物交易决策的方法的总和.常用的技术方法大体上可以分五大类:指标类.切线类. ...

  4. Linux内存技术分析(下)

    Linux内存技术分析(下) 五. 内存使用场景 out of memory 的时代过去了吗?no,内存再充足也不可任性使用. 1.内存的使用场景 · page管理 · slab(kmalloc.内存 ...

  5. web技术分析| 一篇前端图像处理秘籍

    在短视频和直播带货霸占了流量铁王座的当下,产品之间的竞争十分激烈,在抖音短视频问世以来,随其后效仿的产品也不计其数.产品要想脱引而出,仅靠画质和流畅度是很难取胜的,不仅要节省流量开支同时还要保证画质的 ...

  6. 基于Java技术的Web环境下分布式数据库互操作性的实现

                作者:李炽明 莫倩 徐明 1 JDBC工作原理 JDBC(Java Database Connectivity)是1个Sun公司注册了的商标,代表用来执行SQL语句的Java语 ...

  7. 金针探底技术分析(下)

    上篇文章介绍了如何利用程序获取具有长下影线的股票,本文就利用历史数据实战一下,这里选择4月27的数据进行分析,这一天上证.深证.创业板都走了下影线,可以选出更多的股票.距离现在快过去三个月了,也算是个 ...

  8. 下拉 html 实现原理,百度搜索下拉框实现技术原理分析

    问:百度搜索下拉框关键词是怎么来的,下拉框实现技术原理分析一下. 来自百度站长平台的站长回答: 对于词的研究,想必每个seoer都知道,而除了比较热门的百度相关搜索词之外,百度下拉框关键词应该也是不少 ...

  9. 软件方法(下)第8章分析之分析类图—知识篇Part09-审查类和属性1

    可到此处下载<软件方法>(下)目前公开的最新pdf版本: http://www.umlchina.com/book/softmeth2.pdf 8.2.5 审查类和属性 8.2.5.1 属 ...

最新文章

  1. 【随笔】游戏程序开发必知的10大基础实用算法及其讲解
  2. 【网络安全】ollvm反混淆学习
  3. madagascar 软件安装方法
  4. CF917D-Stranger Trees【矩阵树定理,高斯消元】
  5. MySQL 汉字转拼音
  6. java getselectedrow_Java Swing实现展示数据,以及过滤排序
  7. Linux用户管理命令详解,useradd、passwd
  8. 机器学习交易——如何使用回归预测股票价格?【翻译】
  9. LKT系列加密芯片DES加解密以及OpenSSL DES接口实现加解密
  10. 导航猫(NaviCat for MySql)建立表的方法
  11. C++ 在dynamic_castlt;gt;用法
  12. nginx 502错误原因及解决办法
  13. H5中的video标签使用
  14. SkyWalking8.7源码解析(三):静态方法插桩、构造器和实例方法插桩、插件拦截器加载流程、JDK类库插件工作原理
  15. 学做一点吃食烤面包虾粥
  16. Raft 共识算法3-日志复制
  17. C盘清理-我的C盘莫名其妙就满了?
  18. selenium.common.exceptions.WebDriverException: Message: unable to set
  19. plink做SNP筛选和GWAS
  20. Cesium中地形数据的加载

热门文章

  1. Collections.binarySearch用法
  2. Java 将字符串转换为字符数组 toCharArray()
  3. python3 重新学习
  4. 设计模式——设计模式之禅day1
  5. Java Web学习(四)http协议
  6. 五大经典算法之动态规划
  7. MySql开启远程访问(Linux)
  8. 如何做个好员工(转载)
  9. userdel account is currently in use
  10. 原来还有这样一个东西,重来不知道过-linux ,ulimit