基于旁路的web访问监控系统的设计与实现

基于旁路的web访问监控系统的设计与实现

ID:28845750

大小:970.24 KB

页数:59页

时间:2018-12-14

上传者:U-25918
基于旁路的web访问监控系统的设计与实现_第1页
基于旁路的web访问监控系统的设计与实现_第2页
基于旁路的web访问监控系统的设计与实现_第3页
基于旁路的web访问监控系统的设计与实现_第4页
基于旁路的web访问监控系统的设计与实现_第5页
资源描述:

《基于旁路的web访问监控系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

论文题目:基于旁路的Web访问监控系统的设计与实现学生姓名:指导教师:摘要在实验室或者办公室,管理员总是希望学生或员工可以专心自己的任务,而不去浏览观看与学习或工作无关的网页或网站。因而,当学生或员工输入无关网址时,管理员的服务器可以抢在其打开网页前与其进行“握手”并发送管理员提前准备好的页面,从而阻止了其正常访问,提高了学习工作效率。首先介绍了不良网站对于正常网络的入侵以及危害,通过把网卡设置为混杂模式实现了捕获数据包的操作,从而有效的对于整个网络进行监听,通过IP包过滤模块把HTTP中除GET包和POST包过滤掉,提取出URL地址,然后与事先准备的数据库黑名单网址进行匹配,来判断出哪些是对工作或学习无关的网址,进而拦截其访问,达到了净化网络环境的目的。最后,针对该系统实施了详细的性能和功能的测试,使功能完整,且系统的性能有一定的优化。关键词:混杂模式捕获数据包网页 Title:BaseonthebypasswebaccessmontitoringsystemdeisignandimplementationName:Supervisor:AbstractInthelaboratoryoroffice,administratorsoremployeescanalwaysexpectstudentstoconcentrateontheirowntasks,ratherthantobrowsewatchandstudyorworkunrelatedpagesorsites.Thus,whenstudentsorstaffindependent oftheinputURL,theserveradministratorcangrabitonthepageinfrontoftheir"handshake"preparedinadvanceandsendtheadministratorpage,thuspreventingitsnormalaccess,improvethelearningefficiency.Firstintroducedthebadsitesfornormalnetworkintrusionanddamage,thecardissetbytheoperatortoachieveapacketcapturetopromiscuousmode,soastoeffectivelymonitortheentirenetworkthroughIPpacketfilteringmoduleinadditiontotheHTTPGETandPOSTpackagepacketfiltertoextracttheURLaddress,andthenpreparedadatabasewithURLblacklistmatchingtodeterminewhichisunrelatedtoworkorstudysite,thusblockingitsaccesstothenetworkenvironmenttoachievethepurposeofpurification.Finally,adetailedembodimentofthesystemfortestingtheperformanceandfunctionality,sothatthefunctionalintegrityandperformanceofthesystemwithsomeoptimization.KEYWORDS:Librarymanagementsystem;Cache;efficient 1绪论11.1课题背景61.2国内外发展现状61.3本文主要任务81.4论文的组织结构82.相关知识理论92.1OSI参考模型92.2TCP/IP体系结构102.3OSI与TCP/IP的比较112.4HTTP协议122.5IP协议132.6数据捕获函数的一些函数152.7本章小结163.需求分析183.1可行性分析183.1.1技术可行性183.1.2经济可行性183.1.3社会可行性193.2系统需求分析193.2.1功能需求193.2.2性能需求233.2.3运行需求243.2.4安全需求分析244系统设计264.1网络监听模块264.2拦截策略控制模块274.3IP包分析模块284.3.1IP包过滤模块28 4.3.2网址匹配模块314.4网页拦截模块324.5数据更新模块344.6消息提示模块355.系统测试375.1系统开发环境375.2系统测试376.总结与展望406.1总结406.2展望41 1绪论1.1课题背景随着计算机网络的快速发展,给人们的工作和生活带来了极大的便利。1970年之后,网络环境日益恶化,网络信息安全第一次作为一个独立的学科来进行研究,但是当时侧重的是研究针对类似于访问控制安全策略、访问数据加密特定信息系统的一些控制手段。1990年之后,网络病毒、黑客攻击事件泛滥,网络非法入侵问题已经在全球范围内泛滥,并且呈现出越演越烈的趋势。虽然网络非法入侵问题给各个企业带来了不同程度的损害,但是计算机网络搭建了一个互相沟通学习的环境,包括了各个学科和不同领域的知识,能够很大的提高员工的工作学习效率,因此在学习工作中应用计算机网络得到了支持。由于网络带来了无可比拟的方便,许多员工不能正确使用网络,这样不能给企业带来利益。并且,网络除了提供学习交流的资料之外,还有很多不利于社会和个人正常发展的内容,尤其是对缺少基本判别能力的青少年的危害不小。所以,这篇论文综合了网址匹配、过滤技术和网络监测技术,提出了一个通过Web访问监测途径,当学生或员工输入无关网址时,管理员的服务器可以抢在其打开网页前与其进行“握手”并发送管理员提前准备好的页面,从而阻止了其正常访问,提高了学习工作效率。通过该方法设计并实现了一个用户上网行为监控系统,该系统不仅能够为员工过滤掉不健康的网址,还能够记录员工上网记录,及时察觉并拦截他们的行为,一是能够帮助员工过滤掉不健康的信息,二是可以监视员工的网络上的行为动机,降低受到攻击几率,从而保证工作环境的安全性。1.2国内外发展现状 阻止非健康网页一般有两种方法:一是杀毒软件,另一个是防火墙。杀毒软件既可以在本机上装载也可以在本机上卸载,由于这种方法相对来说比较经济实惠,多适用于家长对于不太懂计算机技术的孩子防止他们浏览不健康的网页,对于年龄稍大并且有一部分计算机基础的孩子,杀毒软件这种方法基本没有什么用,由于每台设备都要安装一遍,所以这种方法管理起来有些不方便。20世纪90年代,江民杀毒软件遥遥领先于其他杀毒软件。到了21世纪初,江民,瑞星,金山毒霸三足鼎立,再到现在的360,可牛,东方微点等杀毒软件的挤入,杀毒软件的发展呈现多元化的趋势。一种方法是防火墙,他部署在受保护网络的边界,通过一些管理者设置的原则检查通过网络的流量,来决定是否允许还是拒绝访问这个网页。这种方法只需安装在服务器上,所以管理起来比较方便,但是当上网人数过多的时候,导致网络延迟,成为网络的瓶颈。在防止非法网络入侵的领域,有两个人将永载史册。一是俄罗斯的eugenekaspersky。从1989年,eugenekaspersky进行有关计算机病毒现象的研究。20世纪90年代,他在莫斯科一个大型计算机公司"kami"的信息技术中心,在助手的帮助下研发出了 argininevasopessin反病毒编程程序。kasperskylab于1997年成立,eugenekaspersky是创始人之一。2000年11月,avp更名为kasperskyanti-virus。eugenekaspersky是caro的成员,该协会包括了国际顶级的反病毒大师。avp的反病毒引擎和病毒库,在业界有很好的杀毒口碑。另一位是doctorsoloman。他创建的doctorsoloman,这个公司曾经是欧洲最领先的杀毒软件公司,接着就被mcafee收购,成为安全托拉斯nai的一部分。在早些时候,mcafee与欧洲的同行发生了不太愉快的合作,但是由于自身杀毒引擎并不具备自己的特色,于是mcafee停用之前的杀毒引擎,转而使用兼并来自于doctorsoloman产品的杀毒引擎。2009年6月,微软开始正式举行了MicrosoftSecurityEssentials(简称MSE)新版杀毒软件的测试。此次测试版仅对WindowsXP、Vista及Windows7等微软旗下的三大终端Microsoft操作系统提供支持,首批测试版将仅支持English、Brazilian、Portuguese语等三种语言种类。本次微软向用户提供免费的杀毒软件,是因为微软实行市场扩张和正版推动策略。这个举动可能带来杀毒软件市场的震动,对于其他公司的杀毒软件的研发产生巨大影响。 本文所做的弥补了前两种方法的缺陷,通过监听网络上的数据,从而分析出哪些网址是不允许被访问的,拦截这个网页。这个方法的优点是管理起来方便,不会导致网络的延迟。1.3本文主要任务本文的主要任务是维护一个良好、绿色的网络学习办公环境,面对日益猖獗的网络攻击以及非法网站的入侵,采取Web访问监控系统予以拦截。通过网络监听模块、IP包过滤、网址匹配模块等主要模块实现其功能,然后进行了详细的设计部分,最后是测试阶段。1.4论文的组织结构第一章主要介绍了论文的研究背景,国内外的发展现状;第二章主要介绍了相关研究理论,主要是OSI模型各个层的功能,TCP/IP体系以及两者的比较,HTTP协议和IP协议的基本知识以及数据包捕获的一些理论知识;第三章主要是需求分析,介绍了设计系统时候的需求,有软件需求以及硬件需求;第四章主要是设计模块,各个模块的需求进行完善而详尽的设计;第五章是对所设计的系统进行了测试,包括功能测试以及性能测试,对测试的内容进行了详细的分析;第六章对本文进行了总体阐述以及对论文中由于技术或非技术原因而没有实现的部分进行展望;附录是附录的参考英文文献以及翻译。 2.相关知识理论2.1OSI参考模型OSI模型是1995年进行了修订,其基础是国际标准化组织的一份提案,其结构如图1所示。不难发现,OSI一共有七层,每一层都实现不同的功能:(1)物理层,其主要任务是在通信信道传输0或1二进制数据流这样的比特流,数据的基本单位是比特。物理层要保证当一端发送比特位0时,另一端接收到的也是比特0,而不是比特1,因此,物理层要决定使用多少伏的电压来表示比特0,每一个比特持续多长时间,传输是否要求从两个方向同时进行,初始物理如何建立;(2)数据链路层,让发送端将输入的数据拆开,并且分装到数据帧中,然后再将这些数据帧按顺序传送(如果是可靠的服务,接收端必须确认每个帧都能准确无误的收到,即发送给发送端一个确认帧);(3)网络层,是对子网运行过程的控制。从源端到目的端的途径可以建立在静态表的设计之上,这些途径可以在每一次会话的开始就确定下来,也可以是高度动态的;;(4)传输层,它的基本功能是接受来自于上一层的数据,并且在必要的时候把这些数据单元切割成更小的单元,紧接着把这些数据单元准确无误的发送到网络层。这一层还决定了它的上一层(会话层)哪种类型的服务,例如完全无差错的点到点信道;(5)会话层,类似于两个人之间的交谈,它的功能就是在传输层服务的基础上增加控制会话的机制,建立、组织和协调应用进程的交互过程。会话层提供的会话服务种类包括双工(双向同时)、半双工(双向交替)和单工(单向);(6)表示层,规定应用程序或者用户之间交换数据的格式,提供数据之间的转换服务,确保传输的数据在到达目的端后不发生改变。数据转换任务涵盖了不同类型的计算机内部的格式转换,密码转换和文本压缩转换;(7)应用层,直接面向用户应用,为用户提供对各种网络资源的访问服务。 OSI系统参考模型如图2.1所示:图2.1OSI参考模型2.2TCP/IP体系结构TCP/IP模型也被称作DoD模型(DepartmentofDefenseModel)。TCP/IP字面上代表了两个协议:TCP(传输控制协议)和IP(网际协议)。1983年1月1日,在因特网的前身(ARPA网)中,TCP/IP协议取代了旧的网络控制协议(NCP,NetworkControlProtocol),从而成为今天的网络的基石。TCP/IP的体系结构如图2.2所示。图2.2OSI与TCP/IP对照 TCP/IP在设计时重点并没有放在具体通信的实现上,所以对最后两层没有做出具体规定,同时表明它允许不同类型的通信网络参与通信。它的四个层次功能如下。(1)网络接口层,任务是从物理网络接收数据帧,提取IP数据报给网际层或将网际层的IP数据报通过物理网络发送,因为没有具体的网络接口层的协议,从而保证了其灵活性,从而可以在不同物理网络适用,如LAN、MAN,严格上它并不是一个独立的层次,仅仅是一个接口,TCP/IP并没有对它定义具体的内容;(2)网际层,提供一种无连接、不可靠却又竭尽所能的数据报传输服务,把数据在源主机和目的端主机之间传送。通过牺牲一些非必须的操作来保证高效的传输速度;(3)传输层,提供端到端的应用程序之间的通信,可以使用传输控制协议TCP(TransmissionControlProtocol)或用户数据报协议UDP(UserDatagramProtocol)协议,TCP提供面向连接的可靠的源端口到目的端口的传输服务,它可以在低层不可靠的情况下提供可靠的传输机制。UDP提供无连接不可靠的源端口到目的端口的传输服务,由于不需要提前建立连接,因此传输的效率高;(4)应用层,提供面向用户的网络服务。2.3OSI与TCP/IP的比较两者都是通过协议栈的概念为基础的,而且在其中的协议是相互独立的。两个模型各个层次中的功能也大致相同:网络接口层(TCP/IP)对应OSI的物理层和数据链路层(OSI),网际层(TCP/IP)对应网络层和传输层(OSI),传输层(TCP/IP)对应对应传输层(OSI),应用层(TCP/IP)对应会话层表示层和应用层(OSI)。而且,传输层上面的各个层都是传输服务的用户,并且都是面向应用的用户。TCP/IP是协议先出现,而OSI正好相反,在参考模型之后才出现的,因此OSI模型不会偏向于任何一个特定的协议,适用的范围更加大。虽然它们实现的功能大致相同,但是它们划分的层次和数目也是一个不同点,另外,无连接和面向连接的通信范围也有所不同,OSI的网络层两种连接同时支持,但是传输层知识支持面向连接的通信。TCP/IP的网际层只有无线连接通信一种模式,但在传输层同时支持无线连接和面向连接的两种通信模式。 2.4HTTP协议超文本传输协议HTTP(HyperTestTransferProtocol)定义了Web用户(本质是浏览器)在Web服务器请求Web对象,和Web服务器怎么把Web对象传给Web用户的过程。这是一种请求和响应的模式。如果用户输入一个网址(请求一个Web访问)的时候,浏览器就把该页面的每一个Web对象的HTTP请求发到Web服务器上。当它收到这些消息的时候,就发送包含上述对象的HTTP响应消息。其工作模式如图所示。图2.3HTTP工作模式HTTP有两种连接,持久连接(persistentconnection)和非持久连接(nopersistentconnection)。在这里重点说明一下HTTP的非持久连接。非持久连接的工作过程主要由以下几个步骤组成:(1)浏览器(客户端)向Web服务器发送TCP连接建立请求。(2)当得到Web服务器允许后,客户端(浏览器)向Web服务器发出一个数据帧,其中包括请求的方法、URL、用户信息等内容。(3)Web服务器接收到请求之后,会发送一个状态行。(4)Web服务器断开TCP连接。步骤(2)请求行中包含了下列的信息:(1)方法,如下图2.4所示: 图2.4HTTP请求报文(2)统一资源定界符URL:用于指明要下载的Web对象的位置。(3)HTTP的版本号,现在版本主要为1.1.步骤(3)响应如图2.5所示:图2.5HTTP响应报文2.5IP协议IP协议是TCP/IP协议网络层中的主要成员。它提供无连接的数据报传送机制。IP协议的实现十分简单,它提供了“尽力而为的服务(Best-effortService)”,意思是它并不能担保传输是正确的。IP协议只是负责将分组发送到目标结点上,它不能确保是按分组的准确次序发送的。IP协议大致可以实现以下几个功能:(1)无连接的数据报发送;(2)IP路由;(3)分组的重组和分段; IP包的格式如下图所示:图2.6IP包格式一个IP包由两部分构成,分别是首部和数据量。IP包首部固定部分各字段意义如下:(1)版本:长度为4比特。表示与IP分组对应的IP协议版本号。目前广泛采用的是版本4的IP协议,即IPv4。(2)分组头长域:长度为4比特。用于指明IP分组头的长度,其单位是4个字节。因为IP分组头长度不是固定不变的,所以分组头长域是不可或缺的。(3)服务类型:长度为8比特。用于指明IP分组所要求得到的有关优先级、准确性、处理量、延迟等方面的服务质量要求。(4)总长度域:长度为16比特,用于指明IP分组的总长度,单位是字节,包括分组头和数据区长度。由于总长度域为16比特,所以IP分组最多可以有65536个字节。(5)标识符域:长度为16比特,用于唯一标识IP分组。标识符域是IP分组在传输中实行重组和分段所必备的。(6)标志域:长度为3比特。在3比特中有1位被保留,另外两位中:DF用于指明IP分组是否允许分段,MF用于表明是否有后续分段。(7)(报文)片偏移量域:长度为13比特。以8个字节为单位,用来指明当前报文片在原始分组中的位置,这是分段和重组的前提条件。(8)生存时间域:长度为8比特,用于指明IP分组可在网络中传输的最长时间,这个数值每通过一个路由时要减1,直至减到0时,这个分组就会被舍弃。这个域用来保障IP分组不会在网络出现错误的时候发生无限的传输这种现象。 (9)协议域:长度为8比特。用来指明调用IP协议进行传输的高层协议,高层协议的编号由TCP/IP中央权威管理机构统一分配。例如:ICMP的值为1(十进制),TCP的值为6,UDP的值为17。(10)分组头校验和域:长度为16比特。用来保障IP分组头的完整性。其算法为:该域初始值为0,然后对IP分组头以每16位为单位进行求异或和,然后将所得到的结构取反,从而得到校验和。(11)源地址域:长度为32比特。用来指明发送IP分组的源主机的IP地址。(12)目的地址域:长度为32比特。用来指明接收IP分组的目的主机的IP地址。(13)任选项域:长度不是固定不变的,是可以变化的。该域允许在以后的版本中包括在当前的设计的分组头中未出现的信息,该域的使用有一些特殊的规定。(14)填充域长度固定不变。因为IP分组头必须是4字节的整数倍,所以当使用任选项的IP分组头长度不足4字节的整数倍时候,必须用0填入填充域来满足这一要求。2.6数据捕获函数的一些函数(1)启动函数WSAStartupintPASCALFARWSAStartup(DWORDwVersionRequested,LPWSADATAlpWSAData);所有的套接字应用程序都首先运行这个函数完成初始化工作,仅仅当完成调用返回后,才可以使用套接字,括号中wVersionRequested是版本号,参数lpWSAData是指向WSADATA结构的指针。(2)套接字创建函数socketSOCKETsocket(intaf,inttype,intprotocol);socket函数就是为每个通信的建立创建一个套接字,括号中af全称是addressfamily,UDP或TCP的决定即将要建立的套接字的时候,需要设置af为AF_INET。括号中type是指套接字的类型,有几种形式SOCK_STREAM(流式),SOCK_DGRAM(数据报),SOCK_RAW(原始)。(3)绑定函数bindintbind(SOCKETs,structsockaddr_in*name,intnamelen); 完成创建套接字之后,接下来就是将套接字和当地的网络接口绑定,括号中s是已经创建号的套接字,括号中name指的是用来绑定的通信对象的信息结构体指针,namelen是一共有多少个字符。需要注意的是sockaddr_in结构:structsockaddr_in{shortsin_family;//地址族,设置为AF_INETunsignedshortsin_port;//指定的端口号structin_addrsin_addr;//IP地址charsin_zero[8];};(4)设置接口模式函数WSAIoctlintWSAAPIWSAIoctl(SOCKETs,DWORDdwIoControlCode,LPVOIDlpvInBuffer,DWORDcbInBuffer,LPVOIDlpvOutBuffer,DWORDcbOutBuffer,LPDWORDlpcbBytesReturned,LPWSAOVERLAPPEDlpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINElpCompletionRoutine);其中,s为一个套接口的句柄,dwIoControlCode为操作控制代码,lpvInBuffer为输入缓冲区的地址,cbInBuffer为输入缓冲区的大小,lpvOutBuffer为输出缓冲区的地址,cbOutBuffer为输出缓冲区的大小,lpcbBytesReturned为输出实际字节数的地址,lpOverlapped为WSAOVERLAPPED结构的地址,lpCompletionRoutine为一个指向操作结束后调用的例程指针。调用成功后,WSAIoctl函数返回0,否则的话,将返回INVALID_SOCKET错误,应用程序可通过WSAGetLastError来获取错误代码。(5)数据接收函数recvintrecv(SOCKETs,char*buf,intlen,intflags);2.7本章小结 本章阐述了关于OSI参考模型,TCP/IP模型以及两者的异同点。还介绍了HTTP协议和IP协议的一些基本知识,最后简单说了关于数据包捕获的几个函数。在接下来的几章会以这几个概念作为本文论述的一个基础,例如网络监听模块(如何设置混杂模式)会用到数据包捕获的的函数。 3.需求分析3.1可行性分析可行性分析是以经济效益为核心,围绕影响工程的各种因素,如技术、经济等运用大量的数据资料论证该工程是否可行。本文从技术可行性、经济可行性、社会可行性等几个方面进行了阐述。3.1.1技术可行性Web访问监测系统地最主要的功能是判断用户访问的网站是否含有有害信息,对于有有害信息的网站要进行拦截,并转入一个健康的网站。要实现这个功能,有以下几个关键问题需要解决:(1)如何获得访问网站的IP?(2)如何判断该某个网址是非法的并予以拦截?解决方案如下:(1)可以通过把网卡设置为混杂模式,通过捕获数据包来进行监听,接着通过TCP/IP协议,再从数据包中提取对工程有用的信息。(2)在HTTP协议中有规定,可以通过发送HTTP重定向报文,再利用一些网络技术,可以实现。因此,Web访问监控系统在技术方面是完全可行的。3.1.2经济可行性 这个工程的成本主要由两部分构成:硬件成本和软件成本。硬件成本包括:交换机、服务器等,软件成本主要是黑名单与白名单的数据库,维持系统正常运转的资金。从经济方面,也是可以实现的。3.1.3社会可行性最近几年,中国政府为了维护公民良好、绿色的网络环境,对于非法网站的打击力度不断加大。不难发现我国对于净化网络环境的重视程度,尽管这样,仍有很多非法网站逍遥法外,严重危害着社会的和谐稳定,这些非法网站的服务器大多都设在中国境外,这也给相关查处部门带来了不小的难度。本监测系统主要功能是禁止员工或学生的浏览一部分非法网站,当员工或学生输入无关网址时,管理员的服务器就可以抢在其打开网页前与其进行“握手”,从而达到了组织其正常访问的目的,提高了工作或学习的效率。这有利于社会的和谐与文明,符合国家倡导的相关政策,因此是得到国家大力支持的。另一方面,这个系统很大程度上弥补了防火墙的不足,不会使网络速度变慢。综上所述,Web访问监控系统有着很大的市场前景和社会效益。3.2系统需求分析3.2.1功能需求Web访问监控系统的主要任务是捕获通过网卡的数据包,并加以分析,并与之前建立的数据库的网址黑名单进行匹配。Web访问监控系统由六个模块组成包括,如下图3.1所示。 图3.1功能需求模块结构图(1)网络监听模块网络监听模块在服务器上工作,此时的网卡已经被设置为了混杂模式,它的主要职责就是捕获通过网卡的网址,并提取有用的部分交给下一个模块(IP包处理模块)进行分析。其用例图如图3.2所示。图3.2网络监听模块用例图 (2)拦截策略控制模块这个模块具有很强的自主性,它可以随时根据管理员的需要进行开启或者关闭。拦截策略控制模块维护一个称为“白名单”的文件。白名单的更新是由消息模块控制的,当消息模块发来消息添加新的数据时,它才更新。当管理员关闭网页拦截服务时,消息服务器会发给拦截服务器一个命令,拦截策略控制模块阻止的浏览器转去访问消息服务器的提供的网页。从用户的角度看,就是所要访问的网页被拦截了。(3)IP包分析模块IP包分析模块在拦截服务器上工作。其职责是对上个模块(网络监听模块)收集到的数据包进行分析和处理,把一些无关紧要的数据舍弃掉,从而大大的提高了处理的效率,分析出是否含有非法的网址成分并予以阻止访问的请求。这个模块由两部分构成:IP包过滤模块和网址匹配模块。IP包过滤部分的主要作用就是只保留HTTP协议中的GET报文和POST报文,而把除此之外的数据舍弃掉,这样就可以极大的减少工作量,并且可以加快网址匹配的速度。提取出URL地址后,发送到网址匹配模块。其用例图如图3.3所示。 图3.3IP包过滤部分用例图网址匹配模块的主要任务是把提取到URL和数据库的黑名单逐个进行对照人,如果发现有非法网址,就把这个消息通知给拦截模块。其用例图如图3.4所示。图3.4网址匹配部分用例图(4)网页拦截模块网页拦截模块是本系统最为关键的一部分。网页拦截模块的任务是拦截经过上个模块分析出的有害网址。网页拦截模块向用户展示预先做好的界面用于替代用户要访问的界面。从用户的角度看,就是所要访问的网页被拦截了。其用例图如图3.5所示。 图3.5网页拦截模块用例图(5)数据更新模块数据更新模块是指已经拦截到的非法网站加入到已经建立好的数据库的黑名单中。数据库的维护有专门的管理人员,他们的主要职责就是对拦截服务器拦截到的非法网址进行检查,当发现这个情况属实后,把这个网址加载到黑名单中。等下一次有人访问时,拦截服务器就可以直接组织其正常访问并弹出管理员预先设置好的界面。这样就可以节省掉不少的工作量和时间。(6)消息提示模块假如有用户要浏览的网站含有非法内容时,将提前做好的界面以弹窗的形式提示用户。当用户输入正确的通行口令时,用户可以正常访问其网址。3.2.2性能需求本文的Web监测系统需要满足的性能需求主要有以下若干方面。(1)我单位局域网内的用户数量很大,不适宜在每个终端用户的计算机上安装系统所必需的模块,Web监测系统的部署、运行与维护对于局域网用户来说是透明的。 (2)整个Web访问监测系统必须能够稳定、正常地运转,性能消耗低,而且在这个系统正式投入使用后,如果出现这样或那样的问题,应该要有相应的解决手段。如果出现有新的功能需求时,要求系统必须可以进行扩充和修改。从而保证整个局域网的可用性、可生存性。(3)面对错综复杂的庞大数据,要有较强的应对能力,来保证计算机网络的正常运转。(4)监测记录的Web访问日志应该具有覆盖面广,拦截准确无误的特点。(5)整个系统人机交互界面友好,可操作性强,容错性强,软件部分发生故障时应能够自动恢复。(6)系统支持即插即用方式,系统的实施不需要改变原来现有网络结构,简言之就是安装这个系统并不影响网络的流畅性性。3.2.3运行需求(1)拦截服务器内存至少2GB以上。(2)网络监听服务器应该具备的能力:700个并发HTTP链接,300Pps。(3)存储器最少应该留有半年的访问数据。(4)数据库维护人员应该实时关注黑名单的更新,做到不漏掉一个非法网址。3.2.4安全需求分析本系统的安全需求大致应该有如下几点:(1)该系统的用户仅面向我单位的专业技术人员及其有关领导,不同的用户应该有不同的访问权限。(2)该系统记录所有用户的登录历史、操作历史等日志信息,为了确保系统的安全,该类日志信息一次性写入,不可删除,一经写入不可更改。(3)由于涉及到我单位的局域网络、我单位用户的隐私,因此必须保证记录的Web访问页面文件证据的机密性,并控制其扩散范围。(4)该系统的运行前提是不影响我单位局域网的正常运转,更不能造成我单位 局域网新的安全威胁。(6)每隔一段时间,就要把这些数据备份。并且要求备份数据的全面性和完整性。 4系统设计4.1网络监听模块获取经过网卡的数据帧需要分三步完成:(1)创建socket套接字。(2)将网卡设置为混杂模式。(3)调用recvfromo函数接收数据。网络监听模块的获取数据包流程图如图4.1所示:图4.1获取数据包的流程图建立初始套接字的函数如下:soeket(PF_PACKET,SOCK_RAW,ETH_P_IP); 完成socket套接字后,接着调用recvfromo函数来获取帧。这个时候并不能获取通过这个网卡的数据帧,对于不是发送到本机的数据帧,实行丢弃的方法,从而来减轻网卡的负担。但是我们要得到经过网卡的所有数据帧。所以正常下我们并不能达到监听的目的。因此,要把网卡设置成混杂模式,这样我们就可以获取所有经过网卡的数据帧。如果一个程序只是有一个或少数几个进程完成,处理器一方面要求分析模块要提取有效信息,进行网址匹配。另一方面还要继续接收新来的数据帧。这种情况下很容易出现数据帧丢失的现象。因此,要采取多进程的方式。一个程序的运行可以使用多个进程并发执行。这样可以使他们的工作最大程度上达到效率最高并且不会发生任何冲突,从而实现了资源利用率最高。套接字的建立、绑定的操作部分关键程序如下所示:m_sockCap=socket(AF_INET,SOCK_RAW,IPPROTO_IP);//创建套接字bind(m_sockCap,(PSOCKADDR)&sa,sizeof(sa));//绑定setsockopt(m_sockCap,SOL_SOCKET,SO_REUSEADDR,(char*)&bopt,sizeof(bopt));//设置操作setsockopt(m_sockCap,IPPROTO_IP,IP_HDRINCL,(char*)&bopt,sizeof(bopt));//设置操作WSAIoctl(m_sockCap,SIO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL);//混杂模式m_hCapThread=CreateThread(NULL,0,CaptureThread,this,0,NULL);//启动线程4.2拦截策略控制模块拦截策略控制模块和消息服务器进行通信,它监听端口10000,然后接收消息服务器传来的指令。消息服务器传来的指令主要有两种,开启或关闭服务。当传输开启或关闭命令式,消息服务器要将用户的IP地址一起发来。 在这里要介绍“白名单”。假如用户关闭网页拦截功能,用户策略模块将用户IP地址加入“白名单”中。假如是开启拦截功能,那么将用户IP地址从白名单中删除。IP包过滤模块将IP地址在“白名单”中的用户的所有lP包看作系统不感兴趣的IP包,将其过丢弃。拦截方法模块工作流程如图4.2所示。图4..2拦截方法模块流程图4.3IP包分析模块4.3.1IP包过滤模块IP包过滤模块起着承前启后的作用,它位于网络监听模块之后,IP网址匹配模块之前。它负责去除帧的首部字段,只留下有用的IP部分,舍弃一些无用的IP包。由于获取的数据可能有多种的类型,而我们只想要其中的一些例如HTTP协议的数据帧。因此只分析关于GET和POST的报文,将这些报文交给下一个模块(网址匹配模块)。没有用的数据包采取舍弃的处理方式,这样可以很大程度上减轻网址匹配模块的工作量,使网址匹配模块可以更加迅速的处理非法网址。IP包过滤模块的流程图如图4.3。 图4.3IP包过滤模块流程图如果IP包中含有POST或GET报文,需要取出它的URL地址。HTTP请求报文格式如图。 图4.4HTTP请求报文对于GET报文和POST报文,处理方法不同,要分别进行处理。(1)处理GET报文当我们要访问http://www.neu.edu.cn这个网站的时候,浏览器发送的请求报文格式如下:GET/HTTP/1.1r AeeePt:*/*r AccePt一Language:zh一zh-cncnr Host:www.neu.edu.cnr r 其中GET后面的U甩字段和HOST字段是含有网页U肚信息的关键字段。一般HTTP/1.1在URL字段只存放请求的网页文件的路径和名字,主机的域名存放在Host字段中,但是也有的时候URL字段会存放包括主机地址和文件路径及文件名的完整形式,而没有Host字段。 大多数时候,想要要过滤掉某个非法网址,仅仅需要得到用户所要访问的网站域名地址就可以了,不一定要得到具体访问某一个特定的文件下的内容。有两种情况不得不考虑进去。一种是一个网站的一部分内容时合法的另一部分内容是不合法的。为了精确的过滤掉那部分非法内容,因此必须了解用户访问的是文件是哪一个。另一种是用户直接输入了某非法网页的完整路径,这种情况也需要用户的具体访问的文件名。(2)处理POST报文由于网络上混杂着一种可以进行网页代理的网站。它充当了沟通用户与不合法网站的纽带。因此要进行POST报文的处理。网页代理的工作过程是这样的:它先是为用户提供一个界面,大多数情况下,页面都很简单,仅仅有1个记事本式的文本框,浏览器把要浏览网页的URL地址输入到这个文本框中,然后把这个文本框交给网页代理的网站。这个代理网站与浏览器要访问的目标网站发生请求联系,请求成功后,代理网站把目标网站发送给浏览器。用户加入采取这种方式浏览网站,直接在请求报文中实体主体以上部分不能获取用户所请求的网页的URL地址。在这个时候,请求报文的实体主体以上部分的URL字段和Host是关于提供网页代理服务的网站的信息,而没有用户真正需要的网页URL地址。4.3.2网址匹配模块网址匹配模块把提取出的URL地址与数据库中的URL进行匹配,如果匹配成功的话,就把这个匹配结果告知下一个模块,对这个网址予以拦截。这个系统是在混杂模式下进行的,所有的网址都经过网卡,预先设置的页面一定将重定向报文在员工或学生要求浏览的网页的前面到达员工或学生的电脑。其中重要的一点就是匹配速度要快。采取哈希算法,将URL按顺序罗列起来,接着把它放在内存的一个数组单元中。因为内存中对各个数组的访问都是可以随机的,因此可以在O(1)时限内完成,哈希算法可以做到提高工作效率的目的。算法如下: (l)给定两个32位intx和inty,令x=0,y=0;(2)把URL4个字节一组,与x异或;(3)得到的结果除以24,余数储存在y中。哈希算法的C语言代码:int51(ehar*s){unsignedintx,y:x=0;ehar*b=(ehar*)&x;for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