首页 > 动态中心 > 技术文章  >  正文

DLP数据泄露检测原理浅析

2023-06-15 00:00:00

文章摘要:一、为什么要知道DLP的原理企业在部署DLP系统,作为技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,

一、为什么要知道DLP的原理

企业在部署DLP系统,作为技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。

身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。

二、DLP常用的算法有哪些

根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。

(一)  泄露关键字检索

这一部分比较简单,在DLP后台配置一些敏感关键字或者正则表达式如mobile号、Bank card号、ID号等等。然后结合其他综合检测手法比如敏感词命中的次数、命中的频率、泄露的源等来判断是否存在泄露行为进而告警。

(二)  近似重复文档检测

对获取到的从企业内部发送到企业外部的文档信息,需要检测这些信息中是否包含有企业机密文档库中的内容信息,如果判定是泄漏内容,需要对该信息进行拦截,避免产生泄漏事件。

a)  TF-IDF算法

首先介绍下TF-IDF算法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度即权重(weight)。TF(Term Frequency,缩写为TF)也就是词频,即一个词在文中出现的次数。IDF(逆文档频率 Inverse Document Frequency,缩写为IDF),有了词频还不能完整的反映这个词在重要性,我们还需要计算这个词的权重。

举个简单的例子就能明白,假如现在有一份疑似文档,我们要排序出来文档中的重要的词语。假定文章有1000个词语,”的”、”公司”、”财报”、”工资”分别出现50、8、5、9次,那么它们的词频分别为,0.05、0.008、0.005、0.009,很显然”的”是汉语常用字它并不能代表什么意思,所以词频并不能标识”的”在文章中的重要性。那么这个时候我们要计算一下这些词语的逆文档频率,google搜索”的”,有14,560,000,000个条搜索记录,我们暂且把这个当成中文语料库文档总数。然后搜索其他词查出包含该词的文档数分别为,3,420,000,000、 52,300,000、212,000,000,通过下面公式可以计算出这几个词语的TF-IDF。

从该表中可以明显看出在这个文档中”财报”、”工资”是重要的词语也即很有可能是敏感数据

词语 文章中出现次数 包含该词的文档数 TF IDF TF-IDF
50 14,560,000,000 0.05 0 0
公司 8 3,420,000,000 0.008 0.63 0.0050
财报 5  52,300,000 0.005 2.44 0.0122
工资 9 212,000,000 0.009 1.84 0.0166

 b)simhash算法

上面通过TF-IDF算法我们可以获取到排名前20个权重词和对应的权重。接下来如何判断两个文档内容的相似度呢?如果我们仅仅是根据这20个词来做hash比较又或者通过其他摘要来做hash比较。显然,即使存在微小差别的不同文档也会得到完全不同的散列值。而我们在相似性检测的目的,不仅仅是判定两篇文档是否完全相同,更主要是的确定二者之间的相似程度高低。因此,我们需要这样一个哈希函数,当输入的文本内容较为相近时,得到的指纹间距离也较为相近。

具有哈希算法的降维优势,又因局部敏感特性而体现相似程度simhash算法正适合本文的研究需求。接下来通过一个python的demo来演示下simhash的基本原理。

Simhash算法是基于关键词序列和权重的计算过程,经过文本特征(关键词息)提取、指纹生成和指纹索引匹配三个数据处理步骤。首先,该算法通过hash函数将文本的多个特征关键词映射到特定维数的向量空间中,得到一组以词语信息为编码的向量;接着,通过对词向量进行加权处理,生成带有权值的向量模型;然后,把所有的向量按对应维度累加在一起,根据各维度上的正负方向,确定对应编码位置的取值,由此得到文本的simhash指纹,即完成了文本信息的降维压缩过程。最后根据二进制字符串比对的海明距离方法,计算两个指纹间的相似度,重合的位数越多,则指纹间相似度越高,也就代表着对应文本相似度越高。而在大规模文本检测系统中,不再仅仅是比较两个指纹的距离,需要同海量的指纹码进行比较匹配。

Simhash基本原理:

(1) 通过TF-IDF算法我们可以获取到排名前20个权重词(feature)

和对应的权重(weight),形成长度20的**(feature:weight)

(2)对每个词进行hash,得到一个64位的的二进制hash

(3)hash中”1”替换成+ weight, ”0”替换成-weight,形成一个列表。

(4)20个列表进行相加

(5)相加后的列表,如果元素为负值的时候用0替换这个元素,反之用1替换。这样就得到这个文档的simhash值了。

(6)两个文档都进行上面5个步骤的操作,最终生成两个simhash。两个simhash取异或,看其中的1是否超过一个阀值(比如3),如果超过阀值我们认为相似度不大。

这里我们通过一个python的demo来演示下。

首先选取三段内容,content2在content的基础上改了一些词语,实际工作中有的人为了外传文档也喜欢用这种掩耳盗铃的方式。Content3则是另外一个与content内容完全不相关的文档内容。

