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