华为云数据库服务安全白皮书

举报
小路~ 发表于 2018/04/09 15:41:47 2018/04/09
【摘要】 作为云平台提供商的华为云数据库,承载了成千上万家企业的系统。为让企业可以安心上云,华为云数据库在安全性能等方面投入巨大,不断优化现有技术,支持防火墙、安全连接、安全组、实例隔离、安全删除和数据加密等基础安全能力,全方位保障数据的安全。 本文追溯云数据库服务所面临的安全挑战以及相应的解决方法,华为云数据库在此基础上进一步优化,将带给用户最优质的云数据库服务。

  

随着技术的飞速发展,公有云逐渐成为企业运行 IT 设施的新趋势,而作为企业最核心的系统数据库,在上云时代也成为必然选择。

对企业来说,数据库可视为其命脉。因此,数据的安全性显得至关重要。数据库迁移上云,也就意味着将“命脉”搬到公有云平台,很有可能因此引发安全隐患。

作为云平台提供商的华为云数据库,承载了成千上万家企业的系统。为让企业可以安心上云,华为云数据库在安全性能等方面投入巨大,不断优化现有技术,支持防火墙、安全连接、安全组、实例隔离、安全删除和数据加密等基础安全能力,其自身有着完善而严格的安全开发验证机制,并已获取十多项安全认证,全方位保障数据的安全。

本文追溯云数据库服务所面临的安全挑战以及相应的解决方法,华为云数据库在此基础上进一步优化,将带给用户最优质的服务。


image.png

云数据库服务应用场景

1     云数据库服务面临的安全挑战

image.png

云数据库服务所面临的安全挑战


数据库从私有机房搬到公有云,从独占基础设施,到全国乃至全球范围内共享,这给数据库的安全带来了全新的挑战。

如上图所示,数据库所面临的安全威胁分为三个维度:

  数据库使用安全

应用程序、程序员和 DBA 如果不能安全地使用数据库,很有可能会直接对数据库造成灾难性的后果。当然这种安全威胁在传统模式里也是存在的,然而上云后将更为突出。包括但不限于的风险有:

A.    数据明文传输:在传统模式里,客户端通过企业内网访问数据库,在这种情况下,明文传输数据几乎不存在风险。但在云上,连接将经过云基础设施的共享网络(物理+虚拟),潜存被窥视的风险。

B.    SQL注入、缓冲区溢出:这是应用程序访问数据库常遇见的问题了,应用程序的代码一旦没有处理好SQL语句(如直接用参数拼接SQL),很可能会造成数据库被删除、敏感数据泄露的严重后果。

C.    越权使用、合法权限滥用、权限盗用:数据库通常都存在缺省配置、高危程序、弱口令、权限分配过高等问题,可以利用这些漏洞发起攻击,入侵数据库、窃取、篡改数据。运维人员、 DBA 和 程序开发人员等普遍存在权限过高的问题,随意对数据库进行增、删、改、查、拷贝等操作,企业通常缺乏对此类操作的细粒度管控机制。

D.    缺乏详尽审计日志和分析手段:数据库被入侵和非授权操作时,攻击者可以获取数据库的高权限账户,从而删除部分或全部审计日志,导致无法准确回溯,阻碍后期取证;考虑到性能影响,数据库日志通常由于缺省的参数配置而被关闭,依赖单纯的数据库日志进行审计往往存在“短板”,需要与系统中其它事件源进行关联分析;审计记录繁杂众多,粗放的数据库审计无法从众多审计记录中精确定位到操作人,若实现细粒度的审计,意味着巨大的审计成本和服务器性能消耗。

E.     数据库通信协议漏洞:数据库是个复杂的系统,复杂程度远超于操作系统,因此常爆出数据库漏洞,这些漏洞将可能导致数据泄露或被恶意操作。

  数据存储安全

