基于DPI(深度报文解析)的应用识别2------实际分析

新浪微博的分析

早上刚刚起床先刷微博,打算就分析一下新浪微博。登陆之后抓取公布微博的数据包。进行分析。


   1.抓包的要点:


    1.关闭其它网络应用,保证本机网络流量的干净,便于分析。

    2.先开启wireshark,后公布微博,微博公布成功马上停止。其它的应用类似。

    3.查看conversion list ,太小的包不是必需检查。

    4.最关键的一点:一定抓取到3次握手,切记切记。

    5.大部分应用都是基于TCP的。所以TCP优先分析,其次是UDP。


  2.实际分析


1.筛选出TCP的回话列表,如图


       我本地的流量比較干净,并且这次的分析比較明显,低于500Byte的数据包基本不含什么实用的信息。所以本次分析直接选择大小为6563的数据包就能够,实际情况可没这么少,应该会有非常多干扰的回话,须要去细致分析。

2.下面对65563的数据包进行分析:


      确定这次回话有三次握手。图红框内的部分。这样就能准确的在建立链接的时候就能识别应用。

     3.PC的web 微博基于http的,接下来就是分析HTTP报文内容。写出正确的正則表達式。以准确识别应用。



    实际发得微博内容:

       1.实际发的微博内容是n个a,在解析出的报文内容中text=aaaaaaaaaaaaaaaaaaaaaaaaaaa。

明显是我们发的微博内容。这样就能够更进一步确定这是我们发的微博的数据包。

        2.Host相应的是weibo.com

4.写出正确的正則表達式,以准确识别应用。




      1.确保一个公司的同样产品直接不能产生误识别,或者正則表達式之间没有包括关系。举个样例:你想识别微博,然后你仅仅写一个weibo.com。这样全部的微博产品都被识别,或者影响了。

     2.正則表達式的面不能太大,这样就产生应用之间的误识别。
        正則表達式的面也不能太小,这样网络报文随应用的细小变化。都会引起应用识别的不准确或者失效。、
        依据http报文内容进行分析。本样例中须要注意几个关键点:POST/GET、 Host、还有微博内容前面带着的关键词text,这个可能是差别与其他应用的关键点。

本例正則表達式:
      1.regex=^POSTx20/aj/mblog/add.*weibo.*text
      2.regex=^POSTx20.*weibo.*text
      3.regex=^POSTx20.*add.*weibo.*text
4.regex=^POSTx20/aj/mblog/add.*weibo
注:正則表達式的写法这里不详解,能够參考关于应用识别的上一篇文章。

这里我写几种范围不同的正則表達式,这就涉及到正則表達式范围大小的问题,依据实际情况把握。
        这里我依据实习公司的规则要求写一个识别发微博应用的规则。这有点不好意思。我做一下调整,避开不必要的麻烦。非常多应用的规则组成应用的协议库,以便识别应用。


       ApplicationId: SG_APP_SINA_WEIBO_LOGIN
       ApplicationName:SinaWeiboPublish  
       name_cn: 新浪微博公布
       ApplicationType: APP_SOCIAL_NETWORK
       ApplicationProtocol: TCP
       ScanLength: ^POSTx20.*add.*weibo.*text


原文地址:https://www.cnblogs.com/zhchoutai/p/6930797.html