论文部分内容阅读
摘 要:协议还原技术是进行网络安全监控的基础。本文提出了多端口应用协议还原的分析框架,并对多端口协议还原中的关键问题给出了算法。在实验部分,本文以FTP协议为例,证明本文方法对于多端口应用协议还原的有效性。
关键词:网络协议 端口 协议还原技术
中图分类号:TP391 文献标识码:A 文章编号:1674-098X(2012)07(c)-0057-02
1 引言
随着各种各样的网络应用快速普及,人们在生活和工作中对互联网络的依赖程度越来越深。同时各种新的安全问题也随之产生。这要求我们能够掌握网络的状态、对网络进行管理和监控,从而及时的应对各种网络安全事件,遏制网络犯罪行为的发生。
对网络进行管理和监控,需要了解网络的工作原理。互联网中,为便于不同系统不同硬件的主机在互联网上互联,在互联网上传送的数据包必须符合同一种协议。例如TCP/IP协议标准,它是目前互联网上广泛应用的一簇协议的统称。
协议还原系统就是捕获网络中的所有报文,根据标准的协议规定对报文进行重组和还原。它在对底层协议进行解析的基础上,主要对应用层的协议进行分析。通过网络协议还原技术,可以迅速的了解两个网络的数据传输和网络通信的交互过程。同时协议还原技术还可以为其他系统和工具服务。
应用协议中,有一类协议在会话的过程中通过多个端口进行服务,例如ftp协议以及种类繁多的即时通信协议。对于这类协议,需要确定数据传送会话和控制命令会话之间的关联。目前很多工具和开发包提供IP分片重组、TCP流重组以及应用协议重组,对于多端口的协议还原技术的研究还较少。
本文提出了一种多端口应用协议还原的分析框架,即基于TCP/IP协议的分层协议还原系统。并对多端口协议中还原中的关键问题给出了算法。在实验部分,本文以FTP协议为例,证明本文方法对于多端口应用协议还原的有效性。
2 多端口应用协议还原分析框架
协议还原系统分析每个应用层会话,将会话的交互过程以及其中传递的数据内容部分以一种比较友好直观的方式显示或保存。这里的会话定义为一个应用从开始对话到结束对话的整个过程。
目前大多数的操作系统中都实现了TCP/IP协议栈。该协议簇整体上分为五层,从上到下依次是应用层、传输层、网络层、数据链路层和物理层。每一层协议都具有标准固定的协议格式,这就给分析网络上捕获的数据提供了可能。在分析时,从底层开始向上逐层分析每个数据包直至应用层,这样每一个数据包的概要信息会被分析出来。
本文提出的多端口应用协议还原的系统框架完成如下功能:
*数据包捕获:对流经网卡的所有数据包进行抓取。对于有多个网卡的监控主机,为每个网络适配器建立一个进程以获得经过它的数据包;
*基本协议解码:对网卡获取的数据包进行基本协议解码,同时对数据进行校验和检查;
*应用协议还原:使用数据包与应用协议的特征正则表达式进行匹配得到应用协议;同时对每个连接进行流量大小进行统计;
*数据库管理:实时记录抓取的数据到数据库表中;可以通过参数配置数据库本地连接或网络连接。
3 多端口应用协议还原算法设计
程序利用Libpcap提供的库函数捕获数据包。程序从libpcap得到的是一个以太网帧,需要对其解析,找到IP、TCP等协议的首部,并分析出其中的各个字段,为之后的多端口应用协议还原做准备。下面以FTP协议为例,对多端口协议中还原中的关键问题给出了算法。
首先,FTP并不像HTTP协议那样,只需要一个端口作为连接(,HTTP的默认端口是80,FTP的默认端口是21),FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,用来建立数据传输通道。其次,FTP的连接模式有两种,PORT和PASV。下面分别进行说明。
1 PORT模式
当FTP客户以PORT模式连接服务器时,用户动态的选择一个端口号连接服务器的21端口。当经过TCP的三次握手后,控制信道被建立。此时用户会发出PORT指令告诉服务器连接自己的什么端口来建立一条数据通道。下面是PORT命令的格式:
PORT 127,0,0,1,28,37
其中,PORT 127,0,0,1,28,37告诉服务器当收到这个PORT指令后,连接FTP客户的28x256+37=7205这个端口。
2 PASV模式
当FTP客户以PASV模式连接服务器时,在建立了控制信道之后,用户发送PASV指令。在这个指令中,用户告诉服务器自己要连接服务器的某一个端口。下面为PASV命令的格式:
PASV 227 Entering Passive Mode (127,0,0,1,26,108)
其中,227 Entering Passive Mode (127,0,0,1,26,80)代表客户机使用PASV模式连接服务器的26x256+108=6764端口。
(图1)中给出了解析PORT命令中的端口号的算法。该算法首先判断数据包中是否包含“PORT”命令,然后跳过之前的非数字部分,将之后的数据部分以“,”为分隔符进行分割。协商的端口即为portdata[4]*256 + portdata[5]。对于PASV模式下的算法相似,只需要修改strstr(data,"PORT")!= NULL为strstr(data,"Entering Passive Mode") != NULL即可。
为了确定不同端口的会话属于同一个用户,为它增加一个新的域DataPort,保存经过端口协商得到的端口号(表1)。
4 实验与分析
基于以上方法,本文实现了一个协议还原系统。该系统使用C语言实现,在Ubuntu 10.10版本下运行,网络环境为包含两台主机的小型局域网,控制主机配置为Inter Celeron CPU 1.8GHZ, 2.0G RAM。系统运行10分钟之后,统计得到了286个会话,其中ID是系统为每个会话分配的标识,作为主键;srcIP,dstIP,srcPort和dstPort分别表示源IP,目的IP,源端口和目的端口,Protocol表示应用协议,count表示该会话中的报文个数,datas表示该会话中的数据字节数。dataPort的默认值为-1,当通过PORT或PASV模式端口协商之后,将dataPort改写为协商后的端口,以表示控制信道和数据信道之间的关系。在实验访问了ftp://ftp.ctex.org/CTAN/,这是一个Latex的资源网站。在本次连接中,使用PASV模式下载了graphics目录下的asymptote.zip文件。由于会话过多,省略一些相似的会话,给出部分实验结果。
以上数据表明,本文的方法可以捕获局域网内部的全部数据包,并且以应用层会话为单位,进行数据包的统计和分析。对于ftp这种多端口协议,本文的方法能通过对数据包的解析获得协商端口,从而确定多个端口之间的关系。
5 结语
目前对于多端口的协议还原技术研究的还较少。本文提出了一种多端口协议还原的系统框架,针对多端口协议还中的一些关键问题给出了解决办法。通过在真实网络中的实验,证明的方法能够有效地对多端口的协议进行还原。在协议还原的基础上,可以对网络进行管理和监控,从而改善整个网络的状况。
参考文献
[1] 谢希仁.计算机网络(第五版)[M].北京:电子工业出版社,2008年1月.
[2] 平震宇.Libpcap数据包捕获机制剖析与研究[J].信息网络安全,2008年第08期:37-39.
[3] 王耕.基于通用平台的TCP/IP协议还原技术研究.电子科技大学研究生学位论文,2009年.
[4] 张雪梅,关伟明.基于TCP/IP模型的网络协议还原技术的研究.广西轻工业,2011年第2期:68-70.
[5] 杨帆.网络数据获取与还原系统的设计与实现.华中科技大学研究生学位论文,2009年.
关键词:网络协议 端口 协议还原技术
中图分类号:TP391 文献标识码:A 文章编号:1674-098X(2012)07(c)-0057-02
1 引言
随着各种各样的网络应用快速普及,人们在生活和工作中对互联网络的依赖程度越来越深。同时各种新的安全问题也随之产生。这要求我们能够掌握网络的状态、对网络进行管理和监控,从而及时的应对各种网络安全事件,遏制网络犯罪行为的发生。
对网络进行管理和监控,需要了解网络的工作原理。互联网中,为便于不同系统不同硬件的主机在互联网上互联,在互联网上传送的数据包必须符合同一种协议。例如TCP/IP协议标准,它是目前互联网上广泛应用的一簇协议的统称。
协议还原系统就是捕获网络中的所有报文,根据标准的协议规定对报文进行重组和还原。它在对底层协议进行解析的基础上,主要对应用层的协议进行分析。通过网络协议还原技术,可以迅速的了解两个网络的数据传输和网络通信的交互过程。同时协议还原技术还可以为其他系统和工具服务。
应用协议中,有一类协议在会话的过程中通过多个端口进行服务,例如ftp协议以及种类繁多的即时通信协议。对于这类协议,需要确定数据传送会话和控制命令会话之间的关联。目前很多工具和开发包提供IP分片重组、TCP流重组以及应用协议重组,对于多端口的协议还原技术的研究还较少。
本文提出了一种多端口应用协议还原的分析框架,即基于TCP/IP协议的分层协议还原系统。并对多端口协议中还原中的关键问题给出了算法。在实验部分,本文以FTP协议为例,证明本文方法对于多端口应用协议还原的有效性。
2 多端口应用协议还原分析框架
协议还原系统分析每个应用层会话,将会话的交互过程以及其中传递的数据内容部分以一种比较友好直观的方式显示或保存。这里的会话定义为一个应用从开始对话到结束对话的整个过程。
目前大多数的操作系统中都实现了TCP/IP协议栈。该协议簇整体上分为五层,从上到下依次是应用层、传输层、网络层、数据链路层和物理层。每一层协议都具有标准固定的协议格式,这就给分析网络上捕获的数据提供了可能。在分析时,从底层开始向上逐层分析每个数据包直至应用层,这样每一个数据包的概要信息会被分析出来。
本文提出的多端口应用协议还原的系统框架完成如下功能:
*数据包捕获:对流经网卡的所有数据包进行抓取。对于有多个网卡的监控主机,为每个网络适配器建立一个进程以获得经过它的数据包;
*基本协议解码:对网卡获取的数据包进行基本协议解码,同时对数据进行校验和检查;
*应用协议还原:使用数据包与应用协议的特征正则表达式进行匹配得到应用协议;同时对每个连接进行流量大小进行统计;
*数据库管理:实时记录抓取的数据到数据库表中;可以通过参数配置数据库本地连接或网络连接。
3 多端口应用协议还原算法设计
程序利用Libpcap提供的库函数捕获数据包。程序从libpcap得到的是一个以太网帧,需要对其解析,找到IP、TCP等协议的首部,并分析出其中的各个字段,为之后的多端口应用协议还原做准备。下面以FTP协议为例,对多端口协议中还原中的关键问题给出了算法。
首先,FTP并不像HTTP协议那样,只需要一个端口作为连接(,HTTP的默认端口是80,FTP的默认端口是21),FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,用来建立数据传输通道。其次,FTP的连接模式有两种,PORT和PASV。下面分别进行说明。
1 PORT模式
当FTP客户以PORT模式连接服务器时,用户动态的选择一个端口号连接服务器的21端口。当经过TCP的三次握手后,控制信道被建立。此时用户会发出PORT指令告诉服务器连接自己的什么端口来建立一条数据通道。下面是PORT命令的格式:
PORT 127,0,0,1,28,37
其中,PORT 127,0,0,1,28,37告诉服务器当收到这个PORT指令后,连接FTP客户的28x256+37=7205这个端口。
2 PASV模式
当FTP客户以PASV模式连接服务器时,在建立了控制信道之后,用户发送PASV指令。在这个指令中,用户告诉服务器自己要连接服务器的某一个端口。下面为PASV命令的格式:
PASV 227 Entering Passive Mode (127,0,0,1,26,108)
其中,227 Entering Passive Mode (127,0,0,1,26,80)代表客户机使用PASV模式连接服务器的26x256+108=6764端口。
(图1)中给出了解析PORT命令中的端口号的算法。该算法首先判断数据包中是否包含“PORT”命令,然后跳过之前的非数字部分,将之后的数据部分以“,”为分隔符进行分割。协商的端口即为portdata[4]*256 + portdata[5]。对于PASV模式下的算法相似,只需要修改strstr(data,"PORT")!= NULL为strstr(data,"Entering Passive Mode") != NULL即可。
为了确定不同端口的会话属于同一个用户,为它增加一个新的域DataPort,保存经过端口协商得到的端口号(表1)。
4 实验与分析
基于以上方法,本文实现了一个协议还原系统。该系统使用C语言实现,在Ubuntu 10.10版本下运行,网络环境为包含两台主机的小型局域网,控制主机配置为Inter Celeron CPU 1.8GHZ, 2.0G RAM。系统运行10分钟之后,统计得到了286个会话,其中ID是系统为每个会话分配的标识,作为主键;srcIP,dstIP,srcPort和dstPort分别表示源IP,目的IP,源端口和目的端口,Protocol表示应用协议,count表示该会话中的报文个数,datas表示该会话中的数据字节数。dataPort的默认值为-1,当通过PORT或PASV模式端口协商之后,将dataPort改写为协商后的端口,以表示控制信道和数据信道之间的关系。在实验访问了ftp://ftp.ctex.org/CTAN/,这是一个Latex的资源网站。在本次连接中,使用PASV模式下载了graphics目录下的asymptote.zip文件。由于会话过多,省略一些相似的会话,给出部分实验结果。
以上数据表明,本文的方法可以捕获局域网内部的全部数据包,并且以应用层会话为单位,进行数据包的统计和分析。对于ftp这种多端口协议,本文的方法能通过对数据包的解析获得协商端口,从而确定多个端口之间的关系。
5 结语
目前对于多端口的协议还原技术研究的还较少。本文提出了一种多端口协议还原的系统框架,针对多端口协议还中的一些关键问题给出了解决办法。通过在真实网络中的实验,证明的方法能够有效地对多端口的协议进行还原。在协议还原的基础上,可以对网络进行管理和监控,从而改善整个网络的状况。
参考文献
[1] 谢希仁.计算机网络(第五版)[M].北京:电子工业出版社,2008年1月.
[2] 平震宇.Libpcap数据包捕获机制剖析与研究[J].信息网络安全,2008年第08期:37-39.
[3] 王耕.基于通用平台的TCP/IP协议还原技术研究.电子科技大学研究生学位论文,2009年.
[4] 张雪梅,关伟明.基于TCP/IP模型的网络协议还原技术的研究.广西轻工业,2011年第2期:68-70.
[5] 杨帆.网络数据获取与还原系统的设计与实现.华中科技大学研究生学位论文,2009年.