文章摘要:2004年,《天下无贼》中葛大爷的一句:“21世纪什么最贵?人才!”,将企业的视野焦点从生产资料拉到了以人为本,贼且尚此,企业何如?17年后,仍旧和“贼”相关,不过这次不只人才,还有数据。据信通院发布的《全球数字经济白皮书》所公布,2020年全球数字经济规模达到32.6万亿美元,中国以5.4万亿位列第二,占总GDP的38.6%。而作为数字经济时代的核心,数据俨然已成为企业最为重要的资产之一,研发数
2004年,《天下无贼》中葛大爷的一句:“21世纪什么最贵?人才!”,将企业的视野焦点从生产资料拉到了以人为本,贼且尚此,企业何如?
17年后,仍旧和“贼”相关,不过这次不只人才,还有数据。
据信通院发布的《全球数字经济白皮书》所公布,2020年全球数字经济规模达到32.6万亿美元,中国以5.4万亿位列第二,占总GDP的38.6%。而作为数字经济时代的核心,数据俨然已成为企业最为重要的资产之一,研发数据、产品数据、交易数据、客户数据等,以结构化数据(如数据库等)和非结构化数据(word、线上文档等)的形式,存在于生产、交易到服务的流程始终。
我们知道它宝贵,但似乎备注上“严禁外泄”四个字并不能保证它的安全,有关数据泄露的新闻不绝于耳,于是,我们给它套上了层层“盔甲”,以抵御来自外部黑产的觊觎。
正当我们以为安全了的时候,又出现了这样的新闻——
日防夜防,家贼难防。《2020数据泄露成本报告》显示,52%的数据泄露源于恶意攻击,而内部恶意泄露更是占了其中的很大部分。更令人担忧的是,这种窃取长期而隐秘,而且因为没有外部攻击路径,溯源难度也很大。
对于如何防范内部泄露,水印技术的发展给出了解决的一种思路。
非安全工作人员,日常接触到的水印是下面的这种类型:
这种类型的水印属于明水印,看得见摸得着,一方面内部人员截图发送的话,能直接找到是谁泄露的,另一方面也起到警示作用,让内部人员不敢轻易外泄。
但谁也不傻,且不说泄露者会不会把水印去掉,即便没去掉,数据资料进入黑产产业链,经过层层数据清洗后,明水印大概率很难保留下来。下图是明水印处理后的效果对比,几乎没有任何水印痕迹。
这时候,就需要用到数字暗水印的技术——你以为你神不知鬼不觉的把数据发出去了,没留任何痕迹,但包含你信息的暗水印就隐藏在这里面,等到要溯源时立马给你来个“滴血认亲”,甚至是DNA检测,跑也跑不掉。
数字水印的基本原理是把想要添加的水印加密后通过水印添加算法嵌入到原始数据中生成含水印数据,但和明水印有区别的是,这种数据和原始数据相比,用肉眼观察几乎没有任何分别,一旦发生数据泄露,通过密钥和水印提取算法就可以解出添加的水印,直接定位到泄露点和人。
数字水印按照使用对象的维度,大致分为四种:图片水印、文本水印、数据库水印和音视频水印,覆盖了日常数据资产中的各个类型,我们主要看最为常用的前三种:
1、图片水印
图片水印发展最早也最为成熟,第一种应用类型是LBS水印(基于最低有效位),啥意思?先看效果:
是不是完全看不出有什么区别?这种水印就是从像素值下手,进行细微的像素值变化,例如图像的像素取值范围是0-255,即8个bit,LBS就是通过改变最低位bit值来插入水印,比如00000001(十进制1)最低位1,00000000(十进制0)最低位0,这样来插入二进制编码的水印。
这种水印的优点是简单,但鲁棒性较差,图像压缩或图片剪裁,都有可能破坏掉原有水印,因此现在主流图片水印主要采用变换域水印。
变换域水印主要基于离散小波变换(DWT)、离散余弦变换(DCT)等技术进行水印添加,采用这种方式的情况下,无论是剪裁、压缩还是遮挡,只能影响水印的质量,但仍旧能够提取出可识别的水印。
2、文本水印
文本是互联网场景下敏感资产和数据的主要载体,因此文本水印的应用场景最为广泛。分为基于排版(行间距、字间距、字体等)、基于特定字符(零宽字符、空格等)和基于自然语言处理(同义词替换、句法变换)三种类型,第一种比较好理解在此不作赘述,重点看后两种。
在Unicode编码中有很多不占位置的字符叫做零宽字符,在特定字符文本水印中较为常用,可以看到添加零宽字符后,在显示上看不出任何区别。不过黑产在数据清洗时,特意去找的话,还是能够发现并去除的。
但基于自然语言的文本水印就相对比较“高阶”了。比如下面两句话:
我的妈妈今年30岁,她是北京人,是一名医生。
我的母亲今年30岁,她是北京人,是一位大夫。
以上应用了自然语言中的“同义词替换”,也就是根据要插入的水印编码,把文本中的特定位置的词语进行同义词替换,例如把“妈妈”替换成“母亲”,把“一名”替换成“一位”,把“医生”替换成“大夫”。
还有一种更高阶的:
我妈妈今年30岁了,北京人,她是名医生。
用的是句法变换的方式,采用省略、倒装等方式添加水印,鲁棒性极好,但实现难度大,也容易对产生歧义或改变原文本的语言风格。
3、数据库水印
数据库的重要性在企业资产中不言而喻,对于数据库水印的研究,很早之前一直采用不可逆水印的方式,但随着对于数据库精度要求的不断上升,一些细微的变化都可能导致数据的失真,因此现在主流研究方向都是可逆的。
数据库水印有数值型和字符型两种,方法上分别借鉴了上述的图片水印和文本水印,例如数值型的最低有效位(LBS)、直方图平移(HS)、差值直方图平移(DHS)、差值扩展(DEW)和字符型的基于特定字符、基于自然语言等水印,其中,上述数值型的水印算法里,除LBS是不可逆类型外,其余都是可逆的。
因为数据不同于图片有空间约束、文本有逻辑约束,关联性相对较弱,所以在插入水印前要进行属性列之类的排序,以防止随机打乱的一些攻击手段,再通过最优解搜索算法,例如遗传算法、模拟退火、萤火虫算法等找到最佳水印嵌入位或嵌入分组进行插入,从而保证在数据最小失真的情况下嵌入最多的水印容量,来提高水印的鲁棒性。
4、数字水印在电商领域的应用
了解完数字水印的类型,在其实际应用当中,还有所不同,下面就以电商场景为例,具体看一下数字水印的应用。
电商的生态庞大,涉及的流程、环节、人员多且复杂,出现内部泄露的情况比例也相对高于其他行业,据不完全统计,这个比例占到了49%。因此,对于数字水印技术的需求非常高。
我们选取两个典型的泄露场景进行分析:
第一个泄露场景较为常见:打开订单系统→截屏或拍照手机号&姓名&地址等信息→涂抹掉含有泄露者信息的明水印→保存图片后通过社交软件发送。
在这个场景下,泄露者可能通过图像剪裁、压缩、涂改等手段破坏水印,因此在设计水印时建议用多重水印组合成方案,来保护重点业务系统。
第二个泄露场景的流程为:获取数据库权限→批量查询导出→通过移动存储设备/上传云存储/邮件/打印等方式外发数据。
在这个过程中,不仅可能伴随格式化、过滤、筛选以及进入黑产系统后的清洗加工,还有可能存在载体上的转换(如打印)。
对于重要的数据库,在设计水印时,除了水印的内容要更为全面(人员id、时间、系统),从而能够精确帮助我们定位谁在什么时间通过什么途径泄露之外,还可以通过敏感属性添加水印(删除该属性将丧失重要信息)、全元组插入水印(在获取少量泄露样本下也可提取完整水印)、多重水印组合(增强鲁棒性)等方式加强防范,必要时还可以添加纠错码等内容以验证水印是否被篡改。
当然,回归数字水印技术的本身,对大多数企业来说其最为重要的作用是仍是溯源,很多企业认为事后的工作无异于亡羊补牢,但老路要说的是“为时未晚”,溯源的意义不仅仅是定位泄露的源头,
发现了源头,我们是不是可以采取办法彻底阻断,避免长期泄露?
是不是可以通过泄露途径的分析,去完善我们的安全体系?
是不是可以挖掘背后的黑产链,配合有关部门予以打击彻底消除隐患?
是不是可以类比相似业务,给其他业务发出预警?
以上种种才是通过数字水印技术溯源的真正意义。(作者:京东安全架构师小鱼,来源:FREEBUF)