Brian:非常高興能夠和大家進(jìn)行分享,我們非常期待能夠收獲很多。我們演講的內(nèi)容是瀏覽器到黑客大賽是怎么樣進(jìn)行演變的,我們怎么樣來追蹤,怎么樣展望未來,怎么樣能夠使我們得到整個系統(tǒng)的妥協(xié)和進(jìn)展,我們在過去的黑客大賽中進(jìn)展怎么樣,大家怎么樣進(jìn)行妥協(xié),怎么樣得到現(xiàn)在的水平。
我的名字是Brian,我是我們這個脆弱部分的主監(jiān),我們是把頂尖的技術(shù)部分,主要的關(guān)注就是把我們的趨勢和項目做好。這主要是指什么呢?我們的研究人員在進(jìn)行工作,實際上很多人在做現(xiàn)場,我們要進(jìn)行探索和開發(fā),我們和供應(yīng)商,來幫助他們促進(jìn)他們的產(chǎn)品,然后來保護(hù)整個生態(tài)體系,這是我們整個對脆弱的研究。
在內(nèi)部我們要發(fā)現(xiàn)這個脆弱性,發(fā)現(xiàn)漏洞,減緩漏洞。25%的漏洞實際上是我們現(xiàn)在的這些同事們來發(fā)現(xiàn)的,我們實際上在過去修補了很多的漏洞,我們幫助了公司,實際上在整個生態(tài)鏈上進(jìn)行貢獻(xiàn)。
我們有開發(fā)的技術(shù),我們和微軟進(jìn)行工作,我們實際上獲得了微軟最大的獎項ICE。我們也是第一個對這個漏洞的供應(yīng)商,我們是微軟2015年最大的供應(yīng)商,我們希望今年能夠供應(yīng)更多。在去年實際上我們已經(jīng)發(fā)現(xiàn)了這些漏洞,并且修復(fù)了這些漏洞。接下來讓我的同事們介紹一下自己。
Jasiel:也是在這個研究室的工作人員,我在2012年就參加了這個項目,實際上2005年我就開始了這方面的工作,我是工程方面的研究人員,我們關(guān)注Flash軟件系統(tǒng),尤其是Windows頁面的問題。我們和騰訊的科恩實驗室也有合作。
Abdul:我是Abdul,我也是ZDI公司的研究人員。我過去的三年在這個個公工作,我們2005年就開始和他們合作了,我們主要是找到這些漏洞,并且修復(fù)這些漏洞。
Brian:在過去幾年我們項目的發(fā)展,我們可以看到供應(yīng)商實際上有很多的變化,他們有很多的需求,所以我們可以看到,這個演變的過程非常有意思,比如說我們黑客大賽的進(jìn)展也非常有意思,
2013年我們開始黑客大賽,我們在2013年實際上這個標(biāo)準(zhǔn)或者是規(guī)定是變化的,比如說我們看到2012年的漏洞在哪里,2013年我們需要研究人員在空白的紙上跟供應(yīng)商進(jìn)行溝通,這樣的話,每個人都知道我們在做什么,比如說他們使用的是什么樣的技術(shù),這樣的話可以來執(zhí)行這個減弱性。
這張幻燈片當(dāng)中顯示我們有不同的減弱的方面,在2013年所做的執(zhí)行。一些比較早期的沙箱技術(shù),還有Cookies的項目,2013年我們就把這個沙箱放到這個舞臺上,我們就開始這個工作。我們要運營黑客大賽,我們要看到供應(yīng)商的需求,他們還要減弱他們的問題。
在過去的幾年,實際上供應(yīng)商一直在建立他們的防御系統(tǒng),我們看到了很多有意思的事情。2013年我們可以看到這個技術(shù),尤其是在沙箱方面的技術(shù)越來越強(qiáng)了,我們開始了強(qiáng)有力的技術(shù),我們可以看到這個趨勢。
人們可能繞過這個箱子,直接到內(nèi)心。2014年實際上使用了這方面的應(yīng)用,2016年更多的我們看到這個漏洞在進(jìn)行保護(hù),比如說在記憶的保護(hù)方面,我會和大家分享一些事例。比如說有一些分隔、斷開的堆。
2015年我有一些倡議,我們可以看到有很多的Zero Day的項目供應(yīng)商,微軟對于減弱這個項目的使用是非常有影響的。我們在減弱項目之前,一天之后會有很多的影響,以后的漏洞就不能再被攻破了。所以實際上我們的趨勢對于整個的變化或者是這個演變都會有變化。
我們來執(zhí)行這種防止攻擊方面的影響,我們要把它斷開。2014年我們可以看到一些成功的減弱案例,它們使用這些自由的項目,比如說Flash,還有插入的項目。這些利用實際上是在做Flash的時候他們一直在使用的。
看我們的Pwn2Own黑客大賽,在2013年開始介紹了沙箱,可以看到大家在利用這個沙箱,一直到開發(fā)這個核心。我們就會進(jìn)行一些追蹤,我們鼓勵大家來追蹤這個核心,而不是去重視這個沙箱。Jasiel和Niel他們贏得了這個項目,在Google的瀏覽器方面發(fā)現(xiàn)了這個漏洞。
2014年的Pwn2Own大賽我們是Sebastian Apelt,他是德國的選手,他們在英特網(wǎng)的Explorer瀏覽器上,逃跑了這個漏洞,這樣的話,他就贏得了2014年的大獎。所以我們可以看到,越來越多的參與人來追蹤這個核心,
從2014年到2015年,我們可以看到,騰訊科恩的團(tuán)隊他們追蹤的是Flash這個體系,他們做緩沖的溢出,是這個Flash的體系,所以有不同的競爭環(huán)境。他們贏得了這個大獎,是非常有意思的。
2016年的Pwn2Own大賽我們可以看到這個變化,每個人都重視系統(tǒng)了,于是進(jìn)入了非常高的關(guān)注度。我們現(xiàn)在要給大家分享一些案例,怎么樣找到這個漏洞,怎么樣使用這個漏洞,給大家展示一下,然后我們再介紹我們看到的這個趨勢。
首先我們說Apple Safari這個領(lǐng)域,給大家介紹一個視頻。現(xiàn)在做什么呢?我們可以看到,實際上我們有四個Zero Day的漏洞,我們給每一個競賽者。可以看到,實際上有很多混亂的一些情景,有很多東西跳出來,有很多計算,有很多展示,比如說使用者展示這個漏洞,有四個方面。
一個就是在Safari,在流程過程當(dāng)中沙箱的問題,然后是在嵌入的過程中,有這個漏洞。在Apple Safari,一個漏洞就是在追蹤文章方面的漏洞。我們可以看到,如果這個存在的話,就會被召回,在我們的程序過程中,我們要利用這個漏洞,利用我們的技術(shù)來找回這個記憶。
有一些操縱和運營,找到了這個漏洞,找到了這個路徑,我們要看到在這個競賽過程當(dāng)中有這樣的情況,他們希望找到更多的漏洞,有更多的記憶,這樣的話就可以找到密碼,重新寫一部分功能,然后開發(fā)、執(zhí)行,之后進(jìn)行解釋,所以這是非常有意思的一個利用漏洞的流程。我們要得到通路,整個來獲取這個記憶。
后面的步驟,我們可以看到整個溢出的流程,我們有目標(biāo)的服務(wù)器,使用兩個E的信息來達(dá)到這個功能,這樣的話,把它的記憶進(jìn)行分配,然后由控制的一端來進(jìn)行讀寫,然后把這個數(shù)字進(jìn)到這個緩沖,然后進(jìn)行溢出。
所以我們在利用方面,實際上他準(zhǔn)備了這個記憶,然后把這個信息發(fā)出來進(jìn)行緩沖,整個系統(tǒng)進(jìn)入這個鏈條之后是保護(hù)和執(zhí)行。當(dāng)有密碼執(zhí)行權(quán)限的時候,實際上也在做另一步,那就是要進(jìn)入沙箱,要整個審視他做的內(nèi)容。
實際上有很多的事情是繞過這個沙箱的一些步驟,我把這些步驟放到了這個PPT上大家可以參照。這個整個的進(jìn)程實際上重心并不是這個沙箱,他看到了這個流程,實際上不是和這個沙箱有關(guān)的。
但是他看到了他需要這個環(huán)境整個的脆弱,然后來下載,這樣的話可以逃離沙箱的限制,又通到其他的領(lǐng)域。在這當(dāng)中做了變化,逃離的沙箱,建立了一個任性的目錄。在整個過程當(dāng)中,他實際上看到了內(nèi)部的一個密鑰,也就是說交出了Local的Folder鑰匙,可以讓黑客來寫這么一個任意的目錄。
他這樣做是通過在Sudo的攻入體系當(dāng)中,使用這個用戶名、口令,口令比較短的話,可能你不需要就可以直接進(jìn)入這個目錄,然后進(jìn)行更新,然后在整個項目中進(jìn)行一些修改,允許他可以在整個的體系中進(jìn)行運營。我現(xiàn)在邀請我的同事Jasiel來跟大家說一下Google Chrome這個瀏覽器的體系。
Jasiel:這個實際上更有意思,可能有更多的故事,我給大家放這么一個短片,可以顯示這個漏洞。我們有Chrome的漏洞,還有Flash的Bug,這是系統(tǒng)的漏洞。這樣的話,我們可以給大家整個的系統(tǒng),然后要讓這個系統(tǒng)來進(jìn)行合規(guī)。
最開始的這個漏洞有的時候大家可能不是非常理解,這是2014年和2015年開始的,我們把這個漏洞告訴給了競賽者,我們把這個信息提供給供應(yīng)商。實際上這個漏洞Google已經(jīng)知道了,競賽的三天之前Google就已經(jīng)知道了這個漏洞,我們又告訴了科恩實驗室這個漏洞的情況,這是非常有趣的一個問題,我們記錄了這個情景。
如果說有任何一些其他的文件,它的進(jìn)入比較緩慢的話,它就可以通過這樣的一種程序,然后去進(jìn)行執(zhí)行。它的接入其實是安全的,可能很多人覺得應(yīng)該是安全的,但是事實上它還有四個元素是需要去關(guān)注的。在里面有很多的關(guān)于整個執(zhí)行方面的一些需要去確定的,要了解到漏洞的一些利用功能。
我們可以通過這樣的一種方式有一個惡意回?fù)艿姆绞剑鼤堰@個指令惡意修改。這樣的話,就會改變他指令的長度。如果說他受到了這種惡意的攻擊之后,就會在自由存儲區(qū)內(nèi)不斷的執(zhí)行指令。
還有就是從零這種惡意的回?fù)埽瑫舻竭@些目標(biāo)文件。還有很多具體的功能,就是給我們展示出到底有哪些內(nèi)容是在這個存儲區(qū)里面的。同時還有行列的緩沖區(qū),它怎么能夠更好的去配合這樣的一些自由存儲區(qū),
現(xiàn)在Chrome的沙箱并沒有起到什么樣的作用,只是能夠獲得一些信息,在第二個Adobe的漏洞里面發(fā)起一個呼叫,而且他們還可以去計算這種DAL,他們利用這種隨意的行列指令,最后達(dá)到了第二個Flash的指令。
在Chrome出現(xiàn)了漏洞之后,我們看到,其實一些漏洞并沒有辦法從Chrome的里面去接收到,這個漏洞本身會改變目標(biāo),而且會去改變這個機(jī)制,同時對于這個機(jī)制的目標(biāo)可以進(jìn)行改變或者是重新創(chuàng)建。
Flash AS2可以讓你在Flash的環(huán)境下面去運行,而且如果你想要去獲取機(jī)制當(dāng)中的這些文件的話,你可以去創(chuàng)建一個新的機(jī)制。但是同時你需要確保你能了解到這個文件之前的原始狀態(tài)。而且為了利用這樣一些漏洞,我們也需要非常快速的采取這些行動。
他們獲得了自由的存儲區(qū),而且在這個機(jī)制上面建立了重新的操作,而且他們可以通過這樣一種漏洞的利用,能夠獲取目標(biāo)文件的信息,這個也是在我們這樣一個解碼的方法里面有所涵蓋。在解碼的方法里面,如果說你有A=B等等,最后就會得到1到B等等,接下去是這樣一個排列。
這樣的話,我們就可以不管在什么時候,這個文件首先改變了,我們可以在其中插入一些屬性。比如說你在解碼的時候,也可以去打斷它的一些執(zhí)行,就像這些漏洞一樣,它也是通過把它應(yīng)用一些小短片的一些實體,然后去進(jìn)行干預(yù)。在那個時候,可能我們沒辦法很多的去接收到其中的一些信息。
但是如果我們已經(jīng)成功的進(jìn)行了這種撥叫的話,我們就可以利用這樣一個能夠確定的目標(biāo)文件進(jìn)行進(jìn)一步的目標(biāo)定制化。而且還可以用他去改變整個指令的長度,進(jìn)一步通過很直接的方式來執(zhí)行一些指令。其實我們有一些用戶免費使用的方法,微軟的Windos的Win32也是把DWM進(jìn)行輔助,可能會遇到很多障礙。
為了利用這一點,我們也是可以通過使用這樣一種催化加速器的表格,然后去配置加速器表格的目標(biāo)物體,而且我們還可以通過這種Bitmap的目標(biāo)來進(jìn)行存儲的訪問。把這個過程當(dāng)中進(jìn)行很多的迭代,然后找到相應(yīng)的Bitmap目標(biāo)進(jìn)行讀寫。
其實漏洞也是我很喜歡去研究的一個方面,我們可以去播放一下這個動畫。這個文件里面有一些內(nèi)核信息的泄漏,這里面的一些漏洞可以看到是被激活了很多次,這里面有一些命令,好像就是這個系統(tǒng)在執(zhí)行的指令一樣。
我們都知道這是一個非常重要的需要亟待解決的問題,其實這種解決方案是可以免費進(jìn)行下載的,也是不斷的進(jìn)行IT參考架構(gòu)的改善,然后把它進(jìn)一步的改善解決方案。因為有的時候我們很多人忽視了,我們把Google項目Zero Discovery的項目應(yīng)用在里面,我們可以看到里面有一些功能,有很多的箭頭。
如果說是A3大于0的話,最后得到的是少于16的這樣一個值。如果里面有A3大于0或者是A3大于16,這個我不知道到底是怎么樣得出來的。我們看到有幾次激活了這樣一個漏洞利用的機(jī)制。
在這里面使用了一種手段,可以去偽造一個目標(biāo)的指令,也可以在這個基站上面修改兩個不同的目標(biāo)。一個就是要通過這樣一個指標(biāo)的升級,在第二個物體里面去升級指標(biāo),另外一個就是他可以自由的進(jìn)行讀寫。
我們看到這里面如果他發(fā)現(xiàn)了這樣一些PFF目標(biāo)的話,他們就可以跟這個基準(zhǔn)進(jìn)行一個對比。怎么能夠把這個PFF的目標(biāo)跟它進(jìn)行一個對標(biāo),首先需要知道它是不是釋放了一些資源,我們看到源代碼的右邊,PFF的目標(biāo)是這里面一個特殊的版本,你可以去檢查。
如果說它是0的話,就會回到實際的值,就不是自由的調(diào)度資源了。如果說不是這樣一個真實的目標(biāo)文件的話,他就不可能再回到0的這個值。所以我們通過這樣一種方式,也沒辦法完全的確定到底這個資源是不是自由的進(jìn)行調(diào)動的。
還有關(guān)于這個漏洞利用,我們也可以去釋放PFF目標(biāo)的資源,我們也可以通過這樣的UserConvert的方式重新獲取自由的存儲,我們可以用一個原始的值,就是在2之內(nèi)的這樣一個值,然后去增加WND目標(biāo)額外的比特大小。而且還可以用內(nèi)部InteralGetWindows的讀取文本進(jìn)行任意的存儲。
接下來我想請Abdul進(jìn)一步來講一下微軟的Edge。
Abdul:第一個就是這個系統(tǒng),可以給大家播放一下這個動畫,第一個就是Edge漏洞,JavaScript引擎發(fā)出的,我們可以通過這種Server來介入這種系統(tǒng),我們可以看到,它可以接入到CSD系統(tǒng)里面去。
第一個就是說我們要去看一下它怎么能夠去定義堆棧上面的一些信息,在這里面有一些相關(guān)的目標(biāo),可以把一些相關(guān)的信息加入到這個陣列里面去。對于激發(fā)器,其實還是挺簡單的,對于每一個目標(biāo)來講,我們都可以把它進(jìn)行一個認(rèn)證,我們還有一個信息。我們用同樣的技術(shù),在2015年的時候去利用這樣一些繞過的方式。
為什么說這樣一種技術(shù)可以通過Java系統(tǒng)的升級來實現(xiàn)?我們這里面可以激發(fā)一些特別小的,重新來去激活這個Bug。你拿到這樣一個參考值,最后你可能也知道在這個里面是可以追溯到這個目標(biāo)的數(shù)值。
就像所有的這些布局一樣,我們這里面很多的數(shù)據(jù),這些目標(biāo)可以被用于一個參考,使用這樣一些漏洞,可以去作為一個參考來找出到底這個目標(biāo)的漏洞在哪里。
我們的一些利用步驟就是可以去讀寫,而且這些數(shù)據(jù)瀏覽的目標(biāo)記憶也是被釋放出來,而且可以被使用Native Flold的目標(biāo)來進(jìn)行填充。我們在微軟的Windows里面有一個診斷的機(jī)制,是一種標(biāo)準(zhǔn)的集成跨越,標(biāo)準(zhǔn)的這種收集器是一個系統(tǒng)集的COM的服務(wù),
而且這種通信可以在微軟的Edge的沙箱里面進(jìn)行,這個COM的接口可以把Agent的功能進(jìn)行兩個放大,來進(jìn)行接入。比如說DLL的路徑,還有GUID,DLL的路徑現(xiàn)在是沒有辦法經(jīng)過驗證。
另外一個就是關(guān)于Keenlab的系統(tǒng),這個也是很有意思的一個案例。而且它也是通過通過檢查源數(shù)據(jù)來進(jìn)行發(fā)現(xiàn)的,我們播放一下這個動畫片。在這里面我們看到有兩個Bug,一個就是界外的一些接入,這樣的一個長度是來自長度的屬性獲取的,而且它的長度屬性也可以在某些情況下來進(jìn)行覆蓋。
基本上說,我們可以通過界外的這種接入來看一下,這個案例里面,其實它的長度主要是從長度屬性里面來獲取的。而且他在這里面也是有相關(guān)的這些指標(biāo),如果說是短于某一個長度的話,我們就可以去看他到底是靜態(tài)還是外面的接入。
我們還有UIA的目標(biāo),不管是多大的大小,這是非常關(guān)鍵的,這個會有非常好的結(jié)果。我們最主要的用衛(wèi)星的熱,要有第二級的項目,也就是說,要促進(jìn)這個漏洞,要增加它的價值,我們有這個目標(biāo),然后修改這個目標(biāo),達(dá)成我們的結(jié)果,所以這個方法我們也是經(jīng)常使用的。
接下來請Brian來講一下結(jié)束語。
Brian:最后我想說的是,在過去的幾年中我們看到越來越多應(yīng)用的瀏覽器和沙箱,我們看到一些沙箱實際上越來越強(qiáng)有勁了,有的時候大家可能會忽視,總是看到Kernel的這個漏洞,所以我們可以看到越來越多的修改,越來越多變化,我們有Chrome瀏覽器正在使用新的應(yīng)用,我們對于我們黑客的利用可以到修復(fù)系統(tǒng)。
我們的利用可能是越來越難了,因為我們在整個的演講過程中可以看到,在2013年實際上可能在減緩過程中只有十幾個、二十來個,現(xiàn)在我們看到這個漏洞的情景有很大的變化,有可能不僅僅是十幾個了,可能有更多的減弱的情況。
比如說在下載或者是使用過程當(dāng)中,這個漏洞的減緩實際上應(yīng)該是越來越難了,對于漏洞的利用者在解釋口令方面或者是密碼方面是越來越難了。但是并不是說不可能,我們要有不同的項目來理解我們的漏洞。
漏洞是什么?比如說在保護(hù)我們的客戶,我們有不同的技術(shù),這樣的話,讓黑客更少的來找到他們的路徑,我們在保證賣產(chǎn)品的過程中首要保護(hù)的是安全。
今年我們有一個項目,就是我們對整個過程的記憶,我們進(jìn)行書寫。要找到這些有意思的趨勢,比如說大家利用漏洞的突發(fā)點是什么,看這個沙箱的利用情況,有的時候并不是這個記憶的漏洞。
所以我們可以看到這個核心,不僅僅是Windows,也有其他的系統(tǒng)漏洞。我們可以看到漏洞方面的研究,還有利用的研究越來越普遍了,很多的人來關(guān)注這個漏洞的市場。這樣的話,可以激發(fā)世界上各個國家的專家來進(jìn)入這個研究。
有不同的漏洞項目來找到漏洞和修復(fù)漏洞,這些研究人員所做的就是進(jìn)行投資,他們可以做更多的研究,找到更多的漏洞,我想這是一個好的現(xiàn)象,我們在過去的十年一直和這些研究陳源進(jìn)行工作,可以看到這些研究人員的洞察力,我們給他們基金,和供應(yīng)商進(jìn)行合作,這樣的話我們的產(chǎn)品是安全的。
在這個項目之初,實際上我們已經(jīng)修改了差不多三千多個Zero Day的項目問題,不僅僅是軟件,而且是硬件在我們整個的生態(tài)體系中,我們實際上是非常驕傲的來修復(fù)這些漏洞。
我們看到我們的做法實際上是一個團(tuán)隊的工作,有的人在Kernel比較專長,有的人在Edge比較專長,有的人在Flash比較專長,我們要激發(fā)他們的能量和潛力。我們看到不同的場景和場景的趨勢,有一些可能越來越強(qiáng),我們希望這些軟件能夠繼續(xù)發(fā)展。
我們是Zero Day Initiative公司,如果大家對這個項目比較感興趣的話,也可以和我們進(jìn)行溝通,我會給你們一些溝通和交流。所以再次感謝大家聆聽我們的演講,希望大家收獲頗豐。