freeBuf
主站

分類

漏洞 工具 極客 Web安全 系統安全 網絡安全 無線安全 設備/客戶端安全 數據安全 安全管理 企業安全 工控安全

特色

頭條 人物志 活動 視頻 觀點 招聘 報告 資訊 區塊鏈安全 標準與合規 容器安全 公開課

官方公眾號企業安全新浪微博

FreeBuf.COM網絡安全行業門戶,每日發布專業的安全資訊、技術剖析。

FreeBuf+小程序

FreeBuf+小程序

漏洞之王:漫談高階漏洞攻防演進和現實威脅
2019-11-24 22:06:43

近期,我們邀請資深安全專家在“金融業企業安全建設實踐”微信群,進行在線直播分享。本期,我們邀請到的嘉賓是何淇丹(Flanker)來給大家分享高階漏洞攻防演進和現實威脅。如需查閱更多嘉賓分享,請文末公眾號。

【活動預告】漏洞之王:漫談高階漏洞攻防演進和現實威脅

【分享嘉賓】何淇丹(Flanker)

【嘉賓簡介】畢業于浙江大學少年班和香港科技大學,藍蓮花戰隊早期核心成員,前騰訊科恩實驗室高級研究員,資深安全專家,現任某美股上市公司安全總監。專注于安全攻防研究和大規模應用、系統安全防御體系研究建設。曾獲Pwn2Own Mobile和PC雙料冠軍、BlackHat Pwnie Award最佳客戶端漏洞提名、Master of Pwn稱號,Google Android Security Top Researcher稱號。多次在BlackHat & DEFCON & CanSecWest & RECon & PoC & QCON等發表演講。

【活動時間】11月15日周五晚上20:00-21:00,60分鐘

【活動形式】嘉賓通過文字形式,在“金融業企業安全建設實踐”微信群內就“漏洞之王:漫談高階漏洞攻防演進和現實威脅”話題直播分享(約四十鐘),之后是互動提問和回答,約二十分鐘

請大家安排好時間,準備好問題,積極參與。

---------------------------------------------------------------

下是實錄:

大家好,我是Flanker。很榮幸受君哥邀請,來為大家分享一些從底層攻擊的角度回頭看防御的想法----


漏洞之王:漫談高階端漏洞攻防演進和現實威脅

?

為什么取這個標題?在這里解釋一下:

傳統的端點入侵方式依賴于釣魚網站或文檔、可執行文件、CHM等作為載體,欺騙沒有防御意識的目標主動下載和執行,或泄露自己的認證憑據。針對警惕性高的目標或成熟組織,這套方法存在很大的局限性。

高階端漏洞通過多個無交互漏洞鏈組合,目標可能在完全無感的情況下設備即被控制,造成機密數據泄露或成為進一步滲透的跳板。

Flanker

故稱之為漏洞之王

?

在每年的Pwn2Own大賽中,研究者都會針對最新設備演示此類攻擊,并和ZDI合作及時將發現的這些0day報告給廠商,像Google Bug Bounty Program最高可為一套完整的利用鏈支付20萬美元,而國內這兩年組織舉辦了對標Pwn2Own的天府杯大賽,獎金更甚于Pwn2Own。而在漏洞軍火市場中,這些漏洞則可能會以0day的身份成為軍火庫的一部分,價值更是水漲船高。

?

根據 what - how -why 原則,我們現在來展開:

1、What - See what your enemy can do

NSOGroup就是其中的佼佼者,其銷售的取證工具包Pegasus號稱遠程情況下,無需點擊/一次點擊(目標打開郵件、鏈接或接收消息)即可獲取目標手機最高權限,每套售價1000萬-5000萬美元,對外銷售要先取得以色列軍火出口許可。

龐大嚴密的商業化精密機器,將天才精妙的漏洞挖掘、漏洞利用轉換為如**般高度工業化的精確武器。Flanker

我們先看下wikileaks披露的2013年pegasus的產品說明書,看下他們2013年做到了什么樣的水平。

?

1574604044_5dda8d0c6a3cd.jpg!small

1574604050_5dda8d12b126b.jpg!small

在此給大家幾分鐘來閱讀下這兩張圖片:

?

