来自微软专家的SQL注入防范方法
自客岁下半年开始,很多网站被恶意代码说困扰,打击者在动态网页的SQL数据库中注入恶意的HTML < SCRIPT>标签。这种脚本打击行为在2008年第一季度开始加速流传,并继续影响有漏洞的Web应用。
这些Web应用存在以下几点个性:
使用ASP作为编程代码;
使用SQL Server数据库;
应用程序代码凭据URI恳求字符串天生动态SQL盘问(http://consoto.com/widgets.asp?widget=sprocket)。
这代表了一种新的SQL注入(SQL injection)途径(http://msdn.microsoft.com/en-us/library/ms161953.aspx)。在已往,SQL注入打击的目标通常是具有安全漏洞或特殊数据库布局的Web应用。如今这种打击的不同在于,打击可以或许使用任何URI恳求字符串来创立动态SQL盘问,进而打击任何存在的漏洞。在http://blogs.technet.com/neilcar/archive/2008/03/15/anatomy-of-a-sql-injection-incident-part-2-meat.aspx可以找到更多技能详情和代码。
这种打击并非使用了Window、IIS、SQL Server或者其他底层代码漏洞,相反地它使用了在这些底子平台上运行的WEB应用漏洞。Microsoft曾经对这些打击进行了彻底的调查,并发现这些打击和以往微软产品的补丁和0-day漏洞有关。更多信息拜访http://blogs.technet.com/msrc/archive/2008/04/25/questions-about-web-server-attacks.aspx。
正如上面所指出的,SQL注入打击在近年来呈现一种增长的趋势。至少两点紧张要素促使其增长:
一方面,自动化的恶意打击工具。SANS在http://isc.sans.org/diary.html?storyid=4294讨论了这类工具。恶意打击工具使用搜索引擎来寻找存在漏洞站点并进行SQL注入。
另一方面,网络中存在的僵尸计算机正在进行SQL注入打击,并以此来遍及流传僵尸主机。SecureWorks上对此案例进行了阐发。http://www.secureworks.com/research/threats/danmecasprox/
一旦某台服务器被该漏洞所打击,它将被拔出 < SCRIPT>标签来指向某个恶意的JS文件。固然这些文件的内容不同,但都尝试使用曾经被修复的Micfosoft漏洞以登科三方ActiveX控件漏洞,对用户计算机发起打击。由于这些脚本相对独立存在,这些脚本可以被快速修改,从而使用新的客户端漏洞。
IT/数据库办理员发起
有很多措施是IT办理员或者数据库办理员应该在其办理的底子坏境中必需采取的,经过这些措施可以帮助办理员以减少危害并对大概呈现的威胁进行实时响应。
* 查抄IIS日记和数据表
由于打击程序是经过URI恳求字符串来触发,办理员们可以查抄IIS日记中的非常恳求。具体实施参考微软technet中相关文章 http://blogs.technet.com/neilcar/archive/2008/03/15/anatomy-of-a-sql-injection-incident-part-2-meat.asp。在codeplex 网站上有自动化打击工具的实例演示。http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=WSUS&ReleaseId=13436
要是IIS日记表明服务器大概曾经被使用,那么下一步要查抄相应的Web应用所使用的数据库中的表格,并找出附加在文本内容中的 < SCRIPT>标签。
提示:IIS服务器绝不应当在事情环境中封闭日记功效。存储并办理IIS孕育发生的日记是非常须要的,短少IIS日记对于响应安全事件将造成巨大的危害。
* 要是在后端数据库运行了第三方代码,用户有须要考虑独立软件开辟商(ISV,Independent Software Vendors)所大概造成的SQL注入影响。
在使用第三方ASP Web程序的环境下,办理员应当联系第三方应用程序提供商,来确定他们的产品不受SQL注入打击的影响。
* 确保使用数据库的Web应用程序最少拜访权限。
办理员确保需要使用Web应用的SQL用户具有最小权限是非常须要的。Web应用程序不应当给予以诸如”sysadmin”的服务器办理员权限或者”db_owner”的数据库权限。SQL安全配置白皮书《best practices for setting up and maintaining security in SQL Server 2005》提供了关于SQL Server安全的多方面发起。: http://download.microsoft.com/download/8/5/e/85eea4fa-b3bb-4426-97d0-7f7151b2011c/SQL2005SecBestPract.doc 提供了关于SQL Server安全的多方面发起。
Web开辟者发起
这里有一些论述在编码时怎样防御SQL注入的优秀文档。由于打击行为通常影响有漏洞的Web应用程序代码,以是完全防御他们的唯一方法是制止在代码中存在的漏洞。开辟代码中任何需要使用内部资源(一般指从URI恳求字符串)数据来动态天生SQL恳求的地方都应当被重点存眷。一旦代码漏洞被缺人,开辟者需要谨慎去办理它。
* 解释-SQL注入、ASP.NET和ADO.NET :
http://msdn.microsoft.com/en-us/library/bb671351.aspx
上面的文档同时包罗如下相关主题《How To: Protect From SQL Injection in ASP.NET》 http://msdn.microsoft.com/en-us/library/ms998271.aspx(异样实用于ASP)。
这里有一个非常有效的视频(链接大概有效):n.com/wiki/default.aspx/SecurityWiki.SQLInjectionLab">http://channel9.msdn.com/wiki/default.aspx/SecurityWiki.SQLInjectionLab。
* 实施SQL注入相关信息:
http://msdn.microsoft.com/en-us/library/ms161953.aspx
* ASP代码中的SQL注入(不同与ASP.NET):
http://msdn.microsoft.com/en-us/library/cc676512.aspx
怎样在ASP中执行SQL Server存储: http://support.microsoft.com/kb/q164485
* Microsoft SDL(The Microsoft Security Development Lifecycle)给出了防御SQL注入指南。指南中提供了三种计谋来革除SQL注入打击:
1. 使用SQL参数盘问
2. 使用存储计谋
3. 使用SQL单一执行许可
Michael Howard在BLOG中谈论怎样执行这些安全计谋。
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
同时,《Writing Secure Code(第二版)》指导了怎样防御此类打击(详见399-411页)。
* 加重SQL注入:使用参数盘问。使用参数化盘问的利益是它将执行代码(例如SELECT语句)和数据(由程序使用者提交的动态信息)分开。这种方法可以防对由用户执行而孕育发生的恶意代码。
Part 1:
http://blogs.technet.com/neilcar/archive/2008/05/21/sql-injection-mitigation-using-parameterized-queries.aspx
Part 2:
http://blogs.technet.com/neilcar/archive/2008/05/23/sql-injection-mitigation-using-parameterized-queries-part-2-types-and-recordsets.aspx
在ASP代码中过滤SQL注入(或者黑名单关键字),我们以为可作为临时的替代方法,因为在现实中并不修复错误的泉源。(例如,代码仍然是有漏洞的,仍有大概绕过过滤机制)
来自IIS团队的Nazim解释了怎样过滤的细节信息:http://blogs.iis.net/nazim/archive/2008/04/28/filtering-sql-injection-from-classic-asp.aspx。
要是你仍然不清楚该怎样下手,所有使用特定ASP代码拜访数据库,尤其是使用由用户提交的数据代码应起首被检测。
最终用户发起
最终用户应复查这些关键信息(http://www.microsoft.com/protect/default.mspx)。另外,这里也有一些特殊步骤来帮助用户掩护自身。
* 有鉴别选择的拜访网站——用户需要意识到,纵然是信托度高的网站异样也会被漏洞所影响。
有选择的拜访网站有助于减少了用户暴露在漏洞下的危害。必需把稳一场行为,了解面临的危害,并实施本部分提供的其他发起。
* 实时更新安全补丁
由于恶意代码通常使用了已知的漏洞,因而用户应当确保体系中的微软和第三方软件曾经打好了最新的安全补丁。微软安全更新可以经过欣赏http://update.microsoft.com;更多信息可欣赏http://www.microsoft.com/protect/computer/updates/OS.aspx 。
* 禁用不须要的ActiveX控件和IE加载项目。
用户应禁用所有不须要的ActiveX控件和IE加载项目。凭据KB883256(http://support.microsoft.com/kb/883256)的方法在Windows XP Service Pack2或者更新版本中来实施本步骤:
1. 翻开IE。
2. 在“工具”菜单下点击“办理加载项”。
3. 选择加载项名称。
4. 执行如下方法:
* 点击更新ActiveX来更新控件,本方法并不用实用于所有的加载项。
* 点击”启用”,尔后点击”确定”,来启用加载项。
* 点击”禁用”,尔后点击”确定”,来禁用加载项。
以上步骤,大概需要用户重启IE来确保启用/禁用插件操纵完成执行。
对于更早的操纵体系,凭据KB154036(http://support.microsoft.com/kb/154036)的说明进行操纵。
* 减少第三方欣赏器受打击危害的步骤。
要是你使用了IE之外的欣赏器,那么用户应当确保你安装的是最新版本,同时应当禁用不须要的扩展和加载项。目前流行的欣赏器信息可以在如下链接找到:
Firefox - http://support.mozilla.com/en-US/kb/Firefox+Support+Home+Page
Opera - http://www.opera.com/support/
Safari - http://www.apple.com/support/safari/
* 更新反恶意程序软件
终端用户应当确保安装了最新的杀毒软件和反特工软件,并且连结他们的更新。用户可以在http://www.microsoft.com/protect/computer/antivirus/OS.aspx和http://www.microsoft.com/protect/computer/antispyware/OS.aspx找到更多信息。同时用户可以在 en-us/install/install.htm">http://onecare.live.com/standard/en-us/install/install.htm申请90天的Windows Live OneCare无偿使用。
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|