当前位置:首页 >> 计算机软件及应用 >>

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

分布式网络行为监控系统设计与实现 【摘要】 本文主要探讨了分布式网络行为监控系统的设计问题,针对分布式 网络行为监控系统设计的要点进行了探讨。同时,本文还论述了分布式网络行为 监控系统应该如何来实现,以期能够为分布式网络行为监控系统的应用提供参 考。 【关键词】网络行为监控系统;设计;实现 一、前言 在分布式网络行为监控系统的构建和应用过程中, 需要重点解决设计和应用 的相关问题, 针对设计问题, 提出一些有效的设计的有效对策, 在实现的过程中, 要更加明确分布式网络行为监控系统实现的途径。 二、原型系统的研究与实现 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 站点,没有给出的站点,都是不 允许用户访问的站点。