BlackHat 2015首日精選議題解讀
0x00 序
今天是Black Hat 2015第一天,九點鐘開場。開場介紹是由Black Hat創始人Jeff Moss講的。隨后又請來了Stanford law school的Jennifer Granickz做了keynote speech。
隨后就開始Black Hat的正會了,因為Black Hat是9個分會場同時進行,所以我們只能挑一些比較感興趣的演講去聽。
0x01 ANDROID SECURITY STATE OF THE UNION
這個talk的演講者是Google Android security team的leader , Adrian Ludwig。 Adrian首先介紹了android系統的一些安全策略,比如說應用隔離(sandbox,SElinux,TrustZone等),設備完整性(開機鎖,數據加密等),內存通用防御(NX, ASLR等)等等。隨后介紹了google公司在android安全上的貢獻,比如說保證google play上app的安全性,更安全的瀏覽器chrome,設備管理器等。
接著Adrian提到google和越來越多的廠商開始進行合作,能夠更快的patch設備。比如說libstagefright漏洞在八月份就為上百個設備推送了patch。
隨后,Andrian說,因為我們在BH做演講,所以我們要講一些“壞”的消息。首先講的是在android有很多的malware,但是android有多層的防御,malware必須全部突破才能對設備產生危害。
接著Andrian介紹了一些Google統計的安全數據。主要是Potentially Harmful Applications (PHA)的數據。俄羅斯的PHA一直非常高,中國時高時低。并且Andrian的號稱從2015年2月開始Google play上就沒有發現PHA了,但第三方市場一直都有很多。
然后Andrian講了Google應對漏洞的策略:及時掃描google play和第三方市場,并將利用漏洞的malware加入黑名單;盡快發布patch;針對不同的漏洞增加一些應急策略(比如為了應對libstragefright漏洞,在修復前android不會自動加載附件)。
Andrian最后講了android的漏洞獎勵計劃。
個人總結:相對Andrian在之前大會上的演講,Android security team已經沒有以前的自信了,以前總是說Android絕對安全,那些病毒和漏洞的消息只不過是媒體夸大罷了。這次演講的態度卻有很大轉變,首先表示Google可以在漏洞出現的時候盡量第一時間patch。然后又公布漏洞獎勵計劃,鼓勵大家第一時間提交漏洞信息。明顯感覺對自己一家搞定android安全沒有太大信心了。#p#
0x02 ATTACKING INTEROPERABILITY - AN OLE EDITION
這個演講來自Intel security,也就是原來的麥咖啡。OLE是Object Linking and Embedding 的縮寫。OLE是COM (Component Object Model)的一部分。幾乎所有的office zero-day都和OLE有一定的關系。Hacker可以利用OLE加載非ASLR的dll,進行堆噴射等。比較常見的OLE就是一個文檔中包含了另一個文檔。當雙擊另一個文檔時,就會調用OLE。
Speaker首先介紹了OLE的初始化過程。然后講了三個在OLE初始化時候的攻擊面:CocreateInstance使用的CLSID,IPersistStorage::Load()函數調用的存儲,IOleObject::DOVerb使用的verb參數。 然后介紹了利用這些攻擊可以產生的結果:1.可以加載沒有ASLR的dll到內存中。2.可以造成內存破壞。3.dll預加載hijack攻擊。然后speaker預測會有更多office OLE 0day會被發現。最后speaker演示了win7 x64下的OLE 0day的2個demo。
0x03 ABUSING SILENT MITIGATIONS - UNDERSTANDING WEAKNESSES WITHIN INTERNET EXPLORERS ISOLATED HEAP AND MEMORYPROTECTION
這個talk是ZDI做的,也就是pwn2own的主辦者。ZDI首先講了heap上經常使用的UAF漏洞,然后講了微軟在2014年引進了兩種新的攻擊緩解技術:isolated heap和memory protection。
Isolated heap的防御方法是根據type來分配不同的heap,這樣的話不同類型的數據就不會互相影響。memory protection會對free()操作進行保護,并在free的過程中會加一些”0”到堆中。但是即使加上了這兩層,ZDI依然找到了應對的方法,并且獲得了微軟$125,000的獎金。但exploit的過程非常復雜,要經過很多階段的內存分配與釋放才行。有意思的是,因為memory protection的加入,反而讓ZDI找到了一種新的方法用來bypass ASLR。所以說,在沒有進行全面的測試就加入新的攻擊緩解技術不一定是一件好事。
最后ZDI 做了在開啟了兩種防御的情況下彈計算器的demo,以及開了Memory Protection的情況下利用加載dll方法做到bypass ASLR的demo。#p#
0x04 REMOTE EXPLOITATION OF AN UNALTERED PASSENGER VEHICLE
Charlie Miller是twitter的安全研究員,是工業界非常有名的人物。這次的talk估計是本屆BH最火的talk了,還沒開始下面就已經人山人海了。
talk講了兩種遠程攻擊汽車的方法。首先是通過wifi入侵車: Charlie Miller先逆向了汽車WPA2密碼的生成方式,發現WPA2的密碼是根據設定密碼的時間作為種子生成的隨機密碼,并且首次生成以后并不會改變。所以說當知道了生成密碼的時間,就可以暴力破解出密碼。比如說知道了哪一天設置的密碼就可以在1小時內暴力猜出密碼。
進入車的wifi內網后,Charlie發現汽車打開了6667端口運行D-BUS服務。D-BUS是以root模式運行。其中有一個服務叫NavTrailService可以進行命令injection,然后就獲取到root shell。
另一種方式是通過蜂窩網絡入侵汽車,首先采用femto-cell(偽造蜂窩基站)的方法對區域內的ip進行掃描,然后尋找打開了6667端口的設備,也就是打開D-BUS服務端口的汽車。隨后采用和wifi攻擊渠道一樣的命令injection方法獲取到root shell。
但是Charlie講到,即使有root權限也只能控制一些media的東西。想要控制汽車還需要對系統進行修改。Charlie采用的方法是修改并更新固件。Charlie發現目標汽車有個嚴重的安全漏洞,那就是汽車的系統不會驗證固件的簽名,因此通過固件修改系統并加入后門變為了可能。
所以最終攻擊過程如下:先利用基站搜索有漏洞的汽車,然后遠程攻擊NavTrailSerivce,重新刷帶有后門的固件,等待目標汽車固件更新后就可以進行進行遠程控制了。隨后Charlie Miller演示了各種控制汽車的視頻,讓全場沸騰不已。
0x05 OPTIMIZED FUZZING IOKIT IN IOS
帶來這個演講的是阿里移動安全部門的long lei以及潘愛民老師。
這個工作主要有三個貢獻:1、一套非常詳細的獲取IOKit內核信息的方法。2、一套用來fuzzy IOKit的框架。3、2個fuzzy出來的漏洞分享。
在這個工作之前,安全研究人員一般使用ida進行靜態的分析,但效果并不理想。于是long lei提出了一種在越獄的情況下動態獲取IOKit信息的方法。但是獲取IOKit在內核中的信息非常麻煩,要對各種meta數據信息進行parse,是一項工程量非常大工作。
在Fuzz方面,Fuzzer系統會使用Mobile Substrate框架對關鍵函數進行hook,隨后進行fuzz工作。
最后,long lei分享了2個用這套fuzz系統發現的漏洞,并且其中一個信息泄露的漏洞已經報給了蘋果并且在最新iOS上修復了。
0x06 ATTACKING ECMASCRIPT ENGINES WITH REDEFINITION
這個talk的演講者是Natalie Silvanovich。來自Google的Project Zero團隊。ECMAScript 是javascript的前身。這個talk主要講了在ECMAScript中,數據類型進行轉換時產生的問題。比如說類型A轉換成了類型B,有一些數據可能會進行錯誤的轉換,從而造成可利用的漏洞。
Natalie Silvanovich舉了很多例子進行講解,其中包括了最近非常火的Hacking Team的flash 0day。隨后還講解了如何尋找這類的漏洞,比如說多用IDA對數據轉換函數進行進行逆向以及使用fuzzer等。
0x07 第一天總結
總的來說第一天的演講無論是在名氣上還是質量上都是相當高的。并且這次有很多國內安全公司的人參與和學習,一定會對國內安全圈的發展有很好的推進作用。那就讓我們繼續期待明天的會議吧。