收藏 分享(赏)

网络安全状况监控分析系统的设计与实现.doc

上传人:wo7103235 文档编号:6253212 上传时间:2019-04-03 格式:DOC 页数:45 大小:683KB
下载 相关 举报
网络安全状况监控分析系统的设计与实现.doc_第1页
第1页 / 共45页
网络安全状况监控分析系统的设计与实现.doc_第2页
第2页 / 共45页
网络安全状况监控分析系统的设计与实现.doc_第3页
第3页 / 共45页
网络安全状况监控分析系统的设计与实现.doc_第4页
第4页 / 共45页
网络安全状况监控分析系统的设计与实现.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、厦门大学本科生论文本科毕业论文(科研训练、毕业设计)题 目:网络安全状况监控分析系统的设计与实现姓 名:学 院:软件学院系:软件工程系专 业:软件工程年 级: 学 号:指导教师(校内): 职称: 年 月 日厦门大学本科生论文摘 要随着计算机网络和应用的迅速发展,特别是电子银行、电子商务的兴起,网络安全问题也日益突出起来。同时,由于目前入侵检测系统普遍存在的误报率高、报警信息兀余现象严重和对入侵表述能力不强的缺陷,我们有必要掌握好网络安全监控方面的技术,以达到在入侵事件发生之前进行安全监控的目的。通过调查统计表明,有效的应用网络安全监控技术,大大降低了系统的检测成本。本文对基于网络流量分析的入侵

2、检测和漏洞分析进行了研究,实践和探索。该系统基于Visual C+.net 开发平台,运用 winsock,snort、SQL 、多线程,MFC 等技术作为开发手段,在简洁良好的图形界面环境下实现了对目标主机的流量分析以及常见漏洞的扫描分析等功能。关键词 安全监控 漏洞扫描 流量分析 Snort厦门大学本科生论文AbstractWith the application of computer networks and the rapid development,especially E-banking and the rise of e-commerce, Network Security b

3、ecomes 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

4、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,

5、 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 S

6、afety 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 Mi

7、crosoft 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 功能按钮部分:

8、.224.2.3 漏洞扫描功能演示 .224.3 流量分析系统详解: .244.3.1 参数 设定部分: .244.3.2 实时监控部分: .244.3.3 流量统计: .244.4 本章小结 .26第五章 总 结 .27致 谢 .28参考文献 .29厦门大学本科生论文ContentsChapter 1 Introduction.111 Papers on the background and significance .112 Main c ontent.113 organizational structure .2Chapter 2 Basic concepts and tools.32.

9、1 Basic concepts and technology.32.1.1 Port Introduction.32.1.2 Snort Introduction.42.1.3 TCP/IP Introduction.62.1.4 Multithreading Profile.82.1.5 Winsock Introduction.92.1.6 Winsock Introduction.102.2 tools and the introduction.132.2.1 Microsoft Visual Studio .net.132.2.2 Microsoft Visual C+.132.3

10、Summary.13Chapter 3 System Design.1431 Overall system design .143.1.1 Introduction to Design.143.1.2 Introduction system processes.153.1.3 System of classes and objects.163.2 The detailed design.173.2.1 Traffic analysis module design and test.173.2.2 Vulnerability scanning module design.183.3 Summar

11、y.19Chapter 4 System Implementation.2041 Operation interface .204.2 Vulnerability analysis and detection.214.2.1 Set some parameters.214.2.2 function button.224.2.3 Vulnerability Scan Demo.224.3 Detailed Explanation traffic analysis.244.3.1 Set some parameters.244.3.2 Real-time monitoring of the.244

12、.3.3 Traffic statistics.244.4 Summary.26Chapter 5 Outlook.27Acknowledgements.28References .29厦门大学本科生论文1第一章 绪 论1.1 论文研究的背景及意义随着网络技术在世界及中国各个领域应用的深入开展,人们在得益于信息革命所带来的新的巨大机遇的同时,也不得不面对信息安全问题的严峻考验。由于系统安全脆弱性的客观存在,操作系统、应用软件、硬件设备不可避免地会存在一些安全漏洞,网络协议本身的设计也存在一些安全隐患,这些都为黑客入侵系统提供了可乘之机。据美国金融时报报道,世界上平均每 20 秒就发生一次入侵国

