基于流量的协议分析
Background
做了差不多兩個星期的流量分析,以為后面可以安穩的做research,結果組里來了一個項目,就把我扔過去做項目了。這就是實驗室的本質,哪里缺人,你就去哪里填坑;這也是國內碩士生教育的現狀吧,廉價勞動力,不用白不用。
雖然說僅僅是兩個星期的research,怎么說呢,對research還是有了比較感觀的認識吧。雖然之前也看了不少論文,但是之前看的目的都是為了學習更多的算法,而這次是要定位到解決問題,要發文章,所以感覺是不一樣的。
Introduction
大概說一下想要解決的問題,對于抓取的流量進行分析。這個抓取,最簡單的辦法就是通過wireshark自己抓點流量來分析一下。所謂的分析,主要是對應用層的協議進行分析。
至于這樣分析流量中的應用層協議有什么用呢?其實我也不太了解,但是每一篇論文中都會牽強附會的扯一些,至少我是這樣認為。大概就是可以用于網絡安全;可以為網絡基礎服務商提供一些分析的功能,比如說基礎服務商希望知道在其設備上各種流量的情況,好讓其能夠合理的分配設備資源;還有一種說法是,希望能從流量中解析出相關的內容,這個應該也需要知道流量中的協議吧?
雖然說總能找到理由應用流量分析,但是我個人認為目前做的這些方法,基本上不可用,所以我認為已經發表的那些文章中說的那些用途都是扯淡的。
Problem Definition
目前,從我個人對這個領域的了解來看,也許只是一小部分哈,主要存在以下幾個問題可以做:
- 對于混雜流量,如何快速的作出流量分類。目前來說存在很多端口混用的情況,之前做的研究都是基于單一流量假設,所以如何對混雜流量進行快速的分類,這是目前亟須解決的問題,也是目前解決的不好的問題。
- 如何發現協議中的關鍵字,其實希望做到的是識別協議的格式。因為隨著互聯網越來越普及,肯定有越來越多的自定義應用協議,如果能快速的發現流量中本身存在的協議,當然非常好了。
- 對于上面的幾個問題,如何做到快速、通用、可行,是如今面臨的非常大的問題。
Reading Summary
在這比較短暫的兩周時間內,讀了一些論文,但是不多,然后主要是在做實驗,驗證自己的想法。雖然后來沒有繼續做了,但是感覺還是不錯,雖然不知道最后會做成什么樣子,但是做研究就是這樣,不可能一蹴而就,需要不斷的嘗試和探索,所以對毅力是個考驗。
下面會對閱讀過的論文中的思路做一個brief summary,以便memorize俺也是做過的。
A Semantics Aware Approach to Automated Reverse Engineering Unknown Protocols
這篇文章是我看的第一篇文章吧,收獲還是蠻大的。
這篇文章思路其實挺新鮮的,分為四個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僵尸網絡。
之前還看了一些其他文章,后面得空了會再整理一下更新這篇博客。
總結
- 上一篇: You have enabled che
- 下一篇: ps中背景橡皮擦抠图方法