2018/10/23
關於網上很多流量分類的教程中,都沒有說明應該如何去獲取流量資訊,更多的都是針對機器學習的演算法來進行描述。
本篇作為流量分類流程的乙個記錄,主要記錄應該如何進行流量分類的研究過程,對其中涉及的演算法不進行深入**。
一般來說, 進行分類研究包含以下幾個步驟,主要涵蓋資料收集、資料預處理、模型選擇、模型評估等,下面分別對這幾個步驟機型描述。
1、資料採集
流量採集的工作,是進行後續工作的基礎。流量的採集可以在pc機上,也可以在區域網的交換機上,一般採用liunx下tcpdump命令,或pc機上wireshark進行採集工作。或者有條件的情況下,可以通過已有的包捕獲引擎自己編寫外掛程式完成(這一步驟,一般需要一定的環境)。
(該部分,僅介紹對流量進行全採集,不涉及針對應用進行採集,這種採集需要編寫指令碼來控制應用,並採集系統資訊)
對於不同的網路環境,進行補包的過程是一致的,沒有什麼區別,而包的內容可能有所不同。對於比較大的區域網,特別是有多個網路出口的,可能出現資料流單項流的情況。對於pc機捕獲的資料,一定要注意可能出現巨型幀的情況,這種情況只需調整本機網絡卡驅動的配置即可,具體內容可以檢視本文集中巨型幀的文章。
在pc機的流量的採集過程中,個人機器的流量數量可能很少,這是可以通過瀏覽器訪問多個網頁來形成流量。以谷歌瀏覽器為例,開啟書籤管理器,可以開啟所有的書籤。2、資料預處理
正常機器學習過程的資料預處理,主要集中在處理已經得到的資料集,通過處理缺失值、對資料進行一些基礎的變換等。這裡針對流量處理過程的預處理,包含上面所說的成,但在這些步驟的執行前,需要將流量pcap檔案,轉化為資料集,即將pcap檔案轉化為後續演算法可以利用的輸入。
針對pcap處理的工具有很多,根據不同的需求:針對ip資料報直接處理的,針對tcp資料流進行處理的。
個人愚見:流量分類的很多目的是最起碼用來去分應用層的協議,很多應用層的協議採用tcp作為傳輸層協議,所以以tcp層的資料流為單位進行處理會方便很多,通過可以分析一些非熟知的應用層協議。
以tcp層資料流為單位,需要對tcp層的資料進行重組,已經有開源的工具libnids,這個工具已經很多年了,作者早一步更新,並且其基本的功能均已實現。(這部分原始碼,有幸拜讀過,大致邏輯不複雜, 但一些細節部分還是不理解。)並且,這個庫的程式語言為c,程式設計的介面較為底層。
以libnids作為底層驅動的pynids可以作為該庫的替代,該模組作為python的c擴充套件編寫,可能是編寫的過程,有些內容考慮不夠準確,導致有bug出現。但如果謹慎使用,基本上可以滿足需求,同時可以得到python語言程式設計的便利。
還有一些個人開發的python庫,其底層實現了tcp重組等。
後續我覺得有必要自己去寫乙個libnids的說明,網上的內容都千篇一律,沒有什麼有價值的地方。
本文後續採用pynids作為流量檔案的處理引擎。
pynids於libnids的處理流程一樣,框架也一樣,只是程式語言不同。不過pynids處理多個檔案時會出現bug,應該是底層程序部分或者變數分配的時候不合法導致的。
在學習程式設計工具完成之後,就可以得到相應的流量資料。想得到什麼樣的流量資料,可以根據自己的需求,進行定義,一般內容包括雙向報數, 包長序列,流持續時間等。
(2018/10/23)當前已經到了這個步驟。不過簡單的畫圖,到了一部分樣本
3、2018/10/31
這部分實驗已經很就不看了,主要就是弄了一下機器學習部分的內容,還是感覺朦朦朧朧的。
回到這個流量分類,很多天之前,弄得這個測試,這個測試主要用了兩個演算法,看起來貌似效果很好,但其實都是因為過擬合的原因,當然這部分的內容我後續還要繼續跟進。
但是如果想弄好的哈,我感覺,還是應該好好把這個特徵這部分的問題給弄好。
Scrum實踐步驟
1.挑選一位產品負責人 productowner 這個人必須知道自己帶領的團隊需要做什麼 製造什麼產品以及取得什麼成果,必須全面考慮到風險與回報 什麼具有可行性 什麼能做以及他們對什麼富有熱情。2.挑選乙個團隊 team 真正做事的是誰?這個團隊必須能夠落實產品負責人的願景。團隊規模宜小不宜大,一般...
學習 實踐步驟解析
對於才接觸新專案的新手而言,拿著它就一頭霧水,不知從何處開始下手,而對於與換一種語言寫專案的小笨,那感覺比晴天打雷還要懵,css不會,js不會,devexpress 壓根在學校沒有聽說過,資料庫知識完全懵逼。在乙個公司裡面不會有人給你說要怎麼去學,只會告訴你應該會什麼,而溝通,可能讓你少走很多彎路。...
《資料安全實踐指南》 資料採集安全實踐
建立資料分類分級的職能部門 明確資料分類分級崗位的能力要求 資料分類分級崗位建設和人員能力評估方法 業務部門訪談內容如下 2.問卷調查 3.流程觀察 4.技術檢測 明確資料分類分級的目的 確立資料分類分級原則 穩定性實用性 擴充套件性制定資料分類分級的方法及細則 資料分級的常用方法 按特性分級,基於...