




免费预览已结束,剩余50页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文(科研训练、毕业设计)题 目:网络安全监控系统中漏洞扫描模块的研究与设计姓 名:学 院:软件学院系:专 业:软件工程年 级: 学 号:指导教师: 职称: 年 月48摘要自从计算机进入人类历史以来,它就日益改变着人类的生活,在人们生活中扮演着越来越重要的角色。以网络方式获取信息和交流信息已成为现代信息社会的一个重要特征。互联网作为当代社会传播信息资源的工具已经越来越重要。网络已经成为当今社会人们生活中必不可少的一部分。而随着计算机网络越来越复杂,网络安全己变得日益重要,要求网络安全对网络变化做出快速反应,以及大型网络安全提供必要的手段等等。网络安全监控分析系统作为网络安全的一个重要的基础系统,对网络的安全进行实时的监控,为网络黑客攻击防范工作起到了最重要的作用。我们所设计的网络安全监控分析系统是运用winsock,多线程,MFC,Snort等技术并基于WINPCAP进行开发的,采用VisualC+作为开发平台,MySQL作为后台的数据库管理系统,提供良好的用户管理界面,可以实现对本地网络安全的实时监控、统计分析。论文中阐述了在网络安全监控系统中漏洞分析模块的设计与实现,并通过实际测试对其性能进行验证。关键词 漏洞分析 多线程 WinsockAbstractSince the computer came into the human beings history,they change the peoplelife a lot,and play a more and more important role. The way to obtain and exchange information through the Internet has become an important feature of the modern information society. Internet as a resource tool for the dissemination of information in contemporary society has become increasingly important. The network has become an essential part of societys life.As computer networks become more complex, network security has become increasingly important for the network to react quickly to changes in the security of the network, as well as for the security of large networks with the necessary means, and so on. Network security system, as an important foundation system of the network security, conducts a real-time monitoring to the network security 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 technique of winsock,multithreading,MFC,Snort and WinPcap to develop, uses Visual C+ a development platform, MySQL as the background database management system. It can achieved on real-time monitoring and statistical analysis on Local network security. In the paper on network security monitoring system of loopholes in the design and implementation of the modules, and through practical test to verify its performance.Key words: Analysis of the loopholes, Denial of Service Attacks, Winsock目录第一章绪论11.1课题背景11.2主要研究内容21.3论文组织结构2第二章基本概念和开发工具32.1 基本概念介绍32.1.1以太网简介32.1.2 IP/TCP、UDP、ICMP、Winpcap协议32.1.3 端口、多线程、Winsock及其常用函数介绍62.1.4 snort简介122.2 设计工具介绍132.2.1 Microsoft VS .net简介132.2.2 Microsoft Visual C+简介142.2.3 MySQL简介152.2.4 MFC简介16第三章系统详细设计173.1系统开发目的和设计目标173.2 系统整体设计思想173.3 三大模块详细设计方案183.3.1 漏洞扫描与端口探测183.3.2 流量监控203.3.3 入侵检测29第四章系统实现304.1 系统运行主界面304.2 系统功能演示304.2.1 漏洞扫描与端口探测功能304.2.2 流量监控与分析功能324.2.3 入侵检测功能36第五章 总结37参 考 文 献38致 谢39ContentsChapter1 Introduction11.1 Subject Background11.2 Main Content21.3 Papers Organizational Structure2Chapter2 Basic Concept and Design Tools32.1 Introducing of Basic Concept32.1.1 Ethernet32.1.2 IP/TCP、UDP、ICMP、Winpcap Protocols32.1.3 Port、Multithreading、Winsock and Usual Function62.1.4 Snort122.2 Introducing of Design Tools132.2.1 Microsoft VS .net132.2.2 Microsoft Visual C+142.2.3 MySQL152.2.4 MFC16Chapter3 Detail of System Design173.1Purpose and Aim173.2 Design Ideas173.3 Design Programme of The Three Main Part183.3.1 Network Vulnerability Scan and Port Scan183.3.2 Flow Analysis203.3.3 Intrusion Detection29Chapter4 System Implementation304.1 Main Interface of the System304.2 Function Show304.2.1 Network Vulnerability Scan and Port Scan304.2.2 Flow Analysis324.2.3 Intrusion Detection36Chapter5 Conclusions37References38Acknowledgement39第一章 绪论1.1课题背景由于互联网的发展,信息安全的内涵也就发生了根本的变化。它不仅从一般性的防卫变成了一种非常普通的防范,而且还从一种专门的领域变成了无处不在。当人类步入这一信息社会、网络社会的时候,一套完整的网络安全体系必不可少。当今社会是一个信息化社会,计算机通信网络在政治、军事、金融、商业、交通、电信、文教等方面的作用日益增加。社会对计算机网络的依赖也日益增强,尤其是计算机技术和通信技术相结合所形成的信息基础设施已经成为反映信息社会特征最重要的基础设施。人们建立了各种各样完备的信息系统,使得人类社会的一些机密和财富高度集于计算机中。但是这些信息系统都是依靠计算机网络接受和处理信息,实现其相互间的联系和对目标的管理、控制。随着网络上各种新业务的兴起,比如电子商务、电子现金、数字货币、网上银行等的兴起,数据的保密问题显得十分重要。由于互联网早期设计的缺陷,在广泛普及的同时越来越多的安全问题开始暴露出来。在人类进入信息时代的今天,人们对重要信息,小到个人隐私,个人虚拟财产,大到商业机密,国家安全机密的重视程度与日俱增。信息网络已经成为社会发展的重要保证。信息网络涉及到国家的政府、军事、文教等诸多领域。包括政府宏观调控决策、商业经济信息、银行资金转帐、股票证券、能源资源数据、科研数据等重要信息。其中有很多是敏感信息,甚至是国家机密,难免会吸引来自世界各地的各种人为攻击(例如信息泄漏、信息窃取、数据篡改、数据删添、计算机病毒等)。同时,网络实体还要经受诸如水灾、火灾、地震、电磁辐射等方面的考验。因此即使是一个非常普通的电脑应用者,都应该拥有一个可以保障自身信息安全的网络安全检测系统,了解一点信息安全知识。1.2主要研究内容互联网络中,无论是应用业务种类还是流量规模都在飞速发展。不断变化的网络需要相应灵活的监控工具帮助网络管理者及时了解网络状态,以便于进行网络规划及故障排除。目前,网络安全问题正受到越来越多的关注,我们有必要认真地去认识它、了解它,并最终应用它,让它帮助我们解决各种各样的网络问题。本文设计完成的网络安全监控分析系统是以监控用户网络流量情况、扫描安全漏洞、防范黑客攻击进行入侵检测为主要目的而进行开发的。基于Winpcap 协议来完成网络数据包的捕获,通过对所捕获数据包的内容进行统计分析,完成对网络流量的监控分析和对可能发生的拒绝服务攻击进行检测等功能,通过Snort来对网络安全可能存在的危险进行监测。其中将重点分析漏洞分析模块的设计与实现。1.3论文组织结构本论文结构如下:第一章:绪论。介绍本论文的课题背景,主要研究内容和和组织结构。背景主要介绍了当今网络的重要性和安全状况,主要研究内容介绍了网络安全问题的基本情况、漏洞的产生、流量统计情况,以及系统的实现意义。第二章:基本概念和设计工具。介绍本系统使用的技术,如TCP/IP网络协议的起源及分层结构,端口功能简介,多线程技术和winsock技术,snort技术介绍等。以及系统的开发环境:Microsoft Visual Studio .net,Microsoft Foundation Class,MySQL等。第三章:系统详细设计。主要介绍系统的设计模式,类之间的关联(类图),系统运行的整体流程和详细的图表说明。以及系统详细设计,主要包括端口探测子模块、漏洞扫描子模块、安全检测、流量统计几个模块。第四章:系统实现。简要说明了系统的运行界面,包括系统各个部分的功能和各个控件的作用。并演示了端口探测功能和漏洞扫描功能的执行结果,流量统计情况,以及入侵检测执行结果。第五章:总结。总结了系统设计的经验以及个人对系统的评价等。第二章 基本概念和开发工具系统的开发将会运用到很多方面的技术,我们需要对一些基本概念和设计工具进行了解,这样才能很好的理解各种概念和工具的应用。下面就介绍一些基本概念和设计工具,以及它们的作用。2.1 基本概念介绍本系统以Visual Studio.Net作为开发平台,利用TCP/IP协议和winsock技术进行端口探测和漏洞分析,基于Winpcap协议的网络流量监控系统,实现针对不同网络协议和不同网络服务的相关数据包流量的实时分析,并将检测数据保存到数据库,采用snort技术对系统安全进行监测。整个系统开发采用C语言实现后台数据包捕获,VC+实现前台界面显示,利用MySQL实现数据存储。所以在本章中主要对以太网、IP/TCP协议、UDP和ICMP协议、Winpcap协议、端口、多线程、Winsock、Snort、MySQL数据库以及系统开发工具做详细介绍。2.1.1以太网简介以太网(Ethernet)是一种计算机局域网组网技术。IEEE制定的IEEE802.3标准给出了以太网的技术标准。它规定了包括物理层的连线、电信号和介质访问层协议的内容。以太网是当前应用最普遍的局域网技术。它很大程度上取代了其他局域网标准,如令牌环网、FDDI和ARCNET。以太网的标准拓扑结构为总线型拓扑,但目前的快速以太网(100BASE-T、1000BASE-T标准)为了最大程度的减少冲突,最大程度的提高网络速度和使用效率,使用交换机(Switch)来进行网络连接和组织,这样,以太网的拓扑结构就成了星型,但在逻辑上,以太网仍然使用总线型拓扑和CSMA/CD(CarrierSenseMultipleAccess/CollisionDetect即带冲突检测的载波监听多路访问)的总线争用技术,并以10 Mbps的速率运行在多种类型的电缆上。2.1.2 IP/TCP、UDP、ICMP、Winpcap协议TCP/IP 协议是在60 年代由麻省理工学院和一些商业组织为美国国防部开发的。TCP/IP协议是支持Internet/Intranet 的基本通信协议。传输控制协议TCP(Transmission Control Protocol),负责数据的流量控制,并保证传输的正确性;网际协议IP(Internet Protocol),负责将数据从一处传往另一处。TCP/IP 协议具有广泛的兼容性和可伸缩性,可连接不同的计算机网络协议、不同的网络设备。TCP/IP 已成为网络互连事实上的标准,并成为支持Internet/Intranet 的协议标准。TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。用户数据报协议UDP(User Datagram Protocol)是 ISO 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分辨运行在同一台设备上的多个应用程序。与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。UDP 适用于不需要 TCP 可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。 UDP 是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)Internet 控制信息协议ICMP(Internet Control Message Protocol)是 IP 组的一个整合部分。通过 IP 包传送的 ICMP 信息主要用于涉及网络操作或错误操作的不可达信息。ICMP 包发送是不可靠的,所以主机不能依靠接收 ICMP 包解决任何网络问题。ICMP 的主要功能有:通告网络错误、通告网络拥塞、协助解决故障、通告超时。协议结构如下:Winpcap是一个免费公开的软件系统。它用于windows系统下的直接的网络编程。大多数网络应用程序访问网络是通过广泛使用的套接字。这种方法很容易实现网络数据传输,因为操作系统负责底层的细节(比如协议栈,数据流组装等)以及提供了类似于文件读写的函数接口。图21 Winpcap的内部结构Winpcap的主要组成及其功能:第一个模块NPF(Netgroup Packet Filter),是一个虚拟设备驱动程序文件。它的功能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统特有的代码。第二个模块packet.dll 为win32 平台提供了一个公共的接口。不同版本的Windows 系统都有自己的内核模块和用户层模块。Packet.dll 用于解决这些不同。调用Packet.dll 的程序可以运行在不同版本的Windows 平台上,而无需重新编译。第三个模块Wpcap.dll 是不依赖于操作系统的。它提供了更加高层、抽象的函数。packet.dll直接映射了内核的调用。Wpcap.dll 提供了更加友好、功能更加强大的函数调用。Winpcap 可以为Win32 应用程序提供访问网络底层的能力。它提供了以下的各项功能:a. 捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数据包;b. 在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉;c. 在网络上发送原始的数据包;d. 收集网络通信过程中的统计信息。Winpcap 的主要功能在于独立于主机协议(如TCP-IP)而发送和接收原始数据报。也就是说,Winpcap 不能阻塞,过滤或控制其他应用程序数据报的发收,它仅仅只是监听共享网络上传送的数据报。目前基于Winpcap 的应用主要有:WinDump、Analyzer、Ethereal 以及snort,这些软件能够捕捉网络通信、读取并翻译来自其他系统的tcpdump 类型二进制数据包。另外还有Sniffer,Project URL Snooper,Hidownload 等有特定实际用途的网络软件。2.1.3 端口、多线程、Winsock及其常用函数介绍端口是计算机与外界通讯交流的出口。应用程序通过系统调用与某端口建立连接(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函数中进行介绍。线程(Thread)是进程(Process)中的一个实体,是被系统独立调度和分派的基本单位。线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。 线程是程序中一个单一的顺序控制流程, 它和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。线程的周期包括新建,就绪,运行,阻塞,死亡5个阶段。在MFC中,线程分为用户界面线程和工作者线程2种。这2种之间的区别是UI线程有消息循环,而工作者线程没有。UI线程能够创建窗口并处理发送给这些窗口的消息,而工作者线程执行后台任务,并不需要处理窗口和消息循环。由于多线程的执行在应用程序中是异步的,适当的运用多线程技术虽然增加了代码的额外复杂度,却可以极大的提高程序的响应性能。工作者线程适合于执行孤立的任务,这些任务能够与应用程序的其他部分相互脱离,并且能够在前台进行其他处理时在后台执行这些任务,有效的降低了程序的等待时间,提高了运行的效率。在MFC中,线程作为CWinThread类存在,其相关函数为:(1)AfxBeginThread()声明: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:设定要创建线程的安全级别。返回值:若成功,则返回指向新创建线程的指针。(2)AfxEndThread()声明: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(超过规定的等待时间,强制退出)。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又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。常用Winsock函数介绍(1)htons()声明:u_short htons(u_short hostshort);作用:将主机的无符号短整形数转换成网络字节顺序。参数:hostshort:主机字节顺序表达的16位数返回值:返回一个网络字节顺序的值(2)inet_addr()声明:unsigned long inet_addr(const char* cp);作用:将一个点间隔地址转换成为一个in_addr。参数:cp:一个以Internet标准.间隔的字符串返回值:若无错误发生,返回一个无符号长整形数,其中以适当字节顺序存放Internet地址。如果传入的字符串不是一个合法的Internet地址,那么inet_addr()返回INADDR_NONE。(3)socket()声明: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()获取相应错误代码。(4)connect()声明:int connect(SOCKET s, const struct sockaddr* name, int namelen);作用:建立一个面向某套接口的连接参数:s:标识一个未连接套接口的描述字name:欲进行连接的端口名namelan:端口名的长度返回值:若无错误发生,返回0。否则,返回一个SOCKET_ERROR错误,可以用WSAGetLastError()获取相应错误代码。(5)send()声明:int send(SOCKET s, const char* buf, int len, int flags);作用:向一个已连接的套接口发送数据参数: s:一个用于标识已连接套接口的描述字buf:包含待发送数据的缓冲区len:缓冲区中的数据长度flags:调用执行方式返回值:若无错误发生,返回所发送数据的总数(可能小于len规定的大小)。否则返回一个SOCKET_ERROR错误,可以用WSAGetLastError()获取相应错误代码。(6)recv()声明:int recv(SOCKET s, char* buf, int len, int flags);作用:从一个套接口接收数据参数:s:一个标识已连接套接口的描述字buf:用于接收数据的缓冲区len:缓冲区的长度flags:指定调用方式返回值:若无错误发生,返回读入的字节数。如果连接中断,返回0。否则返回一个SOCKET_ERROR错误,可以用WSAGetLastError()获取相应错误代码。(7)closesocket()声明:int closesocket(SOCKET s);作用:关闭一个套接口参数:s:一个套接口的描述字返回值:若无错误发生,返回0。否则,返回一个SOCKET_ERROR错误,可以用WSAGetLastError()获取相应错误代码。2.1.4 snort简介早在1998年,Martin Roesch先生开发了开放源代码(Open Source)的入侵检测系统Snort.直至今天,Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的入侵检测/防御系统(Network Intrusion/Prevention System),即NIDS/NIPS.Snort基于GNU通用公共许可证(GPL)发布。您可以通过免费下载获得Snort,并且只需要几分钟就可以安装并开始使用它。Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。2.2 设计工具介绍设计工具主要应用到Microsoft VS.net、Microsoft Visual C、MYSQL、MFC等工具,为了对他们有具体的了解,我们将对其一一进行介绍。2.2.1 Microsoft VS .net简介Visual Studio.NET是.NET平台下最为强大的开发工具,无论是软件服务商,还是企业应用程序的部署与发布,Visual Studio.NET都可以提供近乎完美的解决方案。Visual Studio.NET提供了包括设计、编码、编译调试、数据库联接操作等基本功能和基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布工具以及性能评测报告等高级功能。Web 应用程序(以因特网为基础的应用程序)的优点在于可以让企业间的商业数据及交易等行为,透过因特网的通讯来彼此交换讯息。这样不但可以节省数据交换的时间,而且可以简化流程。但是在新一代的.NET 开发平台还没有出现之前,要让因特网应用程序达到上述的功能是一项浩大的工程。牵涉到的技术及程序开发语言,可能包括了HTML、ASP、VBScript、JavaScript、C+、ADO、SQL、COM、MTS 等。这样的环境对于开发人员来说,想要快速的开发一个功能强大且稳定可靠的Web 应用程序,不是一项轻松的工作。之前的Microsoft Visual StudioTM(微软的解决方案开发平台)及Windows 上的一些架构及服务,已经帮助程序设计师由单机平台的程序开发转为主从式(Client/Server)的架构来开发应用程序。但是对于现在的环境而言,因为企业的客户或供货商等所使用的系统或软件可能不尽相同, 开发人员所要面对的挑战是要如何整合所有的异质性资源,所以必须把焦点转到如何发展分布式的因特网应用程序架构,好整合这些存在于不同平台或不同软件的异质资源。目前全世界有超过六百万的专业程序设计师,而百分之70 以上的人使用微软的Visual Studio 开发平台;现今最受欢迎的架构则为主/从式的架构,而发展最快速的架构则是以Web 为基础的架构。在这种架构下程序逻辑及数据的处理都是在伺服端,使用者是透过网络以浏览器来存取伺服端的数据。这种架构的开发工具,微软早在前两版的Visual Studio 中透过Active Server Pages(ASP)以及IIS 3.0 就已经提供了。为了因应Web 架构的快速发展及广大程序开发人员的需求,微软亦举办了不下百场的研讨会和开发人员沟通、交换意见;就是为了提供给开发人员更好的解决方案开发平台。而这个新一代开发平台目前已经推出了,即为Visual Studio.NET。VisualStudio.NET 开发平台里面包含Visual Basic.NET、C#、Visual C+、ASP.NET 以及VisualFoxPro。为了让这套开发平台更容易开发以因特网为基础的应用程序,这个开发平台做了许多和以往不同的改革,这个改革就是.NET Framework。.NET 架构(就是.NET Framework,.NET念作dot 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的组件集成为和谐的开发环境。Visual C+大概可以分成三个主要的部分:(1)Developer Studio,这是一个集成开发环境,日常工作的99%都是在其上完成的。虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能。Developer Studio并不是专门用于VC的,它也同样用于VB,VJ,VID等Visual Studio系列的其他产品。Developer Studio并不等于Visual C+, 它只是Visual C+的一个壳子。(2)MFC。从理论上来讲,MFC不是专用于Visual C+。 Borland C+,C+Builder和Symantec C+同样可以处理MFC。同时,用Visual C+编写代码也并不意味着一定要用MFC,只要愿意,用Visual C+来编写SDK程序,或者使用STL,ATL,一样没有限制。然而,Visual C+本来就是为MFC打造的,Visual C+中的许多特征和语言扩展也是为MFC而设计的,所以用Visual C+而不用MFC就等于抛弃了Visual C+中很大的一部分功能。(3)Platform SDK。这是Visual C+和整个Visual Studio的精华和灵魂。大致说来,Platform SDK是以Microsoft C/C+编译器为核心,配合MASM,并辅以其他一些工具和文档资料。编译程序的功能是由CL,NMAKE,和其他许多命令行程序实现的。这些看不到的程序是Visual Studio的基石。2.2.3 MySQL简介MySQL,出自瑞典小公司MySQL 公司的开放源码的数据库软件,目前对数据库老牌厂商Oracle, IBM, Microsoft 以及Sybase 等公司产生威胁。它同样具有良好的可靠性、安全性和易用性,是大规模联机事务处理、数据仓库和电子商务应用程序的优秀数据库平台。MySQL提供了其它数据库少有的编程工具,而且MySQL 对于商业和个人用户是免费的。MySQL 是大规模联机事务处理、数据仓库和电子商务应用程序的优秀数据库平台。MySQL 数据库最主要的两大特点就是开源和免费,此外,它还具有以下主要特点:1. 同时访问数据库的用户数量不受限制;2. 可以保存超过50,000,000 条记录;3. 是目前市场上现有产品中运行速度最快的数据库系统;4. 用户权限设置简单、有效。由于MySQL 本身并不像MS SQL Server 那样提供图形化显示界面,所以为了在开发过程中显示方便,我们还可以装上一些MySQL 的插件,比如MySQL Front,这是一款小巧的管理Mysql 的应用程序。主要特性包括多文档界面,语法突出,拖拽方式的数据库和表格,可编辑/可增加/删除的域。可编辑/可插入/删除的记录,可显示的成员,可执行的SQL 脚本,提供与外程序接口,保存数据到CSV 文件等。2.2.4 MFC简介MFC,即微软基础类(Microsoft Foundation Classes),是微软提供用于在C+环境下编写应用程序的一个框架和引擎,是挂在Visual C+之上的一个辅助软件开发包。MFC同Borland C+集成的VCL一样是一个非外挂式的软件包,类库,然而MFC类是微软为Visual C+专配的。MFC是Win API与C+的结合。(API,即微软提供的Windows操作系统下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身。可以允许用户使用各种各样的第三方编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行。)MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作。但它提供的类中有许多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁),而是一些在Windows中实现内部处理的类,如数据库的管理类等。MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C+提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。第三章 系统详细设计前面我们对系统进行了详细的分析,对所要运用到的技术进行了详细的介绍,下面我们将详细的讨论我们这个系统的开发目的、设计目标以及设计方案。3.1系统开发目的和设计目标该系统主要是设计一个可以监控和分析本机网络安全的系统,对主机进行漏洞扫描、端口探测、流量监控以及安全检测。系统通过UI接口来接受用户输入的信息参数,来对主机进行漏洞分析、端口探测,系统给出主机漏洞结果以及端口开放情况。流量监控模块提供图形化分析工具,把分析所得的结果通过如折线图、柱状图、饼状图等图形化的界面显示出来,并将检测数据保存到数据库,用户可以查询历史流量记录。安全检测模块主要是显示出主机是否存在潜在的安全威胁。如果存在异常情况,系统对用户发出警报提示,使用户能及时的采取相应的预防或补救的措施。3.2 系统整体设计思想根据流网络安全监控分析系统的开发目的及设计目标,将系统定位于一个包含漏洞扫描和端口探测、流量监测、Snort安全检测三个模块。漏洞扫描和端口探测模块主要包含5大类:UI接口类,端口探测线程,漏洞扫描线程,端口探测子线程,漏洞扫描子线程。其中UI接口类是整个程序的主类,负责调用和创建端口探测线程和漏洞扫描线程,以及更新各个控件的当前状态,输出要表达的计算结果等。端口探测线程和漏洞扫描线程用来控制端口扫描子线程和漏洞扫描子线程的多线程运算,提高系统的整体效率和响应能力。端口探测子模块和漏洞扫描子模块是系统的关键部分,程序的主要功能都在这里实现。流量监测模块中,捕获分析模块是系统的后台运行程序,主要负责的是,通过使用Winpcap 协议,对通过所监听的网
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准个人消费电子产品抵押借款合同
- 汝州职业技术学院《电视包装设计》2023-2024学年第二学期期末试卷
- 鳄鱼怕怕牙医怕怕课件
- 新建水沟盖板施工方案
- 2025电子产品销售合同简易版模板
- 2025至2030年中国香酥肉排数据监测研究报告
- 2025员工劳动合同模板
- 森林消防知识宣讲
- 室外景观开挖施工方案
- 2025至2030年中国灌封胶粘剂数据监测研究报告
- 影像学 泌尿系统-朱叶青学习课件
- 市政设施维护保养手册
- 预防未成年人犯罪课件
- 2025年河南省郑州市单招职业适应性测试题库含答案
- 50有多大-抓抓数数(教学设计)-2024-2025学年苏教版数学一年级下册
- 《Python与数据分析应用》课件-第10章 数据分析工具Pandas
- 2024年高考政治(新课标卷)真题详细解读及评析(适用省份:山西、河南、云南、新疆)
- 2025年度工业余热回收利用合同能源管理协议
- 妊娠合并心脏病妇产科-2024鲜版
- 安宁疗护基本病房管理规范
- 2025年中国邮政集团江西分公司招聘笔试参考题库含答案解析
评论
0/150
提交评论