CSE-CIC-IDS2018 on AWS

來源:https://www.unb.ca/cic/datasets/ids-2018.html

https://github.com/ISCX/CICFlowMeter

注:通信安全機構(gòu)(CSE)與加拿大網(wǎng)絡(luò)安全研究所(CIC)合作項目

異常檢測因其具有檢測新攻擊的潛力,一直是許多研究者關(guān)注的焦點。然而,由于這些系統(tǒng)在部署之前需要進行大量的測試、評估和調(diào)優(yōu),因此它在實際應(yīng)用程序中的應(yīng)用受到了系統(tǒng)復(fù)雜性的限制。將這些系統(tǒng)置于真實標(biāo)記的網(wǎng)絡(luò)跟蹤之上,并使用一組全面而廣泛的入侵和異常行為,是測試和評估的最理想方法。

這本身就是一個巨大的挑戰(zhàn),因為數(shù)據(jù)集的可用性是極其罕見的,因為一方面,許多這樣的數(shù)據(jù)集是內(nèi)部的,由于隱私問題而不能共享,另一方面,其他數(shù)據(jù)集是高度匿名的,不能反映當(dāng)前的趨勢,或者缺乏某些統(tǒng)計特征,所以還沒有一個完美的數(shù)據(jù)集。因此,研究人員必須求助于通常不是最優(yōu)的數(shù)據(jù)集。隨著網(wǎng)絡(luò)行為和模式的變化和入侵的發(fā)展,從靜態(tài)和一次性的數(shù)據(jù)集轉(zhuǎn)向更動態(tài)的生成數(shù)據(jù)集變得非常必要,這些數(shù)據(jù)集不僅反映了當(dāng)時的流量組合和入侵,而且是可修改的、可擴展的和可重現(xiàn)的。

為了克服這些缺點,設(shè)計了一種系統(tǒng)的方法來生成數(shù)據(jù)集來分析、測試和評估入侵檢測系統(tǒng),重點是基于網(wǎng)絡(luò)的異常檢測器。本項目的主要目標(biāo)是開發(fā)一種系統(tǒng)的方法,在創(chuàng)建包含網(wǎng)絡(luò)上所見事件和行為的抽象表示的用戶概要的基礎(chǔ)上,生成用于入侵檢測的多樣化和全面的基準(zhǔn)數(shù)據(jù)集。這些概要文件將組合在一起,生成一組不同的數(shù)據(jù)集,每個數(shù)據(jù)集都具有一組獨特的特性,這些特性涵蓋了評估域的一部分。

最后的數(shù)據(jù)集包括七種不同的攻擊場景:暴力攻擊、心臟出血、僵尸網(wǎng)絡(luò)、DoS、DDoS、Web攻擊和網(wǎng)絡(luò)內(nèi)部的滲透。攻擊基礎(chǔ)設(shè)施包括50臺機器,受害者組織有5個部門,包括420臺機器和30臺服務(wù)器。數(shù)據(jù)集包括每個機器的捕獲網(wǎng)絡(luò)流量和系統(tǒng)日志,以及使用CICFlowMeter-V3從捕獲的流量中提取的80個特征。

1. 介紹

在CSE-CIC-IDS2018 dataset中,我們使用profile的概念以系統(tǒng)的方式生成數(shù)據(jù)集,其中將包含應(yīng)用程序、協(xié)議或較低層網(wǎng)絡(luò)實體的入侵詳細(xì)描述和抽象分布模型。代理或人工操作員可以使用這些概要文件生成網(wǎng)絡(luò)上的事件。由于生成概要文件的抽象性質(zhì),我們可以將它們應(yīng)用于具有不同拓?fù)浣Y(jié)構(gòu)的各種網(wǎng)絡(luò)協(xié)議。概要文件可以一起用于為特定需求生成數(shù)據(jù)集。我們將建立兩類不同的個人資料:

(1)B-profiles:使用各種機器學(xué)習(xí)和統(tǒng)計分析技術(shù)(如K-Means、Random Forest、SVM和J48)封裝用戶的實體行為。封裝的特性包括協(xié)議的包大小、每個流的包數(shù)、有效負(fù)載中的某些模式、有效負(fù)載的大小和協(xié)議的請求時間分布。在我們的測試環(huán)境中,將模擬以下協(xié)議:HTTPS、HTTP、SMTP、POP3、IMAP、SSH和FTP。根據(jù)我們最初的觀察,大部分流量是HTTP和HTTPS。

