CN101599960A - 一种基于协议分析的p2p流量识别方法 - Google Patents

一种基于协议分析的p2p流量识别方法 Download PDF

Info

Publication number
CN101599960A
CN101599960A CNA2009100272946A CN200910027294A CN101599960A CN 101599960 A CN101599960 A CN 101599960A CN A2009100272946 A CNA2009100272946 A CN A2009100272946A CN 200910027294 A CN200910027294 A CN 200910027294A CN 101599960 A CN101599960 A CN 101599960A
Authority
CN
China
Prior art keywords
server
rule
client
file
tcp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2009100272946A
Other languages
English (en)
Inventor
丁元彬
张顺颐
颜学智
王攀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Xinwang Tec Technology Co.,Ltd.
Original Assignee
NANJING XINWANG VIDEOTECH CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NANJING XINWANG VIDEOTECH CO Ltd filed Critical NANJING XINWANG VIDEOTECH CO Ltd
Priority to CNA2009100272946A priority Critical patent/CN101599960A/zh
Publication of CN101599960A publication Critical patent/CN101599960A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本文介绍了一种检测P2P流量的方法,它基于:对P2P协议的分析;通过对IP数据报的分析,识别出P2P协议所独有的特征;根据这些特征编写IDS规则。该方法具有很好的可扩展性,它既可以识别标准的P2P协议,如OpenNap,也可以识别完全分散化的协议,如WPN和FastTrack。本文中的结论和规则均在局域网中得到了验证。

Description

