战胜牛皮癣全球震惊 哮喘支气管新药问世 视频:日本美少女写真
 
使用防火墙封阻应用攻击的八项技术
2006-12-26 14:44:41  赛迪网  hacker  

   

你已经决心下大力气搞好应用安全吗?毕竟,例如金融交易、信用卡号码、机密资料、用户档案等信息,对于企业来说太重要了。不过这些应用实在太庞大、太复杂了,最困难的就是,这些应用在通过网络防火墙上的端口80(主要用于HTTP)和端口443(用于SSL)长驱直入的攻击面前暴露无遗。这时防火墙可以派上用场,应用防火墙发现及封阻应用攻击所采用的八项技术如下:深度数据包处理

深度数据包处理有时被称为深度数据包检测或者语义检测,它就是把多个数据包关联到一个数据流当中,在寻找攻击异常行为的同时,保持整个数据流的状态。深度数据包处理要求以极高的速度分析、检测及重新组装应用流量,以避免给应用带来时延。下面每一种技术代表深度数据包处理的不同级别。

TCP/IP终止

应用层攻击涉及多种数据包,并且常常涉及多种请求,即不同的数据流。流量分析系统要发挥功效,就必须在用户与应用保持互动的整个会话期间,能够检测数据包和请求,以寻找攻击行为。至少,这需要能够终止传输层协议,并且在整个数据流而不是仅仅在单个数据包中寻找恶意模式。

SSL终止

如今,几乎所有的安全应用都使用HTTPS确保通信的保密性。然而,SSL数据流采用了端到端加密,因而对被动探测器如入侵检测系统(IDS)产品来说是不透明的。为了阻止恶意流量,应用防火墙必须终止SSL,对数据流进行解码,以便检查明文格式的流量。这是保护应用流量的最起码要求。如果你的安全策略不允许敏感信息在未加密的前提下通过网络传输,你就需要在流量发送到Web服务器之前重新进行加密的解决方案。

URL过滤

一旦应用流量呈明文格式,就必须检测HTTP请求的URL部分,寻找恶意攻击的迹象,譬如可疑的统一代码编码(unicode encoding)。对URL过滤采用基于特征的方案,仅仅寻找匹配定期更新的特征、过滤掉与已知攻击如红色代码和尼姆达有关的URL,这是远远不够的。这就需要一种方案不仅能检查RUL,还能检查请求的其余部分。其实,如果把应用响应考虑进来,可以大大提高检测攻击的准确性。虽然URL过滤是一项重要的操作,可以阻止通常的脚本少年类型的攻击,但无力抵御大部分的应用层漏洞。

请求分析

全面的请求分析技术比单单采用URL过滤来得有效,可以防止Web服务器层的跨站脚本执行(cross-site scripting)漏洞和其它漏洞。全面的请求分析使URL过滤更进了一步:可以确保请求符合要求、遵守标准的HTTP规范,同时确保单个的请求部分在合理的大小限制范围之内。这项技术对防止缓冲器溢出攻击非常有效。然而,请求分析仍是一项无状态技术。它只能检测当前请求。正如我们所知道的那样,记住以前的行为能够获得极有意义的分析,同时获得更深层的保护。

用户会话跟踪

更先进的下一个技术就是用户会话跟踪。这是应用流量状态检测技术的最基本部分:跟踪用户会话,把单个用户的行为关联起来。这项功能通常借助于通过URL重写(URL rewriting)来使用会话信息块加以实现。只要跟踪单个用户的请求,就能够对信息块实行极其严格的检查。这样就能有效防御会话劫持(session-hijacking)及信息块中毒(cookie-poisoning)类型的漏洞。有效的会话跟踪不仅能够跟踪应用防火墙创建的信息块,还能对应用生成的信息块进行数字签名,以保护这些信息块不被人篡改。这需要能够跟踪每个请求的响应,并从中提取信息块信息。

响应模式匹配

