https://zhuanlan.zhihu.com/p/349663329
麒麟系統為什麼稱為國內最安全的Linux系統?秘密就在於KYSEC,麒麟系統安全機制。一般情況下Linux下預設的接入控制是DAC,其特點是資源的擁有者可以對他進行任何操作(讀、寫、執行)。當一個程序準備操作資源時,Linux核心會比較程序和資源的UID和GID,如果許可權允許,就可以進行相應的操作。這種方式在實際使用中往往會帶來一些問題,如果一個程序是以root的身份執行的,也就是他能對系統的任何資源進行操作,而且不被限制。假如我們的軟體存在漏洞呢?這往往是一個災難性的問題。因此,就引出了另外一種安全接入控制機制MAC。預設情況下,MAC不允許任何訪問,組織可以開發任意數量的策略規則指定允許什麼,從而避免很多攻擊。MAC強制訪問控制有三種實現方式:Apparmor、SELinux、kysec。
一、Apparmor
Apparmor是核心模組的一個安全框架,使用檔名作為安全標籤。系統管理員透過將每個程式與一個安全配置檔案關聯,從而限制程式的功能。透過配置檔案,你可以指定程式可以讀、寫或者執行哪些檔案,是否可以開啟網路埠等。
Apparmor是Ubuntu的預設選擇。
二、SELinux
SELinux是美國國家安全域性(NSA)對於強制訪問控制的實現,是Linux歷史上最傑出的系統安全子系統。透過給系統所有使用者、程序、檔案分別賦予一個安全標記,透過安全策略規則來實施安全控制;只有安全策略允許的操作才能執行成功,安全策略禁止或者沒有定製安全策略的操作則執行失敗。
三、KYSEC
KYSEC是基於kysec安全標記對執行程式、指令碼檔案、共享庫、核心模組進行保護的一種安全機制。除了系統預設整合的執行程式、指令碼檔案、共享庫、核心模組,任何外來的該4種檔案,如複製、移動、下載、重新編譯生成等,都必須新增到麒麟安全管理工具的相應白名單列表中,才能執行呼叫。會對白名單列表中的檔案進行保護,保護檔案不被修改、移動、刪除。
1、安全模式
KYSEC有三種安全模式:
- 強制模式(Normal):出現違規操作時,不止會審計記錄該操作,還會阻止該操作的執行;
- 警告模式(Warning):出現違規操作時,會彈出麒麟安全授權認證框進行授權;
- 軟模式(Softmode):出現違規操作時,只會審計記錄該操作,而不會阻止該操作的執行。
2、使用介紹
1、檢視當前kysec的相關安全狀態
getstatus
顯示結果如下:
- 第一行Kysec status表示當前Kysec狀態為normal;
- 第二行exec control表示當前執行控制功能狀態為警告;
- 第三行net control表示當前網路控制功能狀態為警告;
- 第四行file protect表示當前檔案保護功能為開;
- 第五行kmod protect表示當前核心模組保護狀態為開;
- 第六行three protect表示當前三權分立狀態為關;
- 第七行process protect表示當前程序保護功能為開。
只有當相應功能的狀態為開(on)時,其所控制的功能配置才能生效。
2、修改當前Kysec的相關安全狀態
# 設定Kysec安全狀態為軟/強制模式;
sudo setstatus softmode/normal
# 關閉執行控制功能狀態:
sudo setstatus -f exectl off
# 開啟執行控制功能狀態:
sudo setstatus -f exectl on
# 關閉核心模組保護功能
sudo setstatus -f kmod off
# 關閉檔案保護功能
sudo setstatus -f fpro off
3、檢視Kysec安全標記
kysec_get /usr/sbin/kysec_get
顯示結果如下:
標記說明如下:
4、配置Kysec安全標記
kysec_set [-r] -n exectl/protect/userid -v 標記符號 file
設定檔案或目錄的kysec安全標記;exectl對應執行控制標記,protect對應檔案保護標記,userid對應檔案身份標記;(strict安全模式時,只有secadm可以執行)
例子:
sudo kysec_set -n exectl -v original /tmp/ls