深入淺出分析Linux系統核心漏洞的問題(轉)
深入淺出分析Linux系統核心漏洞的問題(轉)[@more@] 與Windows相比,Linux被認為具有更好的安全性和其他擴充套件效能。這些特性使得Linux在作業系統領域異軍突起,得到越來越多的重視。隨著Linux應用量的增加,其安全性也逐漸受到了公眾甚或駭客的關注。那麼,Linux是否真的如其支援廠商們所宣稱的那樣安全呢?
Linux核心精短、穩定性高、可擴充套件性好、硬體需求低、免費、網路功能豐富、適用於多種cpu等特性,使之在作業系統領域異軍突起。其獨特的魅力使它不僅在pc機上佔據一定的份額,而且越來越多地被使用在各種嵌入式裝置中,並被當作專業的路由器,防火牆,或者高階的伺服器OS來使用。各種型別的Linux發行版本也如雨後春筍般冒了出來,國內更是掀起了Linux的使用熱潮,很多政府部門因安全需要也被要求使用Linux。正是因為Linux被越來越多地使用,其安全性也漸漸受到了公眾的關注,當然,也更多地受到了駭客的關注。通常,我們討論Linux系統安全都是從Linux安全配置的角度或者Linux的安全特性等方面來討論的,而這一次我們轉換一下視角,從Linux系統中存在的漏洞與這些漏洞產生的影響來討論Linux的安全性。
首先來說明一下這次我們討論Linux系統安全的範圍,其實通常我們所說的Linux是指GNU/Linux系統,Linux是系統中使用的作業系統核心。這一次我們重點從Linux系統核心中存在的幾類非常有特點的漏洞來討論Linux系統的安全性。
許可權提升類漏洞
一般來說,利用系統上一些程式的邏輯缺陷或緩衝區溢位的手段,攻擊者很容易在本地獲得Linux伺服器上管理員許可權root;在一些遠端的情況下,攻擊者會利用一些以root身份執行的有缺陷的系統守護程式來取得root許可權,或利用有缺陷的服務程式漏洞來取得普通使用者許可權用以遠端登入伺服器。目前很多Linux伺服器都用關閉各種不需要的服務和程式的方式來提升自身的安全性,但是隻要這個伺服器上執行著某些服務,攻擊者就可以找到許可權提升的途徑。下面是一個比較新的導致許可權提升的漏洞。
do_brk()邊界檢查不充分漏洞在2003年9月份被Linux核心開發人員發現,並在9月底釋出的Linux kernel 2.6.0-test6中對其進行了修補。但是Linux核心開發人員並沒有意識到此漏洞的威脅,所以沒有做任何通報,一些安全專家與駭客卻看到了此漏洞蘊涵的巨大威力。在2003年11月駭客利用rsync中一個未公開的堆溢位與此漏洞配合,成功地攻擊了多臺Debian與Gentoo Linux的伺服器。
下面讓我們簡單描述一下該漏洞。該漏洞被發現於brk系統呼叫中。brk系統呼叫可以對使用者程式的堆的大小進行操作,使堆擴充套件或者縮小。而brk內部就是直接使用do_brk()函式來做具體的操作, do_brk()函式在調整程式堆的大小時既沒有對引數len進行任何檢查(不檢查大小也不檢查正負),也沒有對addr+len是否超過TASK_SIZE做檢查。這樣我們就可以向它提交任意大小的引數len,使使用者程式的大小任意改變以至可以超過TASK_SIZE的限制,使系統認為核心範圍的記憶體空間也是可以被使用者訪問的,這樣的話普通使用者就可以訪問到核心的記憶體區域。透過一定的操作,攻擊者就可以獲得管理員許可權。這個漏洞極其危險,利用這個漏洞可以使攻擊者直接對核心區域操作,可以繞過很多Linux系統下的安全保護模組。
此漏洞的發現提出了一種新的漏洞概念,即透過擴充套件使用者的記憶體空間到系統核心的記憶體空間來提升許可權。當發現這種漏洞時,透過研究我們就認為核心中一定還會存在類似的漏洞,果然幾個月後駭客們又在Linux核心中發現與brk相似的漏洞。透過這次成功的預測,更證實了對這種新型的概念型漏洞進行研究很有助於安全人員在系統中發現新的漏洞。
Linux核心精短、穩定性高、可擴充套件性好、硬體需求低、免費、網路功能豐富、適用於多種cpu等特性,使之在作業系統領域異軍突起。其獨特的魅力使它不僅在pc機上佔據一定的份額,而且越來越多地被使用在各種嵌入式裝置中,並被當作專業的路由器,防火牆,或者高階的伺服器OS來使用。各種型別的Linux發行版本也如雨後春筍般冒了出來,國內更是掀起了Linux的使用熱潮,很多政府部門因安全需要也被要求使用Linux。正是因為Linux被越來越多地使用,其安全性也漸漸受到了公眾的關注,當然,也更多地受到了駭客的關注。通常,我們討論Linux系統安全都是從Linux安全配置的角度或者Linux的安全特性等方面來討論的,而這一次我們轉換一下視角,從Linux系統中存在的漏洞與這些漏洞產生的影響來討論Linux的安全性。
首先來說明一下這次我們討論Linux系統安全的範圍,其實通常我們所說的Linux是指GNU/Linux系統,Linux是系統中使用的作業系統核心。這一次我們重點從Linux系統核心中存在的幾類非常有特點的漏洞來討論Linux系統的安全性。
許可權提升類漏洞
一般來說,利用系統上一些程式的邏輯缺陷或緩衝區溢位的手段,攻擊者很容易在本地獲得Linux伺服器上管理員許可權root;在一些遠端的情況下,攻擊者會利用一些以root身份執行的有缺陷的系統守護程式來取得root許可權,或利用有缺陷的服務程式漏洞來取得普通使用者許可權用以遠端登入伺服器。目前很多Linux伺服器都用關閉各種不需要的服務和程式的方式來提升自身的安全性,但是隻要這個伺服器上執行著某些服務,攻擊者就可以找到許可權提升的途徑。下面是一個比較新的導致許可權提升的漏洞。
do_brk()邊界檢查不充分漏洞在2003年9月份被Linux核心開發人員發現,並在9月底釋出的Linux kernel 2.6.0-test6中對其進行了修補。但是Linux核心開發人員並沒有意識到此漏洞的威脅,所以沒有做任何通報,一些安全專家與駭客卻看到了此漏洞蘊涵的巨大威力。在2003年11月駭客利用rsync中一個未公開的堆溢位與此漏洞配合,成功地攻擊了多臺Debian與Gentoo Linux的伺服器。
下面讓我們簡單描述一下該漏洞。該漏洞被發現於brk系統呼叫中。brk系統呼叫可以對使用者程式的堆的大小進行操作,使堆擴充套件或者縮小。而brk內部就是直接使用do_brk()函式來做具體的操作, do_brk()函式在調整程式堆的大小時既沒有對引數len進行任何檢查(不檢查大小也不檢查正負),也沒有對addr+len是否超過TASK_SIZE做檢查。這樣我們就可以向它提交任意大小的引數len,使使用者程式的大小任意改變以至可以超過TASK_SIZE的限制,使系統認為核心範圍的記憶體空間也是可以被使用者訪問的,這樣的話普通使用者就可以訪問到核心的記憶體區域。透過一定的操作,攻擊者就可以獲得管理員許可權。這個漏洞極其危險,利用這個漏洞可以使攻擊者直接對核心區域操作,可以繞過很多Linux系統下的安全保護模組。
此漏洞的發現提出了一種新的漏洞概念,即透過擴充套件使用者的記憶體空間到系統核心的記憶體空間來提升許可權。當發現這種漏洞時,透過研究我們就認為核心中一定還會存在類似的漏洞,果然幾個月後駭客們又在Linux核心中發現與brk相似的漏洞。透過這次成功的預測,更證實了對這種新型的概念型漏洞進行研究很有助於安全人員在系統中發現新的漏洞。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961592/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深入淺出 eBPF|你要了解的 7 個核心問題eBPF
- 深入分析 Linux作業系統的核心連結串列(轉)Linux作業系統
- 兩個小問題深入淺出List的效能問題
- 深入淺出分析Linux裝置驅動程式中斷(轉)Linux
- 深入分析Linux系統深度安全加固(轉)Linux
- Linux核心分析--系統呼叫實現程式碼分析(轉)Linux
- 系統堆積和遊戲的核心體驗問題分析遊戲
- 通過幾個問題深入淺出VueVue
- 深入淺出 Node ( 四 ) HTTP核心模組HTTP
- 深入學習Linux系統,Linux核心程式設計風格(轉)Linux程式設計
- 分散式系統的核心問題分散式
- [轉]Linux系統出現亂碼問題的終極解決方法(轉)Linux
- 深入淺出OOD(一) (轉)
- 深入淺出VACUUM核心原理(中): index by passIndex
- ERP系統應用問題分析(轉)
- Linux下Shell基礎知識深入淺出(轉)Linux
- 深入淺出訪問者模式模式
- 深入淺出分析Linux裝置驅動程式中斷Linux
- 深入淺出Android訊息系統之一Android
- 淺談Linux的檔案系統(轉)Linux
- ActiveX深入淺出(一) (轉)
- ActiveX深入淺出(二) (轉)
- 深入淺出HOOKS(之伍) (轉)Hook
- 深入淺出HOOKS(之陸) (轉)Hook
- 深入淺出談防火牆(轉)防火牆
- 深入淺出FE(十四)深入淺出websocketWeb
- Linux作業系統分析 | 深入理解系統呼叫Linux作業系統
- 使用SUSE linux 10桌面系統注意的問題(轉)Linux
- 系統出問題了
- Linux系統及應用問題分析排查工具Linux
- 由面試題“併發程式設計的三個問題”深入淺出Synchronied面試題程式設計
- 麒麟作業系統核心同其他作業系統核心的相似性分析(轉)作業系統
- 帶著三個問題深入淺出React高階元件React元件
- Spring框架系列(3) - 深入淺出Spring核心之控制反轉(IOC)Spring框架
- Linux核心記憶體管子系統分析Linux記憶體
- 深入分析Linux系統深度安全加固Linux
- 深入淺出話異常-(1) (轉)
- LINUX的系統核心空間的保護(轉)Linux