列举黑客经常选择的六种数据库攻击手段

分享到:
点击量: 280007 来源: 51CTO.com
  普通的黑客从进入到退出一次数据攻击只需用不到10秒钟时间就可完成,这个时间对于数据库管理员来说即使注意到入侵者都几乎不够。因此,在数据被损害很长时间之前,许多数据库攻击都没有被单位注意到。

  令人奇怪的是,根据许多专家的介绍,作为企业***冠”的大本营,数据库在许多企业中并没有得到恰当的**保护。恶意的黑客正利用非常简单的攻击方法进入数据库,如利用弱口令和不严谨的配置,及利用未打补丁的已知漏洞等。

  我们不妨先谈谈丢失备份磁带的问题:如果丢失的或被盗窃的磁带没有加密,那么如果一个坏家伙得到了这种磁带,你就等着瞧吧。这根本就不需要攻击。

  Forrester Group 的**分析师Noel Yuhanna说,“*大的问题之一是许多数据库攻击甚至都不为人知,典型的数据库每秒钟拥有15000到20000次连接。对人类来说,要知道所有这些连接正在做什么是不太可能的。”

  黑客们对企业数据库补丁的困难问题特别清楚。事实上,企业正指望backlog。那种企业能够在一个数据中心中就可以锁定少量数据库的日子一去不复返了:当今的多数组织,拥有成千上万的数据库需要配置、保障**、实施监视,而远程用户、客户和企业合伙人都需要访问这些数据库。

  数据库**厂商Sentrigo的CTO Slavik Markovich说,“困扰我的一个重大问题是,在我访问一个客户的站点时,通常情况下,其数据库的配置是很脆弱的,以至于很容易就可以利用其漏洞。你通常并不需要缓冲区溢出或SQL注入攻击,因为这种数据库的初始配置总体上就是不**的。”

  所有这些低垂的“果实”使得数据库攻击并不一定很复杂。Markovich说,“这些是基本的配置问题,因此一个黑客并不必要做一些真正复杂的事情,因为这些简单的方法就可以奏效。”

  那么,这些攻击是什么呢,企业如何阻止这种攻击?下面我们看一下当今的黑客们正在利用的六大数据库攻击。多数攻击都利用了组织设置其数据库中的极明显的缺陷。有一些缺陷对于内部的恶意人员更为有用,而另外一些由那些试图得到公司的贵重数据的不法之徒所利用。不管怎样,锁定数据库的**途径是认识到罪恶之手是如何进入的。

  下面是六大数据库攻击:

  1.强力(或非强力)破解弱口令或默认的用户名及口令

  2.特权提升

  3.利用未用的和不需要的数据库服务和和功能中的漏洞

  4.针对未打补丁的数据库漏洞

  5.SQL注入

  6.窃取备份(未加密)的磁带
  
  下面分别分析一下:

  1.对弱口令或默认用户名/口令的破解

  以前的Oracle数据库有一个默认的用户名:Scott及默认的口令:tiger;而微软的SQL Server的系统管理员账户的默认口令是也是众所周知。

  当然这些默认的登录对于黑客来说尤其方便,借此他们可以轻松地进入数据库。

  Oracle和其它主要的数据库厂商在其新版本的产品中表现得聪明起来,它们不再让用户保持默认的和空的用户名及口令等。但这并不意味着,所有的组织都在较老的数据库中敞开着大门。

  Forrester的Yuhanna说,“问题是企业拥有15000个数据库,而完全地保护其**并不容易。有时企业只能保障关键数据库的**,其它的就不太**了。现在,较新的数据库强制使你在安装时改变系统管理员账户的默认口令。但较老的数据库版本可能存在着问题。”

但即使是**的、非默认的数据库口令也是不**的。Sentrigo的 Markovich 说,“你总可以在客户那里找到弱口令和易于猜测的口令。通过强力破解或只试着用不同的组合就可以轻易地找到这种口令。”

  口令破解工具有很多,并且通过Google搜索或sectools.org等站点就可以轻易地获得,这样就会连接到Cain 、 Abel或John the Ripper等流行的工具。

  保护自己免受口令攻击的*佳方法:避免使用默认口令,建立强健的口令管理程序并对口令经常改变。

  2.特权提升

  有几种内部人员攻击的方法可以导致恶意的用户占有超过其应该具有的系统特权。而且外部的攻击者有时通过破坏操作系统而获得更**别的特权。应用**公司的销售副总裁Ted Julian说,“这是一种常见的威胁因素。”

  特权提升通常更多地与错误的配置有关:一个用户被错误地授与了超过其实际需要用来完成工作的、对数据库及其相关应用程序的访问和特权。

  Forrester的Yuhanna说,“这是一个控制问题。有时一个企业并没有提供哪些人员需要访问何种资源的良好框架结构,而且通常情况下,数据库管理员并没有从业务上理解企业的数据。这是问题之一。”

  而且,有时一个内部的攻击者(或者一个已经控制了受害人机器的外部的家伙)可以轻松地从一个应用程序跳转到数据库,即使他并没有这个数据库的相关凭证也可以如此。Yuhanna 说,“一个非特权用户可以试着连接到数据库,只要他可以访问一个系统,如CRM,他就可以用同样的口令通过检查,即使他没有获得此数据库的授权。有些控制并没有实现很好的集中化。”

  Sentrigo的Markovich近来能够通过一个拥有少量特权的用户账户攻入一个客户的数据库。Markovich说,“他们要求我攻入其数据库。我找到了一个少量特权的用户口令,然后就进入了系统。然后我检查了他的特权,他拥有对数据库的只读性访问,因此一个少量特权的用户可以访问读取数据库内的任何表,包括信用卡信息、个人信息。因此,我说:‘我不需要攻入数据库。’”

  专家们说,经验法则应当说是仅给用户所需要的数据库访问和权力,不要有更多的东西。

  还有那些拥有合法访问的特权用户,他们头脑中可能并没有合法的操作。“你如何控制访问呢?这个领域也正在开始演化。”

  3.利用未用的和不需要的数据库服务和功能中的漏洞

  当然,一个外部的攻击者会寻找较弱的数据库口令,看其潜在的受害人是否在运行其Oracle数据库上运行监听程序(Listener)功能。监听程序可以搜索出到达Oracle数据库的网络连接,并可以转发此连接,这样一来就会将用户和数据库的链接暴露出来。

  只需采用一些Google hacking攻击,一位攻击者就可以搜索并找到数据库服务上暴露的监听程序。Markovich 说,“许多客户并没有在监听程序上设置口令,因此,黑客就可以搜索字符串并找出Web上活动的监听程序。我刚才搜索了一下,发现有一些可引起人们注意的东西,如政府站点。这确实是一个大问题。”

  其它的特性,如操作系统和数据库之间的钩子可以将数据库暴露给攻击者。这种钩子可以成为达到数据库的一个通信链接。Yuhanna说,“在你链接库和编写程序时…那将成为与数据库的界面,”你就是在将数据库暴露出去,并可能在无认证和无授权的情况下让黑客进入内部。

  通常,数据库管理员并没有关闭不需要的服务。Julian 说,“他们只是任其开着。这种设计过时且管理跟不上,这是让其发挥实际作用的*简单方法。不需要的服务在基础结构中大摇大摆地存在,这会将你的漏洞暴露在外。”(完)