国家互联网应急中心CN-SA09-08号安全公告:8月11日,CNCERT监测发现国内某三家大型门户网站存在挂马页面。用户在没有做好系统防护的情况下访问相关页面,浏览器就会自动下载恶意代码在计算机上执行,这不仅可能造成用户敏感数据失窃,也有可能形成大规模僵尸网络,严重威胁互联网运行安全。截至8月12日12时,部分网站的挂马页面仍然存在。
据CNNIC中国互联网络信息中心2009年7月16日发布的《第24次中国互联网络发展状况调查统计报告》中显示,我国共有网民数量3.38亿人,网站数量306.1万个,半年内有1.95亿网民在上网过程中遇到过病毒和木马的攻击,1.1亿网民遇到过账号或密码被盗的问题。
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过Web表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。
当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生SQL注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生SQL注入。SQL注入可能导致攻击者使用应用程序登陆在数据库中执行命令。如果应用程序使用特权过高的账户连接到数据库,这种问题会变得很严重。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是SQL注入就发生了。由于应用系统的开发语言及所采用的数据库不同,通过利用数据自身的相关函数和存储过程,又可能导致攻击者进行执行命令、读写文件等非法操作,对Web应用安全的影响十分巨大。
SQL注入攻击原理本身非常简单,相关攻击工具容易下载,攻击者获得权限后有利可图,它作为几年来攻击者最有效web入侵入手点,是众多网站成为恶意代码传播平台的起因之一。
针对这一攻击手段,联想网御安全专家认为,最根本的措施是对Web应用用户的输入进行过滤。并针对于Web应用的基本特性,对Web应用的整体安全工作提出以下具体措施:
1、1Web应用安全评估:结合应用的开发周期,通过安全扫描、人工检查、渗透测试、代码审计、架构分析等方法,全面的发现Web应用本身的脆弱性及系统架构导致的安全问题。应用程序的安全问题可能是软件生命周期的各个阶段产生的,其各个阶段可能会影响系统安全的要点主要有:
图:Web应用常见安全要点及其产生阶段
而对应用程序本身在评估过程中可以参考OWASP TOP TEN 2007年最新版本,重点检查以下内容:
2、 Web应用安全加固:对应用代码及其中间件、数据库、操作系统进行加固,并改善其应用部署的合理性。从补丁、管理接口、帐号权限、文件权限、通讯加密、日志审核等方面对应用支持环境和应用模块间部署方式划分的安全性进行增强。
3、对外部威胁的过滤:通过部署Web防火墙、IPS等设备,监控并过滤恶意的外部访问,并对恶意访问进行统计记录,作为安全工作决策及处置的依据。
图:威胁过滤及记录分析
4、 Web安全状态检测:通过常见挂马页面代码的特征,持续地检测被保护应用页面的当前状态,判断页面是否被攻击者加入恶意代码。同时通过检测Web访问日志及Web程序的存放目录,检测是否存在文件篡改及是否被加入Web Shell一类的网页后门。
5、事件应急响应:提前做好发生几率较大的安全事件的预案及演练工作,力争以最高效、最合理的方式申报并处置安全事件,并整理总结。
图:事件应急响应流程
6、 安全知识培训:让开发和运维人员了解并掌握相关知识,在系统的建设阶段和运维阶段同步考虑安全问题,在应用发布前最大程度的减少脆弱点。
在现在和将来,由于受互联网地下黑色产业链中盗取用户账号及虚拟财产等行为的利益驱动,攻击者仍将Web应用作为传播木马等恶意程序的主要手段。尽管这会对广大的运维人员和安全工作者造成很大的工作压力,但是我们相信通过持续不断地执行并改进相关安全措施,可以最大限度地保障Web应用的安全,将关键系统可能发生的风险控制在可接受的范围之内。