(2)M-Profiles:試圖描述攻擊場景以一種明確的方式。在最簡單的情況下,人類可以解釋這些概要文件,然后執(zhí)行它們。理想情況下,將使用自治代理和編譯器來解釋和執(zhí)行這些場景。對于攻擊,我們考慮了六種不同的場景(表1):


(3)網(wǎng)絡(luò)內(nèi)部泄漏:

在此場景中,我們通過電子郵件向受害者發(fā)送惡意文件,并利用應(yīng)用程序漏洞。成功利用后,在受害者的計算機上執(zhí)行一個后門,然后我們使用他的計算機掃描內(nèi)部網(wǎng)絡(luò),尋找其他易受攻擊的盒子,如果可能的話利用它們。

(4)HTTP拒絕服務(wù):

HTTP拒絕服務(wù):在這個場景中,我們使用Slowloris和LOIC作為主要工具,它們已經(jīng)被證明可以使用一臺攻擊機器完全訪問Web服務(wù)器。Slowloris從建立到遠(yuǎn)程服務(wù)器的完整TCP連接開始。該工具通過定期向服務(wù)器發(fā)送有效的、不完整的HTTP請求來保持連接打開,以防止套接字關(guān)閉。由于任何Web服務(wù)器提供連接的能力都是有限的,所以使用完所有套接字并不能建立其他連接只是時間問題。此外,HOIC是另一個著名的應(yīng)用程序,它可以對網(wǎng)站發(fā)起DoS攻擊。

(5)web應(yīng)用程序攻擊的集合:

web應(yīng)用程序攻擊集合:在這個場景中,我們使用了Damn Vulnerable web App (DVWA)作為我們的受害者web應(yīng)用程序,該應(yīng)用程序的開發(fā)目的是幫助安全專業(yè)人員測試他們的技能。在第一步中,我們通過web應(yīng)用程序漏洞掃描器掃描網(wǎng)站,然后對易受攻擊的網(wǎng)站進行不同類型的web攻擊,包括SQL注入、命令注入和無限制的文件上傳。

(6)蠻力攻擊:

蠻力攻擊:蠻力攻擊對網(wǎng)絡(luò)非常常見,因為它們傾向于使用弱用戶名和密碼組合來入侵帳戶。最后一個場景的設(shè)計目標(biāo)是通過對主服務(wù)器運行字典暴力攻擊來獲取SSH和MySQL帳戶。

(7)最后更新攻擊:

最后更新攻擊:有一些基于一些著名的漏洞攻擊,可以進行在特定的時間(這些非凡的弱點有時影響數(shù)以百萬計的服務(wù)器或受害者,通常需要幾個月補丁所有脆弱的世界各地的計算機),其中最著名的是近年來Heartbleed。

重要的是要注意,概要文件需要一個基礎(chǔ)設(shè)施才能有效地使用。我們的測試平臺將由一些相互連接的Windows和基于Linux的工作站組成。對于Windows機器,我們將使用不同的服務(wù)包(因為每個包都有一組不同的已知漏洞),對于Linux機器,我們將使用Metasploit-able distribution,它是為被新的滲透測試人員攻擊而開發(fā)的。

2. 基礎(chǔ)設(shè)施和實現(xiàn)

2.1 B-Profile

為了產(chǎn)生良性的背景流量,B-Profile被設(shè)計用來提取一組人類用戶的抽象行為。它試圖用機器學(xué)習(xí)和統(tǒng)計分析技術(shù)來封裝用戶生成的網(wǎng)絡(luò)事件。封裝的特性包括協(xié)議的包大小分布、每個流的包數(shù)、有效負(fù)載中的某些模式、有效負(fù)載大小和協(xié)議的請求時間分布。一旦從用戶派生出b - profile,代理(ic - benigngenerator)或人工操作員就可以使用它們在網(wǎng)絡(luò)上生成真實的良性事件。組織和研究人員可以使用這種方法輕松地生成真實的數(shù)據(jù)集;因此,不需要匿名數(shù)據(jù)集。

2.2 M-Profile

