【安全漏洞】苹果取证的分析
“nfs”文件系統(tǒng)的mount()系統(tǒng)調(diào)用存在雙重獲取漏洞。
理論上,Double Fetch是一個有條件的競爭漏洞,這是一場內(nèi)核模式和用戶模式之間的數(shù)據(jù)訪問的較量。Double fetch類型漏洞產(chǎn)生于多線程數(shù)據(jù)訪問時,并且沒有做必要的安全同步措施。多線程時,對同一數(shù)據(jù)一個線程讀一個線程寫,可能引起數(shù)據(jù)訪問異常,而這個異常如果能被利用,這就是一個漏洞。在現(xiàn)代操作系統(tǒng)(如Linux和BSD衍生產(chǎn)品)中,虛擬內(nèi)存位置通常是在內(nèi)核空間和用戶空間之間進行分區(qū)的。有關(guān)雙重獲取漏洞的更多信息請點擊這里。【網(wǎng)安資料】
第一次獲取發(fā)生在“this ”實例中。在這個示例中,將在NFS中解析外部數(shù)據(jù)表示(XDR)變量。你現(xiàn)在可能在想XDR到底是什么?外部數(shù)據(jù)表示(XDR)是一種只能用于描述數(shù)據(jù)的數(shù)據(jù)格式描述語言。它根本不是一種編程語言。這種語言允許你以清晰和簡潔的方式描述復(fù)雜的數(shù)據(jù)格式。XDR“編程”語言類似于C編程語言,NFS和其他協(xié)議使用XDR來描述其數(shù)據(jù)的格式。【資料詳細(xì)】
因此,本質(zhì)上,他們從用戶區(qū)復(fù)制所有XDR變量的長度,然后對剛從用戶區(qū)復(fù)制的arglength變量進行大小檢查:
所以顯然 argslength 不能大于 (16*1024 = 16384);。這很好,它很可能只是一個標(biāo)準(zhǔn)。之后它會四舍五入 argslength 并分配一個 xdrbuf:
因此,在分配這個緩沖區(qū)后,他們嘗試從用戶空間的第1920行復(fù)制所有XDR參數(shù):
這會將所有參數(shù)從 data 復(fù)制到 argslength 到新分配的 xdrbuf。完成后,這將傳遞給 mountnfs 函數(shù):
好,我們來看看mountnfs函數(shù)!它接受研究人員們的xdrbuf作為參數(shù)。
在這個塊中,它將使用xb_init_buffer函數(shù)初始化xb。因此,xb 屬于 struct xdrbuf 類型。讓我們先看一下這個定義的上下文。
研究人員們可以看到,這個結(jié)構(gòu)將在xb_init_buffer中初始化,所以讓我們也來看看:
所以這個 bzero 是整個 xdrbuf 結(jié)構(gòu)并將類型設(shè)置為 XDRBUF BUFFER,然后它將緩沖區(qū)的基地址設(shè)置為從用戶空間復(fù)制的 xdrbuf,將緩沖區(qū)的大小和數(shù)據(jù)的長度設(shè)置為 XDRWORD 的 2 倍,它等于 8,它初始化了一些指向研究人員的 xdrbuf 的指針。一旦 xdrbuf 結(jié)構(gòu)被初始化,他們將繼續(xù)使用 xb_get_32 從結(jié)構(gòu)的指針中獲取一些 32 位數(shù)據(jù)到研究人員的 xdrbuf。他們將使用它來獲取版本和 argslength。請注意,這個 argslength 是 xdrbuf 中的一個 XDR 變量,它在第二次 copyin 調(diào)用期間被復(fù)制到內(nèi)核空間中。這表明惡意線程可以在第 1902 行的第一次獲取和第 1920 行的第二次獲取之間操作用戶空間中的 argslength 變量。
之后,他們將使用 xb_init_buffer 以研究人員在用戶空間中更改的惡意大小重新初始化 xdrbuf 結(jié)構(gòu),盡管自使用 xb_malloc 分配以來 xdrbuf 的實際大小沒有改變。然后惡意攻擊者可以利用它來導(dǎo)致內(nèi)存損壞錯誤。【網(wǎng)安資料】
現(xiàn)在研究人員們知道了漏洞是如何運作的,那這個漏洞是如何解決的?研究人員檢查了第二次獲取的arglength是否與第一次復(fù)制的arglength相同。在這種情況下,研究人員認(rèn)為這是一個可行的解決方案。
目前研究人員已經(jīng)將該漏洞的修復(fù)信息反饋給了蘋果公司,并希望蘋果能改變他們處理這類漏洞的方式。在研究人員看來,蘋果管理此類漏洞的方式是人們考慮將漏洞出售給像Zerodium這樣的第三方供應(yīng)商的主要原因。
最后
我整理了一些網(wǎng)絡(luò)安全的資料與工具,有需要的朋友可以關(guān)注私我哦!!!
【資料詳細(xì)】
總結(jié)
以上是生活随笔為你收集整理的【安全漏洞】苹果取证的分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【网络安全】NFS服务安全加固
- 下一篇: 【安全】免密登陆SQLSERVER 之