一种基于协议分析的P2P流量识别方法
技术领域
本发明是针对P2P流量识别方法的研究,提出了一种基于协议分析的P2P流量识别方法。通过对P2P应用程序中用到的协议的分析,得到针对该协议的特定模式,并将这个模式设计成规则,补充到IDS中。涉及新一代通信网络业务识别技术领域。
背景技术
自上世纪90年代以来,P2P在网络中的应用越来越广泛,P2P应用也开始多元化。P2P流量在因特网总流量中占据了极其重要的地位。而且,对于P2P应用的关注也越来越多。因此,在很多情况下,对P2P流量的检测是十分必要的。上世纪90年代,对P2P流量检测是很容易的,因为当时P2P协议使用特定应用的TCP或UDP端口号。然而,许多P2P应用开始使用随机端口号来逃避检测,如今,P2P应用软件甚至可以通过伪装源流量以逃避检测。
对P2P流量特征的早期研究主要集中在默认网络端口的寻址上。有的文献提出了针对多数P2P应用的签名方法。然而,这些研究并没有提出它们对各自签名的精确性、规模以及健壮性的评价,没有强调所采用的方法,也没有考虑相关协议。基于流量分类的签名主要用在入侵和异常检测的网络安全环境中。
发明内容
技术问题:我们提出了识别P2P流量的一种方法。该方法基于以下步骤:分析相关协议;通过对IP包的分析,得到针对某种P2P协议的模式;把这种模式编写成可以填充到IDS中的规则;利用这种有效的IDS对得到的识别模式进行网络检测。注意,采用这种类IDS方法不会给网络造成任何延迟,只是在它建立位置的监测点上有少量花费。另外,此方法也可以加以扩展,以便能够分析那些可以对流量进行加密的P2P协议。该P2P流量检测工具已经成功配置,现在在一个局域网中得到应用。
技术方案:本发明提出了一种基于协议分析的P2P流量检测方法。该方法适用于OpenNap,WPN和FastTrack协议,应用在WinMx和KaZaA中。一旦发现针对相关协议的特定模式,就能够将合适的规则填入IDS中,以识别这种模式。在我们给出的例子中,我们按照SNORT规则标识特定模式。以WinMx为例,介绍OpenNap的识别方法。
1.协议分析:
OpenNap协议基于一系列中央服务器:所有要加入OpenNap网络的客户端都要与其中一个服务器建立一个TCP连接。一个中央服务器维护着用户共享的文件列表,但却并不存有任何文件。和C/S模式一样,每个用户都可以向服务器询问哪些端存储有请求文件,但下载的过程却是端与端之间通过一个直接的TCP连接完成。以下的操作过程一步一步地循环建立,在客户端产生一种行为并分析由此产生的流量。
(1)客户->服务器:连接和登录
在下载之前,用户必须指定某些信息,例如用户名,密码,特别是中心服务器列表。要同一个服务器建立TCP连接,OpenNap协议会发送一个登录信息;该信息包含用户信息:用户名,密码,监听端口,客户端类型以及连接的线速度。该阶段建立的流量包含软件名和版本。这些信息可以用来建立ad hoc IDS规则(规则2)
(2)服务器->客户端:对登录信息的响应
要响应一个客户端的的登录请求,服务器返回一个包含有字符串VERSION<ver>,SERVER<server-name>以及其他内容(例如字符串Welcome和对活动用户、共享文件的统计信息)的信息。该信息通过多个包传递,因为以太网上使用的TCP协议限制MSS为1460字节。
<VERSION sw><SERVER name><Welcome>”statistics”<info>
以太网中响应信息的第一个包有着固定的格式,因此可以应用在IDS中,来识别网络中的OpenNap连接。
(3)客户->服务器:共享文件目录
收到服务器的响应后,客户端发送其自身的共享文件目录,格式如下:
<HD:\><Path><Filename>,此类信息也能在IDS规则中用到,目的是显示一个客户端共享的文件名(规则4)。
(4)客户端->服务器:查询请求
为向服务器提交请求,用户必须填写WinMx图形界面的一个表格,其中包含几个有关请求文件的关键字:服务器将利用这些关键字查询目录。服务器事实上是返回文件名中包含这些关键字的文件。其他搜索原则可以指定为像存储端性能等的信息。客户端向服务器发送的请求格式如下:<FILENAME CONTAINS“criteria-words”><LINESPEED><adjectives><line-type>
这种消息结构也可以用来书写检测OpenNap的IDS规则(规则4)。
(5)服务器->客户端:查询响应
响应要返回一个满足所有查询条件的所有文件列表。除了文件名,列表中的元素还要包含:存储端的IP地址,完整的最短路径,文件的格式,文件大小,还有其他文件类型信息(例如:比特率,一个MP3文件的频率和持续时间)。服务器的响应格式如下:
<path\filename><00..><size><bitrate>
<frequency><duration><nickname><ip><line-type>
可以发现,服务器并没有对返回列表进行过滤:列表中含有名字中包含查询字的所有文件。所有的查询优化条件(例如文件类型是.iso,.mpe,.doc,…)都是由请求端完成的。
(6)客户端->服务器:下载通知
客户端收到服务器响应后,WinMx图形界面上就会显示服务器提供的列表。
如果用户选择了其中的一个,客户端就进入了对该文件的下载请求阶段。第一个操作是产生一个发往中心服务器的具有如下格式的信息:
<storing-nickname><path\filename>
(7)服务器->客户端:存储端完整的IP地址
对下载通知的响应是一条能够唯一识别存有请求文件的端的完整地址:请求端能够与其建立连接的IP地址和端口号。
完成上面7步,接下来就进入了文件下载阶段。
当一个存储端处在一个有防火墙保护的网络中时,该协议就与没有防火墙保护时不同。因此,我们两种情况都要考虑。一方面,没有防火墙保护的端可以接受任何进入的TCP连接。另一方面,如果一个客户端被防火墙保护,防火墙可能阻止所有进入的TCP连接(包括文件下载)。为解决这个问题,两端要借助于服务器。由服务器通知有防火墙的端与请求端建立TCP连接:有防火墙的端向请求端建立“被动连接”,同时也是文件的上传端。TCP连接一旦建立,防火墙就被绕过,也就可以进行文件传输了。但如果两端都有防火墙保护,那么文件交换就是不可能的。
(1)没有防火墙的下载
没有防火墙,请求端就可以与存储端建立直接的TCP连接,利用从服务器传回来的IP地址。3次握手以后,存储端将发送一个包含值“1”的字节。请求端收到这个字节以后,将返回一个包含单词“GET”的字节串,其后是请求文件的文件名及下载点的偏移量。这次信息交换后,文件传输就开始了。如图1所示。
(2)有防火墙的下载:包含两个阶段:
第一阶段:TCP连接建立
一个请求端想要下载一个文件,该文件存储在另外一个有防火墙保护的客户端中。防火墙的存在阻止了请求端到存储端的TCP连接的打开。在启动阶段,存储端就将自己是受防火墙保护这一信息告知于服务器。服务器又将这一信息同存储端的完整地址一起交付给请求端(图2(a),message1和2)。存储端受防火墙保护的信息和赋给端口号0一起编码(图2(a),message1和2)。
一旦请求端收到服务器的消息---存储端是受防火墙保护的,就返回给服务器一个收到信息的拷贝(图2(a),message3)。然后,服务器返回给存储端一个带有请求端名字即请求文件名的信息(图2(a),message4)。存储端返回给服务器这个信息的拷贝(图2(a),message5)。最后,服务器给存储端发送请求端的完整的IP地址。现在就可以在请求端和存储端之间建立TCP连接了。
第二阶段:文件传输
连接建立后,请求端发送一个值为1的字节(图2(b))。存储端发送一个包含有“SEND”单词的字节串作为响应,字节串后面是请求文件的名字和大小。请求端接受到该信息以后,发送文件传输起始点的偏移量。之后,文件传输开始。图2(b)中的两个起始信息可以用来书写识别OpenNap协议产生的流量的规则。
2.SNORT规则
前面对OpenNap协议做了分析,这一部分主要讲述SNORT规则。
规则1
  #catch the server welcome answeralert tcp $HOME_NET any->$EXTERNAL_NETany(content:”VERSION”;offset:4;depth:12;content:”SERVER”;offset:11;depth:18;flow:from_server;flags:A*PA;msg:”OpenNap Server Connection”;classtype:policy-violation;)
