大型论坛检测系统的开发与应用2_第1页
大型论坛检测系统的开发与应用2_第2页
大型论坛检测系统的开发与应用2_第3页
大型论坛检测系统的开发与应用2_第4页
大型论坛检测系统的开发与应用2_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

591论文网www.591LW.com大型论坛检测系统的开发与应用摘要互联网发展迅速,网络论坛也随之发展起来。它在给人们带来了诸多方便的同时也产生了诸如传播色情暴力、发表反动言论和泄漏技术机密等一系列严重的问题。因此人们对网络论坛内容监测的需求已经迫在眉睫,而对它的深入分析和研究就更具有极为重要的意义。本文介绍了网络基础知识、网络监测和过滤的原理以及数据从客户端传到服务器端的方式。分析了互联网论坛监测系统的目的、系统的组成原理和系统的功能模块。其主要模块包括包捕获模块、解码模块、模式匹配模块。它还提出了利用以太网的广播特性,在共享式网络环境下使用BPF技术来获取传输中的信息。系统在Linux操作系统下,调用Libpcap库函数来实现抓包,对包中的内容进行分析,找出有害的信息,从而实现过滤功能。利用文中介绍的方法来构建监测系统,能起到一定的监测作用。关键词:论坛监测;抓包;过滤;伯克利数据包过滤器

DesignandImplementationoftheInternetForumDetectiveSystemAbstractAstheinternethasbeendevelopingrapidly,theinternetforumhasbroughtmanyconvenienttothepeople.Butatthesametime,italsohasbeenhavingaseriesofquestions,suchasspreadsthepornography,declaresthereactionaryopinion,divulgesthesecretoftechnology,etc.ThereforetherequirementoftheInternetforumdetectivesystemhasbeenstaredintheface,andthoroughanalysisforthesystemhastheextremelyvitalsignificance.Thethesisintroducesthebaseknowledgeofnetwork,theprincipleofthenetworkdetectingandfilter.Pointedoutamethodofhowthedatatransportfromthecustomertotheserver.Thethesishasanalyzedthegoalofinternetforumdetectivesystem,theprincipleofsystemcompositionandthefunctionmodule.Theimportantmoduleincludesthemoduleofcapturepackage,moduleofdecode,moduleofmatching.ThesystemproposesthebroadcastcharacteristicofEthernet,usingtheBPFtechnologytogainthenetworkinformationinthecommonnetworkenvironment.ThesystemhasbaseonLinuxoperationsystem,transferringalibpcapstoreroomfunctiontograspthepackage,analyzingthecontentofthepackageandfindingthebadmessageinordertorealizethefunctionoffilter.Thethesisusesthemethodwhichwasreferredjustnowtoconstructthesystemdetective,anditrealizessomeofitsfunctions.Keywords:Theforumdetecting;Libpcap;filter;BPF

