网络数据包的分析与实现.docx
- 文档编号:23819169
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:24
- 大小:439.68KB
网络数据包的分析与实现.docx
《网络数据包的分析与实现.docx》由会员分享,可在线阅读,更多相关《网络数据包的分析与实现.docx(24页珍藏版)》请在冰豆网上搜索。
网络数据包的分析与实现
摘要
随着网络技术的不断发展,社会进入了一个信息爆炸的时代,世界也由于网络而变小,人们通过各种技术和工具使交流突破了空间的限制。
在网络技术发展与普及的同时,网络安全问题引起了人们的广泛关注。
因此,研究并开发出一种能够有效地实时捕获网络信息的系统具有极其重要的意义。
基于这一情况,本论文针对网络数据的捕获与数据包信息分析等问题进行了深入的探讨和研究。
本论文逐一介绍了信息捕获中的相关技术及需求分析,在系统设计中对数据包捕获模块、解码数据包模块和数据库信息模块的实现进行了详细讲述。
通过运用Sniffer开发包实现网络数据包的捕获,利用TCP/IP协议的封装理论和自下而上的分析实现了数据包信息的分析,并且将分析出来的信息存入数据库。
另外,还能实现一些功能,如对指定的IP地址进行数据包的捕获,对捕获结果进行显示等。
关键词:
Sniffer;数据捕获;信息分析;局域网
Abstract
Asdevelopmentofthenetworkandtechnology,thesocietycomesintoaageofinformationexplosion.Duetothenetwork,theworldhasbecomesmaller,andpeopleuseallkindsoftechnologiesandtoolstobreakthroughthelimitationofcommunication.Thenetworksecurityhasbeenwidelyconcernedfollowedbythedevelopmentanduniversalofthenetworktechnology.Therefore,itisgreatsignificancethataneffectivereal-timeinterceptionnetworkinformationsystemisstudiedanddeveloped.Baseonthissituation,thisthesisin-depthstudiestocapturethenetworkdataandsoon.Besides,itintroducesrelativetechnologyandtheneedsinformationcapture.Therealizationofthedatacapturemodule,datapacketdecodedmoduleanddatabaseinformationmoduleisdisplayedfordetailinthesystem'sdesign.ThenetworkdatapacketiscapturedthroughSniffer,somefunctionshasbeenrealized,suchasnetworkdatapacketcapture,datapacketsofinformationanalysisbyusingTCP/IPprotocolencapsulationtheoryandbottom-up,andwillanalyzetheinformationstoredinthedatabase.Simultaneously,thissoftwarewouldalsoincreasessomefunctions,suchasdatapacketcapturebytheIPaddress,maketheresultsandstatistics,displaytheresultsofdatapacketcaptureandsoon.
Keywords:
Sniffer;datacapture;informationanalysis;LAN
1引言
随着计算机技术的发展,网络已经日益成为生活中不可或缺的通讯工具,但是随之而来的非法入侵也是一直威胁着计算机网络安全,由于在局域网采用广播的方式,因此,在某个广播域中可以监听到所有数据包,而黑客也能通过对这些数据包的分析来获取局域网中的重要信息。
另一方面,我们对黑客入侵活动和其他网络犯罪调查、取证也是通过网络监听技术来获取相关信息。
所以,掌握以太网的监听技术原理、实现方法和防范措施显得尤为重要。
1.1课题意义和背景
本设计利用Sniffer来捕获数据包、分析数据包,实现网络嗅探功能。
Sniffer是Windows环境下的链接层网络访问的工业标准工具,目前被广泛使用。
Sniffer可以使用应用程序绕过操作系统的协议栈去捕获和传输网络数据包。
通过对Sniffer的学习,可以深入的理解与掌握网络数据的组成,传输与分析。
嗅探器,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。
简单一点解释:
一部电话的窃听装置,可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。
计算机直接所传送的数据,事实上是大量的二进制数据。
因此,一个网络窃听程序必须也使用特定的网络协议来分解嗅探到的数据,嗅探器也就必须能够识别出那个协议对应于这个数据片断,只有这样才能够进行正确的解码嗅探器是网络的抓包工具,可以对网络中大量数据抓取,从而方便使用者对网络中用户的一些信息进行分析,所以,通常被黑客运用于网络攻击。
我们如果也能掌握网络嗅探器的原理和设计,可以将它运用与网络故障检测、网络状况的监视,还可以加强企业信息安全防护。
1.2课题研究技术和方法
网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获取原始数据,根据TCP/IP分层理论进行层层拆解,提取相关协议中的信息。
本毕业设计主要通过使用Sniffer开发包,在Java环境下编写出了一款简单的软件对数据包信息按TCP协议类型、UDP协议类型、ARP等分类捕获,捕获出所需要的敏感信息,并且将捕获出来的信息写入数据库。
网络嗅探器并不会告诉你问题究竟是什么,而只会告诉你究竟发生了什么。
对网络嗅探器的研究我加深了对通信协议的理解,网络数据结构的理解。
对网络嗅探器的深入研究更重要的是可以让我们的互联网世界更安全、信息更健康。
计算机的嗅探器比起电话窃听器,有他独特的优势:
很多的计算机网络采用的是“共享媒体"。
也就是说,你不必中断他的通讯,并且配置特别的线路,再安装嗅探器,你几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。
我们称这种窃听方式为“基于混杂模式的嗅探”。
尽管如此,这种“共享”的技术发展的很快,慢慢转向“交换”技术,这种技术会长期内会继续使用下去,它可以实现有目的选择的收发数据。
1.3sniffer简介
当信息以明文的形式在网络上传输时,便可以使用网络监听的方式来进行攻击。
将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获。
但实际上Sniffer技术被广泛地应用于网络故障诊断、协议分析、应用性能分析和网络安全保障等各个领域。
Sniffer程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为杂乱(promiscuous)模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包。
普通的情况下,网卡只接收和自己的地址有关的信息包,即传输到本地主机的信息包。
要使Sniffer能接收并处理这种方式的信息,系统需要支持BPF,Linux下需要支持SOCKET一PACKET。
但一般情况下,网络硬件和TCP/IP堆栈不支持接收或者发送与本地计算机无关的数据包,所以,为了绕过标准的TCP/IP堆栈,网卡就必须设置为我们刚开始讲的混杂模式。
一般情况下,要激活这种方式,内核必须支持这种伪设备BPfilter,而且需要root权限来运行这种程序,所以sniffer需要root身份安装,如果只是以本地用户的身份进入了系统,那么不可能嗅探到root的密码,因此不能运行Sniffer。
Sniffer分为软件和硬件两种,软件的Sniffer有SnifferPro、NetworkMonitor、PacketBone等,其优点是易于安装部署,易于学习使用,同时也易于交流;缺点是无法抓取网络上所有的传输,某些情况下也就无法真正了解网络的故障和运行情况。
硬件的Sniffer通常称为协议分析仪,一般都是商业性的,价格也比较昂贵,但会具备支持各类扩展的链路捕获能力以及高性能的数据实时捕获分析的功能。
基于以太网络嗅探的Sniffer只能抓取一个物理网段内的包,就是说,监听的目标中间不能有路由或其他屏蔽广播包的设备,这一点很重要。
所以,对一般拨号上网的用户来说,是不可能利用Sniffer来窃听到其他人的通信内容的。
Sniffer与其他网络协议分析仪最大的差别在于它的人工智能专家系统。
简单地说,Sniffer能自动实时监视网络,捕捉数据,识别网络配置,自动发现网络故障并进行告警,它能指出:
网络故障发生的位置,以及出现在OSI第几层。
网络故障的性质,产生故障的可能的原因以及为解决故障建议采取的行动。
Sniffer还提供了专家配制功能,用户可以自已设定专家系统判断故障发生的触发条件。
Sniffer可以在全部七层OSI协议上进行解码,目前没有任何一个系统可以做到对协议有如此透彻的分析;它采用分层方式,从最低层开始,一直到第七层,甚至对Oracle数据库、SYBASE数据库都可以进行协议分析;每一层用不同的颜色加以区别。
Sniffer对每一层都提供了Summary、Detail、Hex等几种解码窗口。
在同一时间,最多可以打开六个观察窗口。
Sniffer还可以进行强制解码功能,如果网络上运行的是非标准协议,可以使用一个现有标准协议样板去尝试解释捕获的数据。
Sniffer提供了在线实时解码分析和在线捕捉,将捕捉的数据存盘后进行解码分析二种功能。
2.研究的目的及内容
2.1研究的目的及内容
综合所学知识,使知识系统化与实用化。
研究网络抓包功能,可以对网络中大量数据包抓取,从而方便使用者对网络中用户的一些信息进行分析,掌握这些原理,我们可以运用网络抓包工具来进行网络故障检测、网络状况监听,加强信息的安全防护,预防黑客的攻击等。
本系统需要实现的共更能模块有数据包捕获模块、数据包信息显示模块、数据包解析及存储模块、数据包分析模块。
当一个黑客成功地攻陷了一台主机,并拿到了root权限,而且还想利用这台主机去攻击同一(物理)网段上的其他主机时,他就会在这台主机上安装嗅探软件,对以太网设备上传送的数据包进行侦听,从而发现感兴趣的包。
如果发现符合条件的包,就把它存到一个log文件中去。
通常设置的这些条件是包含字“username”或“password”的包,这样的包里面通常有黑客感兴趣的密码之类的东西。
一旦黑客截获得了某台主机的密码,他就会立刻进入这台主机。
如果嗅探器运行在路由器上或有路由功能的主机上,就能对大量的数据进行监控,因为所有进出网络的数据包都要经过路由器。
嗅探器属于第M层次的攻击。
就是说,只有在攻击者已经进入了目标系统的情况下,才能使用嗅探这种攻击手段,以便得到更多的信息。
嗅探器除了能得到口令或用户名外,还能得到更多的其他信息,比如一个重要的信息、在网上传送的金融信息等等。
嗅探器几乎能得到任何在以太网上传送的数据包。
因此,设计本系统的就是为了达到基本的维护网络安全的作用,对网络上传输的数据进行捕获,然后从中得到所有的网络数据包,并对其进行简单的分析操作。
在网络入侵取证系统中,对网络上传送的数据包进行有效的监听即捕获包是目前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的数据进行一系列的分析,从而进行可靠的网络安全管理。
网络的安全性和高可用性是建立在有效的网络管理基础之上的,网络管理包括配置管理、故障管理、性能管理、安全管理和计费管理五大部分。
对于企业计算机网络来说,网络故障管理主要侧重于实时的监控,而网络性能管理更看中历史分析。
2.2课题研究的相关技术
互联网技术
互联网技术不仅仅是物理上的连接,还包括逻辑上的连接,互联网使多个网络形成一个有机整体,实现跨网络的互操作。
网络互联的根本问题是解决网络技术和应用所带来的网络异构性问题。
网络互连技术必须保证以下3点:
使不同硬件结构计算机能相互通信
适用于多种不同的操作系统
能使多种分组交换网络硬件
网络的功能主要由各层的协议来完成,TCP/IP协议时当前因特网协议族的总称,TCP/IP协议族庞大,成为重要的协议
IP地址
IP地址是互联网中重要部分,它能将不同的物理网络地址统一到具有全球的IP地址。
目前IP地址还是用IPv4版本,分为5类,各类都有自己的范围。
但是严格按照分类来分配IP地址会浪费很大的地址空间,因此用到了无类地址划分,用子网掩码来区别网络号和主机号。
因特网的IP协议提供了整个因特网通用的地址格式,并在统一管理下进行IP地址分配,确保一个地址对应一台主机或路由器,这样对上层而言物理地址的差异性就被屏蔽了,因此当一台主机从一个网络移动到另一个网络的时候需要改变这台主机的IP地址。
以下是IP数据报格式示意图:
图2.1
上图个字段含义如下:
版本:
当前IP协议的版本号,本论文采用的版本号为4;
首部长度:
以32bit为单位的包头长度;
服务类型:
规定对本数据报的处理方式,比如优先权等;
总长:
以Byte为单位的整个IP数据报长度;
标识:
信源主机赋予每个IP数据报的唯一标识符号,用于控制分片及其重组;
标志和片偏移:
同样用于控制分片及其重组;
生存时间:
设置本数据报的最大生存时间,以秒为单位;
协议:
表示创建本IP数据报数据区数据的高层协议的类型,如TCP,UDP等;
头标校验和:
用于保证头标数据的完整性;
源IP地址和目的IP地址:
分别指发送本数据报的主机IP地址和接受本数据报的主机的IP地址;
选项:
用于控制和测试,是IP数据报中可选的部分,包含“源路径”、“路径记录”、“时间戳”等几种类型。
以下是TCP/IP网络体系结构与上述各协议之间的关系模型。
图2.2
应用层的大多数应用程序通过TCP、UDP来访问网络层,或者通过ICMP来使用网络层,如Ping、TraceRoute等也可以使用IP直接访问网络层。
传输层中的TCP、UDP为应用层提供可靠的或不可靠网络传输的网络传输服务。
网络层的ICMP是IP协议的附属协议,IP协议用它与路由器之间交换错误报文或其它控制信息。
网络接口层的ARP、RARP是以太网和令牌环使用的特殊协议,用来转换IP层和网络接口层使用的地址。
3。
需求
3.1功能需求
本软件的设计就是为了达到基本的维护网络安全的作用,对网络上传输的数据进行捕获,然后从中得到所有的网络数据包,并对其进行简单的分析操作。
在网络入侵取证系统中,对网络上传送的数据包进行有效的监听即捕获包是目前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的数据进行一系列的分析,从而进行可靠的网络安全管理
(1)对网络中的数据包能及时抓捕。
(2)对抓捕到的数据包进行分析,能辨别出包的类型、大小、包的源地址、协议类型等。
(3)向用户显示分析的结果,并对数据包进行简单解释。
(4)用户可操作性,用户能根据自己的设置进行控制进行抓包、何时抓包、抓何种类型的包、何时停止等。
(5)可对比性,可以把抓到的数据包和数据库内的特征进行对比,以便能分析断数据包。
有于水平有限,不可能实现像Sniffer或者影音神探那样复杂的设置和分析,所以我们只对抓取到的本机在网络中的通信数据(如协议类型,源、目的地址和端口、数据包的大小等)加以分析,实现一个简单的网络嗅探器。
一个窗体显示主页面,另一个页面显示详细的包信息。
而像Sniffer的复杂功能也不能全部实现,而是实现了部分功能和简单分析,本系统未完善之处还有待解决。
3.2性能需求
由于本设计是安装在个人电脑上,所以要求用户界面简洁,友好,方便使用和操作。
网络上数据包的捕获是入侵检测系统的基础,关键是要保证高速的抓包和低的丢包率。
一方面,网络检测部分的数据源是网络上的数据包,需要经过捕获后方可以提交给分析系统;另一方面,捕获数据包效率的高低直接影响着网络探测部分的性能的好坏,如果发生丢包现象,则有可能丢掉的包就是攻击包。
在保证高速的抓包和低的丢包率的同时,要还要求程序能有较强的稳定性。
一款好的信息过滤软件,都是将在一个长时间工作的环境中运行。
如果不能保证较强的稳定性的话,那么软件对信息过滤的效率和功能有很大的局限性,对数据信息过滤就是失败的。
那么这款软件就不会具备同其他同类似软件的竞争力,更不会有市场,那么它就注定成为一款失败的软件。
假如,当用户使用这款软件时,软件占用了太多的系统资源而导致用户对电脑的其他操作都很难进行,那么,没有人会用这款软件。
所以,该软件还应该具备一种特点就是:
低的系统资源占用率。
4.网络嗅探器原理
网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获取原始数据,根据TCP/IP分层理论进行层层拆解,提取相关协议中的信息。
本毕业设计主要通过使用sniffer开发包,在java环境下编写出了一款简单的软件对数据包信息按TCP协议类型、UDP协议类型、icmp、igmp、arp进行分类捕获,捕获出所需要的敏感信息,并且将捕获出来的信息写入数据库。
4.1系统功能概述
先描述一下信息在网络上的传输、信息的特征类型和任何被偷听的。
网络的一个特点就是数据总是在流动中,从一处到另外一处,而互联网是由错综复杂的各种网络交汇而成的,也就是说:
当你的数据从网络的一台电脑到另一台电脑的时候,通常会经过大量不同的网络设备,(我们用tracert命令就可以看到这种路径是如何进行的)。
如果传输过程中,有人看到了传输中的数据,那么问题就出现了——这就好比给人发了一封邮件,在半路上被人拆开偷看一样,这样说或许还不是很可怕,那要是传送的数据是企业的机密文件那,或是用户的信用卡帐号和密码呢?
通过前面的叙述可以知道,这款软件具有的功能,那就是:
能够分别捕获局域网中的TCP协议类型数据,UDP协议类型数据和从某一特定的IP地址发送出来的TCP协议类型数据和UDP协议数据类型。
并且,将这些捕获出来的数据包的基本信息存入到数据库中,提供给网络管理员使用和进一步的分析。
嗅探侦听主要有两种途径,一种是将侦听工具软件放到网络连接的设备或者放到可以控制网络连接设备的电脑上,(比如网关服务器,路由器)——当然要实现这样的效果可能也需要通过其他黑客技术来实现:
比如通过木马方式将嗅探器发给某个网络管理员,使其不自觉的为攻击者进行了安装。
另外一种是针对不安全的局域网(采用交换hub实现),放到个人电脑上就可以实现对整个局域网的侦听,这里的原理是这样的:
共享hub获得一个子网内需要接收的数据时,并不是直接发送到指定主机,而是通过广播方式发送到每个电脑,对于处于接受者地位的电脑就会处理该数据,而其他非接受者的电脑就会过滤这些数据,这些操作与电脑操作者无关,是系统自动完成的,但是电脑操作者如果有意的话,他是可以将那些原本不属于他的数据打开——这就是安全隐患。
以太网的数据传输是基于“共享”原理的:
所有的同一本地网范围内的计算机共同接收到相同的数据包。
这意味着计算机直接的通讯都是透明可见的。
正是因为这样的原因,以太网卡都构造了硬件的“过滤器”这个过滤器将忽略掉一切和自己无关的网络信息。
事实上是忽略掉了与自身MAC地址不符合的信息。
嗅探程序正是利用了这个特点,它主动的关闭了这个嗅探器,也就是前面提到的设置网卡“混杂模式”。
因此,嗅探程序就能够接收到整个以太网内的网络数据了信息了。
由于大量的计算机在以太网内“共享“数据流,所以必须有一个统一的办法用来区分传递给不同计算机的数据流。
这种问题不会发生在拨号用户身上,因为计算机会假定一切数据都由用户动给modem然后通过电话线传送出去。
可是,当发送数据到以太网上的时候,你必须弄清楚,哪台计算机是你发送数据的对象。
的确,现在有大量的双向通讯程序出现了,看上去,他们好像只会在两台机器内交换信息,可以太网的信息是共享的,其他用户,其实一样接收到了你发送的数据,只不过是被过滤器给忽略掉了。
MAC地址是由一组6个16进制数组成的,它存在于每一块以太网卡中。
如果对网络结构不太熟悉,建议参考一下OSI7-LayerModel,这将有助于理解后面的东西以太网所使用的协议主要是TCP/IP,并且TCP/IP也用于其他的网络模型(比如拨号用户,他们并不是处于一个以太网环境中)。
举例一下,很多的小团体计算机用户都为实现文件和打印共享,安装了“NetBEUI”因为它不是基于TCP/IP协议的,所以来自于网络的黑客一样无法得知他们的设备情况。
基于Raw协议,传输和接收都在以太网里起着支配作用。
你不能直接发送一个Raw数据给以太网,用户必须先做一些事情,让以太网能够理解用户的意思。
这有点类似于邮寄信件的方法,不可能直接把一封信投递出去,而是必须先装信封,写地址,贴邮票,网络上的传输也是这样的。
下面给出一个简单的例子,助于理解系统的原理:
假如有UserA和UserB,各自的IP如下
UserAIP地址:
10.0.0.23
UserBIP地址:
192.168.100.54
现在知道UserA要于UserB进行计算机通讯,UserA需要为10.0.0.23到192.168.100.54的通讯建立一个IP包。
这个IP包在网络上传输,它必须能够穿透路由器。
因此,UserA必须首先提交这个包给路由器。
由每个路由器考查目地IP地址然后决定传送路径。
UserA所知道的只是本地与路由的连接,和UserB的IP地址。
UserA并不清楚网络的结构情况和路由走向。
UserA必须告诉路由预备发送的数据包的情况,以太网数据传输结构大概是这样的:
图4.1
理解一下这个结构,UserA的计算机建立了一个包假设它由100个字节的长度(假设20个字节是IP信息,20个字节是TCP信息,还有60个字节为传送的数据)。
现在把这个包发给以太网,放14个字节在目地MAC地址之前,源MAC地址,还要置一个0x0800的标记,他指示出了TCP/IP栈后的数据结构。
同时,也附加了4个字节用于做CRC校验,CRC校验用来检查传输数据的正确性。
现在发送数据到网络。
所有在网内的计算机通过适配器都能够发现这个数据片,其中也包括路由适配器,嗅探器和其他一些机器。
通常,适配器都具有一块芯片用来做结构比较的,检查结构中的目地MAC地址和自己的MAC地址,如果不相同,则适配器会丢弃这个结构。
这个操作会由硬件来完成,所以,对于计算机内的程序来说,整个过程时毫无察觉的。
当路由器的以太网适配器发现这个结构后,它会读取网络信息,并且去掉前14个字节,跟踪4个字节。
查找0x8000标记,然后对这个结构进行处理(它将根据网络状况推测出下一个最快路由节点,从而最快传送数据到预定的目标地址)。
设想,只有路由机器能够检查这个结构,并且所有其他的机器都忽略这个结构,则嗅探器无论如何也无法检测到这个结构的。
以太网卡的MAC地址是一组48比特的数字,这48比特分为两个部分组成,前面的24比特用于表示以太网卡的寄主,后面的24比特是一组序列号,是由寄主进行支派的。
这样可以担保没有任何两块
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 数据包 分析 实现