数据保护的探索与实践

83 阅读12分钟

【点击了解更多网易技术】

从2017年网络安全法的生效,到去年《数据安全法》的重磅出炉,我国及相关部门共颁布123部数据安全相关法律法规及行业标准;技术方面,大量数据安全相关技术处于发展期,仍有较大的创新空间;行业方面,越来越多的企业面临着安全问题和合规问题。

那么,安全中心作为有数数据开发及治理平台的关键组成部分,如何进行数据保护?本文将为您介绍我们在数据保护上的探索与实践。

1、背景

在数字经济蓬勃发展的今天,数据成为国家基础性战略资源、重要生产要素。由此也滋生了许多牟取暴利的黑色产业链,个人信息泄露事件有增无减。基于此,无论是国家机关还是企事业单位,都在加紧数据安全体系的建设,建立完善数据安全管理制度和技术保护机制。

敏感数据是指泄漏后可能会给社会或个人带来严重危害的数据。包括个人隐私数据,如姓名、身份证号码、住址、电话、银行账号、邮箱、密码、医疗信息、教育背景等;也包括企业或社会机构不适合公布的数据,如企业的经营情况,企业的网络结构、IP地址列表等。

如果负责存储和发布这些信息的企业无法保证数据隐私,他们就会面临严重的财务、法律或问责风险,同时在用户信任方面蒙受巨大损失。

我们的数据保护模块由安全等级、敏感类型、脱敏规则、数据识别、数据脱敏(静态脱敏、动态脱敏) 5大模块组成,实现了数据分级分类->敏感字段发现->脱敏规则定义->敏感数据脱敏 的数据保护全流程。

2、应用场景

2.1 敏感数据分级分类

为了规范公司各类信息数据的管理,确保各类数据在存储、传输、使用时均受到合理的保护,明确数据泄露时的应急处理机制和流程,最好的方式是建立起数据分类分级管理制度。

定义什么样的数据是敏感数据:由于不同行业和公司的行业特性及实际情况不同,敏感数据分级和分类的划分不同。各企业需要根据国家标准和自己的行业标准,自定义符合何种特质的数据属于敏感类型。

定义敏感数据分别属于哪个安全等级:对数据进行分类之后,为了进一步对数据进行管理并满足合规要求,需要定义数据所属的安全等级。按照法律要求、价值,对泄露和修改的敏感数据的敏感类型进行安全等级的划分。对不同的字段,进行分级分类的标识,综合字段的安全等级还可得出表级的安全等级。

2.2 敏感数据识别

识别哪个字段是敏感字段/识别字段安全等级:定义好数据的敏感类型和安全等级之后,就需要知道哪个表中的哪个字段为这些敏感类型或高安全等级。由于数据的数量庞大,人工去发现并标注数据会花费大量的人力和时间成本,面对海量数据往往不知从何下手,这样无疑是低效且容易出错的。安全中心建设起敏感数据自动发现的能力,用户可通过创建的识别任务的方式,在指定的库表范围中,自动识别敏感数据并生成识别结果。

数据治理团队会定期发起数据识别任务,进行敏感数据的自动发现。基于敏感类型,可以自动推荐相应的安全等级。将安全等级作为判定治理过程中各种流程审批链路及判定风险行为的依据。后续针对敏感数据提供相应的安全防护,包括且不局限于:敏感数据脱敏、访问控制、加密传输和存储、安全共享等。

2.3 动态脱敏

对于数据分析师、数仓开发等人员,在数据地图、自助分析等场景下对于明文存储的数据也有即席查询的需求。如果直接查询明文数据容易导致数据泄露,管理员会为高敏感的数据配置即席查询场景下的动态脱敏。对于不同的数据,灵活地采用不同的脱敏规则和算法,如遮盖、哈希、加密等。

动态脱敏,还应有两种配置方式。第一种方式是基于敏感类型配置脱敏,如,在指定的库表范围内,将所有身份证号和手机号配置脱敏;另一种方式则是直接明确将脱敏规则指定到相应的库表字段上。

在配置了动态脱敏后,对于有查看明文数据的需求的用户,可将其配置脱敏白名单,即可查询明文数据。(部分操作是由项目账号执行,目前安全中心已将项目账号都预置成白名单)

2.4 静态脱敏

静态脱敏为在数据传输中进行脱敏规则配置,一次性完成大批量数据脱敏处置,通常用于将生产环境中的敏感数据交付至开发、测试或者外发环境的情况。某证券行业的企业,内部就分为生产集群和测试集群,生产集群的明文数据在传输过程中进行静态脱敏,脱敏后的数据存储到测试集群中。对于低权限的员工,只能在测试集群对脱敏后的数据进行开发。

3、实践案例

实践一:敏感数据分级分类的应用

(1)定义和发现敏感类型和安全等级

在安全中心的数据保护模块,可以对敏感类型和安全等级进行定义,并将敏感类型与安全等级相关联。在元数据注册的流程中也可以进行安全等级设置,通常是对表的每个字段设置具体的安全等级,最终表的安全等级取其字段的最高安全等级。

当业务发生变化而导致元数据的安全等级也变化时,业务人员可在数据地图表详情页发起元数据治理工单,申请治理原因为安全等级变更;也可以由数据治理人员在元数据列表发起安全等级变更申请。安全等级变更申请审核通过后,经过发布就能将元数据安全等级改为最新等级,呈现在数据地图表详情页。

