查看原文
其他

网络安全之数据库安全

计算机与网络安全 计算机与网络安全 2022-06-01

一次性进群,长期免费索取教程,没有付费教程。

教程列表见微信公众号底部菜单

进微信群回复公众号:微信群;QQ群:16004488


微信公众号:计算机与网络安全

ID:Computer-network

一、数据库安全概述


数据库作为非常重要的存储工具,保存着重要的、敏感的、有价值的商业和公共安全中最具有战略性的资产。数据库安全通常指物理数据库的完整性、逻辑数据库的完整性、存储数据的安全性、可审计性、访问控制、身份验证、可用性等。


国家标准GB/T 20273−2006《信息安全技术数据库管理系统安全技术要求》对数据库管理系统安全定义为“数据库管理系统所存储、传输和处理的信息的保密性、完整性和可用性的表征”。


数据库安全的特征主要是针对数据而言的,包括数据独立性、数据安全性、数据完整性、并发控制、故障恢复等。


数据的独立性包括物理和逻辑2个方面。物理方面的独立性是指用户的应用程序与数据库中存储的数据是相互独立的;逻辑方面的独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。


通常数据库对数据安全性采取以下措施:


(1)将数据库中需要保护的部分与其他部分相隔;

(2)采用授权规则,如账户、口令和权限控制等访问控制方法;

(3)对数据进行加密后存储在数据库。


判断数据是否具有完整性,主要看数据是否有效、是否正确和同一个数据对不同的用户来说是否一样,这3个缺一不可。数据是否有效主要是指数据库中的数值能不能满足现实应用中对该数值的约束;数据的正确性是指数据的输入值和数据表中对应的类型一样。


数据的并发控制是指在同一时刻多个用户同时访问一个数据。当这个数据需要修改或正在进行修改时,其他用户调出数据时就不正确了,要排除和避免发生这种错误,就需要对数据施行并发操作控制以保证数据的正确性。


故障恢复是为了防止数据遭破坏,可以由数据库管理系统提供一套方法,以便能够及时发现故障和修复故障。


二、数据库安全问题


在现实情况下, 数据库安全问题一直是被关注的焦点,引起数据库安全事件频发的原因较多,美国Verizon就“核心数据是如何丢失的”做过一次全面的市场调查,结果发现,75%的数据丢失情况是由于数据库漏洞造成的。另外,数据库安全配置管理措施不够、非结构化数据缺乏安全保护措施是造成数据库安全事件频发的主要原因。


(一)数据库自身安全问题


数据库自身安全漏洞主要表现为数据库设计缺陷、缺省安装配置漏洞、数据库运行漏洞等。


1、数据库设计缺陷


在当前的主流数据库中,数据库数据文件在操作系统中以明文形式存在,非法使用者可以通过网络、操作系统接触到这些文件,从而导致数据泄密风险。


2、缺省安装配置漏洞


数据库安装后的缺省用户名、密码在主流数据库中往往存在缺省数据库用户、密码简单、缺省端口等,如Oracle端口1521、SQL Server端口1433、MySQL端口3306等。攻击者完全可以利用这些缺省用户、端口登录数据库。


3、数据库运行漏洞


数据库运行的系统软件本身存在的漏洞,数据库系统并未对自身漏洞加以弥补。例如,缓冲区溢出漏洞,通过HTTP或者FTP服务可以触发,假如攻击者拥有数据库合法的账户信息,即使这些服务关闭也能利用这些漏洞;通信协议漏洞,基于通信协议的攻击,如发送超长连接请求、破坏数据库握手协议;操作系统漏洞,未对操作系统漏洞加以弥补,如系统用户权限;SQL注入攻击,通过SQL注入攻击,破坏数据库系统或者盗取敏感信息;拒绝服务攻击,大量连接、深度嵌套、频繁访问等方式,破坏数据库系统可用性。


在数据库系统维护中,如果不重视数据库系统补丁的修复漏洞或制定相应的安全策略,一旦遭到攻击,势必会给数据库的安全带来严重的影响。


(二)数据库安全管理配置问题


1、安全管理配置不够


数据库的管理组织或维护人员对数据库安全管理不够重视、安全管理措施不够严格、人员授权管理不到位、日常操作不规范、第三方维护人员的操作监控失效、离职员工的后门等问题,导致越权滥用、权限盗用、恶意操作和泄露机密信息等行为。


