linux的lsm--TCB组成部分的新视角
可信路徑的一端是任意用戶,另一端是TCB,這條路經(jīng)要做到盡可能短,從而加大消息在中間被攔截的難度,事實上,可信路徑上的消息時不能被攔截的,否則就不叫可信路徑了,可信路徑的一端必須是絕對可信的,我們稱為TCB,也就是可信計算基,然而TCB并不僅僅存在于可信路徑的另一端,TCB是一整套安全環(huán)境的總稱,包括很多元素,比如硬件隔離機制,OS內核的一切組件,事實上,TCB是一個抽象的概念而不是一個形象的實體,在linux中TCB還包括所有的suid程序,也就是說,TCB的元素一定是可以信任的,如果想讓操作系統(tǒng)絕對安全,僅僅有一些可以信任的“基”還不行,雖然“基”是可以信任的,那么誰能保證調用“基”的程序是正常調用呢,如果一個惡意的程序調用了TCB,那么后果一樣是很嚴重的,因此作為TCB本身的組成部分,有一個叫做訪問控制監(jiān)視器,這個監(jiān)視器的作用就是監(jiān)控任何受控調用比如系統(tǒng)調用的合法性,比如對于sys_mount來講,訪問監(jiān)視器判斷調用進程能否進行mount操作。
???? 可悲的是,很多的操作系統(tǒng)并沒有實現(xiàn)這個訪問監(jiān)視器,操作系統(tǒng)幾乎在一開始設計的時候是不考慮安全的,而只考慮功能和效率,很多設計者都將安全這件事寄托給了硬件機制,比如Intel的rings以及arm的特權模式等等,事實上這種寄托很不嚴格,畢竟硬件的實現(xiàn)千差萬別,設計者往往在出現(xiàn)了具體問題的時候才會考慮加入安全控制機制最終使得操作系統(tǒng)內核的代碼雜亂無比,因此操作系統(tǒng)需要一個更加一致的TCB,便于實現(xiàn)統(tǒng)一接口下的不同實現(xiàn)以及擴充新的安全策略。如果實現(xiàn)了這么一個接口一致,僅僅實現(xiàn)的機制的安全控制機制的話,那么可以說TCB包含了三部分,一個是寄托給硬件的那部分(所謂的內核模式),提供OS作為服務提供者的保護機制,一個是訪問監(jiān)視器,就是上面說的那個一致的接口,另外一個是用戶空間的一些門(gate)程序,對于linux來講就是suid程序。現(xiàn)在看看linux的lsm,它實際上就是一個訪問監(jiān)視器框架,然后你可以用任何方式實現(xiàn)它,用訪問監(jiān)視器的視角來理解lsm的話,可以很清晰的弄明白為什么它的調用點存在于一個地方而不是另一個地方。lsm提供了兩種實現(xiàn)訪問監(jiān)視的方式,一種是單獨模塊的方式,這種方式下只要你提供了一個lsm實現(xiàn)并且注冊了它,那么就不能再注冊第二個了,也就是說系統(tǒng)中只允許注冊一個lsm實現(xiàn),另一種方式是堆棧模塊的方式,security_operations本身提供了register_security回調函數(shù),任何一個lsm實現(xiàn)都可以重載這個回調函數(shù)以允許系統(tǒng)中存在很多l(xiāng)sm實現(xiàn),從而實現(xiàn)串行的訪問控制過濾。
轉載于:https://blog.51cto.com/dog250/1271984
總結
以上是生活随笔為你收集整理的linux的lsm--TCB组成部分的新视角的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解ISA2006三种客户端
- 下一篇: 应用虚拟化的五大理由