RSS订阅
RSS订阅TT安全

三大措施将SQL注入攻击的危害最小化

2008-9-23  选择字号:  | |
打印本文章

导读:使用用户提供的数据进行数据库查询的任何应用程序是SQL注入攻击的一个潜在目标。本文中列出了一些管理员们和应用程序开发人员可以采用的做法,将攻击的影响最小化。

关键词:SQL注入攻击 数据 数据库 查询 SQL注入 管理员 攻击

正在加载数据...

  使用用户提供的数据进行数据库查询的任何应用程序是SQL注入攻击的一个潜在目标。数据库管理员可能无法完全阻止针对其数据库服务器的SQL注入式攻击;但是,管理员们和应用程序开发人员可以做一些事情,将这些攻击的影响最小化。那么

  数据库管理员可以做什么呢?

  不要让数据库和Web服务器放在同一台计算机上。

  使用防火墙或不可路由的IP地址来阻止到数据库的互联网访问。一旦配置完毕,来自数据库服务器的数据包将不能被转发到互联网。在Web服务器上需要添加一条路由,这样才能找到数据库服务器。

  配置可信任的IP接入和访问(例如,IPSEC),以控制哪些机器能够与数据库服务器通信。

  从数据库服务器上移除所有的示例脚本和应用程序。

  为每一个应用程序的数据库连接账户使用一个专用的低特权账户。不要使用sa、dba、admin。

  不要准许用户或应用程序直接访问数据库表。要使用对数据库拥有有限访问的应用程序角色。如果应用程序仅需要读取访问,就要将数据库的访问限制为只读。

  从生产数据库中移除未用的存储过程。

  将对应用程序的访问仅授权给用户创建的存储过程。

  不要将应用程序的“_ANY_”授权给操作系统命令或系统存储过程。

  应用程序的设计人员可以做什么呢?

  程序设计人员肩负着保障Web应用程序安全的重要责任。在设计和编码阶段加强安全审察才是杜绝程序漏洞的关键。大体而言,程序设计者至少应当实施下面的一些措施:

  要创建应用程序要生成的特定的通用错误消息。因为,在一次SQL注入攻击期间,通过数据库生成的默认的错误消息,攻击者可以获取有价值的信息,如表格和栏的名称。

  在将用户服务的输入提交给数据库之前,验证用户输入的合法性。仅接受所期望的用户输入,并限制其长度。注意,只要可能,使用白名单列表检查所有的用户输入。应用程序服务器防火墙可被用于检查所有的输入,并仅接受那些符合标准的输入。

  在程序开发期间,使用Web应用程序扫描工具发现代码中漏洞。

  将Web应用程序与SQL数据库隔离开来,将应用程序所要求的所有SQL放置在数据库服务器上。

  使用静态查询。如果需要动态查询,就使用准备好的语句。

  使用一个安全的接口,如ADO的Command Object,使应用程序执行存储过程。

  检测SQL注入漏洞和攻击

  要检测易于受攻击的应用程序并不是简单事情,因为这些漏洞可能存在于面向用户的任何应用程序接口中。虽然并非所有的SQL注入攻击技术都易于检测,但数据库管理员或开发人员可以做以下的事情:

  阅读Web服务器的日志。有时,在这些日志中就可轻易地发现SQL注入攻击,因为这时写往日志的登录项目要比平常多得多。

  查找HTTP 404和HTTP 500错误日志项目,以及程序生成的检查用户输入的其它的错误日志项目。

  使用Web应用程序扫描工具。这些工具可被用于警告数据库管理员,告知管理员应用程序中易受SQL注入攻击的地方。

  在部署应用程序之前,检查其中的SQL注入因素至关重要。

  总之,一个防御SQL注入攻击的稳健方案应是在开发、部署、管理、维护的多个方面都进行检查,并且需要安全管理人员不断地注意SQL注入的最新动向,采用切实可行的工具,使程序的漏洞最小化。

原文出处:http://netsecurity.51cto.com/art/200809/89836.htm
来源:51cto    作者:落英缤纷    
在今年的休假季节,除了当前各种迫使公司削减成本的经济因素和不断增加的内部安全威胁外,人们还可能面临新一波安全威胁。网络罪犯将趁着各种混乱和在线购物者数量增加……
随着Web 2.0应用逐渐增多,企业IT部门迎来了新安全威胁,传统的安全工具在面对Web 2.0应用时往往显得心有余而力不足,那么企业IT部门应该如何应对Web 2.0应用的安全威胁呢?
黑客利用微软SQL Server各种漏洞发动网络攻击,其中又以SQL Injection最为常见。为了遏止相关网络攻击再恶化,美国网络犯罪申诉中心提出十二点网络攻击预防措施……
微软周一发布了公告,警告说有些可以公开获取的代码可以被用于攻击SQL Server中没有打补丁的漏洞。这个问题可以引起错误参数检查,对攻击者开放漏洞……
Websense 发布2009年6大安全预测。其中“云安全”技术的被滥用、Web应用和Web2.0应用等被恶意利用的几率……

当身份窃取猖獗的时候,有力地用户认证、客户认证和合作伙伴认证是至关重要的措施。有了用户名和密码就足够了吗?双因素认证是有效的方法吗?还是无力应对新出现的威胁呢?本专题将提供全面的信息,帮助理解目前的认证方式和面临的挑战,并且介绍如何采用安全的认证系统。

本专题将介绍一款免费的、开源的、可移动的适用于笔记本电脑的加密软件TrueCrypt。TrueCrypt适用于个人或者小型企业和团队,可以在任何系统上运行而不需要安装。TrueCrypt可以采用多种加密算法,有效地保护机密数据。
本专题可以帮助理解在无线网络中,无线入侵检测/防御系统(WIDS/WIPS)的价值,及时您所在的公司不支持无线局域网。此外,本专题还将介绍如何为公司环境选择合适的WIDS,以及如何防御无线拒绝服务攻击。
最新更新
专家答疑
技巧
Michael Cobb
渗透测试的目标不仅是要评估电脑系统或者网络的安全性,还要决定成功攻击的可行性和商业影响。那么如果选择合适的渗透测试人员呢?
Mike Chapple
渗透测试可以提供安全防御的有价值的信息,但是成本很高。为了渗透测试的可信性,通常必须要有独立的外部公司进行。如果使用内部人员和测试示范漏洞……
Ed Skoudis
问:社会工程应该是渗透测试的一部分吗?这样做是道德的吗?   答:这个问题的答案还在争论之中。