以色列安全公司SafeBreach的研究人員對隱秘數(shù)據(jù)滲漏(exfiltration)技術進行了深入研究,設計出“完美”的數(shù)據(jù)滲漏方法。
SafeBreach公司的研究人員,在2015年就開始尋找從安全性高的組織中隱秘偷取少量敏感數(shù)據(jù)的完美方法。惡意行為人動輒黑進公司網絡,偷出數(shù)以GB計的文件,但少量的關鍵信息,比如說密鑰、口令、可能暴露個人或戰(zhàn)略決策的關鍵詞句等,同樣具備高價值屬性。
該安全公司分析并設計出數(shù)據(jù)滲漏方法適用于高針對性攻擊場景,也就是外部攻擊者已經在目標機構內的某臺設備上植入了惡意軟件,或者惡意內部人士想要在不被安全團隊抓到或檢測到的情況下發(fā)送敏感數(shù)據(jù)的場景。
完美滲漏的要求和條件
上周,在阿姆斯特丹舉行的 Hack in the Box (HITB)黑客安全大會上,SafeBreach共同創(chuàng)始人兼CEO伊特茲克·科特勒,該公司安全研究副總裁阿密特·克萊恩,描述了創(chuàng)建完美滲漏方法涉及的幾個因素。
兩位專家詳細解釋了他們命名為“十誡”的完美滲漏產生條件。
其中最重要的一條就是,必須可擴展且安全。兩位專家認為,完美滲漏技術必須符合柯克霍夫原則——即使密碼系統(tǒng)的任何細節(jié)已為人悉知,只要密匙未泄漏,它也應是安全的。這就既保證了安全,又提供了可擴展性,因為相同的算法可重復使用在不同的密鑰上。
其他要求還包括:只使用常見Web流量(例如:HTTP、DNS、TLS),不利用任何可能被分類為傳輸信息的資源(例如:電子郵件、論壇帖子、加密文本、文件共享服務)等,以免引起懷疑。
開發(fā)數(shù)據(jù)滲漏方法時,攻擊者應該假設目標企業(yè)擁有很好的網絡監(jiān)測系統(tǒng),包括異常檢測、所有協(xié)議層級的包分析,以及基于信譽的機制。如果信譽和統(tǒng)計系統(tǒng)被用于檢測流向惡意IP和主機的出站流量,就應當避免在發(fā)送方和被盜數(shù)據(jù)接收方之間使用直接通信。攻擊者還必須假設企業(yè)會在網關解密TLS通信并進行審查。
在科特勒和克萊恩描述的攻擊場景里,接收方沒有任何限制,自身活動不受任何監(jiān)測。
任何靜默滲漏方法都要求的另一個重要方面是,發(fā)送和接收設備的時鐘必須幾乎完全同步。
幾近完美的滲漏
過去幾年中,研究人員描述了很多種可以不引人注意地滲漏單個比特數(shù)據(jù)(0或1)的方法。此類滲漏方法只適用于微量數(shù)據(jù),比如口令字和密鑰,因為每一個字符都要求攻擊者發(fā)送8個比特。
舉個例子,可以使用IPv4數(shù)據(jù)包頭的服務類型(ToS)字段滲漏1個比特。然而,在Windows工作站上,ToS值是被設為0的,將之修改為1可能會引發(fā)報警。而且,公司還可以通過在防火墻將所有出站數(shù)據(jù)包的ToS置為0,很容易地封鎖住此類攻擊。
一個更有效的技術涉及到Web計數(shù)器的使用。例如,Bit.ly之類的URL縮寫服務,可以提供URL被訪問的次數(shù)。攻擊者可以利用此服務,通過在特定時間訪問特定URL來發(fā)出一個0或1的比特。接受者檢查URL計數(shù),然后等待發(fā)送者在特定時間訪問(1)或不訪問(0)該URL,然后再次查看計數(shù)器以確定是否增量。
該方法不會產生太多噪音,卻很容易被破壞,比如通過攔截Bit.ly請求,往Bit.ly鏈接添加“+”標志獲取原始URL,直接使用原始URL而不用被縮短的鏈接。只要阻止了計數(shù)器遞增,該攻擊就無效了。
來自YouTube和StackOverflow之類網站的計數(shù)器也可以被用來發(fā)送比特數(shù)據(jù)。例如,一段冷門視頻或冷門話題的計數(shù)器在特定時間的改變,就可以用來發(fā)送1或0。不過,專家指出,YouTube這樣的網站,有些企業(yè)是封禁了的。
完美滲漏
SafeBreach的研究人員已經找到了他們認為的完美滲漏方式。科特勒和克萊恩描述了這種依賴于HTTP服務器端緩存過程的方法。
攻擊者首先需要找到一個有很多頁面被動態(tài)緩存的流行網站。電商網站是理想選擇,但為了避免引起懷疑,所選網站應符合目標企業(yè)的形象。
很多網站都會為了提高性能而緩存HTML頁面,而頁面的緩存時間通常可以從HTTP響應包頭獲取到。在科特勒和克萊恩描述的攻擊場景里,發(fā)送者和接收者協(xié)商好一個頁面(必須不熱門,以免被該網站的普通用戶干擾)和時間點。如果發(fā)送者沒有在特定時間點訪問特定頁面,一個比特0就被發(fā)送了,如果特定時間點上確實有對該頁面的HTTP請求,那么比特1被發(fā)送。
接收者可以通過檢查該頁面是否剛剛被緩存,來判斷發(fā)送者有沒有訪問過此頁面。如果接收者在特定時間點后10秒去訪問該頁面,他們就可以判斷頁面是不是剛剛被緩存了(發(fā)送者借訪問動作發(fā)了個1),或者該頁面不過是被接收者自己的訪問給緩存了(發(fā)送者借無訪問動作而發(fā)了個0)。
能被用作此類攻擊的網頁簡直多如繁星。研究人員列舉出了宜家官網、英國易捷廉價航空官網、以色列電子商務網站Zap.co.il等。
SafeBreach發(fā)布了一個自動化此類攻擊的概念驗證(PoC)工具,包含了獲取緩存時間信息,在特定時間點訪問預定義的URL來判斷發(fā)送者是在發(fā)0還是1等動作。當然,該方法也可以被惡意內部人士手動執(zhí)行。
在科特勒和克萊恩看來,這種方法可被歸類為完美滲漏,因為符合所有“十誡”要求。比如說,不同域名的不同URL可被用作每個比特的發(fā)送途徑,這樣一來,即使防御者發(fā)現(xiàn)了之前使用的URL,也阻止不了攻擊繼續(xù)。
這種滲漏方法還特別高效,因為它只使用正常的Web流量,不需要額外的軟件,如果請求是以不規(guī)則的長間隔發(fā)送,而且發(fā)送者不與接受者直接通信,網絡監(jiān)測系統(tǒng)還不太可能找到什么可疑的東西。為確保滲漏數(shù)據(jù)的完整性,避免掉線和其他因素造成的干擾,發(fā)送者可以用“01”序列代表比特0,用“10”序列代表比特1。
盡管可以將這種方法認為是完美滲漏,研究人員指出,需要考慮的因素還有幾個。例如,網站總是在改變,因此,如果能有個更新URL的機制,會比較理想。發(fā)送者和接受者的時鐘同步也對該方法能否有效實現(xiàn)起著非常重要的作用。
攻擊者還必須確保所利用的網站和發(fā)送時間點要能混雜在目標公司的正常流量中。研究人員強調,如果網站采用多個緩存服務器,或者依賴于地理IP分發(fā),這種攻擊可能失效。
檢測和挫敗此類攻擊的一種可能方法,就是攔截所有HTTP請求,延遲幾秒鐘,查看目標頁面是否被接收者訪問。但是,這么干會對用戶體驗造成負面影響,因為每個請求都被延遲了(舉個例子:如果接收者在10秒后訪問頁面,每個請求就得被延遲至少11秒)。
如今該方法細節(jié)已被披露,甚至PoC工具都發(fā)布了,會不會被惡意行為人濫用呢?科特勒和克萊恩解釋道,他們的目的是幫助防御者找到檢測和封鎖滲漏的技術。畢竟,即使沒有他倆,攻擊者自己也可能想出此類滲漏方法。
SafeBreach對業(yè)界提出了挑戰(zhàn),能不能找到可被用于大量數(shù)據(jù)的完美滲漏方法呢?能不能找出抵御該公司的完美滲漏提案的有效辦法呢?