- 1 -
基于内容分类技术的网络内容安全审计
系统的应用
胡亮*
(北京邮电大学信息与通信工程学院,北京 100876)
摘要:随着互联网的普及以及快速发展,基于互联网应用的技术要求不断提出。信息检索领
域的文本分类技术已经作为一项重要的技术在互联网领域如搜索引擎、垃圾信息过滤等方面
得到了广泛的应用。互联网内容安全审计作为一个互联网的应用,如何更高效、高质量地对
网络数据进行审计正成为研究的一大课题。而基于互联网的内容安全审计系统,对于同一类
型的垃圾信息、暴力、反动、黄色信息的辨别提出的进一步的要求,使得有别于传统的精确
匹配的基于字符串匹配的机器学习、信息分类这一智能技术得到很好的运用。基于分类技术
的内容安全审计系统在一定的精确匹配的数据训练集的训练下,保证了高效、快速及高准确
率的内容审计结果。本文主要论述结合精确匹配和文本分类的技术在网络内容安全审计系统
的运用。
关键词:文本分类;内容审计;精确匹配;模糊匹配;机器学习
中图分类号:TP391
An application in Internet content security audit system
based on text classification technology
Hu Liang
(School of information and communication engineering, Beijing University of Posts and
Telecommunications, Beijing 100876)
Abstract: Along with the common and rapid development of Internet, more and more advanced
technology used in Internet is required and introduced then. Text classification technology, which is a
main filed in information retrieval science, is basic and important in Internet applications, such as
search engines, spamming filters and so on. Internet content security audit system, which is an
important application of Internet, aims to monitor the content containing sexy, violent, spamming
information so that we could avoid alarm and forbid these. Therefore, it is a difficult task for us to deal
with these internet contents more efficiently and sharply. It will be different from conventional system
based on string pattern matching, when required that same category of text should be identified.
Moreover, the intelligent technologies such as machine learning and information classification are put
forward and are taken into exercises well. Plugged into the text classification module, the Internet
content security audit system could work in the way of learning from the trained text data and making
the decisions then. This guarantees that the system works more rapidly and efficiently in the
circumstance of high payload. This paper mainly discusses the combined applying both the traditional
string matching technology and the text classification technology in the Internet content security audit
system.
Keywords:Text classification; content audit; fully-matching; fuzzy-matching; machine-learning
0 引言
网络的内容提取是当前许多的网络业务分析、流量监测、内容审计的重要基础。基于内
容提取的研究工作已全方面广泛地开展起来了。
目前国外的研究,亦有相当一部分集中在如何提高监控与审计系统得效率这方面。内容
审计系统需要记录用户使用计算机网络访问的所有资源以及所有访问过程,所以完整地记录
审计追踪数据是事后调查取证的基础,亦是技术上的难点,日益加快的网络信息交换以及不
断提高的审计要求对监控与审计系统的处理效率提出了更高的要求。
- 2 -
提高监控与审计系统得效率可在多个环节上加以研究,比如在采集方面,可以选用效率
更高的数据报采集机制;在过滤方面采用低层次,高效率的匹配算法,甚至将过滤从硬件界
别加以应用;在应用层,采用内存映射的方式减少数据拷贝引起的中断对 CPU 时钟的占用,
使用支持内存映射的 libpcap 特殊版本 libcap-mmap,采用适应动态变化的高效显示方法等
等。快速的字符串匹配技术也是网络监控与审计系统的一个重要研究方向[1]。
而基于机器学习的文本分类方法目前还是个新的方向,是一种高效、快速的模糊匹配的
内容审计技术。本文主要研究在基于精确匹配的训练集数据的训练下,进一步采用文本分类
技术进行内容审计的分析与实现。在一些通过分析关键字进行垃圾信息过滤、非法敏感信息
检测等的应用中,使用快速的文本分类技术可以快速提高系统效率,并且在系统高负载的情
况下可以有效的解决问题。
1 内容审计系统
网络内容提取和审计系统大致分为以下几个模块,可参见系统总体设计框图,如图 1
所示。
图 1 内容审计系统总体设计框架
- 3 -
中国科技论文在线
下面简单介绍下系统的几个主要的模块。
1. 数据采集模块:采集网络上的所有数据流,并将截获的数据包,根据不同的业务分
类,区别性地将业务数据包交付给会话重组模块处理。
2. 会话重组模块:由于数据报文过大时,一般当大于最大段长度(MSS)的时,应用
层数据必须分段在不同数据包发送出去。会话重组模块在收到数据采集模块发送过来的报文
后,分析数据包的特征,并基于会话对数据包进行重组,去除协商、应答、重传、包头等网
络信息,以获取一条基于完整会话的记录。将已知的业务数据包重组数据还原出来。并在内
容压缩的情况下解码出原始内容。
3. 内容匹配模块:会话重组模块已经还原并重现了用户原始数据,然后将原始内容交
付于内容匹配模块。由内容匹配模块负责对原始数据根据界面配置的匹配规则库进行匹配,
匹配成功的话,记录数据包信息、阻断数据包的传播,并发出告警信号。
4. 存储数据模块:存储数据模块负责记录并存储匹配出的可疑内容(非法的涉黄、暴
力、反动的言论),存储模块一般来说将数据存储在数据库中。
5. 匹配规则:匹配规则由用户在页面上配置,存放所要进行匹配或者分析处理的规则,
一般存储在数据库中。
6. Web 页面:与后台存储数据模块(数据库)交互,为用户提供一个友好的交互界面,
通过页面用户可直观地配置内容匹配规则、查看已记录下来的可疑的审计内容。
然而此时,系统还具有一定的局限性,当数据包流量特别大,即数据包达到率超过了审
计系统的处理率的时候。这样情况下,持续一段时间后,系统会由于内存资源或磁盘资源的
不足导致系统无法正常运作。这是系统的明显的一大缺陷。在找到解决方案前,首先对字符
串匹配方法的精确匹配和模糊匹配进行一下简单的介绍。
精确匹配
字符串精确匹配方法有很多种,比较被大家熟知的精确匹配方法包括 BF(Bruce Force)、
KMP(Knuth-Morris-Pratt)、BM、Quick Search 算法。这些算法都保证完全的字符匹配。
关于这几个精确匹配方法的具体信息,可参考其它专业文献。
模糊匹配
模糊匹配,区别于精确匹配,字符串之间可以有一定的距离(比如字符串 A 和字符串 B
分别为 hello 和 helo,字符串之间距离为 1)。字符串之间可容许的距离值可通过配置文件
手动配置。这样可以把一些“干扰字符串”识别并记录下来。
2 文本分类
不难看出,无论是精确匹配还是模糊匹配,都是对文本里面的某一个或者某几个关键字
进行匹配,再决定该文本是否含有敏感关键字或者是否是垃圾信息(一般情况下给文本打一
个印记,1 表示是,0 表示否)。通过这些模糊匹配和精确匹配得到的结果可以作为训练数
据进行监督性机器学习,当训练数据量达到一定量后,可以给系统启动一个文本分类模块,
后台进行数据训练,在大量数据报文达到后,为了减轻机器的匹配负担,可采取暂时性关闭
匹配模块策略,直接进行文本分类器的快速分类策略。
而关于文本分类的技术,目前来看,主要分为两大类:监督性机器学习和无监督性机器
学习。进一步,又可以分为分类和聚类两种。本文主要针对网络中的互联网流量进行识别,
需要明确判断一个文本是否为非法内容或者垃圾信息,所以本文主要考察分类技术(监督性
- 4 -
中国科技论文在线
机器学习)的方法的应用对系统效率方面的影响。
在分类的时候首先会遇到文档形式化表示的问题,文档模型有 3 种:向量空间模型,布
尔模型和概率模型,其 中我们常用的是向量空间模型。向量空间模型的核心描述如下。
文档(Document):文本或文本中的片断(句子或段落)。
特征项(Term):文档内容用它所包含的基本语言单位来表示,基本语言单位包括字、
词、 词组、短语、句子、段落等,统称为特征项。
特征项权重(Term Weight):不同的特征项对于文档D的重要程度不同,用特征项 kT
附加权重 kW 来进行量化,文档 D 可表示为 ),;...;,;,( 2211 nn WTWTWT .
向量空间模型(Vector Space Model):对文档进行简化表示,在忽略特征 项之间的相
关信息后,一个文本就可以用一个特征向量来表示,也就是特征项空间中的一个点;而一个
文本集可以表示成一个矩阵,也就是特征项空间中的一些点的 集合。
相似度(Similarity):相似度 ),( 21 DDSim 用于度量两个文档 1D 和 2D 之间的内容相关
程度。当文档被表示为文档空间 的向量,就可以利用欧氏距离、内积距离或余弦距离等向
量之间的距离计算公式来表示文档间的相似度。
其中特征选取是文本表示的关键,方法包括:文档频率法(DF)、信息增益法和互信
息法等等。
分类的基本步骤是这样的:定义分类体系,将预先分类过的文档作为训练集,从训练集
中得出分类模型,然后用训练获得出的分类模型对其它文档加以分类[6]。
常用文本分类算法
文档自动分类是学术界研究多年,技术上比较成熟的一个领域。目前常用的分类算法主
要分下面这些:支持向量机(SVM)方法、朴素贝叶斯(NB)方法、神经网络(NN)方法、
K 近邻(KNN)方法、决策树(Decision Tree)方法等。
支持向量机
支持向量机(Support Vector Machines, SVM)由 Vapnik 在 1995 年提出,用于解决二分
类模式识别问题。它通过寻找支持向量来确定决策面,并使分类间隔最大。SVM 方法提供
了解决 “维数灾难”问题的方法。SVM 方 法较好的理论基础和它在一些领域的应用中表现
出来的优秀的泛化性能,尽管 SVM 算法的性能在许多实 际问题的应用中得到了验证,但
是该算法在计算上存在着一些问题,包括训练算法速度慢、算法复杂而难以实现以及检测阶
段运算量大等等。
朴素贝叶斯
朴素贝叶斯(Naive Bayes,NB) 概率分类器是机器学习中很常用的一种方法,其基本思
想是利用单词和分类的联合概率来估计给定文档的分类概率。
贝叶斯公式如下: )(*)|()(*)|( CPCXPXPXCP = 。其中,特征向量:
),...,,( 21 nxxxX = , ),...,,( 21 ncccC = 。
)(CP 是每个类别的先验概率,即互联网上各个分类所占总页面的比例。
)|( CXP :条件概率,表示在类别为C的训练集合 中, X 的分布情况。
)(XP :每个特征值的分布,由于特征值的分布是随机的,所以 )(XP 相等。
- 5 -
中国科技论文在线
神经网络
神经网络(Neural network,NN)技术是人工智能中的成熟技术。将神经网络用于文档
分类时,需要为每个分类建立一个神经网络,通过学习得到从输入单词(或者更复杂的特征
词向量)到分类的非线性映射。其计算量和训练时间非常庞大。
K 最近邻
KNN 是著名的模式识别统计学方法,已经 有四十年历史,它是最好的文本分类算法之
一。KNN 算法相当简单:给定一个测试文档,系统在训练集 中查找离它最近的 K 个邻居,
并根据这些邻居的分类来给该文档的候选分类评分。把邻居文档和测试文档 的相似度作为
邻居文档所在分类的权重。如果这 K 个邻居中的部分文档属于同一个分类,则该分类中的
每个邻居的权重求和并作为该分类和测试文档的相似度。该方法的特点是允许文档可以属于
多个分类。KNN 通过查询已知类似的例子的情况,来判断新例子与已知例子是否属于同一
类。
决策树
决策树方法是通过训练数据建立一棵树的结构,树中每个节点有一个指标,通过与该指
标的比较来决策下一个子节点方向,直至最后到达叶节点,最终的叶节点就是这个目标文本
的分类种类。
分类器设计方案
通过我们对现实网页的分类测试情况看,这些方法中 SVM 方法的效果是比较好的,但
是性能不高; 朴素贝叶斯的分类效果虽然略差于 SVM,但是性能上要好很多,实现起来也比
较简单。
可利用现有的 libsvm 函数库来实现文本分类器。
3 智能内容审计系统
在原有内容审计系统中,植入文本分类器模块,这样使得原有系统就成为了一个智能的
内容审计系统。把原有结果当作训练数据作为文本分类器的输入进行机器学习。文本分类模
块,采用 SVM 方法进行分类,在实际系统中进行分类时,直接利用现有的稳定成熟的 libsvm
库来实现文本分类器,以进行机器学习。如图 2 智能内容审计系统所示。
- 6 -
中国科技论文在线
字符串匹配
Y/N
截包
重组
解码
文本分类器
写库
Yes No
数据包
策略调度器
(是否启动文本分类器)
DB
内存使用率
数据到达率
内存使用率
利用训练数据进行机器学习
图 2 智能内容审计系统
4 结果比较
通过实验测试,得到了系统在各种条件下的效率以及精确率,如表 1 中的结果比较所示。
其中实验环境如下:
主机:1 台
操作系统:Linux centos
内存:256M
CPU:intel 单核处理器
交换机:1 台
客户端主机:5 台
- 7 -
中国科技论文在线
表 1 结果比较
文本分类模块 效率 训练数据量 精确率
无 60M/S 0 100%
有 100M/S 2T 93%
有 100M/S 79%
5 结论
通过实验分析可以看出,在系统高负载的情况下,甚至是系统已经无法正常工作的情况
下,为了使得系统仍然能最好的运作下去,启动文本分类器模块,关闭常规的字符串匹配模
块。经过一定量的监督性机器学习后,把后续的互联网内容输出给文本分类器进行分类识别。
这样,系统至少可以对一个互联网内容是否可疑(我们把含有所有敏感、反动、非法、黄色、
暴力的内容都认定为可疑)进行判断,当然这会允许系统有一定的误判。但是随着训练数据
量的增大,分类器进过机器学习以后进行判别的正确率就越高。从表 1 中也可以看出,随着
训练数据量的增大,分类正确率明显增大。
两种方案各有局限性,前一种的局限性就是效率问题,当数据量过于大的时候,效率就
会受到很大的损耗。而后一种基于文本分类的方案可以解决以上的问题,当然是在允许一定
误判率的前提下。至于采用哪个方案需要根据实际的需求来做出决策。
[参考文献] (References)
[1] 林延福,杨新旭等. 网络内容审计及其关键技术的研究[J]. 现代电子技术,2005, 2(193).
[2] 刘芳. 网络流量监测与控制[M]. 北京:北京邮电大学出版社,2009.
[3] . TCP/IP 详解 卷 1:协议 [M]. 北京:机械工业出版社,2007.
[4] Balachander Krishnamurthy Jennifer Rexford. Web Protocols and Practices [M]. Addison Wesley, 2003.
[5] . 用 TCP/IP 进行网际互联 卷 1:原理、协议与结构 [M]. 北京:电子工业出版社,2007.
[6] Croft, et al. Search Engines Information Retrieval in Practice [M]. 北京:机械工业出版社,2009.
[7] 刘清. 基于 SVM 的网络文本分类问题研究与应用[D]. 南昌:南昌大学,2007.