运用信息过滤技术防止移动存储设备信息泄漏

时间:2022-08-24 05:08:06

运用信息过滤技术防止移动存储设备信息泄漏

摘要:随着信息化建设的飞速发展,信息资源成为信息化的核心要素。由于移动存储设备的便捷性,大量信息采用U盘和移动硬盘等移动存储设备进行数据交换,使得移动存储设备成为主机信息泄漏的主要途径之一。该文提出了基于AC自动机的多关键词多编码匹配算法,对传输到移动存储设备的主机信息进行过滤,防止主机敏感信息流入移动存储设备,并对算法进行了实验。

关键词:主机防信息泄漏;移动存储设备;信息过滤

中图分类号:TP311 文献标识码:A文章编号:1009-3044(2010)04-0850-03

Filter the Sensitive Information to Prevent the Information Flowing into the Mobile Storage Device

MA Yun

(School of Information Science and Engineering, Lanzhou University, Lanzhou 730000, China)

Abstract: Following the rapid development of information construction, the resource of military information becomes the core element. The mobile storage devices such as the USB device and mobile disk are used to exchange information more and more usually because of their convenience. Those devices become one of the major ways of host information leakage. This paper researches that: basing on the AC automatic machine, presents an algorithm with multiple keywords and multiple encoding to filter the sensitive information transmission from host to the mobile storage device and prevent host sensitive information flowing into the mobile storage device.

Key words: host information leakage prevention; mobile storage device; data filtering

由于计算机的普及应用,特别是移动存储设备的即插即用性和便携性,大量信息通过移动存储设备进行传输和交换,方便了信息共享,同时也带来了安全隐患。如果信息中包含大量的内容,一旦泄漏到外界,将造成无法挽回的损失。

如何对移动存储设备进行安全管理,防止主机机密和敏感信息通过移动存储设备泄漏,已成为目前所关注的重点。本文通过对主机敏感信息过滤技术进行研究,设计敏感信息过滤算法,并通过实验验证算法的效率和有效性,进而实现对通过移动存储设备传输的信息进行过滤,从而达到防止主机敏感信息通过移动存储设备泄漏出去的目的。

1 信息过滤技术简介

信息过滤是指从大量的数据信息中过滤满足用户特定需求信息的过程,这与信息检索(Information Retrieval, IR)的工作方式极为相似,都是从用户的目标出发,就用户的特定信息需求进行搜索,不同的是信息检索是在相对静态的结构化数据库中对用户短期的特定信息需求进行的获得式搜索,而信息过滤是在海量的动态的非结构化或半结构化数据中对用户长期的特定信息需求进行的过滤式搜索,即信息检索有相对固定的信息库和千变万化的检索需求,而信息过滤则有着相对固定的用户需求和动态变化的信息流。在用户需求的表示和目标上,信息检索是依据检索词的组配来选择相关条目,而信息过滤则是依据用户兴趣模型来过滤相关的信息 [1]。

2 敏感信息过滤流程

在信息系统中,处理的数据可以是有结构的,也可以是无结构的;可以是数据库中的具体数字,也可以是文件系统中的文档;可以是文本,也可以是多媒体。本文中的基于内容的敏感信息过滤算法是指运用基于AC自动机的多关键词多编码匹配算法对移动存储设备拷贝的主机信息内容进行敏感信息过滤,防止主机敏感信息传输至移动存储设备。其方法是:设定一定数量的关键词,在移动存储设备预拷贝的主机信息中进行多关键词匹配,根据匹配算法对移动存储设备拷贝的主机信息进行过滤。如果匹配成功,则阻止移动存储设备拷贝信息,反之移动存储设备则正常拷贝信息。

基于Win32的应用程序是消息驱动的,应用程序所采取的任何动作都依赖于它所获得的消息类型及其内容;Win32系统提供了一种机制即钩子(hook),通过它应用程序可以监视系统中的消息传递并能够在它们到达目标窗口之前对其进行处理。

敏感信息过滤利用钩子机制对写入移动存储设备的信息流进行检索,通过基于内容的模式匹配算法对可能写入移动存储设备的主机敏感信息进行过滤,防止主机敏感信息通过移动存储设备泄漏。

本文选用标准Windows钩子方式,即用钩子函数把监视代码嵌入到系统与目标应用程序之间,其流程如图1所示。

1)创建并加载钩子函数。创建一个DLL文件,该DLL中包含用于信息传输过滤控制的钩子函数。将该钩子函数加载到Explorer进程空间中,监视所有从系统消息队列发往Explorer的消息。如果拦截到向移动存储设备写入文件的消息,则启动信息过滤过程。

