旧站历史归档本页按旧站记录保存,用于发布留痕和来源追溯,不代表内容仍在持续更新。
数据库安全:守护数据资产的关键防线
仅保留于历史归档

一、数据库安全的两层含义
(一)系统运行安全
- •
网络攻击:不法分子通过网络、局域网等途径入侵电脑,使系统无法正常启动,或通过超负荷运行大量算法、关闭CPU风扇等方式让CPU过热烧坏,破坏系统的正常运行。 - •
恶意操作:如通过B/S应用以Web服务器为跳板,窃取数据库中数据;利用SQL注入等典型攻击手段,对数据库进行非法操作。
(二)系统信息安全
- •
拖库现象:黑客盗取数据库的技术不断升级,尽管数据库的防护能力在提升,但单纯依靠数据库自身的防护仍难以抵御日益复杂的攻击手段。 - •
内部人员风险:包括“非故意的授权用户攻击”和内部人员错误,如因不慎造成意外删除或泄漏数据、非故意规避安全策略、为备份或“将工作带回家”而进行非授权备份等;同时也存在内部人员因贪欲或报复欲,利用自身权限窃取数据的风险。
二、数据库系统的安全特性
(一)数据独立性
- •
物理独立性:用户的应用程序与存储在磁盘上的数据库中的数据相互独立。这意味着当数据库的物理存储结构发生变化时,如存储设备的更换、数据文件的重新组织等,应用程序不需要进行修改,保证了应用程序的稳定性和可移植性。 - •
逻辑独立性:用户的应用程序与数据库的逻辑结构相互独立。当数据库的逻辑结构发生改变,如增加或删除表、修改表结构等,应用程序在一定程度上可以不受影响,减少了因数据库结构调整而对应用程序带来的修改工作量。
(二)数据安全性
- •
数据隔离:将数据库中需要保护的部分与其他部分相隔,限制对敏感数据的访问,防止数据的非法获取。 - •
授权规则:采用账户、口令和权限控制等访问控制方法,只有经过授权的用户才能访问相应的数据,根据用户的角色和职责分配不同的访问权限,确保数据的访问在可控范围内。 - •
数据加密:对数据进行加密后存储于数据库,即使数据被非法获取,攻击者也难以解读其中的内容,有效保护数据的机密性。
(三)数据完整性
- •
正确性:数据的输入值与数据表对应域的类型一样,确保输入的数据符合数据库的设计要求,避免因数据类型不匹配而导致的数据错误。 - •
有效性:数据库中的理论数值满足现实应用中对该数值段的约束,例如年龄字段的值应在合理的范围内,保证数据的合理性。 - •
一致性:不同用户使用的同一数据应该是一样的,防止因数据不一致而导致的信息混乱和决策失误,确保数据在不同用户和应用场景下的一致性。
(四)并发控制
(五)故障恢复
三、数据库面临的安全威胁
(一)内部人员错误
- •
非故意的授权用户攻击:授权用户可能因不慎而造成意外删除或泄漏数据,例如在操作过程中误删除重要数据,或者因疏忽将敏感数据泄露给他人。 - •
非故意的规避安全策略:用户为了备份或“将工作带回家”等原因,进行非授权的备份操作,违反了公司的安全策略,可能导致数据在非安全环境下存储,增加了数据泄露的风险。
(二)社交工程
(三)黑客攻击
- •
SQL注入:一种典型的数据库黑客攻击手段,攻击者通过在应用程序的输入字段中插入恶意的SQL代码,绕过应用程序的验证机制,直接对数据库进行非法操作,如获取、修改或删除数据。 - •
利用数据库漏洞:黑客通过探测数据库系统的漏洞,如未修复的安全补丁、配置错误等,利用这些漏洞入侵数据库,获取敏感数据或控制数据库服务器。
(四)高级持续威胁
四、数据库安全的防护手段
(一)安全配置
- •
使用安全的密码策略:把密码策略摆在所有安全配置的第一步,设置健壮的密码,建议密码含有多种数字字母组合并9位以上,定期修改密码,避免使用过于简单的密码,特别是对于sa账号,更要加强保护。 - •
使用安全的账号策略:不要让sa账号的密码写于应用程序或者脚本中,根据实际需要分配账号,并赋予仅仅能够满足应用要求和需要的权限,避免管理员权限的账号泛滥。 - •
加强数据库日志的记录:审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,定期查看SQL Server日志检查是否有可疑的登录事件发生。 - •
管理扩展存储过程:对存储过程进行清理,删除不必要的存储过程,避免因一些系统存储过程被利用来提升权限或进行破坏,如去掉Xp_cmdshell等可能带来安全隐患的存储过程。 - •
使用协议加密:在条件允许的情况下,使用SSL来加密SQL Server 2000使用的Tabular Data Stream协议,防止网络传输中的数据被截获,保护数据库账号和密码等敏感信息的安全。 - •
避免端口探测:更改SQL Server默认的1433端口,拒绝来自1434端口的探测,对网络连接进行IP限制,只允许授权的IP地址访问数据库,隐藏SQL Server实例,防止他人轻易探测到数据库的端口和实例信息。
(二)技术防护
- •
数据加密:包括存储加密和传输加密。存储加密可采用透明存储加密(内核级加密保护方式,对用户完全透明,将数据在写到磁盘时对数据进行加密,授权用户读取数据时再对其进行解密)和非透明存储加密(通过多个加密函数实现);传输加密包括链路加密(在链路层进行加密,报文和报头均加密)和端到端加密(在发送端加密,接收端解密,只加密报文不加密报头)。 - •
视图机制:通过视图把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护,间接地实现支持存取谓词的用户权限定义。 - •
审计(Audit):启用专用的审计日志,将用户对数据库的所有操作记录在上面,审计员利用审计日志监控数据库中的各种行为,找出非法存取数据的人、时间和内容。审计可分为服务器事件、系统权限、语句事件、模式对象事件等,还可分为用户级审计和系统级审计,用户级审计用于保护用户自己的数据,系统级审计用于保护整个数据库系统的安全。 - •
推理控制:处理强制存取控制未解决的问题,避免用户利用能够访问的数据推知更高密级的数据,常用方法包括基于函数依赖的推理控制和基于敏感关联的推理控制。 - •
隐蔽信道处理:处理强制存取控制未解决的隐蔽信道问题,防止数据通过隐蔽信道被非法获取。
五、总结
