论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

网络嗅探器(论文+程序)

2.4.2套接字包捕获机制

上世纪80年代初,加利福尼亚大学Berkeley分校在UNIX操作系统下实现了TCP/IP协议,它们为TCP/IP网络通信开发了一个应用程序接口(API),这个API称为socket(套接字)接口。Socket给程序员提供了一个高层接口,它的出现使得程序员在编写网络应用程序时只需要调用函数,对网络的底层细节并不需要精通,因此十分方便。

paper51.com

socket实质上是提供了进程通信的端点。进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的。正如打电话之前,双方必须拥有各自的电话机一样。

内容来自www.paper51.com

在网间和网内部,每一个socket用一个半相关描述:{协议,本地地址,本地端口}

内容来自www.paper51.com

一个完整的socket连接则用一个相关描述:{协议,本地地址,本地端口,远地地址,远地端口}

copyright paper51.com

每一个socket有一个本地唯一的socket号,由操作系统分配。 内容来自论文无忧网 www.paper51.com

最重要的是,socket是面向客户——服务器模型而设计出来的,针对客户和服务器程序提供不同的socket系统调用。客户随机申请一个socket(相当于一个想打电话的人可以在任何一台入网电话上拨号呼叫),系统为之分配一个socket号;服务器拥有全局公认的socket(在LINUX中,/etc/services用于存储全局公认的socket号),任何客户都可以向它发出连接请求和信息请求。

copyright paper51.com

下面我们一一给出重要的socket系统调用。 paper51.com

函数socket()可以创建一个socket对象,socket()函数的原型如下: 内容来自论文无忧网 www.paper51.com

SOCKET socket(int af, int type, int protocol);

http://www.paper51.com

创建一个socket实际上是向系统申请一个属于自己的socket号。

http://www.paper51.com

af(Address Family)俗称套接字地址族,如表2.1所示。

paper51.com

表2.1 Linux支持的套接字地址族 paper51.com

套接字地址族

内容来自论文无忧网 www.paper51.com

描述

copyright paper51.com

UNIX 内容来自www.paper51.com

UNIX域套接字 paper51.com

INET

http://www.paper51.com

通过TCP/IP协议支持的Internet地址族 内容来自www.paper51.com

AX25

copyright paper51.com

Amater radio X25 http://www.paper51.com

IPX 内容来自论文无忧网 www.paper51.com

Novell IPX http://www.paper51.com

APPLETALK 内容来自论文无忧网 www.paper51.com

Appletalk DDP

内容来自www.paper51.com

X25

http://www.paper51.com

X25 copyright paper51.com

协议族、socket类型和协议常用的组合如表2.2所示: copyright paper51.com

表2.2 系统调用三参数组合关系 内容来自www.paper51.com

协议族(af)

内容来自www.paper51.com

Socket类型(type) copyright paper51.com

协议(UNIX表示)

内容来自www.paper51.com

实际协议 内容来自论文无忧网 www.paper51.com

AF_INET 内容来自www.paper51.com

Sock_DGRAM

内容来自论文无忧网 www.paper51.com

IPPROC_UDP 内容来自论文无忧网 www.paper51.com

UDP

copyright paper51.com

Sock_STREAM

copyright paper51.com

IPPROC_TCP

http://www.paper51.com

TCP 内容来自www.paper51.com

Sock_RAM

copyright paper51.com

IPPROC_ICMP 内容来自www.paper51.com

ICMP

内容来自论文无忧网 www.paper51.com

Sock_RAM http://www.paper51.com

IPPROC_RAM 内容来自论文无忧网 www.paper51.com

某低级协议 paper51.com

指定本地地址使用函数bind()一一绑定 内容来自www.paper51.com

socket()系统调用创建socket时,只指定了相关五元组的协议元,没有指定其余四元(本地地址、本地端口、远地地址、远地端口),因此需要别的系统调用加以补充。 内容来自www.paper51.com

bind()将本地socket地址(包括本地主机地址和本地端口)与所创建的socket号联系起来,即将本地socket地址赋予socket,以指定本地半相关。其用于Linux性能评估的测试工具的设计与实现调用格式为: bind(sockid,localaddr, addrlen)

http://www.paper51.com

总的来说,各种socket地址数据结构包括两大部分:地址类型和协议地址。网络协议地址又包括主机地址和端口号。

paper51.com

监听— listen() 内容来自论文无忧网 www.paper51.com

对于服务器来说,在它接受客户机的连接之前,首先要监听。只有进入了监听模式,才能接受来自客户机的连接。这一点可以通过listen()函数来实现,它的原型如下: http://www.paper51.com

int listen(SOCKET s, int backlog); paper51.com

各参数意义如下:

内容来自www.paper51.com

s:进行监听的套接字。 paper51.com

Backlog:正在等待连接的最大队列的长度。如果backlog的只为3,有4个客户机同时发出连接请求,则前3个会放在等待连接队列中,最后一个将被忽略。 paper51.com

如果函数成功,则返回0;否则返回SOCKET_ERROR。

paper51.com

当客户机和服务器的连接建立起来后,用函数send()和recv()来进行数据传输。 内容来自www.paper51.com

2.5 嗅探器的两面性

内容来自www.paper51.com