云数据库与传统数据库模式本质区别在于底层存储机制,这或许也是企业上云最关注同时也是最担心的问题。由于共享底层基础设置、数据,因此客观上存在第三方、黑客或云运营商窃取、篡改、删除数据的潜在风险。

A.    数据被第三方窃取、篡改:通常,云数据库实例运行在共享的虚拟机、容器或物理机上,共享块存储等相关设施。这意味着,在一个机房/机柜/服务器上,可能运行着竞争对手的程序。如果隔离机制不够健全,被恶意利用可能导致数据被窃取和篡改。

B.    数据被云平台运营商查看:云平台运营商作为“大管家”,因此需要利用一定技术手段和通道来定位解决问题,不免需要登录数据库节点进行修复。无论隔离机制多么完善,这种天然属性都将带来读取租户数据的风险。

C.    数据无法彻底擦除:对数据敏感程度很高的企业,可能会临时使用云平台资源来完成复杂的数据操作/分析工作。出于安全考虑会彻底删除所有数据,以绝后患。虽然操作起来很简单,但如果云平台不能彻底擦除痕迹所留下的足迹,可能会面临泄露敏感数据的风险。

  云平台管理系统自身安全

云平台通过面向互联网的管理系统,对所有租户提供实例服务,这个管理系统本质上也是一个典型的“前台网站 + 后台服务 + 运维管理”的互联网系统,其自身也面临着相同的安全风险:

A.    云平台管理系统存在漏洞,导致实例被恶意操作:互联网系统极为复杂,如果云平台技术实力不够,很有可能会存在安全漏洞,将导致租户实例被第三方、黑客恶意操作,从而带来灾难性后果。

B.    云平台管理系统被DDoS攻击,无法管理实例:互联网系统经常面临的安全问题是,遭受DDoS攻击,导致网站瘫痪无法使用。云平台管理系统如果不能应对此类攻击,将影响租户管理数据库实例。

C.    云平台内部运维的人为安全事故,导致实例被损坏:大量导致误删数据的案例,都是由于在维护服务器时误执行“rm –rf”命令,从而造成严重后果。云平台的运维安全管理与执行如果不够规范、成熟,将可能导致租户数据库实例受损。

2      解决方案

现阶段,在公有云领域,采用不同的解决方案来针对性的解决以上所有的威胁,具体如图所:

image.png

可能的解决方案

       现在,将对以下解决方案进行详细介绍。

2.1      数据库防火墙

传统的数据库,构建权限模型、防暴力破解、密码强度要求、审计日志等多重安全控制机制;成熟的商业数据库拟定了一套完整的安全机制,而开源数据库则显得相对较弱。

数据库的安全问题,多来源于应用程序访问和开发/运维人员/DBA的日常维护,仅依靠数据库本身的安全机制(尤其是开源软件)来防止此类风险,实际上远不够。

image.png

相较于一般的IT基础设施防火墙,数据库防火墙专门针对数据库访问安全进行防护在技术上,通过采用(设置)应用程序/客户端与数据库之间的一种反向代理,拦截所有数据库访问,并对返回值进行处理,从而实现多种安全防护:

  • SQL注入检测与防攻击:依据业界经验预定义或自定义规则,自动检测识别 SQL注入攻击,并支持预定义或自定义响应措施,比如Blocking、Return error等。

  • 敏感数据识别与脱敏:根据预定义(如行业规范PCI、HIPPA)或自定义规则,自动扫描全库表结构和数据,一经发现敏感数据,并可制定SQL查询返回时的脱敏策略(Masking),从而使得非授权用户无法获取敏感数据。

  • 细粒度访问控制:提供比原生引擎更为细粒度的权限控制,比如可基于表、行、列或事件,进行加上时间维度的控制。

  • 细粒度审计日志:提供比原生引擎更为细粒度的审计日志,如流量日志、入侵日志、异常监控日志、敏感数据读取日志、事前事后日志等。

  • 细粒度活动实时监控:实时监控数据库访问的所有活动,粒度可细化至列级,以及访问前和后的事件。

