Web 服务器是必经的大门,Web 开发的团队技术实力的参差不齐,并非都是“专业型”的高手,编程不规范、安全意识不强,导致为黑客大开方便之门。黑客针对Web应用的攻击手段和技术日趋高明、隐蔽,致使大多Web应用处在高风险环境下开展。利用网站的安全漏洞,尤其是Web应用程序漏洞:如SQL 注入等,黑客能够得到Web 服务器的控制权限,随意篡改网页内容或窃取重要内部数据,更为严重的则是在网页中植入恶意代码,通过“网页挂马”感染更多的客户端用户。
SQL注入攻击本身就是对数据库进行一系列SQL语句的查询,分号后面会被注释为SQL语句。黑客可以执行一个SQL查询来实现绕过身份验证或者操纵数据。通过 SQL 注入攻击,黑客可以轻松的敲入一些 SQL 语句登陆进网站、对隐秘数据进行查询等等,而这一切都可以在WEB浏览器中进行的。所以业内流传着一句话:不怕流氓会武术,就怕黑客会注入。可见SQL注入的危害性。
此外,在Web交互性越来越强的今天,一个提供Web服务的应用程序可以不操作数据库,可以不与系统交互,但是肯定会将程序的处理结果返回给浏览器,加上程序员如果意识不到位,就必然发生XSS攻击,对于一个互联网公司,这两方面的因素加起来就会导致这个漏洞数量就非常可观。很多时候,这些XSS攻击往往都是高危级的漏洞。
例如,在2011年6月28日20时左右,新浪微博就出现了一次比较大的XSS攻击事件。微博用户中招后会自动向自己的粉丝发送含毒私信和微博,有人点击后会再次中毒,形成恶性循环。大量用户自动发送“建党大业中穿帮的地方”、“个税起征点有望提到4000”、“郭美美事件的一些未注意到的细节”、“3D肉团团高清普通话版种子”等带链接的微博与私信,并自动关注一位名为hellosamy的用户。
Web网站的安全事件频频发生,究其根源,关键原因有二:一是web 网站自身存在技术上的安全漏洞和安全隐患;二是相关的防护设备和防护手段欠缺。
Web 应用攻击通常是以七层的形式进行,对这种攻击,传统防火墙显得力不从心。由此,Web应用防火墙(WAF)应运而生。WAF是专门为保护基于Web的应用程序而设计的,从广义上来说,WAF就是一些增强Web应用安全性的工具。Web服务器理应通过80端口传送数据包。所以所有发给支撑Web服务器系统80端口的数据包必须被允许通过防火墙。传统的防火墙没有办法测定一个地址指向正确的数据包是否包含威胁,但WAF可以仔细检查数据包的内容来检测并阻止威胁。
下面我们就用一款现在业内比较普遍的梭子鱼WAFWEB应用防火墙来举例,来看看WAF是如何保护网站防止被恶意注入和篡改的了。
网络架构和部署:代理模式(也支持桥模式)
代理模式是Web应用防火墙部署种的最佳模式。这个模式也是拓扑过程中推荐的模式,能够提供最佳的安全性能。
在此模式中,所有的数据端口都将被开启;端口WAN是对外的,直接面向因特网的端口。管理端口可以被分配到另一个网段,我们推荐将管理数据和实际的流量分离,避免因为实际流量和管理数据的冲突。
以下为示例拓扑图:
网络实现:
1、前端端口和后端端口位于不同的网段,所有外部客户将会和应用虚拟IP地址进行连接,此虚拟ip将会和前端端口(eth1)进行绑定
2、客户的连接将会在设备上终止,进行安全检查和过滤
3、合法的流量将会WAN口建立新的连接到负载均衡设备
4、负载均衡进行流量的负载
5、代理模式可以开启所有的安全功能
工作特点:基于应用层的检测,同时又拥有基于状态的网络防火墙的优势
对应用数据录入完整检查、HTTP包头重写、强制HTTP协议合规化,杜绝各种利用协议漏洞的攻击和权限提升
预期数据的完整知识(Complete Knowledge of expected values),防止各种形式的SQL/命令注入,跨站式脚本攻击
实时策略生成及执行,根据您的应用程序定义相应的保护策略,而不是千篇一律的厂家预定义防攻击策略,无缝的砌合您的应用程序,不会造成任何应用失真。
梭子鱼策略WAF配置建议:
1.配置服务:配置VIP地址和真实服务器地址。
2.配置安全策略:开启主动防护模式。
3.开启URL防护策略:例如阻断SQL注入,跨站攻击等。
4.系统告警:一旦网站被攻击,梭子鱼马上能通过邮件进行告警。
我们分析完了Web安全常见的攻击手法和防御方式,那么如何对应用层攻击进行防御呢?请关注下一期的《拒绝阿喀琉斯之踵系列——下一代防火墙在行动》。