郭赞宇,张旗
(1.工业和信息化部网络安全产业发展中心(工业和信息化部信息中心),北京 100846;2.中孚信息股份有限公司,山东 济南 250101)
“数据脱敏”又被称为“数据去隐私化”或“数据变形”,是在给定的规则、策略下对敏感数据进行变形、转换和混淆等差异化处理的一种技术机制,主要解决敏感数据在非可信环境中安全使用的问题[1]。随着国家电子政务体系建设的不断推进,数据成为组织的核心资产,并受到前所未有的重视。但在各种利益的驱使下,电子政务系统成为不法分子攻击的重点目标,数据泄露事件层出不穷,传统以网络为中心的安全策略已向以数据为中心转变。数据脱敏作为数据安全不可或缺技术,在确保数据机密性、可用性和完整性,防止数据被泄露、篡改和破坏等方面发挥着重要的作用,已引起行业的高度关注。
政务信息安全关系国家安全、社会稳定和公众利益,一旦泄露则极易造成侵犯隐私、社会影响大、公信力和声誉受损等恶性后果。为了强化数据安全合规性建设,国家行政机构先后出台各类相关的监管法规,如《中华人民共和国数据安全法》《信息安全等级保护管理办法》和《政务信息资源共享管理暂行办法》等,对于重要敏感数据保护的要求,主要包括:
1)识别所涉及的敏感数据,并建立和维护敏感数据的目录,明确对应的保护策略和机制;
2)提供安全通信机制,保障通过互联网所传递敏感数据的机密性和完整性;
3)运用安全防护机制,对保存有敏感数据的数据库、文件和存储依照策略实施加密、访问控制、监控与审计等保护措施。
另外, 《网络安全等级保护基本要求》规定第三级安全要求满足: “应用系统必须提供敏感标记设置功能”和“依据安全策略严格控制用户对有敏感标记重要信息资源的操作”等条件。
政务大数据平台不仅实现了政务信息的共享交互,更为数据资产的汇聚整合和挖掘分析提供了支撑,给政府决策、公民服务、城市管理和公共安全等带来了极大的便利,也使隐私、敏感信息保护面临严峻的挑战。数据脱敏的目标是实现数据高度安全与信息价值最大化之间矛盾平衡,应该实现以下几个方面的要求。
a)防止敏感数据泄漏
要求对重要敏感信息脱敏处理后,再提供给第三方使用,防止数据泄漏。
b)确保数据逻辑关联可用性
脱敏策略和算法应保证脱敏数据的有效性(保持原有的数据类型和业务格式不变)、完整性(保证长度不变、数据含义不丢失)、关系性(保持表间、表内数据关联关系),以提升测试、开发和应用环节的数据真实性和可用性。
c)保证数据开放共享的安全
对数据库访问者的用户名、IP、工具类型和时间等进行监控,控制数据访问结果的差异化,满足细粒度的数据访问需求。
d)实现脱敏规则可配置
根据不同的业务应用需要,可动态地配置脱敏规则及算法,并且在配置条件不变的情况下,同源数据脱敏结果必须保持一致。
数据脱敏分为静态数据脱敏和动态数据脱敏两种,静态数据脱敏适用于开发、测试环节的防数据泄漏场景;动态数据脱敏满足“脱敏即使用”需求,适用于快速、低风险、平稳提供生产数据库的实时隐私保护。脱敏规则取决于脱敏算法,可产生不同的脱敏结果[2],具体内容如表1所示。
表1 脱敏规则
在实际中,根据脱敏对象数据类型、应用场景和保持特征确定对应的脱敏规则;另外,还需考虑算法开销因素。
对敏感数据安全交互共享实施保护,需要先对其进行识别与分类处理。
a)敏感信息发现识别
传统对敏感字段识别主要通过基于关键字、正则表达式或数据指纹的规则库匹配实现,但如若规则库内容不全,则极易造成漏报。随着识别算法的不断优化和数据模型的日趋完善,利用机器学习算法挖掘潜在的关键字,并完善充实规则库,进而主动地发现重要敏感的政务数据。
b)敏感信息分类分级
依据政府数据分类分级相关标准,按主题、行业和服务对政务数据分类,并按照数据的价值、内容敏感程度、影响和共享范围划分敏感级别[3]。为了实现对敏感信息的威胁评级,可构建k-means聚类模型,以筛选疑似高危信息,通过威胁评分模型进行评级,对敏感数据给出高危、中危和低危的标签。
2.3.1 流式数据脱敏
对于实时计算、动态增加、响应要求及时的流式数据脱敏处理,通过以下方式实现。
a)基于Storm的流式数据脱敏
基于Storm的流式数据脱敏处理流程图如图1所示。分布式Storm数据流处理系统的核心组件spout负责输入流管理,适用于增量聚类的实时计算处理,增量数据脱敏处理依据数据脱敏算法库中的脱敏规则。两种流式数据脱敏方式:对于第三方应用接口接入的数据,经Kafka消息中间件提交Storm实时计算,通过开箱即用的分布式RPC,无需等待全量数据形成,系统即可读取历史数据并结合相应的算法,实现泛化处理数据,极大地提高了脱敏效率;对于全量数据,数据脱敏模块直接调取基于全量数据的脱敏算法,处理生成脱敏结果。
图1 基于Storm的流式数据脱敏处理流程图
b)基于Spark Streaming的流式数据脱敏
基于Spark Streaming的流式数据脱敏处理流程图如图2所示。Spark Streaming接收实时输入数据流,可将数据分成多个batch,再交由Spark引擎处理,以批量生成最终结果流,具有可扩展、高吞吐量和容错等特点。因此,基于Spark Streaming的流式数据脱敏,也可视为微批处理的数据脱敏,适用于需要有状态计算且延迟性要求不高的流式数据脱敏应用。
图2 基于SparkStreaming的流式数据脱敏处理流程图
流式数据脱敏的特点是“数据发生即可脱敏”,但难以利用全量数据做复杂的关联处理。
2.3.2 批量数据脱敏
批量数据脱敏面向的数据源状态比较稳定,相对流式数据脱敏而言,批量数据脱敏可根据数据间的关联关系,运用复杂的脱敏算法和安全策略,以得到更好的脱敏效果。在实际应用中,对基于Flume采集的批量数据,可以编写内容拦截器来实现敏感词过滤,再调用脱敏程序对过滤后的结果进行处理;对于关系型数据库的批量数据采集,利用Sqoop实现敏感数据的抽取,再通过UDF任务调度程序,完成批量数据脱敏处理。
政务大数据平台[4]为多源数据的汇集整合、分析挖掘和共享交互提供支撑,通过用户认证、权限管理及数据加密等技术可增强数据安全性,但无法完全解决数据内部泄露、恶意攻击等问题。引入数据脱敏机制,可保证数据可用性的同时,解耦敏感内容与数据业务的关联,提升对数据的细粒度安全控制。
所有接入政务大数据平台的重要敏感数据,要求加密存储至政务数据中心的贴源数据库,对于高频使用、属性较稳定的敏感数据,根据安全策略和脱敏规则,经脱敏处理后存储至脱敏数据库,供上层应用高效地调取。数据脱敏涉及大数据接入平台、安全管理平台、密钥中心和数据中心等系统的交互协同[5],业务关系如图4所示,其中各个模块的功能如下所述。
图3 基于批量数据脱敏处理流程图
图4 政务数据脱敏业务逻辑关系图
a)数据源
各类敏感数据源根据密钥中心分发的加密证书,与政务大数据接入平台建立加密传输通道,确保数据传输安全。
b)密钥服务中心
按照统一安全加密和认证授权策略,为各类合法的用户、应用服务及设备提供密钥配置管理、密钥/证书的生成与分发等服务,为敏感数据加密和脱敏处理提供密钥。
c)政务大数据接入平台
提供ETL/ELT服务机制,负责政务数据汇集整合,支撑批量、流式数据处理。根据政务数据分类分级策略,利用密钥服务中心产生的加密密钥加密敏感数据,再提交政务数据中心存储。
d)数据安全管理平台
实现政务数据分类分级、敏感数据识别标注、制定加密/脱敏规则和统一数据权限管理等安全功能,为数据脱敏业务提供基础环境。
e)政务数据中心
提供具备SQL引擎的安全存储机制,将加密后的政务数据存储至贴源数据库,同时,为提高数据服务效率,可根据业务需求,定制化地配置库中常用的敏感数据,先对其解密还原,再按安全策略和脱敏规则进行分布式脱敏处理,将结果存储至脱敏库中。
政务数据处理主要包括两大部分,即:数据接入处理和数据脱敏处理。
具体的业务处理流程如图5所示。
图5 政务数据脱敏业务处理流程图
数据脱敏为平衡数据安全与开放共享的矛盾提供了有效的手段,面对复杂业务场景,需要建立敏感数据管理策略,结合数据分类分级、内容识别分析、数据流转监管与审计等技术,进一步地实现敏感数据地图、敏感数据血缘和敏感数据搜索等功能,以支撑政务数据安全管理体系。