漫谈数据安全 - 老板担心敏感数据泄露,该如何建设数据的安全体系?
背景
随着数据的不断迭代,数据种类和体量越来越多,那么数据的保护以及如何防止敏感数据的泄漏是当前面临比较大的挑战。
数据安全的痛点
解决数据误删除问题;
解决敏感数据泄露问题;
生产环境和测试环境隔离
痛点问题解决方案
如何解决数据误删问题
数据的备份与恢复
一、冷备
通过对物理文件的拷贝也可达到备份的效果,但是需要注意的是通过拷贝物理文件进行备份期间,要避免数据写入。一般用于历史归档数据的备份。
二、热备
文本文件导入导出
ClickHouse 通过其
ALTER TABLE…FREEZE
功能提供了对即时时间点备份的本地支持。Clickhouse-Backup
数据备份解决方案
1、文本导入导出
需要额外格式化存储文件,并且数据量较大,将数据以结构化文件导出方式不限时,并且存在数据泄漏问题。
2、ALTER TABLE…FREEZE 数据影子
Freeze 是基于分区来进行备份的,通过 freeze 对指定分区进行备份后,CK 会将改分区的数据存储在 ${datadir}/shadow 目录下,shadow 目录下的 N 是一个自增长的整数,表示 freeze 执行的次数。
freeze 的备份本质上是通过对原始目录文件进行硬链接实现的,所以不会导致额外的空间存储上涨。
3、Clickhouse-Backu
第三方实现的数据备份工具,可以实现将 ALTER TABLE…FREEZE 手动执行过程改为自动执行
4、其他厂商数据备份方案
网易:网易 HDFS 数据的备份,是基于 HDFS 快照 + DistCp + EC 实现的。
垃圾回收箱机制
数据删除之后可以保留 24-72 小时,如果后悔删除可以及时恢复。HDFS 本身支持垃圾回收机制,对于使用 Clickhouse 如果想要支持只能自己实现。
优点:防止数据被误删,增加数据的安全性
缺点:增加运维成本和存储数据成本。
数据的备份策略应该和数据资产等级打通,对于核心数据资产,数据中台应该强制进行备份,防止数据丢失。
敏感数据泄露问题
敏感数据解决问题核心要点
解决敏感数据泄漏问题主要从两个角度来处理
最小化数据权限,数据操作审计
敏感数据脱敏
操作审计机制以及精细化权限管理
数据权限是数据中台实现数据复用的前提和必要条件。如果刚开始系统没有开启权限,后期接入权限,任务的改造成本会非常高的,几乎涉及到所有的任务。所以权限这个问题,在数据中台构建之初,必须提前规划好。
阿里数据开发流程
阿里整个数据安全主要靠流程体系管控,通过用户提数据需求单后,将数据指标管理起来,根据数据指标研发去申请对应表权限,进行数据开发
整个开发生命周期涉及到了,指标管理,业务表权限申请,数据同步数仓数据质量分析,维度建模,BI 报表管理,数据的产生到应用的血缘管理,报表使用次数分析等,平台流程体系搭建以及所使用技术主要为自研。
网易数据安全解决方案
网易是通过 OpenLDAP(用户管理) + Kerberos(非安全网络双向认证) + Ranger(权限管理) 实现的一体化用户、认证、权限管理体系。
Clickhouse 本身支持 RBAC 权限控制支持角色,用户,行级权限以及集成 Kerberos 和 LDAP。
数据脱敏
数据脱敏,具体指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样可以使数据本身的安全等级降级,就可以在开发、测试和其它非生产环境以及外包或云计算环境中安全地使用脱敏后的真实数据集。借助数据脱敏技术,屏蔽敏感信息,并使屏蔽的信息保留其原始数据格式和属性,以确保应用程序可在使用脱敏数据的开发与测试过程中正常运行。
脱敏实施步骤
1、敏感数据梳理
在数据脱敏进行之前,我们首先要确定哪些数据要作为脱敏的目标。我们根据业务场景和数据安全级别划分(绝密、高保密、保密、可公开,四个级别), 主要从“高保密”等级的敏感数据,开始进行梳理。
这里我们把敏感数据分成四个维度进行梳理,用户、商家、终端、公司。
从用户维度进行梳理可能有这些敏感字段如下:手机号码、邮件地址、账号、地址、固定电话号码等信息(此外个人隐私数据相关还有如:种族、政治观点、宗教信仰、基因等)
从商家维度进行梳理:合同签订人,合同签订人电话等(不排除全局敏感数据:如商家团购品类等)
从用户终端维度进行梳理:能够可能标识终端的唯一性字段,如设备 id。
从公司角度进行梳理:交易金额、代金卷密码、充值码等
2、确定脱敏处理方法
梳理出了敏感数据字段,我们接下来的工作就是如何根据特定的应用场景对敏感字段实施具体的脱敏处理方法。
常见的处理方法如下几种有:
替换:如统一将女性用户名替换为 F,这种方法更像“障眼法”,对内部人员可以完全保持信息完整性,但易破解。
重排:序号 12345 重排为 54321,按照一定的顺序进行打乱,很像“替换”, 可以在需要时方便还原信息,但同样易破解。
加密:编号 12345 加密为 23456,安全程度取决于采用哪种加密算法,一般根据实际情况而定。
截断:13811001111 截断为 138,舍弃必要信息来保证数据的模糊性,是比较常用的脱敏方法,但往往对生产不够友好。
掩码: 123456 -> 1xxxx6,保留了部分信息,并且保证了信息的长度不变性,对信息持有者更易辨别, 如火车票上得身份信息。
日期偏移取整:20130520 12:30:45 -> 20130520 12:00:00,舍弃精度来保证原始数据的安全性,一般此种方法可以保护数据的时间分布密度。
但不管哪种手段都要基于不同的应用场景,遵循下面两个原则:
1.remain meaningful for application logic(尽可能的为脱敏后的应用,保留脱敏前的有意义信息)
2.sufficiently treated to avoid reverse engineer(最大程度上防止黑客进行破解)
3、确定实施范围与步骤
通过上面字段的梳理和脱敏方案的制定,数据仓库中涉及到得敏感字段的表进行脱敏处理。在数据仓库分层理论中,数据脱敏往往发生在上层,最直接的是在对外开放这一层面上。在实际应用中,我们既要参考分层理论,又要从现有数据仓库生产环境的体系出发,主要在数据维度层(dim),以及基础服务数据层(fact)上实施脱敏。这样,我们可以在下游相关数据报表以及衍生数据层的开发过程中使用脱敏后的数据,从而避免出现数据安全问题。
确认处理的表和字段后,我们还要确保相关上下游流程的正常运行, 以及未脱敏的敏感信息的正常产出与存储(通过更严格的安全审核来进行访问)。
以用户信息表 user 为例,脱敏步骤如下:
1.首先生产一份 ndm_user 未脱敏数据,用于未脱敏数据的正常产出。
2.对下游涉及的所有依赖 user 生产流程进行修改,来确保脱敏后的正常运行,这里主要是确认数据格式,以及数据源的工作。
3.根据对应的脱敏方法对 user 表中对应的字段进行脱敏处理。
开发与生产物理环境隔离
通用数据开发方案
共享元数据
测试和线上环境共享一套线上元数据
数据存储和资源管理
在同一套元数据中,测试环境的数据保存在 func 库中,生产则保存在 online 库中,保证测试开发不影响到生产
任务执行和配置依赖根据环境自动选择库。实现不需要修改代码一键发布。
优点:
直接使用生产环境进行测试,效率高
缺点:
存在生产数据泄漏风险
适用于效率优先的场景。
金融级别的数据安全方案
完全隔离
数据开发环境与生产环境完全隔离
大数据操作平台和数据存储完全部署两套
数据开发需要对数据进行开发和测试是需要同步生产环境部分数据到测试环境,数据需要脱敏。
任务在测试环境开发,配置任务依赖,设置稽核规则和报警,通过运维审批之后发布一键发布到生产环境
优点:
数据安全实现最高级别的保护。开发人员不需要指导数据细节和具体的数据内容
缺点:
两套环境,每次数据开发需要从线上同步数据到测试环境,数据开发效率影响比较大
需要建立完整的流程体系。包括数据权限审批,数据同步流程。开发完成后数据的发布流程
数据准确性难以保障,测试环境测完很可能存在一些未发现的问题
各厂商数据安全对比
根据调研,当前互联网大厂主要还是使用生产环境进行数据开发,极少数金融级别可能会做生产环境的和测试环境的完全隔离。主要控制敏感数据泄漏还是依赖流程权限控制,保证每个职责和岗位的人员能看到的数据最小化原则。对于用户敏数据进行脱敏处理,保证相关人员拿不到用户详细资料。
主要还是秉承着几个原则,保证数据权限最小化粒度
健全的数据开发流程体系,权限申请策略。
数据流转生命周期全链路可见,可分析
数据细节可见不可得
谁申请的数据权限谁负责,谁是数据 woner 谁对数据质量负责。
数据安全体系建设数据
安全体系建设架构图
安全体系建设建设实施步骤
数据资产梳理
梳理当前有的数据资产,当前有哪些数据,按照主题域进行分类归档
定义敏感数据的范畴,文档化输出敏感数据的定义范围
发现敏感数据,制定敏感数据管理办法。根据数据资产分级进行不同的权限管控办法。比如 L4 级别数据直接业务 woner 进行审批即可,L0 级别数据需要部门领导审批。需要授权才能使用和查看
数据权限控制
明确数据需求导入方式,以流程工单方式进行提交数据报表的申请,统一数据指标管理入口,控制数据需求导入,统一管理数据需求
定义数据开发流程,建立业务数据责任制度,谁产生的数据谁对数据质量负责
定义数据开发业务库权限申请流程,需要使用那几张表申请那几张表权限,记录表权限所有者,最小化粒度管理数据权限。谁申请谁对数据负则。
数据报表的开发与测试,保证数据报表发布之后提供给业务方有权限申请记录,并且数据报表使用次数以及历史查看记录有机可寻,也可以分析报表使用频率,对于不频繁使用的报表可以下架节省对应的数据资源
保证数据可见但不可得,保证只能看到单条数据细节不支持批量查看敏感数据细节。
数据脱敏
制定数据脱敏策略,什么样数据类型使用什么的脱敏策略
支持数据生命周期过程中进行脱敏,如从数据采集落到 ODS 层就进行脱敏,还是在数仓提供给上层应用时进行脱敏要支持策略性的配置。
脱敏后的数据是不支持维度分析。
版权声明: 本文为 InfoQ 作者【王老狮】的原创文章。
原文链接:【http://xie.infoq.cn/article/93f794129192b908e4ee7abb5】。未经作者许可,禁止转载。
评论