1574604056_5dda8d1812110.jpg!small

?

1574604062_5dda8d1e37bfe.jpg!small

Peagus可以幫助操作人員在只知道對方手機號或者郵件地址的情況下,通過直接推送攻擊消息觸發漏洞,或者推送攻擊鏈接,目標打開后觸發漏洞,從而獲得其移動設備的所有權限,持續性讀取檢測短信、相冊、位置、瀏覽記錄等等,實現全自動化遠程攻擊和監控。

看起來非常的神奇,那么這種攻擊是如何實現的?

2、How - how do they do it?

任何人類編寫的軟件都會有漏洞,具體到移動設備上,以下的遠程入口都是可以攻擊的:

  • Browser

  • SMS/MMS/iMessage

  • IM(WhatsApp, Facetime, Wechat,Facebook等)

  • Wifi

  • Baseband

以被研究最多的瀏覽器為例,現代網頁日趨復雜,又對性能有著很高的要求,靈活的JS和HTML相關最終都會落到本地代碼(C++)來進行解析渲染,這自然導致了各種內存破壞漏洞的層出不窮。目前最流行的瀏覽器引擎, Google V8 + Blink的代碼庫絕大部分由C++編寫,checkout之后源代碼庫高達數G,

即使強如Google,超過25000臺機器組成的clusterfuzz集群24/7進行fuzz測試,也無法完全杜絕漏洞的發生。Flanker

?

例如CVE-2016-5198: V8為了加快JS引擎的執行速度,會將JS中的熱點區域通過編譯器優化和預測技術預先翻譯成本地機器碼,同時根據預測的信息略去必要的邊界檢查以提升效率。但如果發現函數不滿足預測,則會回退到解釋模式重新翻譯。其中的一個模式是誰修改了對象,誰負責標記通知其他使用函數進行優化。

?

而這個漏洞就在于一個悖論,如果修改對象的函數本身也被JIT了會怎么樣?在上述這種情況下,v8的JIT引擎出現了屬性訪問的混淆。在復雜的內存布局之后,我們將其轉換為一個越界漏洞,修改了一個js arraybuffer的長度,實現全地址讀寫和shellcode執行,進而獲得了瀏覽器渲染進程內的任意代碼執行,最終需要的內存布局如下圖所示。這也是我們在Mobile Pwn2Own 2016中攻破Nexus所使用的三個漏洞之一。

1574604071_5dda8d273401a.jpg!small

?

但這個故事到這里遠沒有結束。在早些年瀏覽器的問題頻繁出現后,各大廠商很快開始追尋一個守則:

let's confine software, so even it's compromised it only hasrestricted access to the system,即最小權限最大分割原則.?

在消滅漏洞之外,通過不同層次的沙箱限制漏洞被利用后所能獲得的權限。Google采取的是多進程分立,通過IPC、代理機制,將復雜的代碼限制在嚴格的沙箱中,沙箱內只能訪問很有限的外部服務、內核調用,無法獲取到任何信息,甚至連動態庫都不能加載等等。

?

Chrome采取的沙盒架構如下圖所示:

1574604194_5dda8da29a654.jpg!small

safari則如下:

?

1574604206_5dda8dae6967e.jpg!small

攻擊者必須找到一個或多個額外的漏洞來實現沙箱逃逸,例如攻擊broker、攻擊有限的內核系統調用、系統服務等。

?

在macOS/iOS上,在攻破了Safari renderer之后,攻擊者需要進一步審計和fuzz Safari沙箱內可以調用到的內核入口(驅動服務,MIG調用,privileged servers等)。Android生態則更為復雜些:對于標準設備(例如Pixel,Nexus等),攻擊者需要尋找Chrome sandbox中能夠觸及到的組件(例如binder服務、Chrome broker、內核漏洞等)。而對于非標準設備而言,由于其他廠商對設備安全的掌控能力沒有Google那么強,通常會給攻擊者帶來意外的驚喜。

?

除了沙箱之外,現代操作系統和編譯器上在初代的ASLR DEP stack cookie等防御上,又不斷增加了SMEP/SMAP、PXN、CFG、CFI甚至于最近ARM 8.3引入的Pointer Authentication等。這也對漏洞的品相和利用提出了挑戰,導致漏洞發現和利用的難度和價格水漲船高。

