镣铐之舞:美团安全工程师Black Hat USA演讲
背景
2018年8月9日,全球頂級安全會議——Black Hat USA在美國拉斯維加斯的曼德勒海灣會議中心落下了帷幕,這場盛會在全球黑客心中幾乎等同于“世界杯”和“奧斯卡”一樣的存在。這場一年一度的盛會已經(jīng)有著21年的悠久歷史,也被公認為世界信息安全行業(yè)的最高盛會之一。
作為在國內(nèi)安全領(lǐng)域擁有多年的實戰(zhàn)經(jīng)驗和技術(shù)積累的安全團隊,美團安全研究院再次受邀參加了本次盛會。在議題通過率不足20%的嚴苛篩選條件下,美團安全工程師Ju Zhu與小伙伴一起帶著本次演講的議題“Art of Dancing with Shackles: Best Practice of App Store Malware Automatic Hunting System(App Store惡意代碼自動捕獲系統(tǒng)最佳實踐)”,榮登Black Hat USA 2018的國際舞臺。
議題解讀
Apple的iOS系統(tǒng)是所有流行操作系統(tǒng)中最安全的系統(tǒng)之一,正因為如此,也是黑客重要的攻擊目標(biāo)和研究對象。雖然攻擊難度大,但一旦成功,所獲得的商業(yè)價值非常之高,所以iOS系統(tǒng)備受黑客“青睞”。
因為蘋果的商業(yè)模式比較特別,而且iOS系統(tǒng)并非開源系統(tǒng),同時Apple高度重視安全,所以對iOS系統(tǒng)進行了周密的安全設(shè)計,這使iOS系統(tǒng)的安全性遠超其他操作系統(tǒng)。安全界對于大規(guī)模自動化捕獲該平臺的高級威脅,一直面臨困難和挑戰(zhàn),同時當(dāng)終端用戶遭受真正的APT攻擊(如PEGASUS)時,防御檢測解決方案也無法獲得足夠的權(quán)限來檢測深層攻擊,甚至都無法獲得足夠的信息。
本議題正是在這個方向經(jīng)過深入研究做了突破性的進展,成功設(shè)計出一套可大規(guī)模自動獲取應(yīng)用樣本的Crawl系統(tǒng),通過使用基于Raspberry Pi構(gòu)建集群實現(xiàn)了低成本、可擴展的安全沙箱自動分析系統(tǒng),最終實現(xiàn)了自動化收集樣本并對樣本進行自動化安全分析的APT攻擊捕獲及分析系統(tǒng)。
首先,我們先來看一下這個系統(tǒng)的整體架構(gòu)。
系統(tǒng)整體架構(gòu)
實際上,整個iOS惡意軟件Hunt系統(tǒng)基本上分為兩個不同的部分:
第一部分,是App Crawl系統(tǒng),主要用于從App Store收集新發(fā)布或現(xiàn)有的應(yīng)用程序。當(dāng)然作為感染鏈源之一,還會收集來自第三方App Store甚至公共惡意軟件存儲庫(例如Virus Total)的應(yīng)用程序以增強我們的惡意軟件數(shù)據(jù)庫。除應(yīng)用程序外,其他潛在的惡意文件類型(如Profile)也是我們的收集目標(biāo),(可以參考我在BlackHat Asia 2018中關(guān)于”野外iOS Profile攻擊“的名為“Death Profile”的文章)。
另一部分,是沙盒分析系統(tǒng),主要是動態(tài)跟蹤應(yīng)用程序行為,并根據(jù)規(guī)則決策引擎關(guān)聯(lián)行為日志以給出最終結(jié)果。實際上,沙盒系統(tǒng)包含不同的類型,包括基于Frida的iOS真實設(shè)備、ARM服務(wù)器的用戶模式仿真(例如Raspberry Pi系統(tǒng))以及完整的系統(tǒng)仿真VM。
系統(tǒng)構(gòu)成
具體來說,整個系統(tǒng)主要由五個模塊構(gòu)成。
那么,它們是怎么有效的運轉(zhuǎn)起來的呢?
系統(tǒng)運行流程
- 首先,通過自動化爬蟲系統(tǒng)構(gòu)建相應(yīng)的登錄、購買、下載操作,從iTunes服務(wù)器抓取應(yīng)用程序,并發(fā)送給Crack系統(tǒng)。之后Crack系統(tǒng)將解密Apple的DRM,并生成可在越獄設(shè)備和模擬器上運行的IPA文件。
- 然后,構(gòu)建IPA運行環(huán)境暨沙盒分析系統(tǒng),我們引入了兩個解決方案,第一個是傳統(tǒng)的在真正越獄設(shè)備上分析這些應(yīng)用程序;第二個是創(chuàng)新的使用了基于Raspberry Pi的模擬器集群來運行并分析應(yīng)用程序。
- 最后,使用基于開源的Frida框架,經(jīng)過定制化的開發(fā),動態(tài)跟蹤每個IPA應(yīng)用程序的行為,再通過決策引擎檢查IPA是否為惡意應(yīng)用,是否可能存在APT攻擊。
下面,我們將基于各個模塊的分解來詳談它們的運作模式。
首先,App Store應(yīng)用程序的Crawl基本可以理解為iTunes協(xié)議的灰盒逆向工程。
經(jīng)過研究,我們發(fā)現(xiàn)在PC主機上通過iTunes實現(xiàn)App Store Crawl的基本步驟包括以下幾個方面:
- 第一步,是抓取目標(biāo)應(yīng)用的Meta數(shù)據(jù),例如名稱、類別、大小等等。
- 第二步,是使用Apple ID登錄,購買產(chǎn)品,使用iTunes授權(quán)PC端,以滿足應(yīng)用下載的要求,并將應(yīng)用保存到本地磁盤。這里,我們必須使用很多技巧來征服App Store的反爬機制。
- 最后一步,是破解下載的應(yīng)用程序。由于App Store上的所有應(yīng)用程序都由Apple打包,這顯然會阻止廠商基于安全方面的動靜態(tài)分析,因此需要將目標(biāo)應(yīng)用程序的運行時內(nèi)存轉(zhuǎn)儲為普通代碼。
因此,基于上面的流程,我們可以設(shè)計成以下架構(gòu)。
自動Crawl & Crack系統(tǒng)架構(gòu)
從架構(gòu)圖來看,該系統(tǒng)實現(xiàn)的功能,包括應(yīng)用程序Meta信息Crawl、Apple ID登錄、PC授權(quán)、iOS設(shè)備授權(quán)、IPA簽名和安裝后的Crack。它實際上是一個基于iTunes Store應(yīng)用程序的自動系統(tǒng)。
App Meta信息Crawler負責(zé)獲取應(yīng)用程序詳細信息,包括下載URL和價格信息。應(yīng)用下載抓取工具可以通過這些網(wǎng)址自動下載應(yīng)用。然后,這些應(yīng)用程序?qū)l(fā)送到每個越獄設(shè)備進行解密,這將用于以后的靜態(tài)和動態(tài)分析。
自動Crawl系統(tǒng)
對于Crawl系統(tǒng),我們可以分為三個部分來運作。
我們都知道,從App Store下載的App是加密的。這樣不利于我們使用越獄設(shè)備和模擬器來分析行為,所以還需要對IPA進行解密。下面我們說一下,Crack系統(tǒng)的技術(shù)要點。
App Crack系統(tǒng)
如果用戶的帳戶從來沒有在iOS設(shè)備上登錄過,則它購買的App是無法在該設(shè)備上運行的,即DRM保護。 如果在一臺設(shè)備上,用戶登錄了自己的帳戶,Apple會認為用戶授權(quán)此設(shè)備,而使用該帳戶購買的一切應(yīng)用程序則可安裝、也可運行。但是我們需要讓這一切變得自動化。
通過逆向“設(shè)置”程序,我們發(fā)現(xiàn)“StoreServices.framework”是用來管理賬戶信息的,最后我們做了一個Tweak,并配合Undocument API實現(xiàn)了Apple ID登錄過程。
我們有了大量待分析的樣本,下面的工作就是靜態(tài)和動態(tài)分析。業(yè)界對于靜態(tài)分析已經(jīng)非常成熟,比如MachOView等等,這里我們就不多介紹了。而動態(tài)分析,目前主要以基于Frida的系統(tǒng)居多。
Frida是一個功能強大且便攜的Hook系統(tǒng),支持移動(例如iOS和Android)和PC系統(tǒng)(例如MacOS)。更重要的是,它允許在沒有配置和編譯的情況下根據(jù)腳本(例如JavaScript)控制Hook點。所以說,它是目前最流行的動態(tài)分析框架系統(tǒng)。當(dāng)然它們都必須依賴真機設(shè)備。
接下來,我們來介紹一下傳統(tǒng)的基于真機(iOS設(shè)備)的沙盒系統(tǒng)。
沙盒分析系統(tǒng)
傳統(tǒng)的基于真機(iOS設(shè)備)沙盒系統(tǒng)
從上圖來看,這種基于Frida實現(xiàn)真機(iOS設(shè)備)沙盒系統(tǒng)的工作流程主要包括以下幾個方面:
- 首先,給iOS設(shè)備配置Frida,目的是為了進行行為跟蹤;
- 然后,Frida控制器模塊將在iOS設(shè)備上觸發(fā)樣本運行,或者其他任何操作(例如:安裝配置文件,使用瀏覽器訪問網(wǎng)站等),并跟蹤感興趣的系統(tǒng)行為;
- 最后,將行為日志收集到主機端,該日志將成為決策引擎系統(tǒng)的輸入,它會根據(jù)需要,實時或非實時地判斷樣本行為。
雖然Frida一直是App動態(tài)檢測的主流,但是如果我們需要檢測大量樣本或者大量Case時,則會出現(xiàn)嚴重瓶頸,因為面臨大量的真機(iOS設(shè)備)投入,而且成本、擴展性都是致命問題,所以我們創(chuàng)新的使用了低成本Raspberry Pi來替代它,并成功的實現(xiàn)了虛擬化、集群化。
基于Raspberry Pi的iOS虛擬機
在虛擬化方面,我們實現(xiàn)了一個動態(tài)加載器,它可以加載iOS可執(zhí)行文件,并重新實現(xiàn)了System Library和Framework,以保證iOS可執(zhí)行文件能夠正常運行等等。
這樣我們就可以輕松動態(tài)監(jiān)控Mach-O的行為,并將這些日志提交給決策引擎,以確定該應(yīng)用程序是否為惡意軟件,甚至是否是APT攻擊的一個Chain等等。
如果希望利用現(xiàn)有的服務(wù)器來運維,我們也可以將其移植到QEMU中運行。
通過這種“低成本硬件仿真器”的設(shè)計,每天都可以自動化掃描大量的樣本,從而節(jié)省了成本,并提升了可擴展性,提高了樣本的檢測效率。
這種高效的沙盒分析系統(tǒng),必然會產(chǎn)生大量的分析日志,所以,我們需要一種高性能、高實時性的規(guī)則決策引擎系統(tǒng)來做最后的判斷處理。
決策引擎系統(tǒng)
Nools是一個基于Rete并使用JavaScript實現(xiàn)的規(guī)則引擎推理系統(tǒng)。它可以支持連續(xù)日志輸入時的實時判斷模式,而且用其編寫的決策規(guī)則,具有強靈活性和可移植性,使得我們對于樣本的檢測獲得了高可用性。
總結(jié)
一直以來,業(yè)界對于“iOS大量樣本檢測實現(xiàn)自動化Hunt高級威脅”都沒有很好的實踐,而我們已經(jīng)證明了基于自動抓取、安全沙箱自動分析系統(tǒng)以及iOS虛擬化的高級威脅Hunt系統(tǒng)的可行性。而這樣大量的樣本檢測Case和日志,也為以后我們引入AI系統(tǒng)提供了必要條件。
關(guān)于美團安全
美團安全部的大多數(shù)核心人員,擁有多年互聯(lián)網(wǎng)以及安全領(lǐng)域?qū)嵺`經(jīng)驗,很多同學(xué)參與過大型互聯(lián)網(wǎng)公司的安全體系建設(shè),其中也不乏全球化安全運營人才,具備百萬級IDC規(guī)模攻防對抗的經(jīng)驗。安全部也不乏CVE“挖掘圣手”,有受邀在Black Hat等國際頂級會議發(fā)言的講者,當(dāng)然還有很多漂亮的運營妹子。
目前,美團安全部涉及的技術(shù)包括滲透測試、Web防護、二進制安全、內(nèi)核安全、分布式開發(fā)、大數(shù)據(jù)分析、安全算法等等,同時還有全球合規(guī)與隱私保護等策略制定。我們正在建設(shè)一套百萬級IDC規(guī)模、數(shù)十萬終端接入的移動辦公網(wǎng)絡(luò)自適應(yīng)安全體系,這套體系構(gòu)建于零信任架構(gòu)之上,橫跨多種云基礎(chǔ)設(shè)施,包括網(wǎng)絡(luò)層、虛擬化/容器層、Server 軟件層(內(nèi)核態(tài)/用戶態(tài))、語言虛擬機層(JVM/JS V8)、Web應(yīng)用層、數(shù)據(jù)訪問層等,并能夠基于“大數(shù)據(jù)+機器學(xué)習(xí)”技術(shù)構(gòu)建全自動的安全事件感知系統(tǒng),努力打造成業(yè)界最前沿的內(nèi)置式安全架構(gòu)和縱深防御體系。
隨著美團的高速發(fā)展,業(yè)務(wù)復(fù)雜度不斷提升,安全部門面臨更多的機遇和挑戰(zhàn)。我們希望將更多代表業(yè)界最佳實踐的安全項目落地,同時為更多的安全從業(yè)者提供一個廣闊的發(fā)展平臺,并提供更多在安全新興領(lǐng)域不斷探索的機會。
招聘信息
美團安全部正在招募Web&二進制攻防、后臺&系統(tǒng)開發(fā)、機器學(xué)習(xí)&算法等各路小伙伴。如果你想加入我們,歡迎簡歷請發(fā)至郵箱zhaoyan17@meituan.com
具體職位信息可參考這里:https://mp.weixin.qq.com/s/ynEq5LqQ2uBcEaHCu7Tsiw
美團安全應(yīng)急響應(yīng)中心MTSRC主頁:security.meituan.com
總結(jié)
以上是生活随笔為你收集整理的镣铐之舞:美团安全工程师Black Hat USA演讲的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BP算法是从天上掉下来的吗?
- 下一篇: Java多线程系列(五):线程池的实现原