我們實現(xiàn)了七個攻擊場景。對于每種攻擊,我們都基于實現(xiàn)的網(wǎng)絡(luò)拓?fù)涠x一個場景,并在目標(biāo)網(wǎng)絡(luò)之外的一臺或多臺機器上執(zhí)行攻擊。圖1顯示了實現(xiàn)的網(wǎng)絡(luò),這是AWS計算平臺上常見的LAN網(wǎng)絡(luò)拓?fù)?。為了擁有與真實網(wǎng)絡(luò)相似的多種機器,我們安裝了5個子網(wǎng)絡(luò),分別是研發(fā)部(Dep1)、管理部(Dep2)、技術(shù)部(Dep3)、秘書和運營部(Dep4)、IT部(Dep5)和服務(wù)器室。除了IT部門,我們?yōu)樗胁块T安裝了不同的MS Windows OSs (Windows 8.1和Windows 10), IT部門的所有計算機都是Ubuntu。對于服務(wù)器室,我們實現(xiàn)了不同的MS Windows服務(wù)器,如2012年和2016年。本節(jié)的其余部分將介紹七種攻擊場景和工具。


2.2.1 蠻力攻擊

有很多工具可以進行強力攻擊和密碼破解,比如Hydra、Medusa、Ncrack、Metasploit模塊和Nmap NSE腳本。此外,還有一些用于密碼散列破解的工具,如hashcat和hashpump。但是,最全面的多線程工具之一是Patator,它是用Python編寫的,似乎比其他工具更可靠、更靈活。它還可以將每個響應(yīng)保存在一個單獨的日志文件中,供以后查看。在這個數(shù)據(jù)集中,我們使用兩個模塊,攻擊者是Kali Linux機器上的FTP和SSH,受害者是Ubuntu 14.0系統(tǒng)。對于密碼列表,我們使用一個包含9000萬個單詞的大字典。

2.2.2 Heartbleed攻擊

利用心臟出血最著名的工具之一是心臟水蛭。它可以掃描易受漏洞攻擊的系統(tǒng),然后可以用來利用它們并過濾數(shù)據(jù)。一些重要的特點:

(1)關(guān)于目標(biāo)是否脆弱的結(jié)論性/非結(jié)論性判斷

(2)批量/快速下載heartbleed數(shù)據(jù)到一個大文件中,使用多個線程進行離線處理

(3)自動檢索私鑰,不需要其他步驟

(4)一些有限的IDS規(guī)避

(5)STARTTLS支持

(6)IPv6支持

(7)Tor / Socks5n代理支持

(8)廣泛連接診斷信息

(9)為了利用這個漏洞,我們編譯了OpenSSL version 1.0.1f,這是一個脆弱的版本。然后使用Heartleech檢索服務(wù)器的內(nèi)存。

2.2.3僵尸網(wǎng)絡(luò)

在這個數(shù)據(jù)集中,我們使用Zeus,它是一個特洛伊木馬惡意軟件包,運行在Microsoft Windows的不同版本上。雖然它可以用來執(zhí)行許多惡意和犯罪的任務(wù),但它經(jīng)常被用來通過人在瀏覽器中的擊鍵記錄和表單抓取來竊取銀行信息。它也被用來安裝密碼柜勒索軟件。Zeus主要通過下載和網(wǎng)絡(luò)釣魚的方式傳播。此外,作為補充,我們使用戰(zhàn)神僵尸網(wǎng)絡(luò),這是一個開源僵尸網(wǎng)絡(luò),具有以下功能:

(1)遠(yuǎn)程用于cmd . exe殼

(2)持久性

(3)文件上傳/下載

(4)截圖

(5)關(guān)鍵日志

在這個場景中,我們用兩個不同的僵尸網(wǎng)絡(luò)(Zeus和Ares)感染機器,并且每隔400秒我們就向僵尸請求屏幕截圖。

2.2.4拒絕服務(wù)

Slowloris是Robert Hansen發(fā)明的一種拒絕服務(wù)攻擊工具,它允許一臺機器以最小的帶寬和對不相關(guān)的服務(wù)和端口的副作用來關(guān)閉另一臺機器的web服務(wù)器。在這個場景中,我們使用一個基于Slowloris perl的工具來關(guān)閉web服務(wù)器。

2.2.5分布式拒絕服務(wù)

High Orbit Ion Cannon,通??s寫為HOIC,是一個開源的網(wǎng)絡(luò)壓力測試和拒絕服務(wù)攻擊應(yīng)用程序,使用BASIC編寫,可以同時攻擊多達256個url。它被設(shè)計用來取代普拉托克斯技術(shù)公司開發(fā)的低軌道離子炮。在這種情況下,我們使用免費的HOIC工具,使用4臺不同的計算機進行DDoS攻擊。

2.2.6網(wǎng)絡(luò)攻擊

