鐐銬之舞:美團安全工程師Black Hat USA演講

背景

2018年8月9日,全球頂級安全會議——Black Hat USA在美國拉斯維加斯的曼德勒海灣會議中心落下了帷幕,這場盛會在全球黑客心中幾乎等同於「世界盃」和「奧斯卡」同樣的存在。這場一年一度的盛會已經有着21年的悠久歷史,也被公認爲世界信息安全行業的最高盛會之一。ios

做爲在國內安全領域擁有多年的實戰經驗和技術積累的安全團隊,美團安全研究院再次受邀參加了本次盛會。在議題經過率不足20%的嚴苛篩選條件下,美團安全工程師Ju Zhu與小夥伴一塊兒帶着本次演講的議題「Art of Dancing with Shackles: Best Practice of App Store Malware Automatic Hunting System(App Store惡意代碼自動捕獲系統最佳實踐)」,榮登Black Hat USA 2018的國際舞臺。算法

議題解讀

Apple的iOS系統是全部流行操做系統中最安全的系統之一,正由於如此,也是黑客重要的攻擊目標和研究對象。雖然攻擊難度大,但一旦成功,所得到的商業價值很是之高,因此iOS系統備受黑客「青睞」。數據庫

由於蘋果的商業模式比較特別,並且iOS系統並不是開源系統,同時Apple高度重視安全,因此對iOS系統進行了周密的安全設計,這使iOS系統的安全性遠超其餘操做系統。安全界對於大規模自動化捕獲該平臺的高級威脅,一直面臨困難和挑戰,同時當終端用戶遭受真正的APT攻擊(如PEGASUS)時,防護檢測解決方案也沒法得到足夠的權限來檢測深層攻擊,甚至都沒法得到足夠的信息。瀏覽器

本議題正是在這個方向通過深刻研究作了突破性的進展,成功設計出一套可大規模自動獲取應用樣本的Crawl系統,經過使用基於Raspberry Pi構建集羣實現了低成本、可擴展的安全沙箱自動分析系統,最終實現了自動化收集樣本並對樣本進行自動化安全分析的APT攻擊捕獲及分析系統。安全

首先,咱們先來看一下這個系統的總體架構。服務器

系統總體架構

實際上,整個iOS惡意軟件Hunt系統基本上分爲兩個不一樣的部分:微信

  • 第一部分,是App Crawl系統,主要用於從App Store收集新發布或現有的應用程序。固然做爲感染鏈源之一,還會收集來自第三方App Store甚至公共惡意軟件存儲庫(例如Virus Total)的應用程序以加強咱們的惡意軟件數據庫。除應用程序外,其餘潛在的惡意文件類型(如Profile)也是咱們的收集目標,(能夠參考我在BlackHat Asia 2018中關於」野外iOS Profile攻擊「的名爲「Death Profile」的文章)。網絡

  • 另外一部分,是沙盒分析系統,主要是動態跟蹤應用程序行爲,並根據規則決策引擎關聯行爲日誌以給出最終結果。實際上,沙盒系統包含不一樣的類型,包括基於Frida的iOS真實設備、ARM服務器的用戶模式仿真(例如Raspberry Pi系統)以及完整的系統仿真VM。架構

系統構成

具體來講,整個系統主要由五個模塊構成。併發

  1. 自動Crawl系統:自動化爬行及抓取各App應用市場的應用程序,包括App Store以及其餘第三方市場,本系統中經過逆向分析成功的實現了自動化的用戶登陸、購買及下載應用程序。
  2. App Crack系統:解密從App Store下載的應用程序,方便沙盒進行動態行爲分析。
  3. 沙盒分析系統:突破傳統基於真機(iOS設備)沙盒的系統設計,創新的使用了基於Raspberry Pi模式和QEMU模式,低成本、可擴展的集羣方式來實現動態監控應用程序的運行行爲,例如File、Network、XPC、IOKit和Profiled等。
  4. 動態跟蹤行爲系統:主要用來收集沙盒系統中所運行樣本的各類監控行爲日誌。
  5. 決策引擎系統:基於開源的Nools系統,實時或非實時地根據監控日誌,來判斷樣本行爲。

那麼,它們是怎麼有效的運轉起來的呢?

