你在使用哪种编程语言?快来投票,亲手选出你心目中的编程语言之王 了解详情
写点什么

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

2020 年 4 月 03 日

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

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



云数据库服务应用场景


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


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


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


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


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


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


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


数据库使用安全


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


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


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


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


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


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


数据存储安全


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


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


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


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


云平台管理系统自身安全


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


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


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


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


解决方案

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



可能的解决方案


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


数据库防火墙


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


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



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


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

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

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

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

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


业界比较常见的数据库防火墙,包括以下:


Hexatier、Fortinet FortiDB、IBM Guardium、Imperva SecureSphere 和 Vormetric 等。


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


安全连接


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


但在云数据库产品中,客户端通过云平台提供的虚拟网络来访问数据库,虚拟网络虽然提供了一定的隔离机制,但由于基础设施的共享特性和复杂性,导致数据包存在被监听的风险。


同时,在云上运行的数据库,DBA 出于便利的考虑,很可能直接通过公网访问来进行日常管理。云平台通常支持数据库实例绑定公网 IP,此时客户端与数据库的通信将直接经过公网,存在巨大的被监听风险。


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


安全组/IP 白名单


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


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


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


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


实例隔离


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


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

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

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

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


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


安全删除


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


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


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


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


数据加密


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


静态加密:


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


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


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


表空间加密:


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


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


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


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


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


同态加密:


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


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


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


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


云平台管理系统自身安全

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


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


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


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


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


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


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


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

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


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


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

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

  • 支持独占虚拟机的实例;

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

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

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

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


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


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


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


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


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


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


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


本文转载自华为云产品与解决方案公众号。


原文链接:https://mp.weixin.qq.com/s/alrIbydR_kHN8gaxB1iQ3A


2020 年 4 月 03 日 13:571035

评论

发布
暂无评论
发现更多内容

JavaScript学习(十)---正则表达式

空城机

JavaScript 前端 6月日更

阿里刚发布的《Spring Cloud Alibaba项目文档》,限时开放下载

Java架构

[译] D8 优化

Antway

6 月日更

抖音电商发布创作者管理总则:如何明确带货主播和平台的责任

石头IT视角

A16z创始人马克·安德森:加密货币代表了技术运作方式以及世界运作方式的架构转变

CECBC区块链专委会

给几位粉丝做完面试辅导后,我发现了一些问题!(Java岗)

Java架构师迁哥

一文教你快速避开JDBC中常见的坑,网友:编写代码再也不翻车了

java专业爱好者

Java JDBC

区块链使能的供应链金融——区块链信息治理

CECBC区块链专委会

JavaScript 实现:输出斐波那契数列

编程三昧

JavaScript 前端 数组 递归

JAVA 面向对象 (十二)-- 关键字 super

加百利

Java 关键字 super 6 月日更

从品牌投放策略新逻辑,看户外广告成为投放首选原因

󠀛Ferry

6 月日更

gitlab服务端hook,拦截糟糕的提交到仓库

阿呆

gitlab hook

因子分解机(十九)

数据与智能

因子 分解机

通证经济,一个正在狂奔的互联网数字经济时代

CECBC区块链专委会

北京JAVA开发3年,拿到美团35K的offer面试心得

喝酸奶不舔盖

大厂难进?清华学霸整理的Java反射机制笔记,让你面试一面即中

java专业爱好者

Java java反射

「SQL数据分析系列」9. SQL子查询

数据与智能

数据库 sql 子查询

网络攻防学习笔记 Day56

穿过生命散发芬芳

网络攻防 6月日更

通俗易懂 !Kafka 开发快速入门看这篇就够了

云祁

Bigdata Kafk

面试阿里、蚂蚁、京东、美团后整理出了一份283页Java核心面试宝典

Crud的程序员

Java spring 架构 编程语言

看完字节大佬的LeetCode刷题笔记,直接怒斩网易、腾讯双offer

喝酸奶不舔盖

Java技术栈ppt分享:大数据+架构篇+算法篇(阿里巴巴内部资料)

喝酸奶不舔盖

浏览器设备信息UserAgent查询

入门小站

工具

深入了解java线程篇之ThreadPoolExecutor

邱学喆

线程池状态 任务提交 任务执行 动态调整线程池参数

(2021 最新版)IntelliJ IDEA 下载安装及配置教程

村雨遥

Java IDEA IntelliJ IDEA 6 月日更

计算机组成原理 寄存器实验详解(含工程文件)

若尘

计算机组成原理 六月日更

前端面试 | 18个常见HTML问题与答案

devpoint

html xml 6 月日更

Linux之cat命令

入门小站

Linux

迷惘的六月份

卢卡多多

生活状态 六月日更

灰都再次加仓FIL?多地关停比特币矿/场?Filecoin会受到影响吗

IPFS8822

阿里架构师通过“58个基于知识的实例+2个项目”来讲解Spring Boot

Java架构师迁哥

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

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