2、安全审计不足


随着数据库信息的价值及可访问性得到提升,内部和外部的安全风险大大增加,事后无法有效追溯和审计等问题日益明显。数据库服务器自身的日志审计功能不能被充分利用,其自身的缺陷主要体现:


(1)数据库自带的审计及访问控制达不到安全要求;


(2)数据库开启自身的审计及访问控制功能,会影响性能,对CPU等资源有一定的消耗,如果要保存的数据瞬间量级增大,很快占满硬盘,影响数据库的直接存储;


(3)数据库自身审计功能缺少可视化,日志就是一堆文件,查询困难,不能生成报表;


(4)数据库自身审计记录下来的日志, DBA用户可进行修改、删除,对日志无加密保护等措施,难于体现审计信息的有效性和公正性;


(5)数据库自带的访问控制功能,访问控制粒度粗,规则可设置,但是当发生违规行为时无法报警。此外,对于海量数据的挖掘和迅速定位也是任何审计系统必须面对和解决的核心问题。


(三)分布式数据库安全问题


在大数据应用环境中,其分布式数据库、非结构化数据存储的数据库与前面描述的传统关系型数据库相比有明显的不同,其数据状态(非使用、传输中、使用中)不断地发生变化,点对点的非结构化数据快速传播、难定位和识别,其管理和安全保护更加复杂。HBase是一个分布式的、面向列的开源数据库,适合于非结构化数据存储,其安全性依托于Hadoop提供的安全机制。虽然Hadoop 在发展过程中逐步增加了安全认证和授权机制、Kerberos 身份认证和基于ACL 的访问控制机制,但仍存在以下问题。


1、KDC 成为系统瓶颈


Hadoop 采用基于 Kerberos 的身份认证,每次认证都要使用Kerberos的密钥分配中心KDC。在Hadoop中,一个Map Reduce集群有成千上万个任务,每个任务的执行都要使用 Kerberos 认证。如果这些任务在一个很短的时间内同时向 Kerberos服务器请求票据,就会使KDC的负载急剧增大,使其成为整个系统的瓶颈,影响系统性能。且Client向KDC 申请TGT时发送的身份信息极易被截取,存在不安全因素。


2、不够健壮的中心控制模式


在Hadoop所采用的主/从服务器架构中,集群唯一的主服务器Master功能强大、任务繁重。客户的身份验证、访问控制、文件块Block 到Data Node的映射、文件系统命名空间的操作以及Map Reduce中作业任务的调度、监控都由主服务器完成。一旦唯一的主服务器被攻击,将给整个系统带来毁灭性破坏。


3、过于简单的访问控制


Hadoop在HDFS 和Map Reduce中增加了基于ACL的访问控制策略。但是,这种传统的基于访问控制列表的方式在服务端易被修改,存在不安全因素。同时,这种基于用户的、过于简单的控制,并不能满足企业不断发展的安全需求,对于企业自身而言,需要改进以实现合适的基于角色的安全访问机制。


4、节点间数据明文传输


当前版本的Hadoop并没有在传输和存储过程中对数据进行加解密处理。即使有些版本采用运行在TCP/IP之上的安全套接层协议SSL,但其算法简单,并不能满足特定的安全需求。


5、没有存储保护


当前版本的Hadoop并没有解决数据服务器中对数据的存储保护问题。


6、没有数据的隔离


不同用户、不同安全级别的数据存放在同一介质上,没有区分。基于以上问题,当前实际使用中,政府机构采取隔离Hadoop数据,引入角色管理,预防非法访问。近年来,像IBM、Yahoo、Google这些老牌的Hadoop厂商也逐渐意识到Hadoop安全的重要性,纷纷采取措施,积极应对。而一些对安全性要求相对保守的公司,干脆就放弃了Hadoop的使用。


(四)数据库安全风险产生的危害


针对前面描述的数据库安全问题,虽然数据库的防护能力在提升,但黑客盗取数据库的技术也在不断提升,数据库一旦被外部人员、内部人员、社交工程、高级持续性威胁等威胁利用,会带来较大的影响或危害。


1、数据库系统出现故障,导致业务系统瘫痪,影响主要业务运行。


