0
点赞
收藏
分享

微信扫一扫

数据库系统安全

一、前言

数据库是网络信息系统的基础性软件,承载着各种各样的数据,成为应用系统的支撑平台。 国外主流的数据库系统有MSSQL、MySQL、Oracle、DB2等,国产数据库系统主要有人大金仓、达梦等。

数据库安全是指数据库的机密性、完整性、可用性能够得到保障,其主要涉及数据库管理安全、数据安全、数据库应用安全以及数据库运行安全。目前,许多关键信息基础设施基于数据库系统,如国家的人口基础信息库、法人单位基础信息库、自然资源和空间地理基础信息库、宏观经济数据库等基础性数据库都与数据库安全紧密相关,数据库安全运行及数据 安全可直接影响国家安全、社会安全和经济安全。对于公司企业来说,客户数据的丢失导致品牌的损害、竞争中处于劣势以及法律责任。随着数据库应用的普及和数据价值的凸显,数据库系统安全风险日益增加,有关数据库的网络安全事件时有出现,加强数据库安全管理和保护成为网络安全的重要工作之一。 

二、数据库安全威胁

数据库所处的环境日益开放,所面临的数据库安全威胁日益增多,主要阐述如下: 

(1)授权的误用(Misuses of Authority)。

合法用户越权获得他们不应该获得的资源,窃取程序或存储介质,修改或破坏数据。授权用户将自身的访问特权不适当地授予其他用户,导致系统安全策略受到威胁,使用户数据泄露。

(2)逻辑推断和汇聚(Logical Inference and Aggregation)。

利用逻辑推理,把不太敏感的数据结合起来可以推断出敏感信息。进行逻辑推断也可能要用到某些数据库系统以外的知识。与逻辑推断紧密相关的是数据汇聚安全问题,即个别的数据项是不敏感的,但是当足够多的个别数据值收集在一起时,就成为敏感的数据集。 

(3)伪装(Masquerade)。

攻击者假冒用户身份获取数据库系统的访问权限。 

(4)旁路控制(Bypassing Controls)。

在数据库设置后门,绕过数据库系统的安全访问控制机制。 

(5)隐蔽信道(Covert Channels)。

通常储存在数据库中的数据经由合法的数据信道被取出。与正常的合法信道相反,隐蔽信道利用非正常的通信途径传输数据以躲避数据库安全机制的控制,如共享内存、临时文件。 

(6) SQL 注入攻击 (SQL Injection) 。

攻击者利用数据库应用程序的输入未进行安全检查的漏洞,欺骗数据库服务器执行恶意的 SQL 命令。 SQL 注入攻击常常导致数据库信息泄露, 甚至会造成数据系统的失控。 

(7) 数据库口令密码破解。

利用口令字典或手动猜测数据库用户密码,以达到非授权访问数据库系统的目的。互联网常见的黑客攻击技术手段有“撞库”,其技术原理就是通过收集互联网已泄露的用户+口令密码信息,生成对应的字典表,尝试批量登录其他网站后,得到一系列可以登录的用户。 

(8) 硬件及介质攻击。

对数据库系统相关的设备和存储介质的物理攻击。

三、数据库安全隐患

1. 数据库用户账号和密码隐患 

虽然多数数据库提供基本安全功能,但是没有机制来限制用户必须选择健壮的密码。多数数据库系统有公开的默认账号和默认密码。例如, Oracle系统有超过 10个特殊的默认用户账号和密码,并且有特定的密码来管理一些数据库操作,如数据库的启动、控制网络监听进程和远程数据库登录特权。许多账号都能给入侵者完全访问数据库的机会,更严重的是,系统密码有些就储存在操作系统中的普通文本文件中。以Oracle数据库为例,其安全隐患如下: 

• Oracle 内部密码,储存在 strXXX.cmd 文件中,其中 XXX 是 Oracle 系统 ID 和 SID, 默认是 “ORCL" 。这个密码用于数据库启动进程,提供完全访问数据库资源。这个 文件在Windows NT 中需要设置权限。 