2)对磁盘写缓冲中的数据流进行过滤。信息过滤过程使用AC自动机匹配算法对磁盘写缓冲中即将写入移动存储设备的数据流进行敏感信息检索。该匹配算法将在下文详细介绍。

3)对移动存储设备信息传输进行控制。如果在数据流中检索到敏感信息,则清空磁盘写缓冲,并通过警告对话框向用户提示数据中含有敏感信息,不能拷贝。否则继续数据传输过程。

3 基于AC自动机的多关键词多编码匹配算法

目前存在多种编码方式,如ASCII、Unicode、等等,将不同语种的字符空间映射为编码后的字节进行存储。而主机信息是按比特方式传输至移动存储设备,所以对传输信息的内容进行敏感信息过滤可以采用比特流过滤的方式,这就需要对各关键词的不同编码方式进行匹配。本文通过构建多关键词多编码二叉树(Multiple Keywords and Encoding Model Tree, M2KE-Tree)的方式完成基于AC自动机的多关键词多编码的匹配算法。

在单模式匹配算法中,典型的有KMP算法[2]和BM算法[3]、蛮力算法(Brute-Force)[4]等。在多模式匹配算法中,Aho-Corasick自动机匹配算法是最著名的算法之一。本文将Aho-Corasick(AC)自动机匹配算法应用于移动存储设备防信息泄漏的信息过滤中,以提高多关键词敏感信息的检测效率,同时本文利用二叉树对AC自动机进行描述。

AC自动机的匹配算法基于一种模式树[5]。一个模式集的模式树指的是具备如下性质的一棵树T:

1)T的每一条边上都用一个字符作为标签;

2)与同一节点相连的边的标签均不同;

3)对于模式集P,每一个模式p∈P都存在一个节点m,使得L(m)表示从根节点m所经过的所有边上的标签的拼凑;

4)每一个叶子节点m'都存在一个模式p∈P使得L(m')=p。

3.1 单编码二叉树

设某关键词A的B编码为1011,将它的编码以二叉树来表示,将这个二叉树称为A的B编码二叉树,其构建过程如2所示。

1)首先建立一个空节点,作为树的根节点,将第一个比特作为该节点的子节点添加到树中,设定根节点到该节点的边的数值为这个比特的值,比特值为0的节点作为父节点的左孩子,比特值为1的节点为父节点的右孩子,如图2a所示。

2)按照1)中的方式将第二个比特添加为上个比特对应的子节点,由于第二个比特值为0,因此作为第一个比特所对应节点的左孩子,如图2b所示。

3)将第三个比特添加为第二个比特对应的子节点,由于第三个比特值为1,因此作为第二个比特所对应节点的右孩子,如图2c所示。

4)将第四个比特添加为第三个比特对应的子节点,由于第四个比特值为1,因此作为第三个比特所对应节点的右孩子,最后一个节点标识为树的终结点,如图2d所示。

3.2 多编码二叉树的合成

可以根据某个关键词的多种常用编码分别构建出对应的单编码二叉树,然后将这些单编码二叉树使用“影像合成”的方法合成为该关键词的多编码二叉树;使用同样的方法将多关键词所对应的多编码二叉树合成为一棵多关键词多编码二叉树,作为匹配算法的模式树。

下面以一个实例来描述该过程,取“信息”“保密”两个词作为关键词,分别针对常用的Unicode、UTF8进行树的构建,为了便于描述,用上述编码的最后四比特来演示多关键词多编码树的构建过程,“信息”进行Unicode编码的最后四位是“0000”,进行UTF8编码的最后四位是“1111”,“保密”进行Unicode编码的最后四位是“1011”,进行UTF8编码的最后四位是“0110”。如图3所示,图中a、b表示关键词“信息”的Unicode、UTF8编码所构建的单编码二叉树;图中c、d表示关键词“保密”的Unicode、UTF8编码所构建的单编码二叉树。

将图3的a、b按照“影像合成”的方法叠加合成为关键词“信息”的Unicode、UTF8编码所对应的多编码二叉树;将图3的c、d按照“影像合成”的方法叠加合成为关键词“保密”的Unicode、UTF8编码所对应的多编码二叉树;将关键词“信息”的多编码二叉树和关键词“保密”的多编码二叉树采用“影像合成”的方法非合成为这两个关键词的多关键词多编码二叉树(M2KE-Tree),如图4所示。该树将作为对关键词“信息”、“保密”进行基于比特流的匹配算法的模式树。