该规则可以允许识别使用OpenNap协议的所有软件。IDS只要在从服务器端发出的TCP载荷中查找字符串VERSION和SERVER即可。
规则2
  #catch the server welcome answeralert tcp $HOME_NET any->$EXTERNAL_NETany(content:WinMx;offset:4;nocase;flow:established;flags:PA;msg:”WinMx Connection to OpenNap Server”;classtype:policy-violation;)
该规则分析网络流量,检查是否有包含“WinMx”的TCP载荷,同时,试图捕获WinMx应用中从客户端发往服务器的登陆信息。
规则3
  #catch the name of the files shared by the clientalert tcp $HOME_NET any->$EXTERNAL_NETany(msg:“Shared file list,Client→ServerOpenNap”;flow:established;flags:!S;flags:!SA;content:”|22 43 3a 5c|”;nocase;offset:4;depth:9;tag:host,5,packets,src;)
该规则从网络流量中取出客户间共享的文件目录。
规则4
  #alert on query submitalert tcp $HOME_NET any->$EXTERNAL_NETany(content:“FILENAME CONTAINS”;offset:4;depth:18;flow:established:flags:PA;msg:”Query submitting”;)
该规则在一个实体向中心服务器发出请求时发出警报。它能够在TCP载荷中识别出单词“FILENAME CONTAINS”。
规则5
  #alert on download requestsAlert tcp $HOME_NET any<->$EXTERNAL_NET any(content:”GET”;offset:0;depth:3;dsize:3;flow:established;flags:PA;msg:”GET OpenNap Downloading”;tag:session,2,packets;)
该规则只有在规则1产生警报之后才能激发:它能够捕获将要存储的文件名及TCP连接的另一端的地址。
规则6
  #alert on upload requestsalert tcp $HOME_NET any<->$EXTERNAL_NET any(content:“SEND”;offset:0;depth:4;dsize:4;flow:established;flags:PA;msg:”SEND OpenNap Downloading”;tag:session,2,packets;)
该规则与5类似:它搜寻字符串“SEND”,SEND用于一个请求端向受防火墙保护的文件存储端发送的请求中。如果该规则满足,就能够得到请求文件的名字。
附图说明
图1是没有防火墙的下载过程。
图2是存储端被防火墙保护的下载过程。

