《C-C加密信道檢測模型實現方案案例》2800字_第1頁
《C-C加密信道檢測模型實現方案案例》2800字_第2頁
《C-C加密信道檢測模型實現方案案例》2800字_第3頁
《C-C加密信道檢測模型實現方案案例》2800字_第4頁
《C-C加密信道檢測模型實現方案案例》2800字_第5頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C&C加密信道檢測模型實現方案案例綜述目錄TOC\o"1-3"\h\u166281.1整體框架 1127061.2數據解析模塊 2186211.3數據處理模塊 24901.4特征提取模塊 5279251.5C&C加密信道檢測模型模塊 6整體框架圖4-1C&C加密信道檢測整體框架 本文提出的C&C加密信道檢測模型整體設計框架如圖4-1所示,分為數據解析、數據處理、特征提取、C&C加密信道檢測這四個模塊。(1)數據解析模塊通過NetCap框架對pcap文件進行解析,生成結構化審計記錄,并通過NetCap自帶的工具將ClientHello消息和ServerHello消息的審計記錄轉化成csv文件,方便后續的數據處理。(2)數據處理模塊惡意加密流量樣本中也可能會包含一些正常的加密流量包,錯誤的將這些正常流量標記為惡意的,會對分類器的識別準確度造成很大的影響,因此需要對惡意加密流量進行數據清洗,以過濾掉這些臟樣本。然后將清洗過的ClientHello記錄與ServerHello記錄根據源ip、目的ip、源端口、目的端口進行關聯,最后對關聯好的數據進行標注。(3)特征提取模塊從處理好的數據中提取相應的特征生成特征矩陣。由于存在特征值尺度單位差異大的問題,對每維特征進行歸一化處理。(4)C&C加密信道檢測模塊由于數據集中存在正負樣本比例懸殊問題,數據集的劃分采用分層K折交叉驗證方法。分類器模型采用隨機森林模型,它已被證明在加密流量監測這種帶有噪聲標簽和數據分布不平穩的背景設定下檢測效果最好。數據解析模塊Netcap(NETworkCAPture)框架能有效地將網絡數據包流轉換為代表特定協議的結構化審計記錄。這些審計記錄可以存儲在磁盤上,很適合作為機器學習算法的數據源。本研究利用Netcap框架解析pcap文件,提取出pcap文件中TLS流中的元數據。Step1:解析pcap文件,對里面所有的流量包進行解析生成結構化審計記錄(.ncap.gz文件)。1./net.capture

–r

./pcap/malware.pcap

–out

./ncap生成的審計記錄中會有兩個關于TLS的文件,TLSClientHello.ncap.gz和TLSServerHello.ncap.gz。Step2:將關于TLS的結構化審計記錄輸出為csv格式,生成兩個csv文件,TLSClientHello.csv是pcap文件中所有ClientHello消息包的相關數據,TLSServerHello.csv文件是pcap文件中所有ServerHello消息包的相關數據。12./net.dump

–r

./ncap/TLSClientHello.ncap.gz

>

./NetCap-output/TLSClientHello.csv./net.dump

–r

./ncap/TLSServerHello.ncap.gz

>

./NetCap-output/TLSServerHello.csv數據處理模塊數據清洗很多惡意軟件在與C&C服務器通信前會先嘗試訪問Google、Facebook等正常服務,以判斷受害主機網絡是否連通。若簡單把惡意流量捕獲文件中的所有TLS流量都標記為惡意的,則這些正常流量也會被標記為惡意流量,這樣會導致分類器面對這類流量時做出錯誤的判斷。圖4-2某惡意軟件通過訪問Google來判斷主機網絡連接是否正常Alexa是專門計算網站世界排名的網站。對數據解析模塊得到的TLSClientHello.csv文件,通過查詢每個TLS流中訪問的主機是否在Alexa網站的流行度排名前100萬,由此來過濾掉惡意流量捕獲文件中的正常流量。(1)分析請求邏輯在/siteinfo網站上查詢的世界流行度排名,用GET方法提交請求,網頁跳轉到/siteinfo/。由此可以推出,查詢某域名的世界流行度排名的網址規律,為以下形式:1/siteinfo/待查詢的域名(2)獲取排名信息我們想得到的信息是某域名在全世界的排名,可以通過精確定位排名在網頁中的位置,獲得域名的排名。該排名所在元素(<pclass=bigdata>)在HTML文檔中的結構如下:123456789101112113<div

class="rank-global">

<div>

<div>

<p

class="big

data">

<span

class="hash">#</span>

1

</p>

<p

class="information">

In

global

internet

traffic

and

engagement

over

the

past90days

</p>

</div>

</div>

...<div>根據以上分析,編寫獲取域名全球排名的代碼段如下,若該函數返回1,則認為該域名對應的TLS流量正常,將流量記錄從TLSClientHello.csv中移除。123456789101112131415161718192021def

getRank(url):

alexa_base_url

=

'/siteinfo/'url_for_rank

=

alexa_base_url

+

url

#要爬取的目標網頁#訪問URL,獲取對應的HTML文檔page

=

requests.get(url_for_rank)#使用BeautifulSoup解析HTML文檔soup

=

BeautifulSoup(page.content,

'html.parser')#通過class來定位我們想要得到的<p

class="big

data">這個元素

global_rank

=