3.3 AC自动机匹配算法

该算法的基本思想:在预处理阶段,把M2KE-Tree的各个节点作为状态,根节点作为初始状态,叶子节点作为终态,增加两个功能函数DD转向函数g和实效函数f作为转移函数DD将M2KE-Tree扩展成一个树型有限自动机。

由M2KE-Tree扩展所得的AC自动机M是一个六元组:

M=(Q,∑,g,f,q0,F)

1)Q是有穷状态集(M2KE-Tree上的节点);

2)∑是有穷的输入符号集{0,1};

3)g是转移函数,该函数定义如下:

g(s,a):从当前状态s开始,沿着边上标签为a的路径所到达的状态。如果(u,v)边上的标签为a,那么g(u,a)=v;

4)f(不匹配时自动机的状态转移)也是转移函数,该函数定义如下:

f(s):当w是L(s)最长真后缀并且w是某个模式的前缀,那么f(s)就是以w为标签的节点;

5)q0∈Q,是初始状态(根节点,标识符为0);

6)F?哿Q,是终结状态集(以模式为标签的节点集)

这样,在比特流检索模式的过程就转换成在M2KE-Tree中的查找过程,在检索一个比特流T时,从M2KE-Tree的根节点开始,沿着以T中每个比特为标签的路径向下查找:

1)若自动机能够抵达终态v,则说明T中存在模式L(v);

2)否则说明T中不存在模式。

以图4为基础,构造出来的自动机如图5所示,其中虚线为f函数,实线为g函数,细圈为自动机各个状态,粗圈为终态,双圈为初始态。

整个AC自动机匹配算法的输出是一个布尔值,如果输出为TRUE,说明比特流中存在与模式相匹配的串,该比特流中可能包含敏感信息,应拒绝写入移动存储设备;如果输出为FALSE,则说明比特流中不存在与模式相匹配的串,该比特流中不包含敏感信息,写入移动存储设备。

AC自动机匹配算法利用有穷自动机将二进制运算转换成自动机的状态转移。当一个长度为n bit的数据T进行扫描,由于对于T中的每个比特,每次仅使用g函数和f函数中的一个,因此在模式匹配阶段时间复杂度为O(n×k),其中k为整个M2KE-Tree建立的AC自动机个数。

3.4 算法实验

本文对KMP算法、BM算法、蛮力算法、以及AC自动机算法在同等条件下分别进行单模式和多模式的测试。考虑到磁盘传输速度不是匀速等原因,不考虑算法的运行时间,只考虑比特流中符号的比较次数。

实验1进行单模式测试,使用大小为512bit随机产生的二进制比特流,对单模式字符串“1101”进行匹配,结果如表1所示。

实验2进行多模式测试,使用大小为10192bit随机产生的二进制比特流,对多模式字符串“1101,1011,0011,0100”进行匹配,结果如表2所示。

由实验结果可以看出,虽然AC自动机匹配算法在单模式匹配情况下,匹配速度没有BM算法快。但是,在多模式匹配中每一个比特平均比较次数明显比其它三个算法小,而且模式越多,这个优点越明显。在敏感信息过滤中,往往需要进行多模式匹配,因此,基于AC自动机匹配算法的敏感信息过滤具有较高的实用价值。

4 结束语

本文对基于内容的敏感信息过滤算法进行设计,重点对匹配算法进行了深入分析,在此基础上提出了基于AC自动机的多关键词多编码匹配算法,并对算法进行了实验。基于AC自动机的多关键词多编码匹配算法具有小巧、速度快等优点,实现了主机敏感信息过滤,有效防止主机敏感信息的泄漏。

参考文献:

[1] 符敏慧.基于文本的信息过滤模型[J].图书馆理论与实践,2006(2):43-45.

[2] 闵联营,赵婷婷.BM算法的研究与改进[J].武汉理工大学学报:交通科学与工程版,2006,30(3):528-530.

[3] Boyer R S,Moore J S.A Fast String Searching Alogrithm[J].Communications of the ACM,1997,20(10):762-772.

[4] 许黎,李毅超,刘丹.基于单模式匹配算法的研究[J].网络安全技术与应用,2006(12):85-87.

[5] Gusfield D.Algorithms on Strings,Trees,and Sequences[M].Cambridge University Press,1997.

上一篇:《微机原理与接口技术》课程教学实践 下一篇:通用网管接口测试事务模型的描述方法