2、数据库“拖库”现象频发,导致个人隐私泄露、商业诈骗、网络犯罪,产生直接的经济损失、影响社会公共秩序稳定,甚至威胁到国家安全。


(五)数据库安全事件典型例子


在数据库安全事件中,最典型的是数据库“拖库”。在黑客术语里面,“拖库”是指黑客入侵有价值的数据库并把数据库全部盗走的行为。在取得大量的用户数据之后,黑客会通过一系列的技术手段和黑色产业链将有价值的用户数据变现,这通常也被称作“洗库”。最后,黑客将得到的数据在其他网站上尝试登录以收获其他内容,叫作“撞库”。


数据库“拖库”的具体步骤:


1、攻击者锁定目标、搜集信息,首先判断网站是否有利益价值,从入侵目标网站开始,确定获得网站数据库中的用户信息进行社工欺骗或多次出售转卖等;


2、确定目标后,利用工具扫描、社会工程攻击,获得攻击过程中一些信息,完成攻击前的踩点和信息搜集工作;


3、进入深入攻击阶段,利用SQL注入“拖库”,攻击者通常会查看网站的配置文件,看是否有可以利用的资源,如果网站的数据库服务器没有做安全防护配置,就可以直接通过获取到的信息连接到数据库服务器,从而导出网站的全部数据;


4、如果是内部人员攻击,则不受防火墙及入侵防御系统等影响,拖库变得更容易;


5、最后提权,删除操作日志等行为。从整个“拖库”过程不难看,出前面描述的数据库安全问题是导致攻击者攻击成功的主要原因。


三、数据库安全技术


数据库安全要依托整个网络安全体系才能提高数据库安全防御能力,因此,涉及的安全技术较多,目前,相关的安全技术有访问控制技术、数据库安全加密技术、数据库审计技术、多级安全数据库技术、数字水印技术和大数据安全相关新技术等。只有综合考虑各环节的安全技术,才能确保高安全的数据库系统。


(一)访问控制技术


访问控制是数据库安全至关重要的内容,可以理解为安全的基本机制。访问控制根据规定的安全策略和安全模式对合法用户进行访问授权,并防止未经授权用户以及合法授权用户的非法访问。涉及的对象通常包括访问主体、资源客体、访问策略、策略强制执行等组件。作为安全基本机制,访问控制实施对资源或操作的限制,并进行授权,可以直接支持机密性、完整性、可用性,常使用的技术包括访问控制矩阵、访问控制列表、访问标签、权限、鉴别凭证、安全标记、访问时间、访问路由。访问控制策略模型包括自主访问控制策略和强制访问控制策略。


1、自主访问控制,是目前数据库中使用最为普遍的访问控制手段。用户可以按照自己的意愿对系统的参数做适当修改以决定哪些用户可以访问其资源,即用户可以有选择地与其他用户共享资源。在自主访问控制模型中,通常用户最核心的访问权限是对资源对象的“拥有”权。自主访问控制模型之所以被称为是自主的,是因为拥有权限的用户可以自主地将其所拥有的权限授予其他任意在系统登录的用户。


2、强制访问控制,在一些高安全等级的应用中,自主访问控制这种权限的自由扩散是相当危险的,因此,强制访问控制机制被提出来以满足这些高安全等级的应用需求。在强制访问控制下,系统给主体和客体指派不同的安全属性,这些安全属性在系统安全策略没有改变之前是不可能被轻易改变的。系统通过检查主体和客体的安全属性匹配与否来决定是否允许访问继续进行。


强制安全访问控制基于安全标签的读写策略使数据库管理系统能够跟踪数据的流动,可以避免和防止大多数对数据库有意或无意的侵害,因而,可以为木马程序问题提供一定程度的保护,在数据库管理系统中有很大的应用价值。其典型代表是Bell-La Padula模型(简称 BLP模型)和 Biba 模型,也是目前应用最为广泛的模型,能够达到保护数据的机密性和完整性的目标。与自主访问控制不同,用户无权将任何数据资源,哪怕是属于用户自身的数据库资源的访问权限赋予其他的用户。


(二)数据加密技术


数据加密是将数据库中的数据通过身份认证、密钥+密码、密钥管理等进行数据保护的技术,是防止数据库的数据信息篡改和泄露的有效手段,通过数据信息加密能够确保数据用户信息的安全,即使数据被非法导出、备份文件被窃取,也无法恢复和访问丢失的数据。


