网络安全监控系统---毕业论文_第1页
网络安全监控系统---毕业论文_第2页
网络安全监控系统---毕业论文_第3页
网络安全监控系统---毕业论文_第4页
网络安全监控系统---毕业论文_第5页
免费预览已结束,剩余45页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本 科 毕 业 论 文网络安全监控系统Network Security Monitoring System姓 名: 学 号:学 院:软件学院系:软件工程专 业:软件工程年 级:指导教师: 年 月43摘要随着Internet 的迅速发展和信息社会的到来,网络已经影响到社会的政治、经济、文化、军事和社会生活的各个方面。以网络方式获取信息和交流信息已成为现代信息社会的一个重要特征。互联网作为当代社会传播信息资源的工具已经越来越重要。网络已经成为当今社会人们生活中必不可少的一部分。而随着计算机网络越来越复杂,网络安全和管理己变得日益重要,不仅要求网络管理对网络变化做出快速反应,还要为管理大型网络提供必要的手段等等。网络流量分析系统作为网络管理的一个重要的基础系统,对网络的流量进行实时的监控,为后续的网络管理工作,网络黑客攻击防范工作起到了最重要的作用。本文所设计的基于开放源代码的入侵检测系统Snort而设计的网络安全监控系统,其主要是应用WinPcap进行IP数据包捕获,采用VisualStudio2005作为开发平台,MySQL 作为后台的数据库管理系统,提供良好的用户管理界面,可以实现对本地网络的实时监控和图表统计分析,并提供异常流量的选择查询和报警功能。关键词:网络监控;Snort;实时监控AbstractWith the rapid development of Internet and the advent of the information society, the social network has already affected the political, economic, cultural, military and all aspects of social life. 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 management has become increasingly important for the network to react quickly to changes in the management of the network, as well as for the management of large networks with the necessary means, and so on. 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 snort system with open source, Network Security Monitoring System is based on the WinPcap to develop, uses Visual Studio2005 as a development platform, MySQL as the background database management system.It provides a good user management interface. At the same time, It can achieve on real-time monitoring and statistical analysis on Local network flow, and provide exceptional flow searching function, thus it is able to provide the choice of abnormal flow of inquiries and alarm to the AdministratorKey words: Network monitoring; snort; real-time monitoring目 录第一章 绪论11.1网络安全监控的研究背景和意义11.2 本文研究内容21.3 论文组织结构2第二章 基本概念介绍32.1 IP/TCP协议32.1.1 TCP/IP整体构架概述32.1.2 TCP/IP中的协议42.2 UDP协议52.3 ICMP协议62.4 WinPcap协议介绍72.4.1 Winpcap 的组成72.4.2 Winpacp的功能82.5 系统开发工具简介82.5.1 Visual Studio 2005 和C#简介82.5.2 MySQL简介92.5.3 Snort简介102.5.4 Apache、PHP、Adodb、BASE简介112.6 本章小结12第三章 系统详细设计143.1系统开发目的及设计目标143.2 系统整体设计思想143.3 数据包捕获分析153.3.1 Winpcap进行网络数据包的捕获和过滤的设计步骤153.3.2 Snort的配置173.3.3 Snort在Mysql中生成数据库183.3.4 Snort监控与报警日志记录183.4 数据库的设计203.5 实时监控设计243.5.1 数字监控243.5.2 图形监控243.6 实时监控与报警设计273.6.1 历史数据查询与实时监控的设计273.6.2 报警设置293.7 本章小结30第四章 系统实现结果314.1 实时监控344.1.1 数字监控344.1.2 图形监控344.2 历史数据显示354.3 报警数据查询364.3.1 报警信息364.3.2 清空数据374.4 本章小结39第五章 结束语40参考文献41致谢43ContentsChapter1 Introduction11.1 Research background and significance of Network Security Monitoring11.2 Contents of the paper21.3 The organizational structure of paper2Chapter2 Introduction of the basic concepts32.1 IP/TCP protocol32.1.1 Outlined the overall framework of TCP/IP protocol32.1.2 Protocol in TCP/IP42.2 UDP Protocol52.3 ICMP Protocol62.4 Introductions with WinPcap protocol72.4.1 Composition of Winpcap72.4.2 Functions with WinPacp82.5 Introductions with System development tools82.5.1 Introductions with Visual Studio 2005 and C#82.5.2 Introductions with MySQL92.5.3 Introductions with Snort102.5.4 Introductions with Apache,PHP,Adodb and BASE112.6 Summary12Chapter3 The detailed design of the system143.1 The purpose of system development and design object143.2 Overall design concept with system143.3 Analysis of packet capture153.3.1 WinPcaps Network packet capture and filtering steps of the design153.3.2 Configuration of the Snort173.3.3 Snort generated in Mysql database183.3.4 Monitoring and alarm logging in Snort183.4 Database designing203.5 Design of real-time monitoring243.5.1 Digital monitoring243.5.2 Graphic monitoring243.6 Design of real-time monitoring and alarm273.6.1 Historical data query and design of real-time monitoring273.6.2 Alarm settings293.7 Summary30Chapter4 achieve results with the system314.1 Real-time monitoring344.1.1 Digital monitoring344.1.2 Graphic monitoring344.2 Historical data query354.3 Alarm Data Query364.3.1 Alarm information364.3.2 Data clearing374.4 Summary39Chapter5 Concluding remarks40References41Acknowledgements43厦门大学软件学院毕业设计论文 网络安全监控系统第一章 绪论1.1网络安全监控的研究背景和意义随着Internet 的飞速发展,网络规模的不断扩大,网络用户的成倍增加,网络传输速度和容量的快速增长以及网络应用和业务种类的快速发展,使得Internet 成为一个综合数据、语音、视频等多媒体服务的平台。同时,网络技术的快速发展,不断涌现的新的网络协议成指数倍的增长,网络的异构性特点也越来越明显,这使得网络管理十分困难,也严重威胁到网络中服务器的安全。近年来国内外相关的研究大都是通过对大量的流量数据进行分析,找出能反映网络真实特性的数学模型,如自相似模型等,但仍然不能全面客观地反映网络的真实状态和面貌。可以说,Internet一直没有得到有效的检测,我们缺乏对网络性能的理解和预测。事实上,我们可以通过对本地进行网络安全监控,采用抓包工具获取真实的数据,并对这些数据进行细致充分的定性定量分析,也是一种较为有效的方法。网络安全是网络管理的基础和重要内容,特别是对于Internet这样大型复杂的骨干网络来说更为重要。网络监控还可以实现监测拥塞链路,预警拒绝服务攻击,实施流量工程,满足服务等级合约的QoS策略设计等功能。因此,研究Internet的测量方法并且实现相应的测量系统是至关重要的。网络安全监控是保障计算机网络系统安全运行,防止各种恶意窃取,防止各种破坏性攻击的重要的安全技术。同时,网络监控也是网络管理的信息收集工具,它为网络管理提供必要的信息,对把握网络的发展方向以及发现网络故障都有一定的意义。基于snort系统的轻量级网络监控系统,就是在这样的背景下产生的。所有的有关于网络安全监控的系统及研究,都是以IP包的监控分析作为基础的。网络安全监控系统就是通过Snort系统进行到达本地服务器的所有数据包的截取和分析,掌握当前网络总IP数量,同时可以根据不同的需要对特定端口或特定外部地址进行监视,防止非法入侵,以保障本地网络系统的安全和稳定。它的主要意义在于实现了网络监控。随着内部网络的规模与容量的日渐扩大,保持系统的正常运作将会变得越来越重要。网络监控能使系统及时地发现网络流量异常的现象,使服务器在发现非法入侵后能立即做出反应,来保护自己的服务器不被破坏,以求获得安全性的同时,提高网络性能。1.2 本文研究内容互联网络中,无论是应用业务种类还是流量规模都在飞速发展。不断变化的网络需要相应灵活的监控工具帮助网络管理者及时了解网络状态,以便于进行网络规划及故障排除。目前,网络安全监控系统正受到越来越多的关注,我们有必要认识它、了解它,并最终应用它,让它帮助我们解决各种各样的网络问题。本文设计完成的网络安全监控系统是以监控用户网络流量情况、防范黑客攻击进行入侵检测为主要目的而进行开发的。基于Winpcap协议和Snort系统,来完成网络数据包的捕获,通过对所捕获数据包的内容进行统计分析,完成对网络流量的监控分析和对可能发生的拒绝服务攻击进行检测等功能。本系统是基于Winpcap协议进行开发的,采用Visual Studio2005作为开发平台,MySQL作为后台的数据库管理系统,提供良好的用户管理界面,可以实现对本地网络安全的实时监控、统计分析,并提供异常流量的报警功能,从而能对网络中可能存在的拒绝服务攻击进行进一步处理。整个系统使用C# 语言编写后台数据包捕获程序,Visual Studio2005作为前台的界面显示,MySQL作为数据包分析系统的数据库管理系统,以MySQL数据库作为前后台交互的中间层,使后台数据包的捕获和前台的实时监控以及对历史数据查询得以很好的实现。1.3 论文组织结构基于Snort系统的网络监控系统的论文组织结构如下:本文将从以下几个方面进行说明:第一章 绪论;第二章 介绍网络安全监控系统的基本概念和相关的技术知识;第三章 介绍系统的详细设计;第四章 介绍系统具体实现结果;第五章 结束语。第二章 基本概念介绍由于本系统是基于Winpcap协议的网络安全监控系统,实现针对不同网络协议和不同网络服务的相关数据包的实时分析,并将检测数据保存到数据库。整个系统开发采用C#语言实现后台数据包捕获,Visual Studio2005实现前台界面显示,利用MySQL实现数据存储。所以在本章中主要对IP/TCP协议、UDP和ICMP协议、Winpcap协议、MySQL数据库以及系统开发工具做详细介绍。2.1 IP/TCP协议TCP/IP 协议是在60 年代由麻省理工学院和一些商业组织为美国国防部开发的。TCP/IP协议是支持Internet/Intranet 的基本通信协议。传输控制协议TCP(Transmission Control Protocol),负责数据的流量控制,并保证传输的正确性;网际协议IP(Internet Protocol),负责将数据从一处传往另一处。TCP/IP 协议具有广泛的兼容性和可伸缩性,可连接不同的计算机网络协议和不同的网络设备。TCP/IP 已成为网络互连事实上的标准,并成为支持Internet/Intranet 的协议标准1。2.1.1 TCP/IP整体构架概述TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)和网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)和用户数据报协议(UDP)等。TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。2.1.2 TCP/IP中的协议(1) IP协议网际协议IP(Internet Protocol)是TCP/IP的心脏,也是网络层中最重要的协议。网际协议(IP)是一个网络层协议,包含寻址信息和控制信息 ,可使数据包在网络中路由。IP协议是 TCP/IP 协议族中的主要网络层协议,与 TCP 协议结合组成整个因特网协议的核心协议。IP 协议同样都适用于 LAN 和 WAN 通信。IP协议结构包括头部和数据两部分,其头部包含有版本号、头部长度、服务类型、总长度、验证、标识、生命周期、源目的地址和目的地址等。协议结构如图2.1所示:图2-1:IP协议的结构(2) TCP协议 传输控制协议TCP(Transfer Control Protocol)是TCP/IP协议栈中的传输层协议,它通过序列确认以及包重发机制,提供可靠的数据流发送和到应用程序的虚拟连接服务。与 IP 协议相结合,组成了因特网协议的核心。关于流数据传输 ,TCP 交付一个由序列号定义的无结构的字节流。 这个服务对应用程序有利,因为在送出到 TCP 之前应用程序不需要将数据划分成块, TCP 可以将字节整合成字段,然后传给 IP 进行发送。TCP 通过面向连接的、端到端的可靠数据报发送来保证可靠性。 TCP 在字节上加上一个递进的确认序列号来告诉接收者发送者期望收到的下一个字节。如果在规定时间内,没有收到关于这个包的确认响应,重新发送此包。TCP协议结构包括源端口、目的端口、顺序号、确认号、窗口和数据等协议结构如图2-2所示:图2-2:TCP协议结构2.2 UDP协议用户数据报协议UDP(User Datagram Protocol)是 ISO 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分辨运行在同一台设备上的多个应用程序。与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。UDP 适用于不需要 TCP 可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。 UDP 是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。UDP协议结构包含源端口、目的端口、长度、确认号和数据。其协议结构如图2-3:图2-3:UDP协议结构2.3 ICMP协议Internet 控制信息协议ICMP(Internet Control Message Protocol)是 IP 组的一个整合部分。通过IP包传送的ICMP信息主要用于涉及网络操作或错误操作的不可达信息。ICMP包发送是不可靠的,所以主机不能依靠接收 ICMP 包解决任何网络问题。ICMP的主要功能有:通告网络错误、通告网络拥塞、协助解决故障和通告超时。ICMP协议结构包含类型、代码、确认号、标识、顺序号和地址网关。其协议结构如图2-4:图2-4:ICMP协议结构2.4 WinPcap协议介绍Winpcap是一个免费公开的软件系统。它用于windows系统下的直接的网络编程。大多数网络应用程序访问网络是通过广泛使用的套接字。这种方法很容易实现网络数据传输,因为操作系统负责底层的细节(比如协议栈,数据流组装等)以及提供了类似于文件读写的函数接口。如图2-5所示:图2-5: WinPcap的内部结构2.4.1 Winpcap 的组成第一个模块NPF(Netgroup Packet Filter),是一个虚拟设备驱动程序文件。它的功能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统特有的代码。第二个模块packet.dll 为win32 平台提供了一个公共的接口。不同版本的Windows 系统都有自己的内核模块和用户层模块。Packet.dll 用于解决这些不同。调用Packet.dll 的程序可以运行在不同版本的Windows 平台上,而无需重新编译。第三个模块Wpcap.dll 是不依赖于操作系统的。它提供了更加高层、抽象的函数。packet.dll直接映射了内核的调用。Wpcap.dll 提供了更加友好、功能更加强大的函数调用。2.4.2 Winpacp的功能Winpcap 可以为Win32 应用程序提供访问网络底层的能力。它提供了以下的各项功能:a. 捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数据包;b. 在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉;c. 在网络上发送原始的数据包;d. 收集网络通信过程中的统计信息。Winpcap 的主要功能在于独立于主机协议(如TCP-IP)而发送和接收原始数据报。也就是说,Winpcap 不能阻塞,过滤或控制其他应用程序数据报的发收,它仅仅只是监听共享网络上传送的数据报。目前基于Winpcap 的应用主要有:Snort、WinDump、Analyzer以及Ethereal,这些软件能够捕捉网络通信、读取并翻译来自其他系统的tcpdump 类型二进制数据包。另外还有Sniffer,Project URL Snooper,Hidownload 等有特定实际用途的网络软件。2.5 系统开发工具简介网络安全监控系统是基于WINPCAP和Snort进行开发的,采用Visual Studio 2005作为开发平台,系统使用C# 语言编写后台监控程序,Visual Studio 2005 作为前台的界面显示,MySQL作为安全监控系统的数据库管理系统,以MySQL 数据库作为前后台交互的中间层。2.5.1 Visual Studio 2005 和C#简介C# 语言是近年来在国内外得到迅速推广应用的一种计算机语言,C# 语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。因此,C# 语言特别适合于编写系统软件。Miscrosift Visual Studio 是微软公司出品的创建高性能解决方案的最有效的工具之一214。Visual Studio 主要包括Visual C+,Visual Bacic,Java,C# 等。其中,C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。C# 语法表现力强,而且简单易学。C# 的大括号语法使任何熟悉 C、C+ 或 Java 的人都可以立即上手。了解上述任何一种语言的开发人员通常在很短的时间内就可以开始使用 C# 高效地进行工作。C# 语法简化了 C+ 的诸多复杂性,并提供了很多强大的功能,例如可为 null 的值类型、枚举、委托、lambda 表达式和直接内存访问,这些都是 Java 所不具备的。C# 支持泛型方法和类型,从而提供了更出色的类型安全和性能。C# 还提供了迭代器,允许集合类的实施者定义自定义的迭代行为,以便容易被客户端代码使用。在 C# 3.0 中,语言集成查询 (LINQ) 表达式使强类型查询成为了一流的语言构造3。C#是微软为.net量身定做的语言,是基于托管平台的面向对象的语言。一般的情况下,C#用于做应用系统,因为C#是目前开发效率最高的语言!2.5.2 MySQL简介MySQL,出自瑞典小公司MySQL 公司的开放源码的数据库软件,目前对数据库老牌厂商Oracle, IBM, Microsoft 以及Sybase 等公司产生威胁。它同样具有良好的可靠性、安全性和易用性,是大规模联机事务处理、数据仓库和电子商务应用程序的优秀数据库平台4。MySQL提供了其它数据库少有的编程工具,而且MySQL 对于商业和个人用户是免费的。MySQL是大规模联机事务处理、数据仓库和电子商务应用程序的优秀数据库平台15。MySQL 数据库最主要的两大特点就是开源和免费,此外,它还具有以下主要特点:(1). 同时访问数据库的用户数量不受限制;(2). 可以保存超过50000000条记录;(3). 是目前市场上现有产品中运行速度最快的数据库系统;(4). 用户权限设置简单、有效。由于MySQL本身并不像MS SQL Server那样提供图形化显示界面,所以为了在开发过程中显示方便,我们还可以装上一些MySQL 的插件,比如MySQL Front,这是一款小巧的管理MySQL 的应用程序。主要特性包括多文档界面,语法突出,拖拽方式的数据库和表格,可编辑/可增加/删除的域。可编辑/可插入/删除的记录,可显示的成员,可执行的SQL 脚本,提供与外程序接口,保存数据到CSV 文件等16。2.5.3 Snort简介Snort是常见的支持分布式的网络入侵检测系统(NIDS),能够进行实时网络流量分析并记录各类攻击行为和相关网络数据包。Snort有三种工作模式:嗅探器、数据包记录器和网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的5。我们可以让Snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。1、嗅探器。所谓的嗅探器模式就是Snort从网络上读出数据包然后显示在你的控制台上。如果你只要把TCP/IP包头信息打印在屏幕上,只需要输入下面的命令:./snort v2、数据包记录器。如果要把所有的包记录到硬盘上,你需要指定一个日志目录,Snort就会自动记录数据包: ./snort -dev -l ./log3、网络入侵检测系统。Snort最重要的用途还是作为网络入侵检测系统(NIDS),使用下面命令行可以启动这种模式: ./snort -dev -l ./log -h /24 -c snort.confsnort.conf是规则集文件。snort会对每个包和规则集进行匹配,发现这样的包就采取相应的行动。如果你不指定输出目录,Snort就输出到/var/log/snort目录。Snort使用一种简单的,轻量级的规则描述语言,这种语言灵活而强大。在开发Snort规则时要记住几个简单的原则。大多数Snort规则都写在一个单行上,或者在多行之间的行尾用/分隔。Snort规则被分成两个逻辑部分:规则头和规则选项。规则头包含规则的动作,协议,源和目标IP地址与网络掩码,以及源和目标端口信息;规则选项部分包含报警消息内容和要检查的包的具体部分6。2.5.4 Apache、PHP、Adodb、BASE简介(1)、Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为。在新版本的Apache中,所有的设置都被放在了httpd.conf中,因此只需要调整这个文件中的设置。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用7。Apache web服务器软件拥有以下特性8:1). 支持最新的HTTP/1.1通信协议2). 拥有简单而强有力的基于文件的配置过程3). 支持通用网关接口4). 支持基于IP和基于域名的虚拟主机5). 支持多种方式的HTTP认证6). 集成Perl处理模块7). 集成代理服务器模块8). 支持实时监视服务器状态和定制服务器日志9). 支持服务器端包含指令(SSI)10).支持安全Socket层(SSL)11).提供用户会话过程的跟踪12).支持FastCGI13).通过第三方模块可以支持Java Servlets14).如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。(2)、PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写9。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言。PHP的特性包括10:1). 开放的源代码:所有的PHP源代码事实上都可以得到。2). PHP是免费的。3). php的便捷性:php十分便捷,学习简单4). 基于服务器端:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX和WINDOWS下。5). 嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。6). 简单的语言:PHP坚持脚本语言为主,与Java和C+不同。7). 效率高:PHP消耗相当少的系统资源。8). 图像处理:用PHP动态创建图像9). 面向对像:在php4,php5 中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。10).PHP 相对于其他语言,编辑简单,实用性强,更适合初学者。(3)、ADODB是用于PHP的数据库连接插件,因为它是基于php的,所以只需要将软件包复制到WEB发布目录下。后面在配置BASE时会需要设定这个目录进行调用。它是PHP中一个对象导向的数据库封包链接库,它提供了共通的应用程序接口来跟所有支持的数据库沟通,简化了你的程序的数据库移植性操作(4)、BASE(Basic Analysis and Security Engine),即基础分析和安全引擎是基于PHP的广泛使用的一种高效Snort分析查询系统。用于分析Snort警报的网页形式的引擎。2.6 本章小结基于Snort和BASE的入侵检测系统通常采用“传感器数据库分析平台”的三层架构体系。传感器即网络数据包捕获转储程序。WinPcap作为系统底层网络接口驱动,Snort作为数据报捕获、筛选和转储程序,二者即可构成IDS的传感器部件。为了完整覆盖监控可以根据网络分布情况在多个网络关键节点上分别部署IDS传感器。Snort获得记录信息后可以存储到本地日志也可以发送到Syslog服务器或是直接存储到数据库中,数据库可以是本地也可以是远程的,Snort支持MySQL、MSSQL、PostgreSQL、ODBC和Oracle等数据库接口,扩展性非常好。Snort的日志记录仅仅包含网络数据包的原始信息,对这些大量的原始信息进行人工整理分析是一件非常耗时而且低效率的事情,我们还需要一个能够操作查询数据库的分析平台。无论是从易用性还是平台独立性考虑,WEB平台都是首选。BASE(ACID的升级版)是Snort最近最流行的分析平台,以Apache作为服务器,使用PHP开发的。这样,部署IDS传感器就成功了。可以进一步进行入侵检测系统的运行检测与监控。第三章 系统详细设计前面我们对基于Snort的网络监控系统进行了简要分析,并对相关的技术和开发工具进行了介绍,在本章中我们将给出详细的设计方案。3.1系统开发目的及设计目标本网络监控系统将用来动态检测子网内的网络异常数据,实现针对不同网络协议和不同网络服务的相关数据包进行实时分析,提供图形化分析工具,把分析所得的结果通过图形化(比如折线图)的界面显示出来,并将检测数据保存到数据库。在监视网络流量的基础上,通过制定一定的监控策略,对网络环境中出现的流量异常情况,对用户发出警报提示,使用户能及时的采取相应的预防或补救的措施。3.2 系统整体设计思想根据网络监控分析系统的开发目的及设计目标,将系统定位于一个包含数据包捕获分析、数据存储、实时监控和数据查询与报警三个模块。其中,捕获分析模块是系统的后台运行程序,主要负责的是,通过使用WinPcap 协议,对通过所监听的网络适配器的所有数据包进行捕获。这一部分属于一些底层的操作,并没有对所捕获的数据进行显示,而是通过前台用户界面调用数据库数据实现数据的实时监控功能。数据存储是基于前一个捕获分析模块所捕获并且分析过的数据包,对得到分析结果的数据包进行分类统计(基于不同网络协议或者不同网络服务),并把统计的结果存入到MySQL 数据库中,以供前台显示程序调用。该模块主要的任务就是MySQL 数据库中建立好用于存储捕获分析模块分析所得的结果的数据库及指定的表格,建立好Visual Studio2005对MySQL 数据库的连接,最后就是将所得的结果存入指定的数据库中。实时监控模块主要分数字监控和图形监控两个部分。其中数字监控主要通过连接数据库,每间隔单位时间内刷新一次数据库数据然后将查询所得的数据分类在前台显示实现实时监控,而图形监控是采用折线图的形式显示用户计算机当前的总异常数据流量、TCP类型的异常数据流量、UDP类型的异常数据流量和ICMP类型的异常数据流量,也是每间隔单位时间内刷新一次数据。数据查询与报警模块主要实现对后台捕获程序捕获的所有历史数据包进行分类查询,并且通过报警设置子模块对满足设置的数据进行筛选查询,如果发现数据异常,将提供报警功能(如提示用户可能遭受UDP、ICMP等洪水攻击)以便用户采取相应的措施。系统整体流程如图3-1所示:图3-1: 系统整体流程图3.3 数据包捕获分析此模块是整个系统得以实现的关键部分,只有在后台捕获数据包的情况下系统才能进行后续操作。3.3.1 Winpcap进行网络数据包的捕获和过滤的设计步骤网络安全监控系统中数据包的捕获主要是通过调用Winpcap 协议来捕获数据包的。Winpacp作为一个网络底层的驱动,提供了许多的API 供开发人员调用,这些API 提供了许多不同的功能,通过这些API 可以实现诸多的功能,包括从简单的基本功能(如获取网卡的列表,数据包的捕获等)到统计和收集网络流量等高级功能。主要步骤如下:(1)打开网卡,并设为混杂模式。(2)回调函数 Network Tap 在得到监听命令后,从网络设备驱动程序处收集数据包把监听到的数据包负责传送给过滤程序。如图3-2所示:图3-2:回调函数工作流程(3)当 Packet filter 监听到有数据包到达时,NDIS 中间驱动程序首先调用分组驱动程序,该程序将数据传递给每一个参与进程的分组过滤程序。(4)然后由 Packet filter 过滤程序决定哪些数据包应该丢弃,哪些数据包应该接收,是否需要将接收到的数据拷贝到相应的应用程序。(5)通过分组过滤器后,将数据未过滤掉的数据包提交给核心缓冲区。然后等待系统缓冲区满后,再将数据包拷贝到用户缓冲区。监听程序可以直接从用户缓冲区中读取捕获的数据包。(6)关闭网卡。 数据包捕获整体流程如图3-3所示:图3-3: 数据包捕获流程3.3.2 Snort的配置不需花大量时间研究包,可以对Snort进行设置来处理分析,并在发生问题时收到Snort的警报,这些功能是通过为Snort指定一组规则实现的。这些规则通常使用文本文件的形式,告诉Snort要执行什么操作,为它在包中查找关键细节提供信息,并指导Snort在找到键信息后如何操作。此外,这些规则可以限制 Snort侦听的内容(例如命令Snort只监视单个机器,或监视整个网络中的通信量),以及记录查找到的所有内容并生成一个文件方便日后查看。3.3.3 Snort在Mysql中生成数据库BASE有数据库存档功能,这里建立的snort是snort存储的数据库,而snort_archive是BASE的存档数据库。然后对这两个数据库建立用户root并授予CREATE/SELECT/INSERT/UPDATE/DELETE权限。我们使用MySQL命令行控制台设置上面的内容,具体操作如下:建立数据库和数据库用户snort:mysql create database snort;Query OK, 1 row affected (0.01 sec)mysql grant INSERT,SELECT on root.* to snortuserlocalhost;Query OK, 0 rows affected (0.02 sec)mysql SET PASSWORD FOR snortuserlocalhost=PASSWORD(snortpassword);Query OK, 0 rows affected (0.25 sec)mysql grant CREATE, INSERT, SELECT, DELETE, UPDATE on snortdb.* to snortuserlocalhost;Query OK, 0 rows affected (0.02 sec)mysql grant CREATE, INSERT, SELECT, DELETE, UPDATE on snortdb.* to snortuser;Query OK, 0 rows affected (0.02 sec)导入数据库信息mysql -u root -p ./snort/schemas/create_mysql snortdbmysql -u root -p ./snort/schemas/create_mysql snortarc完成后查看数据库情况, 确认创建成功。3.3.4 Snort监控与报警日志记录在Snort的NIDS模式中有几种输出方式可以配置。默认的记录和报警以ASCII形式记录,并使用“完全”报警。完全报警方式(full alert mechanism)输出所有的包头信息并在其后附上对应的报警信息。当然,在命令行中可以设置多种报警输出模式和两种日志记录格式。包信息可以以默认的ASCII格式记录,也可以通过使用命令行开关“-b”来用二进制文件记录。如果你想要完全禁用包记录信息,可以使用命令行开关“-N”。(1)、报警模式相对要复杂一些。在命令行中可以设置多种报警模式:full、fast、socket、syslog、console、cmg和none模式。这六种模式可以使用命令行开关“-A”来设置。详细如下:u -A fast 快速报警模式,以一种简单的格式记录报警信息(时间、报警信息、源和目的主机的IP和端口)u -A full 这是默认的报警模式,如果没有指定报警模式,将自动使用这种报警模式u -A unsock 发送报警信息到一个其它程序监听UNIX套接口u -A none 关闭报警u -A console 打印快速报警信息到控制台(屏幕)u -A cmg 触发“cmg样式”报警还可以使用“-s”开关来设置syslog报警。默认的两种syslog报警级别是LOG_AUTHPRIV和LOG_ALERT。如果你想要配置其它syslog日志级别的话,可以在规则文件中使用输出插件来设置(详细信息参见snort.conf文件)。下面是几个输出配置实例:1)、使用默认格式(ASCII)向syslog发送报警信息: snort -c snort.conf -l ./log -s -h /242)、使用默认格式和默认目录(/var/log/snort)来向syslog发送报警信息: snort -c snort.conf -s -h /243)、使用二进制文件格式、快速报警模式、目录/var/snort来记录信息: snort -c snort.conf -b -A fast -l /var/snort(2)、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论