首页 > 范文大全 > 正文

分布式网络行为监控系统设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇分布式网络行为监控系统设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】本文主要探讨了分布式网络行为监控系统的设计问题,针对分布式网络行为监控系统设计的要点进行了探讨。同时,本文还论述了分布式网络行为监控系统应该如何来实现,以期能够为分布式网络行为监控系统的应用提供参考。

【关键词】网络行为监控系统;设计;实现

一、前言

在分布式网络行为监控系统的构建和应用过程中,需要重点解决设计和应用的相关问题,针对设计问题,提出一些有效的设计的有效对策,在实现的过程中,要更加明确分布式网络行为监控系统实现的途径。

二、原型系统的研究与实现

1.系统框架设计

系统的框架模型按照IvIDA(ModelDriven-Architec-ture,简称MDA)的相关方法进行设计,从系统和平台相关视图两个角度给出了系统的模型描述。系统的工作流程就是一个依据各层协议对网络报文进行分析处理并从中提取有用信息的、自底向上的处理过程。

系统在Windows平台的实现采用了基于c/s模型的分布式软件架构,主要包括监控(MonitorAgent)和中心控制台(Monitor-Console)两部分。监控实现了报文捕获引擎和报文协议分析引擎,并向控制台报告XML描述的行为事件,监控部署于监控目标的网段内;控制台主要通过协议有限状态机完成网络行为的分析和显示、主机和网络信息的提取,以及各种报表的显示、分析和生成等。

将系统分为这两个部分主要有两个原因:一是便于实现分布式的网络监控,将多个Agent部署在相应的监控目标网段内,可以捕获到Console收不到的报文,使得系统可以适应复杂的网络拓扑环境;二是可利用多个Agent实现报文分析的负载平衡,提高报文协议分析的效率,以便监控更大规模和更高带宽的网络。

2.系统功能简介

通过报文捕获、解析与网络行为分析,原型系统主要实现了以下功能:

(1)网络报文捕获。

(2)报文协议分析。

(3)网络行为分析。

(4)此外,系统还实现了网络和主机信息的分析、TCP会话重放、报表统计与策略管理等功能。

三、关键技术

1.监听与识别数据包

网络实时监控系统是通过对网卡编程实现网络通讯,对网卡的编程是使用套接字方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。网络实时监控系统的首要任务恰恰是从网卡接收所有经过它的数据包,这些数据包既可以是发给它的也可以发往别处。显然,要达到此目的,网卡不能按正常的模式工作,而必须将其设置为混杂模式。

编程实现时,这种对网卡混杂模式的设置是通过原始套接字实现,这也有别于通常使用的数据流套接字和数据报套接字。在创建原始套接字后,需要通过setsockopt()函数来设置IP头操作选项,然后再通过bind()函数将原始套接字绑定到本地网卡。为了让原始套接字能接受所有的数据,还需要通过ioctlsocket()来进行设置,而且还可以指定是否亲自处理1P头。至此,在完成了网卡模式的初始化设置后,就可以开始对网络数据包进行实时监听。对数据包的获取仍像流式套接字或数据报套接字那样通过recv()函数来完成,但是与这两种套接字不同的是,原始套接字此时捕获到的数据包并不仅仅是单纯的数据信息,而是包含有IP头、TCP头等信息头的最原始的数据信息,这些信息保留了它在网络传输时的原貌。通过对这些在低层传输的原始信息的分析就可以得到有关网络的一些信息。由于这些数据经过网络层和传输层的打包,因此需要根据其附加的帧头对数据包进行分析。根据系统的设计思路,就可以写出网络实时监听和识别数据包功能的实现代码。在编程时,将原始套接字设置完毕后,就可以通过recv()函数从网卡接收数据。接收到的原始数据包存放在缓存区中,然后就可以根据前面对IP数据包、TCP数据包、UDP数据包等数据包的段头结构描述而对捕获的数据包进行分析。

2.分析数据包

监听网络数据包是网络行为实时监控系统的基础,分析监听到的数据包则是系统的关键环节。发现任何网络异常行为,采取相应的处理措施,都要依据数据包的分析结果进行。

