数据库服务器实际上是每一个电子交易、金融和企业资源规划(ERP)系统的基础,它还经常包括来自商业伙伴和客户的敏感信息。尽管这些系统的数据完整性和 安全性是相当重要的,但对数据库采取的安全检查措施的级别还比不上操作系统和网络的安全检查措施的级别。许多因素都可能破坏数据的完整性并导致非法访问, 这些因素包括复杂程度、密码安全性较差、误配置、未被察觉的系统后门以及自适应数据库安全方法的强制性常规使用等。

数据库安全问题为什么非常重要?

保护系统敏感信息和数字资产不受非法访问。

任 何公司的主要电子数字资产都存贮在现代的关系数据产品中。商业机构和zf组织都是利用这些数据库服务器得到人事信息,如员工的工资表,医疗记录等。因此他 们有责任保护别人的隐私,并为他们保密。数据库服务器还存有以前的和将来的敏感的金融数据,包括贸易记录、商业合同及帐务数据等。象技术的所有权、工程数 据,甚至市场企划等决策性的机密信息,必须对竟争者保密,并阻止非法访问,数据库服务器还包括详细的顾客信息,如财务帐目,信用卡号及商业伙伴的信用信息 等。

数据库是个极为复杂的系统,因此很难进行正确的配置和安全维护

数据库服务器的应用相当复杂,掌握起来非常困难-当然 竟争者使用的操作系统也是一样的复杂。诸如Oracle、sybase、Microsoft SQL服务器都具有以下特征:用户帐号及密码、校验系统、优先级模型和控制数据库目标的特别许可、内置式命令(存储的步骤或包)、唯一的脚本和编程语言 (通常为SQL的特殊衍生语)、middleware、网络协议、补丁和服务包、强有力的数据库管理实用程序和开发工具。许多DBA都忙于管理复杂的系 统,所以很可能没有检查出严重的安全隐患和不当的配置,甚至根本没有进行检测。所以,正是由于传统的安全体系在很大程度上忽略了数据库安全这一主题,使数 据库专业人员也通常没有把安全问题当作他们的首要任务。“自适应网络安全”的理念-将安全问题看作持续不断的“工作进程”,而不是一次性的检查-并未被大 多数数据库管理者所接受。

保障数据库服务器上的网络和操作系统数据安全是至关重要的,但这些措施对于保护数据库服务器的安全还很不够。

在 许多资深安全专家中普遍存在着一个错误概念,他们认为:一旦访问并锁定了关键的网络服务和操作系统的漏洞,服务器上的所有应用程序就得到了安全保障。现代 数据库系统具有多种特征和性能配置方式,在使用时可能会误用,或危及数据的保密性、有效性和完整性。首先,所有现代关系型数据库系统都是“可从端口寻址 的”,这意味着任何人只要有合适的查询工具,就都可与数据库直接相连,并能躲开操作系统的安全机制。例如:可以用TCP/IP协议从1521和1526端 口访问Oracle 7.3和8数据库。多数数据库系统还有众所周知的默认帐号和密码,可支持对数据库资源的各级访问。从这两个简单的数据相结合,很多重要的数据库系统很可能 受到威协。不幸的是,高水平的***者还没有停止对数据库的***。

拙劣的数据库安全保障设施不仅会危及数据库的安全,还会影响到服务器的操作系统和其它信用系统。

还 有一个不很明显的原因说明了保证数据库安全的重要性-数据库系统自身可能会提供危及整个网络体系的机制。例如,某个公司可能会用数据库服务器保存所有的技 术手册、文档和白皮书的库存清单。数据库里的这些信息并不是特别重要的,所以它的安全优先级别不高。即使运行在安全状况良好的操作系统中,***者也可通过 “扩展入驻程序”等强有力的内置数据库特征,利用对数据库的访问,获取对本地操作系统的访问权限。这些程序可以发出管理员级的命令,访问基本的操作系统及 其全部的资源。如果这个特定的数据库系统与其它服务器有信用关系,那么***者就会危及整个网络域的安全。

数据库是新型电子交易、企业资源规划(ERP)和其它重要商业系统的基础。

