以下的文章主要是浅谈揭秘企业中的数据屏蔽技术,公司的网络需要定期打补丁,网络上运行的应用程序也亦是如此。将网络和应用程序补丁和版本升级结合起来,就会发现要确保所有这些变化不会破坏企业的基础设施,测试环境是多么的重要。
公司的网络需要定期打补丁,网络上运行的应用程序也同样如此。将网络和应用程序补丁和版本升级结合起来,就会发现要确保所有这些变化不会破坏企业的基础设施,测试环境是多么的重要。
但在测试环境中,使用有效的生产数据并不切合实际。它的使用往往受隐私法律和安全政策的限制。在生产环境中,可以适当地实施严格的访问控制措施,用户界面提供数据的控制和管理权限。
非生产系统中,数据的安全性通常无法满足开发和测试过程中速度和灵活性的要求。加之更多的雇员(如开发人员和系统工程师)需要拥有对数据进行低级别访问的特权。显然,这种类型的环境不符合保护敏感数据的法律规定。
但要实现有效性,测试环境就必须使用真实数据。但是,如果一个应用程序要处理50万个用户和几百万笔交易的话,手动创建所需的大量数据是不可能的。
那么,在现行系统上运行一个应用程序之前,如何获得该应用更新所需的测试数据呢?为了提供实际数据,许多测试团队转而研究可用于非生产环境中的数据屏蔽技术。
数据屏蔽(data masking)——又被人们称为数据混淆、去身份识别(de-identification)、去个人化(depersonalization)或数据洗擦(data scrubbing),是为了消除数据所有可识别的特征来实现匿名时仍然可用的功能,而最重要的目的是为了消除泄漏敏感信息的风险。
数据屏蔽的概念于90年代初首次被提出,目的是:在不暴露敏感信息的情况下,向开发团队提供有意义的测试数据。最近随着法律和合规要求的出台以及改进的屏蔽技术,重新创建大型数据集变得更加容易,这引起了企业的广泛注意。
要在安全的基础上实现有效性,数据屏蔽技术必须通过改变数据来保护个人记录的隐私,所以无法确定或重新计算出实际值。最常用的数据屏蔽技术有加密、混编(shuffling)、屏蔽、替代、方差(variance)和置空方法。
混编方法指的是列数据的随机移动,而替代则是以相似信息取代了原来的列数据,而且替代的内容与真实信息完全无关,例如把所有的男性名字改为名单中随机选出的名字。方差方法可用于数字和日期列,通过真实值的随机比例对每个值进行修正。
但实际上,数据屏蔽是一项复杂的技术,该技术力求提供匿名且仍可用的测试数据,这些测试数据还得具有原始资料的表面特征; 一连串毫无意义的随机文本通常是不够的。例如加密方法,将字符转换成二进制数据后再插入应用程序,这样数据看起来就不再真实了,并且对报告和打印机而言也不好。替代数据,如街道名称,有时很难找到大量的数据,数据混编技术真的只能用于大型数据集,即便如此仍可能泄露敏感数据。
例如,人力资源数据库中的最高工资(可能是该公司CEO的工资)仍然可见,但显示出来的是另一名雇员的工资数(当然,某些访问了此数据的人可能猜得出是CEO的薪水,所以经过推理,信息会泄漏出来)。虽然方差技术提供了一种掩饰数据的合理方法,但数据的大小分布在合理范围内至关重要,如绝对不能出现某个员工150岁这样的错误。
自由格式文本数据,如备忘录和笔记,几乎不可能用任何数据屏蔽技术进行保密处理,因此这些数据都必须用诸如Lorem Ipsum的虚构字体来取代。
不管数据屏蔽技术采用的是哪种方法,但数据库里行、列、表格之间的数据结构和数据关系在每一步的屏蔽操作中要保持相同,这一点至关重要。例如,如果雇员表的密码是EMPLOYEE_NUMBER,那么它的变更一定会引起所有其它相关表格出现相同的变化。
有些数据项具有一种表征内部含义的结构,如信用卡号码的校验和。对这种类型的数据进行保密处理的唯一方法就是混编,混编后没有任何一行包含原始数据,但每个数据项仍然内部有效。如果取而代之的是随机数字集合,那么就意味着任何有效性检查都会失败,并会妨碍数据库的更新测试。正如你所见,要合理采用数据屏蔽技术,就需要好好考虑很多问题。
幸好有越来越多的数据屏蔽产品用于大型数据集的自动加密。Camouflage Software公司被专业市场调研机构Forrester Research评为数据屏蔽的五大供应商之一,它提供隐蔽数据屏蔽生命周期管理套件(Camouflage Data Masking Lifecycle Management Suite)。
其他厂商还有DataGuise和Original Software,甲骨文公司为其开发的数据库应用程序提供数据屏蔽包。同时IBM公司开发了一种名为企业屏蔽网关(MAGEN)的软件工具,此工具在数据到达用户的屏幕之前,采用光学字符识别技术和屏幕抓取方式识别并掩盖保密数据。
数据屏蔽技术,如果使用得恰当,不仅可以做到遵守相关数据隐私法规,而且对减少公司内外部的数据泄漏风险而言也是行之有效的策略,数据屏蔽技术对任何非生产数据库和其它测试环境而言也是最佳措施。该技术使得现实的数据被用于测试、培训和软件开发,包括异地或跨国界的项目。