响应模式匹配为应用提供了更全面的保护:它不仅检查提交至Web服务器的请求,还检查Web服务器生成的响应。它能极其有效地防止网站受毁损,或者更确切地说,防止已毁损网站被浏览。对响应里面的模式进行匹配相当于在请求端对URL进行过滤。响应模式匹配分三个级别。防毁损工作由应用防火墙来进行,它对站点上的静态内容进行数字签名。如果发现内容离开Web服务器后出现了改动,防火墙就会用原始内容取代已毁损页面。至于对付敏感信息泄露方面,应用防火墙会监控响应,寻找可能表明服务器有问题的模式,譬如一长串Java异常符。如果发现这类模式,防火墙就会把它们从响应当中剔除,或者干脆封阻响应。

采用“停走”字(‘stop and go’word)的方案会寻找必须出现或不得出现在应用生成的响应里面的预定义通用模式。譬如说,可以要求应用提供的每个页面都要有版权声明。

行为建模

行为建模有时称为积极的安全模型或“白名单”(white list)安全,它是唯一能够防御最棘手的应用漏洞——零时间漏洞的保护机制。零时间漏洞是指未写入文档或“还不知道”的攻击。对付这类攻击的唯一机制就是只允许已知是良好行为的行为,其它行为一律禁止。这项技术要求对应用行为进行建模,这反过来就要求全面分析提交至应用的每个请求的每次响应,目的在于识别页面上的行为元素,譬如表单域、按钮和超文本链接。这种级别的分析可以发现恶意表单域及隐藏表单域操纵类型的漏洞,同时对允许用户访问的URL实行极其严格的监控。行为建模是唯一能够有效对付全部16种应用漏洞的技术。行为建模是一种很好的概念,但其功效往往受到自身严格性的限制。

某些情况譬如大量使用JavaScript或者应用故意偏离行为模型都会导致行为建模犯错,从而引发误报,拒绝合理用户访问应用。行为建模要发挥作用,就需要一定程度的人为干预,以提高安全模型的准确性。行为自动预测又叫规则自动生成或应用学习,严格说来不是流量检测技术,而是一种元检测(meta-inspection)技术,它能够分析流量、建立行为模型,并且借助于各种关联技术生成应用于行为模型的一套规则,以提高精确度。行为建模的优点在于短时间学习应用之后能够自动配置。保护端口80是安全人员面临的最重大也是最重要的挑战之一。所幸的是,如今已出现了解决这一问题的创新方案,而且在不断完善。如果在分层安全基础设施里面集成了能够封阻16类应用漏洞的应用防火墙,你就可以解决应用安全这一难题。


下一篇:有效防病毒的方法 杀毒软件使用技巧
21CN.COM - 女性频道
  今日关注 时尚手机 | 玩转数码 | 色友天堂 | 趣味下载  
韩国CG作品赏
怪异的笔记本
碉楼
旧梦重温
智能娱乐皇
美女壁纸下载
本文关键字:   
藏药七十味巧治中风偏瘫 非手术治疗胆囊息肉 老婆口述:老公早泄怎么办?
老公:阳痿早泄怎么办 疱疹、湿疣病毒也会变异!! 脱发、生发两个头痛话题
得了疱疹、湿疣,别滥用药!! 两性-视频:18岁以下勿点 红斑狼疮,狼疮肾炎治愈有方!
金属男人专属强机 2500元经济DC 热门笔记本精彩导购 游戏影音PC导购
 [手机] 焦点提前揭密 国庆卖得最红火手机  [本本一族] 6999至9999元 主流游戏本横评
 [手机] 体验浪漫 魅力纯美白色手机导购  [PC地带] 直击主流 800元级别965主板点评
 [数码] 降到7XX!aigo视频E858/E868再降200  [下载] 连连看 V3.9 0710 简体中文完全版
 [数码] 独家呈现 尼康D80试拍诱惑泳装MM  [下载] 多媒体插件:速配歌词 2006 独立版
 [软件] Photoshop实例:制作面部护肤化妆品  [软件] 2006韩国插画名师各类风格插画大赏
  新闻论坛     社会热点    网友贴图    图片故事     型男索女     图看天下
 
 
·专家称蜂蜜治伤疗效佳 ·心脏病会使人精神抑郁 ·五理由拒绝美黑! ·如何让皮肤更光嫩?
·小调味品包含大健康! ·乱吃补药小心肝坏死 ·夏日巧饮健康茶! ·轻松消除将军肚的方法
·夏季健身提防热疾病! ·搓身体8处强身健体! ·夏季腹泻4种常用药 ·注意人体的五大保健区
·提醒:蜂蜜滋养要得法 ·夏季祛痘忌日晒! ·腰突症的认识误区 ·怕冷请您别喝夏桑菊