数据库服务器端的加密需要对数据库管理系统本身进行操作,属于核心层加密,能够对数据库的敏感列加密、对数据库的表空间加密、对数据库备份加密、对Data Pump 的Export文件加密等。也能够对客户端到数据库之间的通信链路传输进行加密,防止物理链路数据被窃取。客户端加密的好处是不会加重数据库服务器的负载,这种加密方式通常利用数据库外层工具实现。


对于一些重要的机密数据,如一些金融数据、商业秘密等,都必须存储在数据库中,需要防止对它们的未授权访问,哪怕是整个系统都被破坏了,加密仍可以保护数据的安全。对数据库安全性的威胁有时来自于网络内部,一些内部用户可能非法获取用户名和密码,或利用其他方法越权使用数据库,甚至可以直接打开数据库文件来窃取或篡改信息。因此,采用加密技术对重要数据进行加密处理,能够保证数据存储的安全。


(三)数据库审计技术


提高数据库的安全级别,还需要数据库审计技术支撑。在国内外数据库安全相关标准中,如TDI/TCSEC 《可信计算机系统评估标准关于可信数据库系统》、GB/T 20273−200《信息安全技术数据库管理系统安全技术要求》,都有对数据库提出安全审计的要求。数据库审计技术用于监视并记录对数据库服务器的各类操作行为,通过对网络数据的分析,实时、智能地解析对数据库服务器的各种操作,并记入审计数据库中以便日后进行查询、分析、过滤,实现对目标数据库系统用户操作的监控和审计。数据库审计技术可以监控和审计用户对数据库中的数据库表、视图、序列、包、存储过程、函数、库、索引、同义词、快照、触发器等的创建、修改和删除等,分析的内容可以精确到SQL操作语句一级;还可以根据设置的规则,智能地判断出违规操作数据库的行为,并对违规行为进行记录、报警。


(四)多级安全数据库技术


多级安全数据库技术是数据库安全十分重要的研究领域,其核心是通过数据库系统存储和管理不同安全等级的敏感数据,同时通过自主访问控制或者强制访问控制机制保持数据的安全性。该项技术在考虑设计和实现一个多级安全数据库系统时,依据提供多种密级粒度、确保一致性和完备性、实施推理控制、防止敏感聚合、进行隐蔽通道分析、支持多执行并发控制等原则,解决多级安全数据库的各种关键问题。


多级安全数据库体系结构是实现多级安全数据库管理系统的基础,在多级安全数据库管理系统体系结构领域,国内外已经进行了很多研究,并且提出了大量的多级安全数据库体系结构,主要分为三类:TCB子集结构(TCB Subset DBMS)、可信主体结构(Trusted Subject DBMS)和完整性锁结构。


TCB(Trusted Computing Base)子集结构,使用DBMS外的可信计算基础对数据库对象进行强制存取控制。该方法具有3个特点:


(1)多级数据库管理系统实际上是多个单级数据库管理系统的实例化;


(2)多级数据库及其数据被分解成不同等级的对象保存在操作系统对象中;


(3)多级数据库管理系统有一定的访问控制权,但操作系统对于数据库管理系统访问数据的操作实行完全访问控制。如图1所示。

图1  TCB子集体系结构

可信主体结构依赖于可信操作系统内核的TCB子集方法,为获得更高级强制访问控制需要牺牲一些DBMS 功能。除 Trusted Oracle Version 7.0 DBMS 使用TCB 子集方法外,几乎所有的 MLS/DBMS 产品都依赖 DBMS 自身提供的对数据库对象的强制访问控制。这些MLS/DBMS的安全目标达到 TCSEC 的 B1级标准,允许采用一个不可信的软件产品操作多级数据。如图2所示。

图2  可信主体DBMS体系结构