在安全中心的数据识别模块,可以选择需要识别的库表范围,通过敏感数据识别的方式从大量业务表中识别出里面存在的敏感字段,并标记出该字段的安全等级。

(2)安全等级与权限管理的打通

在定义好安全等级以后,下一步就是要对表权限和列权限做严格控制。要在组织内部定义好针对不同角色和用户可以拥有权限的等级范围,针对高安全等级的表和列提高权限申请时审批的门槛,加长审批链路。

同时,安全中心还在探索基于标签权限管理的能力,敏感类型和安全等级都可以作为授权的标签,基于这个安全等级直接给用户进行授权。

(3)安全等级与审计的打通

审计作为安全中心一个重要的能力,需要覆盖平台功能的操作审计及数据的操作审计。而对于敏感数据的操作,更要引起格外的关注。对于特定敏感类型或高安全等级的数据,实现查询或修改等敏感操作要给予及时发现和预警。

首先,要在审计日志中对表的访问行为做审计,及时记录用户的操作。其次,要支持从安全等级和敏感类型两个维度配置风险告警规则,及时发现数据安全风险。

案例二:数据的动态脱敏

(1)灵活配置脱敏规则

对于不同库表或敏感类型的数据,适用的脱敏算法也有所不同。常用的有遮盖、MD5、AES等脱敏算法,目前安全中心内置了12种不同的脱敏算法。而在算法的基础上,增加一些个性化的配置,则构成了脱敏规则。

有些场景下,需要将生产环境的数据传输到开发测试库来进行问题排查,将数据明文存储到非生产环境无疑是不安全的。此时就需要在传输中配置脱敏,而开发人员并不关注数据本身的业务含义,通常可选用哈希等进行脱敏。而数据分析人员,需要保留部分信息来进行分析,如通过学校信息统计大学生源省份,信息“河北省秦皇岛市第一中学”,就可以采用遮盖脱敏保留前三位字符脱敏成“河北省********”进行分析。如果系统内置算法仍不满足业务方灵活的需求,也可进行自定义UDF的调用。

(2)配置数据识别任务,根据敏感类型配置动态脱敏

在进行数据识别任务中,我们可以发现敏感的字段给他们赋予敏感类型和安全等级的标签。紧随其后的下一步操作,就是要将这些字段与我们定义好的脱敏规则关联起来,在生产环境下访问时,实时地进行脱敏。

在新增识别任务时,可以选择是否对识别出来的敏感类型配置脱敏,并为每种敏感类型匹配上脱敏规则。在生成数据识别结果后,可修改脱敏规则或批量确认脱敏规则,确认后即可生效。

(3)手动根据字段配置动态脱敏

作为根据敏感类型自动配置脱敏的补充,如果明确知道具体哪个库或表的字段需要脱敏,则可以去手动选择字段配置脱敏规则。

(4)配置动态脱敏白名单

数据保护的动态脱敏功能,能有力的保护敏感数据在对外展示和输出时是脱敏的密文数据。但在某些特殊场景下,对于特定的人和数据范围,应当可支持其查看明文数据。例如,对于某些国家和法律法规要求范围之外的,公司级别的敏感数据,如公司资产数据、负债数据等,高管人员及财务人员需有权查看明文数据。再如,线上数据开发任务,需要明文数据进行运算。

脱敏白名单功能则可有效解决以上的需求场景,在权限配置的白名单配置中,首先选择需要配置的白名单资源范围即库表范围,最后选择白名单的账号范围,可以是具体的用户,也可以配置到角色。

(5)真实脱敏案例展示

表tuomin有name、email、address、phone、idcard五个字段,并建立地址、手机号敏感类型。

通过数据识别任务为表的敏感类型 “地址” 配置脱敏规则“ 地址遮盖脱敏”、敏感类型 “手机号” 配置脱敏规则“ 手机号遮盖脱敏”;通过手动配置脱敏为字段 “Email” 配置脱敏规则“ 邮箱地址遮盖脱敏”。

进入数据地图找到表tuomin 进行数据预览,可看到相应字段已被脱敏。

为当前帐号配置字段phone的脱敏白名单,再进入数据地图进行预览时,则可以看到phone字段的明文数据。

案例三:数据的静态脱敏

具体来说静态脱敏是每次任务运行时,将对来源表的敏感字段按照配置的脱敏规则进行脱敏处置,再写入到去向表之中,全过程涉及数据传输和安全中心两个子产品的联动。和动态脱敏一样,需要在安全中心中进行敏感类型的定义和脱敏规则的配置。然后在新建和编辑数据传输时,可选择是否开启脱敏。

在传输任务中进行脱敏规则、扫描条数和扫描匹配率的配置。可根据选择的脱敏规则、扫描条数、扫描匹配率去识别敏感字段,并根据脱敏规则所指定的脱敏算法展示脱敏样例。每次传输任务运行时,将对来源表的敏感字段按照配置的脱敏算法进行脱敏处置,去向表中存储脱敏后的数据。

传输任务运行后,可以再前往安全中心进行运行静态脱敏结果的查看。

**4、**总结

目前,有数数据开发及治理平台的数据保护功能,已在数十家内外部客户落地投入使用。我们将在未来进一步探索数据安全相关的能力,把数据安全贯穿数据质量全过程,为数据的全生命周期安全保驾护航。欢迎大家留言交流~

作者简介

楚乔,网易数帆产品经理,负责有数数据开发及治理平台的数据质量工作,前路漫漫,道阻且长,和产品一起成长。