系統運行流程

  • 首先,經過自動化爬蟲系統構建相應的登陸、購買、下載操做,從iTunes服務器抓取應用程序,併發送給Crack系統。以後Crack系統將解密Apple的DRM,並生成可在越獄設備和模擬器上運行的IPA文件。
  • 而後,構建IPA運行環境暨沙盒分析系統,咱們引入了兩個解決方案,第一個是傳統的在真正越獄設備上分析這些應用程序;第二個是創新的使用了基於Raspberry Pi的模擬器集羣來運行並分析應用程序。
  • 最後,使用基於開源的Frida框架,通過定製化的開發,動態跟蹤每一個IPA應用程序的行爲,再經過決策引擎檢查IPA是否爲惡意應用,是否可能存在APT攻擊。

下面,咱們將基於各個模塊的分解來詳談它們的運做模式。

首先,App Store應用程序的Crawl基本能夠理解爲iTunes協議的灰盒逆向工程。

通過研究,咱們發如今PC主機上經過iTunes實現App Store Crawl的基本步驟包括如下幾個方面:

  • 第一步,是抓取目標應用的Meta數據,例如名稱、類別、大小等等。
  • 第二步,是使用Apple ID登陸,購買產品,使用iTunes受權PC端,以知足應用下載的要求,並將應用保存到本地磁盤。這裏,咱們必須使用不少技巧來征服App Store的反爬機制。
  • 最後一步,是破解下載的應用程序。因爲App Store上的全部應用程序都由Apple打包,這顯然會阻止廠商基於安全方面的動靜態分析,所以須要將目標應用程序的運行時內存轉儲爲普通代碼。

所以,基於上面的流程,咱們能夠設計成如下架構。

自動Crawl & Crack系統架構

從架構圖來看,該系統實現的功能,包括應用程序Meta信息Crawl、Apple ID登陸、PC受權、iOS設備受權、IPA簽名和安裝後的Crack。它其實是一個基於iTunes Store應用程序的自動系統。

App Meta信息Crawler負責獲取應用程序詳細信息,包括下載URL和價格信息。應用下載抓取工具能夠經過這些網址自動下載應用。而後,這些應用程序將發送到每一個越獄設備進行解密,這將用於之後的靜態和動態分析。

自動Crawl系統

對於Crawl系統,咱們能夠分爲三個部分來運做。

  1. App Meta信息Crawler:App Store是有區域限制的,即區域A的Apple ID沒法下載區域B的應用程序。所以,針對不一樣區域,咱們設計了不一樣的Spider。而得到的Meta信息,包含了App ID、下載地址、圖標和其餘一些基本信息。
  2. App下載Crawler:經過逆向分析多個二進制文件及通信協議,構造Apple ID的登陸及購買請求,能夠自動化下載與「從iTunes客戶端下載的IPA文件」相同的IPA文件。
  3. 導入DRM數據:上面下載的IPA文件,其實是不能直接安裝運行的,由於還缺乏一個Sinf文件,它是一個包含受權等信息的DRM數據文件。對於Apple來講,它們只爲每一個應用程序保留了一份Copy。當用戶購買App時,服務器將動態生成DRM信息,並將其放入應用程序購買的響應數據中發送回來。以後iTunes或者App Store將負責把DRM數據從新打包到IPA文件中。所以,咱們僅需簡單地將以前得到「Sinf數據」保存並下載到IPA文件中便可。

咱們都知道,從App Store下載的App是加密的。這樣不利於咱們使用越獄設備和模擬器來分析行爲,因此還須要對IPA進行解密。下面咱們說一下,Crack系統的技術要點。

App Crack系統

若是用戶的賬戶歷來沒有在iOS設備上登陸過,則它購買的App是沒法在該設備上運行的,即DRM保護。
若是在一臺設備上,用戶登陸了本身的賬戶,Apple會認爲用戶受權此設備,而使用該賬戶購買的一切應用程序則可安裝、也可運行。可是咱們須要讓這一切變得自動化。

經過逆向「設置」程序,咱們發現「StoreServices.framework」是用來管理帳戶信息的,最後咱們作了一個Tweak,並配合Undocument API實現了Apple ID登陸過程。

咱們有了大量待分析的樣本,下面的工做就是靜態和動態分析。業界對於靜態分析已經很是成熟,好比MachOView等等,這裏咱們就很少介紹了。而動態分析,目前主要以基於Frida的系統居多。

Frida是一個功能強大且便攜的Hook系統,支持移動(例如iOS和Android)和PC系統(例如MacOS)。更重要的是,它容許在沒有配置和編譯的狀況下根據腳本(例如JavaScript)控制Hook點。因此說,它是目前最流行的動態分析框架系統。固然它們都必須依賴真機設備。

接下來,咱們來介紹一下傳統的基於真機(iOS設備)的沙盒系統。

沙盒分析系統

傳統的基於真機(iOS設備)沙盒系統