在這項工作中,我們使用該死的脆弱的網(wǎng)絡(luò)應(yīng)用程序(DVWA)進行我們的攻擊。DVWA是一個脆弱的PHP/MySQL web應(yīng)用程序。它的主要目標(biāo)是幫助安全專業(yè)人員在法律環(huán)境中測試他們的技能和工具,幫助web開發(fā)人員更好地理解保護web應(yīng)用程序的過程,并幫助教師/學(xué)生在教室環(huán)境中教授/學(xué)習(xí)web應(yīng)用程序安全性。為了自動化XSS和蠻力部分中的攻擊,我們開發(fā)了一個帶有Selenium框架的自動化代碼。

2.2.7網(wǎng)絡(luò)內(nèi)部滲透

在這個場景中,應(yīng)該利用一個脆弱的應(yīng)用程序(如adobeacrobatreader9)。首先,受害者通過電子郵件收到惡意文件。然后,在成功利用Metasploit框架后,將在受害者的計算機上執(zhí)行一個后門?,F(xiàn)在我們可以使用Nmap對受害者的網(wǎng)絡(luò)進行不同的攻擊,包括IP掃描、全端口掃描和服務(wù)枚舉。

3.捕獲數(shù)據(jù)和最終數(shù)據(jù)集

基于上一節(jié)中選擇的所有攻擊和定義的場景,我們實現(xiàn)了基礎(chǔ)設(shè)施并執(zhí)行了攻擊場景。表2顯示了攻擊列表、相關(guān)攻擊者和受害者IP、攻擊日期、開始和結(jié)束時間。

表2:每日攻擊列表、機器ip、攻擊開始和結(jié)束時間(s)



3.特征提取

CICFlowMeter是一個用Java編寫的網(wǎng)絡(luò)流量生成器,在選擇要計算的特性、添加新特性以及更好地控制流超時時間方面提供了更大的靈活性。它產(chǎn)生雙向流(Biflow),其中第一個數(shù)據(jù)包確定正向(源到目的地)和反向(目的地到源)的方向,因此在正向和反向分別計算了持續(xù)時間、數(shù)據(jù)包數(shù)量、字節(jié)數(shù)、數(shù)據(jù)包長度等83個統(tǒng)計特征。

應(yīng)用程序的輸出是CSV文件格式,為每個流標(biāo)記了6列,分別是FlowID、SourceIP、DestinationIP、SourcePort、DestinationPort和具有80多個網(wǎng)絡(luò)流量特性的協(xié)議。通常TCP流在連接斷開時終止(通過FIN包),UDP流通過流超時終止。流超時值可以由單獨的方案任意分配,例如TCP和UDP都是600秒。CICFlowMeter-V3可以提取80多個特征,如下表所示:

表3:CICFlowMeter-V3提取的流量特征列表



(1)fl_dur

流持續(xù)時間

(2)tot_fw_pk(流出方向?)

在正向上包的數(shù)量

(3)tot_bw_pk

在反向上包的數(shù)量

(4)tot_l_fw_pkt

正向數(shù)據(jù)包的總大小

(5)fw_pkt_l_max

包在正向上的最大大小

(6)fw_pkt_l_min

包在正向上的最小大小

(7)fw_pkt_l_avg

數(shù)據(jù)包在正向的平均大小

(8)fw_pkt_l_std

數(shù)據(jù)包正向標(biāo)準(zhǔn)偏差大小

(9)Bw_pkt_l_max

包在反向上的最大大小

(10)Bw_pkt_l_min

包在反向上的最小大小

(11)Bw_pkt_l_avg

數(shù)據(jù)包在反向的平均大小

(12)Bw_pkt_l_std

數(shù)據(jù)包反向標(biāo)準(zhǔn)偏差大小

(13)fl_byt_s

流字節(jié)率,即每秒傳輸?shù)臄?shù)據(jù)包字節(jié)數(shù)

(14)fl_pkt_s

流包率,即每秒傳輸?shù)臄?shù)據(jù)包數(shù)

(15)fl_iat_avg

兩個流之間的平均時間

(16)fl_iat_std

兩個流之間標(biāo)準(zhǔn)差

(17)fl_iat_max

兩個流之間的最大時間

(18)fl_iat_min

兩個流之間的最小時間

(19)fw_iat_tot

在正向發(fā)送的兩個包之間的總時間

(20)fw_iat_avg

在正向發(fā)送的兩個包之間的平均時間

(21)fw_iat_std

在正向發(fā)送的兩個數(shù)據(jù)包之間的標(biāo)準(zhǔn)偏差時間

(22)fw_iat_max

在正向發(fā)送的兩個包之間的最大時間

(23)fw_iat_min

