淺談facebook威脅分析框架
facebook在去年的時候曾向外公開自家的威脅情報分析框架ThreatData
(Understanding Online Threats with ThreatData) ,訊息發出後更多的人關心的是是否開源,反正我是沒有找到這個開源框架。
For us to do our part effectively, we must continually search for new types of attacks and deeply understand existing ones. Given the pace of criminals today, one of the hard parts is actually keeping track of all the data related to malware, phishing, and other risks. We wanted an easier way to organize our work and incorporate new threat information we receive so that we can do more to protect people.
從官方的描述來說,這個系統的初衷是用於持續跟蹤惡意資訊,並從歷史教訓中分析,總結,從而預防新的威脅,然而並沒有涉及到關於情報分享的部分。
關於情報源頭資訊組織的雜亂無序,無論是不是需要分享,都需要解決這個問題,因此文中提到這個系統一大部分是在將雜亂無章的情報轉化transform
成一種高效標準的格式來進行儲存和分析,這就是文章中提到的ThreatDatum
。
系統組成有三個重要部分:
Data Collection
也就是所謂的威脅情報源。從文章彙總列舉出來的來看,和目前的源頭基本一致,開源的威脅庫如virusTotal,從供應商那裡提供的情報源,當然也包括自己公司平時就能注意到的一些情報資訊。比如:- Malware file hashes from VirusTotal
- Malicious URLs from multiple open source blogs and malware tracking sites
- Vendor-generated threat intelligence we purchase
- Facebook’s internal sources of threat intelligence
- Browser extensions for importing data as a Facebook security team member reads an article, blog, or other content.
Data Storage
facebook並沒有將所有的資料都按照同一種類型來存放,他們將資料按照需求存放到了兩個倉庫中Hive
用於判斷之前是否見過此中威脅,以及統計當前惡意程式碼多一些還是釣魚網站多一些。Scuba
用於判斷當前新出現的威脅,以及最多的釣魚網站站點。
- Real-time Response
文章發表時,facebook做了哪些響應:
- 惡意域名和URL,隨時存放到黑名單中。
- 從公有的惡意程式碼倉庫中下載惡意程式碼檔案hash值,儲存並自動分析
- 將威脅資料共享至內部應急中心,分析或處理。
下面這幅圖是我根據文章描述,在gliffy
上畫出來的圖,可能有些出入:
威脅情報吹的再高,到頭來獲取的還是這些基礎資料。資料儲存本身沒有技術含量,最重要的部分還是在關聯分析和機器解讀上,誠然威脅情報的提出是出於雲端計算和大資料的日趨成熟,資料關係在系統中非常重要。
從facebook的架構上來說,並沒有提及到共享機制,所以只能算是一個企業的嘗試,如果真的要做大做強,資訊共享是必須的。
而在應急響應部分,做的事情還是傳統響應的一些做法,比如新增規則,建立黑名單等。資料探勘是這些雜亂無章的資料背後的財富。
個人而言,情報的追蹤也是一個很關鍵的部分,再到stix中提到的TTPs,更是一種威脅情報的高階利用和解讀,需要專業的分析人員去做大資料處理。