?

2016年Pwn2Own我們使用的CVE-2016-1815,通過fuzz我們發現macOS/iOS顯卡驅動在處理特定的矩陣轉換會出現4字節的寫IEEE754浮點數的錯位,為了繞過kASLR、SMEP/SMAP的防御,我們最終把內存布局成了下面這個樣子:

?

1574604212_5dda8db4bb24f.jpg!small

?

在2017年Mobile Pwn2Own上,我們在Samsung Galaxy S8上綜合了7個漏洞,分別攻破了V8引擎、Samsung Internet Browser沙箱、Android沙箱,達到最終控制目標手機的結果。

?

回到實際的場景中,2016年被披露的NSOGroup Trident攻擊鏈利用了CVE-2016-4655,4656,4657,包括一個safari漏洞、一個內核信息泄漏漏洞和一個內核內存破壞漏洞。

在今年Google TAGworking with Google Project Zero的報告中,同樣披露了一套在野的完整iPhone 0day exploit,組成也基本相同。例如其使用的內核漏洞是CVE-2019-6225(同時由三個獨立方發現),task_swap_mach_voucher處理不當導致ipc_voucher出現UAF,最終fake出task for pid 0,獲得內核任意地址讀寫。Project Zero同樣發現了NSOGroup使用的CVE-2019-2215,Android Binder驅動中的UAF可用于沙箱逃逸并直接獲取內核權限。

?

在瀏覽器之外,其他富功能特性,例如Facetime、iMessage、Whatsapp等最近也成為了被關注的重點。這些漏洞利用通常不再需要繞過復雜的沙箱,而且可能更為隱蔽。例如,NSOGroup曾經利用過Whatsapp的RTCP(音視頻流)功能的堆溢出漏洞,而Project Zero和盤古在今年陸續披露了針對Facetime和iMessage的漏洞利用。這類問題的觸發甚至不需要用戶交互。


3、Why - 為什么這類0day無法被徹底消滅?

現代軟件操作系統和應用是一個復雜的體系,這些問題的根源最終都追溯到馮諾伊曼體系中數據即代碼,代碼即數據的設計原罪上。新的漏洞和利用方式推進著廠商實現新的架構演進和業界引入新的mitigation,新的防御又會促生新的攻擊和利用方式,整體來說攻擊難度是越來越高的。

?

在體系化安全方面,Google明顯勝于Apple一籌,例如Chrome的設計經過不斷的重構,其沙箱體系已經被公認為最難攻破的瀏覽器設計,攻擊面縮減到了極致。而Apple的Safari至今沒能實現分離render和kernel graphics driver。但Android受生態鏈拖累,各個vendor的分支通常不能及時合入上游補丁,反而成為了短板。此外Apple在硬件上下了很多功夫,某種程度上推進硬件mitigation反而更快。

?

”Project Zero’s mission is to make 0day hard”。
Flanker

?

4、相信也是很多人最關注的,回到防御方的角度:

企業應該如何保護自己的高管、關鍵人員和設備免受此類攻擊的威脅?

?

一個較為悲觀的事實是,雖然在PC平臺上EPP、**、EDR等重兵把守,在移動設備上我們尚沒有很好的方式去做到實時監測。但還是有可以做的:

  • MDM方案可以在enterprise級別統一禁用部分功能和應用來有效縮小攻擊面。由于攻擊者可以獲取到內核權限,傳統的類似于Mo****iron的解決方案并不能很好地保護機密數據。

  • TEE技術的定制化發展,將數據保護從normalworld拔高到secure world,可以提高攻擊者的攻擊門檻(當然,TEE也有可能有漏洞)。

  • 受限于移動端的檢測能力,嚴格的網絡隔離和后置barrier同樣是必須的。

?