从事网络安全的技术人员和相当一部分准黑客(指使用现成的黑客软件进行攻击的人)都知道网络嗅探器无论是在网络安全还是在黑客攻击方面均扮演了很重要的角色。通过使用网络嗅探器可以实现对网络上传输的数据包的捕获与分析。此分析结果可供网络安全分析之用,也可为黑客所利用为其发动进一步的攻击提供有价值的信息。可见,嗅探器实际是一把双刃剑。 paper51.com

2.5.1 sinffer的危害 http://www.paper51.com

网络嗅探器作为被黑客所利用的攻击工具其危害性主要表现在以下几个方面:

paper51.com

1.偷窥机密或敏感的数据信息   通过拦截数据包,入侵者可以记录网上敏感信息的传送,或者干脆拦截整个会话过程。 内容来自论文无忧网 www.paper51.com

2.窥探低级的协议信息   对底层的协议信息记录,如两台主机之间的网络接口地址,远程网络接口IP地址,IP路由信息和TCP连接的字节顺序号码等,这些信息由非法入侵者掌握后将对网络的安全构成极大的危害。 copyright paper51.com

一个入侵者攻击网络系统可能步骤大体有:信息收集à安全弱点探测和分析à实施攻击à逃避检测。入侵者会利用公开的协议和工具,收集目标网络中各个主机系统的相关信息,入侵者会探测目标网络上的各个主机,以寻找该系统的安全漏洞及安全弱点。他可以自编程序或利用公开的程序进行自动扫描,然后对目标实施攻击,获得系统控制权。入侵者甚至可以利用该主机为基础入侵整个网络并留下后门,掩盖痕迹,完成一次入侵。

内容来自论文无忧网 www.paper51.com

2.5.2 通过网络嗅探进行网络管理 copyright paper51.com

在合理的网络中,网络嗅探器的存在对系统管理员是致关重要的,系统管理员通过sniffer可以诊断出大量的不可见模糊问题,这些问题涉及两台乃至多台计算机之间的异常通讯有些甚至牵涉到各种的协议,借助于sniffer系统管理员可以方便的确定出多少的通讯量属于哪个网络协议、占主要通讯协议的主机是哪一台、大多数通讯目的地是哪台主机、报文发送占用多少时间、或者相互主机的报文传送间隔时间等等,这些信息为管理员判断网络问题、管理网络区域提供了非常宝贵的信息。

copyright paper51.com

使用嗅探器进行网络管理主要体现在两个方面:

http://www.paper51.com

1.使用网络嗅探技术进行网络故障诊断与分析   通过网络嗅探技术收集到网络中传送的数据后对这些数据进行分析可以帮助解决在各种网络上的性能问题并排除网络故障,进一步可以产生报表等数据分析结果以更好的支持网络的运行。 http://www.paper51.com

2.使用网络嗅探技术进行安全分析   通过对监听结果进行分析,可以及时发现各种危害网络安全的行为,维护网络的安全性。新的网络安全技术的研究方向正集中于网络嗅探技术上,这种方式隐蔽,不会对正常的网络传输造成任何影响,同时数据收集也十分丰富。通过网络嗅探技术实现审计跟踪、攻击检测等在网络安全问题上具有重要意义。 内容来自www.paper51.com

3 入侵检测系统与嗅探器3.1 入侵检测概念

内容来自论文无忧网 www.paper51.com

建立入侵检测系统是网络安全的一个重要工作,通过学习,对入侵检测系统有了一定的了解,下面对入侵检测技术做一个总体介绍。 http://www.paper51.com

入侵检测技术与防火墙、PKI等技术不同,防火墙、PKI只是立足于“防”,而入侵检测是对网络系统的运行状态进行监视,发现各种攻击企图、攻击行为或者攻击结果,以保证系统资源的机密性、完整性和可用性。

内容来自论文无忧网 www.paper51.com

为了提高入侵检测系统(IDS)产品、组件及与其他安全产品之间的互操作性,美国国防高级研究计划署(DARPA)和互联网工程任务组(IETF)的入侵检测工作组(IDWG)发起制定了一系列建议草案,从体系结构、API、通信机制、语言格式等方面规范IDS的标准。DARPA提出的建议是公共入侵检测框架(CIDF),最早由加州大学戴维斯分校安全室主持起草工作。

http://www.paper51.com

CIDF提出了一个通用模型, 将入侵检测系统分成了四大模块:事件产生器(EventGenerators),事件分析器(Event Analyzers),响应单元(Response Units)和事件数据库(Event Database)。各部分功能是:

内容来自论文无忧网 www.paper51.com

1. 事件产生器获得数据并向 IDS 的其它模块提供; paper51.com

2. 事件分析器针对数据进行入侵分析;

paper51.com

3. 响应单元对分析的结果作出不同的响应; 内容来自www.paper51.com

4. 数据库存储以上三个模块收集及分析的各种数据。

内容来自www.paper51.com

在检测的技术上,主要分为三类:静态分析、异常检测、误用检测。 http://www.paper51.com

1.静态分析方法:通过分析系统配置,检查系统是否已经或可能被人入侵。

内容来自www.paper51.com

2.异常检测方法:通过历史数据定义用户正常活动的模型,当检测到与所建立的正常模型有差异的行为发生时,认为可能有入侵行为的发生。

copyright paper51.com

3.误用检测方法:通过分析已知的入侵模式,用事先定义的规则描述这些入侵模式,再通过这些已知的行为模式来检测当前网络中是否存在入侵行为。

内容来自论文无忧网 www.paper51.com

上述三种方法均建立在数据包捕获的基础上。

http://www.paper51.com

------分隔线----------------------------
联系方式