XSS攻击防御技术白皮书(2)
来源:asp之家 发布时间:2009-12-24 16:32:00
2 XSS攻击防御
2.1 XSS的传统防御技术
2.1.1 基于特征的防御
XSS漏洞和著名的SQL注入漏洞一样,都是利用了Web页面的编写不完善,所以每一个漏洞所利用和针对的弱点都不尽相同。这就给XSS漏洞防御带来了困难:不可能以单一特征来概括所有XSS攻击。
传统XSS防御多采用特征匹配方式,在所有提交的信息中都进行匹配检查。对于这种类型的XSS攻击,采用的模式匹配方法一般会需要对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。这种检测方法的缺陷显而易见:骇客可以通过插入字符或完全编码的方式躲避检测:
躲避方法1)在javascript中加入多个tab键,得到
《 IMG SRC=“jav ascript:alert(‘XSS’);” 》;
躲避方法2) 在javascript中加入	编码字符,得到
《 IMG SRC=“javascript:alert(‘XSS’);” 》;
躲避方法3) 在javascript中加入
字符,得到
《 IMG SRC=“javascript:alert(‘XSS’);” 》;
躲避方法4)在javascript中的每个字符间加入回车换行符,得到
《 IMG SRC=“j\r\na\r\nv\r\n\r\na\r\ns\r\nc\r\nr\r\ni\r\np\r\nt\r\n:alert(‘XSS’);” 》
躲避方法5)对“javascript:alert(‘XSS’)”采用完全编码,得到
《 IMGSRC=javascript:alert('XSS
') 》
上述方法都可以很容易的躲避基于特征的检测。而除了会有大量的漏报外,基于特征的
还存在大量的误报可能:在上面的例子中,对“http://www.xxx.com/javascript/kkk.asp?id=2345”这样一个URL,由于包含了关键字“javascript”,也将会触发报警。
2.1.2 基于代码修改的防御
和SQL注入防御一样,XSS攻击也是利用了Web页面的编写疏忽,所以还有一种方法就是从Web应用开发的角度来避免:
步骤1、对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。
步骤2、实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。
步骤3、确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
当然,如上操作将会降低Web业务系统的可用性,用户仅能输入少量的制定字符,人与系统间的交互被降到极致,仅适用于信息发布型站点。并且考虑到很少有Web编码人员受过正规的安全培训,很难做到完全避免页面中的XSS漏洞(注 )。
2.2 天清入侵检测产品的XSS防御
正是由于传统检测方法存在诸多缺陷,天清入侵防御系统并未采用这一方法,而是采用了基于攻击手法的行为检测方法,其分析流程如下图所示。
图2
首先对各种场景下的XSS攻击样本库进行整理和分类,并建立起XSS攻击行为特征库,在实时攻击检测阶段,对所有可能实现XSS攻击的数据来源,如HTTP-Refere、URL、COOKIE、表单数据等,进行数据收集和初步分析,存在注入脚本的用户提交信息才进入下一步的XSS攻击判断。
这种分析方法有以下几点优势:
A:采用行为特征库而非数据特征库方式,可以避免由于检测固定特征导致的误报可能。
B:内置数据预处理过程,可以对所有可能包含XSS攻击的数据进行预处理,放行大部分正常HTTP请求,仅对少量疑似事件进行深入分析,提升分析速度,降低资源开销。
C:XSS攻击行为特征库维护由启明星辰公司AD-LAB(积极防御实验室)和博士后工作站负责,AD-LAB拥有大批漏洞发掘和分析人员,2007年发现并获得CVE编号的漏洞数量多达26个,是国内独立发掘CVE漏洞数量最多的团队。启明星辰博士后工作站是业内第一家驻企业的信息安全博士后工作站,为产品算法实现、研究技术转化提供有力保障。
3 综论
XSS攻击作为Web业务的最大威胁之一,不仅危害Web业务本身,对访问Web业务的用户也会带来直接的影响,如何防范和阻止XSS攻击,保障Web站点的业务安全,是定位于业务威胁防御的入侵防御产品的本职工作。
天清入侵防御产品依托多年以来对业务威胁的深入研究,结合对XSS攻击的分析,能准确的发现和防御各类XSS攻击行为,保障Web业务的正常运营。
猜你喜欢
- 作为一个blogger或者blog读者,你一定对垃圾评论(comment spam)并不陌生。Google Blog的Preventing
- 尽管在公开场合,几乎每个人都承认,SEO(搜索引擎优化)能否取得预期的效果,取决于网站的内容质量。但是,也不可否认,在许多人的潜意识里,仍然
- 在线列表图标功能是Discuz! 7.1中用于区分在线成员列表中会员的身份。当您打开在首页或分版块显示在线用户功能时,首页或分版块的在线会员
- 设置群集用户帐户群集服务需要一个属于可运行群集服务的每个节点上的本地管理员(Local Administrators)组成员的域用户帐户。因
- 用户使用Godaddy的windows的主机,打开网站时必须在域名后添加index.aspx才可以打开。index.aspx不在默认页面里面
- 今天看我的BLOG(zishu.cn)还有以前另一个站的统计,发现和SEO相关的一点东西,写出来和大家分享一下!我的观点是“放弃无效的收录,
- 针对这次百度大更新,分析出的几点看法。天天跟随着百度走,看这自己网站半死不活的样子,也不知道多少站长为之憔悴或黯然。日转星移,总算盼来了百度
- 广受大家欢迎的发布平台WordPress上个月发布了WordPress 3.0正式版 (取名 “Thelonious”)。此版本引入了非常多
- 对于技术,我只是了解皮毛;对于SEO,也只能算个菜鸟,但是菜鸟对于SEO也有自己的看法,我的第一SEO案例是做自己公司的网站,从这之后又做了
- 在忙活了一段时间后,网站建成了,接下来作为一个新站站长的你首先想到要做的可能就是让自己的网站早点被搜索引擎收录,早点让访问者通过搜索引擎找到
- 赈灾捐助汶川灾区第四日。截至16日下午16时45分,已有112家IT及高科技企业响应绿色选择联盟企业号召,纷纷通过中国红十字总会、中华慈善总
- 如果是使用的catalina.sh(linux)或Catalina.bat(win)启动的:修改这两个文件,加上下面这句:SET CATAL
- 下面我们以大家常用的sina邮箱为例说明如何进行UCenter Home的邮件设置。一、UCenter Home后台设置1、首先要保证您已经
- 众所周知,在七八年前炒域名是一种赚钱的手段,在三四年前炒域名是一种时尚的潮流,然而现在炒域名似乎没多大意义,显得有些老土了,最重要的是好域名
- 记得那是一九九四年的夏天,我和大多数的打工者一样,乘坐南下的火车来到了深圳。当时的心愿,就是每月能挣点钱帮补一下家里,由于只有高中文化,就匆
- Google AdSense发布者在账号被停止后是否可以收到已经支付或即将支付的款项,这是最近很多发布者都在关注的问题,尤其是通过西联汇款支
- 为了实现Linux环境下的FTP服务器配置,绝大多数的Linux发行套装中都选用的是Washington University FTP(Wu
- 今天闲来无事,继而顺手截图做一些IIS7的安装图文教程,以及fastcgi模式下配置PHP,现在网上很多IIS7下配置PHP的教程还停顿在I
- 或许你已经注意到了,百度在最近些日子改版了。是的,就像图中的那样,他的框计算改进了。更加智能,更加先进,也更加可怕。过去我曾经写过一篇百度的
- 巴西一家最大银行Bandesco巴西银行,日前遭受了DNS缓存病毒攻击。受到影响的用户会被重定向至一个假冒的银行网站,该假冒网站试图窃取用户