业界比较常见的数据库防火墙,包括以下:Hexatier、Fortinet FortiDB、IBM Guardium、Imperva SecureSphere和Vormetric等。

数据库防火墙同样适用于传统应用场景,但在云场景中使用更为便利的镜像(软件市场),同时还支持一键式启用的防火墙服务。企业上云可选用此功能,从进一步加强保障数据库的安全。

2.2      安全连接

传统应用场景中,客户端与数据库间的通常采用内网连接,多采用VPN方式打通外网访问网络,因此数据库访问的网络路径是安全的。

但在云数据库产品中,客户端通过云平台提供的虚拟网络来访问数据库,虚拟网络虽然提供了一定的隔离机制,但由于基础设施的共享特性和复杂性,导致数据包存在被监听的风险。同时,在云上运行的数据库,DBA出于便利的考虑,很可能直接通过公网访问来进行日常管理。云平台通常支持数据库实例绑定公网IP,此时客户端与数据库的通信将直接经过公网,存在巨大的被监听风险。

几乎所有主流数据库都支持基于SSL协议的安全连接,只需下载安装相关证书即可。安全连接通常意味着性能的损失,根据访问频率、数据量和数据库特性的不同,访问性能可能损失10~30%。企业上云应优先考虑数据库的安全问题,结合访问场景和业务性能的需求选取安全与性能二合一的最佳的解决方案。

2.3      安全组/IP白名单

数据库通常运用特定的应用程序访问,应用程序安装在固定的节点上。DBA通常在特定网络环境和节点(如跳转机)访问及维护。鉴于访问方位最小化的原则,数据库访问应该对来源进行限定,降低非法访问的风险。

有些数据库引擎支持账号与IP的绑定,比如MySQL,但大部分数据库并没有这种机制。这种引擎内实现的访问限制,在技术上并不能完全杜绝数据库的访问,只有连接上数据库后才能发现非法访问。因此,云平台应该提供安全组或IP白名单的机制,直接在网络、主机或OS层提供访问控制。

IP白名单,就是传统的基于OS的iptables,而安全组则是云平台基于主机或网络设备提供的,相比于OS层是更为安全的访问控制机制。安全组的规则类似于IP白名单,可对进出、IP段进行约束。

云数据库由于其所处环境为“公共场所”,相较传统场景而言,更有必须要启用安全组或IP白名单相。

2.4      实例隔离

公有云的基石是资源共享,共享必然带来隔离风险。竞争对手的数据库实例可能与你的分布在同一个服器上。当前业界的云数据库实现各异,但都对实例进行了隔离,由于机制不一,所导致的隔离程度、性能和价格也不一:

  • 独占物理机:一个数据库实例独占一台物理机,隔离级别安全性最高,同时性能最好,但价格高昂。

  • 独占虚拟机:一个数据库实例独占一台虚拟机,多台虚拟机共享物理机。虚拟机间通过底层虚拟化技术进行隔离,很难通过OS漏洞突破隔离。因此,隔离级别安全性比较高,价格便宜,但性能损失最大。独占虚拟机是公有云领域最为常见的一种供给机制。

  • 容器隔离:一台物理机安装一个OS,OS内部署多个数据库实例,实例间通过容器技术进行隔离。隔离效果略逊于独占虚拟机,但性能损失小(接近于物理机),性价比最高,因此也是一种较为常见的机制。

  •  引擎进程内隔离:数据库引擎本身支持多租户,隔离在数据库引擎的进程内实现,类似于数据库用户权限隔离。这种方式资源最大化共享,性能损失小,性价比高,但隔离效果最差。一旦数据库本身存在漏洞,将可能直接导致数据泄露,或数据库的性能容易波动。

企业选择云平台和数据库实例时,应根据自身对安全性、性能和预算的诉求,选择合适的实例类型。比如安全性要求高,但性能要求不高且预算有限,则可以考虑独占虚拟机的云平台和实例。

2.5      安全删除

