缺乏安全的数据化转型将使企业面临更大的安全风险,频发的数据安全黑天鹅事件,也让每一个IT从业者都意识到保护数据安全已经刻不容缓,通过本课程, 将让开发者了解到如何构建完备的企业级数据库安全解决方案,通过内置的数据安全保护能力,数据备份恢复能力,数据安全访问方案来全方位的来保障数据这个最重要的生产资料, 同时在新的环境下,为实现最大限度的控制而设计的传统安全方法将不再使用,通过云上成熟的数据访问安全方案,在实现安全可控数据访问的基础上, 还能尽可能让开发者享受到自助使用数据库的便利,从而充分提高研发效率。本次分享由阿里云资深产品专家周振兴为大家系统介绍在云数据库时代如何实现完善的企业级数据库安全解决方案。本次分享将概述企业级数据库的安全挑战以及阿里云全链路数据库安全保护架构,从五个方面入手详细介绍如何实现云数据库的安全管理,希望大家了解DMS企业级数据管理的理念与做法。
演讲嘉宾简介:周振兴(花名:苏普),阿里云数据库产品事业部资深产品专家。
以下内容根据演讲视频以及PPT整理而成。
观看回放https://developer.aliyun.com/live/3099 本次分享主要围绕以下三个方面:
一、企业级数据库安全挑战
二、阿里云全链路的数据库安全架构
三、云端数据库安全管理
一、企业级数据库安全挑战
1.三次典型数据库安全事件
某盟“删库跑路”:某盟主要向中小企业提供在线电子商务、在线营销解决方案,有许多新零售领域的大客户。2020年2月,该公司运维部一核心成员通过VPN登入公司核心业务运行服务器进行恶意删库操作,对公司造成巨大恶劣影响。该公司经7天完成数据恢复,向客户赔付约1.5亿,并被竞争对手挖客户,股价最高下跌36%。
此次事件不仅造成了巨大的直接经济损失,客户流失、信任度下降等间接损失也非常严重。可见该公司数据未备份或者仅备份在本地,未进行备份恢复测试。
Gitlab意外删库:2017年1月,Gitlab由于黑客攻击使数据库中存在大量ddl、dml操作,导致备库延迟非常高。数据库管理员进行备库重建时“多窗口命令”执行错误,意外删除了主库数据。事件发生后,Gitlab立刻公布了事件起因及详细处理过程,全程透明。该事件多种备份手段恢复失效,导致Gitlab 6小时最新数据彻底丢失,包括约4900提交、700客户信息。可见其未进行复杂场景的备份与恢复测试。
天津港危化品爆炸:据不完全统计,该爆炸事件影响了约10个数据中心,包括超算中心、一般数据中心。该事件具有突发性、无法预料。避免此类数据安全事件需要区域级的容灾方案。
2.安全隐患
数据安全时间每隔一段时间就有发生,因此通过系统方式保障数据库安全十分重要。以下列举了几类数据安全隐患。
外部窃取或攻击:如网络安全攻击、网络数据窃取等。
内部安全隐患:数据泄露20%~30%是由于内部安全隐患。包括数据库权限管理困难,敏感数据发现、管理困难,人为误操作难以避免,系统、软件bug等。
不可抗力:地震、洪水等自然灾害,以及其他导致数据中心失效的因素,如爆炸、城市施工等。因此数据中心选址往往远离此类地带。
二、阿里云全链路的数据库安全架构(概述)
数据库:下图底层所示为阿里云部分主要类型数据库。阿里云有一系列数据安全解决方案,帮助用户避免各种类型的数据安全事件。
SSL+TDE:SSL可以保证数据在公网传输过程的安全。即使有人获取了数据包,也无法得知数据信息。TDE对数据落盘进行加密,即使磁盘发生了物理丢失,获取磁盘者也无法得知具体数据。
账号/实例安全:最贴近数据库的第一层保障。任何用户访问数据库都需要用户名以及密码保障账号安全。另外数据库账号在权限控制上可以做到库、表、列级别。并且在许多企业级数据库会提供密码复杂度检测等功能提高账号安全等级。以及备份恢复、审计等能力完整地保障账号/实例安全。
数据库安全访问DMS服务:帮助企业实现统一、高效的数据安全管理。
网络控制:数据库实例遵循最小访问原则,只让需要访问的应用服务器访问数据库。包括VPC网络应用隔离、白名单、安全组快速配置管理等方式。
阿里云大安全系统:例如云盾阻隔一般性攻击,金融云等环境有特殊物理/网络隔离方案,堡垒机安全管理、RAM子账号管理等。
三、云端数据库安全管理
1.SSL+TDE
SSL链路加密:保障传输安全。当用户数据库需要通过公网访问传输,或在阿里云环境下需要通过经典网络访问时,建议开启SSL。
其优势是每一次数据访问与数据交互都以加密数据的形式进行传输,使客户端与数据库之间的所有通信加密传输,防止第三方窃取数据。另外SSL加密的数据不可篡改,避免第三方篡改攻击。
阿里云SSL配置简单灵活,可以指定某些账号强制开启SSL。无需配置和管理证书,即开即用。建议在互联网和经典网络中开启SSL,增强安全性。
目前SSL加密是普遍通用的数据加密方式。
TDE存储加密:任何数据落盘时通过密钥对数据加密。使用TDE加密,即使数据在物理或磁盘层面被第三方获取,没有密钥无法获得具体数据。
其特点是可以支持实例级存储加密。可通过OSS中的备份数据双层加密。密钥管理目前支持KMS系统以及BYOK两种方式。TDE加密可一键开启,配置简单。
SSL/TDE配置简单灵活:①登录RDS管理控制台;②页面左上角选择实例所在地域;③找到目标实例,点击实例ID;④左侧菜单栏单击数据安全性(如下图左下页面);⑤选择SSL/TDE标签页。
2.VPC、安全白名单、用户名/密码
如何实现最小化权限与访问原则,在数据传输链路上尽可能避免不必要的人、服务器或机器访问数据库?例如应用A需要访问数据库,如何配置仅对部署应用A的IP打开限制?
VPC:提供隔离的网络环境。相同类型的应用才会放在同一个VPC中,并且只有该VPC内部服务器才能访问VPC内的数据库,保证无关应用不能访问该数据库。
安全白名单:更细粒度的网络控制。若仅A、B、C三台应用服务器需要访问数据库a,可在该数据库实例上以白名单方式配置只允许A、B、C三台应用服务器访问。可实现最小化权限与访问原则,使尽可能少的服务器访问到数据库。
用户名/密码:进入数据库的钥匙。合理用户名/密码的最佳实践包含以下方案。第一,保证密码复杂度并且定期更新密码。第二,实现列、库、表多级别权限控制。例如某个应用系统无需访问A列,可不为A列授权,实现最小化访问。第三,用户名/密码可与IP地址组合授权。
实际上用户名/密码最佳实践的使用比较少。存在密码多年不变更、通用账号(账号权限大)等情况。
3.企业级数据管理DMS
数据管理DMS:基于阿里巴巴集团十余年的数据库服务平台的云版本,提供免安装、免运维、即开即用、多种数据库类型与多种环境统一的Web数据库管理终端。数据管理DMS可以为企业快速复制搭建与阿里集团同等安全、高效、规范的数据库DevOps研发流程解决方案,用以解决企业级环境下的数据管理挑战。
企业级环境特点:研发人员多,人员增加及流失导致用户名/密码难以管理,数据库用户名/密码安全面临问题;数据库实例多,管理复杂度高;数据敏感度高。
企业级环境挑战:存在账号管理困难、误操作威胁数据安全、敏感数据识别困难、数据库审计粒度粗,数据库变更难以流程化执行等多种问题。
核心功能大图:如下图所示。
以下通过具体业务场景讲解企业级数据管理DMS的用处。
典型场景1:公司的运营、研发、测试、审计、实习生都可能需要对数据库进行操作。当然数据库不可能让如此多员工全部登入数据库进行操作。如果每个人都可以登入数据库查询数据,账号密码体系难以管理,数据安全隐患大,并且审计困难,数据库稳定性难以保障。
经典解决方案是将所有查询发送到DBA,DBA查询完成后将数据发送给需要方。但是公司规模大、人员多时该方案人工查询沟通效率低。
为了平衡安全与效率,使用DMS统一授权管理。所有数据查询都通过DMS平台操作。查询数据首先需要申请对应的数据库权限。目前权限控制已经达到非常细粒度,包括权限类型、时间、目标。
DMS统一授权管理体系可以方便地管理权限。第一,当有人员职责变更,可以快速回收权限。第二,达到列级别粒度的权限管控。第三,面向个人云账号。第四,权限过期提醒。
典型场景2:第一,暴力查询拖库。例如将一个账号给研发人员或运营人员,该人员可以从数据库查询到大量数据,将数据库拖走。第二,有ddl权限者可以删库跑路。另外还有数据泄露、慢查询拖垮数据库、误操作等问题。
DMS企业级数据管理通过以下方式避免上述问题。首先,针对暴力查询拖库场景,当DMS中查询操作超过一定量,需要进行额外审批,否则平台进行自动截断,对安全性提供了巨大保障。第二,针对删库跑路场景,若公司所有人员都通过DMS平台进行数据管理,所有危险操作都会触发DMS平台的审批流程。第三,针对慢查询场景,DMS具有kill机制,可以自动停止过慢查询,保障数据安全。
典型场景3:敏感数据管理。随着对个人信息的保护越来越强,个人信息不仅影响着企业数据安全、企业信用,甚至涉及法律层面。敏感数据的管理达到了新的高度。
DMS提供了自动敏感数据发现能力,可以自动识别地址、电话号码、身份证件等敏感信息,并默认不允许查询敏感数据。如果出于业务需要查询敏感信息,需要申请权限。
如下图右下角页面所示,敏感信息默认为密文形式,大大保障了敏感信息安全。
典型场景4:在一家企业的最佳实践中,基本所有研发、测试、运营、产品等人员都需要进行查询操作,因此审计非常重要。如果使用传统审计方式,需要专业DBA介入,并且耗时长。
DMS平台具有完善的审计流程。DMS中所有操作都会记录在DMS日志中心,支持多维度搜索,包括人员、数据库、表、功能模块、操作时间等相关操作日志。
综上所述,DMS平台可以帮助用户实现高效、安全的企业级数据库安全管理。
4.备份与恢复
备份是最后一道数据保护措施,同时也是一种事后的数据保护措施,即出现问题后通过备份恢复数据。上文描述的Gitlab案例,出现重大问题后多种备份方式失效,导致了重大损失。因此备份安全与恢复十分重要。
备份可以修复存储介质错误、应用程序错误、人为错误、自然灾害与网络攻击导致的问题。同时备份数据具有合规要求,也可以发现额外的数据价值。
一般备份与恢复注意事项:首先需要配置数据库备份,定义备份计划。其次需要对各类场景进行备份与恢复测试,验证有效性。第三,需要日常监视、优化备份与恢复。第四,从备份恢复数据时,需要按照具体时间点进行恢复。
云端实现安全可靠的数据库备份:阿里云以及一般数据库都具有下图左侧所示RDS自带的备份能力。另外阿里云可以使用DBS(数据库备份)产品进行数据库备份。
DBS:下图左下角所示页面为官网介绍。使用DBS可以实现多云、多环境的数据库备份。无论是ECS自建数据库、本地数据中心还是其他云上数据库,DBS都可以进行数据库备份。关系型数据库目前支持MySQL、ORACLE、SQL Server,以及支持一些NoSQL数据库备份。
DBS备份支持全量数据与增量日志备份,可以进行基于时间点的恢复。可通过SSL线路、VPN、专线方式连接到本地数据中心或者其他云环境进行数据库备份。
下图右侧所示为DBS产品相关组件。可以通过KMS密钥管理系统对备份数据进行加密。也可以将不同环境的数据库备份恢复到RDS进行数据验证,甚至实现数据迁移。
5.SQL审计
SQL审计会记录所有数据库相关操作,包括人、系统、应用的操作,可以帮助用户发现谁在某时间对某对象进行了某操作。SQL审计的量往往巨大,所记录的信息非常全面,可以做的事很多,也正因如此有时会比较慢
如果使用阿里云SQL审计,可利用以下功能加快操作速度。
攻击事件识别:可通过SQL审计发现漏洞攻击、SQL注入、暴力破解、数据窃取等。
操作权限监控:可识别越权操作。
合规审查分析:帮助企业完成等保合规审查、信息安全管理合规审查。
以上三项为较低频操作。
辅助业务优化:由于SQL审计记录了所有SQL执行情况,可以有效分析SQL执行时长、频率以及数据库操作分布和数据库对象使用分析。
在阿里云数据库上使用SQL审计操作非常简单。①登录RDS管理控制台;②找到目标实例,单击实例ID;③左侧导航栏单击SQL洞察;④单击立即开通。
SQL审计量非常大。阿里云SQL审计提供了一些能力优化,支持对关键字、时间范围、用户、数据库、操作类型等进行搜索与查询。有效帮助用户在海量SQL审计数据中查询到所需数据。
希望本次分享可以令有兴趣的用户了解阿里云全链路的数据库安全保护的理念与做法,也可以将部分理念引入到自己的企业,实现高效便捷的数据库安全保护。