13、际互联网络的计算机安全事件,仅美国每年因此造成的损失就高达 100 亿美元。近年来,严重的互联网安全事件层出不穷,2000 年 2 月 8 日到10 日,黑客首次成功地攻击了号称“世界上最可靠的网站之一”的 yahoo!,三天后,又攻击了 eBay, F-Trade 和 Amazon 等近十家著名网站,使这些网站相继瘫痪;2000 年 10 月 28 日,美国微软公司的电脑系统几天内被“黑” ,生产软件的源代码被窃,新开发的 Windows 和Office 产品的具体计划可能被盗;2001 年 7 月出现的 Code Red 红色警戒病毒,引发了全球连锁性的宽带拥塞风暴,据专家分析,全球有超过

14、 36 万台计算机遭受该病毒感染,损失高达12 亿美元;2003 年 1 月 25 日,互联网遭到全球性的病毒蠕虫王 Win32.SQL,Exp.Worm 攻击,亚洲、北美和欧洲的网络全都陷入了瘫痪或者半瘫痪的状态,全世界范围内损失额高达 12亿美元。随着网络安全事件的频繁发生,网络安全防范的重要性和必要性也愈加凸显,网络安全问题己经引起各国、各部门,各行各业以及每个计算机用户的充分重视,据市场研究公司 Input 发表的研究称,联邦机构 IT 安全开支将稳步增长,到 2008 年将达到 60 亿美元。 随着各种网络攻击手段的多元化、复杂化、智能化,单纯依赖防火墙等静态防御系统甚至各种入侵检测

15、动态系统也不能很好的达到保护好计算机的安全问题时,我们就需要在做好入侵检测的同时还要掌握网络安全监控的技术,对远程网络及本机的后台程序进行有效的监控,才能更好的保护好自己的电脑安全。1.2 主要研究内容本文主要工作围绕网络安全监控系统的设计与实现展开,主要包括中心管理平台的设计与开发、流量分析技术和漏洞扫描技术研究与实现以及整个原型系统的搭建。主要工作包括:厦门大学本科生论文2(1) 流量分析模块的设计与实现。网络流量可以从一个侧面反映出系统当前的安全状态和运行情况,本论文基于 WINPCAP 协议,设计并开发了一个网络流量分析模块,该模块能够完成针对不同协议的网络流量统计分析工作;(2) 漏

16、洞分析模块的设计与实现。在本论文所设计的监控系统中,引入漏洞分析的目的主要在于对系统需要进行安全评估的主机进行安全扫描,以确定其是否处于安全状态。漏洞分析模块基于 WINSOCK 采用 VC+6.0 完成开发。(3) 中心管理平台的设计与实现。该平台可以向管理员提供当前系统安全状态信息(包括流量数据和来自底层入侵检测系统的报警) ,并可以根据当前的安全评估要求调用漏洞分析模块对目标主机进行漏洞分析。1.3 本论文组织结构本论文结构如下:第一章:绪论。介绍本论文的课题背景,主要研究内容和和组织结构。背景主要介绍了当今网络的重要性和以及网络安全现状。主要研究内容介绍了基于网络的流量分析的入侵检测原

17、理和过程(snort 的应用) ,网络漏洞的产生和基本情况。第二章:基本概念和工具。介绍本系统使用的技术,如 snort,TCP/IP 网络协议的起源及分层结构,端口功能简介,多线程技术和 winsock 技术等。以及系统的开发环境:Microsoft Visual Studio .net,Microsoft Foundation Class 等。第三章:系统的设计。主要介绍系统的架构,设计模式,类之间的关联(类图) ,系统运行的整体流程和详细的图表说明。以及系统详细设计,主要包括流量分析模块和漏洞扫描子模块 2 个部分。第四章:系统的实现。简要说明了系统的运行界面,包括系统各个部分的功能和各

18、个控件的作用。并演示了网络流量的截取、报警设置和漏洞扫描功能的执行结果。第五章:总结。总结了系统设计的经验以及个人对系统的评价等。厦门大学本科生论文3第二章 基本概念和工具本系统以 Visual C+.net 作为开发平台,用 snort 技术来进行基于网络流量分析的入侵检测,利用 TCP/IP 协议和 winsock 技术进行端口探测和漏洞分析。因此本章将从端口开放、网络协议、winsock、snort 技术等方面进行介绍。2.1 基本概念及其技术2.1.1 端口功能简介端口是计算机与外界通讯交流的出口。应用程序通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应