在 电子商务、电子贸易的着眼点集中于WEB服务器、Java和其它新技术的同时,应该记住这些以用户为导向和企业对企业的系统都是以Web服务器后的关系数 据库为基础的。它们的安全直接关系到系统的有效性、数据和交易的完整性、保密性。系统拖延效率欠佳,不仅影响商业活动,还会影响公司的信誉。不可避免地, 这些系统受到***的可能性更大,但是并未对商业伙伴和客户敏感信息的保密性加以更有效的防范。此外,ERP和管理系统,如ASPR/3和 PeopleSoft等,都是建立在相同标准的数据库系统中。无人管理的安全漏洞与时间拖延、系统完整性问题和客户信任等有直接的关系。

我需要寻找哪此类型的安全漏洞呢?

传统的数据库安全系统只侧重于以下几项:用户帐户、作用和对特定数据库目标的操作许可。例如,对表单和存储步骤的访问。必须对数据库系统做范围更广的彻底安全分析,找出所有可能领域内的潜在漏洞,包括以下提到的各项内容。

与销售商提供的软件相关的风险-软件的BUG、缺少操作系统补丁、脆弱的服务和选择不安全的默认配置。

与管理有关的风险 -可用的但并未正确使用的安全选项、危险的默认设置、给用户更多的不适当的权限,对系统配置的未经授权的改动。

与用户活动有关的风险-密码长度不够、对重要数据的非法访问以及窃取数据库内容等恶意行动。

以上各类危险都可能发生在网络设备、操作系统或数据库自身当中。对数据库服务器进行安全保护时,都应将这些因素考虑在内。

数据库安全-漏洞区域及示例

在重要数据库服务器中,还存在着多种数据库服务器的漏洞和错误配置。下面列出了几个实例。

安全特征不够成熟-绝大多数常用的关系数据库系统已经存在了十多年之久,并且具有强大的特性,产品非常成熟。但不幸的是,IT及安全专业人士认为理所当然应该具有的许多特征,在操作系统和现在普遍使用的数据库系统中,并没有提供。

非内建式数据库标准安全性能
MS SQL Server Sybase Oracle 7 Oracle 8
帐户锁定设备 no no no yes
重命名管理帐户 no no no no
要求严密的口令 no no no yes
陈旧的帐户 no no no no
密码失效 no yes no yes
登录时间限制 no no no no

例 如,上表列出了大多数IT专业人士期望或要求操作系统所应具备的特性,但在数据库服务器的标准安全设施中并未出现。由于这些数据库都可进行端口寻址的,操 作系统的核心安全机制并未应用到与网络直接联接的数据库中。一些产品,例如Microsoft SQL Server, 都可利用功能更加强大的Windows NT安全机制去发现上面提到的安全漏洞。但是,考虑到兼容性问题(运行环境并不全是Windows NT),所以大多数依然执行MS SQL Server的安全标准。而实施则是另外一回事了。如果公司实用的是Oracle 8,管理员如何能知道是否真地实施了安全特性?是否一直在全公司中得到实施?

这几项特性相结合,使得与之相关的问题更加严峻。由于系统管 理员的帐号是不能重命名的(SQL和Sybase是“sa”,对于Oracle是“System”和“sys”),如果没有密码封锁可用或已配置完毕,入 侵者就可以对数据库服务器发动强大字典式登录进攻,最终能破解密码,有什么能够挡住他们对服务器耐心,持久的高水平***呢?

数据库密码的 管理-在多数数据库系统提供的安全标准中,没有任何机制能够保证某个用户正在选择有力的-或任意的-密码。这一基本的安全问题需要细心的监督。此外还需要 对全部密码列表进行管理和安全检查。例如,Oracle数据库系统具有十个以上地特定地默认用户帐号和密码,此外还有用于管理重要数据库操作的唯一密码, 如对Oracle数据库开机程序的管理、访问网络的听众过程以及远程访问数据库的权限等。如果安全出现了问题,这些系统的许多密码都可让***者对数据库进 行完全访问,这些密码甚至还被存储在操作系统的普通文本文件里。下面有几个示例:

Oracle Internal 密码-Oracle内部密码存放在文件名为“strXXX.cmd”的文本文件中,XXX是Oracle系统的ID或SID,默认值为“ORCL”。用在 Oracle数据库的启动过程中,要用到Oracle Internet密码,具有随意访问数据库资源的权力。这个文件应妥善保管,以用于基于Windows NT的ORACLE程序。

Oracle 监听程序过程密码-用于起动并停止Oracle监听程序过程的密码,该过程可将所有的新业务路由到系统上合适的Oracle例子中,需选择一个保密性强的 密码替换系统的默认值,使用许可必须在“listener.ora”文件中得到保护,该文件存贮了Oracle所有的使用密码。对密码的不当访问可能会使 ***者对基于Oracle的电子交易站点进行拒绝服务***。

