当前位置: 首页 > 科技观察

跨库跨系统,数据脱敏有了新方法(附工具下载)

时间:2023-03-20 23:51:47 科技观察

作者介绍了客方DBA团队,负责链家和客方的数据库服务管理和运维,包括MySQL,Redis、Kafka、RocketMQ、TiDB等产品。为保障在线服务高效、安全、稳定运行,为研发同学提供一站式数据库操作平台,搭建满足99.99%标准的高可用自动切换平台,结合DBA丰富的操作和维护经验和机器学习算法,实现数据库故障自诊断。引言《中华人民共和国数据安全法》(以下简称《安全法》)将于2021年9月1日起正式实施,将成为规范数据处理活动、保障数据安全、促进数据开发利用、保护合法权益和合法权益的标准。个人和组织的利益,维护国家主权和安全。发展利益的法律基础。数据脱敏技术是根据需要对敏感数据进行漂白、变形、覆盖等处理,避免敏感信息泄露。数据脱敏工具的使用、开发、平台建设是每个互联网公司保护用户隐私的义务。北科在保护用户隐私数据方面也下了不少功夫,严格遵守国家法律要求。本文将分享一款北科DBA团队开发的数据脱敏工具,即d18n,是data-desensitization的Numeronym缩写,即用18替换中间的18个字母。下面将拆解d18n的技术实现,让大家了解数据安全背后的故事。1、数据脱敏场景从上图可以看出,敏感信息脱敏其实已经融入到生活的方方面面。我们看的电影,看的小说,听的新闻,都使用了信息脱敏。下面列举了三个互联网公司常见的三种数据脱敏场景。场景一:测试开发在线数据库服务,严格权限控制,资源隔离,非授权用户无法获取任何数据。为了尽可能模拟生产环境,测试环境有时需要使用在线数据样本,但是测试环境的权限控制比较宽松,所以不能直接导入未加密的数据到测试环境.场景二:数据分析随着互联网大数据应用的不断落地,大数据分析可以辅助企业进行产品决策,准确分析用户行为。直接利用生产数据进行数据分析,不进行管控和数据脱敏,将大大增加敏感数据泄露的风险。场景三:数据共享政府与企业之间、企业与企业之间、企业内部应用之间都需要进行数据交换和信息共享。针对不同层次的数据共享需求,制定不同的数据脱敏方案。在保护公司核心数据资产的情况下,为政企合作、企业合作、服务迭代提供数据安全保障。2.跨平台数据脱敏d18n工具采用Go语言开发。它在设计选型时刻意避开了一些依赖CGO的数据库驱动,因此完全跨平台,可以直接在Windows、Linux、Mac系统中使用,即使是最新的AppleSiliconMacBookPro也支持无损功能。由于Go1.16在开发d18n的时候就已经支持了embed功能,所以原生支持用二进制程序打包静态资源。需要用于数据脱敏和敏感信息识别的语料库已经被d18n打包打包,不需要再下载任何其他静态资源文件,开箱即用。这对目前流行的容器化环境也特别友好。d18n的跨平台不仅体现在操作系统层面的跨平台,还支持各种数据库平台。除了互联网公司最常用的MySQL数据库外,d18n还支持Oracle、SQLServer、PostgreSQL等关系型数据库。可以说,只要是使用SQL语言的数据库,只要有PureGo的驱动,d18n都能支持。很多同学甚至直接将d18n作为一个简单的数据库命令行查询工具使用,带来了跨平台一致的用户体验。d18n支持导出和导入的文件类型比较丰富,既有大家比较熟悉的Excel和TXT,也有应用友好的CSV、JSON、SQL、HTML等文件格式。不管是交给人肉眼阅读,还是交给程序自动化处理,d18n都能搞定。3、敏感数据识别多平台的友好性上面讲了很多。数据脱敏工具的用户真正看重的是其识别和处理敏感数据的能力。本节首先介绍硬核知识。关系数据库中识别敏感数据常用的算法有“关键字匹配”和“正则匹配”。当然,d18n也不能免俗,这两项技术也得到了妥善的支持。更诚恳的是,d18n还提供了敏感信息识别的通用规则库。对于想“偷懒”的同学,它让你开箱即用;对于“勤奋”的同学,也可以在不修改源码的情况下,参考模板进行深度定制。在传统技术的基础上,为了进一步提高发现敏感数据的能力,d18n还引入了自然语言处理包(gse),将语料库转化为Trier数据结构,并使用有限自动机算法(DFA)来匹配自动分词的数据。自然语言处理识别敏感数据的核心难点在于如何生成准确有效的语料库。有效的语料库通常是通过对真实数据集进行机器学习训练得到的。d18n提供的地址、姓名等语料库模板,未经过真实数据训练,仅供用户参考。下面是d18n中的一个测试用例,它应用自然语言处理来识别敏感信息。敏感信息存储的主动申报已经深度融入壳牌的各个流程体系。机器识别作为一种有效的补充,可以帮助业务查漏补缺,及时发现可能存在的隐患。4.数据脱敏导出有了整个平台的敏感数据信息,接下来就是如何做好数据脱敏工作,全面梳理不同业务方的合法合规和需求。要点如下。为了满足以上五个需求,本文从六个维度(即:失效化、随机化、数据替换、加密替换、差分隐私、偏移舍入)来介绍数据脱敏算法的实现。首先是“失效”。在处理待脱敏数据时,敏感数据通过截断、加密、隐藏字段数据值等方式脱敏,使其不再有用。通常,使用特殊字符(*等)代替真值。下面是d18n中smoke和phone算法的测试用例展示。二是“随机化”,将随机值替换,将字母改为随机字母,将数字改为随机数。该方案可以在一定程度上保留原始数据的格式,并且不能打破数据的唯一性约束。d18n内置常用汉字语料库,默认也可以随机替换汉字。对于ASCII码表中的字符,d18n还集成了先进的FPE(FormatPreservingEncryption)算法,进一步保证了数据的“不可逆性”。除了单个字符随机化,d18n还支持词级随机化替换,保留句子长度和标点符号。根据用户生成的语料,支持不同语言的词替换。下面是一个英文替换的例子。三是“数据置换”。数据替换类似于“失效”。所不同的是,没有使用特殊字符来阻止,而是使用一个设置的虚拟值来代替真实值。例如统一设置IP为“127.0.0.1”。第四个是“加密替换”,d18n支持对称加密算法和非对称加密算法。数据加密是一种特殊的可逆脱敏方法。敏感数据通过密钥和算法加密。已知密钥和算法可以解密和恢复原始数据。注意密钥的安全。虽然d18n也支持RSA、ECC等数据加密算法,但d18n不生成密钥文件,不保留加密密钥,不提供解密支持。第五个是“差异隐私”,这是密码学中的一个词汇,旨在提供一种方法来最大限度地提高数据查询的准确性,同时最大限度地减少从统计数据库查询时识别其记录的机会。d18n使用谷歌开源的github.com/google/differential-privacy包来实现这部分能力。第六个是“偏移舍入”,通过数据移位去除隐私信息。偏移舍入既维护了数据的安全性,又保证了范围的近似真实性,比之前的方案更接近真实。数据。下面两个例子分别是取整值类型和取整时间类型。5、数据脱敏导入至此只实现了需要将数据库中的数据脱敏并分享给用户。如果有同学给你一个非脱敏数据文件让你导入测试环境怎么办?d18n还支持对Excel、TXT、CSV、HTML、JSON等格式的文件进行二次脱敏和生成SQL。可以生成SQL文件,也可以直接连接数据库导入数据库查看。综上所述,d18n引入了很多优秀的第三方开源库。虽然它是一个命令行工具,但作者更愿意将其开发为一个库,这样可以更好地回馈开源社区,为d18n带来更多收益。许多可能性。命令行工具提供静态数据脱敏能力,可用于日常学习和测试。基于d18n的库,相信大家实现一个适合各个公司的动态数据脱敏平台并不困难。保护用户隐私数据人人有责,期待社区更多优秀产品的出现,共同提升数据安全水平。>>>>开源地址【项目文档】https://github.com/LianjiaTech/d18n/blob/main/doc/toc.md【Github地址】https://github.com/LianjiaTech/d18n【问题反馈】]https://github.com/LianjiaTech/d18n/issues