19、的进程所接收,相应进程发给传输层的数据都从该端口输出。在 TCP/IP 协议的实现中,端口操作类似于一般的 I/O 操作,进程获取一个端口,相当于获取本地唯一的 I/O 文件,可以用一般的读写方式访问类似于文件描述符,每个端口都拥有一个叫端口号的整数描述符,用来区别不同的端口。按端口号可分为 3 大类:(1)公认端口(WellKnownPorts):从 0 到 1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80 端口实际上总是 HTTP 通讯。(2)注册端口(RegisteredPorts):从 1024 到 49151。它们松散地绑定于

20、一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从 1024 左右开始。(3)动态和/或私有端口(Dynamicand/orPrivatePorts):从 49152 到 65535。理论上,不应为服务分配这些端口。实际上,机器通常从 1024 起分配动态端口。但也有例外:SUN的 RPC 端口从 32768 开始。端口扫描用于判断目标主机的端口是否开放。从黑客的角度讲,攻击一台联网主机首先必定是寻找对方开放了哪些网络服务,即便该主机可能有防火墙保护,只要它开放了一些网络服务,那么其安全性就会大大降低。而获得目标主机是否开放某些服务,最好的办

21、法就是厦门大学本科生论文4尝试连接该服务所对应的端口。其工作原理为向扫描对象的 TCP/UDP 端口发送连接请求,根据对方的回应判断端口是否开放。具体流程将在 Winsock 函数中进行介绍。表 2-1 常见端口列表7 回送(Echo)13 日期时间(Daytime)15 网络状态(Netstat)20 FTP 数据(FTP-Data)21 FTP 控制(FTP)23 终端连接(Telnet)25 简单邮件传输协议(SMTP)37 时间(Time)53 域名服务器(DNS)67 引导协议服务器(Bootps)68 引导协议客户(Bootpc)69 简单文件传输协议(TFTP)80 Web 服务