從上圖來看,這種基於Frida實現真機(iOS設備)沙盒系統的工做流程主要包括如下幾個方面:

  • 首先,給iOS設備配置Frida,目的是爲了進行行爲跟蹤;
  • 而後,Frida控制器模塊將在iOS設備上觸發樣本運行,或者其餘任何操做(例如:安裝配置文件,使用瀏覽器訪問網站等),並跟蹤感興趣的系統行爲;
  • 最後,將行爲日誌收集到主機端,該日誌將成爲決策引擎系統的輸入,它會根據須要,實時或非實時地判斷樣本行爲。

雖然Frida一直是App動態檢測的主流,可是若是咱們須要檢測大量樣本或者大量Case時,則會出現嚴重瓶頸,由於面臨大量的真機(iOS設備)投入,並且成本、擴展性都是致命問題,因此咱們創新的使用了低成本Raspberry Pi來替代它,併成功的實現了虛擬化、集羣化。

基於Raspberry Pi的iOS虛擬機

在虛擬化方面,咱們實現了一個動態加載器,它能夠加載iOS可執行文件,並從新實現了System Library和Framework,以保證iOS可執行文件可以正常運行等等。

這樣咱們就能夠輕鬆動態監控Mach-O的行爲,並將這些日誌提交給決策引擎,以肯定該應用程序是否爲惡意軟件,甚至是不是APT攻擊的一個Chain等等。

若是但願利用現有的服務器來運維,咱們也能夠將其移植到QEMU中運行。

經過這種「低成本硬件仿真器」的設計,天天均可以自動化掃描大量的樣本,從而節省了成本,並提高了可擴展性,提升了樣本的檢測效率。

這種高效的沙盒分析系統,必然會產生大量的分析日誌,因此,咱們須要一種高性能、高實時性的規則決策引擎系統來作最後的判斷處理。

決策引擎系統

Nools是一個基於Rete並使用JavaScript實現的規則引擎推理系統。它能夠支持連續日誌輸入時的實時判斷模式,並且用其編寫的決策規則,具備強靈活性和可移植性,使得咱們對於樣本的檢測得到了高可用性。

總結

一直以來,業界對於「iOS大量樣本檢測實現自動化Hunt高級威脅」都沒有很好的實踐,而咱們已經證實了基於自動抓取、安全沙箱自動分析系統以及iOS虛擬化的高級威脅Hunt系統的可行性。而這樣大量的樣本檢測Case和日誌,也爲之後咱們引入AI系統提供了必要條件。

關於美團安全

美團點評集團安所有的大多數核心開發人員,擁有多年互聯網以及安全領域實踐經驗,不少同窗參與過大型互聯網公司的安全體系建設,其中也不乏全球化安全運營人才,具有百萬級IDC規模攻防對抗的經驗。安所有也不乏CVE「挖掘聖手」,還有不少受邀在Black Hat等國際頂級會議發言的講者,固然還有不少漂亮的運營妹子。

目前,美團點評安所有涉及的技術包括滲透測試、Web防禦、二進制安全、內核安全、分佈式開發、大數據分析、安全算法等等,同時還有全球合規與隱私保護等策略制定。咱們正在建設一套百萬級IDC規模、數十萬終端接入的移動辦公網絡自適應安全體系,這套體系構建於零信任架構之上,橫跨多種雲基礎設施,包括網絡層、虛擬化/容器層、Server 軟件層(內核態/用戶態)、語言虛擬機層(JVM/JS V8)、Web應用層、數據訪問層等,並可以基於大數據+機器學習技術構建全自動的安全事件感知系統,努力打形成業界最前沿的內置式安全架構和縱深防護體系。

隨着美團點評的高速發展,業務複雜度不斷提高,安所有門面臨更多的機遇和挑戰。咱們但願將更多表明業界最佳實踐的安全項目落地,同時爲更多的安全從業者提供一個廣闊的發展平臺,並提供更多在安全新興領域不斷探索的機會。

美團安全2018秋季招新開始啦!這裏有數據安全、Web安全、移動安全、IT安全、滲透測試、安全研究、隱私保護合規、產品研發等十餘個熱門崗位歡迎你的加入,詳情戳這裏。簡歷請投至 zhaoyan17@meituan.com

發現文章有錯誤、對內容有疑問,均可以關注美團技術團隊微信公衆號(meituantech),在後臺給咱們留言。咱們每週會挑選出一位熱心小夥伴,送上一份精美的小禮品。快來掃碼關注咱們吧!

相關文章
相關標籤/搜索