大数据背景下数据库的安全管理
2019-11-16侯珂珂蔡莉莉
文/侯珂珂 蔡莉莉
1 引言
随着信息技术的发展,社会已经进入了大数据时代。为了有效管理、挖掘、应用海量的数据,数据库技术被广泛应用于各行各业。互联网的快速发展,给广大用户提供了数据共享的平台,大数据以开放的姿态实现了各个领域的数据共享。然而,由于计算机网络环境的复杂性和数据库安全技术的不完善性,数据库信息安全正在面临较大的威胁和挑战。在大数据背景下,如何保证数据库信息的完整性、机密性和可用性,是亟待解决的命题。
2 大数据背景下数据库安全面临的威胁因素
数据库安全面临的威胁因素多种多样。从威胁的来源性上可将其划分成三大类:外部威胁、人为因素和内在脆弱性,如图1所示。外部威胁,主要是数据库系统外部环境中存在的漏洞和攻击;人为因素,表现在由于人的错误操作和疏忽所造成的安全威胁;内在脆弱性指数据库系统本身存在的漏洞和缺陷。
2.1 外部威胁
2.1.1 操作系统漏洞
从技术和规模上看,计算机软件无法保证百分之百的安全,几乎都或多或少的存在缺陷或漏洞。例如典型的TCP/IP协议的安全问题,在设计之初,设计人员只考虑了如何实现粗犷的信息通信,忽略了信息通信的安全性问题。因此,操作系统中的平台漏洞和安装在数据库服务器上的其他服务可能导致未经授权的访问,造成数据泄露、数据损坏。
2.1.2 SQL注入
图1:数据库安全威胁因素
数据库作为应用程序的一部分,通过SQL命令建立其和前端web的连接。用户在前端输入的数据可动态构建SQL语句,直接影响到后端的数据库。由于一些应用程序没有对用户端输入的数据进行合法性验证,使得攻击者可构建特殊的SQL命令,将其作为参数,传入web应用程序,并根据返回结果完成查询,获取数据库中的用户信息,形成SQL注入攻击。SQL注入作为最常见的数据库攻击技术之一,对Web应用程序构成了严重的安全威胁:它们允许攻击者获得对应用程序底层数据库的无限制访问权限以及数据库的潜在隐私信息,如用户名、身份证号、家庭住址、电话等。
2.1.3 恶意软件
恶意软件是指在未授权情况下,在计算机设备上执行损害任务的代码片段或软件,通过干扰软件进程实现控制,以窃取用户信息、干扰用户合法使用为目的。近年来,随着互联网技术的快速发展,恶意软件的种类和数量也在迅速增长,传播形式也呈现更加多元化的特点。例如,计算机病毒、间谍软件、木马、逻辑炸弹、恶意脚本等都属于恶意软件,可以通过邮件附件、短链接、网站、磁盘光盘、搜索引擎等形式进行传播,具有较强的隐蔽性、破坏力。黑客可以利用恶意软件,融合多种攻击策略和攻击方法,渗透到数据库中窃取数据。
2.1.4 拒绝服务攻击
拒绝服务攻击是一种常见的攻击方式。它通过消耗带宽、消耗系统资源等手段控制目标系统或网络,阻碍数据的正常传输,拒绝合法用户的正常服务请求。在拒绝服务攻击中,资源过载的攻击方式在数据库环境中尤为常见。通过发送大量的无用信息,消耗有限的数据库资源,严重影响信息的可用性。
2.2 人为因素
2.2.1 敏感数据以及备份文件的泄露
对于使用中和正式环境的数据库,许多单位或组织都在尽力维护。但是对遗弃或测试环境的数据库,则缺乏相应地安全管理,使数据库中的敏感数据面临威胁。
此外,备份介质也是威胁数据库安全的因素之一。数据库备份磁盘和磁带等介质因安全管理不当引起的失窃,也将泄露用户的敏感信息。
2.2.2 权限的过度滥用
当用户或应用程序被授予数据库的访问权限时,可能会被授予远远超过特定作业要求的通用默认访问权限。然而授予过多或不及时撤消应该收回的访问权限,可能造成权限滥用,以达到超出其工作职能要求的恶意目的。比如,某管理员仅需要获得更改职工的联系信息权限,却被授予了过多的数据库权限使其能更改薪资信息,这将严重影响数据库信息的完整性。
2.2.3 安全意识薄弱
数据库设计、管理人员的专业能力参差不齐,往往缺乏安全防范意识。在数据库设计和维护的过程中,设置简单的密码,无意识地泄露密码,不适当的操作以及没有定期修复补丁等,都会使数据库安全面临巨大威胁。此外,职能管理人员在使用数据库的过程中,也可能因缺乏安全意识,譬如无意中向非授权用户泄露账号、密码信息等,带来数据库安全问题。
2.3 内在脆弱性
2.3.1 数据库的通信协议漏洞
数据库供应商提供的通信协议存在不同程度的安全漏洞。例如,MySQL的CVE-2015-0411通信协议漏洞,使攻击者在未得到目标数据库网络访问权限或者数据库所在操作系统的访问权限的情况下,就可以访问MySQL数据库。而CVE-2016-0639协议漏洞,则使攻击者可以直接对数据库缓冲区发动进攻。SQL Slammer蠕虫利用SQL Server协议中的缺陷,通过分布式阻断服务攻击1434端口,从而感染SQL Server服务器。Oracle数据库的CVE-2013-3774远程安全漏洞通过攻击Oracle Net协议,不用通过身份验证就能实现攻击者的远程访问。虽然近几年的数据库漏洞安全报告表明,数据库通信协议的漏洞在逐步减少,但不可否认,一旦出现,将对数据库安全造成无法预估的威胁。
2.3.2 审计追踪不足
敏感数据和异常数据的数据库事务的自动跟踪和记录的重要性也愈发凸显,应作为数据库部署的关键要素进行考虑。若数据库审计策略不足,无法收集数据库活动的详细跟踪审核记录,当数据库遭到攻击或破坏时,相关人员无法及时做出响应,将严重危及数据库的安全。
2.3.3 数据库的错误配置
数据库的错误配置往往源自安装后的默认参数配置,具有隐秘性的特点,一般与产品的易用性、性能、兼容性等问题相关。一旦被攻击者发现,可能被长期利用,严重威胁数据库的机密性、完整性。例如,由于没有对数据库的监听器设置管理口令,Oracle数据库遭遇了TNS劫持攻击问题。利用CVE-2012-1675漏洞,攻击者就能在未提供用户名/密码的情况下,远程注册同名数据库实例,进行数据库劫持攻击。
3 数据库安全防范机制
为了保障数据库的安全性,本文从攻击防御技术、身份认证、访问控制技术、加密技术、审计追踪、备份和恢复技术方面探讨如何加强数据库的安全管理。
3.1 攻击防御技术
防御外部的主动攻击是保障数据库安全的第一层屏障。外部的主动攻击方法多种多样,往往具有破坏力强、隐秘性高的特点。因此,攻击防御技术应从安装防火墙、定期的病毒查杀、应用入侵检测技术、定期的漏洞检查以及及时安装相应补丁等方面提高数据库的安全防御能力。
3.2 身份认证技术
身份认证旨在对用户的身份进行标识和合法性验证。现实世界中的身份认证可以通过出示身份证件来完成,特殊领域还使用指纹或虹膜等生物特征。在数据库系统中,身份认证主要通过口令来完成。通过验证用户ID、密码的合法性,进而给予合法用户相应的操作权限。
3.3 访问控制技术
访问控制是保障数据机密性的重要手段。考虑对不同用户进行权限分级,当用户尝试访问数据时,访问控制机制将检查用户权限,防止越权访问和操作敏感数据。目前关系型数据库访问控制机制主要包含自主存取控制、强制存取控制、基于角色访问控制三种访问控制机制。自主存取控制,指用户对自己创建的访问对象有访问权限,且可授予或收回其他用户的访问权限。对于强制存取控制,用户及文件都设置了不同的权限级别,由管理员进行统一管理,用户无权限改变。而基于角色访问控制机制,则将权限和角色关联起来,将权限授予角色,通过指定用户的角色赋予用户权限,简化了权限管理。
3.4 加密技术
通过加密算法将原始数据加密成不可直接识别的密文,数据以密文的形式存储和传输,可以预防未经授权的访问和外部攻击。即便密文数据受到攻击或窃取,也不会造成信息的泄露,保障了机密性。加密的粒度包括了数据项加密、属性级加密、记录级加密和表级加密。
3.5 审计追踪
审计追踪技术可以通过追踪、分析用户对数据库的各类操作行为,包括用户对数据表、视图、触发器等数据库对象的操作,以及非授权用户的访问行为、数据库入侵行为、违规操作行为,实现及时的防护和预警;同时用户的各类操作行为也可以写入审计数据库中,以便日后进行查询、分析和过滤,实现数据库的有效监管。
3.6 数据库备份和恢复
数据备份是容灾的基础。硬件故障、软件错误、外部攻击、自然灾害、错误地使用UPDATE和DELETE语句等都可能造成数据丢失。数据库的备份和恢复技术对于保证数据完整性具有重要作用。
4 总结
数据库作为海量数据的载体,是实现互联网信息共享的基础。但开放的网络环境使数据库的安全性面临较大挑战。为了保证数据库系统的安全性,应从威胁因素出发,分析不同层面的漏洞和缺陷,并采取相应的防御措施,加强数据库安全管理,促进互联网环境的良性发展。