长亭百川云 - 文章详情

谁泄露的公司内部机密?TextWatermark助你抓出内鬼!

梦之光芒的电子梦

94

2024-07-13

背景

2008年,特斯拉还没有出成品车,但公司内部机密消息经常性外泄,对公司造成了严重负面影响,马斯克决心抓出这个内鬼。于是他给全公司所有人员发送了一封邮件,虽然内容看起来相同,但由于空白字符的插入,导致所有人的邮件都是独一无二的。也因此,最终马斯克成功揪出了公司内鬼。

从DBIR 2022数据来看,每年至少有20%以上的数据泄露是由于内部人员造成的。内鬼已经成为除黑客、合作方外,一条主要的数据泄露途径。

防止数据泄露,从事前、事中、事后来看,分别可以通过防拷贝、防截屏、DLP和水印溯源来进行防御。但因移动办公大行其道,事前和事中防御效果逐渐失效,事后溯源因图片水印对于截屏效果较好,但如果是基于文本的复制粘贴,则显得力不从心。为此我们开源 textwatermark 文本水印python库,寄托此库为文本泄密溯源提供建设和解决方案。

TextWatermark库介绍

文本水印说一千道一万,无非是通过插入、修改、修饰字符来插入特征。为此,本库提供五类水印插入方式,分别是:查找特定字符替换成同形异义字、在指定位置插入不可见字符、对字符进行额外的修饰、对字符添加组合字符,以及二进制方式表示不可见或组合字符,并最终扩展成15种水印模板。

不同模板适用不同场景,譬如:“不可见字符”水印模板在纯文本复制粘贴下效果较好,且隐蔽性极强,但对于截图和屏摄下无能为力;“字体样式”对于截图和屏摄的效果较好,但是隐蔽性较差,在进行纯文本的复制粘贴时会丢失水印信息;“空格字符”在粘贴、截图、屏摄下效果均较好,但在英文文本的表现力好,中文等情况下表现力差;“同形异义-数字”主要使用在手机号、身份证号等极短数字文本场景等。库使用者可以根据自身偏好使用不同的水印模板。当然后续我们也将添加多模板融合使用等功能,力争在各种场景下均能有更佳表现。

我们先来看看使用其中之一水印模板的最终展示效果:

TextWatermark库使用

安装(使用pip):

$ pip install textwatermark

使用:

命令行调用:

插入水印到文本:
$ textwatermark -v insert -f './tests/text/number.txt' -m ALPHA_NUMERICAL -t HOMOGRAPH_NUMBERS -x 999 -w 123
保存水印参数:
$ textwatermark -v insert -f './tests/text/number.txt' -m ALPHA_NUMERICAL -t HOMOGRAPH_NUMBERS -x 999 -w 123 -e
从文本提取水印:
$ textwatermark -v retrieve -f out.txt -p '{"tpl_type": "HOMOGRAPH_NUMBERS", "confusables_chars": [], "confusables_chars_key": "", "wm_base": 7, "method": 1, "wm_mode": 5, "wm_len": 7, "wm_loop": false, "start_at": 0, "version": "0.1.2"}'

代码调用:

'''Sample Example'''

更多参见:https://textwatermark.jd.army/usage/

找回水印

本库内置了一些的简单的方法去找回水印信息,但只适合水印信息没有任何变化的文本。因为文本可能会在复制粘贴中丢失信息、信息被改造(譬如HTML标签的表示发生变化),或因截屏、屏摄变成图片无法自动找回信息。此时就需要人工分析判断来还原水印信息。

譬如上文通过 FONT_COLOR 水印模板生成的含有水印文本图片,就需要我们在ps中通过调整曲线来人工判断和还原水印信息:10010000011000100000101000110000111

再通过调用还原命令即可解析出水印信息。

$ textwatermark -v retrieve -b 10010000011000100000101000110000111 -p '{"tpl_type": "FONT_COLOR", "confusables_chars": [], "confusables_chars_key": "black4", "wm_base": 2, "method": 3, "wm_mode": 5, "wm_len": 35, "wm_loop": false, "start_at": 0, "version": "0.1.2"}'

结束语

本库没有使用唯一的某一种模板,就是希望建立一种通用型文本水印解决方案来给开发者更多的选择。甚至开发者可以摒弃现有模板,去自定义一种自己独特的模板,以便水印有更强的隐蔽性和强壮性(可参考:https://textwatermark.jd.army/usage/#2)。

最后,希望本库能得到更多的开源力量参与和建议,多谢!

参考:

DBIR 2022:https://www.verizon.com/business/resources/T27b/reports/dbir/2022-data-breach-investigations-report-dbir.pdf#pdfjs.action=download

马斯克在特斯拉总部抓内鬼:https://www.163.com/dy/article/HS1OQ0O2055302A2.html

textwatermark pypi:https://pypi.org/project/textwatermark/

textwatermark website&docs:https://textwatermark.jd.army/

textwatermark github:https://github.com/JDArmy/TextWatermark

点击原文链接跳转到项目Github🔽

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2