针对互联网网站的SQL注入攻击的分析和应对方法
迹象
根据微软 5月 19号的估算,在中国大陆,香港,台湾地区有 12万个网站受到了 SQL注入攻击。
在大中华地区,许多公共网站,包括政府,教育部门,非政府组织的慈善机构,以及一些企业都遭受到了 SQL注入的攻击,若干包含恶意 <Script>代码被加入到网站的数据库中,当用户访问这些可信站点时,浏览器会被指向包含恶意代码的网站,此时用户计算机系统内的防病毒系统可能会报警。如果用户计算机系统存在可被利用的安全漏洞,同时并未安装有效的防病毒系统,攻击者可能在用户电脑上运行更多的恶意代码,从而导致用户电脑被控制。
背景
首次攻击是在 2008年 1月发现的。 在过去的 4个月中,早已有 3次大规模攻击:
1月初,包括某知名防病毒软件厂商网站在内的互联网网站 , 受到了 SQL注入攻击 (感染页面数超过 1000页面 /天 )
3月中旬,包括某知名防病毒软件厂商网站在内的互联网网站,受到了 SQL注入攻击 (感染页面数超过 10000页面 /天 )
4月中旬,包括欧洲某政府和某国际机构网站在内的互联网网站,受到了 SQL注入攻击 (感染页面数超过 10000页面 /天 )
SQL注入攻击行为简介
以下是此类攻击的流程
1. 攻击者运用搜索引擎寻找网页上的漏洞,并运用自动化工具攻击网络服务器。
2. 一个<script>字符串附加到在后台运行的 SQL服务器中所有的文本或可变长字符串列中。
3. 这段脚本与攻击者所控制服务器连接。该服务器含有一些利用常用软件中漏洞的攻击代码,如利用微软 MS06-014中修复的漏洞的攻击代码,利用第三方软件漏洞(例如常用的媒体播放器、互联网内容下载软件),有的时候还有一些零时差( 0day)漏洞。
4. 当客户端用户使用 IE浏览器对正常的网站进行浏览时,由于这些网页都将从 SQL服务器获取数据,这些数据同时包含了恶意脚本 <script>。而这些脚本会自动连接到攻击者的网站。
5. 如果终端用户没有安装微软最新的安全更新,或尚未及时更新第三方软件到最新版本,客户端电脑会被感染。
SQL注入事件响应的解决方案
一旦互联网 Web服务器遭到 SQL注入攻击,请遵循如下步骤:
1、关闭网站
2、检查 IIS日志,查找引起这次攻击的有漏洞的目标网页
3、联系该 Web服务器上 Web应用的开发者,检查并修改 ASP页面中存在 SQL注入攻击隐患的代码。
注意:这只是一种变通的解决方法,只能临时解决 SQL注入问题。该网站可能在服务器再次联网后被再次注入。为了彻底解决这个问题,请参阅 “预防 SQL注入攻击的解决方案 ”。
预防SQL注入攻击的解决方案
SQL注入攻击是因为互联网网站开发人员在开发页面时,没有遵循安全代码开发的要求所引起的。为了防止攻击,我们需要验证所有网页的字符串输入的函数。例如,带有用户名和密码输入框的网站登录页。
在微软的官方网站上可以找到安全指导和最佳实践的文档,来应对 SQL注入攻击。