APP下载

网络内容审计系统的设计与实现

2014-07-28刘剑雄等

电脑知识与技术 2014年16期

刘剑雄等

摘要:随着互联网的发展,越来越多的公司加入到互联网之中。网络技术的广泛应用,给人们的通讯交流带来了很大的方便,但是与此同时也导致了新的网络安全问题:个人隐私、企业的商业机密可能随时通过网络泄露,谣言、黄色信息在网上泛滥却难以得到有效根治。该文设计了一个基于旁路接入的网络内容审计系统,能够对进出网络的邮件以及其中的附件进行完整的捕获、还原、存储,从而到达内容审计的作用。

关键词:netfilter;字符串匹配;Sunday算法;网络内容审计

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)16-3953-05

Abstract: With the development of network, more and more corporations have connected the Internet. The network has not only brought the popularity and convenience, but also brought new problems, for example, the personal privacy or illegally business secrets may be exposed through the network at any time, rumors and pornographic information on the Internet is difficult controlled. This thesis provides an auditing system based on the bypass data collection, it can capture email and the attachment file and completely restore the contents, in order to content audit.

Key words: netfilter; string matching; Sunday algorithm; network content audit

1 概述

在互联网日益普及的今天,网络给人们的生活带来巨大便利的同时也为恶意攻击者提供了非法获取他人信息的途径。网络内容审计系统的主要功能是记录通过特定线路上的网络数据,通过协议分析,获得所需数据内容,并对用户进行定位,规范上网行为[1]。网络内容审计系统可以部署在公司和政府,通过对关键词的过滤,防止机密信息的泄露。对于国家有关部门来说,网络内容审计系统可以帮助政府快速发现和锁定网络中的谣言和用户,保证社会和谐。

2 相关技术简介

2.1 Netfilter

Netfilter框架[2]是工作在Linux系统内核中的一个过滤框架,其实现了连接跟踪、网络地址转换、状态检测和包过滤等功能。该框架由一组分布在网络数据包必经之路上的钩子函数组成,一套钩子函数对应一种协议。当有数据包流经Netfilter框架的HOOK点时,内核将判断用户是否在此HOOK点注册了钩子函数。如果在此HOOK点注册了钩子函数,则对数据包进行分析并采取相应的操作,决定是放行或者捕获[3]。

2.2 Sunday算法

Sunday算法[4]是Daniel M.Sunday于1990年提出的一种比传统BM字符串匹配算法搜索速度更快的算法。其算法核心思想是:首先进行模式串与主串字符的一一匹配,当字符不匹配时,模式串跳过尽可能多的字符进行下一次字符匹配。当发生主串与模式串不匹配时(T[i]≠P[j]),找到模式串最后一个字符对应主串的下一个字符,然后判断模式串中是否有该字符,如果含有,则将模式串与该字符对齐,如果模式串不含有该字符,则将模式串的首字符移动到该字符之后的字符位置处进行下一次匹配。

3 系统的设计与实现

3.1 系统结构框图

该文主要研究基于内容提取和审计的网络业务分析,将研究的主要精力集中在网络内容抽取以及安全审计方面,通过设计并实现一个高效、稳定的互联网内容安全审计系统,进而有效地对网络进行监测和控制。

网络内容审计系统由4部分组成,如图1所示。首先是通过Linux内核中的Netfilter模块获取网络中的所有报文,再通过协议分析得到我们审计需要的报文(smtp、post、pop3),接下来是内容审计模块,还原出用户上网的行为,例如用户发送的邮件和附件,以及论坛发帖。查询审计结果采用B/S架构,使得用户只需要点击浏览器就可以查看审计结果,直观方便。

3.2 协议分析

在通过Netfilter框架获取到网络中的数据包之后,网络审计系统的下一步工作是通过协议分析将捕获到的数据包按照数据链路层、IP 层、传输层进行解析和统计。协议分析流程如图2所示。

在数据链路层的协议分析上,系统判断该数据包是否为发往监控主机的数据包。方法是将指针定位到数据链路层帧头,读取数据包目的MAC地址,判断该目的MAC地址是否与监控主机MAC一致,如一致则判定该数据包为监控主机嗅探的数据包,否则丢包。

在网络层的协议分析上,判断数据包源IP地址是否在目标主机范围内,如一致则判定该数据包为所需要的数据包,否则丢包。

在传输层的协议分析上,系统使用传输层的端口号来进行应用程序的判断,比如http是80、SMTP是21、OICQ是8000等。

3.3 邮件处理

邮件处理模块首先从获得的报文中判断host字段是否含有mail关键词,含有mail关键词的是邮件报文,接下来根据host确定具体邮箱,再通过与邮件关键词的匹配还原邮件内容,过程如图3所示。

系统通过Sunday字符串匹配方法,依次确定邮件关键词在报文中的位置,还原出邮件内容,邮件关键词如表1所示。

3.4 附件还原

在网络内容审计系统中,附件还原过程如图4所示。

每个邮箱上传附件的方式都不尽相同,需要根据各自情况区别对待,在这里归纳出可以按照content_type字段来处理。QQ邮箱上传附件时,先发送content_type为app/x-www的报文,报文中含有附件的名字,再发送content_type为app/oct的报文正式上传数据,两者联系的依据是sid一样,flag=0是为了区别一次发送几个附件。126、163、yeah这三个网易邮箱上传附件时,content_type也是app/oct类型,与QQ附件报文的区别是有字符串mail-upload-name,当找到mail-upload-name字符串时就当做网易附件处理,其余的邮箱附件content_type都是multipart。

在网络传输过程中,附件是从“ODOAODOA”分隔符之后开始传输的,因此在附件处理过程中先通过字符匹配找到ODOAODOA“加双引号”的位置,接着通过linux的write函数将分隔符之后所有的字符写入一个文件中,文件名从报文中获得,至此完成整个附件还原的过程。

4 系统测试

本系统的设计初衷是保证内网中的服务器和主机安全,因此将内容审计系统部署在内网的出口处,系统LAN口与局域网交换机相连,WAN口与局域网网关相连,并且系统工作在旁路模式,对流入流出局域网的数据包进行过滤。内容审计系统的部署如图5所示。

测试在不同的网络背景流量下,内容审计系统捕获到的邮件数,其中发送的邮件内容都相同。

接下来测试附件还原成功率,测试系统在不同的背景流量下发送出去,是否能够完整还原出邮件的附件。

从表中数据分析得出,系统还原准确率的下降与附件内容无关,而是因为系统遇到了大的流量,导致系统捕获数据包的能力下降,造成邮件获取不完整而导致系统还原出来的附件错误。

经过以上数据分析,系统能够有效监控内网用户的上网行为,防止信息的泄露,对内网的信息安全起到了举足轻重的作用。

5 结束语

本文所实现的网络内容审计系统是一个分布式、层次分明、全方位的安全审计系统。在针对具体的工作环境时,取得了良好的实际效果,达到了提高网络安全、防范用户不良上网行为的设计初衷。下一步的工作是在不影响用户网速的情况下提高附件还原的准确率,其次还要研究如何更好的将其他网络安全技术与网络内容审计技术相结合来构建一个更有效的安全平台。

参考文献:

[1] 孙钦东.网络信息内容审计研究的现状及趋势[J].计算机研究与发展,2009(8).

[2] V.RSundar,Karthik Dantu.What is Netfilter[EB].2005.

[3] 袁方方.基于Netfilter的内容过滤系统的设计与实现[D].北京:北京邮电大学,2012.

[4] Sunday D M. A Very Fast Substring Search Algorithm[J].Communications of ACM,1990,33(8):132-142.