Linux涉及安全增強的配置項非常多, 主要有92個,涵蓋從內存保護到訪問控制的各個方面。根據內核版本的不同,具體的安全增強配置項數量可能會略有差異,但一般都在數十個到上百個之間。這些配置項可以通過修改內核配置文件(.config)來進行配置。
在一些Linux發行版中,可以通過命令行工具(如make menuconfig、make xconfig、make gconfig等)來打開內核配置界面,方便用戶進行配置。配置時需要根據自己的實際需求選擇相應的選項,有些選項需要硬件支持,需要先了解自己的硬件環境。
以下列舉一些常見的Linux安全增強配置項, 根據其功能分為:
Stack Protector:Stack Protector是一種針對緩沖區溢出攻擊的防御技術,它的實現是通過在函數的棧幀中插入一個特殊的隨機數值(稱為"Canary"), 在函數返回之前檢查這個隨機數值是否被破壞,如果被破壞則認為發生了緩沖區溢出攻擊,程序將會異常終止。Canary 是在函數調用時生成的,它的值是一個隨機數,并被保存在棧幀中。Linux內核中與stack canary相關的配置項主要有三個,分別是:
CONFIG_STACKPROTECTOR,CONFIG_STACKPROTECTOR_STRONG 和CONFIG_STACKPROTECTOR_PER_TASK。 其中,CONFIG_STACKPROTECTOR是平臺無關的編譯選項,決定是否開啟棧保護機制 ; CONFIG_STACKPROTECTOR_STRONG是進一步加強的棧保護機制,額外指定編譯選項 -fstack-protector-strong;CONFIG_STACKPROTECTOR_PER_TASK 則是平臺相關的編譯選項,決定是否開啟內核 per-task 的棧保護機制。
2. Memory Encryption:在內存中存儲加密的數據,防止機密信息泄漏。這需要硬件支持(如Intel的Memory Encryption Technology)來實現。相關的Linux configuration選項包CONFIG_AMD_MEM_ENCRYPT是AMD平臺的內存加密支持。CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE:啟用EFI Secure Boot簽名強制執行,以防止未經授權的內核和模塊加載。
CONFIG_ENCRYPTED_KEYS:啟用支持在內存中存儲加密的密鑰。CONFIG_CRYPTO_XTS:啟用XTS模式的加密算法,這是一種用于塊設備加密的加密模式,也可以用于內存加密。CONFIG_SECURITY_DMESG_RESTRICT:限制dmesg的訪問,以防止泄漏敏感信息。
3. 地址空間隨機化: 地址空間隨機化包括ASLR和KASLR。ASLR(地址空間隨機化):隨機化用戶空間程序的內存布局,增加攻擊者猜測攻擊點的難度。KASLR(內核地址空間隨機化):隨機化內核地址空間的布局,使攻擊者更難以定位內核代碼和數據的位置。
4. MMU 和 IOMMU: 管理內存訪問并提供內存隔離安全性。Page and page table Isolation
5. Spectre/Meltdown Protection:一些針對Spectre和Meltdown漏洞的修復措施,可以防止攻擊者利用這些漏洞讀取敏感信息。
6. Privileged Access Never:限制操作系統內核的代碼和數據只能在用戶態下訪問,防止惡意代碼通過內核攻擊訪問敏感信息和特權資源。比如Intel的Control-flow EnforcementTechnology(CET), 和 ARM的Pointer Authentication Code(PAC)。
7. User Access Override: 它是Intel x86架構中一項用于內存訪問控制的硬件特性。UAO允
許特權級別較低的用戶程序直接讀取或寫入特權級別較高的內存地址,繞過了傳統的內存保護機制。為了避免UAO帶來的安全問題,現代操作系統通常禁用或限制用戶程序的UAO訪問權限。在Linux系統中,管理員可以通過設置內核參數來啟用或禁用UAO功能,以適應不同的使用場景和安全需求。例如,可以通過設置"uao=never"來完全禁用UAO,或者通過設置"uao=auto"來根據硬件和系統配置自動選擇是否啟用UAO。
8. Execute-only memory:一種內存保護技術,它可以將某些內存區域設置為只允許執行代碼而不允許讀取或寫入。這種技術可以防止某些攻擊者通過讀取內存中的機密信息或向內存寫入惡意代碼來破壞系統安全。
9. Capability: 對內核的functionality進行隔離。
10. 安全增強型Linux (DAC MAC):一個強制訪問控制框架,可以限制進程的權限,防止未經授權的訪問和攻擊。
11. Control Groups:限制進程使用的系統資源,如CPU、內存和網絡帶寬等,防止資源耗盡和拒絕服務攻擊。
12. Seccomp:用于限制進程能夠執行的系統調用和參數,以減少攻擊面。
13. Namespace: 用于container的視圖隔離。
14. Confidential computing: 用于支持各種TEE配置。
審核編輯:劉清
-
ARM
+關注
關注
134文章
9097瀏覽量
367585 -
dac
+關注
關注
43文章
2294瀏覽量
191066 -
LINUX內核
+關注
關注
1文章
316瀏覽量
21651 -
MMU
+關注
關注
0文章
91瀏覽量
18291
原文標題:task force:Linux中的安全增強
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論