一、背景介绍
近年来,无论是外部法规遵从性要求还是内部安全要求,确保数据完整性、一致性和可用性都成为组织内的头等大事。
组织内数据可以分为结构化和非结构化两种类型,结构化数据安全技术相对成熟,包括数据库审计、防火墙、脱敏、加密、备份等,可以在数据生命周期内支持对数据的安全管理要求,但对于非结构化数据,目前正处于火热阶段,已经是数据安全产品的新发力点,主要技术有数据泄露保护(DLP)、主机DLP(DLP)目前广泛使用,实施成本最低,客户容易接受的是网络监控方式。
本文介绍了如何通过旁路镜像检测网络流量中的相关文件,保护重要文件内容。早期只考虑核心原理和技术的最终实现,所以在代码方面还没有优化完美,另外,还需要对pcap文件进行解释,只认识doc文本环境,对复杂的环境进行补充。(威廉莎士比亚,《Northern Exposure》(美国电视剧),《科学》)综上所述,本文正在了解DLP核心技术实现原理和相关技术实现,因此代码水平可能存在一些缺陷。请谅解。
主机版DLP可以通过开源openDLP实现,本文档不包含此内容。
二、实现原理
通过流量镜像,文件是否包含敏感内容、是否泄露,实施方法流程如下:1.收集网络流量2。网络流量内容分析根据文件头确定文件类型。4.导出TCP数据,根据判断的文件类型重命名文件,或通过关键字转换为十六进制代码,以便在线匹配。如果匹配成功,可以重新制作文件保存证明。5.如果是照片,可以通过OCR识别来判断;如果是非文字识别,可以通过机器学习来学习,然后识别照片。
测试方法是从网站下载word文档,将其另存为pcap文件,识别pcap文件的文档类型,并创建不同的存档证。
三、具体实现
在介绍文件头基本介绍代码之前,必须先了解文件头。为了监视文件,网络流量必须根据文件头判断,并根据文件头记录payload内容。下图是典型的题头内容(例如,如果对自己的搜索不满意)。
通用标头
Wireshark捕获包下图是下载文件时wireshark捕获包的情况。您可以先检查启动HTTP的GET请求,然后通过TCP片段下载文件。
Wireshark请求进程
如果将文件头内容与wireshark捕获包内容相匹配,则可以看到捕获包数据包含doc文件头(d0 cf 11 E0),如下图所示。
Doc文件头
下载Doc文件并按如下方式打开:
Doc文件常规导航
以16种方式查看下载的原始文件会产生以下效果:
Doc文件十六进制浏览
看到的与wireshark捕获包数据包含doc标头(d0 cf 11 E0)一致。
包含TCP匹配从文件头开始,直到TCP流结束,所有中间内容都将合并为doc文件内容。
因此,我对文件和包数据之间的关系有了初步的了解,以下内容将与代码实现一起详细说明。
代码实现的第一个代码分为三个函数:文件头匹配、文件内容读取、文件数据拼接。
文件头匹配函数主要通过文件流、头内容、偏移和数据长度执行匹配计算,并将其写入offset文件偏移。特定函数代码的实现方式如下:
匹配文件头
读取文件内容函数主要读取文件流内容,并将数据内容存储在file_content中。
读取文件内容
文件数据修补函数,主要是对多个TCP传输的数据文件进行修补摘要,以便于输出到word(从包含TCP匹配的标头开始,到TCP流结束为止,将中间所有内容组合在一起,是doc文件内容)。)。
缝合文件数据
主函数。首先,逐步读取pcap数据包内容到TCP链接。下图:
主要函数-tcp链接
第二,匹配文件以确定是否包含拥有文件标题,如果包含,则记录起始位置,如下图所示。
文件匹配函数
如果匹配,则读取pcap中的每个TCP流内容并将其存储在dlpT结构中,如下图3360所示。
读取数据内容
读取完成后,聚合并修补每个TCP流内容,如下图所示。
数据流连接
以上内容仅用于第一个TCP流,即包含数据头文件的TCP流。对于中间TCP流,可以将5元组和ACK组合在一起,以确定是否是同一个请求。如果是同一个请求,请阅读下图所示的内容。
读取TCP中间流内容
最后,修补TCP中间流数据内容,如下图所示。
中间流数据内容拼接
这次pcap有12位数的TCP选项字段,请注意,测试是我写的。此字段的长度是可变的,可以通过计算得到。Option字段长度=数据包长度-以太网头14字节-IP头20字节-tcp头20字节-tcppaylod字节。
最后我们将如下图所示,把内容物拼接起来,输出到文件中。
写入文件
文件效果如下:
创建文件
生成文件打开效果
生成文件与源文件十六进制比较
中实现了文件提取和保存,如何进行敏感认识,原理已经很简单了,所以我还没有实现。具体的实施原则可以分为两种。1.阅读word内容后,与设定的关键字进行匹配识别,如果匹配成功,可以确认包含敏感字段,严格禁止通过NLP自然语言处理的某些事后响应。2.实时匹配,将汉字转换为十六进制数,与pcap文件匹配,成功时发出警告,例如匹配“处理结果”,UNICOD代码如下:
处理结果与unicode
以十六进制打开doc文件时,处理结果如下:
处理结果-十六进制
Doc文件十六进制数与TCP流中的数据相同。转换后,只要通过十六进制数匹配网络流数据,就可以实时匹配敏感数据。
这是基于c语言的数据泄露保护(DLP)的核心实现。希望对你有帮助。
1.《关于dlp数据防泄漏我想说基于C语言的DLP(数据泄露防护)核心实现》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《关于dlp数据防泄漏我想说基于C语言的DLP(数据泄露防护)核心实现》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/1953048.html