在正向發(fā)送的兩個包之間的最小時間

(24)bw_iat_tot

反向發(fā)送的兩個包之間的總時間

(25)bw_iat_avg

反向發(fā)送的兩個數(shù)據(jù)包之間的平均時間

(26)bw_iat_std

反向發(fā)送的兩個數(shù)據(jù)包之間的標(biāo)準(zhǔn)偏差時間

(27)bw_iat_max

反向發(fā)送的兩個包之間的最大時間

(28)bw_iat_min

反向發(fā)送的兩個包之間的最小時間

(29)fw_psh_flag

在正向傳輸?shù)臄?shù)據(jù)包中設(shè)置PSH標(biāo)志的次數(shù)(UDP為0)

(30)bw_psh_flag

在反向傳輸?shù)臄?shù)據(jù)包中設(shè)置PSH標(biāo)志的次數(shù)(UDP為0)

(31)fw_urg_flag

在正向傳輸?shù)臄?shù)據(jù)包中設(shè)置URG標(biāo)志的次數(shù)(UDP為0)

(32)bw_urg_flag

反方向數(shù)據(jù)包中設(shè)置URG標(biāo)志的次數(shù)(UDP為0)

(33)fw_hdr_len

用于前向方向上的包頭的總字節(jié)數(shù)

(34)bw_hdr_len

用于后向方向上的包頭的總字節(jié)數(shù)

(35)fw_pkt_s

每秒前向包的數(shù)量

(36)bw_pkt_s

每秒后向包的數(shù)量

(37)pkt_len_min

流的最小長度

(38)pkt_len_max

流的最大長度

(39)pkt_len_avg

流的平均長度

(40)pkt_len_std

流長度的方差

(41)pkt_len_va

最小包到達間隔時間

(42)fin_cnt

帶有FIN的包數(shù)量

(43)syn_cnt

帶有SYN的包數(shù)量

(44)rst_cnt

帶有RST的包數(shù)量

(45)pst_cnt

帶有PUSH的包數(shù)量

(46)ack_cnt

帶有 ACK的包數(shù)量

(47)urg_cnt

帶有URG的包數(shù)量

(48)cwe_cnt

帶有CWE的包數(shù)量

(49)ECE

帶有ECE的包數(shù)量

(50)down_up_ratio

下載和上傳的比例

(51)pkt_size_avg

數(shù)據(jù)包的平均大小

(52)fw_seg_avg

觀察到的前向方向上數(shù)據(jù)包的平均大小

(53)bw_seg_avg

觀察到的后向方向上數(shù)據(jù)包的平均大小

(54)fw_byt_blk_avg

在正向上的平均字節(jié)數(shù)塊速率

(55)fw_pkt_blk_avg

在正向方向上數(shù)據(jù)包的平均數(shù)量

(56)fw_blk_rate_avg

在正向方向上平均bulk速率

(57)bw_byt_blk_avg

在反向上的平均字節(jié)數(shù)塊速率

(58)bw_pkt_blk_avg

在反向方向上數(shù)據(jù)包的平均數(shù)量

(59)bw_blk_rate_avg

在反向方向上平均bulk速率

(60)subfl_fw_pk

在正向子流中包的平均數(shù)量

(61)subfl_fw_byt

子流在正向中的平均字節(jié)數(shù)

(62)subfl_bw_pkt

反向子流中數(shù)據(jù)包的平均數(shù)量

(63)subfl_bw_byt

子流在反向中的平均字節(jié)數(shù)

(64)fw_win_byt

在正向的初始窗口中發(fā)送的字節(jié)數(shù)

(65)bw_win_byt

在反向的初始窗口中發(fā)送的字節(jié)數(shù)

(66)Fw_act_pkt

在正向方向上具有至少1字節(jié)TCP數(shù)據(jù)有效負(fù)載的包

(67)fw_seg_min

在正方向觀察到的最小segment尺寸

(68)atv_avg

流在空閑之前處于活動狀態(tài)的平均時間

(69)atv_std

流在空閑之前處于活動狀態(tài)的標(biāo)準(zhǔn)偏差時間

(70)atv_max

流在空閑之前處于活動狀態(tài)的最大時間

(71)atv_min

流空閑前激活的最小時間

(72)idl_avg

流在激活之前空閑的平均時間

(73)idl_std

流量在激活前處于空閑狀態(tài)的標(biāo)準(zhǔn)偏差時間

(74)idl_max

流在激活之前空閑的最大時間

(75)idl_min

流在激活之前空閑的最小時間

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容