22、(HTTP)110 邮件协议第 3 版(POP3)118 SQL 服务(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 me

23、ssage 或者单独的 alert 文件。Snort 可以通过命令进行交互,并对可选的BPF(Berkeley Packet Filter)命令进行配置。Snort 安装在一台主机上就可以对整个子网进行监视,图 2-1 给出了 Snort 的典型运行环境。厦门大学本科生论文5图 2-1 SNORT 的典型运行环境表 2-2 snort 所支持的操作系统类型snort 由三个重要的子系统构成:数据包解码器、检测分析引擎和日志/报警系统。(1)数据包解码器数据包解码器主要是对各种协议栈上的数据包进行解析、预处理,以便提交给检测分析引擎进行规则匹配。解码器运行在各种协议栈之上,从数据链路层到传输层,

24、最后到应用层。目前,Snort 解码器支持的协议包括 Ethernet、SLIP 和 raw(PPP) data-link 等(2)检测分析引擎Snort 用一个二维链表存储它的检测规则,其中一维称为规则头,另一维称为规则选项。规则头中放置的是一些公共的属性特征,而规则选项中放置的是一些入侵特征。为了提高检测分析的速度,通常把最常用的源/目的 IP 地址和端口信息放在规则头链表中,而把一些独硬件/操作系统 X86 Sparc M68k/PPC Alpha OtherLinux OperBSD FreeBSD NetBSD Solaris SunOS 4.1x HP-UX AIX IRIX Tr

25、u64 MacOS X Server Win32(Win9x/NT/2k/xp) 网络Snort 主机主机 主机 主机厦门大学本科生论文6特的检测标志放在规则选项链表中。规则匹配查找采用递归的方法进行,检测分析机制只针对当前已经建立的链表选项进行检测。当数据包满足一个规则时,就会触发相应的操作。Snort 的检测机制非常灵活,用户可以根据特定需要对规则链表进行修改和增减。(3)日志/报警系统日志和报警系统可以在运行 Snort 的时候以命令行交互的方式进行选择,目前可选择的日志形式有三种: 数据包解码后的文本形式 tcpdump 的二进制形式 关闭日志Snort 的报警形式可以分成五种: 将报

26、警信息发送到系统日志 将报警信息以完全方式发送到报警文件中 将报警信息以快速方式发送到报警文件中 通过 Samba 发送 WinPopup 信息 关闭报警2.1.3 TCP/IP 协议简介TCP/IP 是为互联网开发的第一套协议,是在 60 年代由麻省理工学院和一些商业组织为美国国防部开发的。TCP/IP 协议是支持 Internet/Intranet 的基本通信协议。传输控制协议 TCP(Transmission Control Protocol)负责数据的流量控制,并保证传输的正确性。网际协议 IP(Internet Protocol)负责将数据从一处传往另一处。TCP/IP 协议具有广泛

27、的兼容性和可伸缩性,可连接不同的计算机网络协议、不同的网络设备。TCP/IP 已成为网络互连事实上的标准,并成为支持 Internet/Intranet 的协议标准。图 2-2 TCP/IP 分层厦门大学本科生论文7从协议分层模型方面来讲,TCP/IP 由四个层次组成:网络接口层、网络层、传输层、应用层。 网络接口层:这是 TCP/IP 软件的最低层,负责接收 IP 数据报并通过网络发送之,或者从网络上接收物理帧,抽出 IP 数据报,交给 IP 层。 网络层:负责相邻计算机之间的通信。其功能包括三方面。一、处理来自传输层的分组发送请求,收到请求后,将分组装入 IP 数据报,填充报头,选择去往信

28、宿机的路径,然后将数据报发往适当的网络接口。二、处理输入数据报:首先检查其合法性,然后进行寻径-假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。三、处理路径、流控、拥塞等问题。 传输层:提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。 应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录 TELNET 使用 TELNET 协议提供在网络其它主机上注册的接口。TELNET 会话提供了基于字符的虚拟终端。

29、文件传输访问 FTP 使用 FTP 协议来提供网络内机器间的文件拷贝功能。厦门大学本科生论文8图 2-3 TCP/IP 协议的通讯模式2.1.4 多线程技术简介线程(Thread)是进程(Process)中的一个实体,是被系统独立调度和分派的基本单位。线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。 线程是程序中一个单一的顺序控制流程, 它和进程的区别在于,子进程和父

30、进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。线程的周期包括新建,就绪,运行,阻塞,死亡 5 个阶段。在 MFC 中,线程分为用户界面线程和工作者线程 2 种。这 2 种之间的区别是 UI 线程有消息循环,而工作者线程没有。UI 线程能够创建窗口并处理发送给这些窗口的消息,而工作者线程执行后台任务,并不需要处理窗口和消息循环。由于多线程的执行在应用程序中是异步的,适当的运用多线程技术虽然增加了代码的额外复杂度,却可以极大的提高程序的响应性能。工作者线程适合于执行孤立的任务,这些任务能够与应用程序的其他部分相互脱离,并且能够在前台进行其

31、他处理时在后台执行这些任务,有效的降低了程序的等待时间,提高了运行的效率。在 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);作用:根

32、据输入的线程类型创建一个新线程,并将 LPVOID 类型的指针作为参数传递给新创建的线程。参数:pfnThreadProc:指向要创建线程类型的工作者线程指针(一般为 UINT 定义类型) ,不能为空。pParam:传递给要创建线程参数指针,类型由 pfnThreadProc 函数定义。厦门大学本科生论文9nPriority:要创建线程的优先级,为 0 则优先级于创建该线程的线程相同。nStackSize:指定要创建线程德堆栈大小,以字节为单位。dwCreateFlags:函数调用的执行方式。lpSecurityAttrs:设定要创建线程的安全级别。返回值:若成功,则返回指向新创建线程的指针。

33、2AfxEndThread()声明:void AFXAPI AfxEndThread(UINT nExitCode, BOOL bDelete = TRUE);作用:终止正在执行的某个线程参数:nExitCode:指定线程的退出值bDelete:为 true 则将该线程从内存中释放返回值:无3. WaitForSingleObject() 声明:DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds);作用:在等待时间内判断线程或对象是否已经正常中止或有响应。参数:hHandle:线程或对象的句柄。 dwMillisecon