完整性锁结构是可信主体DBMS体系结构的一个重要变种。图3显示了这种体系结构,由三部分组成:非可信前端进程、可信的筛选器进程和非可信的数据管理器进程。非可信前端进程与用户交互,负责执行查询语法分析,并将处理查询结果返回给用户。可信的筛选器进程负责数据库对象及其安全标签的加密和解密。假设数据库对象是元组,可信的筛选器进程将对每一个元组和其安全标签采用加密算法加密,并产生一个校验和。这样就锁住或密封了元组及其安全标签。当用户在数据库上执行选择操作时,可信的筛选器进程将启动数据管理器进程检索出所有满足条件的元组,然后,将这些元组返回到可信的筛选器。可信的筛选器检查敏感标签,丢弃那些不能通过强制访问控制的元组,并且重新使用加密算法验证每个元组及其安全标签是否被篡改。运行在用户会话安全等级的不可信前端进程执行一些用户要求的其他功能。

图3  完整性锁体系结构

基于以上多级安全数据库技术结构模型,多级安全数据库管理系统的各种设计和原型系统有了很大的发展。如国外一些多级安全数据库管理系统产品,包括 Trudata、Sybase Secure SQL Server、Trusted Oracle、Trusted Rubix、Secure RDB、Secure Terada、INGRES等。


(五)数字水印技术


数字水印是一种将可识别的数据嵌入到数字作品中的技术,用人类感官(如眼、耳)无法识别,只有使用专门的检测软件才可以方便地识别。数字水印是数字内容的唯一标识,即使数字内容经过拷贝、编辑处理、压缩/解压、加密/解密或广播等操作,数字水印仍能保持不变,同时数字水印的存在对数字作品的质量没有影响。在云端的数据库中应用数字水印技术能够较好地解决保护云数据库的版权、合法用户的泄密追踪以及恢复原始数据等问题,能够给云数据库安全技术支撑。


(六)大数据安全相关技术


针对大数据快速发展带来的数据库安全问题,以Hbase为例,目前,主要采用密码技术和网络防御技术为数据库安全提供保障。另外,数据脱敏技术、密文检索技术等技术研究和应用的快速发展,也将成为云计算、大数据应用中数据库安全不可缺少的组成部分,接下来,选择典型技术进行介绍。


1、数据脱敏技术


数据脱敏指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其他非生产环境以及外包环境中安全地使用脱敏后的真实数据集。


利用脱敏技术保障数据库敏感信息的安全,目前在银行中比较常见,如在银行业务的生产系统中积累了大量包含账户等敏感信息的数据,在业务分析、开发测试、审计监管等使用过程中通过脱敏技术使敏感信息变形,以保证数据安全。值得注意的是,“十二五”期间,银监会对城市商业银行明确提出“完善敏感信息存储和传输等高风险环节的控制措施,对数据、文档的访问应建立严格的审批机制。对用于测试的生产数据要进行脱敏处理、变形处理,严格防止敏感数据泄露。”因此,随着云计算、大数据应用快速发展,保证数据库敏感信息安全,脱敏技术是不错的选择。


2、大数据密文检索技术


云数据存储的安全性涉及到密文检索技术,很多公司和研究机构都进行了广泛的研究并获得了一定的进展,密文检索包括基于安全索引与基于密文扫描2种典型方法。基于安全索引的方法首先为密文关键词建立安全索引,接着在安全索引中检索索引关键词是否存在;基于密文扫描的方法是通过对密文中每个单词进行比对,确认关键词是否存在。IBM 研究员Gentry 提出全同态加密算法,通过全同态加密算法加密的明文数据可以在不恢复明文信息的情况下检索出来,这样既隐藏了用户的数据,又提高了检索性能。目前,大数据密文检索技术还不成熟,IBM、微软等公司试图将其产品化,国家在“863”、自然基金中将此作为扶持重点,但是技术产品化还将有很长时间。


四、数据库安全防护策略


从网络安全技术防护体系角度,数据库的安全保障除了要从网络边界、应用层安全及主机安全防护层面提安全措施外,还需要结合数据库安全问题现状,重点考虑如何充分利用数据库本身提供的安全防护策略和第三方针对数据库安全防护手段,以提高数据库应对安全风险的能力。


(一)数据库自身安全防护策略


数据库在进行安全配置之前,首先必须对操作系统进行安全配置,保证操作系统处于安全状态;然后对要使用的操作数据库软件(程序)进行必要的安全审核,这是很多基于数据库的Web应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似“,;@/”等字符,防止破坏者构造恶意的SQL语句。安装数据库最新的补丁后,结合不同的数据库特点进行安全配置。


1、账号和密码管理


