天天看點

通過 LSM 賦予容器運作時安全保障

本篇是第六部分“安全篇”的第三篇,在這個部分,我将用四篇内容為你介紹包括鏡像,容器和 Linux 核心的 LSM 等内容。前面兩篇,我為你介紹了鏡像及容器安全相關的内容。本篇,我們将重點放在 Linux 核心為容器提供的安全保障上。

上一篇,我為你介紹了如何通過 Linux capabilities 來為容器提供安全的能力。本篇,我們繼續将焦點放在容器安全上。

注意:本文所用的 Linux 核心為 5.4.10-100.fc30.x86_64,不同版本核心略有差異。

LSM 基礎

LSM 即 Linux Security Modules,翻譯為 Linux 安全子產品。可能很多人都沒有接觸過它,我先來介紹下 LSM 出現的背景及它具體是什麼。

LSM 出現的背景

上一篇我已經為你介紹過 Linux 的權限模型,最初它隻支援檢查是否為特權使用者,之後的演進中逐漸增加了 capabilities 相關的功能。

但僅僅是這樣還不足以稱其為一個“安全”作業系統。各種組織和機構在使用 Linux 時,對它提出了多種安全方面相關的需求。

此時也有不少人實作了一些安全方面的功能。大多數實作都是通過給核心打 patch 實作的,并沒有合并進 Linux 核心的主線中。

這對于普通使用者而言是無法接受的,大多數使用者是沒有編譯和定制核心的能力的,而且這些更新檔也不夠通用。

是以在 2001 年時,Linux 中逐漸引入了一個全新的通用安全通路控制架構,即現在的 LSM。

LSM 是什麼

LSM 整體而言是一個架構,提供了多種通用的安全通路控制能力,主要是各種 Hook 對權