麻豆国内精品欧美在线-麻豆国内精品久久久久久-麻豆国产在线观看一区二区-麻豆国产在线观看免费-麻豆国产原创-麻豆国产一区二区在线观看

曲速未來 披露:由macOS NFS客戶端中的緩沖區溢出引起的內核RCE區塊鏈

曲速未來安全區 2018-11-01 10:32
分享到:
導讀

曲速未來:為Apple的macos操作系統內核編寫的自定義QL查詢發現了多個堆棧和堆緩沖區溢出,這些溢出可通過連接到惡意NFS文件服務器來觸發。

區塊鏈安全咨詢公司 曲速未來 消息:有安全人員在Apple的macOS操作系統內核中發現的幾個堆棧和堆緩沖區溢出。Apple將這些漏洞歸類為內核中的遠程代碼執行漏洞,因此它們非常嚴重。攻擊者可能會利用它們遠程入侵Mac。或者,通過物理訪問計算機,攻擊者可以作為訪客用戶登錄(無需密碼),然后使用這些漏洞提升其權限并控制計算機。

這些漏洞存在于客戶端NFS實現中,用于將網絡驅動器(如NAS)安裝到Mac的文件系統中。

嚴重程度和緩解

這些漏洞已在Android版本10.13.6中得到修復,Apple于2018年7月9日發布了該版本。Apple要求安全人員不要透露漏洞,直到另行通知為止。這就是他們所說的:

NFS被廣泛使用,特別是在大型企業中,它用于共享驅動器和聯網的主目錄。但它也用于家庭NAS設備,通常用作媒體服務器。在macOS中,安裝NFS共享不需要特殊權限,因此任何用戶都可以觸發漏洞,甚至是訪客帳戶(不需要密碼)。此外,許多計算機(尤其是企業環境中的計算機)配置為在啟動時自動掛載NFS共享。這意味著這些漏洞至少有兩個攻擊媒介:

  1. 這些漏洞可能被用于在使用NFS文件管理器的公司中快速傳播病毒。要做到這一點,攻擊者需要在文件管理器上安裝惡意版本的NFS服務器軟件,或者找到一種方法將惡意文件管理器放在網絡上并開始攔截某些NFS流量。

  2. 這些漏洞可用于獲取升級的權限。例如,有人可能以guest用戶身份登錄,然后發出單行命令連接到惡意NFS服務器(可能是Internet上的任何位置),并在計算機上獲得內核級訪問權限。

Apple分配了五個CVE,因為代碼包含多個類似的錯誤:CVE-2018-4259,CVE-2018-4286,CVE-2018-4287,CVE-2018-4288和CVE-2018-4291。為避免意外泄露任何可能未修復的錯誤,所以只寫關于Apple工作概念驗證漏洞的兩個漏洞。

概念驗證漏洞利用

安全人員編寫了一個概念驗證漏洞,它用0覆蓋4096字節的堆內存并導致內核崩潰。還可以改變利用率來發送盡可能多的數據。任何大于128字節的數字都會觸發堆緩沖區溢出。也完全控制了寫入的字節值。因此,盡管PoC只破壞了內核,但可以合理地假設可以使用這些緩沖區溢出來實現遠程代碼執行和本地權限提升。

漏洞

安全人員編寫PoC的兩個漏洞是在這個看似無害的代碼行中(nfs_vfsops.c:4151):

這行代碼的目的是fh從nmrepNFS服務器發送回Mac的回復消息()中讀取文件句柄()。文件句柄是NFS共享上的文件或目錄的不透明標識符。NFSv3中的文件句柄最多為64個字節,NFSv4中的文件句柄最多為128個字節(搜索FHSIZE)。fhandle_tXNU中的類型有足夠的空間容納128字節的文件句柄,但是他們忘記檢查nfsm_chain_get_fh宏中的緩沖區溢出:

由于宏的大量使用,這段代碼很難遵循,但它的作用實際上非常簡單:它從消息中讀取一個32位無符號整數(FHP)->fh_len,然后直接從消息中讀取該字節數(FHP)->fh_data。沒有邊界檢查,因此攻擊者可以使用他們選擇的任何字節序列覆蓋任意數量的內核堆。被覆蓋的文件句柄的內存在nfs_socket.c:1401中分配。

安全人員寫的PoC for的第二個錯誤是nfsm_chain_get_opaque宏中的整數溢出:

