從2015年開始,思科信息安全團隊中一位名叫Rich West的系統架構師就一直在與思科高級安全研究小組的一名工程師嘗試去解決一個非常新穎的問題:思科信息安全團隊希望能夠找到一種方法來更好地保護思科員工的信息安全,并防止惡意軟件通過加密流量竊取員工的個人隱私數據。但當時似乎只有一種可行的方法,即通過設置代理并解密通信數據來檢查所有的SSL和TLS流量。
如果是在惡意活動中,那么上述這種“可行方法”就是我們常說的中間人(MitM)攻擊。但即便是出于安全防御端的角度來看,這種方法仍然會被視為一種侵犯用戶隱私的行為,因為當用戶需要向銀行或加密郵件服務發送加密通訊信息時,上面的這種方法就會破壞加密信任鏈,從而導致用戶隱私受到侵害。除此之外,這種方法的計算量也非常高,而且高到足以造成網絡性能的大幅下降,更不用說管理額外的SSL證書(流量被檢查之后需要重新簽名)所帶來的性能負擔了。
Rich West和他的團隊最終認為,這種以犧牲隱私權和網絡性能為代價來換取安全性的方法是不值當的。因此,他們需要一種新的方法,他們需要一種不涉及到向檢查節點發送內部流量的方法。為了解決這個問題,West與思科工程師David McGrew取得了聯系。
一個待解決的復雜問題
McGrew是思科高級安全研究小組的一員,他和他的團隊一直都在研究如何使用NetFlows配合新的算法來檢測惡意軟件。當West將他的需求(設計一種新的方法在加密數據中識別惡意攻擊)告知了McGrew的團隊之后,這個耗時長達兩年的項目便誕生了,而且該項目現在已接近完工。這個項目集合了多款新型網絡產品和軟件,旨在從根本上改變現代網絡的底層架構和驅動模型,而思科在本周已經正式對外公布了該項目。

McGrew和他的團隊所開發來的這種模型名叫Encrypted Traffic Analytics(ETA),即加密流量分析模型。思科公司手中掌握有龐大的網絡資源和數據資源,思科也一直希望將手中的這些資源結合自動化技術以及機器學習來實現無處不在的安全保護,而ETA模型的出現讓思科離這個目標近了一大步。
數據加密通常都會被認為是一件好事,因為加密不僅能夠保證網絡交易和聊天的私密性,而且也可以防止攻擊者(中間人攻擊)窺探或篡改用戶的網絡通信數據。
隨著越來越多的企業環境開始使用云服務,這也讓Google和Mozilla這樣的公司開始強制網站去使用TLS等安全傳輸協議了。各大瀏覽器廠商首先要求所有的加密流量必須由受信任的證書機構(CA)所頒發的證書來進行簽名,而相關機構也在努力試圖通過簡化證書申請以及流量加密等過程來推廣TLS的使用。但正是因為加密所需的成本降低了,而且幾乎毫無成本,所以很多網絡攻擊者也開始通過普通的TLS或SSL流量來試圖掩蓋他們的惡意命令、遠程控制行為以及數據竊取活動。
想要在普通流量中檢測惡意軟件的活動本身就是一件非常復雜的事情,而且還涉及到海量數據分析等情況,再加上TLS和SSL等加密協議的出現,使得目前所面臨的挑戰難上加難。但對于McGrew來說,這正是讓他激動不已的地方。
NetFlow中包含有大量有價值的信息,但它也會受到一定的語境限制。它可以表示網絡上的兩臺設備正在交互,以及通信時長和發送的字節數等等,但這些數據畢竟還是不完整的。McGrew認為,隱私和安全并不應該是必須二選一的,為了解決這個復雜的問題,他不僅需要從頭開始,而且還需要涉及到大量代碼和密集的數據建模。