soup.select('.rank-global

.data')try:#用text方法獲取元素中的文本內容,并去掉里面的換行,然后正則表達式匹配數字

match

=

re.search(r'[\d,]+',

global_rank[0].text.strip())#match得到的排名是字符形式的數字,且含有逗號分隔符,將其去掉逗號分隔符,并轉換為數字形式

ranking=int(match.group().replace(',',''))#若url位于top前100w返回1,否則返回0

if

ranking

<

1000000:

return

1

else:

return

0

except:

return

0數據關聯與標注用Netcap框架解析TLS流,會生成兩個csv文件,TLSClientHello.csv是pcap文件中所有ClientHello消息包的相關數據,TLSServerHello.csv文件是pcap文件中所有ServerHello消息包的相關數據。我們要提取的特征中既包含ClientHello消息包的相關數據也包含ServerHello消息包的相關數據。因此,我們需要將TLSClientHello.csv和TLSServerHello.csv中的記錄關聯起來,方便后續特征提取操作。根據TLS來源標記數據,若TLS來自正常流量,則標記為0,反之,若TLS來自惡意加密流量,則標記為1。具體關聯與標注流程見以下偽代碼。表4-1數據關聯與標注偽代碼算法數據關聯與標注12345678910111213輸入:TLSServerHello.csv,TLSClientHello.csv,label輸出:data.csvfunctioncorrelate_data(s_hellolist,label,chelloentry):fors_hello_datainshellolist:ifshello_data的源ip==chelloentry的目的ip&&shello_data的目的ip==chelloentry的源ip&&shello_data的源端口==chelloentry的目的端口&&shello_data的目的端口==chelloentry的源端口:entry<-shello_data中目的ip與源ip移除,然后與chelloentry、label連接將entry寫入data.csv文件df_serverhello<-讀取TLSServerHello.csvdf_clienthello<-讀取TLSClientHello.csv#用partial函數將correlate_data的部分參數預先綁定為指定值fn<-partial(fn,df_serverhello,label)#用多進程方法調用fn對df_clienthello中的數據進行關聯Executor.map(fn,df_clienthello)特征提取模塊特征矩陣C&C加密信道檢測模型所需要的特征已經在3.3.2節進行了詳細的介紹,因此,本節主要關注特征是如何提取的。本模塊的輸入是數據處理模塊輸出的data.csv文件,該文件已經過數據清洗、關聯與標記。但是輸入的內容是文本形式,本模塊將其轉化成一個格式規整的特征矩陣,具體轉化方法見下表。表4-2特征矩陣轉化方法特征大小數據類型特征值轉化方法源端口是否由操作系統隨機分配1Int源端口位于49152-65535范圍內,則特征值為1,否則為0目的端口是否為常見TLS端口1Int目的端口為附錄。。中給出的常見TLS端口,則特征值為1,否則為0客戶端提供的加密組件146Vector提供了哪個加密組件,則對應的特征值為1,沒提供的加密組件對應的特征值為0,如某TLS流提供了50這個加密組件,則該流對應的cs_50特征值為1客戶端支持的擴展16Vector轉化方法同加密組件特征客戶端支持的擴展數量1Integer計算客戶端支持的擴展數量客戶端支持的橢圓曲線36Vector轉化方法同加密組件特征客戶端支持的橢圓曲線點4Vector轉化方法同加密組件特征證書有效時長1Int證書有效時間-證書頒發時間證書中SAN擴展中域名的數量1Int計算證書中SAN擴展中域名的數量是否是自簽名證書1Int若證書是自簽名證書,則特征值為1,否則為0特征矩陣歸一化由于提取出的特征值單位尺度不同,為了消除特征間單位和尺度差異的影響,以對每維特征同等對待,需要對提取出的特征進行歸一化。本文零均值歸一化方法(公式4-1)對特征進行歸一化,使得每維特征均值維0方差維1。經過此方法歸一化處理后的特征將符合標準正態分布。xC&C加密信道檢測模型模塊數據集劃分由3.1節可知,處理完后分別得到正常流量樣本110490個,惡意流量樣本6422個,這種過于懸殊的樣本比可能會在訓練過程中使模型產生偏差,如果該組數據用于驗證,則可能使測試結果產生偏差。因此,采用分層K折交叉驗證(StratifiedK-Foldcross-validator)方法來對模型進行訓練。該方法將包含正常流量(負樣本)和惡意流量(正樣本)的打亂數據集分解為K組。其中1組作為測試集,另外的K-1組用于訓練模型。該過程重復K次,每次選擇不同的組作為測試集。最后計算K次運行的評價指標的平均值。通過這種方法,K組數據不是隨機劃分的,而是通過保留正負樣本的百分比進行劃分,這種分層確保了一個組不會只包含正樣本或負樣本。分類器構建Cisco團隊提出不準確的基本事實和高度不固定的數據分布使得機器學習算法在惡意網絡流量監測中結果不理想ADDINEN.CITE<EndNote><Cite><Author>Anderson</Author><Year>2017</Year><RecNum>12</RecNum><DisplayText><styleface="superscript">[3]</style></DisplayText><record><rec-number>12</rec-number><foreign-keys><keyapp="EN"db-id="rr0wseffnsaffqex0v05x25wa00fsp5vvsrx"timestamp="1619964716">12</key></foreign-keys><ref-typename="ConferenceProceedings">10</ref-type><contributors><authors><author>Anderson,Blake</author><author>McGrew,David</author></authors></contributors><titles><title>Machinelearningforencryptedmalwaretrafficclassification:accountingfornoisylabelsandnon-statio

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論