此代碼使用nfsm_rndup宏圓LEN高達4的倍數,但它使用的原始值LEN的調用bcopy。如果值LEN是0xFFFFFFFF然后加入在nfsm_rndup將溢出和的值rndlen將是0。這意味著與比較(NMC)->nmc_left會成功,bcopy將與被調用0xFFFFFFFF作為大小參數。這當然會導致內核崩潰,因此它只能用作拒絕服務攻擊。

使用QL查找錯誤

QL的一大優勢是能夠找到已知錯誤的變種。今年早些時候,就有安全人員在Apple的NFS無盤啟動實現中發現了兩個漏洞,CVE-2018-4136和CVE-2018-4160。該查詢旨在查找bcopy可能具有用戶控制的大小參數的調用,該參數可能為負。一個簡單的變化是查找bcopy用戶控制源緩沖區的調用。這樣的調用可能很有趣,因為它們將用戶控制的數據復制到內核空間中。

上面的查詢相當簡單,因為它查找對bcopy從mbuf內核空間復制數據的任何調用。只要正確檢查size參數的邊界,這樣的調用就沒有錯。然而事實證明,很大一部分結果是nfsm_chain_get_fh宏的使用,它不進行任何邊界檢查。因此,盡管此查詢很簡單,但它發現了許多重要的安全漏洞。在其當前形式中,即使修復了錯誤,查詢仍將繼續報告相同的結果。最好改進查詢,以便在有適當的邊界檢查時不會報告結果。

實現邊界檢查的常用方法是這樣的:

還寫了這個謂詞來檢測上面的模式:

它使用Guards庫來查找在受控制的控制流位置中使用的大小表達式guard。然后它使用globalValueNumber庫來檢查條件本身是否出現相同大小的表達式。該GlobalValueNumbering庫使謂詞能夠檢測非平凡大小表達式的相等性,如下所示:

最后,它使用一個名為的實用程序relOpWithSwapAndNegate來檢查size表達式是否小于限制。它使謂詞也能處理這樣的場景:

有時實現邊界檢查的另一種方式是通過調用min,如此謂詞所檢測到的:

然后將這兩個謂詞組合如下:

請注意,習慣lowerBound確保不存在負整數溢出的可能性。唯一剩下要做的就是checkedSize在isSink方法中使用,以減少誤報的數量。這是完成的查詢:

總結

區塊鏈安全咨詢公司 曲速未來 表示:與大多數其他開源項目不同,XNU無法在LGTM上查詢。這是因為LGTM使用Linux工作程序來構建項目,但XNU只能在Mac上構建。即使在Mac上,XNU也非常容易構建。

本文內容由 曲速未來 (WarpFuture.com) 安全咨詢公司整理編譯,轉載請注明。 曲速未來提供包括主鏈安全、交易所安全、交易所錢包安全、DAPP開發安全、智能合約開發安全等相關區塊鏈安全咨詢服務。

使用 漏洞 安全 NFS 內核
分享到:

1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。


主站蜘蛛池模板: 国产精品久久久久久久免费大片 | www.5151淫| 国产精品亚洲片在线观看麻豆 | 色综合久久九月婷婷色综合 | 国产精品久久久久不卡绿巨人 | 久久综合视频网站 | 边打电话边操 | 亚洲毛片网 | 亚洲ⅴa偷拍在线影院 | 国产香蕉久久 | 99re热| 校草太大了h | v视影院| 午夜大片在线观看 | 九九99亚洲精品久久久久 | 免费视频片在线观看大片 | 国产在线看片护士免费视频 | 亚洲福利天堂 | 亚欧视频在线观看 | aaa毛片视频免费观看 | 欧美日韩久久中文字幕 | 99视频在线看 | 精品亚洲视频在线观看 | 色视频亚洲| 精品福利一区 | 欧美日韩精品一区二区三区视频 | 好看华人华人经典play | 苍井空色欲迷墙 | 日韩亚洲欧美综合一区二区三区 | 亚洲入口| 国产91一区二区在线播放不卡 | 国产精品久久久久久久久免费hd | 俄罗斯一级淫片bbbb | 成年人黄色录像 | 五月色综合婷婷综合俺来也 | 亚洲国产成人精品激情 | 无限好资源第一片免费韩国 | 亚洲成人aa | 91精品啪在线观看国产老湿机 | 涩涩屋在线播放 | 亚洲干综合|