做了差不多兩個星期的流量分析,以為後面可以安穩的做research,結果組裡來了乙個專案,就把我扔過去做專案了。這就是實驗室的本質,**缺人,你就去**填坑;這也是國內碩士生教育的現狀吧,廉價勞動力,不用白不用。
雖然說僅僅是兩個星期的research,怎麼說呢,對research還是有了比較感觀的認識吧。雖然之前也看了不少**,但是之前看的目的都是為了學習更多的演算法,而這次是要定位到解決問題,要發文章,所以感覺是不一樣的。
大概說一下想要解決的問題,對於抓取的流量進行分析。這個抓取,最簡單的辦法就是通過wireshark自己抓點流量來分析一下。所謂的分析,主要是對應用層的協議進行分析。
至於這樣分析流量中的應用層協議有什麼用呢?其實我也不太了解,但是每一篇**中都會牽強附會的扯一些,至少我是這樣認為。大概就是可以用於網路安全;可以為網路基礎服務商提供一些分析的功能,比如說基礎服務商希望知道在其裝置上各種流量的情況,好讓其能夠合理的分配裝置資源;還有一種說法是,希望能從流量中解析出相關的內容,這個應該也需要知道流量中的協議吧?
雖然說總能找到理由應用流量分析,但是我個人認為目前做的這些方法,基本上不可用,所以我認為已經發表的那些文章中說的那些用途都是扯淡的。
目前,從我個人對這個領域的了解來看,也許只是一小部分哈,主要存在以下幾個問題可以做:
在這比較短暫的兩周時間內,讀了一些**,但是不多,然後主要是在做實驗,驗證自己的想法。雖然後來沒有繼續做了,但是感覺還是不錯,雖然不知道最後會做成什麼樣子,但是做研究就是這樣,不可能一蹴而就,需要不斷的嘗試和探索,所以對毅力是個考驗。
下面會對閱讀過的**中的思路做乙個brief summary,以便memorize俺也是做過的。
這篇文章是我看的第一篇文章吧,收穫還是蠻大的。
這篇文章思路其實挺新鮮的,分為四個step吧:首先將message切分成n-gram;那麼如果把message看成document,那麼就變成document->(words)的模型了,這樣使用lda進行降維,也就是每一篇文件都表示成了k維的向量;使用message的k維向量進行層次聚類,希望把具有相同命令字或者格式的message聚到乙個類下面;然後在乙個類下面進行對齊,希望能藉此發現protocol format或者command word。這篇文章的思路挺新穎的,將lda引入進來,但是其最大的問題就是太慢了,lda和最後一步的對齊都很慢。
tpcad:一種文字類多協議特徵自動發現方法
這篇文章也是屬於看的比較早的一篇文章,沒怎麼仔細看,其主要做的是識別文字類流量中協議特徵
toward unsupervised protocol feature word extraction
這篇文章的做法也是比較新穎的,希望通過分詞的方法來識別流量中的命令字。
具體做法記得不是很清楚了,分成了兩步:首先使用voting experts演算法進行無監督分詞,ve演算法是假設有兩種專家在投票,一類專家說這些字元應該成為乙個詞,另乙個專家用於判斷詞邊界,然後根據滑動視窗的投票情況,確定詞邊界;然後根據一些先驗的rule指定term打分機制,希望ranking之後排在前面的確實是command key word,主要考慮採用的先驗知識有term frequency、location和length。
clustering botnet communication traffic based on n-gram feature selection
這篇文章的做法是統計流量中的n-gram分布情況,其假定認為同一類流量中n-gram的分布具有自己的分布特徵,而不同的流量中n-gram的分布是不同的。基於上面的假設,其可以使用分類或聚類的方法,來detect殭屍網路。
基於ENSP的DHCP協議分析
實驗組網圖 cloud配置 交換機配置 dhcp enable vlan batch 1 2 inte ce g0 0 2 port link type access port default vlan 1 quit inte ce g0 0 3 port link type access port...
基於tcp的網路程式設計協議分析
在本地電腦的虛擬機器上搭建乙個tcp伺服器,如下 include include include include include include include include define buffer size 128 int main int argc,char ar if argc 3 if...
基於離線pcap包的FTP協議網路流量資料提取
最近要利用python程式對離線pcap資料報進行分析,工作的環境是win10系統,python3.6 附 利用wireshark進行輔助分析 1 定義所需要的庫 import struct import io import sys 2 對資料報進行匯入 open file open 檔名 rb 這...