1、局域网监听软件的设计与开发 摘 要 网络监听软件是提供给网络安全管理人员进行安全管理的工具,可以用来监视网络的状态、数据流动情况以及网络上传输的信息,以获取有用信息。作为黑客来说,通过网络监听可以获取其所需信息(比如密码等);对黑客活动和其他网络犯罪进行侦察、取证时,可以使用网络监听技术来获取必要的信息。因此,在目前研究和使用网络监听技术及相关工具,对于防护网络安全、打击网络犯罪具有重要的现实意义。 本局域网监听软件主要利用 Winpcap 和 Jpcap 等工具进行开发,使用 Java语言在 Eclipse 3.2环境下进行开发。软件主要实现了对网络上的数据进行监听,并分析出每一协议层的传输
2、数据和协议层上主要字段的数据,然后将其显示出来,同时进行动态更新;另外,添加了一些附加功能(指定对象监听、饼状图显示、界面选择等)。经过测试与分析,说明了该软件运行稳定、可靠,具有一定的实际应用价值。 关键词: 局域网;网络监听;协议层;数据传输;对象监听 Design and Development of LAN Monitoring Software Abstract Network-monitoring software is a secure management tool providing for the network security administrator. It can
3、 obtain useful information which monitors the network status, data flowing and information of network transmitting. Hackers can get the necessary information (such as password and so on) by means of network -monitoring. Hacker may gain the information which its needs (for instance password and so on
4、) through the network-monitoring; Carrying on taking the reconnaissance and collecting the evidences about the hacker activity and other network crime, we may use the network monitor technology to gain the essential information. Therefore, studying and using network-monitoring technology and the cor
5、relate tool in present, it is important and practical significance for protecting network security and attacking network crime. This local area network-monitoring software mainly is developed by using of Winpcap, Jpcap, the Java language and so on in the Eclipse 3.2 environment. This software mainly
6、 realizes monitoring the network data, analyzes the transmission data and the main field data on each protocol layer, and then demonstrates it, carries on the dynamic renewal. Simultaneously, this software increases some attachment functions (such as assigning object monitor, demonstrating of cake s
7、hape, the choice of surface etc.). After testing and the analyzing, which shows that this software is stable, reliable, and having the certain practical application value. Key words: LAN; Network Monitoring; Protocol Layer; Data Transmission; Object Monitoring 目 录 1 引言 . 1 1.1 课题背景 . 1 1.2 本课题研究的意义
8、. 1 1.3 本课题的研究方法 . 1 1.4 本论文主要工作 . 2 2 需求分析 . 2 2.1 需求分析概述 . 2 2.2 本软件的需求分析 . 3 2.2.1 本软件实现的目标 . 3 2.2.2 本软件的运行环境要求 . 3 2.2.3 本软件的功能要求 . 4 2.2.4 本软件功能的扩充 . 4 3 理论基础与相关工具介绍 . 4 3.1 网络监听原理介绍 . 4 3.2 TCP/IP 的层次结构 . 5 3.2.1 OSI与 TCP/IP 体系结构的比较 . 5 3.2.2 TCP/IP 四层协议的表示方法举例 . 7 3.2.3 使用 TCP/IP 进行通信的示意图 .
9、7 3.3 Winpcap 简介 . 8 3.4 Jpcap 简介 . 9 4 设计思路 . 10 4.1 设计框架图 . 10 4.2 设计步骤 .11 4.2.1 整体规划 .11 4.2.2 程序运行流程 .11 5 具体实现步骤 . 12 5.1 使用 Eclipse 3.2 创建项目 . 12 5.1.1 创建项目 . 12 5.1.2 创建包 . 13 5.1.3 创建类 . 14 5.2 analyzer 包的设计 . 14 5.2.1 analyzer 包的 作用 . 14 5.2.2 analyzer 包中各个类的作用与实现方式 . 15 5.3 stat 包的设计 . 17
10、 5.3.1 stat 包 的作用 . 17 5.3.2 stat 包中各个类的作用与实现方式 . 17 5.4 ui包的设计 . 18 5.4.1 ui包的作用 . 18 5.4.2 ui包中各个类的作用与实现方式 . 19 5.4.3 ui包中 graph 包的作用 . 22 5.5 外部类的设计 . 22 5.5.1 外部类在整个程序中的作用 . 22 5.5.2 外部各个类的作用与实现方式 . 22 6 测试与分析 . 23 6.1 测试的目的 . 23 6.2 测试的步骤 . 23 6.3 测试分析 . 25 7 用户使用手册 . 26 7.1 系统配置要求 . 26 7.2 系统环
11、境配置 . 26 7.3 执行程序步骤 . 26 结 论 . 30 参考文献 . 31 致 谢 . 32 第 1 页 1 引言 1.1 课题背景 网络监听,在网络安全上一直是一个比较敏感的话题,作为一种发展比较成熟的技术, 网络 监听在协助网络管理员监测网络传输数据,排除网络故障等方面具有不可替代的作用,因而一直倍受网络管理员的青睐。然而,在另一方面网络监听也给以太网安全带来了极大的隐患,许多的网络入侵往往都伴随着以太网内网络监听行为,从而造成口令失窃,敏感数据被截获等等连锁性安全事件。 随着互联网技术的迅猛发展,网络给人们带来了很多便利,但是网络在给人们带来许多便利的同时, 也给人们带来了最
12、担忧的网络安全问题。保证网络及应用系统的安全也成了人们最为关心的问题。 网络监听技术就是提供给网络安全管理人员进行管理的工具,可以用来监视网络的状态、数据流动情况以及网络上传输的信息,以获取有用的信息。作为黑客来说,通过网络监听可以获取其所需的信息(比如密码等);对黑客活动和其他网络犯罪进行侦察、取证时,可以使用网络监听技术来获取必要的信息。因此,在目前研究和使用网络监听技术及相关工具,对于防护网络安全、打击网络犯罪具有重要的现实意义。 1.2 本课题研究的意义 我国的网络正在快速发展中,相 应的问题也就显现出来,网络管理及相应 的应用自然将越发重要,而监听技术正是网络管理和应用的基础,其意义
13、当然重要,放眼当前相关工具 , Linux 有 snort tcpdump , snift 等, window 有 nexray, sniffer等 无一 不是国外软件,随着中国网络的发展, 网络 监听系统必将大有用武之地,因此监听技术的研究已是时事的要求。 中国入世,各种针对盗版的打击力度和对于正版软件的保护力度都将大大加强, windows的盗版软件随处可见的现象将会一去不返,面对这样的情况,大部分的公司只有两种选择:要么花大 价钱向微软购买正版软件,要么是用 开元 操作系统 Linux,特别是重要部门,如国家机关,政府部门,难道要把自己的办公系统操纵在国外大公司手里 ? 北京的政府办公系
14、统已经转用红旗 Linux,而且 Linux的界面也在不但的改进,更加友好 , 易操作,有理由相信 Linux将在我国大有作为,这也是研究 Linux下网络监听的原因。 1.3 本课题的研究方法 本毕业设计的目的主要是为了检查对以前所学知识(包括以前所学的一些关于网络技术、编程技术、网络与信息安全等知识)综合运用的能力,设计开发一个局域网监听软件。 在本系统的开发使用 Eclipse 3.2 开发工具,利用 Java 语言来编写一个具备第 2 页 数据包统计和分析功能的局域网监听软件。 由于核心 Java API不能访问底层的网络数据,因此在使用 Java编写网络监听程序时就必须借助一些工具。
15、本设计借助 Winpcap和 Jpcap这两个工具来对网络底层进行访问,帮助实现网络监听程序。 1.4 本论文主要工作 本文主要介绍局域网监听软件设计 与 开发 。 在进行设计之前,必需了解一些必要的相关知识,所以本文 先 从基础知识开始介绍,然后一步一步地深入,最后开发出具有一定功能的网络监听软件。 本文的第二章对网络 监听 软件的设计有一个全面的需求分析,在写需求分析的时候,主要是对本软件的实现目标、运行环境和功能做一个具体的规划,其次对本软件的发展方向也做了一定的要求。 在第三章中, 首先对 网络监听的原理进行简单的介绍,了解到在网络中的数据是怎样的进行传输的、每一层的协议的作用等等。
16、然后再就 本次开发所必需的辅助工具( Winpcap 和 Jpcap)和它们在局域网监听软件中所起的作用,以及它们的使用方法 做了一定的介绍 。 具备了一定的基础知识 后 ,在第四章中对局域网监听软件的设计做了一个整体的规划,对本次设计的进程有了一个初步的框架 ,然后再综合所学知识进行具体的设计。 在第五章中,开始 介绍 具体的设计步骤,首先将编写三个不同的包,每一个包完成的功能有所不同,但 又 互相联系,然后再编写主类和一些能将每个包,每个类联系起来的类,让其实现预期的效果,最终完成初步的设计。 第六章 的 主要工作是介绍如何测试所编写的程序是否能正常运行,确保所设计的程序能完成相关的功能,
17、不断的对软件进行完善。测试完毕后,将所有代码进行封装打包,完成本次设计。 在本文的最后一章,主要介绍的是如何使用该软件,附带一些软件运行时的图片,对用户做一个具体的介绍。 2 需求分析 2.1 需求分析概述 需求分析 是指理解用户 需求 ,就 软 件 功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程 。 从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列 需求工程 。 图 1为需求分析的具体步骤。 第 3 页 图 1 需求分析步骤 需求分析之所以重要,就因为 它 具有决策性,方向性,策略性的作用,在软件开发的过程中具有举足轻重的地位 。
18、 在一个大型 软件系统 的开发中,他的作用要远远大于 程序设计 。 2.2 本软件的需求分析 2.2.1 本软件实现的目标 虽然计算机网络给人们带来了巨大的便利,但互联网是一个面向大众的开放系统,对信息的保密和系统的 安全 考虑得并不完备,存在着 安全 隐患,网络的 安全 形势日趋严峻。 因此, 在 Internet安全 隐患中扮演重要角色之一的 网络监听软件 受到越来越大的关注,大多数的黑客为了探测内部网上的主机并取得控制权, 甚至有些 黑客为了控制整个网络 ,从而 安装特洛伊木马和后门程序,并清除记录。他们经常使用的 手段 是安装 网络监听软件 。 在黑客和违法人员进行一些非法的操作(例如
19、,盗取用户的密码和相关信息等)时,执法人员也可以利用同样的方法对其进行侦察和取证,并对其进行相关的处置,达到保护用户的重要资料和维护用户的个人利益,并保证网络的正常运行和预防一些违法操作。 本软件的设计就是为了达到基本的维护网络安全的作用,对网络上传输的数据进行捕获,然后从中得到有用的信息,以此来判断是否是恶意的信息,并对其进行过滤等相关操作,起到保护网络安全的作用。 2.2.2 本软件的运行环境要求 在编写本软件前,作者首先确定了所使用的语言 Java,并在开发工具Eclipse 3.2下进行开发,所以首先应该配置好 Java的运行环境( 安装 j2sdk1.4.0或 jre1.4.0以上版
20、本),并在命令提示符检查是否正确配置好 Java的运行环境(输入 java或 javac)。 由于 Java API语言不能访问底层的网络数据,所以使用一些工具(如 Winpcap和 Jpcap)来帮助实现对底层网络数据的访问。在此,本软件必须首先安装第 4 页 Winpcap,然后在 jre中配置好 Jpcap的环境,值得注意的是,以上两个工具都是开元的,所以在很多地方可以查询到它们的使用方式。 2.2.3 本软件的功能要求 对于这个程序,开发人员希望它达到以下几个功能: ( 1)能够截取本网段中传输的数据包; ( 2)运用不同 TCP/IP 体系层次的协议解析类,将数据包逐步分解; ( 3
21、)将分析结果显示出来(协议 字段、数据内容等); ( 4)对截获的数据包的数量和大小进行统计 (饼状图等 ); ( 5)对指定的 IP 地址进行单独监听; ( 6)可以进行界面选择。 2.2.4 本软件功能的扩充 完成了以上功能,只是初步达到了现有阶段的要求,在以后的操作中,可能会遇到许多更为复杂的问题,为此,在设计软件的同时,也应该根据系统的性能来分析将来很可能会提出来的要求,这样做的目的是在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦需要时能比较容易地进行一些扩充和修改。 本软件虽然能够捕获到本网段的数据,并可以对捕获的数据进行简 单的分析,还可以进行指定对象的监听和将结果显示出
22、来等功能,但在实际的运用中,用户肯定会遇到更多的问题,以下是对本软件的扩充性能的一些初步预计: ( 1)自动获取本机和网关的 IP 和 MAC 地址; ( 2)监视所有主机的收发邮件记录收发邮件的 Email地址、日期、主题等; ( 3)对捕获到的数据进一步分析,得到非法数据; ( 4)可以对局域网内的计算机进行一些简单的操作。 3 理论基础与相关工具介绍 3.1 网络监听原理介绍 Ethernet协议 (以太网协议) 的工作方式是将要发送的数据包发往连接在一起的所有主机。在包头中 包括有应该接收数据包的主机的正确地址,因为只有与数据包中目标地址一致的那台主机才能接收到 数据 包,但是当主机工
23、作在监听模式下 , 不管数据包中的目标物理地址是什么,主机都将可以接收到。 数据包并不能在协议栈的高层直接发送出去,要发送的数据包必须从 TCP/IP协议的 IP 层交给网络接口,也就是所说的数据链路层。网络接口不会识别 IP 地址的。 因此, 在网络接口由 IP 层 传输过 来的带有 IP 地址的数据包 将 增加了一部分以太帧的帧头的信息。在帧头中,有两个域分别为只有网络接口才能识别的源第 5 页 主机和目的主机的物理地址 , 这是一个 48 位的地址 ,这个 48 位的地址是与 IP地址相对应的,换句话说就是一个 IP 地址也会对应一个物理地址。 传输数据时,包含物理地址的帧从网络接口(网
24、卡)发送到物理的线路上,如果局域网是由一条粗缆或细缆连接而成,则数字信号在电缆上传输,能够到达线路上的每一台主机。当使用集线器时,由集线器再发向连接在集线器上的每一条线路,数字信号也能到达连接在集线器上的每一台主机。当数字信号到达一台主机的网络接口时,正常情况下,网络接口读入数据帧,进行检查,如果数据帧中携带的物理地址是自己的或者是广播地址,则将数据帧交给上层协议软件,也就是 IP 层软件,否则就将这个帧丢弃。对于每一个到达网络接口的数据帧,都要进行这个过程。 当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网的时候,那么要是有一台主机处于监听模式,它还将可以接收到发向与自己不在同一个子网
25、(使用了不同的掩码、 IP 地址和网关)的主机的数据包,在同一个物理信道上传输的所有信息都可以被接收到。 以太网上的数据帧主要涉及 TCP/IP 协议,针对以下几个协议的分析: IP,ARP, RARP, IPX,其中重点在于 IP 和 ARP 协议,这两个协议是多数网络协议的基础 。 在本软件的监听过程中,将监 听到的数据包利用工具和所编写的方法进行逐层分析,并解析出每一层、每一协议、每一字段的数据,从中得到自己想要的信息,最后将其显示出来,并进行动态的更新。 3.2 TCP/IP 的层次结构 3.2.1 OSI 与 TCP/IP体系结构的比较 OSI( Open System Interc
26、onnect)是 开放式 系统 互联 , 为了解决不同体系结构的网络的互联问题,国际标准化组织 ISO 于 1981年制定了开放系统互连参考模型( Open System Interconnection Reference Model, OSI/RM)。 OSI把 网络 通信的工作分为 7层,它们由低到高分别是物理层( Physical Layer),数据链路层( Data Link Layer),网络层 (Network Layer),传输层( Transport Layer),会话层( Session Layer),表示层( Presen tation Layer)和应用层( Applic
27、ation Layer)。每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持 。 TCP/IP 协议 (Transmission Control Protocol/Internet Protocol)是 传输控制 /网际协议,这个协议是 Internet国际互联网络的基础 。 TCP/IP 通讯协议采用了 4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这 4层分别为: ( 1) 应用层:应用程序间沟通的层,如简单电子邮件传输( SMTP)、文件第 6 页 传输协议( FTP)、网络远程访问协议( Telnet)等 ; ( 2) 传输层:在此层中,它提供
28、了节点间的数据传送服务,如传输控制协议( TCP)、用户数据报协议( UDP)等, TCP和 UDP 给数据包加入传输数据并把它传输到下一层中, 这一层负责传送数据,并且确定数据已被送达并接收 ; ( 3) 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议( IP) ; ( 4) 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、 Serial Line等)来传送数据。 TCP/IP 各层的描述如表 1所示。 表 1 TCP/IP 各层描述 TCP/IP 的描述 主要协议 主要功能 应用层 Http、
29、 Telnet、 FTP和 e-mail等 负责把数据传输到传输层或接收从传输层返回的数 据 传输层 TCP 和 UDP 主要为两台主机上的应用程序提供端到端的通信, TCP 为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。 UDP则为应用层提供一种简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据能到达另一端。 网络层 ICMP、 IP 和 IGMP 有时称作互联网层,主要为数据包选择路由,其中 IP 是 TCP/IP协议族中最核心的协议。所有的 TCP、
30、 UDP、 ICMP 及 IGMP数据都以 IP 数据报格式传输 链路层 ARP、 RARP 和设备驱动程序及接口卡 发送时将 IP 包作为 帧 发送;接收时把接收到的位组装成 帧 ;提供链路管理;错误检测等 OSI模型与 TCP/IP协议 的 区别 如下: ( 1) TCP/IP 一开始就考虑到多种异构网的互联问题,并将网际协议 IP 作为 TCP/IP 的重要组成部分。但 ISO 和 CCITT最初只考虑到全世界都使用一种统一的标准公用数据网将各种不同的系统互连在一起。后来, ISO 认识到了网际协议 IP 的重要性,然而已经来不及了,只好在网络层中划分出一个子层来完成类似 TCP/IP中的 IP 的作用; ( 2) TCP/IP 一开始就对面向连接服务和无连接服务并重,而 OSI在开始只强调面向连接这一种服务。一直到很晚 OSI才开始制定另一种无连接服务的有关标准; ( 3) TCP/IP 较早就有较好的网络管理功能,而 OSI到后来才开始考虑这个问题。 OSI 与 TCP/IP 体系结构的比较如图 2所示。