首先,考虑数据库账号安全和非常强壮的密码策略是所有安全配置的第一步,最好不要在数据库应用中使用缺省账号,建议数据库管理员新建一个拥有与sa(SQL Server为例)一样权限的超级用户来管理数据库,但要求不能让管理员权限的账号泛滥,同时养成定期修改密码的好习惯,数据库管理员应该定期查看是否有不符合密码要求的账号。


2、数据库传输安全


使用数据库本身的加密协议来进行网络数据交换(数据库SQL Server使用的Tabular Data Stream),最好使用SSL来加密协议或者配置数据加密网关,保证数据库数据传输。


3、数据库端口安全


数据库网络访问控制的常规设置主要考虑修改默认的监听端口,禁止常见的端口探测等措施,以抵制网络攻击。


修改默认的监听端口。数据库已定义了默认的监听端口,例如,SQL Server 使用 1433端口监听,微软提供隐藏 SQL Server实例选项,可以修改原默认的端口为其他端口,可以禁止对试图枚举网络上现有的 SQL Server实例的客户端所发出的广播做出响应,这样可禁止黑客探测TCP/IP端口。


禁止常见的端口探测。由于微软未公开1434端口的UDP探测,可以很容易知道SQL Server使用的什么TCP/IP端口,需要对1434端口探测进行限制,可以规避别人探测到一些数据库信息、避免遭到Do S攻击,增加CPU负荷增大,可以利用操作系统提供的IPSec过滤拒绝掉1434端口的UDP通信,以尽可能地隐藏数据库。


4、数据库日志记录


建议启动数据库系统本身提供的审计功能,审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样,在数据库系统和操作系统日志中就详细记录了所有账号的登录事件。定期查看日志检查是否有可疑的登录事件发生,以加强审计数据库的安全状态和安全事件的跟踪。


(二)第三方数据库安全增强手段


由于数据库本身提供的安全策略有限,需要采用第三方产品提供的数据库安全防护策略,在一定程度上有效弥补现有数据库安全能力的短板。目前,常见的有数据加密与防泄露类、数据库安全管理和安全审计与监控等。


1、数据库加密安全增强


数据库加密管理软件主要应用在涉密或者大型企事业单位中对数据泄密有明显要求的部门,特别是针对采用C2级及以上级别的数据库管理系统。重点实现对数据库的加密存储、强权控制和敏感数据的访问审计,解决数据库非法侵入、窃取以及磁盘失窃引起的数据泄密问题。


目前,常见的数据库加密软件主要是通过系统中加密、DBMS内核层(服务器端)加密和DBMS外层(客户端)3种方式实现对数据库中的敏感数据加密存储、访问控制增强、安全审计等功能。


(1)在系统中加密,在系统中无法辨认数据库文件中的数据关系,将数据先在内存中进行加密,然后,文件系统把每次加密后的内存数据写入到数据库文件中,读入时再逆向进行解密,这种加密方法相对简单,只需妥善管理密钥。


(2)在数据库管理系统内核层实现加密需要对数据库管理系统本身进行操作。这种加密是指数据在物理存取之前完成加解密工作。这种加密方式功能较强,加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。


(3)在数据库管理系统外层实现加密的好处是不会加重数据库服务器的负载,并且可实现网上的传输,加密比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加解密处理。


目前的增强措施能够解决应用透明和密文索引问题,原有的应用系统基本不需要改造,明文转为密文后,能够按照密文对应明文查询的顺序构造密文索引,通过密文索引可以让数据库查询速度几乎不减慢。


2、数据库防泄露增强手段


数据防泄露类的软件也是采用加密技术、身份认证、访问控制和数字水印等多种技术手段,重点解决数据库及不同类型数据文件的泄密问题,实现本地存储数据加密、移动存储数据加密、文档加密、邮件加密、业务应用数据加密和数据传输加密等丰富的加密功能,重点防护组织内机密数据和应用系统的重要资料,能够涵盖结构化数据和非结构化数据,如可以加密 CAD、OFFICE、PDF、图纸、计算机程序、游戏、数码照片、视频等,做到重要数据“拿不走”“拿走看不了”,杜绝涉密数据非法扩散。


3、数据库安全审计与监控手段


由于数据库本身的审计功能对数据库运行的性能会有影响,不能有效地发挥作用,对数据库安全要求较高的系统通常采用第三方数据库审计和监控系统以提高数据库安全。通过查询国家相关安全测评认证通过的数据库安全防护类别的产品发现,数据库安全审计类产品占有较高的比例。