34、ds:线程的等待时间,以毫秒为单位返回值:若函数成功,则返回线程结束的事件,可以为 WAIT_ABANDONED(该线程作为互斥线程,在调用该线程的线程结束之前无法中止) ,WAIT_OBJECT_0(线程有响应,并且已经正常中止) ,WAIT_TIMEOUT(超过规定的等待时间,强制退出) 。2.1.5 Winsock 技术简介WindowsSockets 规范以 U.C.Berkeley 大学 BSDU NIX 中流行的 Socket 接口为范例定义了一套 Micosoft Windows 下网络编程接口。它不仅包含了人们所熟悉的 Berkeley Socket风格的库函数;也包含了一组针

35、对 Windows 的扩展库函数,以使程序员能充分地利用Windows 消息驱动机制进行编程。厦门大学本科生论文10WindowsSockets 规范本意在于提供给应用程序开发者一套简单的 API,并让各家网络软件供应商共同遵守。此外,在一个特定版本 Windows 的基础上,Windows Sockets 也定义了一个二进制接口(ABI ),以此来保证应用 WindowsSockets API 的应用程序能够在任何网络软件供应商的符合 Windows Sockets 协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。遵守这套 W

36、indowsSockets 规范的网络软件,我们称之 WindowsSockets 兼容的,而WindowsSockets 兼容实现的提供者,我们称之为 Windows Sockets 提供者。一个网络软件供应商必须百分之百地实现 Windows Sockets 规范才能做到现 Windows Sockets 兼容。任何能够与 WindowsSockets 兼容实现协同工作的应用程序就被认为是具有WindowsSockets 接口。我们称这种应用程序为 WindowsSockets 应用程序。WindowsSockets 规范定义并记录了如何使用 API 与 Internet 协议族(IPS,

37、通常我们指的是 TCP/IP)连接,尤其要指出的是所有 WindowsSockets 实现都支持流套接口和数据报套接口应用程序调用 WindowsSockets 的 API 实现相互之间的通讯。WindowsSockets 又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。图 2-4 WindowsSockets 工作原理厦门大学本科生论文112.1.6 常用 Winsock 函数介绍1htons()声明:u_short htons(u_short hostshort);作用:将主机的无符号短整形数转换成网络字节顺序。参数:hostshort:主机字节顺序表达的 16 位数返回值:

38、返回一个网络字节顺序的值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);作用:创建一个对应于特定服务的套接

39、口参数:af:一个地址描述,目前仅支持 PF_INET 格式,就是 ARPA Internet 地址格式type:新套接口的类型描述。目前包含 2 种协议类型:SOCK_STREAM 提供一个可靠的,双向的,面向连接的流协议,主要用于 TCP 协议通讯。SOCK_DGRAM 提供不可靠,无连接的协议,主要用于 UDP 协议通讯。protocol:套接口所用的协议。通常设置为 0。返回值:若无错误发生,返回引用新套接口的描述字。否则返回 SOCKET_ERROR 错误,可以用 WSAGetLastError()获取相应错误代码。厦门大学本科生论文124connect()声明:int connec

