数据库是所有信息系统的核心,数据库的安全通常是指其中所存数据的安全,是网络安全、信息安全的重要组成部分。目前有很多相关性产品,如数据库加密、数据库防火墙、数据库脱敏、数据库审计等。
一、数据库防火墙
数据库防火墙系统:一种基于网络和数据库协议分析与控制技术的数据库安全防护系统,基于主动防御机制,实现对数据库的访问行为权限控制、恶意及危险操作阻断、可疑行为审计。通过对SQL协议分析,根据预定义的黑、白名单策略决定让合法的SQL操作通过执行,让可疑的非法违规操作禁止,从而形成一个数据库的外围防御圈,对SQL危险操作的主动预防和实时审计。
其部署方式分为串联部署与并联部署。
1. 串联部署
串联部署在应用系统与数据库之间是数据库防火墙发挥最大作用的常见部署方式。所有SQL语句必须经过数据库防火墙的审核后才能到达数据库,可实现对外部人员的攻击和防止内部人员的违规误操作,但这样就在应用系统与数据库之间增加了一个“结点”,且改变了原有的网络结构。
2. 旁路部署
数据库防火墙的另一种部署方式为旁路接入,虽然此种部署方式看似通过旁路部署,没有在应用链路上增加新的设备结点,但在实际应用中,面对连续、高可用环境,旁路分析势必出现延迟,当数据库防火墙检测到风险操作时,数据库的操作早已执行完成,而此时被阻断的很可能是其他不该被阻断的正常操作。
因此,要想真正发挥其防护效果,数据库防火墙必须串联在数据库的前端。但这样就出现了潜在的风险发生。
点评:
1. 串联部署是数据库防火墙发挥防护作用的必要前提,但这样就在应用系统与数据库之间增加了一个“结点”,如果把数据库看作整个IT架构中的“心脏”,那么我们往往会更担心的是这个“结点”会不会出现故障,如果一旦出现血液流通不畅,突发阻塞,那么会影响整个系统循环。
2. 由于数据库在企业中承载着关键核心业务,其重要性不言而喻,企业会采用大量的技术来保证数据库的高可用性、连续性,典型的有RAC、F5负载均衡、高可用网络等;当在这样的一个环境中串联一个新的节点时,对该节点的可靠性、稳定性及性能要求甚至比数据库本身的要求还要高。
3. 连续性、高可用的环境下,实施防护墙串联部署,势必是在为风险挖坑,面临的挑战不小。数据库防火墙现阶段技术还不成熟,复杂的环境下更应该慎重选用,串联部署的劣势,一旦出现故障,整个业务系统随之瘫痪,正常业务被阻断,数据面临丢失、损坏等风险,对数据库产生巨大的影响,往往很多厂商却避而不谈,不愿提及,但内行人一想便知。
二、数据库加密
数据库加密系统(又称安全存储网关):指将存储于数据库中的数据,尤其是敏感数据,以加密的方式进行存储。是一款基于透明加密技术的数据库防泄漏系统,能够实现对数据库中的敏感数据加密存储、访问控制增强、应用访问安全、安全审计等功能。
常见部署方式为直接串联在数据库服务器系统网络结构中,通过基础核心部件,完成数据加解密、权限校验、密钥管理和安全策略存储。还需要通过代理,即在数据库服务器中安装插件,以实现对DBMS中加密数据的透明展现和高性能访问,从而实现对敏感字段加密、密文索引、增强访问控制、审计等认证。
点评:
数据库加密系统应该以保护数据安全为基础,尽可能的提高工作效率,在工作效率和安全可行性之间取得一个衡量标准。所以数据库加密系统应该考虑如下问题:
1. 部署方式
数据库加密系统采用串联方式连接在数据库服务器系统中,在原有网络结构中增加了一个新的“节点”,一旦这个“节点”出现问题,会导致正常访问数据库的业务中断,特别是在高速网络下数据迁移和容灾的过程中,如果出现业务中断,会对数据库产生不可预估的风险;除此之外,还需要在数据库服务器中安装插件的方式来形成代理,以实现对数据的加解密存储等过程。第三方插件不但影响数据库的性能,还会产生一定的风险,一旦出现问题,也会对数据库产生不可估量的影响。
2. 数据库性能
数据库加密系统在实现对数据的加密、解密过程中都要牺牲一部分数据库性能,本地数据库对象加密对数据库性能的影响可达15%~20%,取得数据安全的背后却是以牺牲数据库性能为代价的。所以,用户在选择采用该产品前,应该结合自身环境状况和对性能的要求做好权衡。
3. 复杂程度
加密系统都很复杂,必须考虑加密引擎在哪,它如何加密数据以及加密哪些数据,哪些数据不需要加密,怎样提供密钥等。对数据库管理员来说,都是一种技术上的考验,需要认识到这种复杂程度并保证自己完全理解加密系统如何工作,特别是在要证实加密能够正确地满足合规要求时,这尤为重要。
4. 密钥管理
数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构可能对应着多个数据库物理客体,所以数据库加密不仅密钥量大,而且组织和存储工作比较复杂。这就需要一个密钥管理系统来保护密钥,管理员不能将密钥存储到数据库中,也不能将密钥存放到磁盘上。因此,对于密匙的管理也是一个值得思考的难题。
除此之外,还需要考虑数据库加密技术是否成熟,以及加密是否能代替访问控制,和数据库中动态加密和静态加密的区分等等诸多因素的限制问题。
三、数据库脱敏
数据库脱敏:指对数据库中的敏感数据进行在线屏蔽、变形、字符替换、随机替换等处理方式,达到对用户访问敏感数据真实内容的权限控制,对于存储在数据库中的敏感数据,通过脱敏方式,不同权限的用户将会看到不同的展现结果,从而实现对敏感隐私数据的保护。
其采用的部署方式有旁路部署、串联部署、以及直接以插件的形式安装在数据库服务器系统当中。
点评:
数据库脱敏又称数据漂白或数据变形,其关键点为:敏感数据、脱敏规则、应用场景。
而根据应用场景,又将数据脱敏分为静态脱敏和动态脱敏,其主要区别在于是否在使用敏感数据时实时进行脱敏。
数据库脱敏系统在实际应用环境当中应当考虑其存在的一些问题,否则将给生产环境及数据库带来严重的影响。其主要表现在一下几个方面:
1. 从部署方式来看,串联接入到数据库服务器的前端和以插件的方式安装于数据库服务器当中,是数据库脱敏系统发挥自身作用的最大前提。串联接入方式和以插件的方式安装在服务器系统当中,都改变了数据库服务器所处的网络环境,参与了数据交互的过程,一旦串联“节点”或者插件出现故障,都会对数据库产生未知的影响,轻者业务中断,重者数据丢失、损坏。其问题严重性显而易见,这是内行人都明白的问题。
2. 从脱敏规则来看,数据脱敏分为:可恢复和不可恢复两类。可恢复类,指脱敏后的数据可以通过一定的方式,可以恢复成原来的敏感数据,此类脱敏规则主要指各类加解密算法规则;不可恢复类,指脱敏后的数据被脱敏的部分使用任何方式都不能恢复出。
这就与数据库加密方式有相似之处,其数据的脱敏也很复杂,这就需要据库管理员很熟练的掌握脱敏规则,哪些数据通过脱敏规则后可恢复,哪些数据脱敏后不可恢复,这都是十分重要的过程,数据一旦通过脱敏变形后,再还原,其技术难度还是很考验人的。特别是在大型数据生产环境当中更需要注意脱敏规则,一旦忽视后果可想而知。
3. 从性能方面来看,数据库脱敏系统与数据库加密系统类似,从数据脱敏到数据的恢复,都是以牺牲系统性能为代价的。一旦脱敏规则制定不好,系统性能会受到很大影响,系统性能降低,那么整个数据库业务系统也会随之受到影响,在数据连续性、高可用的环境下,可能会导致数据的丢失或者业务中断,影响整个生产过程。
相信大家对数据库防火墙、数据库加密、数据库脱敏已经有了一定了解,也有了自己的判断。最后补充一下:数据库防火墙、数据库加密、数据库脱敏这些产品的解决方案大多尚在试验阶段,技术上还不成熟,在要求业务连续、高可用环境中需慎重选择。
作者:昂楷科技