Claims (1)

  1. 一、一种基于协议分析的P2P流量识别方法,其基本流程为:
    1.协议分析:
    (1)客户->服务器:连接和登录
    (2)服务器->客户端:对登录信息的响应
    要响应一个客户端的的登录请求,服务器返回一个包含有字符串VERSION<ver>,SERVER<server-name>以及其他内容(例如字符串Welcome和对活动用户、共享文件的统计信息)的信息。
    <VERSION sw><SERVER name><Welcome>”statistics”<info>
    (3)客户->服务器:共享文件目录
    收到服务器的响应后,客户端发送其自身的共享文件目录,格式如下:
    <HD:\><Path><Fi lename>
    (4)客户端->服务器:查询请求
    客户端向服务器发送的请求格式如下:<FILENAME CONTAINS“criteria-words”><LINESPEED><adjectives><line-type>
    (5)服务器->客户端:查询响应
    服务器的响应格式如下:
    <path\filename><00..><size><bitrate>
    <frequency><duration><nickname><ip><line-type>
    (6)客户端->服务器:下载通知
    其中第一个操作是产生一个发往中心服务器的具有如下格式的信息:
    <storing-nickname><path\filename>
    (7)服务器->客户端:存储端完整的IP地址
    文件下载:
    (1)没有防火墙的下载
    没有防火墙,请求端就可以与存储端建立直接的TCP连接,利用从服务器传回来的IP地址。3次握手以后,存储端将发送一个包含值“1”的字节。请求端收到这个字节以后,将返回一个包含单词“GET”的字节串,其后是请求文件的文件名及下载点的偏移量。这次信息交换后,文件传输就开始了。
    (2)有防火墙的下载:包含两个阶段:
    第一阶段:TCP连接建立
    一个请求端想要下载一个文件,该文件存储在另外一个有防火墙保护的客户端中。在启动阶段,存储端就将自己是受防火墙保护这一信息告知于服务器。服务器又将这一信息同存储端的完整地址一起交付给请求端(图2(a),message1和2)。存储端受防火墙保护的信息和赋给端口号0一起编码(图2(a),message1和2)。
    请求端收到服务器的消息,就返回给服务器一个收到信息的拷贝(图2(a),message3)。然后,服务器返回给存储端一个带有请求端名字即请求文件名的信息(图2(a),message4)。存储端返回给服务器这个信息的拷贝(图2(a),message5)。最后,服务器给存储端发送请求端的完整的IP地址。现在就可以在请求端和存储端之间建立TCP连接了。
    第二阶段:文件传输
    连接建立后,请求端发送一个值为1的字节(图2(b))。存储端发送一个包含有“SEND”单词的字节串作为响应,字节串后面是请求文件的名字和大小。请求端接受到该信息以后,发送文件传输起始点的偏移量。之后,文件传输开始。图2(b)中的两个起始信息可以用来书写识别OpenNap协议产生的流量的规则。
    2.由协议分析得出的SNORT规则:
    规则1
      #catch the server welcome answeralert tcp $HOME NET_any->$EXTERNAL_NETany(content:”VERSION”;offset:4;depth:12;content:”SERVER”;offset:11;depth:18;flow:from_server;flags:A*PA;msg:”OpenNap Server Connection”;classtype:policy-violation;)
    该规则可以允许识别使用OpenNap协议的所有软件。
    规则2
      #catch the server welcome answeralert tcp $HOME_NET any->$EXTERNAL_NETany(content:WinMx;offset:4;nocase;flow:established;f lags:PA;msg:”WinMx Connection to OpenNap Server”;
      classtype:policy-violation;)
    该规则分析网络流量,检查是否有包含“WinMx”的TCP载荷,同时,试图捕获WinMx应用中从客户端发往服务器的登陆信息。
    规则3
      #catch the name of the files shared by the clientalert tcp $HOME_NET any->$EXTERNAL_NETany(msg:“Shared file list,Client→ServerOpenNap”;flow:established;flags:!S;flags:!SA;content:”|22 43 3a 5c |”;nocase;offset:4;depth:9;tag:host,5,packets,src;)
    该规则从网络流量中取出客户间共享的文件目录。
    规则4
      #alert on query submitalert tcp $HOME_NET any->$EXTERNAL_NETany(content:“FILENAME CONTAINS”;offset:4;depth:18;flow:established:flags:PA;msg:”Query submitting”;)
    该规则在一个实体向中心服务器发出请求时发出警报。它能够在TCP载荷中识别出单词“FILENAME CONTAINS”。
    规则5
      #alert on download requestsAlert tcp $HOME_NET any<->$EXTERNAL_NET any(content:”GET”;offset:0;depth:3;dsize:3;flow:established;flags:PA;msg:”GET OpenNap Downloading”;tag:session,2,packets;)
    该规则只有在规则1产生警报之后才能激发:它能够捕获将要存储的文件名及TCP连接的另一端的地址。
    规则6
      #alert on upload requestsalert tcp $HOME_NET any<->$EXTERNAL_NET any(content:“SEND”;offset:0;depth:4;dsize:4;flow:established;flags:PA;msg:”SEND OpenNap Downloading”;tag:session,2,packets;)
    该规则与5类似:它搜寻字符串“SEND”,SEND用于一个请求端向受防火墙保护的文件存储端发送的请求中。如果该规则满足,就能够得到请求文件的名字。
CNA2009100272946A 2009-05-27 2009-05-27 一种基于协议分析的p2p流量识别方法 Pending CN101599960A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2009100272946A CN101599960A (zh) 2009-05-27 2009-05-27 一种基于协议分析的p2p流量识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2009100272946A CN101599960A (zh) 2009-05-27 2009-05-27 一种基于协议分析的p2p流量识别方法