40、t(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:包含待发送数

41、据的缓冲区len:缓冲区中的数据长度flags:调用执行方式返回值:若无错误发生,返回所发送数据的总数(可能小于 len 规定的大小) 。否则返回一个 SOCKET_ERROR 错误,可以用 WSAGetLastError()获取相应错误代码。6recv()声明:int recv(SOCKET s, char* buf, int len, int flags);作用:从一个套接口接收数据参数:s:一个标识已连接套接口的描述字buf:用于接收数据的缓冲区len:缓冲区的长度flags:指定调用方式返回值:若无错误发生,返回读入的字节数。如果连接中断,返回 0。否则返回一个厦门大学本科生论文13S

42、OCKET_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 St

43、udio.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+编译器

44、,而且是一个基于 Windows 操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+由许多组件组成,包括编辑器、调试器以及程序向导 AppWizard、类向导 Class Wizard 等开发工具。 这些组件通过一个名为 Developer Studio 的组件集成为和谐的开发环境。厦门大学本科生论文142.3 本章小结本章前半部分主要详细介绍本系统开发所涉及的基本概念,包括 Ipv6 协议、Snort、TCP/IP 协议,多线程的概念及相关函数,Winsock 作用及其相关函数。后半部分主要介绍系统所采用的一些开发

45、工具如 Microsoft Visual Studio .net 和其下的 Visual C+ .net,帮助理解开发过程中所涉及的最新技术。厦门大学本科生论文15第三章 系统的设计设计是软件开发的基础,对整个系统的开发过程起着决定性的影响。本章将介绍本系统的总体设计方案,包括系统的设计模式,流程图,UML 图等。以及系统的详细设计方案,包括各个模块的具体设计等。3.1 系统整体设计方案3.1.1 设计模式简介本系统利用以中心管理平台作为用户交互的 UI 接口,接受用户输入调用漏洞和流量分析。其功能需要调用 Windows API 函数和 Snort 规则来执行。其中流量分析模块和漏洞探测模块

46、作为主线程,分别创建和调用各个子工作者线程实现程序的主要功能。完成后返回给程序主界面作为反馈给用户的结果。系统整体模式如图 3.1 所示。中心管理平台入侵检测系统 snort流量分析模块漏洞扫描模块数据库流量数据报警信息分析结果管理员图 3-1 系统整体模式图厦门大学本科生论文163.1.2 系统流程简介本系统开始运行后等待用户设定参数,通过判断流量分析和漏洞扫描选项是否选中进行下一步的操作。若流量分析选中,则创建子线程开始工作,主线程等待结果,最终输出结果,返回等待状态。若漏洞扫描选中,则依次判断各个漏洞扫描选项是否选中,最终输出结果,返回等待状态。具体流程如图 3.2图 3-2 系统的运行

47、流程厦门大学本科生论文173.1.3 系统的类和对象本系统主要包含 5 大类:UI 接口类,snort 流量分析线程,漏洞扫描线程,流量分析子线程,漏洞扫描子线程。其中 UI 接口类是整个程序的主类,负责调用和创建基于流量分析的 snort 入侵检测线程和漏洞扫描线程,以及更新各个控件的当前状态,输出要表达的计算结果等。基于流量分析的 snort 入侵检测线程和漏洞扫描线程用来控制 snort 扫描子线程和漏洞扫描子线程的多线程运算,提高系统的整体效率和响应能力。流量分析子模块和漏洞扫描子模块是系统的关键部分,程序的主要功能都在这里实现。其类图如图 3.3图 3-3 系统的类图厦门大学本科生论

48、文183.2 系统的详细设计3.2.1 流量分析功能模块设计与测试根据系统的功能需求,可以将流量异常检测原型系统分成 5 个基木模块:流量采集模块、流量统计模块、量异常检测模块,报警和响应模块以及人机交互界而。系统的体系结构如图1 所示。系统的下作原理是:在局域网的总出口(或被监控的核心主机附近的采集点 )采集流量数抓; 对每个数抓包进行分类井统计相关流量信息( 如协议和端口使用量等),将这此统计伯保存到特定的存储结构:并采用异常检测模块对这此流量数抓进行分析 ;对于识别出的异常流量分析特征,并通过修改防火墙的规则或者受害主机隔离等方式来抑制和阻断这此网络攻击的进一步发展。最后,安全答理人员可

49、以通过人机交互模块对查看系统的工作状态并对系统进行配置和管理 4 。事件数据库 报警和响应模块异常检测模块流量统计模块流量采集模块人机交互界面图 3-4 系统的体系结构图 3.4 中的 5 个模块的功能分别如下:(1)流量采集模块。局域网的总出或者网络中被监控的核心服务器附近设置流量采集点,采集所有流经该采集点的流量数据;(2)流量统计模块。对所有捕获的网络数抓包进行拆分,统计各种协议的包的协议类型、厦门大学本科生论文19源/目标地址、端口大小、标识位等信息。然后,该模块以分钟为时间粒度,统计网络带宽利用率、单播/非单播包比率、应用层协议包数量, SYN(SYN+ACI包比率等统计量进行存储,等待进一步的处理;(3) 异常检测模块。该模块通过分析特定网络流量(比如每秒新的 TCP 连接数量)来检测当前是否存在流量异常,比如当每秒新的 TCP 连接数量超过一定阈值,系统将会生产流量异常报警(可能是 SYN 洪水攻击) ;(4)报警和响应模块。如果检测到异常流量 ,先需要报警,使系统和系统答理员可以根抓情况选择小同的处理方法。然后,系统根抓报警级别和安全响应策略采取两种更为主动的响应方式,即防火墙

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报