数据库安全审计与监控系统广泛适用于“政府、运营商、金融、公安、教育、税务、电力、电子商务”等所有使用数据库的各个行业。其以网络旁路的方式部署在数据库主机所在的网络,主要提供身份认证、数据库的操作实现跟踪记录、定位、系统性能监控和辅助故障分析,实现数据库的在线监控和保护,使安全管理员或审计管理员能够全面监测、了解数据库的应用情况;预防内部人员权限滥用及授权人员的非法操作,及时地发现网络上针对数据库的违规操作行为并进行记录、报警和实时阻断、故障定位等功能,有效地弥补现有应用业务系统在数据库安全使用上的不足,实现数据库运行可视化、日常操作可监控、危险操作可控制、所有行为可审计、安全事件可追溯,为数据库系统的安全运行提供有力保障。一般的数据安全审计与监控系统都支持业界主流数据库,可以帮助用户提升数据库监控的透明度,降低人工审计成本。


4、数据库综合安全管理手段


数据库安全网关主要是集数据库透明加密、数据库防火墙和数据库审计于一体的综合性网关。


应用场景主要在企事业单位核心数据库(针对常见的国内外数据库),为了满足主动管控与审计的要求,符合各类法令法规要求(如SOX、PCI、企业内控管理、等级保护等),重点解决越权使用和权限滥用、数据库账号权限管理、敏感数据访问行为、敏感数据泄露、数据库配置弱点、SQL注入等漏洞问题。


产品形态属于硬件安全网关类,提供的主要安全功能为:


(1)三权分立,限制特权用户访问数据,只有授权的用户和授权的计算机上才能访问数据库;


(2)密文存取,能够对数据库中的数据用密文存取,加密算法支持国产算法,数据不可以破译,能够杜绝数据泄密事件;


(3)数据库防火墙,细粒度访问控制,完全独立于数据库本身安全体系对数据库实现细粒度的访问控制,自动监测异常的SQL语句,并实时阻断和告警;


(4)细粒度数据访问集中审计,主动跟踪、定位对数据库进行攻击的来源及攻击类型,同时可满足合规性要求,防止合法授权用户滥用数据资源。


5、提升Hbase安全性策略


针对前面描述的分布式数据库Hbase的安全问题,目前,普遍采用基于公钥体制的身份认证和网络防御措施提升Hadoop的安全性能。


(1)基于公钥体制的身份认证,针对KDC瓶颈问题,采用基于PKI的身份认证机制。认证过程分为两步:首先,CA 核实申请者身份并为各个合法节点颁发数字证书;然后,示证方向验证方发送数字证书,验证身份。在基于公钥密码体制的身份认证方案中,节点一旦获得CA颁发的数字证书,在随后向服务器申请身份认证的过程中将不会有PKI管理实体的参与,这样,避免了在面对大业务量时系统瓶颈的问题。


(2)网络防御预防单点失效方面,Hadoop为了保证Master服务器以及整个系统的安全,采取加强网络的防御措施,使其免遭病毒、木马以及拒绝服务等来自网络的攻击。应该对Hadoop中的服务器设置访问控制、对操作系统进行安全配置、安装防火墙和杀毒软件、及时修补安全漏洞并启动入侵检测实时监测服务器的TCP连接和数据流量。对于某些安全需求高的私有云,还可以采取物理隔离的方式,最大限度地减少被攻击的可能。


五、数据库安全典型配置实例


以Unix/Linux操作系统下的Oracle 10g为例,简单介绍Oracle数据库安全配置过程,主要包含数据库本身的安全配置和第三方的安全管理系统。


(一)Oracle 10g自身安全配置


首先,介绍Oracle数据库本身提供的安全机制。Oracle数据库的安全管理是从用户登录数据库开始的,在用户登录数据库时,系统对用户身份进行验证;在对数据进行操作时,系统检查用户的操作是否具有相应的权限,并限制用户对存储空间和系统资源的使用。主要涵盖系统安全性和数据安全性相关内容。配置实例步骤如下。


1、安全补丁的更新,及时更新数据库的安全补丁,减少数据库系统可能受到的攻击。


