目前,利用网上随处可见的攻击软件,攻击者不需要对网络协议的深厚理解基础,即可完成诸如更换web网站主页,到取管理员密码,破坏整个网站数据等等攻击。而这些攻击过程中产生的网络层数据,和正常数据没有什么区别。
通过统计国外一个黑客站点每天公布出来的黑客链接,平均每天10多个中国政府网站被攻破。
很多用户认为,在网络中不断部署防火墙,入侵检测系统(IDS),入侵防御系统(IPS)等设备,可以提高网络的安全性。但是为何基于应用的攻击事件仍然不断发生?其根本的原因在于传统的网络安全设备对于应用层的攻击防范,作用十分有限。目前的大多防火墙都是工作在网络层,通过对网络层的数据过滤(基于TCP/IP报文头部的ACL)实现访问控制的功能;通过状态防火墙保证内部网络不会被外部网络非法接入。所有的处理都是在网络层,而应用层攻击的特征在网络层次上是无法检测出来的。IDS,IPS通过使用深包检测的技术检查网络数据中的应用层流量,和攻击特征库进行匹配,从而识别出以知的网络攻击,达到对应用层攻击的防护。但是对于未知攻击,和将来才会出现的攻击,以及通过灵活编码和报文分割来实现的应用层攻击,IDS和IPS同样不能有效的防护。
主要网站安全问题及其危害
常见的Web攻击分为两类:一是利用Web服务器的漏洞进行攻击,如CGI缓冲区溢出,目录遍历漏洞利用等攻击;二是利用网页自身的安全漏洞进行攻击,如SQL注入,跨站脚本攻击等。常见的针对Web应用的攻击有:
缓冲区溢出——攻击者利用超出缓冲区大小的请求和构造的二进制代码让服务器执行溢出堆栈中的恶意指令
Cookie假冒——精心修改cookie数据进行用户假冒
认证逃避——攻击者利用不安全的证书和身份管理
非法输入——在动态网页的输入中使用各种非法数据,获取服务器敏感数据
强制访问——访问未授权的网页
隐藏变量篡改——对网页中的隐藏变量进行修改,欺骗服务器程序
拒绝服务攻击——构造大量的非法请求,使Web服务器不能相应正常用户的访问
跨站脚本攻击——提交非法脚本,其他用户浏览时盗取用户帐号等信息
SQL注入——构造SQL代码让服务器执行,获取敏感数据
下面列举简单的两个攻击手段进行说明。
SQL注入:
对于和后台数据库产生交互的网页,如果没有对用户输入数据的合法性进行全面的判断,就会使应用程序存在安全隐患。用户可以在可以提交正常数据的URL或者表单输入框中提交一段精心构造的数据库查询代码,使后台应用执行攻击着的SQL代码,攻击者根据程序返回的结果,获得某些他想得知的敏感数据,如管理员密码,保密商业资料等。
跨站脚本攻击:
由于网页可以包含由服务器生成的、并且由客户机浏览器解释的文本和 HTML 标记。如果不可信的内容被引入到动态页面中,则无论是网站还是客户机都没有足够的信息识别这种情况并采取保护措施。攻击者如果知道某一网站上的应用程序接收跨站点脚本的提交,他就可以在网上上提交可以完成攻击的脚本,如JavaScript、VBScript、ActiveX、HTML 或 Flash 等内容,普通用户一旦点击了网页上这些攻击者提交的脚本,那么就会在用户客户机上执行,完成从截获帐户、更改用户设置、窃取和篡改 cookie 到虚假广告在内的种种攻击行为。
随着攻击向应用层发展,传统网络安全设备不能有效的解决目前的安全威胁,网络中的应用部署面临的安全问题必须通过一种全新设计的高性能防护应用层攻击的安全防火墙——应用防火墙来解决。应用防火墙通过执行应用会话内部的请求来处理应用层。应用防火墙专门保护Web应用通信流和所有相关的应用资源免受利用Web协议发动的攻击。应用防火墙可以阻止将应用行为用于恶意目的的浏览器和HTTP攻击。这些攻击包括利用特殊字符或通配符修改数据的数据攻击,设法得到命令串或逻辑语句的逻辑内容攻击,以及以账户、文件或主机为主要目标的目标攻击。