content=”’ 年度企业年度财务分析报告20xx年,通过财务管理规定、内部控制会计制度和银行账户短信银行业务 (账户动帐实时信息和异常预警通知)的建立及执行,已做到会计、出纳分设,帐、款分管,预留银行印鉴和转账、现金支票分别保管,并记有银行存款日记账,按时与银行进行核对,有效杜绝了每笔业务及会计、出纳业务一人经办,最大限度保证财政资金使用安全、规范、有效。全年完成一般预算收入xx万元,为年初预算数xx万元的xx%,较上年完成的xx万元增收xx万元,增长xx%。

”’content2=”’年度公司年度财务分析报告2020年,通过财务管理决定、内部控制会计制度和银行账户短信银行业务 (账户动帐实时信息和异常预警通知)的建立及执行,已做到会计、出纳分设,帐、款分管,预留银行印鉴和转账、现金支票分别保管,并记有银行存款日记账,按时与银行进行核对,有效禁止了每笔业务及会计、出纳业务一人经办,最大限度保证财政资金使用安全、规范、有效。全年完成一般预算赚钱xx万元,为年初预算数xx万元的xx%,较上年完成的xx万元增收xx万元,增长xx%。

”’content3=”’2018年公司财务报告,计划财务部认真完成了全年财务核算,并及时提供了各项准确有效的财务数据,基本上满足了公司及外部有关单位对我部的财务要求。下面向集团公司汇报一下计划财务部xx年的工作情况。今后,计划财务部的工作重点,主要还是加强管理,严格执行中央、省以及公司各项规定,对集团公司的财务进行积极有效的监督管理。 ”’

1、通过jieba.cut进行中文分词,将文档内容分为一个个的词语。

2、jieba.analyse.set_stop_words,设置一些需要被过滤的词语,比如无意义的“的”、”啊”等

3、jieba.analyse.extract_tags ,这里执行TF-IDF算法将前20位的权重词以及权重提取出来。

4、遍历所有权重词,计算64位hash

5、判断hash中为0则替换成-weight ,为1则替换成+weight

6、20个列表进行相加得到list1

7、相加后的列表,如果元素为负数则用0替换,反之用1替换。得到了simhash就是这个文档的simhash了。

8、两个文档的simhash做异或计算,并判断运算后的结果”1”有几个即可得到两个文档的海明距离。

运算结果:

content:

结论:

 r12:两个文档相似,海明距离为 1

r13:两个文档不相似,海明距离为 35

完整python脚本:

jiebajieba.analysenumpy npjsonsimhash:
     __init__(self, content):
         self.simhash = self.simhash(content)
     __str__(self):
         str(self.simhash)
     simhash(self, content):
         seg = jieba.cut(content)
         jieba.analyse.set_stop_words()
         keyWord = jieba.analyse.extract_tags(
             .join(seg), topK=20, withWeight=, allowPOS=())  #        keyList = []
         feature, weight keyWord:
             weight = int(weight * 20)
             feature = self.string_hash(feature)
             temp = []
             i feature:
                 (i == ):
                     temp.append(weight)
                 :
                     temp.append(-weight)keyList.append(temp)
         list1 = np.sum(np.array(keyList), axis=0)
         print(list1)
         (keyList == []):  # 
             simhash = i list1:
             (i > 0):
                 simhash = simhash + :
                 simhash = simhash + simhash
     string_hash(self, source):
         source == :
             0
         :
             x = ord(source[0]) << 7
             m = 1000003
             mask = 2 ** 128 - 1
             c source:
                 x = ((x * m) ^ ord(c)) & mask
             x ^= len(source)
             x == -1:
                 x = -2
             x = bin(x).replace(, ).zfill(64)[-64:]
             print(source, x)
             str(x)hammingDis(self, com):
         t1 = + self.simhash
         t2 = + com.simhash
         n = int(t1, 2) ^ int(t2, 2)
         i = 0
         n:
             n &= (n - 1)
             i += 1
         i>3:
             % (i)
         :
             % (i)
 content=content2=content3=simhash1=simhash(content)
 simhash2=simhash(content2)
 simhash3=simhash(content3)
 r12=simhash1.hammingDis(simhash2)
 r13=simhash1.hammingDis(simhash3)print(,r12)print(,r13)
