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)可以通過(guò)修改內(nèi)核配置文件(.config)來(lái)進(jìn)行配置。
在一些Linux發(fā)行版中,可以通過(guò)命令行工具(如make menuconfig、make xconfig、make gconfig等)來(lái)打開內(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是一種針對(duì)緩沖區(qū)溢出攻擊的防御技術(shù),它的實(shí)現(xiàn)是通過(guò)在函數(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)無(wú)關(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)來(lái)實(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)存布局,增加攻擊者猜測(cè)攻擊點(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:一些針對(duì)Spectre和Meltdown漏洞的修復(fù)措施,可以防止攻擊者利用這些漏洞讀取敏感信息。
6. Privileged Access Never:限制操作系統(tǒng)內(nèi)核的代碼和數(shù)據(jù)只能在用戶態(tài)下訪問,防止惡意代碼通過(guò)內(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)存地址,繞過(guò)了傳統(tǒng)的內(nèi)存保護(hù)機(jī)制。為了避免UAO帶來(lái)的安全問題,現(xiàn)代操作系統(tǒng)通常禁用或限制用戶程序的UAO訪問權(quán)限。在Linux系統(tǒng)中,管理員可以通過(guò)設(shè)置內(nèi)核參數(shù)來(lái)啟用或禁用UAO功能,以適應(yīng)不同的使用場(chǎng)景和安全需求。例如,可以通過(guò)設(shè)置"uao=never"來(lái)完全禁用UAO,或者通過(guò)設(shè)置"uao=auto"來(lái)根據(jù)硬件和系統(tǒng)配置自動(dòng)選擇是否啟用UAO。
8. Execute-only memory:一種內(nèi)存保護(hù)技術(shù),它可以將某些內(nèi)存區(qū)域設(shè)置為只允許執(zhí)行代碼而不允許讀取或?qū)懭?。這種技術(shù)可以防止某些攻擊者通過(guò)讀取內(nèi)存中的機(jī)密信息或向內(nèi)存寫入惡意代碼來(lái)破壞系統(tǒng)安全。
9. Capability: 對(duì)內(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文章
9180瀏覽量
369427 -
dac
+關(guān)注
關(guān)注
43文章
2313瀏覽量
191639 -
LINUX內(nèi)核
+關(guān)注
關(guān)注
1文章
316瀏覽量
21750 -
MMU
+關(guān)注
關(guān)注
0文章
92瀏覽量
18380
原文標(biāo)題:task force:Linux中的安全增強(qiáng)
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于Linux內(nèi)核的透明代理配置方案
Linux內(nèi)核配置系統(tǒng)的組成
![<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核配置</b>系統(tǒng)的組成](https://file1.elecfans.com/web2/M00/8C/BF/wKgaomSw9mCAMyLEAAMwvxnFEZs006.jpg)
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ò)資料說(shuō)明
嵌入式Linux系統(tǒng)移植(Linux內(nèi)核配置)
![嵌入式<b class='flag-5'>Linux</b>系統(tǒng)移植(<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核配置</b>)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32MP157 Linux系統(tǒng)移植開發(fā)篇8:Linux內(nèi)核配置方法及編譯
![STM32MP157 <b class='flag-5'>Linux</b>系統(tǒng)移植開發(fā)篇8:<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核配置</b>方法及編譯](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
OpenHarmony技術(shù)論壇:內(nèi)核增強(qiáng)特性介紹
![OpenHarmony技術(shù)論壇:<b class='flag-5'>內(nèi)核</b><b class='flag-5'>增強(qiáng)</b>特性介紹](https://file.elecfans.com/web2/M00/3F/28/pYYBAGJmT92AQgSHAAtpZpByd-Q446.png)
評(píng)論