企业有时候需要删除存储有敏感数据的数据库,比如临时用于数据分析处理的场景。如果在传统场景里,简单删除,然后机器继续用作其它用途即可。

然而,在公有云里,底层存储介质是全局共享的,实例是删除了,但底层的存储块仍然存留数据,可能会被分配给另一个实例,这就有可能导致数据泄露。

安全删除,指删除时对底层介质进行低格,彻底抹除数据。安全删除不仅仅包括数据库实例所挂的卷,也包括备份数据的存储空间(通常为廉价的对象存储系统)。

企业如对无痕退出有严格需求,应选择支持安全删除的云平台,并在删除时选择强制安全删除。

2.6      数据加密

防止数据泄露,除了采取隔离保护措施外,最有效的当属加密方式了。云数据库从网络传输、计算、表数据存储到备份,都是在公共设施中进行的。网络传输可以通过SSL安全连接进行加密,计算和存储加密,则需要额外的机制。

2.6.1      静态加密

云数据库的静态加密指数据静止存储到介质上时是加密态的,包括主数据用的块存储和备份用的对象存储。通常此类加密和密钥管理系统相结合,租户拥有自己的密钥,底层的卷和对象存储服务与之对接,在落盘时用密钥加密,读取时则解密。

当底层服务被攻击时,静态加密保护数据安全。数据不会泄露,因为拿到的都是密文。但静态加密不能保护OS层以上的数据窃取攻击,如云平台运维人员登录数据库实例的OS,打开数据库文件获取数据。因为静态加密是底层加密技术,对存储驱动层或API层以上是透明的。

如需防止这类攻击,则需更进一步的加密机制:表空间加密。

2.6.2      表空间加密

表空间加密,指的是数据库文件内容加密状态,只有当读数据信息存储并进行计算、返回客户端时才进行解密。主流商业数据库均支持此高级特性,如Oracle、DB2和SQL Server。

由于OS上的文件是加密态的,因此云平台运维人员登录OS查看文件,是无法获取信息的。

但并非所有数据库引擎都支持表空间加密,一旦同时启用,会对数据库性能造成显著的影响。

表空间加密可以保护OS层的文件攻击,但无法保护把内存dump出来提取数据的攻击,因为数据库引擎进行查询计算时,是需解密的,甚至明文一直留在缓冲区。

如果想要防止这种高级攻击,则需采用更为高级的加密技术:同态加密。

2.6.3      同态加密

维基百科中对同态加密的定义:同态加密是一种加密形式,它允许人们对密文进行特定的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。换言之,这项技术令人们可以在加密的数据中进行诸如检索、比较等操作,得出正确的结果,而在整个处理过程中无需对数据进行解密。

这意味着,数据从客户端就开始加密,期间的传输、运算和存储都是以密文形式存在,查询结果也直到返回客户端后才解密,从而达到“全”加密的效果,保护的效果空前强大。

2009年Craig Gentry的论文《Fully Homomorphic Encryption Using Ideal Lattices》从数学上提出了全同态加密的可行方法,在理论上证明了在不解密的情况下可以对加密数据进行任何运算(可以对明文进行的),从而使得这项早在几十年前就提出的加密技术取得决定性的突破。近些年,越来越多的学术界人士、公司对其进行研究,甚至有些商业数据库号称已经支持同态加密。

同态加密所面临的最大问题是性能损失,目前尚没有成熟可用的、性能在理想范围内的可商用数据库产品,但估计未来几年将会出现。

2.7      云平台管理系统自身安全     

云平台本身是个复杂的、面向互联网的管理系统,和所有互联网系统一样,面临着各种各样的攻击,防范措施也类似。只不过作为公共设施,其自身安全性比单个企业的系统显得更为重要而迫切,因为一旦被攻破,可能导致成千上万的企业遭受损失,后果极其严重。

系统的安全防范,需从两个维度进行:技术和人员。技术是指采用防火墙等软硬件设施来对系统进行保护,技术是“硬功夫”。人员是指开发、运维等相关人员的安全意识和技能,是“软功夫”。

