基于流量的协议分析
Background
做了差不多兩個星期的流量分析,以為后面可以安穩(wěn)的做research,結(jié)果組里來了一個項(xiàng)目,就把我扔過去做項(xiàng)目了。這就是實(shí)驗(yàn)室的本質(zhì),哪里缺人,你就去哪里填坑;這也是國內(nèi)碩士生教育的現(xiàn)狀吧,廉價勞動力,不用白不用。
雖然說僅僅是兩個星期的research,怎么說呢,對research還是有了比較感觀的認(rèn)識吧。雖然之前也看了不少論文,但是之前看的目的都是為了學(xué)習(xí)更多的算法,而這次是要定位到解決問題,要發(fā)文章,所以感覺是不一樣的。
Introduction
大概說一下想要解決的問題,對于抓取的流量進(jìn)行分析。這個抓取,最簡單的辦法就是通過wireshark自己抓點(diǎn)流量來分析一下。所謂的分析,主要是對應(yīng)用層的協(xié)議進(jìn)行分析。
至于這樣分析流量中的應(yīng)用層協(xié)議有什么用呢?其實(shí)我也不太了解,但是每一篇論文中都會牽強(qiáng)附會的扯一些,至少我是這樣認(rèn)為。大概就是可以用于網(wǎng)絡(luò)安全;可以為網(wǎng)絡(luò)基礎(chǔ)服務(wù)商提供一些分析的功能,比如說基礎(chǔ)服務(wù)商希望知道在其設(shè)備上各種流量的情況,好讓其能夠合理的分配設(shè)備資源;還有一種說法是,希望能從流量中解析出相關(guān)的內(nèi)容,這個應(yīng)該也需要知道流量中的協(xié)議吧?
雖然說總能找到理由應(yīng)用流量分析,但是我個人認(rèn)為目前做的這些方法,基本上不可用,所以我認(rèn)為已經(jīng)發(fā)表的那些文章中說的那些用途都是扯淡的。
Problem Definition
目前,從我個人對這個領(lǐng)域的了解來看,也許只是一小部分哈,主要存在以下幾個問題可以做:
- 對于混雜流量,如何快速的作出流量分類。目前來說存在很多端口混用的情況,之前做的研究都是基于單一流量假設(shè),所以如何對混雜流量進(jìn)行快速的分類,這是目前亟須解決的問題,也是目前解決的不好的問題。
- 如何發(fā)現(xiàn)協(xié)議中的關(guān)鍵字,其實(shí)希望做到的是識別協(xié)議的格式。因?yàn)殡S著互聯(lián)網(wǎng)越來越普及,肯定有越來越多的自定義應(yīng)用協(xié)議,如果能快速的發(fā)現(xiàn)流量中本身存在的協(xié)議,當(dāng)然非常好了。
- 對于上面的幾個問題,如何做到快速、通用、可行,是如今面臨的非常大的問題。
Reading Summary
在這比較短暫的兩周時間內(nèi),讀了一些論文,但是不多,然后主要是在做實(shí)驗(yàn),驗(yàn)證自己的想法。雖然后來沒有繼續(xù)做了,但是感覺還是不錯,雖然不知道最后會做成什么樣子,但是做研究就是這樣,不可能一蹴而就,需要不斷的嘗試和探索,所以對毅力是個考驗(yàn)。
下面會對閱讀過的論文中的思路做一個brief summary,以便memorize俺也是做過的。
A Semantics Aware Approach to Automated Reverse Engineering Unknown Protocols
這篇文章是我看的第一篇文章吧,收獲還是蠻大的。
這篇文章思路其實(shí)挺新鮮的,分為四個step吧:首先將message切分成n-gram;那么如果把message看成document,那么就變成document->(words)的模型了,這樣使用LDA進(jìn)行降維,也就是每一篇文檔都表示成了k維的向量;使用message的k維向量進(jìn)行層次聚類,希望把具有相同命令字或者格式的message聚到一個類下面;然后在一個類下面進(jìn)行對齊,希望能借此發(fā)現(xiàn)protocol format或者command word。
這篇文章的思路挺新穎的,將lda引入進(jìn)來,但是其最大的問題就是太慢了,lda和最后一步的對齊都很慢。
TPCAD:一種文本類多協(xié)議特征自動發(fā)現(xiàn)方法
這篇文章也是屬于看的比較早的一篇文章,沒怎么仔細(xì)看,其主要做的是識別文本類流量中協(xié)議特征
Toward Unsupervised Protocol Feature Word Extraction
這篇文章的做法也是比較新穎的,希望通過分詞的方法來識別流量中的命令字。
具體做法記得不是很清楚了,分成了兩步:首先使用Voting Experts算法進(jìn)行無監(jiān)督分詞,VE算法是假設(shè)有兩種專家在投票,一類專家說這些字符應(yīng)該成為一個詞,另一個專家用于判斷詞邊界,然后根據(jù)滑動窗口的投票情況,確定詞邊界;然后根據(jù)一些先驗(yàn)的rule指定term打分機(jī)制,希望ranking之后排在前面的確實(shí)是command key word,主要考慮采用的先驗(yàn)知識有term frequency、location和length。
Clustering botnet communication traffic based on n-gram feature selection
這篇文章的做法是統(tǒng)計流量中的n-gram分布情況,其假定認(rèn)為同一類流量中n-gram的分布具有自己的分布特征,而不同的流量中n-gram的分布是不同的。
基于上面的假設(shè),其可以使用分類或聚類的方法,來detect僵尸網(wǎng)絡(luò)。
之前還看了一些其他文章,后面得空了會再整理一下更新這篇博客。
總結(jié)
- 上一篇: You have enabled che
- 下一篇: Ubuntu 安装 QEMU