AI安全如何入門(中)
概述
資料和演算法就像黃油和麵包一樣缺一不可,很多時候資料比演算法還要重要。在AI安全剛入門階段,強烈建議使用常見的資料集進行測試,便於快速入門。剛入門階段就急不可耐的使用生產環境的資料往往會帶來很多意想不到的問題。本文將介紹常見的入門級安全相關的資料集,這些資料集來自現實環境同時千錘百煉,經過人們的長期使用,並且有些已經幫助讀者進行了初步的特徵提取。
KDD 99資料
KDD是資料探勘與知識發現的簡稱,KDD CUP是由ACM組織的年度競賽。KDD 99 資料集就是KDD競賽在1999年舉行時採用的資料集。
1998年美國國防部高階規劃署(DARPA)在MIT林肯實驗室進行了一項入侵檢測評估專案。林肯實驗室建立了模擬美國空軍區域網的一個網路環境,收集了9周時間的網路連線和系統審計資料,模擬各種使用者型別、各種不同的網路流量和攻擊手段,使它就像一個真實的網路環境。一個網路連線定義為在某個時間內從開始到結束的TCP資料包序列,並且在這段時間內,資料在預定義的協議下從源IP地址到目的IP地址的傳遞。每個網路連線被標記為正常(normal)或異常(attack),異常型別被細分為4大類共39種攻擊型別,其中22種攻擊型別出現在訓練集中,另有17種未知攻擊型別出現在測試集中。
KDD 99 攻擊型別詳情
隨後來自哥倫比亞大學的Sal Stolfo 教授和來自北卡羅萊納州立大學的 Wenke Lee 教授採用資料探勘等技術對以上的資料集進行特徵分析和資料預處理,形成了一個新的資料集。該資料集用於1999年舉行的KDD競賽中,成為著名的KDD 99資料集。雖然年代有些久遠,但KDD99資料集仍然是網路入侵檢測領域的權威測試集,為基於計算智慧的網路入侵檢測研究奠定基礎。
KDD99資料集中每個連線用41個特徵來描述:
0,udp,private,SF,105,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0.00,0.00,0.00,0.00,1.00,0.00,0.00,255,254,1.00,0.01,0.00,0.00,0.00,0.00,0.00,0.00,normal.
0,udp,private,SF,105,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0.00,0.00,0.00,0.00,1.00,0.00,0.00,255,254,1.00,0.01,0.00,0.00,0.00,0.00,0.00,0.00,normal.
0,udp,private,SF,105,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0.00,0.00,0.00,0.00,1.00,0.00,0.00,255,254,1.00,0.01,0.00,0.00,0.00,0.00,0.00,0.00,normal.
0,udp,private,SF,105,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0.00,0.00,0.00,0.00,1.00,0.00,0.00,255,254,1.00,0.01,0.00,0.00,0.00,0.00,0.00,0.00,snmpgetattack.
上面是資料集中的3條記錄,以CSV格式寫成,加上最後的標記(label),一共有42項,其中前41項特徵分為4大類。
TCP連線基本特徵,基本連線特徵包含了一些連線的基本屬性,如連續時間,協議型別,傳送的位元組數等
KDD 99 TCP連線基本特徵
TCP連線的內容特徵
KDD 99 TCP連線內容特徵
基於時間的網路流量統計特徵
KDD 99 基於時間的網路流量統計特徵
基於主機的網路流量統計特徵
KDD 99 基於主機的網路流量統計特徵
HTTP DATASET CSIC 2010
HTTP DATASET CSIC 2010包含大量的標註過的針對web服務的36000個正常以及25000個攻擊請求,攻擊型別包括sql注入、緩衝區溢位、資訊洩露、檔案包含、xss等,被廣泛用於WAF類產品的功能評測。
正常請求格式為:
CSIC 2010正常請求示例
攻擊請求格式為:
CSIC 2010攻擊請求示例
SEA資料集
2001年Schonlau等人第一次將內部攻擊者分類成叛徒(Traitor)與偽裝者(Masquerader),其中叛徒指攻擊者來源於組織內部,本身是內部合法使用者,而偽裝者指外部攻擊者竊取了內部合法使用者的身份憑證,從而利用內部使用者身份實施內部攻擊。隨後該團隊構造了一個公開的檢測偽裝者攻擊的資料集SEA,該資料被廣泛用於內部偽裝者威脅檢測研究。
SEA資料集涵蓋70多個UNIX系統使用者的行為日誌,這些資料來自於UNIX系統acct機制記錄的使用者使用的命令。SEA資料集中每個使用者都採集了15000條命令,從使用者集合中隨機抽取50個使用者作為正常使用者,剩餘使用者的命令塊中隨機插入模擬命令作為內部偽裝者攻擊資料。SEA資料集中的使用者日誌類似於下面的命令序列:
{cpp, sh,cpp, sh, xrdb, mkpts…}
每個使用者的資料按照100命令長度分為150個塊,前三分之一資料塊用作訓練該使用者正常行為模型,剩餘三分之二資料塊隨機插入了測試用的惡意資料。SEA資料集中惡意資料的分佈具有統計規律,任意給定一個測試集命令塊,其中含有惡意指令的概率為1%;而當一個命令塊中含有惡意指令,則後續命令塊也含有惡意指令的概率達到80%。可以看出SEA中的資料集將連續資料塊看作一個會話,只能模擬連續會話關聯的攻擊行為;此外由於缺乏使用者詳細個人資訊(職位、許可權等)、資料維度單一(僅有命令資訊)以及構造性(惡意資料由人工模擬)等因素,資料集在內部威脅檢測研究中作用有限。
Schonlau在他的個人網站http://www.schonlau.net/上釋出了SEA資料集。
ADFA-LD資料集
ADFA-LD資料集是澳大利亞國防學院對外發布的一套主機級入侵檢測系統的資料集合,被廣泛應用與入侵檢測類產品的測試。該資料集包括Linux和Windows,記錄了系統呼叫資料,Gideon Creech為這個專案的負責人,專案主頁為:https://www.unsw.adfa.edu.au
ADFA-LD已經將各類系統呼叫完成了特徵化,並針對攻擊型別進行了標註,各種攻擊型別列舉如下:
ADFA-LD攻擊型別
ADFA-LD的每個資料檔案都獨立記錄了一段時間內的系統呼叫順序,每個系統呼叫都用數字編號,對應的編號舉例如下:
#define __NR_io_setup 0 __SYSCALL(__NR_io_setup, sys_io_setup)
#define __NR_io_destroy 1 __SYSCALL(__NR_io_destroy, sys_io_destroy)
#define __NR_io_submit 2 __SYSCALL(__NR_io_submit, sys_io_submit)
#define __NR_io_cancel 3 __SYSCALL(__NR_io_cancel, sys_io_cancel)
#define __NR_io_getevents 4 __SYSCALL(__NR_io_getevents,sys_io_getevents)
#define __NR_setxattr 5 __SYSCALL(__NR_setxattr, sys_setxattr)
#define __NR_lsetxattr 6 __SYSCALL(__NR_lsetxattr, sys_lsetxattr)
Movie Review Data
Movie Review Data資料集包含1000 條正面的評論和1000條負面評論,被廣泛應用於文字分類尤其是惡意評論識別方面。本書使用其最新的版本,polaritydataset v2.0。
Movie Review Data資料集記錄的都是原始評論資料,全部為英文,文字內容舉例如下:
films adapted from comic books have had plenty of success , whetherthey’re about superheroes ( batman , superman , spawn ) , or geared toward kids( casper ) or the arthouse crowd ( ghost world ) , but there’s never reallybeen a comic book like from hell before .
for starters , it was created by alan moore ( and eddie campbell ) ,who brought the medium to a whole new level in the mid ’80s with a 12-partseries called the watchmen .
the film , however , is all good .
2 : 00 – r for strong violence/gore , sexuality , language and drugcontent
檔案分別包含在neg和pos兩個資料夾下面,分別代表正面和負面評價。
Movie Review Dat資料夾結構
Movie Review Data對應網址為:http://www.cs.cornell.edu/People/pabo/movie-review-data/
SpamBase資料集
SpamBase是入門級的垃圾郵件分類訓練集。
SpamBase的資料不是原始的郵件內容而是已經特徵化的資料,對應的特徵是統計的關鍵字以及特殊符號的詞頻,一共58個屬性,其中最後一個是垃圾郵件的標記位。
特徵屬性舉例如下:
SpamBase資料特徵舉例
資料來源為4601封郵件,其中1813封為垃圾郵件,資料內容舉例如下:
0,0.64,0.64,0,0.32,0,0,0,0,0,0,0.64,0,0,0,0.32,0,1.29,1.93,0,0.96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.778,0,0,3.756,61,278,10.21,0.28,0.5,0,0.14,0.28,0.21,0.07,0,0.94,0.21,0.79,0.65,0.21,0.14,0.14,0.07,0.28,3.47,0,1.59,0,0.43,0.43,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0.132,0,0.372,0.18,0.048,5.114,101,1028,1
SpamBase對應網址為:http://archive.ics.uci.edu/ml/datasets/Spambase
Enron資料集
Enron在2001年宣告破產之前,擁有約21000名僱員,曾是世界上最大的電力、天然氣以及電訊公司之一,2000年披露的營業額達1010億美元之巨。公司連續六年被財富雜誌評選為“美國最具創新精神公司”,然而真正使Enron公司在全世界聲名大噪的,卻是這個擁有上千億資產的公司2002年在幾周內破產,持續多年精心策劃、乃至制度化系統化的財務造假醜聞。安然歐洲分公司於2001年11月30日申請破產,美國本部於2日後同樣申請破產保護。但在其破產前的資產規模為498億美元,並有312億的沉重債務。過度膨脹的快速發展使其無法應對經濟環境的逆轉,而導致無法經營運作狀況的惡化,以破產結束企業。機器學習領域使用Enron公司的郵件歸檔來研究文件分類、詞性標註、垃圾郵件識別等,由於Enron的郵件都是真實環境下的真實郵件,非常具有實際意義。本書使用的Enron資料集是經過人工標註過的正常郵件和垃圾郵件,屬於狹義的Enron資料集合,廣義的Enron資料集指全量真實且未被標記的Enron公司歸檔郵件。
Enron資料集合使用不同資料夾區分正常郵件和垃圾郵件。
Enron資料集資料夾結構
正常郵件內容舉例如下:
Subject: christmas baskets
the christmas baskets have been ordered .
we have ordered several baskets .
individual earth – sat freeze – notis
smith barney group baskets
rodney keys matt rodgers charlie
notis jon davis move
team
phillip randle chris hyde
harvey
freese
faclities
垃圾郵件內容舉例如下:
Subject: fw : this is the solution imentioned lsc
oo
thank you ,
your email address was obtained from apurchased list ,
reference # 2020 mid = 3300 . if you wishto unsubscribe
from this list , please click here andenter
your name into the remove box . if youhave previously unsubscribed
and are still receiving this message , youmay email our abuse
control center , or call 1 – 888 – 763 -2497 , or write us at : nospam ,
6484 coral way , miami , fl , 33155 “. 2002
web credit inc . all rights reserved .
Enron資料集對應的網址為:http://www2.aueb.gr/users/ion/data/enron-spam/