对于云平台管理系统(包括数据库服务),在技术上可以采用传统的防火墙、Anti-DDoS、IDS、IPS,以防范典型的网络攻击。

但安全是个非常广泛而复杂的课题,任何一个小小的漏洞或疏忽,都可能导致系统出现严重的安全问题,进而被恶意利用造成严重后果。仅依靠软硬件设施,是远远不够的。开发人员一个简单的编程错误,可能导致缓冲区溢出,导致系统崩溃或被执行恶意代码。

因此,规范、流程和人员技能,远比安全设施更重要、更有挑战性。业界有很多安全规范,包括编程语言、数据库、OS、中间件、运维管理等领域,这些都是“前车之鉴”的经验积累,云平台可以直接借鉴应用。系统除了功能和性能等验证外,应该引入安全测试和验证流程,比如安全工具扫描、安全规范性验证、模拟渗透攻击等。安全意识、知识和技能,应该植入每个相关人,包括架构师、开发、测试和运维人员等,只有人人都被“卷入”,才可能防止“千里之堤,毁于蚁穴”。

最后,即使这些“软硬功夫”都做到位,企业把数据放到云上也未必就可以“高枕无忧”。因为还需要看云平台提供商的战略定位,对于宣布“不碰用户数据”且其自身业务性质中立的云提供商,显然更没有“犯罪动机”。而如果提供商自身的核心利益与用户数据有关,则不论技术上如何先进,也很难保证不“监守自盗”。

企业上云,从安全性角度,当然优先选择中立的平台。

3          华为云数据库服务安全现状与未来

华为云数据库服务在数据库使用、数据存储和自身管理系统安全方面,均具备良好的基础:

直接支持数据库安全服务,租户可以配套RDS启用数据库防火墙。数据库安全服务(Database Security Service)是一个智能的数据库安全防护服务,基于反向代理及机器学习机制,提供敏感数据发现、数据脱敏、数据库审计和防注入攻击等功能,保障云上数据库的安全。

  • 支持所有数据库引擎的安全连接,租户只需配置相关证书即可启用

  • 支持基于主机的安全组,可灵活配置数据库出入口网络的访问规则,以最小化访问范围

  • 支持独占虚拟机的实例

  • 支持安全删除(即将推出)

  • 支持静态加密(即将推出)

  • 部分数据库支持表空间加密

  • 具备防火墙、Anti-DDoS、IDS、IPS等基础安全设施

  • 内部系统开发有数以千计安全规范和扫描工具,涵盖编程语言、数据库、操作系统、运维等领域,以及严格的安全验证流程

  • 华为云已获得CSA STAR金牌认证、公安部信息安全等级保护三级、网信办网络安全审查试点、可信云认证、金牌运维及国际通用准则CC+EAL3+等安全认证

最后,华为的战略是云、管、端,华为云已宣布“不碰用户数据”的中立立场,这是企业上云的重要“定心丸”。

4         结论

相较于企业自建数据库的传统部署方式,云数据库服务面临着数据库使用、数据存储和自身平台系统安全等方面的安全挑战。当前,业界应对这些新威胁的解决方案,包括但不限于数据库防火墙、安全连接、安全组、实例隔离、安全删除和数据加密等。同态加密是目前最为前沿的云数据保护措施,云数据库领域当前仍然处于研究和小范围应用阶段,未来几年可能出现成熟的商业应用。

华为云数据库服务支持防火墙、安全连接、安全组、实例隔离、安全删除和数据加密等基础安全能力,其自身有着完善而严格的安全开发验证机制,并已获取十多项安全认证。

华为云坚持“不碰用户数据”的中立立场。

企业上云应根据自身业务功能需求、性能需求、预算和安全需求,以及云平台定位,选择最适合自身的云数据库服务。

1523268439.png

扫描二维码,体验华为云数据库服务

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。