发明名称 基于内容过滤的数据防护方法
摘要 本发明公开了一种基于内容过滤的数据防护方法,首先采用网络过滤驱动技术对网络数据流进行监控,采用设备过滤驱动技术对外设数据流进行监控,并对终端计算机的网络设备、外设接口的数据进行捕获,然后采用基于多模式匹配的内容过滤技术,对截获的网络数据流和设备数据流进行特征匹配,判断为敏感信息的数据流将被阻止外流,判断为一般信息的数据流则允许外流,从而确保敏感数据外泄。本发明数据防护粒度更细;内容过滤效率高;提高核心数据安全性;不影响用户正常操作,提高工作效率。
申请公布号 CN101827102B 申请公布日期 2013.01.30
申请号 CN201010150464.2 申请日期 2010.04.20
申请人 中国人民解放军理工大学指挥自动化学院 发明人 缪嘉嘉;鲍爱华;毛捍东;陈超;陈峰;陈国友;蒋思宇
分类号 H04L29/06(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 南京理工大学专利中心 32203 代理人 唐代盛
主权项 一种基于内容过滤的数据防护方法,其特征在于首先采用网络过滤驱动技术对网络数据流进行监控,采用设备过滤驱动技术对设备数据流进行监控,并对终端计算机的网络设备、外设接口的数据进行捕获,然后采用基于多模式匹配的内容过滤技术,对截获的网络数据流和设备数据流进行特征匹配,判断为敏感信息的数据流将被阻止外流,判断为一般信息的数据流则允许外流,从而确保敏感数据外泄; 其中,所述采用网络过滤驱动技术对网络数据流进行监控,即基于网络过滤驱动进行报文 捕获和内容过滤,具体为: (1)在网卡上安装网络过滤驱动程序,对数据报文进行截获; (2)判断被截获报文是否为IP帧,如果是则继续,否则丢弃,结束一次流程; (3)判断数据报文是否需要重组,如果不需要,则继续,否则等待后续内容,进入重组流程,完成重组后继续; (4)判断完整报文是否为TCP报文,如果不是则丢弃,之后结束流程;如果是,则继续; (5)从报文中剥离报头提取报文元组; (6)判断元组是否存在于HASH表中,如果是则继续,否则检查是否SYN=1并且ACK=1,如果不是,则丢弃,之后结束流程;如果是,则继续; (7)生成应用协议会话; (8)在会话中生成TCP数据流; (9)还原应用层文本,进入关键词匹配算法,如果匹配成功则,记录日志,结束流程,如果匹配不成功,本次报文 捕获和内容过滤流程结束,然后根据报文源地址构造新报文继续发送; 其中根据报文源地址构造新报文继续发送,即: ①在驱动程序初始化或是每次向网卡绑定时,调用NdisAllocatePacketPool请求分配一个数据包池,其中包含有指定数量的数据包描述符; ②从NdisAllocatePacketPool申请得到的数据包池中请求分配一个数据包描述符; ③在得到了数据包描述符之后,还要通过调用NdisChainBufferAtBack或者 NdisChainBufferAtFront向上面链接一个或是多个缓冲区描述符,而缓冲区描述符所描述的存储区域则由内核提供的NdisAllocatePacketPool函数得到,最后还要用缓冲区描述符对刚刚得到的存储区域加以映射; 该采用设备过滤驱动技术对设备数据流进行监控,即: (1)安装设备过滤驱动程序,设置设备过滤驱动数据流捕获对象,对外设接口交换数据进行截获,其中,对设备过滤驱动数据流捕获对象进行捕获过程为: 设备过滤驱动数据流捕获对象依附于具体设备对象之上,在数据流入流出时,设备过滤驱动可以获取数据流,并进行处理后交给具体设备驱动继续处理;设备过滤驱动数据流捕获对象需要实现包括DriverInit(),DriverStart(),DrvierUnload(),MajorFunction()函数,在驱动程序初始化过程中,它的DriverEntry例程会把其它驱动程序例程Unload、StartIo的指针装入到其驱动程序对象中,以便I/O管理器调用;当驱动程序被卸载时,I/O管理器会调用Unload例程并删除驱动程序对象;在设备过滤驱动工作时,通过拦截IRP消息,进入MajorFunction()处理函数,在此对设备的通讯数据进行处理; (2)判断被截获传输包是否为数据包,如果是则继续,否则丢弃,结束一次流程; (3)转入基于多模式匹配的内容过滤流程; (4)如果包含敏感信息,则记录日志并阻止该包发送; (5)如果不包含敏感信息,则直接将该包返回正常流程,继续发送; 所述基于多模式匹配的内容过滤,即: 首先从文本串strMsg的位置iMinPatLen开始匹配,设当前匹配的位置为i,以strMsg[i‑1]、strMsg[i]两个相邻字符为窗口取样观察:把这两个字符的编码值按照顺序用位操作移入观测窗口,形成文本字符流;然后把窗口变量T和掩码常量iHMask相与,得到最后的两个字符的编码值Test,接着根据移动表ShiftTab[Test]值的情况决定下一步是回溯匹配还是继续移动。
地址 210007 江苏省南京市白下区海富巷1号