以色列安全公司safebreach的研究人員對隐秘資料滲漏(exfiltration)技術進行了深入研究,設計出“完美”的資料滲漏方法。
safebreach公司的研究人員,在2015年就開始尋找從安全性高的組織中隐秘偷取少量敏感資料的完美方法。惡意行為人動辄黑進公司網絡,偷出數以gb計的檔案,但少量的關鍵資訊,比如說密鑰、密碼、可能暴露個人或戰略決策的關鍵詞句等,同樣具備高價值屬性。
該安全公司分析并設計出資料滲漏方法适用于高針對性攻擊場景,也就是外部攻擊者已經在目标機構内的某台裝置上植入了惡意軟體,或者惡意内部人士想要在不被安全團隊抓到或檢測到的情況下發送敏感資料的場景。
完美滲漏的要求和條件
上周,在阿姆斯特丹舉行的 hack in the box (hitb)黑客安全大會上,safebreach共同創始人兼ceo伊特茲克·科特勒,該公司安全研究副總裁阿密特·克萊恩,描述了建立完美滲漏方法涉及的幾個因素。
兩位專家詳細解釋了他們命名為“十誡”的完美滲漏産生條件。
其中最重要的一條就是,必須可擴充且安全。兩位專家認為,完美滲漏技術必須符合柯克霍夫原則——即使密碼系統的任何細節已為人悉知,隻要密匙未洩漏,它也應是安全的。這就既保證了安全,又提供了可擴充性,因為相同的算法可重複使用在不同的密鑰上。
其他要求還包括:隻使用常見web流量(例如:http、dns、tls),不利用任何可能被分類為傳輸資訊的資源(例如:電子郵件、論壇文章、加密文本、檔案共享服務)等,以免引起懷疑。
開發資料滲漏方法時,攻擊者應該假設目标企業擁有很好的網絡監測系統,包括異常檢測、所有協定層級的包分析,以及基于信譽的機制。如果信譽和統計系統被用于檢測流向惡意ip和主機的出站流量,就應當避免在發送方和被盜資料接收方之間使用直接通信。攻擊者還必須假設企業會在網關解密tls通信并進行審查。
在科特勒和克萊恩描述的攻擊場景裡,接收方沒有任何限制,自身活動不受任何監測。
任何靜默滲漏方法都要求的另一個重要方面是,發送和接收裝置的時鐘必須幾乎完全同步。
幾近完美的滲漏
過去幾年中,研究人員描述了很多種可以不引人注意地滲漏單個比特資料(0或1)的方法。此類滲漏方法隻适用于微量資料,比如密碼字和密鑰,因為每一個字元都要求攻擊者發送8個比特。
舉個例子,可以使用ipv4資料標頭的服務類型(tos)字段滲漏1個比特。然而,在windows工作站上,tos值是被設為0的,将之修改為1可能會引發報警。而且,公司還可以通過在防火牆将所有出站資料包的tos置為0,很容易地封鎖住此類攻擊。
一個更有效的技術涉及到web計數器的使用。例如,bit.ly之類的url縮寫服務,可以提供url被通路的次數。攻擊者可以利用此服務,通過在特定時間通路特定url來發出一個0或1的比特。接受者檢查url計數,然後等待發送者在特定時間通路(1)或不通路(0)該url,然後再次檢視計數器以确定是否增量。
該方法不會産生太多噪音,卻很容易被破壞,比如通過攔截bit.ly請求,往bit.ly連結添加“+”标志擷取原始url,直接使用原始url而不用被縮短的連結。隻要阻止了計數器遞增,該攻擊就無效了。
來自youtube和stackoverflow之類網站的計數器也可以被用來發送比特資料。例如,一段冷門視訊或冷門話題的計數器在特定時間的改變,就可以用來發送1或0。不過,專家指出,youtube這樣的網站,有些企業是封禁了的。
完美滲漏
safebreach的研究人員已經找到了他們認為的完美滲漏方式。科特勒和克萊恩描述了這種依賴于http伺服器端緩存過程的方法。
攻擊者首先需要找到一個有很多頁面被動态緩存的流行網站。電商網站是理想選擇,但為了避免引起懷疑,所選網站應符合目标企業的形象。
很多網站都會為了提高性能而緩存html頁面,而頁面的緩存時間通常可以從http響應標頭擷取到。在科特勒和克萊恩描述的攻擊場景裡,發送者和接收者協商好一個頁面(必須不熱門,以免被該網站的普通使用者幹擾)和時間點。如果發送者沒有在特定時間點通路特定頁面,一個比特0就被發送了,如果特定時間點上确實有對該頁面的http請求,那麼比特1被發送。
接收者可以通過檢查該頁面是否剛剛被緩存,來判斷發送者有沒有通路過此頁面。如果接收者在特定時間點後10秒去通路該頁面,他們就可以判斷頁面是不是剛剛被緩存了(發送者借通路動作發了個1),或者該頁面不過是被接收者自己的通路給緩存了(發送者借無通路動作而發了個0)。
能被用作此類攻擊的網頁簡直多如繁星。研究人員列舉出了宜家官網、英國易捷廉價航空官網、以色列電子商務網站zap.co.il等。
safebreach釋出了一個自動化此類攻擊的概念驗證(poc)工具,包含了擷取緩存時間資訊,在特定時間點通路預定義的url來判斷發送者是在發0還是1等動作。當然,該方法也可以被惡意内部人士手動執行。
在科特勒和克萊恩看來,這種方法可被歸類為完美滲漏,因為符合所有“十誡”要求。比如說,不同域名的不同url可被用作每個比特的發送途徑,這樣一來,即使防禦者發現了之前使用的url,也阻止不了攻擊繼續。
這種滲漏方法還特别高效,因為它隻使用正常的web流量,不需要額外的軟體,如果請求是以不規則的長間隔發送,而且發送者不與接受者直接通信,網絡監測系統還不太可能找到什麼可疑的東西。為確定滲漏資料的完整性,避免掉線和其他因素造成的幹擾,發送者可以用“01”序列代表比特0,用“10”序列代表比特1。
盡管可以将這種方法認為是完美滲漏,研究人員指出,需要考慮的因素還有幾個。例如,網站總是在改變,是以,如果能有個更新url的機制,會比較理想。發送者和接受者的時鐘同步也對該方法能否有效實作起着非常重要的作用。
攻擊者還必須確定所利用的網站和發送時間點要能混雜在目标公司的正常流量中。研究人員強調,如果網站采用多個緩存伺服器,或者依賴于地理ip分發,這種攻擊可能失效。
檢測和挫敗此類攻擊的一種可能方法,就是攔截所有http請求,延遲幾秒鐘,檢視目标頁面是否被接收者通路。但是,這麼幹會對使用者體驗造成負面影響,因為每個請求都被延遲了(舉個例子:如果接收者在10秒後通路頁面,每個請求就得被延遲至少11秒)。
如今該方法細節已被披露,甚至poc工具都釋出了,會不會被惡意行為人濫用呢?科特勒和克萊恩解釋道,他們的目的是幫助防禦者找到檢測和封鎖滲漏的技術。畢竟,即使沒有他倆,攻擊者自己也可能想出此類滲漏方法。
safebreach對業界提出了挑戰,能不能找到可被用于大量資料的完美滲漏方法呢?能不能找出抵禦該公司的完美滲漏提案的有效辦法呢?
本文轉自d1net(轉載)