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。架構
具體來講,整個系統主要由五個模塊構成。併發
那麼,它們是怎麼有效的運轉起來的呢?
下面,咱們將基於各個模塊的分解來詳談它們的運做模式。
首先,App Store應用程序的Crawl基本能夠理解爲iTunes協議的灰盒逆向工程。
通過研究,咱們發如今PC主機上經過iTunes實現App Store Crawl的基本步驟包括如下幾個方面:
所以,基於上面的流程,咱們能夠設計成如下架構。
從架構圖來看,該系統實現的功能,包括應用程序Meta信息Crawl、Apple ID登陸、PC受權、iOS設備受權、IPA簽名和安裝後的Crack。它其實是一個基於iTunes Store應用程序的自動系統。
App Meta信息Crawler負責獲取應用程序詳細信息,包括下載URL和價格信息。應用下載抓取工具能夠經過這些網址自動下載應用。而後,這些應用程序將發送到每一個越獄設備進行解密,這將用於之後的靜態和動態分析。
對於Crawl系統,咱們能夠分爲三個部分來運做。
咱們都知道,從App Store下載的App是加密的。這樣不利於咱們使用越獄設備和模擬器來分析行爲,因此還須要對IPA進行解密。下面咱們說一下,Crack系統的技術要點。
若是用戶的賬戶歷來沒有在iOS設備上登陸過,則它購買的App是沒法在該設備上運行的,即DRM保護。
若是在一臺設備上,用戶登陸了本身的賬戶,Apple會認爲用戶受權此設備,而使用該賬戶購買的一切應用程序則可安裝、也可運行。可是咱們須要讓這一切變得自動化。
經過逆向「設置」程序,咱們發現「StoreServices.framework」是用來管理帳戶信息的,最後咱們作了一個Tweak,並配合Undocument API實現了Apple ID登陸過程。
咱們有了大量待分析的樣本,下面的工做就是靜態和動態分析。業界對於靜態分析已經很是成熟,好比MachOView等等,這裏咱們就很少介紹了。而動態分析,目前主要以基於Frida的系統居多。
Frida是一個功能強大且便攜的Hook系統,支持移動(例如iOS和Android)和PC系統(例如MacOS)。更重要的是,它容許在沒有配置和編譯的狀況下根據腳本(例如JavaScript)控制Hook點。因此說,它是目前最流行的動態分析框架系統。固然它們都必須依賴真機設備。
接下來,咱們來介紹一下傳統的基於真機(iOS設備)的沙盒系統。
從上圖來看,這種基於Frida實現真機(iOS設備)沙盒系統的工做流程主要包括如下幾個方面:
雖然Frida一直是App動態檢測的主流,可是若是咱們須要檢測大量樣本或者大量Case時,則會出現嚴重瓶頸,由於面臨大量的真機(iOS設備)投入,並且成本、擴展性都是致命問題,因此咱們創新的使用了低成本Raspberry Pi來替代它,併成功的實現了虛擬化、集羣化。
在虛擬化方面,咱們實現了一個動態加載器,它能夠加載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),在後臺給咱們留言。咱們每週會挑選出一位熱心小夥伴,送上一份精美的小禮品。快來掃碼關注咱們吧!