Web安全---Web防火墙与挂马检查
Jack zhai
 
1、 Web防火墙产品:
防止网页被篡改与审计恢复都是被动的,能阻断***行为才是主动型的,前边提到的IPS/UTM等产品是安全通用的网关,也有专门针对Web的硬件安全网关,国内的如:绿盟的Web防火墙,启明的WIPS(web IPS),国外的有impervaWAF(Web Application Firewall)等。
Web安全(下)---主动类安全产品技术分析_第1张图片
Web防火墙,主要是对Web特有***方式的加强防护,如DDOS防护、SQL注入、XML注入、XSS等。由于是应用层而非网络层的***,从技术角度都应该称为Web IPS,而不是Web防火墙。这里之所以叫做Web防火墙,是因为大家比较好理解,业界流行的称呼而已。由于重点是防SQL注入,也有人称为SQL防火墙。
Web防火墙产品部署在Web服务器的前面,串行接入,不仅在硬件性能上要求高,而且不能影响Web服务,所以HA功能、Bypass功能都是必须的,而且还要与负载均衡、Web CacheWeb服务器前的常见的产品协调部署。
Web防火墙的主要技术的对***的检测能力,尤其是对Web服务***的检测,不同的厂家技术差别很大,不能以厂家特征库大小来衡量,主要的还是看测试效果,从厂家技术特点来说,有下面几种方式:
Ø  代理服务:代理方式本身就是一种安全网关,基于会话的双向代理,中断了用户与服务器的直接连接,适用于各种加密协议,这也是WebCache应用中最常用的技术。代理方式防止了***者的直接进入,对DDOS***可以抑制,对非预料的“特别”行为也有所抑制。Netcontinuum(梭子鱼)公司的WAF就是这种技术的代表。
Ø  特征识别:识别出***者是防护他的前提。特征就是***者的“指纹”,如缓冲区溢出时的ShellcodeSQL注入中常见的“真表达(1=1)应用信息没有“标准”,但每个软件、行为都有自己的特有属性,病毒与蠕虫的识别就采用此方式,麻烦的就是每种***都自己的特征,数量比较庞大,多了也容易相象,误报的可能性也大。虽然目前恶意代码的特征指数型地增长,安全界声言要淘汰此项技术,但目前应用层的识别还没有特别好的方式。
Ø  算法识别:特征识别有缺点,人们在寻求新的方式。对***类型进行归类,相同类的特征进行模式化,不再是单个特征的比较,算法识别有些类似模式识别,但对***方式依赖性很强,如SQL注入、DDOSXSS等都开发了相应的识别算法。算法识别是进行语义理解,而不是靠“长相”识别。
Ø  模式匹配:是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与单独的FWIPSAV×××等设备进化发展一样,UTM就是这些网关的集成产品。
但我有一个不同的看法:UTM部署于网络的外连接出口,一般是互联网出口,其网络安全隔离作用,这里的带宽价格昂贵,所以拥有大带宽的用户很有限,而Web服务器群是与网络主交换机连接的,提供的是应用处理能力,要求的参数常是并发用户的数量与在线用户的数量,服务器一般都是千兆接口,目前的交换机就可达到几十个TB的交换能力,在大流量链路上做多功能集成的安全产品,又是应用层的检测,对产品的硬件压力是巨大的,能达到“线速”流量的产品一定价格昂贵,因此Web防火墙的这种合并思路是有待商榷的。
 
2、 Web***检查工具:
Web安全不仅是维护网站自己安全,通过网站***用户电脑的危害也十分棘手。网页容易被挂上***,或被XSS***利用,是否有工具可以对所有的网页进行安全检查呢?这里用到了“爬虫”技术。
“爬虫”技术最早是搜索引擎“发明”的,搜索网站放出N个小“爬虫”,在世界各地的网站上循环扫描,收集网站上的新信息,建立供世界人民查找的数据库,这样大家就可以从Google、百度等搜索门户上搜到你想要的任何东东。由于“爬虫”来自网站外部,可以模拟用户打开网站的实际效果,所以“爬虫”很快被网站用来测试自身性能的“用户体验”工具,比如网页打开的速度,用户互动的等待时间等。作为用户体验工具,“爬虫”很快也在企业内部网络上开始流行,关注用户感受,是08年开始IT领域内最流行的开发理念。
所谓“爬虫”就是这样一些进程,按照一定的规则(横向优先搜索、纵向优先搜索),将网站上所有的页面扫描一遍,(你知道很多网站的点击率飞涨的原因了吧,是有无数的小爬虫在工作…),在对网页上关心的事情进行检查。由于是以用户的身份“浏览”网页,所以没有静态与动态页面的差别。Web***检查工具就是基于这个原理开发的,不同于搜索爬虫的是,在网页检查时,重点查看网页是否被挂***,或被XSS利用。因为网站内的URL链接去向应该可追溯的,所以对XSS的检查是很有效的。(“爬虫”有些象网页防篡改的文件检查进程是吧,不过一个是在Web服务器的内部,另一个是在web服务器的外部)
Web***检查工具一般作为安全服务检查使用,也可以单独部署一台服务器,定期对网站检查,发现问题及时报警。该工具目前市场上产品化的还很少,一般是非销售的,也有些免费的类似软件可以试用,随着Web服务在企业内的应用增多,该工具可能会象防病毒检查工具一样流行。