上一篇 : 英国Easyjet数据泄露:黑客入侵泄露900万客户数据
  • 相关推荐
  • 企业防范数据泄露手段有哪些?企业必备七项防护措施

    在当今信息化社会,数据已成为企业的核心资产。然而,数据泄露事件频发,给企业带来了严重的经济损失和声誉损害。为了有效防范数据泄露,企业必须采取一系列防护措施。本文将介绍七项企业必备的防护措施,从技术手段到管理层面,全方位守护企业的数据安全,确保企业信息资产的安全无虞。1、 数据加密(洞察眼MIT系统)透明加密:确保数据在...

    2024-10-19 10:03:02
  • 企业数据安全新解:透明加密VS半透明加密VS智能化加密

    洞察眼MIT系统的文件加密概述该系统是一款功能强大的企业级文件加密及防泄密软件,采用了先进的加密技术和安全策略,能够对企业的重要数据进行全面、深入的保护。无论是存储在本地计算机上的文件,还是通过网络传输的数据,都能提供有效的加密保护,确保数据在传输和存储过程中的安全。1、透明加密加密方式:透明加密是一种强制加密技术,通...

    2024-10-19 08:49:58
  • 电脑文件加密必备!2024精选十款加密软件,保护数据安全

    在数字化时代,数据安全已成为不可忽视的重要议题。为了守护您宝贵的文件信息,我们精心挑选了十款2024年的电脑文件加密软件。这些软件各具特色,采用先进的加密技术,确保您的数据在存储和传输过程中的安全性。无论是个人用户还是企业用户,都能在这些软件中找到适合自己的加密解决方案,让数据安全无忧,尽享数字生活的便捷与安心。1、洞...

    2024-10-18 14:55:23
  • 图纸加密软件推荐|2024年8款CAD加密软件推荐

    在数字化时代,图纸作为设计与创新的重要载体,其安全性日益凸显。2024年,随着技术的不断进步,CAD图纸加密软件成为守护创意与知识产权的坚实盾牌。本文将为您精选8款优秀的CAD加密软件,它们各具特色,以强大的加密技术、灵活的权限管理、便捷的操作体验,共同构筑起图纸安全的铜墙铁壁。让我们一同探索,为图纸安全保驾护航。1、...

    2024-10-18 10:26:53
  • 加密软件有哪些?精选六款加密软件,让企业数据更安全!

    在数字化时代,企业数据的安全至关重要。为了保障企业信息的机密性和完整性,选择一款合适的加密软件显得尤为重要。本文精选了六款加密软件,它们各具特色,功能强大,能够为企业提供全方位的数据加密保护。这些软件都能确保企业数据在传输和存储过程中的安全,助力企业构建坚不可摧的数据安全防线。1、洞察眼MIT系统采用先进的加密算法,能...

    2024-10-17 10:50:10
  • 数据怎么加密?2024年五款企业数据加密必备软件

    在数字化时代,数据安全已成为企业不可忽视的核心议题。为了确保敏感信息不被泄露,数据加密成为了企业保护资产的重要手段。2024年,市场上涌现了众多优秀的企业数据加密软件。本文将为您精选五款必备的数据加密软件,它们各具特色,能够为企业数据提供全面而高效的保护。让我们一起探索这些加密利器,共同守护企业的数字资产安全。1、洞察...

    2024-10-17 09:51:22
  • 软件界大PK!年度精选!2024数据防泄密软件前十强

    在数字时代,数据的安全与保密成为了企业生存的命脉。2024年,众多数据防泄密软件如雨后春笋般涌现,它们各自施展绝技,为企业的信息安全保驾护航。本篇将精选出年度前十强数据防泄密软件,它们凭借卓越的性能、智能的防护和便捷的操作,赢得了市场的广泛认可。让我们一同走进这场软件界的大PK,见证数据防泄密技术的最新成果!1、洞察眼...

    2024-10-17 09:49:40
  • 企业防范数据泄露方法有哪些?八个实用防泄密方法

    在数字化时代,企业数据如同生命之源,其安全关乎企业的生死存亡。面对日益严峻的数据泄露风险,企业必须筑起坚实的防线。以下八个实用防泄密方法,旨在为企业提供一套全面、高效的数据保护策略,确保企业数据在存储、传输、处理等各个环节中的安全性,助力企业稳健前行,在激烈的市场竞争中立于不败之地。1、使用专业软件—洞察眼MIT系统透...

    2024-10-15 14:00:13
  • u盘加密软件哪个好用?2024年9款顶级U盘加密软件大盘点

    在数据保护日益重要的今天,U盘加密软件成为了我们保护敏感信息的得力助手。2024年,市场上涌现出了众多优秀的U盘加密软件,它们各具特色,功能强大。本文精选了9款顶级U盘加密软件进行大盘点,旨在帮助读者找到最适合自己的加密工具。让我们一同探索这些宝藏级的U盘加密软件,为数据安全保驾护航!1、洞察眼MIT系统主要特点:不仅...

    2024-10-15 10:25:54
  • 如何给U盘加密?U盘加密必备五招,保护U盘数据

    在数据泄露风险日益加剧的今天,U盘作为便携的数据存储工具,其安全性显得尤为重要。如何给U盘加密,确保数据在传输和存储过程中的安全,成为每个人都需要掌握的技能。以下五招U盘加密必备技巧,将帮助您轻松提升U盘数据的安全性,让您的数据隐私得到更有效的保护。让我们一同学习,为数据安全保驾护航。方法一:使用专业软件(洞察眼MIT...

    2024-10-15 09:45:43

大家都在搜的词:

微信扫一扫联系售前工程师