[轉帖] 銀河麒麟系統安全機制-KYSEC

济南小老虎發表於2024-04-25
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
  • 第一行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

顯示結果如下:

[轉帖] 銀河麒麟系統安全機制-KYSEC

標記說明如下:

[轉帖] 銀河麒麟系統安全機制-KYSEC

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

相關文章