此外,基于stock Pixel定制的移動設備可以針對性地對弱點組件實施加固,例如在開源社區一直在推進hardened linux kernel的grsecurity (https://github.com/hardenedlinux/grsecurity-101-tutorials/blob/master/kernel_mitigation.md),以及有獨立商業產品的CopperHead OS。這方面的努力在于backport上游較為激進的mitigation,和削減不必要的特性減少攻擊面。

?

當然,很多時候企業更大的問題在于補丁狀態的維持上,非最新的設備會導致攻擊難度大大降低(從0day下降到Nday),但造成的后果卻一樣嚴重。

?

總結:


以上為大家介紹了準軍火化和軍火化高階漏洞利用鏈的組成和演進、其會帶來的現實危害,以及可以防御的幾個角度。

其實這次分享也是希望給大家拓寬下思路,防的角度能借鑒下已有的體系化演進經驗,攻的角度藍軍可以有更多手段。像chrome的沙箱設計,就是非常好的軟件工程安全體系范例。

我們跟國外最大的差距不是防御細節上,而是整個防御體系設計上,包括軟件工程本身教育都缺乏基礎的安全分立概念。其實需要大家的整個水位提升了,才有可能做top sec的東西出現,比如提高軟件設計的防護水平。

這種意識也會反映到內部安全體系建設上,chrome的沙箱 zerotrust 其實都是一脈相承的。

Credits:

本文中內容感謝漏洞相關發現方和KeenLab的相關前同事們。

Reference:

https://googleprojectzero.blogspot.com/2019/01/voucherswap-exploiting-mig-reference.html

https://googleprojectzero.blogspot.com/2019/08/in-wild-ios-exploit-chain-1.html

https://www.blackhat.com/us-19/briefings/schedule/index.html#the-most-secure-browser-pwning-chrome-from--to--16274

https://www.blackhat.com/us-16/briefings/schedule/index.html#subverting-apple-graphics-practical-approaches-to-remotely-gaining-root-3388

https://cansecwest.com/slides/2017/CSW2017_QidanHe-GengmingLiu_Pwning_Nexus_of_Every_Pixel.pdf

http://blogs.#/post/IPC%20Voucher%20UaF%20Remote%20Jailbreak%20Stage%202.html#0x27faketfp0

https://bugs.chromium.org/p/project-zero/issues/detail?id=1942

https://www.blackhat.com/us-19/briefings/schedule/index.html#towards-discovering-remote-code-execution-vulnerabilities-in-apple-facetime-15436

https://www.blackhat.com/us-19/briefings/schedule/index.html#attacking-iphone-xs-max-14444

?

解答環節

1、說到補丁狀態的維持,是否有比較好的監控方式?

如果是Apple Volume Purchase統一采購的,這個可以依托MDM。

Android的問題在于分支廠商太多,本身各個廠商的補丁狀態就不太一致,Google現在其實就在推進繞過vendor直接下發補丁。

---------------------------------------------------------------?

?

2、mo****iron所代表的MDM不行,可以說國內所有所謂的零信任方案(實質是MDM沙箱)或EMM都無法解這個問題,這個理解對嗎?TEE是指?

因為攻擊者完成沙箱逃逸獲得內核權限后,所有用戶態的防御都是無效的了。

TEE是Trustzone,相當于獨立于OS的更高級別world。

---------------------------------------------------------------

3、有個問題想請教一下:對于手機廠商的瀏覽器來說,使用的是chromium內核,官方的漏洞很多更新也比較快。跟隨內核版本升級現實難度太大,只能跟隨打補丁,而補丁又很難做到全覆蓋,有一些是cve,而有一些又是bugid。有啥建議嗎?

?

這個其實之前chromium的commit會附帶testcase的,一般結合asan做一個半自動化的exploitability analysis,可利用度高的需要優先修復。

---------------------------------------------------------------

4、請教大神一個問題,現在單純針對單一企業進行復合0day利用攻擊的案例多嗎?因為也是想搞清楚,單純一般的企業,做好打補丁工作以外,針對0day的縱深防御還需要投入多少 ?

peagus一套賣幾百萬到上千萬,我相信還是有企業值這個價錢的,只是我們不知道而已。

---------------------------------------------------------------

5、請教一下,針對此類攻擊行為,有無可能在僅有數據側發現,也就是省級,市級出口骨干路由上發現,而無終端參與。如可能,實現難度有多大?

這個其實最大的問題在于https,和如何構建一個足夠大的對應移動端虛擬化的沙箱集群。exploit在行為上還是會有特征的。

---------------------------------------------------------------

?

6、對于核心高管,日常的電話、短信、微信聊天,價值就足夠大了。而移動端攻擊, 往往針對的是高價值個人,感覺沒法防護啊。有沒有好的能適合大多數企業的防護建議?

如果純終端的話,其實copperhead os那條路是可能可以走得通的,定制設備。

---------------------------------------------------------------

7、問下flanker,你是怎么走上這條路的?

這個要感謝之前 Keen的老同事們,在合適的時間點遇到了合適的人們,加上自身的興趣。

---------------------------------------------------------------

?

8、問下flanker,從專注技術挖漏洞的技術型人員轉向企業整體的安全負責人,認為其中的困難有哪些?有什么體會?需要注意什么?

這個整體確實感慨還是蠻多的,不過這個問題比較specific,可以私下交流。

---------------------------------------------------------------

9、現在看到的很多apt報告還是基于pc側的比較多,攻擊移動端開展apt的案例多嗎?如果不多,是被什么局限住了?

其實還是感知能力上。

---------------------------------------------------------------

?

10、請教問題:大神分享之后感覺沒什么安全了。那你在安全負責人的角度關注、提升自身企業安全的,安全要提高到什么高度?大多數企業的安全都是合規安全而已。

?

兩位其實提的就又回到那個安全哲學的問題了。。。安全要投入多少價值,要看需要保護的東西有多少價值。

---------------------------------------------------------------


11、這類攻擊是如何發現的?

之前國外披露的NSOGroup的案例一般都是國家級別攻擊。目標在發現異常鏈接或消息后主動聯系相關人士進行了分析,以及Google的Threat Analysis Group在流量中發現的。

---------------------------------------------------------------

12、請問NSOgroup商業化的做法和國內實驗室的做法有什么區別呢?

區別很大,實驗室一般是針對比賽的要求,比如最新版來適配一套exp,比如彈出計算器即可。NSOGroup是一套完整的工具包,包括探針,利用,持續獲取信息,需要考慮現實中各種復雜的情況,在界面和功能上還需要適配執法人員的需求---易用。實驗室要是做到這個程度,其實有風險的,也沒必要。畢竟實驗室只是技術研究,nso是要恰飯的。

國內其實也有nsogroup類似的,不過這個就不展開說了。

上次被Google TAG發現的就是……還引發了Apple和Google的口水仗,Apple指責Google制造恐慌,Google指責Apple遮遮掩掩。


最后,放一下TK的點評:

也就這樣在這個方向上跟蹤了很多年的人才能講清楚。

TK



——————————————————————————————————————————————————

利用工作生活之余的閑暇時間,我維護了“君哥的體歷”公眾號和“金融業企業安全建設”微信群(有興趣加入的企業安全負責人,請關注微信公眾號“君哥的體歷”,后臺留言,微信號+公司名稱,驗證身份后入群),將我從業十余年的一些體驗和經歷分享出來,純粹是自己人生迷??床磺宸较驎r的一種堅持,堅持沉淀分享,哪怕不知目標在何方。這過程中,會有欣賞、感謝,也會有抱怨、想法……?

這種分享,我理解為也是一種“開源”精神,代碼和項目開源很常見,體驗和經歷開源不多見,尤其是比較體系化的將如何在企業做安全建設的思路和實踐開源,需要自己靜下心來歸納總結提煉,在平常繁重的工作任務和需要全身心投入陪伴倆娃的同時,要做好“企業安全建設”這個開源項目,難度和挑戰更大。過程中,有西湖愜意的微風,也有沙漠般的烈日當頭。不忘初心,方得始終。初心易得,始終難守。

微信識別下面二維碼,和我交流

微信.JPG

贊賞是認同或肯定,更是鼓勵更多原創分享

微信識別贊賞碼

贊賞碼.JPG

本文作者:, 轉載請注明來自FreeBuf.COM

# 高階漏洞
被以下專輯收錄,發現更多精彩內容
+ 收入我的專輯
評論 按熱度排序

登錄/注冊后在FreeBuf發布內容哦

相關推薦
  • 0 文章數
  • 0 評論數
  • 0 關注者
登錄 / 注冊后在FreeBuf發布內容哦
收入專輯
四月天小说网