




免费预览已结束,剩余40页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
厦门大学本科生论文本科毕业论文(科研训练、毕业设计)题 目:网络安全状况监控分析系统的设计与实现姓 名:学 院:软件学院系:软件工程系专 业:软件工程年 级: 学 号:指导教师(校内): 职称: 年 月 日摘 要随着计算机网络和应用的迅速发展,特别是电子银行、电子商务的兴起,网络安全问题也日益突出起来。同时,由于目前入侵检测系统普遍存在的误报率高、报警信息兀余现象严重和对入侵表述能力不强的缺陷,我们有必要掌握好网络安全监控方面的技术,以达到在入侵事件发生之前进行安全监控的目的。通过调查统计表明,有效的应用网络安全监控技术,大大降低了系统的检测成本。本文对基于网络流量分析的入侵检测和漏洞分析进行了研究,实践和探索。该系统基于Visual C+.net开发平台,运用winsock,snort、SQL、多线程,MFC等技术作为开发手段,在简洁良好的图形界面环境下实现了对目标主机的流量分析以及常见漏洞的扫描分析等功能。关键词 安全监控 漏洞扫描 流量分析 SnortAbstractWith the application of computer networks and the rapid development,especially E-banking and the rise of e-commerce, Network Security becomes more and more prominent too.In this paper, we present a detection technology based on intrution events in order to overcome the thortcomings of high false alert rate;serious redundent alerts and poor expression about the intrusion activities in todays intrusion detection sys-distingu ishment based on fuzzy rules and so on in detail Experimental results show that compared with the existing intrution detection systems,this technology can reduce the system test cost greatly.This article is based on the analysis of network traffic intrusion detection and vulnerability analysis of the study, practice and exploration.In our work, we have designed a very powerful tool in loophole analysis: a Network Vulnerability Scanner in Visual C+ .net SDK, with winsock, snort、SQL 、multithreading, and MFC technology. With clearly UI, ports scan and some familiar loopholes scan are achieved.Key words Safety Monitoring, Network vulnerability scan, Traffic Analysis, Snort.目 录第一章 绪 论11.1 论文研究的背景及意义11.2 主要研究内容11.3 本论文组织结构2第二章 基本概念和工具32.1 基本概念及其技术32.1.1端口功能简介32.1.2 Snort的介绍42.1.3 TCP/IP协议简介62.1.4 多线程技术简介82.1.5 Winsock技术简介92.1.6 常用Winsock函数介绍102.2 使用工具及其介绍132.2.1 Microsoft Visual Studio .net简介132.2.2 Microsoft Visual C+简介132.3 本章小结13第三章 系统的设计143.1 系统整体设计方案143.1.1 设计模式简介143.1.2 系统流程简介153.1.3 系统的类和对象163.2 系统的详细设计173.2.1 流量分析功能模块设计与测试173.2.2 漏洞扫描子模块设计183.3 本章小结19第四章 系统的实现204.1 系统的运行界面204.2 漏洞分析与端口探测详解214.2.1 参数设定部分:214.2.2 功能按钮部分:224.2.3 漏洞扫描功能演示224.3 流量分析系统详解:244.3.1 参数设定部分:244.3.2 实时监控部分:244.3.3 流量统计:244.4 本章小结26第五章 总 结27致 谢28参考文献29ContentsChapter 1 Introduction111 Papers on the background and significance112 Main content113 organizational structure2Chapter 2 Basic concepts and tools32.1 Basic concepts and technology32.1.1 Port Introduction32.1.2 Snort Introduction42.1.3 TCP/IP Introduction62.1.4 Multithreading Profile82.1.5 Winsock Introduction92.1.6 Winsock Introduction102.2 tools and the introduction132.2.1 Microsoft Visual Studio .net132.2.2 Microsoft Visual C+132.3 Summary13Chapter 3 System Design1431 Overall system design143.1.1 Introduction to Design143.1.2 Introduction system processes153.1.3 System of classes and objects163.2 The detailed design173.2.1 Traffic analysis module design and test173.2.2 Vulnerability scanning module design183.3 Summary19Chapter 4 System Implementation2041 Operation interface204.2 Vulnerability analysis and detection214.2.1 Set some parameters214.2.2 function button224.2.3 Vulnerability Scan Demo224.3 Detailed Explanation traffic analysis244.3.1 Set some parameters244.3.2 Real-time monitoring of the244.3.3 Traffic statistics244.4 Summary26Chapter 5 Outlook27Acknowledgements28References29第一章 绪 论1.1 论文研究的背景及意义 随着网络技术在世界及中国各个领域应用的深入开展,人们在得益于信息革命所带来的新的巨大机遇的同时,也不得不面对信息安全问题的严峻考验。由于系统安全脆弱性的客观存在,操作系统、应用软件、硬件设备不可避免地会存在一些安全漏洞,网络协议本身的设计也存在一些安全隐患,这些都为黑客入侵系统提供了可乘之机。据美国金融时报报道,世界上平均每20秒就发生一次入侵国际互联网络的计算机安全事件,仅美国每年因此造成的损失就高达100亿美元。近年来,严重的互联网安全事件层出不穷,2000年2月8日到10日,黑客首次成功地攻击了号称“世界上最可靠的网站之一”的yahoo!,三天后,又攻击了eBay, F-Trade和Amazon等近十家著名网站,使这些网站相继瘫痪;2000年10月28日,美国微软公司的电脑系统几天内被“黑”,生产软件的源代码被窃,新开发的Windows和Office产品的具体计划可能被盗;2001年7月出现的Code Red红色警戒病毒,引发了全球连锁性的宽带拥塞风暴,据专家分析,全球有超过36万台计算机遭受该病毒感染,损失高达12亿美元;2003年1月25日,互联网遭到全球性的病毒蠕虫王Win32.SQL,Exp.Worm攻击,亚洲、北美和欧洲的网络全都陷入了瘫痪或者半瘫痪的状态,全世界范围内损失额高达12亿美元。随着网络安全事件的频繁发生,网络安全防范的重要性和必要性也愈加凸显,网络安全问题己经引起各国、各部门,各行各业以及每个计算机用户的充分重视,据市场研究公司Input发表的研究称,联邦机构IT安全开支将稳步增长,到2008年将达到60亿美元。 随着各种网络攻击手段的多元化、复杂化、智能化,单纯依赖防火墙等静态防御系统甚至各种入侵检测动态系统也不能很好的达到保护好计算机的安全问题时,我们就需要在做好入侵检测的同时还要掌握网络安全监控的技术,对远程网络及本机的后台程序进行有效的监控,才能更好的保护好自己的电脑安全。1.2 主要研究内容本文主要工作围绕网络安全监控系统的设计与实现展开,主要包括中心管理平台的设计与开发、流量分析技术和漏洞扫描技术研究与实现以及整个原型系统的搭建。主要工作包括:(1) 流量分析模块的设计与实现。网络流量可以从一个侧面反映出系统当前的安全状态和运行情况,本论文基于WINPCAP协议,设计并开发了一个网络流量分析模块,该模块能够完成针对不同协议的网络流量统计分析工作;(2) 漏洞分析模块的设计与实现。在本论文所设计的监控系统中,引入漏洞分析的目的主要在于对系统需要进行安全评估的主机进行安全扫描,以确定其是否处于安全状态。漏洞分析模块基于WINSOCK采用VC+6.0完成开发。(3) 中心管理平台的设计与实现。该平台可以向管理员提供当前系统安全状态信息(包括流量数据和来自底层入侵检测系统的报警),并可以根据当前的安全评估要求调用漏洞分析模块对目标主机进行漏洞分析。1.3 本论文组织结构本论文结构如下:第一章:绪论。介绍本论文的课题背景,主要研究内容和和组织结构。背景主要介绍了当今网络的重要性和以及网络安全现状。主要研究内容介绍了基于网络的流量分析的入侵检测原理和过程(snort的应用),网络漏洞的产生和基本情况。第二章:基本概念和工具。介绍本系统使用的技术,如snort,TCP/IP网络协议的起源及分层结构,端口功能简介,多线程技术和winsock技术等。以及系统的开发环境:Microsoft Visual Studio .net,Microsoft Foundation Class等。第三章:系统的设计。主要介绍系统的架构,设计模式,类之间的关联(类图),系统运行的整体流程和详细的图表说明。以及系统详细设计,主要包括流量分析模块和漏洞扫描子模块2个部分。第四章:系统的实现。简要说明了系统的运行界面,包括系统各个部分的功能和各个控件的作用。并演示了网络流量的截取、报警设置和漏洞扫描功能的执行结果。第五章:总结。总结了系统设计的经验以及个人对系统的评价等。 第二章 基本概念和工具本系统以Visual C+.net作为开发平台,用snort技术来进行基于网络流量分析的入侵检测,利用TCP/IP协议和winsock技术进行端口探测和漏洞分析。因此本章将从端口开放、网络协议、winsock、snort技术等方面进行介绍。2.1 基本概念及其技术2.1.1端口功能简介端口是计算机与外界通讯交流的出口。应用程序通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都从该端口输出。在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写方式访问类似于文件描述符,每个端口都拥有一个叫端口号的整数描述符,用来区别不同的端口。按端口号可分为3大类:(1)公认端口(WellKnownPorts):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。(2)注册端口(RegisteredPorts):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。(3)动态和/或私有端口(Dynamicand/orPrivatePorts):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。端口扫描用于判断目标主机的端口是否开放。从黑客的角度讲,攻击一台联网主机首先必定是寻找对方开放了哪些网络服务,即便该主机可能有防火墙保护,只要它开放了一些网络服务,那么其安全性就会大大降低。而获得目标主机是否开放某些服务,最好的办法就是尝试连接该服务所对应的端口。其工作原理为向扫描对象的TCP/UDP端口发送连接请求,根据对方的回应判断端口是否开放。具体流程将在Winsock函数中进行介绍。表2-1常见端口列表7回送(Echo)13日期时间(Daytime)15网络状态(Netstat)20FTP数据(FTP-Data)21FTP控制(FTP)23终端连接(Telnet)25简单邮件传输协议(SMTP)37时间(Time)53域名服务器(DNS)67引导协议服务器(Bootps)68引导协议客户(Bootpc)69简单文件传输协议(TFTP)80Web服务(HTTP)110邮件协议第3版(POP3)118SQL服务(SQL Service)8080代理服务器(Proxy)2.1.2 Snort的介绍Snort是一种轻量级的基于网络和误用的入侵检测系统,为C语言编写的开放源代码的软件,其所支持的操作系统较为广泛(见表2-2)。它主要采用基于规则的网络信息搜索机制,通过对网络数据包进行截获和模式匹配,从中发现入侵行为,如buffer overflow、stealth port scan、CGI attacks等。它的报警信息可以发送到syslog、Server Message Block(SMB)、WinPopup message或者单独的alert文件。Snort可以通过命令进行交互,并对可选的BPF(Berkeley Packet Filter)命令进行配置。Snort安装在一台主机上就可以对整个子网进行监视,图2-1给出了Snort的典型运行环境。网络Snort主机主机主机主机图2-1 snort的典型运行环境表2-2 snort所支持的操作系统类型硬件/操作系统X86SparcM68k/PPCAlphaOtherLinuxOperBSDFreeBSDNetBSDSolarisSunOS 4.1xHP-UXAIXIRIXTru64MacOS X ServerWin32(Win9x/NT/2k/xp)snort由三个重要的子系统构成:数据包解码器、检测分析引擎和日志/报警系统。(1) 数据包解码器数据包解码器主要是对各种协议栈上的数据包进行解析、预处理,以便提交给检测分析引擎进行规则匹配。解码器运行在各种协议栈之上,从数据链路层到传输层,最后到应用层。目前,Snort解码器支持的协议包括Ethernet、SLIP和raw(PPP) data-link等(2) 检测分析引擎Snort用一个二维链表存储它的检测规则,其中一维称为规则头,另一维称为规则选项。规则头中放置的是一些公共的属性特征,而规则选项中放置的是一些入侵特征。为了提高检测分析的速度,通常把最常用的源/目的IP地址和端口信息放在规则头链表中,而把一些独特的检测标志放在规则选项链表中。规则匹配查找采用递归的方法进行,检测分析机制只针对当前已经建立的链表选项进行检测。当数据包满足一个规则时,就会触发相应的操作。Snort的检测机制非常灵活,用户可以根据特定需要对规则链表进行修改和增减。(3) 日志/报警系统日志和报警系统可以在运行Snort的时候以命令行交互的方式进行选择,目前可选择的日志形式有三种:l 数据包解码后的文本形式l tcpdump的二进制形式l 关闭日志Snort的报警形式可以分成五种:l 将报警信息发送到系统日志l 将报警信息以完全方式发送到报警文件中l 将报警信息以快速方式发送到报警文件中l 通过Samba发送WinPopup信息l 关闭报警2.1.3 TCP/IP协议简介TCP/IP是为互联网开发的第一套协议,是在60 年代由麻省理工学院和一些商业组织为美国国防部开发的。TCP/IP协议是支持Internet/Intranet 的基本通信协议。传输控制协议TCP(Transmission Control Protocol)负责数据的流量控制,并保证传输的正确性。网际协议IP(Internet Protocol)负责将数据从一处传往另一处。TCP/IP 协议具有广泛的兼容性和可伸缩性,可连接不同的计算机网络协议、不同的网络设备。TCP/IP 已成为网络互连事实上的标准,并成为支持Internet/Intranet 的协议标准。图2-2 TCP/IP分层从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。 网络接口层:这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。 网络层:负责相邻计算机之间的通信。其功能包括三方面。一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。二、处理输入数据报:首先检查其合法性,然后进行寻径-假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。三、处理路径、流控、拥塞等问题。 传输层:提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。 应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。图2-3 TCP/IP协议的通讯模式2.1.4 多线程技术简介线程(Thread)是进程(Process)中的一个实体,是被系统独立调度和分派的基本单位。线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。 线程是程序中一个单一的顺序控制流程, 它和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。线程的周期包括新建,就绪,运行,阻塞,死亡5个阶段。在MFC中,线程分为用户界面线程和工作者线程2种。这2种之间的区别是UI线程有消息循环,而工作者线程没有。UI线程能够创建窗口并处理发送给这些窗口的消息,而工作者线程执行后台任务,并不需要处理窗口和消息循环。由于多线程的执行在应用程序中是异步的,适当的运用多线程技术虽然增加了代码的额外复杂度,却可以极大的提高程序的响应性能。工作者线程适合于执行孤立的任务,这些任务能够与应用程序的其他部分相互脱离,并且能够在前台进行其他处理时在后台执行这些任务,有效的降低了程序的等待时间,提高了运行的效率。在MFC中,线程作为CWinThread类存在,其相关函数为:1AfxBeginThread()声明:CWinThread* AfxBeginThread(AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);作用:根据输入的线程类型创建一个新线程,并将LPVOID类型的指针作为参数传递给新创建的线程。参数: pfnThreadProc:指向要创建线程类型的工作者线程指针(一般为UINT定义类型),不能为空。pParam:传递给要创建线程参数指针,类型由pfnThreadProc函数定义。nPriority:要创建线程的优先级,为0则优先级于创建该线程的线程相同。nStackSize:指定要创建线程德堆栈大小,以字节为单位。dwCreateFlags:函数调用的执行方式。lpSecurityAttrs:设定要创建线程的安全级别。返回值:若成功,则返回指向新创建线程的指针。2AfxEndThread()声明:void AFXAPI AfxEndThread(UINT nExitCode, BOOL bDelete = TRUE);作用:终止正在执行的某个线程参数:nExitCode:指定线程的退出值bDelete:为true则将该线程从内存中释放返回值:无3. WaitForSingleObject() 声明:DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds);作用:在等待时间内判断线程或对象是否已经正常中止或有响应。参数:hHandle:线程或对象的句柄。 dwMilliseconds:线程的等待时间,以毫秒为单位返回值:若函数成功,则返回线程结束的事件,可以为WAIT_ABANDONED(该线程作为互斥线程,在调用该线程的线程结束之前无法中止),WAIT_OBJECT_0(线程有响应,并且已经正常中止),WAIT_TIMEOUT(超过规定的等待时间,强制退出)。2.1.5 Winsock技术简介WindowsSockets规范以U.C.Berkeley大学BSDU NIX中流行的Socket接口为范例定义了一套Micosoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。WindowsSockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,Windows Sockets也定义了一个二进制接口(ABI ),以此来保证应用WindowsSockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。遵守这套WindowsSockets规范的网络软件,我们称之WindowsSockets兼容的,而WindowsSockets兼容实现的提供者,我们称之为Windows Sockets提供者。一个网络软件供应商必须百分之百地实现Windows Sockets规范才能做到现Windows Sockets兼容。任何能够与WindowsSockets兼容实现协同工作的应用程序就被认为是具有WindowsSockets接口。我们称这种应用程序为WindowsSockets应用程序。WindowsSockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有WindowsSockets实现都支持流套接口和数据报套接口应用程序调用WindowsSockets的API实现相互之间的通讯。WindowsSockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。图2-4 WindowsSockets工作原理2.1.6 常用Winsock函数介绍1htons()声明:u_short htons(u_short hostshort);作用:将主机的无符号短整形数转换成网络字节顺序。参数:hostshort:主机字节顺序表达的16位数返回值:返回一个网络字节顺序的值2inet_addr()声明:unsigned long inet_addr(const char* cp);作用:将一个点间隔地址转换成为一个in_addr。参数:cp:一个以Internet标准.间隔的字符串返回值:若无错误发生,返回一个无符号长整形数,其中以适当字节顺序存放Internet地址。如果传入的字符串不是一个合法的Internet地址,那么inet_addr()返回INADDR_NONE。3socket()声明:SOCKET socket(int af, int type, int protocol);作用:创建一个对应于特定服务的套接口参数:af:一个地址描述,目前仅支持PF_INET格式,就是ARPA Internet地址格式type:新套接口的类型描述。目前包含2种协议类型:SOCK_STREAM提供一个可靠的,双向的,面向连接的流协议,主要用于TCP协议通讯。SOCK_DGRAM提供不可靠,无连接的协议,主要用于UDP协议通讯。protocol:套接口所用的协议。通常设置为0。 返回值:若无错误发生,返回引用新套接口的描述字。否则返回SOCKET_ERROR错误,可以用WSAGetLastError()获取相应错误代码。4connect()声明:int connect(SOCKET s, const struct sockaddr* name, int namelen);作用:建立一个面向某套接口的连接参数:s:标识一个未连接套接口的描述字name:欲进行连接的端口名namelan:端口名的长度返回值:若无错误发生,返回0。否则,返回一个SOCKET_ERROR错误,可以用WSAGetLastError()获取相应错误代码。5send()声明:int send(SOCKET s, const char* buf, int len, int flags);作用:向一个已连接的套接口发送数据参数: s:一个用于标识已连接套接口的描述字buf:包含待发送数据的缓冲区len:缓冲区中的数据长度flags:调用执行方式返回值:若无错误发生,返回所发送数据的总数(可能小于len规定的大小)。否则返回一个SOCKET_ERROR错误,可以用WSAGetLastError()获取相应错误代码。6recv()声明:int recv(SOCKET s, char* buf, int len, int flags);作用:从一个套接口接收数据参数:s:一个标识已连接套接口的描述字buf:用于接收数据的缓冲区len:缓冲区的长度flags:指定调用方式返回值:若无错误发生,返回读入的字节数。如果连接中断,返回0。否则返回一个SOCKET_ERROR错误,可以用WSAGetLastError()获取相应错误代码。7closesocket()声明:int closesocket(SOCKET s);作用:关闭一个套接口参数:s:一个套接口的描述字返回值:若无错误发生,返回0。否则,返回一个SOCKET_ERROR错误,可以用WSAGetLastError()获取相应错误代码。2.2 使用工具及其介绍2.2.1 Microsoft Visual Studio .net简介Visual Studio.NET是.NET平台下最为强大的开发工具,无论是软件服务商,还是企业应用程序的部署与发布,Visual Studio.NET都可以提供近乎完美的解决方案。Visual Studio.NET提供了包括设计、编码、编译调试、数据库联接操作等基本功能和基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布工具以及性能评测报告等高级功能。2.2.2 Microsoft Visual C+简介Visual C+是一个功能强大的可视化软件开发工具,是Visual Studio .net重要的一员。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。Visual C+不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。2.3 本章小结本章前半部分主要详细介绍本系统开发所涉及的基本概念,包括Ipv6协议、Snort、TCP/IP协议,多线程的概念及相关函数,Winsock作用及其相关函数。后半部分主要介绍系统所采用的一些开发工具如Microsoft Visual Studio .net和其下的Visual C+ .net,帮助理解开发过程中所涉及的最新技术。第三章 系统的设计设计是软件开发的基础,对整个系统的开发过程起着决定性的影响。本章将介绍本系统的总体设计方案,包括系统的设计模式,流程图,UML图等。以及系统的详细设计方案,包括各个模块的具体设计等。3.1 系统整体设计方案3.1.1 设计模式简介本系统利用以中心管理平台作为用户交互的UI接口,接受用户输入调用漏洞和流量分析。其功能需要调用Windows API函数和Snort规则来执行。其中流量分析模块和漏洞探测模块作为主线程,分别创建和调用各个子工作者线程实现程序的主要功能。完成后返回给程序主界面作为反馈给用户的结果。系统整体模式如图3.1所示。中心管理平台入侵检测系统snort流量分析模块漏洞扫描模块数据库流量数据报警信息分析结果管理员图3-1 系统整体模式图3.1.2 系统流程简介本系统开始运行后等待用户设定参数,通过判断流量分析和漏洞扫描选项是否选中进行下一步的操作。若流量分析选中,则创建子线程开始工作,主线程等待结果,最终输出结果,返回等待状态。若漏洞扫描选中,则依次判断各个漏洞扫描选项是否选中,最终输出结果,返回等待状态。具体流程如图3.2图3-2 系统的运行流程3.1.3 系统的类和对象本系统主要包含5大类:UI接口类,snort流量分析线程,漏洞扫描线程,流量分析子线程,漏洞扫描子线程。其中UI接口类是整个程序的主类,负责调用和创建基于流量分析的snort入侵检测线程和漏洞扫描线程,以及更新各个控件的当前状态,输出要表达的计算结果等。基于流量分析的snort入侵检测线程和漏洞扫描线程用来控制snort扫描子线程和漏洞扫描子线程的多线程运算,提高系统的整体效率和响应能力。流量分析子模块和漏洞扫描子模块是系统的关键部分,程序的主要功能都在这里实现。其类图如图3.3图3-3 系统的类图3.2 系统的详细设计3.2.1 流量分析功能模块设计与测试根据系统的功能需求,可以将流量异常检测原型系统分成5个基木模块:流量采集模块、流量统计模块、量异常检测模块,报警和响应模块以及人机交互界而。系统的体系结构如图1所示。系统的下作原理是:在局域网的总出口(或被监控的核心主机附近的采集点)采集流量数抓;对每个数抓包进行分类井统计相关流量信息(如协议和端口使用量等),将这此统计伯保存到特定的存储结构:并采用异常检测模块对这此流量数抓进行分析;对于识别出的异常流量分析特征,并通过修改防火墙的规则或者受害主机隔离等方式来抑制和阻断这此网络攻击的进一步发展。最后,安全答理人员可以通过人机交互模块对查看系统的工作状态并对系统进行配置和管理4 。事件数据库报警和响应模块异常检测模块流量统计模块流量采集模块人机交互界面 图3-4 系统的体系结构图3.4中的5个模块的功能分别如下:(1)流量采集模块。局域网的总出或者网络中被监控的核心服务器附近设置流量采集点,采集所有流经该采集点的流量数据;(2)流量统计模块。对所有捕获的网络数抓包进行拆分,统计各种协议的包的协议类型、源/目标地址、端口大小、标识位等信息。然后,该模块以分钟为时间粒度,统计网络带宽利用率、单播/非单播包比率、应用层协议包数量, SYN(SYN+ACI包比率等统计量进行存储,等待进一步的处理;(3) 异常检测模块。该模块通过分析特定网络流量(比如每秒新的TCP连接数量)来检测当前是否存在流量异常,比如当每秒新的TCP连接数量超过一定阈值,系统将会生产流量异常报警(可能是SYN洪水攻击);(4)报警和响应模块。如果检测到异常流量 ,先需要报警,使系统和系统答理员可以根抓情况选择小同的处理方法。然后,系统根抓报警级别和安全响应策略采取两种更为主动的响应方式,即防火墙联动和主机隔离;(5)人机交互界而。采用基于Web的用户管理,通过该交互界面可以实现信息查看,阐值设定以及处理报警等功能。系统应该对于检测出的异常主机进行标记,标记异常的类型、统计量、阂值指标,消息以及异常发生的时间等情况,给系统答理员报告一个异常信息。3.2.2 漏洞扫描子模块设计漏洞扫描子模块是漏洞扫描功能的实现线程(分为FTP漏洞扫描,FINGER漏洞扫描和SMTP漏洞扫描3种),其流程包括创建一个socket,设定发送方参数(SOCKADDR_IN数据结构),连接端口(connect函数),根据connect函数的返回值确定端口是否开放,若端口开放,则接收返回值(recv),根据返回值确定发送值发送给目标端口(send),等待若干时间后继续接收,判断返回值确定目标主机是否存在漏洞,直到全部数据发送,接收完毕。其流程如图3.5。 图3-5 漏洞扫描流程图3.3 本章小结本章主要介绍系统的整体设计方案和关键线程的详细设计。整个系统以UI接口类为主要界面进行用户信息交互,通过用户设定的初始参数决定流量分析模块和漏洞扫描模块的调用。流量分析模块和漏洞扫描随之创建子线程进行具体的探测和扫描操作。充分体现了分层设计的优势,各个层次之间设计简洁,调用方便,易于维护。流量分析子线程和漏洞扫描子线程通过调用winsock函数进行,主要过程为创建一个socket,设定发送方参数,连接端口,确定端口是否开放,接收返回值,发送数据给目标端口,判断返回值以确定目标主机是否有流量异常及开放端口或者存在漏洞。第四章 系统的实现4.1 系统的运行界面系统包括3部分框架:即漏洞扫描与端口探测、流量监控、安全检测。如下图系统主界面的漏洞扫描,其运行步骤是先加载漏洞,可以选择需要扫描的漏洞,中间为扫描结果和各种状态的输出,最下方为功能按钮,可以开始,停止扫描和退出程序,并辅助进度条说明当前的扫描进度。图4-1 系统主界面4.2 漏洞分析与端口探测详解4.2.1 参数设定部分:图4-2 参数设定目标IP:要扫描主机的IP地址,用IP AddressControl控件实现端口探测:标示端口探测是否选中的复选框(CheckBox)漏洞扫描:标示漏洞扫描是否选中的复选框(CheckBox)漏洞选择部分:图4-3 漏洞选择加载漏洞:选择加载漏洞的复选列表框(CListBox)添加:从列表框中添加一个漏洞(CButton)删除:从列表框中删除已有的漏洞(CButton)文本输出部分:图4-4 文本输出文本框:输出扫描的当前结果以及各种参数设定(CEdit)复制:复制文本框中的内容至剪贴板清除:清楚文本框中的内容4.2.2 功能按钮部分:图4-4 功能按钮当前进度:表示当前任务运行的进度,用CProgress Control控件实现开始扫描:开始扫描任务(CButton)停止扫描:停止正在扫描的线程(CButton)退出:退出程序(CButton)4.2.3 漏洞扫描功能演示图4-5 漏洞扫描图示当前IP地址是:端口未扫描选中.漏洞扫描选中.3(3)个漏洞扫描被选中.FINGER漏洞扫描开始目标没有开放FINGER服务.FTP漏洞扫描开始FTP服务器的Banner:220-Microsoft FTP Service 220 test测试匿名用户530 User anonymous cannot log in.根目录列表:530 Please login with USER and PASS.尝试改变主目录属性为可写:530 Please login with USER and PASS.尝试建立目录:530 Please login with USER and PASS.尝试执行Shell:530 Please login with USER and PASS.FTP漏洞扫描完成!SMTP漏洞扫描开始SMTP服务器的Banner:220 nyn-40d5422c814 Microsoft ESMTP MAIL Service, Version: 6.0.2600.2180 ready at Mon, 28 May 2007 22:53:33 +0800 214-This server supports the following commands:214 HELO EHLO STARTTLS RCPT DATA RSET MAIL QUIT HELP AUTH BDAT VRFY可以使用RCPT命令获得用户名列表.可以使用VRFY命令获得用户名列表.超时错误!漏洞扫描完成!图4-6 漏洞扫描输出文本以上为漏洞扫描对IP地址为(即本机IP地址)的扫描结果。4.3 流量分析系统详解:4.3.1 参数设定部分: 如漏洞分析部分,设定目标IP目标IP:要扫描主机的IP地址,用IP AddressControl控件实现4.3.2 实时监控部分:实时监控目标IP的网络流量:图4-7 流量监控系统主界面4.3.3 流量统计:初始值如下:图4-8 网络流量初始值总流量获取:图4-9 网络流量截取报警数据设置:设定固定的报警数据,若被监控IP的网络流量达到系统所设定的值,系统将自动报警,图示如下: 图4-10 报警数据设置系统实现与测试原型系统在Windows 2000环境采用VC+6.0开发,采用SQL Sever 2000作为安全事件数抓库、安全日志、安全响应策略库等的后台数抓库。实验结果表明,本文设计和实现的网络流量异常检测原型系统对于网络扫描, Dos/Ddos,蠕虫等类型的网络攻击和入侵具有明显的检测效果。但是,相对于纷繁变化的网络攻击手段,软硬件环境和统计分析技术的缺陷.系统的异常检测能力还
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年考题解析护士执业资格考试模拟题
- 2025年文物遗址保护服务项目提案报告模范
- 2025年初高中衔接专题“身心健康、有效‘双减’、学习意识与教育理念”判断方法阐释与训练++
- 2024-2025学年七年级下学期语文期中试题汇编《写作》含解析
- 母亲给女儿做的数学试卷
- 2025年特种作业类危险化学品安全作业光气及光气化工艺作业-聚合工艺作业参考题库含答案解析
- 2025年建筑工程类环境影响评价工程师技术导则与标准-技术导则与标准参考题库含答案解析
- 2025年建筑工程类注册安全工程师安全生产法律法规-安全生产专业实务(煤矿安全)参考题库含答案解析
- 2025年建筑工程类注册安全工程师安全生产专业实务(化工安全)-安全生产专业实务(其他安全)参考题库含答案解析
- 2025年四川省遂宁市射洪一中中考数学二诊试卷
- 第四章 土地估价方法-成本法
- GB/T 43198-2023食品包装用聚乙烯吹塑容器
- 从力的做功到平面向量数量积说课稿省名师优质课赛课获奖课件市赛课百校联赛优质课一等奖课件
- 骨科常见体位和摆放课件
- 数字电路逻辑设计(第3版)PPT全套完整教学课件
- 中国传统文化概论绪论
- 这么写网约车事故索赔误工费的起诉状更容易胜诉
- 固体废物污染环境防治法课件
- 2022年高校教师资格证(高等教育学)考试题库评估300题有解析答案(四川省专用)
- 精装修安全文明施工方案
- 肺结核共45张课件
评论
0/150
提交评论