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

linux內(nèi)核編譯
linux 內(nèi)核配置
Linux的內(nèi)核教程
Linux內(nèi)核配置系統(tǒng)詳解
如何配置和使用Linux內(nèi)核printk功能
Linux 5.4.1內(nèi)核已經(jīng)發(fā)布你期待使用嗎
Linux內(nèi)核配置的網(wǎng)絡(luò)資料說明
嵌入式Linux系統(tǒng)移植(Linux內(nèi)核配置)

STM32MP157 Linux系統(tǒng)移植開發(fā)篇8:Linux內(nèi)核配置方法及編譯

評(píng)論