转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/81032427
本文出自【我是干勾鱼的博客】
常用的安全防护技术包括:数据库漏扫、数据库加密、数据库防火墙、数据脱敏、数据库安全审计系统。这其中,数据脱敏是数据安全防护的重要技术手段,在现代社会的信息安全防控体系中扮演着重要的角色。
具体来说,数据脱敏是指:
对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。
贵州省推出的地方标准政府数据数据脱敏工作指南,也就是DB 52/T 1126—2016也曾对数据脱敏进行了定义:
从原始环境向目标环境进行敏感数据交换的过程中,通过一定方法消除原始环境数据中的敏感信 息,并保留目标环境业务所需的数据特征或内容的数据处理过程。
简单来讲,可以理解为某些敏感数据不想直白的完全展示出来,而进行部分处理再进行展示的过程。数据脱敏技术作为安全防护技术手段之一,在信息技术的安全生产、使用中都起着重要的作用。
在技术层面上,数据脱敏须遵循包括有效性,真实性,高效性,稳定性,可配置性等五个原则,如下图所示:
具体内容如下:
有效性:有效的移除敏感信息。
真实性:为保证脱敏后数据的正常使用,应尽可能真实的保留脱敏后数据的有意义信息,以保证对业务特征的支持。
高效性:在保证安全的前提下,尽可能减少脱敏代价。
稳定性:在输入条件一致的前提下,对相同的脱敏数据,经过多次脱敏仍然获得相同的稳定结果。
可配置性:可以配置处理结果和处理字段,以根据应用场景获得相应的脱敏结果。
在管理层面上,数据脱敏须遵循包括敏感信息识别,安全可控,安全审计,代码安全等四个原则,如下图所示:
具体内容如下:
敏感信息识别:应根据数据的信息分类,明确敏感信息的范畴;对于有些信息,本身不直接是敏感信息,但与其它信息结合后会被推断出敏感信息,这样的信息也应被纳入数据脱敏的范畴。
安全可控:对于脱敏后仍保留了部分信息特征而存在泄露风险的信息,要采用合适的安全管理手段防止数据泄露。
安全审计:在数据脱敏环节中应加入安全审计机制,用于数据追踪和问题溯源。
代码安全:对执行数据脱敏的程序应做好代码审查,以及上线时的安全扫描,保证数据脱敏过程的安全可靠。
信息领域的业务是不断变化的,信息的保存方式也随之改变。数据脱敏过程中,数据信息的保存方式与具体的业务场景有关,要视具体的业务需求而定。
数据既可以展示密文,也可以展示明文;底层数据库既保留明文,也保留密文。
这种方式相对灵活,脱敏操作可以从保存的脱敏数据中直接取出,也可以根据脱敏策略对明文数据加密后再显示。
数据展示密文,底层数据库只保留密文。
某些有审计要求的环境是不允许保留明文数据的,这种情况下数据信息只保留脱密后的密文信息。而数据分析、查询等与明文数据相关的操作,要根据密文信息与加密逻辑统一处理。
数据层展示密文;底层数据库只保留明文。这种方式密文数据实时处理,没有持久化。
数据信息也可以只在展示的时候以密文的形式展示,而数据存储以明文的形式保存。这种情况下,数据分析、查询等日常的业务操作较为简单,但每次数据展示要根据脱密逻辑进行实时数据脱密,比较消耗系统资源。
对数据源的支持。最好能支持多种异构类型的数据源,或者区分形态进行支持。
针对关系型数据库的数据脱密,如MySQL、Oracle、PostgreSQL、SQLServer等。
针对非关系型数据库如大数据生态系统的数据脱密,如Hive、Hbase等。
脱敏逻辑是数据脱敏功能的核心,具体的脱敏逻辑要根据数据特点并结合具体的业务场景进行设计和分析。常用的有以下几种形式。
将原有数据信息进行数值替换,例如将身份证号码全部替换成简单的无差别号码,如图:
例如讲过地址信息部分或全部隐藏使其无效,如图:
例如将个人姓名采用其它随机文字替换,如图:
数据偏移与数据取整主要用在时间数据的脱密处理上,将原时间信息通过偏移的手段得到取整的数据,原有数据如图:
处理后的数据:
例如,对身份证号的信息遮掩掉其中的一部分数据,原有数据如图:
处理后的数据如图:
新上线业务在数据脱敏上的处理相对简单。由于从业务之初就会为数据脱敏环节做准备,新业务在设计阶段即开始考虑数据脱敏的处理过程。值得注意的是,从无到有的信息脱敏过程,既要满足数据脱敏的技术原则,又要满足数据脱敏的管理原则。
已有业务实施数据脱敏要考虑的事情比较多,需要根据业务场景具体问题具体分析。
某些情况下,生产环境的系统已经非常成熟,数据脱敏的逻辑也很明确,而且生产环节并不紧迫。这种情况下,可以考虑先将数据脱敏的设计工作做完善,然后将生产环境短暂停止,将数据脱敏模块加入后,再将生产环节重新启动。停工法的思路同新上线业务是类似的。
大多数生产环境都比较紧迫,因为加入数据脱敏而停工的成本消耗代价太大了,或者无法实现。这种情况下,一种比较稳妥的解决方案是:
准备一个与生产环境一样的预发布环境,或者称为预发环境,
使用迁移洗数工具将生产环境原有存量明文数据进行脱密处理后,保存到预发环境中;而生产环境的新增数据则可以使用例如MySQL的主从复制功能,并结合业务方自己开发的清洗工具进行数据脱敏后,保存到预发环境的数据库中。
通过这种方式同时保存了两套处于实时同步中的运行环境:生产环境保存的是明文数据,以明文数据进行查询修改;预发环境保存的则是脱敏数据,以脱敏数据进行查询修改。两套环境同步运行一段时间稳定后,就可以在合适的时候将新增的生产流量数据切换到预发环境中,形成数据依赖的无缝迁移。
Apache ShardingSphere
Apache ShardingSphere数据脱敏全解决方案详解
数据脱敏的处理方法及查询