斩断注入黑手
了解了问题的根源,剩下的就是防御问题了。在启明星辰工程师的协助下,通过安星远程网站安全检查服务,小任挨个清除了页面上所挂木马,同时还发现网站存在数个SQL注入和XSS漏洞,而原有的网站安全检查代码由于无法进行语义一级的还原①,无法彻底杜绝这两类攻击,只有通过部署相应安全产品解决。在对比了数家国内外的Web安全防御产品后,该网站最终选择了天清入侵防御产品,其采用攻击机理分析方式对Web威胁如SQL注入、XSS攻击等进行精确阻断。与传统的基于数据特征匹配和基于异常模型构建的Web安全相比,有着更低的漏报率和误报率。天清入侵防御产品上线后,当小任尝试用此前注入漏洞再次进行攻击时,发现在产品事件监视台上已经及时出现了报警信息并予以了阻断。再次采用安星检查服务后发现,已经无法嗅探出任何漏洞。
注①:继续拿/css/c.js木马举例,该木马的注入代码是http://c.nuclear3.com/css/c.js,但这个.js脚本并不是真正的攻击代码,而只是一段代码:
document.write("");
这个脚本文件会在一个隐藏的框体中引用有害的链接:'http://fvgit.cn/01/index.htm,真正的攻击代码存在于这个链接处,这段攻击代码异常简单,摈弃了头标签体标签,直接就是攻击代码,且采用了替换躲避手法:
var ll=new ActiveXObject("snpv"+"w.Snap"+"shot View"+"er Cont"+"rol.1");}
rrooxx = "I" + "E" + "R" + "P" + "C" + "t" + "l" + ".I" + "ERP" + "Ctl.1";
这种替换躲避手法需要使用到语义还原,如果仅检查关键字,是无法发现和抵御此类攻击的。