Linux新漏洞:用罕見方式繞過ASLR和DEP保護(hù)機(jī)制
最近國外研究人員公布的一段exp代碼能夠在打完補(bǔ)丁的Fedora等Linux系統(tǒng)上進(jìn)行drive-by攻擊,從而安裝鍵盤記錄器、后門和其他惡意軟件。
本文引用地址:http://2s4d.com/article/201808/385756.htm這次的exp針對(duì)的是GStreamer框架中的一個(gè)內(nèi)存損壞漏洞,GStreamer是個(gè)開源多媒體框架,存在于主流的Linux發(fā)行版中。我們都知道,地址空間布局隨機(jī)化(ASLR)和數(shù)據(jù)執(zhí)行保護(hù)(DEP)是linux系統(tǒng)中兩個(gè)安全措施,目的是為了讓軟件exp更難執(zhí)行。但新公布的exp通過一種罕見的辦法繞過了這兩種安全措施——國外媒體還專門強(qiáng)調(diào)了這個(gè)漏洞的“優(yōu)雅”特色。研究人員寫了個(gè)flac多媒體文件,就能達(dá)成漏洞利用!
ASLR是一種針對(duì)緩沖區(qū)溢出的安全保護(hù)技術(shù),通過對(duì)堆、棧、共享庫映射等線性區(qū)布局的隨機(jī)化,通過增加攻擊者預(yù)測目的地址的難度,防止攻擊者直接定位攻擊代碼位置,達(dá)到阻止溢出攻擊的目的的一種技術(shù)。而DEP則能夠在內(nèi)存上執(zhí)行額外檢查以幫助防止在系統(tǒng)上運(yùn)行惡意代碼。
無腳本exp
與傳統(tǒng)的ASLR和DEP繞過方法不同的是,這個(gè)exp沒有通過代碼來篡改內(nèi)存布局和其他的環(huán)境變量。而是通過更難的字節(jié)碼排序徹底關(guān)閉保護(hù)。由于不需要JavaScript也不需要其他與內(nèi)存通信的代碼,所以其他攻擊不行的時(shí)候,這種攻擊可能依然可行。
“這個(gè)exp很可笑”,研究員Chris Evans在周一的博文中寫道,“但是它證明了無腳本的exp也是可行的,即便開啟了64位的ASLR還是有辦法能夠進(jìn)行讀寫內(nèi)存等操作,并且能夠穩(wěn)扎穩(wěn)打地一步一步進(jìn)行攻擊然后獲得控制權(quán)。”
Azimuth Security高級(jí)研究院Dan Rosenberg特別擅長Linux漏洞的防御。在一封郵件中他同意了Chris Evans的觀點(diǎn):
這個(gè)exp相當(dāng)厲害,因?yàn)樗晒@過了ASLR和NX等先進(jìn)的保護(hù)措施,而且不需要與目標(biāo)軟件進(jìn)行程序交互。
詳細(xì)來說,當(dāng)要攻擊瀏覽器漏洞的時(shí)候,exp會(huì)用JavaScript影響內(nèi)存布局。類似地,當(dāng)要攻擊本地內(nèi)核漏洞時(shí),exp會(huì)發(fā)起系統(tǒng)調(diào)用來影響目標(biāo)環(huán)境。但在現(xiàn)在的場景差別很大,由于exp是一個(gè)單獨(dú)的媒體文件,黑客沒有機(jī)會(huì)在攻擊的過程中作調(diào)整。
Evans隨后發(fā)布了一個(gè)FLAC媒體文件,它能夠運(yùn)行在默認(rèn)版本的Fedora 24上(其中預(yù)裝了最新版的GStreamer)。Evans說,寫Ubuntu的exp更容易些,因?yàn)樗麤]有ASLR, RELRO等防御措施,即使是在最新的16.04 LTS版本中也沒有。不過他的exp仍然需要改寫才能在除Fedora 24的其他linux版本中運(yùn)行。雖然攻擊針對(duì)的是GStreamer對(duì)FLIC文件格式的解碼器,Evans說攻擊目標(biāo)是Rhythmbox媒體播放器的二進(jìn)制代碼。Totem播放器也可以用類似的方法攻擊。
Exp下載:https://security.appspot.com/security/flic/fedora_flx_exploit.flac (僅針對(duì)Fedora 24)
漏洞利用較麻煩
這個(gè)exp的學(xué)術(shù)研究價(jià)值要比實(shí)用價(jià)值來得高,因?yàn)槿绻谄渌鹟inux版本上運(yùn)行就需要重寫。并且由于在linux上播放媒體軟件的用戶本身就少,漏洞可利用的范圍就更少了。周二的時(shí)候,Ubuntu發(fā)布了補(bǔ)丁,之后幾天應(yīng)該會(huì)有更多的廠商跟進(jìn)。這個(gè)漏洞究竟優(yōu)雅與否,有興趣的可移步點(diǎn)擊下面的原文鏈接。
評(píng)論