• Oracle 监听进程密码,保存在文件 ”listener.ora" (保存着所有的 Oracle 执行密码) 中,用于启动和停止 Oracle 的监听进程。这就需要设置一个健壮的密码来代替默认的, 并且必须对访问设置权限。入侵者可以通过这个弱点进行DoS攻击。 

• Oracle 的 “orapw" 文件权限控制, Oracle 内部密码和账号密码允许 SYSDBA 角色保存在 “orapw" 文本文件中,该文件的访问权限应该被限制。即使加密,也能被入侵者暴力破解。 

2. 数据库系统扩展存储过程隐患 

多数数据库系统提供了“扩展存储过程”的服务以满足数据库管理, 但是这也成为数据库系统的后门。对于Sybase 和 SQL Server 的账号 “sa", 入侵者可以执行“扩展存储过程”来 获得系统权限。只要登录为 “sa", 就可以使用扩展存储过程 xp_cmdshell, 这允许 Sybase 和 SQL Server 用户执行操作系统命令。

3.数据库系统软件和应用程序漏洞 

软件程序漏洞造成数据安全机制或OS安全机制失效,攻击者可以获取远程访问权限。例如,“黛蛇” (Dasher.B)蠕虫。该蠕虫可以针对微软MS04-045、MS04-039漏洞或利用SQL 溢出工具进行攻击。 

4.数据库系统权限分配隐患 

数据库管理员分配给用户的权限过大,导致用户误删除数据库系统数据,或者泄露数据库敏感数据。 

5.数据库系统用户安全意识薄弱 

数据库系统用户选择弱口令或者口令保管不当都会给攻击者提供进入系统的机会。例如,在操作系统中,留下历史记录,泄露操作人员的数据库密码。 

6.网络通信内容是明文传递 

利用数据库和应用程序之间网络通信内容未经加密的漏洞,网络窃听者窃取诸如应用程序特定数据或数据库登录凭据等敏感数据。 

7.数据库系统安全机制不健全 

数据库提供的安全机制不健全,导致安全策略无法实施。一些数据库不提供管理员账号重命名、登录时间限制、账号锁定。例如,MSSQL Server不能删除账号sa,且sa默认空口令。 黑客无须口令就能直接登录并控制MSSQL Server。

四、数据库安全需求

数据库系统的安全目标是保护数据库系统的安全运行及数据资源的安全性。通常来说,数据库的安全需求主要如下。 

1.数据库标识与鉴别 

标识与鉴别用于数据库用户身份识别和认证,用户只有通过认证后才能对数据库对象进行操作。 

2.数据库访问控制 

对数据资源及系统操作进行访问授权及违规控制。数据库系统一般提供自主访问控制、强制访问控制、角色访问控制等多种访问控制模式。

3. 数据库安全审计 

数据库系统提供安全审计机制,按照审计安全策略,对相关的数据库操作进行记录,形成数据库审计文件。审计记录的主要信息包括审计的操作类型、执行操作的用户标识、操作的时间、客体对象等用户行为相关信息。 

4. 数据库备份与恢复 

数据库系统具有数据库备份与恢复机制,当数据库系统出现故障时,可以实现对备份数据的还原以及利用数据库日志进行数据库恢复重建。

5. 数据库加密 

为阻止直接利用操作系统工具窃取或篡改数据库文件内容,数据库具有数据加密机制,能够对数据库中的敏感数据进行加密处理,并提供密钥管理服务。授权管理员无法对授权用户加密存储的数据进行正常解密,从而保证了用户数据的机密性。通过数据库加密,数据库的备份内容成为密文,从而能减少因备份介质失窃或丢失而造成的损失。 

6. 资源限制 

资源限制防止授权用户无限制地使用数据库服务器处理器 (CPU) 、共享缓存、数据库存储介质等数据库服务器资源,限制每个授权用户/授权管理员的并行会话数等功能。避免数据库系统遭受拒绝服务攻击。 

7. 数据库安全加固 

对数据库系统进行安全漏洞检查和修补,防止安全漏洞引入数据库系统。 

8. 数据库安全管理 

数据库系统提供安全集中管理机制,实现数据库的安全策略集中配置和管理。


举报

相关推荐

0 条评论