目录论文总页数:25页1引言 11.1课题背景 11.2本课题研究的意义 11.3本课题的研究方向 12网络监测和过滤技术 12.1网络监测技术简介 22.2包捕获 32.2.1利用以太网的广播特性进行包捕获 32.3包过滤 33系统需求分析 43.1互联网论坛监测的产生 43.2论坛内容监测系统的总体目标 43.2.1系统所需的环境配置 53.2.2系统的流程图 63.3系统功能分析 64论坛监测软件设计的总体方案 94.1论坛监测软件主要功能 94.2论坛监测系统功能模块的描述 105论坛监测软件的实现 125.1运行环境和操作系统选择 125.2系统对软硬件配置的要求 125.3预期成果 125.4软件模块的实现 125.5论坛监测软件的对象关系图 165.6论坛监测的关键代码 166结果测试,性能分析 206.1测试指标: 206.2测试环境 206.3监测计算机处于局域网内部 206.3.1用户机和目标论坛配置 216.3.2网关的配置 216.3.3测试方法与结果 216.4监测计算机处于外部网络 216.4.1用户机和目标论坛配置 226.4.2网关的配置 226.4.3测试方法与结果 22结论 23参考文献 23第20页共25页1引言1.1课题背景互联网发展迅速,网络论坛不仅逐渐成为企业内部的沟通桥梁,也是企业和外部进行各类业务往来的重要管道。同时企业如何能够从海量的数据信息中获取民众焦点和社会舆论动向已经成为管理部门日常工作的重中之重。1.2本课题研究的意义通过设计流量控制,身份验证,屏蔽各种端口等方法对用户上网发信息到目标论坛进行严格管理与控制,有效预防木马、病毒和用户进行反动,色情的信息传递。1.3本课题的研究方向综合运用以前所学的专业知识,设计开发一个互联网监测软件,本设计要求实现能够自动获取目标论坛的发布内容,系统针对发帖作者、发帖时间、帖子URL、帖子标题和帖子正文等关键字段开放基于单个字段或是组合选项的热点查询等这些功能,具体包括以下内容:在设计与开发中,重点如何解决客户发的信息能够捕获到的问题;在设计与开发中,难点是对捕获的信息过滤的问题。本系统的开发首先分析互联网论坛监测系统软件的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识(包括计算机网络技术、相关协议、信息安全相关知识等),选择所熟悉的开发工具进行本毕业设计的开发;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;同时,在开发设计与实现中,要保存好相关的设计文挡,为后面的毕业论文的写作准备材料;最后,系统开发完毕后,进行调试和试运行,做好调试和试运行的相关记录,也为后面的毕业论文的写作准备材料。2网络监测和过滤技术伴随着互联网的迅速普及,良莠不齐的网络发布内容日渐泛滥。而随之带来的安全和管理问题不得不受到用户的重视。从小型公司员工上网浪费工作时间和公司资源,到商业间谍通过一封邮件将公司机密泄露,无不体现着网络监测的必要性。而监测也仅仅是一种手段,必须和企业的管理机制挂钩,有了比较好的衔接才能真正的实现事半功倍。在众多的网络安全技术中,监测过滤技术是一个广泛使用的技术。监视实时通讯的信息并提取有害内容,而且在不影响网络性能的基础上提取信息体,并进行高效的匹配从而建立有害信息库,为进一步拦截和做出统计分析做准备。2.1网络监测技术简介绝大多数的现代操作系统都提供了对底层网络数据包捕获的机制,其最初的目的在于对网络通信情况进行监测,以对网络的一些异常情况进行调试处理。但随着互连网的快速普及和网络攻击行为的频繁出现,保护网络的运行安全也成为监测软件的另一个重要目的。目前的监测软件主要有两种类型。一种是通过侦测记录信息进行监测,类似于木马程序,这种监测软件通过抓屏、记录键盘击键信息或窃取IM记录文件等方式能够获取用户信息。另外一种通过捕获网络中的广播数据从而进行监测。监测特指“sniffer”(通常直译为嗅探或窥探),即利用计算机网络接口截获目的地为其他计算机的数据报文。大体上来说,可以将监测程序分为两个组成部分:·内核空间部分:负责从网络中捕获以及过滤数据包。·用户空间部分:负责处理用户界面、格式化、协议分析,此外如果核心层没有进行过滤的话,还必须负责过滤部分工作。监测程序大体结构如下图1:网络网络缓冲区过滤区过滤区缓冲区传输层网络层DLPI接口协议分析模块系统无关捕获模块用户交互模块其它监测程序用户程序包捕获用户层核心层图1监测程序结构2.2包捕获不同的操作系统实现的底层包捕获机制可能是不一样的,但从形式上看大同小异。数据包常规的传输路径依次为网卡、设备驱动层、数据链路层、IP层、传输层、最后到达应用程序。而包捕获机制是在数据链路层增加一个旁路处理,对发送和接收到的数据包做过滤/缓冲等相关处理,最后直接传递到应用程序。值得注意的是,包捕获机制并不影响操作系统对数据包的网络栈处理。2.2.1利用以太网的广播特性进行包捕获以太网数据传输通过广播实现,通常在同一个共享局域网的所有网络接口都有访问在物理媒体上传输的所有数据的能力,但是在系统正常工作时,应用程序只能接收到本主机为目标主机的数据包,其他数据包过滤后将被丢弃不作处理。该过滤机制可以作用在链路层、网络层和传输层这几个层次。链路层主要指网卡驱动程序判断所收到包的目标以太网地址,在系统正常工作时,一个合法的网络接口应该只响应这样的两种数据帧:·帧的目标区域具有和本地网络接口相匹配的硬件地址。·帧的目标区域具有广播地址。在接收到上面两种情况的数据包时,网络接口通过CPU产生硬件中断,操作系统进行中断处理后将帧中所包含的数据传送给网络层进一步处理。而其他情况下数据帧将被丢弃不作处理。网络层判断目标IP地址是否为本机所绑定的IP地址,如果不是本机所绑定IP地址,将丢弃这些IP数据报;如果符合本机1P地址则交给传输层处理。传输层中的TCP或者UDP判断目标端口是否在本机已经打开,如果没有打开,则抛弃这些包,否则将向应用层提交内容。要监测到流经网卡的不属于自己主机的数据,必须绕过系统正常工作的处理机制,直接访问网络底层。首先将网卡工作模式置于混杂(promiscuous)模式。当网络接口处于这种混杂模式时,该网络接口具备“广播地址”,它对所有接收到的帧都产生硬件中断以提醒操作系统处理流经该物理媒体上的每一个报文(绝大多数的网络接口具备置成promiscuous方式的能力)。操作系统直接访问数据链路层,截获相关数据,由应用程序如IP层,TCP层的协议对数据过滤处理,这样就可以监测到流经网卡的所有数据。监测程序工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。2.3包过滤网络信息监测将获取所有的网络信息,但在实际应用中,其中存在若干用户不关心的数据,或者称为垃圾数据。如果垃圾数据比重极大,将严重影响系统工作效率。事实上,网络监测模块过滤功能的效率是该网络监测的关键,因为对于网络上的每一数据包都会使用该模块处理,判断是否符合过滤条件。低效率的过滤程序会导致数据包丢失、来不及分析处理等。用户可以按特定的子网主机以及特定的协议端口如Http,FTP,E-mail等进行过滤,只将用户关心的敏感数据向上层提交,从而提高系统的工作效率。信息的简单过滤有如下几种。协议过滤:根据传输层和网络层中的特性过滤,如选择。TCP数据而非UDP数据。类型过滤:站过滤:根据MAC地址,筛选出某个工作站或服务器的数据。服务过滤:根据端口筛选特定类型服务。内容的过滤:根据收到信息的内容,选择性的数据过滤。本系统采用内容过滤的方法来实现论坛监测。3系统需求分析3.1互联网论坛监测的产生互联网发展迅速,并在日益趋向跨国界、多语种、分布式和多接入的态势。同时企业如何能够从海量的数据信息中获取民众焦点和社会舆论动向已经成为管理部门日常工作的重中之重。从小型公司员工上网浪费工作时间和公司资源,到商业间谍通过一封邮件将公司机密泄露,无不体现着网络监测的必要性。所以一种能够实时监测网络流量和网络传输信息,又能够通过网络信息中把色情和反动字眼的内容过滤的软件,是我们迫切需要的。因此互联网论坛内容监测系统的产生就显得尤为重要。它是当今网络发展的必然产物,也是未来网络的不可或缺的。3.2论坛内容监测系统的总体目标论坛监测系统总体目标:通过设计流量控制,身份验证,屏蔽各种端口等方法对用户上网、收发邮件、聊天和电脑游戏进行严格管理与控制;有效预防黑客、木马和病毒,进行反动,色情的信息。对用户上网行为的监测和管理事实上要配合一个复杂的网络系统体系去实现,首先要定义出了网络用户的类型,普通用户、管理员等都应有不同的网络权限去获得网络的资源。此外对用户的数据的监测就通过流控设备,了解所使用的网络服务和各个服务的流量,对敏感的流量和服务有必要进行抓包分析。互联网论坛内容监测系统能够自动获取目标论坛的发布内容,系统针对发帖作者、发帖时间、帖子URL、帖子标题和帖子正文等关键字段开放基于单个字段或是组合选项的热点查询功能,并能自动生成数据报告,从而帮助系统使用者真正实现对于社会热点的把握和社会动向的预期。3.2.1系统所需的环境配置拓扑图如下图2:论坛发布内容论坛发布内容目标论坛2目标论坛1目标论坛n定点深入挖掘信息获取/存储平台数据报告生成平台图2系统功能图从上图可知,互联网论坛监测系统所需要包括的两个独立的平台:数据获取/存储平台和数据报告生成平台。其实这两个平台都是起到方便客户查找的功能。数据获取和存储平台:接入互联网,对定点网站、论坛进行数据深入挖掘,基于发帖人、发帖时间、主题及正文进行分类检索与统计,对目标站点的信息提取率达到90%;专项针对目标论坛的信息发布进行内容获取,对目标论坛分组,基于论坛组进行高效的轮询式全文获取;采用纯文本方式存储,以最大限度节约空间。数据报告生成平台:以海量信息为基础,自动聚成目标论坛当前热点,并发布信息快照、生成数据报告。系统还应该需要:定点网站深入挖掘·网络终端浏览行为智能模拟·目标站点信息提取率达到90%·专项针对论坛发布内容获取·目标论坛分组,基于论坛组的高效轮询式全文获取此功能主要能够很快的建立目标论坛网站的目录,并根据需要定点某个网站。在这个定点网站中利用搜索,提取所需的信息。数据挖掘·关注热点查询·发帖人、发帖时间、主题及正文的分类检索与统计此功能进一步对某个网站进行信息的有针对性的很具体的搜索,达到信息的快速获取。信息聚类生成数据报告·以海量信息为基础·自动聚成目标论坛当前热点·热点发帖信息快照此功能是从论坛中的所有信息,自动筛选其热点信息供查找和阅读。3.2.2系统的流程图由以上对论坛监测的系统分析,要实现这些功能,关键技术就是实现抓包和过滤,因此得到该系统从开始抓包到最后匹配丢弃的一个流程图。如下图3:丢弃并报警正常抓包分析包匹配关键字是否图3系统流程图3.3系统功能分析数据包捕获功能论坛内容监测要实现抓包,就离不开Libpcap调用抓包库函数。所以先介绍Libpcap:Libpcap接口支持基于BSD数据包过滤器(BPF:BerkeleyPaeketFilter)的数据过滤机制。Libpcap库只支持BPF接口的内核过滤。如果主机上没有BPF机制,则所有的数据包都必须读取到用户空间后,再在Libpcap库中进行过滤处理,这样就会增加额外的处理负担,导致性能的下降。系统由网络接口卡、BPF和Libpcap组成。网卡部分监视共享网络中的所有包,BPF用过滤条件匹配监视到的包,若匹配成功则将之从网卡驱动的缓冲区复制到核心区。核心缓冲区分为两部分:存储缓冲区和复制缓冲区。存储缓冲区用于容纳过滤匹配成功后的数据包,复制缓冲区用于将包从核心缓冲区复制到用户缓冲区。当存储缓冲区满而复制缓冲区空时,BPF将两者交换。这样的设计使用户程序不需与网卡驱动程序交互。Libpcap完成了如下工作:·向用户程序提供抽象接口·根据用户要求生成过滤指令·管理用户缓冲区(用户程序不可见)·负责用户程序与内核的交互如图4所示:用户程序用户程序Llibpcap库函数用户缓冲区用户程序Llibpcap库函数用户缓冲区复制缓冲区存储缓冲区过滤器复制缓冲区存储缓冲区过滤器网络接口卡用户级内核级网络图4Libpcap工作流程图包过滤功能根据目前社会存在的各种问题及语言习惯,建立有害信息库,通过包捕获功能提取的IM软件传输的明文消息,将其与有害信息库中的关键词进行匹配,提取含有有害信息数据。如法轮功,带有色情的信息和图片。包过滤就离不开BerkeleyPacketFilter(BPF),即伯克利数据包过滤器,它提供了一种新的流量监测结构,性能比其它工具有显著提高。BPF工作原理:许多版本的UNIX都提供用户级别的网络监测功能,因为监测程序以用户级别进程工作。数据包的拷贝必须跨越内核/用户保护界限,这就需要使用名为包过滤器(packetfilter)的内核代理程序。BPF主要由两大部分组成:网络分接头(NetworkTap)和数据包过滤器(PacketFilter)。网络分接头从网络设备驱动程序处收集数据包拷贝,并传递给正在监测的应用程序。过滤器决定某一数据包是被接收还是拒绝,以及如果被接受,数据中的那些部分被拷贝给应用程序。如下图5:…………应用程序应用程序……应用程序应用程序协议栈缓存缓存缓存协议栈缓存缓存缓存过滤器过滤器过滤器过滤器过滤器过滤器桥接桥接BPF桥接桥接BPF链路层驱动器链路层链路层驱动器链路层驱动器链路层驱动器图5BPF组成结构图匹配报警功能根据任务的实时性要求,报警、记录日志、图形显示等功能应建立在不影响包捕获的基础上。当数据包匹配成功后,说明内容为有害的,因此该信息丢弃,并发出报警声。4论坛监测软件设计的总体方案互联网论坛监测系统使用的是用户/服务器的模式。做服务器端的多台机子在一个局域网内,组成目标论坛,接收来自其他网络的客户机的信息。做客户端的机子在另外的局域网内,发信息给目标论坛。服务器机子装上这个监测软件后,可以捕获到客户端机子向这台机子发的信息(帖子)实现监测功能。同时如果发的信息中含有发法轮功字眼等反动信息。该软件就自动删除该帖子实现过滤功能。并同时发出警报声。客户端机子和服务器端机子分别在各自的路由器网关下构成一个小型的内部局域网。他们分别有各自的出口网关。由此可得到它的拓扑图如下图6:HUBHUB目标论坛监听机PCHUBPC图6系统总体结构4.1论坛监测软件主要功能对外部网络的监测:根据具体网络大小和监测应用的范围有所不同而做些修改即可。通过监测机对网络中所有主机的数据进行检测,收集网络中的数据,当发现正常的数据流时,监测机不采取任何动作,当发现有敏感的数据时即可将其先隔离并保存下来,然后报警,通过管理员的操作和检验后再对用户pc加以处理。这样的工作流程对于中小型企业来说是比较适用,只需要一个监测软件即可,设备的投入也不大,效果也比较好。数据获取:·互联网论坛监测系统呈现简洁、归一化的操作界面,多线程获取网站发布数据。·在管理人员设定的遍历层数范围内,系统递归获取起始及随后页面中所有超链接所对应的内容。·系统在受限于上述遍历层数的同时,还能接受管理人员对于最大下载字节数与每次请求间隔时间的设置,从而避免因其内容获取操作而造成目标论坛的工作负载骤然增加。·接入互联网,对定点网站、论坛进行数据深入挖掘,基于发帖人、发帖时间、主题及正文进行分类检索与统计,对目标站点的信息提取率达到90%。专项针对目标论坛的信息发布进行内容获取,对目标论坛分组,基于论坛组进行高效的轮询式全文获取;采用纯文本方式存储,以最大限度节约空间。·显示当前已经获取帖子的发帖人、发帖时间、帖子位置、帖子标题、帖子URL等基本信息。内容过滤功能:包括对不需要监视的对象、内容、行为进行过滤(忽略监视),可针对3种对象(整个网络、分组、电脑)。·全部监视/不监视、只监视部分应用。根据不用管理需要,可设置为某些对象监视,某些对象不监视(比如管理员和老板没有必要被监视),某些用户应用监视,某些应用不监视。由于网页监视很多广告垃圾而且比较消耗硬盘空间等资源。·如果有人在观看网站的帖子后,想发表评论,如果评论中包含色情和反动的字眼就自动删除该帖子,并发出警报。·网站过滤白名单和黑名单功能。可设置只监视具体的一些网站,也可以忽略监视某些网站;比如一个公司里通常SINA这样的网站可能同时所有的人都有去看,如果都监视的话将相当浪费资源又内容重复,实际上也无意义和必要。因此采用过滤方法模糊控制模式去忽略对一些公共的东西过滤。比如输入SINA,将过滤全部包含SINA的所有URL访问,这叫做白名单过滤。对包含色情和反动信息的过滤叫做黑名单过滤。流量监视与限制:包括针对具体的对象,能够详细准确监视其发生的流量,并能够限制其占据的流量带宽。数据备份和配置管理:包括允许定义数据保存时间或删除过时的数据。数据、配置和日志的查看、打印、备份恢复功能。简单容易的数据备份方式和海量存储模式。支持监视内容和配置文件的海量模式备份、恢复。4.2论坛监测系统功能模块的描述对用户上网行为的监测和管理事实上要配合一个复杂的网络系统体系去实现,首先要定义网络用户的类型,普通用户、管理员等都应有不同的网络权限去获得网络的资源,因此就需要网管功能的软硬件了。此外对用户的数据的监测就只能通过流控设备去实现,了解所使用的各个服务的流量,对敏感的流量和服务有必要进行抓包分析。特别是对技术含量较高的企业有很大用途。本系统根据功能模块化分为后台和前台软件两部分。后台部分由主进程和主线程完成。主进程通过主控模块实现。主线程通过包捕获模块、解码模块、模式匹配模块和输出模块来完成。前台部分包括图形显示模块、命令模块。主控模块实现的功能包括所有模块的初始化、命令行解释、配置文件解释、建立主线程、关闭主线程。包捕获模块是主线程的主程序,它将数据包捕获后的处理交给解码模块。解码模块,定义不同的数据结构取得IP地址、TCP层的端口号以及信息实体等数据,在将这些数据填写到数据结构中供模式匹配模块来使用。解码模块把从网络上抓取的原始数据包,从下向上沿各个协议栈进行解码并填充相应的数据结构,以便模式匹配模块处理。模式匹配模块应用KWP算法将匹配字库与捕获到的IM信息进行匹配,提取有害信息,对有害信息进行定位。输出模块接收模式匹配模块匹配出的结果建立黑名单,根据输出类型分别分发到图形显示模块、日志模块及提供黑名单给网关计算机以便于拦截计算机拦截有害内容。命令模块将用户的信息传递给主控模块。图形显示模块显示目前的关键字和匹配成功的信息和信息的源IP地址、目的IP地址、端口号、ID号。日志模块实现各种报文日志功能,也就是把各种类型的报文记录到各科类型的日志中。系统功能模块图如下图7:图7系统功能模块5论坛监测软件的实现5.1运行环境和操作系统选择通过分析,后台软件选用RedHat7.2(Linux2.4内核)作为开发平台。主要因为:Linux网络功能强大,其本身是依靠网络技术发展的。Linux2.4内核对libpcap支持的比较好。并且可以得到libpcap的更新版本。目前的几种主流抓包软件都有支持Linux的版本,便于比较功能。Linux下的软件是开放式源代码产品,便于学习。基于开放式源代码的特性,系统中不会存在后门,安全性好。由于Window系统的图形开发功能强大,因此选择在Win2000professional上开发前台软件。5.2系统对软硬件配置的要求服务器端建议用户的计算机使用以下配置(或更高):CPU:Intel或兼容机硬盘:7200转/分,剩余空间>100M内存:建议512MB或更多鼠标:3D光电鼠键盘:标准104键MicrosoftWindowsNTServer4.0、Windows2000Server、MicrosoftWindowsNTServer企业版、Windows2000AdvancedServer及Windows2000DataCenterServer或者更高软件版本。客户端推荐配置:客户端要求不高,IE5.01以上或者兼容版本。5.3预期成果本设计预期成果是完成互联网论坛监测的功能并能够实现通过身份验证,实现客户端访问服务器时,可以通过服务器上的监测系统,把客户端的信息捕获到并实现过滤功能。提供本毕业设计开发的软件和毕业设计论文。5.4软件模块的实现主控模块:主进程功能通过主控模块完成,主控模块是系统的初始化进程。首先它负责解释命令行,它调用了getopt函数,来进行命令行的解析。如果命令行给出的参数不正确,会提示用户一个信息然后退出。如果命令行给出的参数正确,将参数相应的数据放在一个全局的缓冲区内。参数内容即过滤规则供包捕获模块使用。第二点建立socket,主控模块socket的处理主要是完成接收命令模块发送的消息,根据数据包的类型标志位分别处理。第三处理用户命令。·启动抓包:初始化抓包线程。·停止抓包:关闭抓包线程。·查看当前流量:打开系统中/pros/net/dev文件,从而获得网络接口的流量数据,然后将数据后发送给前台软件进行显示。·结束主程序:最后等待用户退出消息,结束该系统工作,完成应用退出时的释放资源工作。包捕获模块:包捕获模块是通过启动主线程来完成的。主线程启动后首先读取存放关键词的文件,将需要捕获的关键词放在一个全局的缓冲区内。第二步建立socket,主线程中的socket主要是完成数据包的捕获和匹配后,将信息按照定义的接口发送信息。第三步根据全局系统缓冲区中存放的命令参数,定义过滤规则,建立过滤器指令链表头,该数据结构详细介绍在后面。过滤规则中包括数据链路层网络传输类型、网络层IP地址范围以及传输层使用的端口号。第四步调用包捕获模块开始抓包。包捕获模块主要调用Libpcap完成用户层次的数据包截获工作。Libpcap库所提供的主要功能函数有pcap_open_live(),pcap_read(),pcap_compile(),pcap_setfilter(),pcap_close()。这5个接口函数的主要功能如下所述:pcap_open_live(),用来获得一个数据截获描述符,该描述符用于查看在网络上传输的数据包;pcap_read(),用于读取底层数据缓冲区中的数据包,并对捕获到的数据包用参数所设定的回调函数进行处理;pcap_compile(),用于生成过滤器指令链表;pcap_setfilter(),用于设定过滤器;pcapclose(),关闭相关的文件井释放对应资源。打开数据包截获设备,定义t是指向数据包截获设备描述符结构pcap的全局指针。该函数由查询当前系统可用的数据包截获设备,得到该设各描述符以及设置过滤器规则组成。结构pcap是实现数据包截获机制的一个关键数据结构。Structpcap{intfd;文件描述符,这里指数据包的描述符,即底层过滤器特殊文件描述符intsnapshot;快照,这里是所指定查看数据包的长度。intlinktype;底层数据链路层接口类型。inttzoff;时区与格林尼治时区的偏移量。intoffset;对应于不同对齐方式的偏移量。structpcap_sf;表示数据包转储文件的文件结构。structpcap_md;表示数据包截获机制状态和相关设备状态的结构。intbufsize;数据包缓冲区大小。u-char*buffer;数据包缓冲区的首地址。u-char*bf;缓冲区指针。intcc;用于计数目的的整数。u_char*pkt;用于特定函数目的的地址指针。structbyprogramfcode;为一指向过滤器程序代码的指针。charerrbuf[PCAP_ERRBUF_SIZE];用于存放错误信息字符串的数组。};过滤器程序用pcap_compile(),pcap_setfilter()函数和bpf_program数据结构来描述,该数据结构如下所示:Structbpf_program{U_intbf_len;这定这段指令程序的长度。Structbpf_insn*bf_insns;指向一个过滤器指令链表头的指针值。};程序的循环部分是读取打开的截获设备上的所有数据包,直到满足设置的最大截获数目。如果失败返回,则显示出错信息。由于最大截获数目设置为-1,该函数在无错误情况下,将进入永久循环过程中。解码模块:包捕获模块中,定义了从网络上抓取原始数据包后的处理函数。过程复杂,因此划分出解码模块专门对捕获的原始数据包进行处理。BPF是工作在数据链路层,按照以太网头结构取得数据包在该层中的信息。以太网头数据结构定义如下。根据数据结构中以太网类型一项可以继续判断是IP传输。structEtherHdr{unsignedcharether_dst[6]:目标网卡地址。unsignedcharether_src[6];源网卡地址。unsignedcharether_type[6];以太网类型。};去掉以太网头部信息可以得到IP层数据实体。IP层头部数据数据结构定义如下。分析该数据结构,可以很容易取出该数据流的源IP地址、目的IP地址、传输层协议类型。structip{unsignedintipversion:4;ipv4unsignedintip_length:4;IP包头长度unsignedchariptos;服务类型unsignedshortip_total_lengthIP数据包的总长度unsignedshortip_flags;标志位unsignedcharip_ttl;生存期unsignedcharip_protocol;传输层协议类型unsignedshortip_checksum;IP头的校验和unsignedintip_source;源IP地址unsignedintip_dest;目的IP地址};当解码模块按照TCP/IP格式取得数据传输体中的实际数据时(数据实体),需要按照一定的协议格式进行匹配处理。模式匹配模块模式匹配模块通过打开存取有害词库的文件提取并建立匹配字库。将匹配字库与从解码模块提取的信息实体内容进行字符串比较,比较算法使用KMP算法。模式匹配模块采用顺序匹配方式逐个匹配关键词,如果匹配成功退出该程序,如果不成功继续匹配直到匹配完所有的关键词。匹配算法部分因为采用KMP算法,所以编写生成NEXT数组函数和匹配函数组成。当匹配成功时调用处理模块完成报警、记录日志拦截计算机功能。图形显示模块该模块完成前台软件的所有工作。主要两大部份,一部分提供命令接口供用户使用,另一部分将数据存储,显示并进行报警。系统启动后,对网络进行初始化,与后台软件建立联系。当用户选择命令发送时,可以有启动抓包、结束抓包、传送流程三种选择。5.5论坛监测软件的对象关系图以下是该系统从管理员发出命令到抓包,分析数据,过滤数据,以及最后的发现有害数据报警的各个对象的关系图。如图8所示:管理员管理员命令日志报警显示前台软件后台接收对象报警数据图8系统对象关系图5.6论坛监测的关键代码6结果测试,性能分析6.1测试指标:启动包捕获。停止包捕获。捕获到非法数据后有显示功能。捕获到非法数据后有报警功能。捕获到非法数据后有日志功能。对黑名单用户的信息有显示、报瞥、日志功能。抓包和丢包率的测试。6.2测试环境针对图所示监测计算机所处的位置,设计了两种测试环境。分别用来测试监测计算机处于局域网络内部和局域网外部的监测效果。6.3监测计算机处于局域网内部示意图如下图9:图9局域网内部监听拓扑图图9局域网内部监听拓扑图目标论坛HUB监听机用户机26.3.1用户机和目标论坛配置这里我们把监测计算机处于局域网内部的这种情况做实验,配置如下:用户机2网卡的IP地址设为0,网关地址设为,DNS地址设为,用ipconfig/all查看它的MAC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论