近年来,数据泄露事件越来越多,无论从外部合规要求还是内部安全需求,保障数据的完整性、一致性、可用性已经成为组织内部首要关注点。
组织内部数据可分为结构化及非结构化两种类型,结构化数据安全防护技术已经相对成熟,如数据库审计、防火墙、脱敏、加密、备份等产品可支撑数据生命周期下对数据的安全管控要求,但针对非结构化数据目前处于火热阶段,已是数据安全产品新的发力点,主要技术为DLP即数据泄露防护,DLP分为主机与网络两种监测方式,主机是通过在终端安装的防泄漏客户端实现文件扫描、截屏留证、传输管控等功能。另外是通过识别网络流量方式检测网络传输文件是否包含泄露内容。目前使用较为广泛、实施成本最低、客户容易接受的便是网络监测的方式。
本文主要介绍如何通过旁路镜像检测网络流量中相关文件,实现对敏感文件内容的防护。由于前期只考虑核心原理及技术最终实现,所以在代码方面还未来得及优化完善,另外我只通过解读pcap文件,识别doc文本一种环境,针对复杂环境还需完善。综上所述,本文知识探讨DLP核心技术实现原理和相关技术实现,所以代码层面会一定缺陷,还请见谅。
主机版DLP可依托开源openDLP进行实现,本文不进行介绍。
二、实现原理
通过镜像流量方式检测文件是否包含敏感内容,是否已经泄露,其实现方式流程为:1.采集网络流量;2.解析网络流量内容;3.根据文件头判断文件类型;4.导出tcp数据,根据判断的文件类型重命名文件,也可通过关键字转换成十六进制码进行在线匹配,如果匹配成功再进行文件保存留证;5.如果为图片,则通过OCR识别后进行判断,如果为非文字识别,可通过机器学习方式进行学习后再对图片进行识别。
我测试方式为,从网站下载一份word文档,另存为pcap文件,随后识别pcap文件中的文档类型并进行另存留证。
三、具体实现
- 文件头基础介绍
在进行代码介绍前,首先需要了解文件头。网络流量对文件监测需要根据文件头进行判断,并根据文件头开始记录payload内容,下图为常见文件头内容(如不满足可自行搜索)。