‘好吧,你到底需要什么?’ – ‘數據,很多很多的數據。’
這個項目需要大量的資源,所以McGrew首先想到了思科的技術投資基金(Tech Fund)。思科的“Tech Fund”項目通常投資的都是那些能夠改變現狀的新型產品或高新技術,而且這些項目通常都需要好幾年的開發時間。
就算有了資金做保障,但在真正形成項目并開始編碼之前,McGrew還需要從思科的網絡系統中獲取數據分析樣本,包括惡意軟件樣本在內。為了解決這個問題,McGrew在2015年3月份邀請了Blake Anderson加入。Anderson是一名擁有博士學位的數據科學家,他主要研究的是機器學習在網絡安全中的應用。當時,他也正在與美國洛斯阿拉莫斯國家實驗室一起研究如何將機器學習方法應用到惡意軟件的分析過程中。
當Anderson加入到思科這個團隊時,McGrew的團隊正在開發相應的分析工具,而且他們已經可以通過NetFlow數據來識別出具體的應用程序了。比如說,他們可以識別出NetFlow數據是來源于Chrome瀏覽器還是來源于微軟的更新服務,不過他們還沒有將這項技術應用到針對惡意軟件的數據分析活動中。
為了獲取到分析樣本,Anderson以及McGrew的團隊幾乎與思科公司的每一個產品部門都溝通過,包括內部信息安全團隊、Talos威脅情報小組和ThreatGRID團隊等等。在花費了幾個月的時間編寫了一萬多行代碼之后,McGrew和Anderson便開始將他們的數據模型應用到實際的測試中。在獲取到了數百萬的數據包和已知的惡意軟件樣本之后,Anderson開始嘗試在不進行任何解密的情況下對海量數據進行篩選和歸類,并通過“最具描述性的特征”來識別出惡意流量和正常流量。

Anderson表示:“我認為收集正確的數據才是最重要的。很多人會在收集到了大量數據之后才去考慮他們能用這些數據去做什么,但我們打算采取相反的做法,我們會列出我們所需要的數據類型,然后再從思科的其他產品團隊那里收集這些數據。”
隱藏的惡意軟件與指紋
如果網站擁有權威CA簽發的TLS證書,這意味著用戶可以放心地訪問這個網站,但這并非絕對。據了解,至少從2009年起,很多攻擊者就開始通過使用偽造的、竊取來的、甚至是合法的SSL簽名證書來欺騙互聯網的信任系統。這樣一來,攻擊者就可以通過安全證書來誘使用戶交出自己的登錄憑證或下載惡意Payload。在過去的幾個月里,濫用合法TLS證書的攻擊事件數量呈上升趨勢,這很可能是由于類似Let’s Encrypt這樣的CA機構開始免費簽發TLS證書所導致的。這也就意味著,網絡釣魚攻擊者將能夠輕而易舉地制作出足以以假亂真的PayPal或比特幣錢包釣魚網站。比如說,下圖所示的就是一個使用了免費加密證書的釣魚網站:

事實證明,降低密鑰的獲取難度確實是一把雙刃劍
Rich West認為,從某種程度上來說,他們的成功是以犧牲其他安全部門作為代價的。他們一直在敦促IT公司、廠商和App開發者通過加密技術來保證數據的安全,但這樣也增加了處理這些加密數據的難度。不過幸運的是,通過對數百萬TLS數據流、惡意軟件樣本和數據包進行了分析之后,Anderson和McGrew發現TLS數據流中未加密的元數據包含攻擊者無法隱藏的數據指紋,而且即使數據經過加密也無法隱藏這種指紋。TLS擅長的就是隱藏明文信息,但它所創建出來的還有一系列可觀測的復雜參數,而McGrew和Anderson這樣的工程師就可以用這些數據來訓練他們的模型了。
比如說,當一段TLS流量開始發送時,首先從一個握手包開始。客戶端(比如說Chrome瀏覽器)會給其嘗試通信的服務器發送ClientHello消息。“Hello”消息包含一組參數,例如使用的密碼套件、接受的版本以及可選的擴展。但類似“ClientHello”這樣的TLS元數據是沒有被加密的,因為它們在消息開始加密之前就發送出去了。這也就意味著,Anderson的模型可以在完全不知道消息內部數據的情況下對這些未加密的數據進行分析,而該模型將準確地分辨出該流量來自于惡意軟件還是普通活動。

根據Anderson最新的測試結果,這種方法不僅可以在不侵犯用戶隱私(即不破壞解密)的情況下保證用戶的安全,而且ETA測試的準確性也非常有保證。如果只使用NetFlow功能的話,檢測準確率只有67%。但如果能配合類似SPL、DNS、TLS元數據、以及HTTP等信息的話,檢測的準確率將高達99%。
豐富的資源外加跨部門的協同合作,McGrew和Anderson僅僅花費了兩年的時間便創造出了這種能夠解決當前網絡安全嚴峻問題的方案。而McGrew也表示,只有像思科這樣擁有大量資源和數據并重視高級安全技術的公司才可以推出這樣的解決方案。
展望
Anderson表示,他希望ETA能夠通過軟件代碼更新等形式應用到任何地方,并給網絡上的任何設備提供惡意軟件識別服務,因為ETA的目標就是讓任何需要處理網絡數據的設備都變成安全設備。Anderson說到:“我們接下來會想辦法將我們的技術應用到路由器和交換機上,這是非常有意義的。在這個過程中,我們依然可以通過云端來訓練我們的模型,并將機器學習與網絡層聯系起來。”
|