经营许可证编号:粤ICP证010001

世纪龙信息网络有限责任公司版权所有 服务声明


扴D挩s?/title> <style type="text/stylesheet"> <!-- form{ margin:0; padding:0; } --> </style> </head> <body> <link href="/css/style.css" rel="stylesheet" type="text/css"> <script language="JavaScript" src="/js/comm.js"></script> <script language="javascript"> window.status='SM(7:iter'; </script> <script language="javascript" type=""> function beforeSub1() { var oType = document.all.item("typeID"); oType[0].value = oType[1].value; } function beforeSub2() { var oTemplateID = document.all.item("templateID"); if (oTemplateID.options[oTemplateID.selectedIndex].value == "-1") { alert("鱄 ?"); return false; } else { return true; } } function beforeSub3(actValue) { var oAction = document.all.item("actionType"); oAction.value = actValue; } </script> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="conListV"> <form name="templateForm" method="post" action="/publish/saveTemplate.do" enctype="multipart/form-data" onSubmit="javascript:beforeSub1();"> <tr> <td width="100">丐!</td> <td> </td> </tr> <tr> <td width="100" align="center"><input type="checkbox" name="isDefault1" value="1"></td> <td align="left"> <input type="file" name="template1" value=""> <select name="templateType1"><option value="0">杣</option> <option value="1">hu</option> <option value="2">吂u</option> <option value="3">lq杣</option> <option value="4">lqhu</option> <option value="5">lq吂u</option></select> </td> </tr> <tr> <td width="100" align="center"><input type="checkbox" name="isDefault2" value="1"></td> <td align="left"> <input type="file" name="template2" value=""> <select name="templateType2"><option value="0">杣</option> <option value="1">hu</option> <option value="2">吂u</option> <option value="3">lq杣</option> <option value="4">lqhu</option> <option value="5">lq吂u</option></select> </td> </tr> <tr> <td width="100" align="center"><input type="checkbox" name="isDefault3" value="1"></td> <td align="left"> <input type="file" name="template3" value=""> <select name="templateType3"><option value="0">杣</option> <option value="1">hu</option> <option value="2">吂u</option> <option value="3">lq杣</option> <option value="4">lqhu</option> <option value="5">lq吂u</option></select> </td> </tr> <tr> <td width="100" align="center"><input type="checkbox" name="isDefault4" value="1"></td> <td align="left"> <input type="file" name="template4" value=""> <select name="templateType4"><option value="0">杣</option> <option value="1">hu</option> <option value="2">吂u</option> <option value="3">lq杣</option> <option value="4">lqhu</option> <option value="5">lq吂u</option></select> </td> </tr> <tr> <td width="100" align="center"><input type="checkbox" name="isDefault5" value="1"></td> <td align="left"> <input type="file" name="template5" value=""> <select name="templateType5"><option value="0">杣</option> <option value="1">hu</option> <option value="2">吂u</option> <option value="3">lq杣</option> <option value="4">lqhu</option> <option value="5">lq吂u</option></select> <input type="hidden" name="typeID" value=""> <input type="submit" value=" "> </td> </tr> </form> <form name="templateListForm" method="post" action="/publish/handleTemplate.do" onSubmit="javascript:return beforeSub2();"> <tr> <td colspan="2"> <select name="templateID"><option value="-1">??/option> <option value="1587540">杣--index-it-060809.htm(丐)</option> <option value="1544224">lq吂u--article_it_060626.html(丐)</option> <option value="1193533">lqhu--publiclist050614.htm(丐)</option></select> <input type="hidden" name="actionType" value=""> <input type="hidden" name="typeID" value="3600"> <input type="submit" value=" }" onClick="javascript:beforeSub3('1');"> <input type="submit" value="緉丐" onClick="javascript:beforeSub3('2');"> <input type="submit" value=" d" onClick="javascript:beforeSub3('3');"> </td> </tr> </form> </table> </body> </html:html>