分析数据包的工作包括跟踪用户、锁定用户正在使用的1P、记录登录网页网址和网页内容还原。跟踪用户是随时从数据包中查询用户是否上网的信息。如果从数据包搜索到有关用户名和用户密码的信息,则将用户添加到列表。在搜索数据包的数据段,查找用户名时,我们采用扫描效率较高的Boyer―Moore串匹配算法。该算法以自右至左的方式扫描模式和正文,一旦发现正文中出现模式中没有的字符,就将模式、正文大幅度的“滑过”一段距离,使字符串的查找极大提高了效率。

获得了用户信息意味着同时也获得了分配给用户的IP,于是就锁定了用户当前的IP地址。根据IP数据包的源地址或目的地址,将可以将数据包与用户接收和发送的数据对应上。如果只想对IP进行跟踪,不想了解用户名,可以省略查找用户名的工作,只记录IP的情况。IP地址与用户对应上后,对用该IP登录的任何网站的网址都能记录下来,这些网址就是用户登录网站的记录。系统查找网址时,也采用Boyer―Moore串匹配算法,具体实现类似于查找用户名。

四、主机监控端实现关键技术

DNBM按照三层过滤的规划.划分为内容过滤、应用过滤、数据包过滤。数据包要经过层层的过滤最终才能完成传输。三层过滤之间的关系如图2所示。

1.内容过滤

该层的策略只给出了用户可以访问的Web站点,没有给出的站点,都是不允许用户访问的站点。

将服务提供者接口的几个关键函数替换为自己的函数,其中包括:WSASOCKET、WSASEND、WSASENDT0、WSARECV、WSARECVFR0M、WSAC0N.NECT等。只要是通过套接字方式进行网络通信的数据都能被拦截到,但是对于直接通过tcp.sys,udp.sys进行通信的数据该层是拦截不到的。在WSACONNECT函数中.可以通过远程端口号对套接字的协议类型进行设置,协议类型包括H,丌、POP3、SMTP等。这样根据协议类型。在WSASEND、WSASENDTO、WSARECV、WSARECVFR0M函数就可以解析该协议数据,提取关键字。在提取完关键字之后.需要按照策略对关键字进行过滤.并且记录下来作为日志。

关于关键字的提取.以上各个协议都是明文协议。例如。通过在HTTR数据包查找“HOST”字符串。就能得到网站名称。通过在SMTP数据包中查找“Subject:”字符串,就可以得到邮件主题。查找“From:”字符串,可以得到发信人地址。查找“To”字符串。可以得到收信人地址。对于POP3协议也同样适用。

2.应用过滤

在本层只有策略中给出的进程才是允许访问网络的进程,没有允许的就是禁止的。同时为了防止嵌入在系统进程中的嵌入式木马,将系统进程与端口绑定。比如windows2000中的services系统进程.该进程完成DNS地址解析等功能,通过53号端I=l访问DNS服务器.那么只有通过53号端口发送出去的数据是合法的数据。

在TDI驱动层中,一个进程要访问网络,必须首先发送MajorFunction为IRPMJ_CREATE的IRP创建一个代表传输地址的文件对象。如果一个进程无法创建代表传输地址的文件对象,就无法访问网络的任何后续操作。因此,拒绝一个进程创建传输地址文件对象的请求就可以达到拒绝该进程所有网络请求的目的。创建传输地址文件对象的请求中提供了要求创建的地址信息,些信息包括进程要求使用的本地端口号。是否应该拒绝某进程创建传输地址文件对象的请求是通过调用访问控制模块函数确定的。

五、结束语

总而言之,分布式网络行为监控系统的设计和应用过程中,需要清楚的知道分布式网络行为监控系统的特点和各个要素的主要流程,不断提升分布式网络行为监控系统的性能。

参考文献

[1]温研,王怀民,胡华平.分布式网络行为监控系统的研究与实现[J].计算机工程与科学,2011,10:13-16.

[2]程文芳,王世伦,任继念.基于CORBA的分布式网络行为监控系统的研究与设计[J].网络安全技术与应用,2012,04:49-51.

[3]张信杰,王旭仁,吴刚.分布式网络监控系统设计与实现[J].计算机工程与设计,2010,17:37.