越來越多的網路攻擊背後,你看清黑客的套路了嗎?
文/Nachiket Patel
在今天的媒體上,你一定已經看過太多像是」某國指控它國對其發動網路攻擊」、「某公司遭遇嚴重信息泄露事件,數百萬用戶數據被盜」等涉及網路攻擊事件的新聞。數據俠Nachiket Patel用數據分析嘗試對這場「陰謀」一探究竟。
▍什麼是網路攻擊
在今天的媒體上,你一定已經看過太多像是」某國指控它國對其發動網路攻擊」,「某公司遭遇嚴重信息泄露事件,數百萬用戶數據被盜」等涉及網路攻擊事件的新聞。如果倒霉一點,你還可能就是這種惡性事件的受害者,並可能有一天打開電腦,突然發現自己眼前的屏幕被鋪滿了這樣的字句:
「你的信息已被加密,想要恢復的話,交錢吧。」
這些都是網路攻擊事件——旨在盜竊錢財、金融數據、知識產權或干擾某一目標公司的日常經營的惡意網路行動,它們絕大多數時候是由犯罪分子發動的。國家有時也會成為攻擊目標,一些所謂的「政府支持的網路攻擊」會嘗試竊取宿敵國家的機密文件,或者僅僅是為了給對方發出一個警告信號。
據粗略統計,2015年全球因網路攻擊造成的損失達到5000億美元。是谷歌全年900億美元的現金流的5倍還多。
在這篇文章中,我們希望通過數據分析的方式,來探究這些造成巨額損失的網路犯罪的特點,進一步了解它們的行為方式以及帶來的影響。
我使用Scrapy對網路攻擊事件庫網站Hackmageddon進行爬蟲爬取,以收集可供分析的信息。Hackmageddon從2011年開始記載各種網路攻擊事件,每15天會更新一個統計表。我的爬蟲對網站的目錄和次級目錄進行分析,不過在過程中我了解到Scrapy不如Selenium那樣,能與瀏覽器有很好的自動化的互動。
我從2011年網站的第一張表格開始,在過程中遇到不少挑戰。一個問題是,它無法自動從一個表格跳到下一個。這個網站每個頁面底部有翻頁按鈕,我讓我的爬蟲對這個按鈕的鏈接發起fetch請求,以進入下一頁。另一個問題是,Hackmageddon每年都改變它的表格結構。所以我使用了控制流來解決這個問題,最終我幾乎爬取了全部網站,爬取的信息包括日期、發起者、目標、描述、攻擊類型、目標等級以及國別。
(圖片說明:項目獲取的部分數據)
▍基本數據展示
在分析數據前要先清洗數據。如我所料,爬取的數據有很多缺失。由於許多網路攻擊的動機和黑客身份經常是無法知曉的,這部分的數據缺失在我預料中。我使用Python的Pandas
library來進行數據清洗。在清理數據之後我開始進行可視化。最開始的簡單分析揭示了一些有趣的現象。美國是受攻擊最多的國家,排在第二到第四位是「>1」,英國,印度。「>1」是指「同一個黑客攻擊了一個以上國家」的情況。我爬取數據的目的之一,就是想知道這些攻擊行動背後的動機。下圖展示了攻擊目標中不同類型的組織所佔比例。政府部門和個人佔據前二位置,接下來是教育機構。
接下來的圖表展示了網路攻擊背後的動機。網路犯罪佔比最多,達71%。網路犯罪針的典型場景是為了獲取網路許可權。電腦被用作武器,來發動像DoS攻擊等犯罪活動。
網路間諜(Cyber Espionage)的目的則是非法獲取涉密信息,尤其是政府或其他組織的保密信息。
網路戰爭的目的則是破壞一個國家或組織,尤其是出於軍事或策略性的目的而刻意攻擊信息系統。
Hacktivism就更加寬泛,它指的是未經授權進入電腦系統,並展開各種侵擾行為,從而達到某種政治或社會目的的行為。
接下來的問題是,網路攻擊都包括哪些類型,以及誰是最臭名昭著的黑客。
下圖展示了網路攻擊的類型。劫持賬戶、定向攻擊、DDos和惡意軟體佔據前四。
接下來的圖告訴我們誰是最「有名」的黑客。排在第一位的匿名者組(Anoynymous)比第二名的OurMine多發動了75次網路攻擊。
匿名者組織因其一系列針對政府、宗教團體及公司網站的DDoS攻擊而出名。他們也被認為是網路世界的羅賓漢,2012年時代周刊形容匿名者是當年的「百大影響人物」。
OurMine大多數時候會將目標對準明星。被他們黑掉過推特賬號的明星包括維基百科聯合創始人吉米威爾斯、Pokémon Go的設計者約翰漢克、推特CEO傑克多西、谷歌CEO皮查伊以及Facebook的扎克伯格。
接下來的圖表顯示了各個黑客最常用的攻擊方式。匿名者進行了30次DDoS,OurMine發動了20次賬戶劫持。
下圖顯示,一個名為Guccifer 2.0的黑客對美國的政黨發動了9次攻擊,朝鮮大多數時候在對韓國發動網路攻擊。Eggfather則將在線論壇作為攻擊對象,並將獲取的用戶信息和密碼轉儲(Dump)。
▍對非結構化語言的文本挖掘
在爬取的數據中,有很多非結構化數據。我決定對它們進行文本挖掘。我使用了Python的Scikit-learn包用於機器學習,NLTK包用於自然語義處理。
首先是詞語切分(Tokenization)。Token是指符號,包括單詞、片語乃至一句話。詞語切分(Tokenization)就是把一段話分解成單個的單詞、片語和符號等要素。在這一過程中,標點符號等標記會被捨棄。
其次是TF-IDF向量化。TF意思是詞頻(Term Frequency),IDF意思是逆向文件頻率(Inverse Document
Frequency),它們用來反映一個詞在一個文檔中的重要性。TF-IDF值隨著一個單詞在文檔中出現次數的增加而形成比例增長,但同時與這個單詞在整個語料庫中出現的頻率成反比。因為這樣可以避免那些在整體上,本來就比其他單詞更頻繁出現的單詞帶來的影響。它的輸出值是一個向量。接下來餘弦相似性。餘弦相似性通過測量兩個向量的夾角的餘弦值來度量它們之間的相似性。
兩個向量有相同的指向時,餘弦相似度的值為1;兩個向量夾角為90°時,餘弦相似度的值為0;兩個向量指向完全相反的方向時,餘弦相似度的值為-1。餘弦相似度通常用於正空間,因此給出的值為0到1之間。
然後我還使用了多維標度(Multidimensional Scaling)。多維標度的目的是對一組項目的接近性(比如相似性、距離)的範式進行可視化的程序。我將各類網路攻擊事件放在圖中,一些彼此相似的攻擊事件會離得更近,反之亦反。這是一種非線性降維的方法。
最後是K-平均演算法(K-means
Clustering)。K-平均聚類的目的是:把n個點劃分到k個聚類中,使得每個點都屬於離它最近的均值(此即聚類中心)對應的聚類,以之作為聚類的標準。這需要將數據聚類成k個組,k是預先定義好的,隨機選擇k個點作為聚類中心,然後依據歐氏距離函數來將各個觀察目標放置在距離它們最近的中心附近。(圖片說明:原圖為嵌入式的D3交互,點擊文末「閱讀原文」查看原圖)
在我用D3做的可視化交互圖中,滑鼠懸浮於每個點上時就會顯示被攻擊的組織名稱,右下角是圖說,顯示了每個聚類中最常出現的片語。一共有12個不同顏色標出的聚類。
比如,第一組海綠色的聚類,在圖說中標出的片語為「轉儲、密碼、用戶名、記錄」。
在這組聚類中,各個被攻擊對象彼此相似,大多數是網站。黑客往往將它們用戶的用戶名、密碼等進行了轉儲。
根據上面的可視化圖表,政府組織往往會歸類到7、8或11聚類,因為政府有大量涉密檔案而黑客總希望將之偷走或公之於眾。醫療機構則多歸於6組,黑客希望獲取用戶數據和記錄。金融機構往往在12組,因為其資料庫也是保密的。在線遊戲網站更經常受到DDoS攻擊。
受攻擊最多的是政府組織。Guccifer2.0涉及2016年大選的網路攻擊行動。
賬戶劫持是最常見的攻擊類型。
「泄漏、要求、資料庫、匿名者」的這組聚類有最多的點,這說明,大多數攻擊泄漏了信息,黑進了資料庫,而匿名者發動了最多的網路攻擊。
本文翻譯自紐約數據科學學院技術博客 《Insights into the world of Cyber Attacks by Scraping Hackmageddon》,點擊「閱讀原文」查看。文章僅為作者觀點,不代表DT財經立場。
作者 |Nachiket Patel
題圖 | 站酷海洛
▍關於DT×NYCDSA
DT×NYCDSA 是DT財經與紐約數據科學學院合作專欄。紐約數據科學學院(NYC Data Science Academy)是由一批活躍在全球的數據科學、大數據專家和SupStat Inc. 的成員共同組建的教育集團。
▍數據俠門派
Nachiket Patel擁有紐約理工學院計算機科學碩士學位,本科畢業後他做了兩年軟體工程師。他參加了紐約數據科學學院的課程,旨在提高自己在機器學習和大數據方面的知識和能力。
▍加入數據俠
「數據俠計劃」是由第一財經旗下DT財經發起的數據社群,包含數據俠專欄、數據俠實驗室系列活動和數據俠聯盟,旨在聚集大數據領域精英,共同挖掘數據價值。了解數據俠計劃詳情請回復「數據俠計劃」,投稿、合作請聯繫datahero@dtcj.com。
推薦閱讀:
※從Google預測流感引發的大數據反思
※支持向量機(SVM)——原理篇
※【線上直播】數據很重要,Storm幫你現在就要
※Linux大數據開發之Shell編程基礎
※驚呆了!顏值爆表的20+位阿里技術女神同一時間向你發出共事邀請!