2、系统安全性配置,是系统级控制数据库的存取和使用的配置,包括有效的用户分配最小权限、口令及认证、删除或锁定无关账号、限制SYSDBA用户远程登录、使用ROLE管理对象最小权限、用户是否有权限连接数据库、用户的资源限制、是否启动数据库字典保护、数据库的审计等。管理员通过Oracle 企业管理器可以快速高效地进行必要的配置和更改,主要内容有:


(1)对关键目标权限保护,确保对$ORACLE_HOME/bin目录的访问权限尽可能少;


(2)数据字典的保护设置,可防止其他用户(具有“ANY”system privileges)使用数据字典时,具有相同的“ANY”权限;


(3)加强访问控制,设置正确识别客户端用户,并限制操作系统用户数量(包括管理员权限、root权限、普通用户权限等);


(4)监听程序的管理,通过设置listener.ora文件中的参数防止远程对监听程序的非授权管理;


(5)关闭Extproc功能,由于extproc存在安全问题,允许用户不进行身份认证就可以调用系统函数,因此,必须关闭不需要的功能;


(6)密码文件管理,配置密码文件的使用方式,使Oracle不使用密码文件,只能使用OS认证,不允许通过不安全网络进行远程管理;


(7)用户账号管理,为了安全考虑,应锁定Oracle中不需要的用户,或改变缺省用户的密码;


(8)最小权限使用规则,只提供最小权限给用户;


(9)DBSNMP用户的保护,Oracle数据库系统如果采用典型安装后,自动创建一个叫DBSNMP的用户,该用户允许Oracle系统的智能代理(Intelligent Agent),该用户的缺省密码也是“DBSNMP”,如果忘记修改该用户的口令,任何人都可以通过该用户存取数据库系统;


(10)SYS用户保护,更换SYS用户密码,符合密码复杂度要求,密码策略设置,通过修改用户概要文件来设置密码的安全策略,定义密码的复杂度;


(11)数据库操作审计,Oracle数据库具有对内部所有发生的活动的审计能力,审计日志一般放在 sys.aud$表中,也可以写入操作系统的审计跟踪文件中,可审计的活动有登录尝试、数据库活动和对象存取3种类型,缺省情况下,数据库不启动审计,要求管理员配置数据库后才能启动审计;


(12)本地缓存区溢出防护,Oracle程序存在本地缓冲区溢出。在传递命令行参数给Oracle程序时缺少充分的边界缓冲区检查,可导致以Oracle进程权限在系统上执行任意代码,可以运行“chmod o-x oracle”加强对Oracle文件的可执行控制,验证非Oracle账号对该文件没有读取、运行权限,进行有效加固;


(13)监听IP和端口限制,限制监听IP,修改默认的监听端口。


(二)第三方数据库安全措施配置实例


由于数据安全网关基本涵盖了第三方防护测试的主要功能,以数据库安全网关为例,简单说明数据库防护措施的配置过程。


1、选择部署方式


首先,结合数据库安全保护需求和目标特点不同,以原有策略修订最小的原则选择部署方式。开启的功能不同,部署方式也不同,如需开启数据库访问控制功能,则选择支持串联的部署方式;如需开启审计功能,则选择串联、旁路和软件探针(分布式)3种基本部署方式,同时支持分散部署集中管理的方式。


2、制定安全策略


分别从数据库加密、数据库访问控制、数据库审计和数据库风险监控等几个方面制订设置/启动策略,达到如下目标:


(1)有选择性地保护数据库内部敏感数据,敏感数据以乱码的形式存在,保证存储介质丢失和数据库文件被非法复制的情况下保护数据的机密性;


(2)通过授权实现访问控制,非授权用户(包含数据库管理员)查看到的数据为空白或者乱码,从而在一定程度上削弱管理员权限的权利,降低管理员权限外泄带来的危险;


(3)对访问数据库的数据流和用户进行采集、分析、识别、屏蔽、替换、阻断、授权、身份验证和身份识别等操作;


(4)对访问数据库的相关行为、发送和接收的相关内容进行存储、分析和查询等,实时识别和过滤有害访问和攻击;


(5)数据库风险监控,实时监控扫描数据库漏洞和风险,确保数据库处于安全状态。

    微信公众号:计算机与网络安全

    ID:Computer-network

    【推荐书籍】

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存