




免费预览已结束,剩余35页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
厦门大学本科毕业论文本科毕业论文(科研训练、毕业设计)题 目:基于流量分析的网络监控系统姓 名:学 院:软件学院专 业:软件工程年 级:学 号:指导教师(校内): 职称: 年 月基于流量分析的网络监控系统【 摘要 】 当今社会,计算机网络已经影响到社会的政治、经济、文化、军事和生活的各个方面,然而网络给社会带来便利的同时也随之带来了安全和管理问题。随着计算机网络越来越复杂,网络管理己变得日益重要。例如对一个企业而言有些员工利用工作时间看新闻、玩游戏、聊天、听歌曲等等。这不仅消耗公司资源,而且影响公司效率、泄露公司机密、甚至丢失客户资源。网络流量分析系统作为网络管理的一个重要的基础系统,对网络的流量进行实时的监控,为后续的网络管理工作,网络黑客攻击防范工作起到了最重要的作用。我们所设计的基于流量分析的网络监控系统是基于Winpcap 进行开发的,采用Visual C+作为开发平台,MySQL 作为后台的数据库管理系统,提供良好的用户管理界面,可以实现对本地网络流量的实时监控(包括数字监控,流量监控等),从而对网络数据进行分析,并提供异常流量的报警功能。【 关键词 】网络监控 流量分析 WinpcapThe network traffic monitoring system based on the analysis【 Abstract 】 Nowdays, the computer network has already affected the political, economic, cultural, military and all aspects of social life,the computer network brings the convenience to the society however it brings security and management questions at the same time. As computer networks become more complex, network management has become increasingly. For example some staffs using the operating time read the news, play computer games, chat, listen to the song and so on. This not only consumption company resources, moreover the influence company efficiency, the revelation company secret, even loses the customer resources. Network flow analysis system, as an important foundation system of the network management, conducts a real-time monitoring to the network flow control, plays the most important role in the follow-up management of the network and network hackerscrime prevention. Based on the analysis of the network traffic monitoring system we designed is based on the Winpcap to develop, uses Visual C+ as a development platform, MySQL as the background database management system. It can achieved on real-time monitoring and statistical analysis on Local network flow,and provide exceptional flow warning function. 【 Key words 】 Network monitoring Flow analysis Winpcap目录第一章 引言71.1网络流量监控系统的研究意义1 271.2 网络流量监控系统的研究内容81.3 论文的组织结构8第二章 基本概念介绍92.1 Winpcap 协议介绍392.1.1 Winpcap 概念92.1.2 Winpcap 的功能及应用102.1.3 Winpcap进行网络数据包的捕获和过滤的步骤112.2以太网112.2.1 以太网基本概念112.2.2网络数据包捕获的原理132.3 Visual C+ 介绍4132.4 MySQL 简介142.5拒绝服务攻击简介6 716第三章 系统详细设计与实现183.1 系统开发目的及设计目标183.2 系统整体设计思想183.3 后台捕获分析模块详细设计5203.3.1 数据包的捕获原理203.3.2 对捕获的数据包的分析213.3.3 将分析的结果存入数据库223.4 流量分析系统的数据库设计233.4.1 数据库设计对整个系统的影响233.4.2 数据库的需求分析233.4.3 数据库的逻辑设计233.5 前台图形显示模块设计243.6 对异常流量的报警253.7 系统实现效果图25第四章 总结29致谢30参考文献31Contents Chapter 1 Introduction71.1 The significance of database design for flow analysis system71.2 The content of database design for flow analysis system81.3 The organizational structure of paper8Chapter 2 Basic concept92.1 Winpcap profile92.1.1 Winpcap concept92.1.2 Winpcap function and application102.1.3 The step of the Winpcap112.2 Ethernet profiles112.2.1 Ethernet basic concept 112.2.2 The network principles of packet capture132.3 Visual C+ profile132.4 MySQL profile142.5 Dos profile16Chapter 3 Detailed design and the realization of the system183.1 Systems development goals and design objectives183.2 Sytem overall design183.3 Detailed design for background capture analysis module203.3.1 The principles of packet capture203.3.2 Analysis of data packets213.3.3 Analysis results store223.4 Database design for flow analysis system233.4.1 Implications for the system233.4.2 Database needs analysis233.4.3 Database logic design233.5 Graphics modular design243.6 Warning of the abnormal253.7 System achieve results pictures25Chapter 4 Conclusion29Acknowledgement30References31第一章 引言1.1网络流量监控系统的研究意义1 2自20世纪90年代以来,随着Internet在全世界范围的普及,计算机网络已经逐渐成为了人们获取信息、发布信息的重要途径。全世界的计算机都将通过Internet联到一起,这些网络的发展使得大到国家经济命脉小到个人日常生活严重依赖于计算机网络。可以说,计算机网络,作为新世纪的重要工具,已经渗透到了社会生活中的各个领域,对我们的工作、学习、娱乐、经济, 以及生活中的各个方面,都有着深远的影响。同时,随着人们对网络信息系统以来的日益增强,网络正在逐步改变人们的工作方式和生活方式,成为当今社会发展的一个主题。在人类进入信息化时代的今天,人们对信息的安全传输、安全存储、安全处理的要求越来越显得十分迫切和重要,它不仅关系到战争的胜负,国家的安危,科技的进步,经济的发展,而且也关系到每个人的切身利益。但是,网络成为一把双刃剑,随着计算机网络技术的发展,各类网络规模的扩大,远程访问的增加,虚拟专用网(VPN)的出现和Internet 的普及,随之而来的就是网络的安全性问题。计算机网络在加速人类社会信息化的同时,也给信息安全保障带来了极大的挑战。网络犯罪已是屡见不鲜,呈逐年上升趋势。因此,随着电子商务、电子现金、数字货币,网络银行等业务的兴起以及各种专用网的建设,伴随着这些业务而产生的互联网和网络信息的安全问题,也已成为人们关注的热点问题。基于流量分析的网络监控系统,就是在这样的背景下产生的。所有的有关于网络安全监控的系统及研究,都是以流量的监控分析作为基础的,网络流量分析是最基本、底层的工作,是网络管理中最为基础的部分。在网络流量分析的基础上,我们可以有效的监控和分析网络访问量,甚至拒绝各种黑客攻击。它的主要意义在于实现了网络监控。随着内部网络的规模与容量的日渐扩大,保持系统的正常运作将会变得越来越重要。网络监控能使系统及时地发现网络流量异常的现象,使服务器在发现非法入侵后能立即做出反应,来保护自己的服务器不被破坏,以求获得安全性的同时,提高网络性能。1.2 网络流量监控系统的研究内容在本课题中,基于流量分析的网络监控系统是以监控用户网络流量情况、防范黑客攻击进行入侵检测为主要目的而进行开发的。基于Winpcap 协议来完成网络数据包的捕获,通过对所捕获数据包的内容进行统计分析,完成对网络流量的监控分析和对可能发生的拒绝服务攻击进行检测等功能。基于流量分析的网络监控系统是基于以太网进行开发,利用Winpcap 协议进行工作,采用Visual C+作为开发平台,MySqL 作为后台的数据库管理系统,提供良好的用户管理界面,可以实现对本地网络流量的实时监控、统计分析,并提供异常流量的报警功能,从而能对网络中可能存在的拒绝服务攻击进行检测。系统使用C 语言编写后台监控程序和前台的界面显示,MySqL 作为流量分析系统的数据库管理系统,以MySql 数据库作为前后台交互的中间层。1.3 论文的组织结构基于流量分析的网络监控系统的论文组织结构如下: 从第二章起我将从以下几个方面进行说明: 第二章、介绍流量分析系统基本的概念和相关的技术知识; 第三章、介绍系统的详细设计方案,实现方法和实验结果分析等; 第四章、全文总结。第二章 基本概念介绍由于本基于流量分析的网络监控系统是基于Winpcap 协议进行开发,在以太网中进行工作,采用Visual C+作为开发平台,MySQL 作为后台的数据库管理系统,从而对网络中的异常数据进行检测和报警,因此本章将从Winpcap协议、以太网、Visual C+、MySQL、拒绝服务攻击等几个方面分别进行介绍。2.1 Winpcap 协议介绍32.1.1 Winpcap 概念Winpcap是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows操作平台上来实现对底层包的截取过滤。Winpcap为用户级的数据包提供了Windows下的一个平台。Winpcap是BPF模型和Libpcap函数库在Windows平台下网络数据包捕获和网络状态分析的一种体系结构,这个体系结构是由一个核心的包过滤驱动程序,一个底层的动态连接库Packet.dll和一个高层的独立于系统的函数库Libpcap组成。底层的包捕获驱动程序实际为一个协议网络驱动程序,通过对NDIS中函数的调用为Win95、Win98、WinNT、和Win2000提供一类似于UNIX系统下BerkeleyPacketFilter的捕获和发送原始数据包的能力。Packet.dll是对这个BPF驱动程序进行访问的API接口,同时它有一套符合Libpcap接口(UNIX下的捕获函数库)的函数库。Winpcap结构如图21所示:Winpcap包括三个部分:第一个模块NPF(NetgroupPacketFilter),是一个虚拟设备驱动程序文件。它的功能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统特有的代码;第二个模块packet.dll为win32平台提供了一个公共的接口。不同版本的Windows系统都有自己的内核模块和用户层模块。Packet.dll用于解决这些不同。调用Packet.dll的程序可以运行在不同版本的Windows平台上,而无需重新编译;第三个模块Wpcap.dll是不依赖于操作系统的。它提供了更加高层、抽象的函数。 图21 Winpcap结构图packet.dll和Wpcap.dll:packet.dll则直接映射了内核的调用。Wpcap.dll提供了更加友好、功能更加强大的函数调用。Winpcap的优势提供了一套标准的抓包接口,与libpcap兼容,可使得原来许多UNIX平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于NPF内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。2.1.2 Winpcap 的功能及应用Winpcap 可以为为win32 应用程序提供访问网络底层的能力。它提供了以下的各项功能: (1) 捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数据包; (2) 在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉; (3) 在网络上发送原始的数据包; (4) 收集网络通信过程中的统计信息。2.1.3 Winpcap进行网络数据包的捕获和过滤的步骤Winpcap对数据包的捕获大致流程如如图22所示:(1)打开网卡,并设为混杂模式。(2)回调函数 Network Tap 在得到监听命令后,从网络设备驱动程序处收集数据包把监听到的数据包负责传送给过滤程序。(3)当 Packet filter 监听到有数据包到达时,NDIS 中间驱动程序首先调用分组驱动程序,该程序将数据传递给每一个参与进程的分组过滤程序。(4)然后由 Packet filter 过滤程序决定哪些数据包应该丢弃,哪些数据包应该接收,是否需要将接收到的数据拷贝到相应的应用程序。(5)通过分组过滤器后,将数据未过滤掉的数据包提交给核心缓冲区。然后等待系统缓冲区满后,再将数据包拷贝到用户缓冲区。监听程序可以直接从用户缓冲区中读取捕获的数据包。(6)关闭网卡。图22 Winpcap数据包捕获流程2.2以太网2.2.1 以太网基本概念以太网是当今现有局域网采用的最通用的通信协议标准,组建于七十年代早期。Ethernet(以太网)是一种传输速率为10Mbps 的常用局域网(LAN)标准。在以太网中,所有计算机被连接一条同轴电缆上,采用具有冲突检测的载波感应多处访问(CSMA/CD)方法,采用竞争机制和总线拓朴结构。基本上,以太网由共享传输媒体,如双绞线电缆或同轴电缆和多端口集线器、网桥或交换机构成。在星型或总线型配置结构中,集线器/交换机/网桥通过电缆使得计算机、打印机和工作站彼此之间相互连接。以太网具有的一般特征概述如下: (1)共享媒体:所有网络设备依次使用同一通信媒体。(2)广播域:需要传输的帧被发送到所有节点,但只有寻址到的节点才会接收到帧。(3)CSMA/CD:以太网中利用载波监听多路访问/冲突检测方法(Carrier Sense Multiple Access/Collision Detection)以防止twp 或更多节点同时发送。(4)MAC 地址:媒体访问控制层的所有Ethernet 网络接口卡(NIC)都采用48 位网络地址。这种地址全球唯一。Ethernet 基本网络组成: 共享媒体和电缆:10BaseT(双绞线),10Base-2(同轴细缆),10Base-5(同轴粗缆)。转发器或集线器:集线器或转发器是用来接收网络设备上的大量以太网连接的一类设备。通过某个连接的接收双方获得的数据被重新使用并发送到传输双方中所有连接设备上,以获得传输型设备。网桥:网桥属于第二层设备,负责将网络划分为独立的冲突域获分段,达到能在同一个域/分段中维持广播及共享的目标。网桥中包括一份涵盖所有分段和转发帧的表格,以确保分段内及其周围的通信行为正常进行。交换机:交换机,与网桥相同,也属于第二层设备,且是一种多端口设备。交换机所支持的功能类似于网桥,但它比网桥更具有的优势是,它可以临时将任意两个端口连接在一起。交换机包括一个交换矩阵,通过它可以迅速连接端口或解除端口连接。与集线器不同,交换机只转发从一个端口到其它连接目标节点且不包含广播的端口的帧。以太网协议:IEEE 802.3 标准中提供了以太帧结构。当前以太网支持光纤和双绞线媒体以太网支持下的四种传输速率: 10 Mbps 10Base-T Ethernet(802.3) 100 Mbps Fast Ethernet(802.3u) 1000 Mbps Gigabit Ethernet(802.3z)) 10 Gigabit Ethernet IEEE 802.3ae 2.2.2网络数据包捕获的原理以太网(Ethernet)具有共享介质的特征,信息是以明文的形式在网络上传输,当网络适配器设置为监听模式(混杂模式,Promiscuous)时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包。IEEE802.3 标准的以太网采用的是持续 CSMA 的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截的我们所要的信息,这是捕获数据包的物理基础。以太网是一种总线型的网络,从逻辑上来看是由一条总线和多个连接在总线上的站点所组成各个站点采用上面提到的 CSMA/CD 协议进行信道的争用和共享。每个站点(这里特指计算机通过的接口卡)网卡来实现这种功能。网卡主要的工作是完成对于总线当前状态的探测,确定是否进行数据的传送,判断每个物理数据帧目的地是否为本站地址,如果不匹配,则说明不是发送到本站的而将它丢弃。如果是的话,接收该数据帧,进行物理数据帧的 CRC 校验,然后将数据帧提交给LLC 子层。网卡具有如下的几种工作模式:1) 广播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。2)多播传送(MultiCast Model):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。3)直接模式(Direct Model):工作在直接模式下的网卡只接收目地址是自己 Mac地址的帧。4)混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧。如果采用混杂模式,一个站点的网卡将接受同一网络内所有站点所发送的数据包这样就可以到达对于网络信息监视捕获的目的。2.3 Visual C+ 介绍4C 语言是近年来在国内外得到迅速推广应用的一种计算机语言,C 语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。因此,C 语言特别适合于编写系统软件。Miscrosift Visual Studio 是微软公司出品的创建高性能解决方案的最有效的工具之一。Visual Studio 主要包括Visual C+,Visual Bacic,Visual FoxPro 等。其中,Visual C+(简称VC 或VC+),是基于C 和C+语言,主要是由MFC 组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说Visual C+在Windows 平台无所不能。Visual C+是Windows 编程的主要工具,与Windows 的紧密结合使它在软件底层开发上占有非常大的优势。Visual C+具有如下优点:与Windows 的紧密结合、强大的类库支持和类改造能力、高效率的运行速度。Visual C+ 的适用范围及特点: (1)Visual C+主要是针对Windows 系统,适合一些系统级的开发,可以方便实现一些底层的调用。在VC 里边嵌入汇编语言很简单。(2)Visual C+主要用在驱动程序开发(3)Visual C+执行效率高,当对系统性能要求很高的时候,可用Visual C+开发。(4)Visual C+主要适用于游戏开发(5)Visual C+多用于单片机,工业控制等软件开发,如直接对I/O 地址操作,就要用C+。(6)Visual C+适用开发高效,短小,轻量级的COM 组件,DLL.比如WEB 上的控件。(7)Visual C+可以开发优秀的基于通信的程序。(8)Visual C+可以开发高效灵活的文件操作程序。(9)Visual C+可以开发灵活高效的数据库操作程序。(10)Visual C+是编写CAD 软件的最主要的选择,包括AUTOCAD,UG 的二次开发。(11)Visual C+在多线程、网络通信、分布应用方面,VC+有不可比拟的优势。2.4 MySQL 简介数据库是与日常应用紧密相连的,在没有出现数据库之前,人们通过手工记录处理各种信息。当需要记录处理的信息非常多时,手工处理效率就显得及其低下了。比如病人到医院就医,需要通过挂号、就诊、买药、住院、治疗、康复等一系列程序。挂号就要登记病人姓名、性别、年龄等情况。买药的时候医院依据药单从成千上万种药物中挑出符合要求的药品, 需要知道药的品名、具体位置、库存多少、存取多少等等。如果病人很多,医院选药就很麻烦了。如果手工处理,工作量大,而且有可能调拿错药。这时如果通过数据库处理,只需简单地输入药品名就马上可以知道具体位置、库存还有多少等详细情况。这样是不是很方便、提高了效率,并且还避免了拿错药的情况。现在每一个人的生活几乎都离不开数据库,如果没有数据库,很多事情都会变得非常棘手,也许根本无法做得到。银行、大学和图书馆就是几个严重依赖数据库系统的地方。在互联网上,使用搜索引擎、在线购物甚至是访问网站地址都离不开数据库。一个数据库通常都安装在称为数据库服务器的计算机上。目前市场上运行最快的SQL (Structured Query Language 结构化查询语言) 数据库之一就是MySQL Server。MySQL,出自瑞典小公司MySQL 公司的开放源码的数据库软件,目前对数据库老牌厂商Oracle, IBM, Microsoft 以及Sybase 等公司产生威胁。它同样具有良好的可靠性、安全性和易用性,是大规模联机事务处理、数据仓库和电子商务应用程序的优秀数据库平台。MySQL 提供了其它数据库少有的编程工具,而且MySQL 对于商业和个人用户是免费的。MySQL 是大规模联机事务处理、数据仓库和电子商务应用程序的优秀数据库平台。据Evans Data 统计,在过去半年中,开放源代码数据库开发者的数量增长了20%以上。MySQL 的使用量再过去半年中更增长了25%,成为数据库领域使用最多的产品。目前有44% 的开放源代码数据库开发人员在使用MySQL。如今,包括Siemens 和Silicon Graphics 这样的国际知名公司也开始把MySQL 作为其数据库管理系统,这就更加证明了MySQL 数据库的优越性能和广阔的市场发展前景。MySQL 数据库最主要的两大特点就是开源和免费,此外,它还具有以下主要特点: (1) 同时访问数据库的用户数量不受限制; (2) 可以保存超过50,000,000 条记录; (3) 是目前市场上现有产品中运行速度最快的数据库系统; (4) 用户权限设置简单、有效。由于MySQL 本身并不像MS SQL Server 那样提供图形化显示界面,所以为了在开发过程中显示方便,我们还可以装上一些MySQL 的插件,比如MySQL Front,这是一款小巧的管理MySQL 的应用程序。主要特性包括多文档界面,语法突出,拖拽方式的数据库和表格,可编辑/可增加/删除的域。可编辑/可插入/删除的记录,可显示的成员,可执行的SQL 脚本,提供与外程序接口,保存数据到CSV 文件等。2.5拒绝服务攻击简介6 7DoS 是Denial of Service 的简称,即拒绝服务,造成DoS 的攻击行为被称为DoS 攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS 攻击有计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽, 最后导致合法的用户请求就无法通过。连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS 攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS 主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在Internet 上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。 DDoS又把DoS又向前发展了一大步,这种分布式拒绝服务攻击是黑客利用在已经侵入并已控制的不同的高带宽主机(可能是数百,甚至成千上万台)上安装大量的DoS服务程序,它们等待来自中央攻击控制中心的命令,中央攻击控制中心在适时启动全体受控主机的DoS服务进程,让它们对一个特定目标发送尽可能多的网络访问请求,形成一股DoS洪流冲击目标系统,猛烈的DoS攻击同一个网站。在寡不敌众的力量抗衡下,被攻击的目标网站会很快失去反应而不能及时处理正常的访问甚至系统瘫痪崩溃。可见DDoS与DoS的最大区别是人多力量大。DoS是一台机器攻击目标,DDoS是被中央攻击中心控制的很多台机器利用他们的高带宽攻击目标,可更容易地将目标网站攻下。另外,DDoS攻击方式较为自动化,攻击者可以把他的程序安装到网络中的多台机器上,所采用的这种攻击方式很难被攻击对象察觉,直到攻击者发下统一的攻击命令,这些机器才同时发起进攻。可以说DDoS攻击是由黑客集中控制发动的一组DoS攻击的集合,现在这种方式被认为是最有效的攻击形式,并且非常难以抵挡。 无论是DoS攻击还是DDoS攻击,简单的看,都只是一种破坏网络服务的黑客方式,虽然具体的实现方式千变万化,但都有一个共同点,就是其根本目的是使受害主机或网络无法及时接收并处理外界请求,或无法及时回应外界请求。其具体表现方式有以下几种: (1)制造大流量无用数据,造成通往被攻击主机的网络拥塞,使被攻击主机无法正常和外界通信。 (2)利用被攻击主机提供服务或传输协议上处理重复连接的缺陷,反复高频的发出攻击性的重复服务请求,使被攻击主机无法及时处理其它正常的请求。 (3)利用被攻击主机所提供服务程序或传输协议的本身实现缺陷,反复发送畸形的攻击数据引发系统错误的分配大量系统资源,使主机处于挂起状态甚至死机。第三章 系统详细设计与实现前面我们对基于流量分析的网络监控系统的进行了分析,并对相关的技术进行了介绍,在本章中我们将给出详细的设计方案及实现效果。3.1 系统开发目的及设计目标本流量分析系统将用来动态检测子网内的网络流量,实现针对不同网络协议和不同网络服务的相关数据包流量的实时分析,提供图形化分析工具,把分析所得的结果通过折线图图形化的界面显示出来,并将检测数据保存到数据库。在监视网络流量的基础上,通过制定一定的监控策略,对网络环境中出现的流量异常情况,用户可以自主查询数据包的具体信息,从而使用户能及时的采取相应的预防或补救的措施。3.2 系统整体设计思想根据流量分析系统的开发目的及设计目标,将系统定位于一个包含捕获分析、统计入库、前台显示(数据显示、图形显示)三大模块的综合系统。系统主界面如图31所示:图31 网络流量监控系统主界面其中,捕获分析模块是系统的后台运行程序,主要负责的是,通过使用Winpcap 协议, 对通过所监听的网络适配器的所有数据包进行捕获、分析,这一部分主要采用Visual C+来编写,由于没有只是一些底层的操作,而且没有对所捕获的数据进行显示的需求,所以编写的是控制台下的程序。统计入库模块是基于前一个捕获分析模块所捕获并且分析过的数据包,对得到分析结果的数据包进行分类统计(包括基于不同网络协议或者不同网络服务),并把统计的结果存入到MySQL 数据库中,以供前台显示程序调用。该模块主要的任务就是MySQL 数据库中建立好用于存储捕获分析模块分析所得的结果的数据库及指定的表格,建立好Visual C+对MySQL数据库的连接,最后就是将所得的结果存入指定的数据库中。图形监控模块是基于前一个统计入库模块中存入MySQL 数据库中相应的表格中的统计数据,将前面统计入库的数据用图形化显示出来流量分析的结果来,方便用户直观的看到网络流量的具体状况。警报数据查询是基于已存入MySQL数据库中的统计数据,让用户用过报警数据设置自主的查询异常数据,从而有效的对攻击做出有效的防范。系统的总体流程大致是:用户启动程序,后台捕获分析模块对指定的网络适配器进行监听,当有数据包通过网络适配器的时候即被程序所捕获,程序立即对捕获的数据包进行分析,并将分析所得的结果统计后存入数据库中,前台主程序同时查询到刚刚存入数据库的统计数据记录,将其读出,并用图形化的形式显示在用户界面上。3.3 后台捕获分析模块详细设计53.3.1 数据包的捕获原理数据包的捕获是本系统中最为重要的一个环节,因为整个流量分析系统的所有后续工作都是以数据包的捕获作为前提的,都是以所捕获的数据包作为基础,进而才有在此基础上的分析、统计、存储、显示,报警等等后续的工作。捕获数据包的具体步骤如下: (1)获得网络接口列表通常, 一个基于WinPcap 的应用程序所要做的第一件事, 就是获得适合的网络接口的列表. Libpcap 中的pcap_findalldevs()函数就是用来获得适合的网络接口的列表的,返回一个pcap_if 结构的列表。由pcap_findalldevs() 函数返回的pcap_if 结构也包含了一个pcap_addr 结构的列表, 它记录了以下信息: 1. 接口的地址列表2. 接口的掩码列表(与地址列表一一对应) 3. 接口的广播地址列表(与地址列表一一对应) 4. 目标地址列表(与地址列表一一对应) (2)打开捕捉设备使用函数pcap_open_live() 来打开一个捕捉设备. 函数原型: pcap_t * pcap_open_live (char *device, int snaplen, int promisc, int to_ms, char *ebuf) pcap_open_live()的第四个参数(to_ms)定义了采样的间隔,在本系统中将此参数设置为1000,即系统捕获数据包进行分析统计的时间间隔是1 秒。流量监控系统监控所得的结果都是每秒钟通过的数据包的流量。(3)设置过滤器过滤数据的函数是pcap_compile() 和pcap_setfilter()来实现的pcap_compile() 和pcap_setfilter()是用来编辑过滤器和设置过滤器的pcap_compile()来编译一个过滤设备,它通过一个高层的boolean 型变量和字串产生一系列的能够被底层驱动所解释的二进制编码。boolean 表示语法能够在这个文件的过滤表示语法中找到。pcap_setfilter() 用来联系一个在内核驱动上过滤的过滤器,这时所有网络数据包都将流经过滤器,并拷贝到应用程序中。(4)捕捉数据包pcap_dispatch() 或者pcap_loop() 函数都可以用来捕捉数据包。这两个函数非常相似,pcap_dispatch() 将会在超时后直接返回,而pcap_loop() 则一定要等到一定数量的数据包被处理了以后才会返回,也可以用pcap_next_ex()来代替pcap_loop()来捕获数据包。以下捕获数据包的主要代码:/* 开始捕获数据包*/ pcap_loop(adhandle, 0, packet_handler, NULL); 其中:packet_handler 是处理包的函数(5)保存捕获的数据包Winpcap为我们提供了很多API 来将流经网络的数据包保存到一个堆文件并读取堆的内容。系统中采用pcap_live_dump 将数据写到文件。pcap_live_dump 有三个参数:一个文件名,和一个该文件允许的最大长度还有一个参数是该文件所允许的最大包的数量。对这些参数来说0 意味着没有最大限制。这里,我们可以在调用pcap_live_dump()前设置一个过滤器来定义哪些数据报需要存储,并且可以用pcap_live_dump_ended()来等检查是否数据存储完毕。需要说明的是,pcap_live_dump()是Winpcap 所特有的,而且只能够应用于Win32 环境。(6) 收集网络流量的统计信息WinPcap 的另一高级功能:收集网络流量的统计信息。程序必须打开一个网卡并用pcap_setmode()将其设置为统计模式。在统计模式下编写一个程序来监视TCP 流量只是几行代码的事情在设置为统计模式前可以设置一个过滤器来指定要捕获的协议包。如果没有设置过滤器那么整个网络数据都将被监视。一旦设置了过滤器就可以调用pcap_setmode() 来设置为统计模式,之后网卡开始工作在统计模式下。主要的代码如下: /* 将网卡设置为统计模式*/ pcap_setmode(fp, MODE_STAT); 3.3.2 对捕获的数据包的分析对前面所捕获的数据包,我们都要进行一定的分析,才能得到我们所要的结果。可以根据系统的开发目的及设计目标来确定分析的具体深入程度。本系统中是以针对不同网络协议和不同网络服务的相关数据包流量的实时分析为主要目的,所以只需对数据包分析出每个数据包的所基于的网络协议类型和网络服务的类型(即端口号)这一层面上。最后再对分析出来的数据包按照不同的网络协议类型或者不同的网络服务类型进行分类统计。程序中根据IP 头部的proto 字段的数值来判断所属的网络协议类型。具体分析的主要代码如下:/根据通讯协议(TCP,UDP,ICMP)来统计数据包的量/协议类型tcp:6,udp:17,icmp:1 /ippacknum=ippacknum+1; if(ih-proto=6)/TCP 包tcppacknum=tcppacknum+1; else if(ih-proto=17)/UDP 包udppacknum=udppacknum+1; else if(ih-proto=1)/ICMP 包icmppacknum=icmppacknum+1; /根据TCP 的标志(SYN)来判断是否为新建连接if(th-th_flags=2) tcpnewnum=tcpnewnum+1; 3.3.3 将分析的结果存入数据库前面程序已经捕获的数据包进行分析,并且根据数据包所属的不同的网络协议类型或者不同的网络服务进行了分类,并且用参数进行各种数据包的数量的统计,现在这个阶段就是要将这些统计的结果存入到数据库中。首先,要在程序中建立对MySQL 数据库的初始化连接,在程序中主要通过一段mysqldb_init()的函数来实现,调用MySQL 提供的API 中的mysql_init、mysql_real_connect 等函数来连接数据库,连接成功后,在指定的数据库中建立用来存储统计数据的表,然后每隔一秒钟,将这一秒钟所统计的流量数据存入到数据库中的这个表中。其中主要的代码如下: /连接MySQL 数据库mysql_real_connect( m_mysql, ,root, 111000, szTargetDSN, 0, NULL, 0 )3.4 流量分析系统的数据库设计3.4.1 数据库设计对整个系统的影响由于在本系统中,数据库扮演着一个中介桥梁的作用,是用来连接贯穿前台后台程序的重要模块,系统中的所有的数据都要在这个数据库中进行存入、中转、输出等等。所以说,数据库设计的好坏,直接影响到整个系统运行的效率高低。如果说,后台的数据包捕获模块是系统成功运行的前提的话,那么数据库存储模块则是整个系统的中心,是系统最关键的模块。3.4.2 数据库的需求分析数据库中存储数据最重要的部分就是每秒钟通过网络适配器的各种类型的数据包的数量的即时数据。所以,数据库中主要用两个表来存储这些数据,分别存储的是基于不同网络协议类型的统计数据和基于不同网络服务类型的统计数据,还有一个表就是用来存储报警数据。3.4.3 数据库的逻辑设计根据数据库的需求分析的结果,把整个流量分析系统的数据库分为两大模块: (1)基于不同网络协议类型的数据表portflowtable 用来存储捕获分析模块所分析统计的结果,主要存储的是每一次采样的时间、数据包的源IP 地址、目标IP 地址、IP 包数、TCP 包数、TCP-NEW-SESSION 包数、UDP 包数、ICMP 包数。如表31所示:意义字段数据类型时间timeChar(20)源IP地址srcipChar(20)目标IP地址dstipChar(20)IP包数ipnumint(11)TCP包数tcpnumint(11)TCP-NEW-SESSION 包数tcpnewnumint(11)UDP 包数udpnumint(11)ICMP 包数icmpnumint(11)表3-1 网络流量表(2) 报警数据的数据表报警数据的数据表的数据库设计与基于不同网络协议类型的数据表相同,主要用来存储系统检测到的异常流量数据,将其备份以作分析之用。3.5 前台图形显示模块设计由于在本系统中,前台图形显示模块主要的功能是用来将前面模块捕获、分析、统计所得的结果从数据库这个存储谋介中读取出来,然后将这些统计数据结果用图形化的形式表示出来,图表显示模块同样也是系统中最重要的模块之一。前面两个模块中所获得的数据都是数字化的存储在数据库中的,用户无法直接获知系统运行所监视的网络流量的情况究竟如何,只有通过这一模块才能了解到流量监控系统真正的工作情况。系统中的所有的数据都要在这个模块中显示出来,才能显出系统真正所做到的工作。所以说,此模块运行的好坏,直接影响到整个系统运行的效果。如果说,后台的数据包捕获模块是系统成功运行的前提的话,数据库存储模块则是整个系统的中心,而前台图形显示模块则是系统中最直观,最直接与用户打交道的模块,设计的重点在于美观、易用。具体分析的主要代码如下:/CRect rect;/GetDlgItem(IDC_CENTER)-GetWindowRect(&rect);/ScreenToClient(&rect);CNetTrafficDlg *trafficDlg; /创建对象trafficDlg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 业务渠道合作开发协议书
- 外卖餐饮平台合作协议
- 场地租赁协议条款说明提示
- 农民渔业合作协议
- 公司会议室租赁与使用协议
- 物业管理合同范本与执行标准
- 房屋租赁合同范本解读与注意事项
- 家庭农场水利设施建设施工协议
- 企业采购合同审查表合规性全面审查模板
- 农业产业渔业合作经营协议
- 2025医院防控试题及答案
- 2025江苏苏州昆山国创投资集团有限公司第二期招聘10人笔试参考题库附带答案详解
- 2025年秋季学期幼儿园园务工作计划
- 2025-2026学年浙教版(2024)初中科学七年级上册教学计划及进度表
- 计算机操作员中级考试题库及答案解析
- 2025-2026学年第一学期校园“1530”安全教育记录表
- 2025-2026学年译林版(三起)(2024)小学英语三年级上册教学计划及进度表
- 二+宁夏闽宁镇:昔日干沙滩今日金沙滩(教学设计)-【中职专用】高二语文上(高教版2023职业模块)
- 【艾青诗选】批注
- 江西美术出版社(赣美版)美术四年级上册全册课件
- MOOC 研究生学术规范与学术诚信-南京大学 中国大学慕课答案
评论
0/150
提交评论