美国Verizon就“核心数据是如何丢失的”做过一次全面的市场调查,结果发现,75%的数据丢失情况是由于数据库漏洞造成的,这说明数据库的安全非常重要。
据CVE的数据安全漏洞统计,Oracle、SQL Server、MySQL等主流数据库的漏洞逐年上升,以Oracle为例,当前漏洞总数已经超过了1200多个。
数据库安全漏洞从来源上,大致可以分为四类:缺省安装漏洞、人为使用上的漏洞、数据库设计缺陷、数据库产品的bug。
1. 缺省安装漏洞
·数据库安装后的缺省用户名和密码
在主流数据库中往往存在若干缺省数据库用户,并且缺省密码都是公开的,攻击者完全可以利用这些缺省用户登录数据库。
例如,Oracle中有sys、system、sysman、scott等700多个缺省用户;MySQL本机的root用户可以没有口令;网络上主机名为build的root和用户可以没有口令。
·数据库安装后的缺省端口号
在主流数据库中缺省端口号是固定的,如Oracle是1521、SQL Server是1433、MySQL是3306等。
·数据库安装后低安全级别设置
数据库安装后的缺省设置,安全级别一般都较低。
如MySQL中本地用户登录和远程build主机登录不校验用户名密码
如Oracle中不强制修改密码、密码的复杂度设置较低、不限定远程链接范围、通讯为明文等。
·启用不必要的数据库功能
在数据库的缺省安装中为了便于使用和学习,提供了过量的功能和配置。如Oracle安装后无用的示例库、有威胁的存储过程; MySQL的自定义函数功能。
典型数据库泄密案例:Korea会展中心数据库被入侵
2011年5月,黑客入侵Korea会展中心数据库,在网上爆出其中大量的客户资料数据,并展示数据库操操作过程。
黑客首先通过端口扫描技术,检测出该服务器上开放着1521端口(Oracle数据库的缺省端口),首先探明该主机便是数据库服务器。接着利用扫描程序,检测到缺省系统用户dbsnmp并未被锁定,且保留着数据库安装时的缺省密码。
之后黑客利用权限提升的漏洞,将dbsnmp用户的权限提升至DBA,开始了数据库访问之旅。
(责任编辑:)