Oracle内部密码 -“orapw”文件许可控制-Oracle内部密码和由SYSDBA授权的帐号密码存贮在“Orapw”文本文件中。尽管文件已被加密,但在 ORACLE的UNIX和Windows NT的程序中,还是要限制该文件的使用权限。如果该文件被访问,那么遭解密的文件很容易遭到强有力的***。

这些例子说明了管理员、系统密码和帐号是何等的重要,它们都可能会遭到意想不到的***方法的***。注意密码管理问题决不仅限于Oracle数据库,几乎所有主要数据库提供商的产品都有这种问题。

操作系统的后门-许多数据库系统的特征参数尽管方便了DBA,但也为数据库服务器主机操作系统留下了后门。

如 上所述,对Sybase或SQL服务器的“sa”密码造成危害的***者有可能利用“扩展入驻程序”,得到基本操作系统的使用权限。以“sa”的身份登录, ***者使用扩展入驻程序xp–cmdshell,该程序允许Sybase或SQL服务器的用户运行系统指令,就象该用户在服务器控制台上运行指令一样。例 如,可实用下列SQL指令添加一个Windows NT帐号,帐号名为“hacker1”,密码为“nopassoword”,并把“hacker1”添加到“Administrators”组:

xp-cmdshell ‘net user hacker1 nopassword/ADD’
go

xp-comdshell ’net localgroup/ADD Administrators hacker1’
go

现 在这个非法***者就成了Windows NT的管理员了(我们只能祈祷这个SQL服务器不是域控制器)。这个简单的***之所以成功,是因为命令被提交给实用Windows NT帐号的操作系统,而MSSQLServer的服务就运行在这个帐号下。在默认情况下,这个帐号就是“LocalSystem”帐号---本地 Windows NT系统中最有效力的帐号。另一个途径是***可能使用SQL服务器,利用入驻程序xp-regread从注册表中读出加密的Windows NT SAM密码,对操作系统的安全造成威胁。由于有几种免费的Windows NT密码***器软件,因此保管好加密的Windows NT密码的安全变得格外重要。以下例子说明了***者是怎样得到信息的:
xp-regread’HKEY–LOCAL–MACHINE’,’SECURITYSAMDomainsAccount’,’F’

注意,从注册表中读出加密密码是一件本地Windows NT管理员帐号都无法做到的事。SQL服务器之所以能够做到,是因为默认方式运行的SQL服务使用的恰恰就是“LocalSystem”帐号。

Oracle 数据库系统还具有很多有用的特征,可用于对操作系统自带文件系统的直接访问。例如在合法访问时,UTL_FILE软件包允许用户向主机操作系统进行读写文 件的操作。UTL_FILE_DIR简档变量很容易配置错误,或被故意设置为允许Oracle用户用UTL_FILE软件包在文件系统的任何地方进行写入 操作,这样也对主机操作系统构成了潜在的威胁。

校验-关系数据库系统的校验系统可以记录下信息和事件,从基本情况到任一细节,无一遗漏。 但是校验系统只在合理使用和配置的前提下,才能提供有用的安全防范和警告信息。当***者正在试图侵入特定的数据库服务器时,这些特征可及早给出警告信息, 为检测和弥补损失提供了宝贵的线索。

特洛伊***程序-尽管人们知道操作系统中的特洛伊***程序已经有好几年了,但是数据库管理员还需注意 到***程序带给系统入驻程序的威胁。一个著名的特洛伊***程序修改了入驻程序的密码,并且当更新密码时,***者能得到新的密码。例如,某个个人可以在 sp–password系统入驻程序中添加几行命令,就可在表单中增加新的密码,用e-mail传递密码或将密码写入外部文件以备日后使用。这一办法可连 续获取密码,直到***者得到的“sa”密码被更换-使得更深层的***未被察觉。一个***者或心怀不满的雇员只需进入系统一次,放置好特洛伊***后就可得到 以后的一系列密码。

总结

安全专业人士、校验员、DBA和电子商务的规划人员在部署重要商业系统时,都需注意到数据库的安 全问题。要想了解的系统的安全状态和发展方向,您就得部署系统,以对数据库服务器做出最彻底的评估,并进行常规的安全评估。所有系统都应该采用信息风险管 理原则,以进行监督、检测,对安全漏洞做出响应。