Publications (1)

Publication Number Publication Date
CN101599960A true CN101599960A (zh) 2009-12-09

Family

ID=41421207

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2009100272946A Pending CN101599960A (zh) 2009-05-27 2009-05-27 一种基于协议分析的p2p流量识别方法

Country Status (1)

Country Link
CN (1) CN101599960A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850442A (zh) * 2013-01-29 2017-06-13 华为技术有限公司 报文处理方法和转发设备
CN108600348A (zh) * 2018-04-11 2018-09-28 青岛通产伟博大数据运营有限公司 一种新的去中心化教育资源存储系统和方法
CN109472138A (zh) * 2017-12-01 2019-03-15 北京安天网络安全技术有限公司 一种检测snort规则冲突的方法、装置和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850442A (zh) * 2013-01-29 2017-06-13 华为技术有限公司 报文处理方法和转发设备
CN106850442B (zh) * 2013-01-29 2019-01-08 华为技术有限公司 报文处理方法和转发设备
CN109472138A (zh) * 2017-12-01 2019-03-15 北京安天网络安全技术有限公司 一种检测snort规则冲突的方法、装置和存储介质
CN108600348A (zh) * 2018-04-11 2018-09-28 青岛通产伟博大数据运营有限公司 一种新的去中心化教育资源存储系统和方法

Similar Documents

Publication Publication Date Title
CN110213212B (zh) 一种设备的分类方法和装置
JP3612528B2 (ja) パラメータ設定システム
JP4354294B2 (ja) ネットワーク・セグメントが互いに異なる複数のネットワークに接続されたゲートウェイ装置、およびipパケットを転送するためのプログラムおよび方法
US20160337333A1 (en) Method and device for classifying tcp connection carrying http traffic
EP2692089B1 (fr) Mécanisme de redirection entrante sur un proxy inverse
JP4758362B2 (ja) 中継装置、プログラム及び中継方法
Spognardi et al. A methodology for P2P file-sharing traffic detection
CN106685932A (zh) 一种基于云服务的文件访问系统和方法
JP2014510484A (ja) リアル・タイム・データ・アウェアネスおよびファイル追跡のシステムおよび方法
CN107347076B (zh) Ssrf漏洞的检测方法及装置
CN105227571A (zh) 基于nginx+lua的web应用防火墙系统及其实现方法
CN101808018A (zh) 接入终端数量的检测方法及设备
US7907543B2 (en) Apparatus and method for classifying network packet data
CN110430188A (zh) 一种快速url过滤方法及装置
CN111314301A (zh) 一种基于dns解析的网站访问控制方法及装置
CN105939327A (zh) 审计日志的生成方法及装置
CN107592299B (zh) 代理上网识别方法、计算机装置及计算机可读存储介质
US20030172155A1 (en) Cracker tracing system and method, and authentification system and method of using the same
CN105938472A (zh) 一种网页访问控制方法和装置
CN113849820A (zh) 一种漏洞检测方法及装置
CN101599960A (zh) 一种基于协议分析的p2p流量识别方法
Yu et al. Traffic identification and overlay measurement of Skype
Matthíasson et al. IoT device profiling: From MUD files to S× C contracts
Cisco Cisco Secure Intrusion Detection System Signature Engines Version 3.0
Oudah et al. Using burstiness for network applications classification

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: JIANGSU XINWANG VIDEO TECH. CO., LTD.

Free format text: FORMER OWNER: NANJING XINWANG VIDEOTECH. CO., LTD.

Effective date: 20110216

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 210029 6/F, JIANGSU WATER SUPPLY SERVICE CENTER, NO. 9, SHANGHAI ROAD, NANJING CITY, JIANGSU PROVINCE TO: 210019 5/F, BUILDING 01, NO. 69, AOTI AVENUE, JIANYE DISTRICT, NANJING CITY, JIANGSU PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20110216

Address after: 210019, 5, 01, 69 Olympic Sports Avenue, Jianye District, Jiangsu, Nanjing

Applicant after: Jiangsu Xinwang Tec Technology Co.,Ltd.

Address before: 210029, 6 floor, Jiangsu water conservancy logistics service center, 9 Shanghai Road, Jiangsu, Nanjing

Applicant before: Nanjing Xinwang VideoTech. Co., Ltd.

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20091209