梭子鱼21 Classes of Appln Threats(CN)
Web 应用防火墙:如何阻挡21种应用威胁Wyatt Drive |Santa Clara, CA 95054|408.961.5600tel |408.986.8997fax ©2004NetCon
Web 应用防火墙:
如何阻挡21

种应用威胁
Wyatt Drive |Santa Clara, CA 95054|408.961.5600tel |408.986.8997fax ©2004NetContinuum, Inc. 448-0000027-02
,2
概述
当今的Web 应用已经暴露在大量黑客的视线中,这些黑客对内部和商业软件进行非法探测。这些潜在的威胁使无法对Web 应用进行安全、高效地部署。
要保护Web 应用免受潜在威胁,需要一个能够同时对网络层协议和应用层内容进行保护的平台。部署安全系统的重中之重在于能够对Web 流量进行双向的深层检测,其中包括流量加密、内容编码,执行安全策略来对网络、应用和数据流进行深入的分析。
NC-1000Web 安全网关是一款基于ASIC 的应用安全设备,将DMZ 区功能工巩固在一个单独系统中,实现安全Web 应用的高效部署。NC-1000集成了行业领先的Web 应用防火墙,并通过ICSA 认证,确保对日益增加的Web 应用威胁进行全方位的防护。
本文档描述了如何通过NC-1000来配置和执行应用安全策略的最后方法,并详细说明NC-1000的工作方式。本文档将介绍三个简单的初始配置,并对安全策略进行严格化的方式。
基本步骤
在执行应用层安全策略前,NC-1000会执行以下基本步骤:
●NC 1000首先对数据内容进行解密。SSL 卸载用于深层检测;没有SSL 快速卸载功能,防火墙无法对加密数据进
行有效的检测。
●NC-1000在对流量进行安全策略匹配前会对其进行标准化处理、编码。在HTTP 协议中,这些标准化处理包括了
Unicode, UTF 或Hex 等基本文本格式。否则,非法流量可能通过不同的编码方式来伪装自己,以此躲避防火墙的检测。
d5opx;ÐÓGE]Ì?€³óâ=[Z?Ü3/4ç-Ùü../partners/e
#Ôm]ëæoª5Zòˆ!0^Ý£kêØmtÈ‘œ/~finance/etc/
/homepage/index2/partners/finance/home/index
图1:对访问流量进行解密和标准化处理,并对其进行深层分析,执行应用层安全策略
©2005NetContinuum, Inc.
,3
在解密和标准化处理后,NC-1000将应用安全策略,阻挡带有恶意攻击的HTTP 流量。Web 应用网关对21种Web 应用威胁进行防护。详情请参考以下链接:
图2:21种Web 应用威胁
攻击类型描述
跨站脚本攻击跨站脚本攻击利用站点漏洞来攻击访问该站点的客户端。最常见的攻击目的就是为了
窃取用户的私密信息。
SQL 注入
命令注入
Cookie /会话中毒
参数/表格篡改SQL 注入是通过让数据库执行SQL 命令,对数据进行修改和泄露。OS 命令注入用来让黑客能够方位数据并且提高自己在后台服务器的权限。Cookies 通常用来传输敏感信息,很容易被篡改,用来提升权限或窃取其他用户的身份。URL 和HTTP 报头中的参数以及表格通常用来控制和验证访问敏感信息的用户的合法
性。
黑客对带有的安全漏洞的服务器发起超出正常范围的请求。如果攻击成功,黑客可以
直接执行命令,对服务器造成危害。缓存溢出
目录攻击/强行浏览
密码截取强行浏览未对外开放的站点,对信息进行泄露或篡改。黑客通常不会对强加密的SSL 进行破解。然而,他们会试图攻击安全性相对较弱的转换
点,数据在这些转换点被暂时解密。用多台设备对加密和解密进行管理会使得密码被
窃取的几率大大增加。
Cookie 盗取Cookies 被用户传输用户私密信息,通常以Base64的编码方式进行简单编码。这将导致
登录信息被泄露。
认证劫持不安全的信息和身份管理会导致帐号被劫持或窃取。
日志篡改黑客通过删除和篡改交易日志来销毁他们所进行的非法行为的证据。
错误信息通常包含了大量了站点信息,使得黑客能够获得大量的诸如内部站点结构等私
有信息。
©2005NetContinuum, Inc. 错误信息截取
,4
攻击隐藏黑客通常通过将他们的请求进行编码,以此来伪装自己的身份。应用平台非法探测
DMZ 协议攻击一些常见的攻击可以通过相应的补丁来进行防范,但是补丁往往是不及时的。大多Web 应用环境都包括诸如DNS 、FTP 等关键的协议。这些协议含有潜在的漏洞,
并经常遭到黑客的攻击。
安全管理非法探测
Web 服务攻击
“零日”攻击经验丰富的黑客会对安全管理系统下手,试图修改或关闭安全策略。由于Web 服务是进程间通信的模式,所以需要特殊的安全策略需求。对未知漏洞进行攻击具有严重破坏性,因为还没有相应的预防措施。网络访问攻击
TCP 碎片攻击
应用层服务拒绝攻击当前有超过2,500种不同的网络攻击手段,通过将一个攻击会话分片成多个TCP 数据包可以使得一个攻击逃脱只扫描数据包而不扫描完整会话的检测。当前有许多手法对应用和服务进行数据轰炸,耗尽服务器资源,以至无法响应正常请
求。
©2005NetContinuum, Inc.
,5
步骤一:隐藏应用架构
保护WEB 应用的第一步就是隐藏站点。站点隐藏配置便捷,通过阻断探测行为来阻止大部分的攻击。
如同传统防火墙对内部IP 进行隐藏一样,NC-1000可以对外完全隐藏WEB 应用资源。站点隐藏功能使得企业的内部WEB 资源对外不可见。
98的攻击都以漏洞探测开始,以此来对整个网络架构进行分析。根据系统和应用的列表,黑客能够很容易地对漏洞进行探测。黑客通常对以下内容进行探测:●●●●●
Web 服务器应用软件操作系统版本和补丁版本目录结构
DNS 名称和IP 地址cookies 中的有用信息
例如,红码蠕虫会扫描那些监听80端口的主机的IP 地址,以此来探测IIS 的漏洞。梭子鱼应用防火墙可以阻断这些扫描,蠕虫病毒不会渗入网络。
Web 站点隐藏:将攻击扼杀在摇篮中
大多数攻击都会使用目标探测和漏洞自动扫描。常用防护工具(Whisker,Nessus, 和Nikto) 可以自动侦测潜在的漏洞。阻止魔表探测和自动扫描,可以消除潜在的攻击威胁。
黑客使用各种各样的工具和技术对网络进行分析,包括ping 、nmap 、
ipfilter 和DNS 区域传送。通过分析结果,黑客利用端口扫描对入口进行扫描,以此来获取当前运行的服务。
NC-1000使用强大的站点隐藏功能来隐藏WEB 应用资源。通过阻断黑客和探测和自动扫描,可以阻断对站点发起的攻击。站点隐藏功能可以消除相当大数量的攻击。
对外隐藏的内容:
探测站点,搜索漏洞
WEB 服务器应用服务器
黑客
NC-1000
Web 应用
自动扫描带有漏洞的服务器
操作系统版本和补丁版本目录结构已知漏洞应用转换DNS 名称Cookie 内容
蠕虫
图2:WEB 站点隐藏使内部资源对于黑客和蠕虫不可见
©2005NetContinuum, Inc.
,6
拒绝端口扫描
端口扫描用来为以后的攻击做准备,探测是否易于攻击的服务。最简单的端口扫描就是对65536个端口进行扫描。对于DNS 或其他UDP 端口,黑客通常发送空的UDP 数据包进行探测。如果此端口处于工作状态,将会发回一个错误消息或忽略请求包。
NC-1000具有状态检测功能,可以阻断对NAT 和传统ACL 发起的探测。
80端口通常都是开启并极易受到攻击。许多诸如Whisker, Nessus 和Nikto 之类的可以免费下载的探测软件都可以用来为攻击做好前期准备。例如,Nikto 是一款WEB 服务器扫描工具,它执行完整的测试方法来查询多个项目,超过2000种潜在的危险文件/CGI脚本,130种服务器版本和关于200多种服务器的已知安全问题。
阻断恶意WEB 爬行程序
站点爬行程序(所谓的蜘蛛程序)是一种自动进行站点浏览的程序。虽然站点爬行程序十分有用,但是如果用于恶意目的,他们能给网络带来巨大的威胁。从根本上说,站点爬行程序是一种自行偷取数据的工具。他们能够轻而易举地下载全部或部分网站地图。爬行程序可以发启并发的线程,访问受保护的站点,通过类型和大小对文件进行过滤,搜索特定的关键字。爬行程序可以阅读和解析多种计算机语言,包括HTML 4.0, CSS 2.0, 和DHTML 。爬行程序还具有正则表达式的功能,轻松搜索数据。同时,爬行程序还支持SSL 和cookie 。同时又能将自定义的HTTP 报头注入HTTP 请求,以此来隐藏自己的罪恶身份。
通过互联网中成百上千的开放资源,爬行程序能够免费获得,它们已经成为黑客的理想工具,黑客通过它们来执行自动的站点爬行,或者通过一定的手段来发现潜在的攻击途径,窃取赢利站点的重要保密内容。爬行程序能够在站点爬行过程中执行简单的命令。这些命令包括脚本命令,SQL 命令,通过这些命令来探测是否可能对这个站点发起跨站脚本攻击或SQL 注入的攻击。站点爬行程序获取的信息还可以用来对WEB 应用进行反向管理,并快速识别潜在的漏洞入口。爬行程序无疑是黑客的理想伙伴。
NC-1000使用反爬行技术来保护站点,避免站点暴露于恶意爬行程序。反爬行技术通过使用智能安全算法,在恶意爬行程序首次对站点爬行扫描时对其进行合法性鉴别并进行记录。一经鉴别,此爬行程序将会被用来与管理员定义的“白名单”中的合法爬行程序进行对比。如果不在白名单中,此爬行程序将被拒绝访问站点,并被暂时加入“黑名单”,阻断持续时间由管理员设定。开启反爬行程序功能后,站点可以免受恶意爬行程序的攻击,避免数据窃取、漏洞扫描和自动内容窃取等严重后果。同时,此功能还能够阻止黑客使用恶意爬行程序对站点的探测。
阻断URL 返回代码
返回代码是当你打开一个站点时,发生错误而返回的错误信息。错误信息以HTML 页面显示,用来对所遇到的错误进行描述。这些错误信息为黑客提供了关于应用构架和站点资源系信息等的相关线索。
©2005NetContinuum, Inc.
,7
扫描设备能够利用返回代码来发现已知的漏洞。例如,当文件不存在时,WEB 服务器会返回404错误代码;当文件存在,但该用户无权访问时,服务器会返回401或403错误代码。在NC-1000的站点隐藏功能的保护下,黑客看不到这些错误代码,阻止了黑客对站点进行的进一步探测。
响应数据包报头隐藏
响应数据包报头包含了WEB 站点的相关信息。HTTP 响应数据包使用报头来发送HTTP 信息。一个报头由多行信息构成,每行包含一个名字,名字后跟以冒号和空格,随后加上变量值。这些信息包含了大量关于该站点的线索,其中包括服务器的类型。NC-1000能过对响应数据包报头进行隐藏。
Cookie 加密
Cookie 是黑客喜欢的另一种潜在的信息资源。不同的应用服务器,如BEA 或微软使用常见格式的cookie 。用于单点登录的cookie 通常带有该系统漏洞。通过篡改防护功能和对cookie 进行加密可以保护站点免遭攻击。
NC-1000对cookie 进行加密处理,黑客无法获取真正的内容。这将在很大程度上保护那些需要cookie 的应用服务。NC-1000同时对cookie 进行数字签名,以此保护cookie 免遭篡改。加密和数字签名包括公钥和密钥两种方式。内部DNS 名称空间隐藏
Web 地址转换能够将内部应用外部化,达到隐藏内部DNS 名称空间的效果。URL 转换引擎对所有的URL 响应进行深入的检查,并根据安全策略对这些响应进行重写。通过隔离内部应用信息,NC-1000能够作为用户请求和内部应用的中转s 站,向用户浏览器重建安全的应用会话。
例如,ABC 公司在内部DNS 服务器上注册了两个名为finance.abc 和hr.abraxas 的域名,并且想把这两个内部域名对外显示为www.companyabc.com 。否则,黑客将从这两个内部域名中得到有用的敏感数据。
NC-1000可以帮助ABC 公司将finance.abc.com 和hr.abraxas 映射成www.companyabc.com ,并加上适当的前缀加以区分。在此之后,NC-1000会重写响应,将这些内部应用转换为对外的形式,如http://www.companyabc.com/finance和http://www.companyabc.com/hr。
Web 地址转换帮助企业将内部应用外部化,使得内部名称空间和地址对外不可见。
虽然站点隐藏可以保护企业免遭经验相对不丰富的黑客的攻击,但是并不能全面保护站点免遭职业黑客的入侵。下一个防护步骤就是要确保应用程序始终以开发者的设计思想运行。梭子鱼应用防火墙的动态应用防护功能能够达到这个目的。动态应用防护使用主动防护模式,即只允许事先定义为“正常”的行为,阻止其他任何行为。
下一章节将详细介绍动态应用防护的工作原理。
©2005NetContinuum, Inc.
,8
步骤二:执行特定应用安全策略
至今为止,网络和应用安全一直工作于被动模式下。通过上一章节,我们已经了解到什么是攻击签名,补丁的弱点,并想始终领先于各种攻击手段。被动模式的弱点就是无法防护未知的攻击手段。此外,WEB 数据中心是一个高动态的数据信息存放中心,含有大量新的应用、软件重编码模块和不断改变应用结构的补丁程序。安全人员必须将新的工具和方法投入到变化如此迅速的应用环境中去。
动态应用防护功能为安全应用提供了一种从根本上来说截然不同保护方法。动态应用防护允许已知的合法行为,拒绝其他任何行为,并非像传统的被动模式那样拒绝已知的攻击,允许其他任何行为。
NC-1000使用双向数据深层检测技术对WEB 应用行为进行分析,并执行相应的应用安全策略。NC-1000对某个应用的HTTP 响应进行分析,以此来判断其目的,然后根据所得的信息建立针对此应用的安全策略。由于应用扫描针对的是请求和响应,而非对已知的攻击进行扫描,所以能够避免未知的攻击渗入网络。
许多使用表格和其他输入形式的WEB 应用都依赖客户端的安全处理机制。将安全防护交给客户端完成就如同你将家门钥匙发给别人,并期盼不会有人来开你家的房门。NC-1000通过动态应用防护功能,来执行由应用本身所定义的安全策略。
管理员只需在NC-1000的管理界面开启一个安全入口,就能够开启动态应用防护功能。ACL Name Action Mode
Active URL Domain Header Policy DAP *
图3:通过设置默认的应用ACL 来开启全局动态应用防护
一旦此功能开启,NC-1000就开始分析该应用的响应和关键参数,有效地保护那些之前只依赖客户端进行安全防护的应用,NC-1000通过检查以下参数对应用进行安全分析:
1.
2.
3.
4.
5. 多层URL 隐藏区域表格最大长度只读区域诸如单选按钮、下拉菜单之类的边界值
©2005NetContinuum, Inc.
,6. 服务器在产生的query string 参数
接下来的几部分将详细描述动态应用防护如何进行工作。
©2005NetContinuum, Inc.
,动态应用防护如何工作9
动态应用防护对数据进行双向检测。
例如,浏览器向应用请求一个页面。NC-1000部署在WEB 服务器前,终止来自浏览器的请求,对其进行安全扫描,通过后对服务器发起新的请求。
服务器响应该请求。此响应来到NC-1000。
NC-1000分析该来自服务器的页面,根据安全策略对此响应进行完整的分析。在此过程中,NC-1000学习所有来自服务器的合法参数,比如多层URL 、隐藏区域、只读区域和最大长度。
如果查看浏览器中的“查看源文件”,你可以清楚地看到NC-1000所学习到数据参数(参见图4)。当浏览器再次发起请求,NC-1000会通过安全策略对请求进行扫描。对于上行数据流,NC-1000根据应用和已学习到的参数对所有的对象进行定位处理。将这些通过动态学习得来的参数以安全策略的方式加以应用。
NC-1000对输入的页面请求进行深入分析,确保没有任何非法流量进入网络。如果是合法流量,请求被发送到后端服务器;如果是非法请求,该请求将在本地被阻断,后端服务器完全不知道发生了什么。以下是一些实例。
动态应用防护如何阻挡各种攻击
由于NC-1000只定义合法的请求,其余请求均被阻断,动态应用防护可以以此来阻挡各种攻击,这些攻击包括:●
●
●
●
●强制浏览隐藏区域参数篡改缓冲溢出单选按钮、下拉菜单值篡改参数篡改
动态应用防护通过以下所示部分来阻挡各种形式的攻击。