据Verizon 2012年的数据泄露调查分析报告和对发生的信息安全事件技术分析,总结出信息泄露呈现两个趋势:
(1)黑客通过B/S应用,以Web服务器为跳板,窃取数据库中数据;传统解决方案对应用访问和数据库访问协议没有任何控制能力,比如:SQL注入就是一个典型的数据库黑客攻击手段。
(2)数据泄露常常发生在内部,大量的运维人员直接接触敏感数据,传统以防外为主的网络安全解决方案失去了用武之地。
数据库在这些泄露事件成为了主角,这与我们在传统的安全建设中忽略了数据库安全问题有关,在传统的信息安全防护体系中数据库处于被保护的核心位置,不易被外部黑客攻击,同时数据库自身已经具备强大安全措施,表面上看足够安全,但这种传统安全防御的思路,存在致命的缺陷。
常见的数据库攻击方法
下面是六大数据库攻击:
1.强力(或非强力)破解弱口令或默认的用户名及口令
2.特权提升
3.利用未用的和不需要的数据库服务和和功能中的漏洞
4.针对未打补丁的数据库漏洞
5.SQL注入
6.窃取备份(未加密)的磁带
下面分别分析一下:
对弱口令或默认用户名/口令的破解
以前的Oracle数据库有一个默认的用户名:Scott及默认的口令:tiger;而微软的SQL Server的系统管理员账户的默认口令是也是众所周知。
但即使是唯一的、非默认的数据库口令也是不安全的。Sentrigo的 Markovich 说,“你总可以在客户那里找到弱口令和易于猜测的口令。通过强力破解或只试着用不同的组合就可以轻易地找到这种口令。”
口令破解工具有很多,并且通过Google搜索或sectools.org等站点就可以轻易地获得,这样就会连接到Cain 、 Abel或John theRipper等流行的工具。
特权提升
有几种内部人员攻击的方法可以导致恶意的用户占有超过其应该具有的系统特权。而且外部的攻击者有时通过破坏操作系统而获得更高级别的特权。应用安全公司的销售副总裁Ted Julian说,“这是一种常见的威胁因素。”
特权提升通常更多地与错误的配置有关:一个用户被错误地授与了超过其实际需要用来完成工作的、对数据库及其相关应用程序的访问和特权。
Sentrigo的Markovich近来能够通过一个拥有少量特权的用户账户攻入一个客户的数据库。Markovich说,“他们要求我攻入其数据库。我找到了一个少量特权的用户口令,然后就进入了系统。然后我检查了他的特权,他拥有对数据库的只读性访问,因此一个少量特权的用户可以访问读取数据库内的任何表,包括信用卡信息、个人信息。因此,我说:‘我不需要攻入数据库。’”
利用未用的和不需要的数据库服务和功能中的漏洞
当然,一个外部的攻击者会寻找较弱的数据库口令,看其潜在的受害人是否在运行其Oracle数据库上运行监听程序(Listener)功能。监听程序可以搜索出到达Oracle数据库的网络连接,并可以转发此连接,这样一来就会将用户和数据库的链接暴露出来。
只需采用一些Google hacking攻击,一位攻击者就可以搜索并找到数据库服务上暴露的监听程序。Markovich 说,“许多客户并没有在监听程序上设置口令,因此,黑客就可以搜索字符串并找出Web上活动的监听程序。我刚才搜索了一下,发现有一些可引起人们注意的东西,如政府站点。这确实是一个大问题。”
其它的特性,如操作系统和数据库之间的钩子可以将数据库暴露给攻击者。这种钩子可以成为达到数据库的一个通信链接。Yuhanna说,“在你链接库和编写程序时…那将成为与数据库的界面,”你就是在将数据库暴露出去,并可能在无认证和无授权的情况下让黑客进入内部。
针对未打补丁的数据库漏洞
好消息是Oracle和其它的数据库厂商确实在为其漏洞打补丁。坏消息是单位不能跟得上这些补丁,因此它们总是处于企图利用某种机会的老谋深算的攻击者控制之下。
数据库厂商总是小心翼翼地避免披露其补丁程序所修正的漏洞细节,但单位仍以极大的人力和时间来苦苦挣扎,它会花费人力物力来测试和应用一个数据库补丁。例如,给程序打补丁要求对受补丁影响的所有应用程序都进行测试,这是项艰巨的任务。
而且一些黑客站点将一些已知的数据库漏洞的利用脚本发布了出来,他说。即使跟得上补丁周期有极大困难,单位也应当打补丁。他说,例如,Oracle4月15日的补丁包含了数据库内部的17个问题。这些和其它的补丁都不应当掉以轻心。每一个问题都能够破坏你的数据库。
SQL注入
SQL注入式攻击并不是什么新事物了,不过近来在网站上仍十分猖狂。近来这种攻击又侵入了成千上万的有着鲜明立场的网站。
虽然受影响的网页和访问它的用户在这些攻击中典型情况下都受到了重视,但这确实是黑客们进入数据库的一个聪明方法。数据库安全专家们说,执行一个面向前端数据库Web应用程序的SQL注入攻击要比对数据库自身的攻击容易得多。直接针对数据库的SQL注入攻击很少见。
在字段可用于用户输入,通过SQL语句可以实现数据库的直接查询时,就会发生SQL攻击。也就是说攻击者需要提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据。
除客户端之外,Web应用程序是最脆弱的环节。有些情况下,如果攻击者得到一个要求输入用户名和口令的应用程序的屏幕,而且应用程序并不检查登录的内容的话,他所需要做的就是提供一个SQL语句或者数据库命令,并直接转向数据库。
窃取(未加密的)备份磁带
如果备份磁带在运输或仓储过程中丢失,而这些磁带上的数据库数据又没有加密的话,一旦它落于罪恶之手,这时黑客根本不需要接触网络就可以实施破坏。
但这类攻击更可能发生在将介质销售给攻击者的一个内部人员身上。只要被窃取的或没有加密的磁带不是某种Informix或HP-UX 上的DB2等较老的版本,黑客们需要做的只是安装好磁带,然后他们就会获得数据库。
数据库审计
什么是数据库审计
数据库审计服务是一款专业、主动、实时监控数据库安全的审计产品。
数据库审计服务将数据库监控、审计技术与公共云环境相结合,支持对阿里云平台中的RDS云数据库、ECS自建数据库进行审计,针对数据库SQL注入、风险操作等数据库风险行为进行记录与告警,形成对核心数据的安全防护,为您的云端数据库提供完善的安全诊断、维护、管理功能。
数据库审计服务,可针对数据库SQL注入、风险操作等数据库风险操作行为进行记录与告警。支持RDS云数据库、ECS自建数据库,为云上数据库提供安全诊断、维护、管理能力。
RDS数据库审计
通过在访问数据库的应用系统服务器上部署数据库审计Agent,获取访问日志数据用于日志审计,实现对RDS云数据库的审计。
ECS自建数据库审计
通过在ECS中安装数据库审计Agent,获取数据库操作日志,实现对ECS自建数据库的审计。支持目前流行的各类数据库,保证数据审计兼容、有效。
数据库审计功能
1.用户行为发现审计
- 关联应用层和数据库层的访问操作
- 可溯源到应用者的身份和行为
2.多维度线索分析
- 风险和危害线索:高中低的风险等级、SQL注入、黑名单语句、违反授权策略的SQL行为
- 会话线索:根据时间、用户、IP、应用程序、和客户端多角度分析
- 详细语句线索:提供用户、IP、客户端工具、访问时间、操作对象、- SQL操作类型、成功与否、访问时长、影响行数等多种检索条件
3.异常操作、SQL注入、黑白名单实时告警
- 异常操作风险:通过IP、用户、数据库客户端工具、时间、敏感对象、返回行数、系统对象、高危操作等多种元素细粒度定义要求监控的风险访问行为
- SQL注入:系统提供了系统性的SQL注入库,以及基于正则表达式或语法抽象的SQL注入描述,发现异常立即告警
- 黑白名单:提供准确而抽象的方式,对系统中的特定访问SQL语句进行描述,使这些SQL语句出现时能够迅速报警
4.针对各种异常行为的精细化报表
- 会话行为:登录失败报表、会话分析报表
- SQL行为:新型SQL报表、SQL语句执行历史报表、失败SQL报表
- 风险行为:告警报表、通知报表、SQL注入报表、批量数据访问行为报表
- 政策性报表: 塞班斯报表