Alibaba Cloud Linux系統預設啟用漏洞修複功能,但該功能可能對系統效能產生影響。您可以根據實際需要選擇關閉漏洞修複。本文將介紹Alibaba Cloud Linux系統中存在的CPU漏洞、漏洞狀態檔案以及關閉漏洞修複的方法。
背景資訊
2018年01月,Google Project Zero公布現代處理器存在安全性漏洞Spectre與Meltdown。攻擊者通過這些漏洞竊取高特權級的資料,因而對系統安全存在嚴重威脅。這兩組漏洞幾乎涉及當今大部分主流處理器(包括Intel、AMD、ARM等多種架構),自公開以來便引發了廣泛的討論。不可避免地,阿里雲相關產品也受到這些漏洞的影響。隨後,包括Linux在內的主流作業系統都對漏洞進行了相應的軟體修複。自2018年01月Spectre與Meltdown漏洞首次公布以來,新變種以及新類型的漏洞不斷出現,因此可以預見,在未來相當一段時間內,這些漏洞的存在將成為常態。
由於漏洞利用處理器硬體的推測執行(Speculative Execution)以及亂序執行(Out-of-order Execution)特性,而這些特性對於現代處理器的效能提升具有不可或缺的作用,因此修複漏洞會有一定的效能回退。
軟體修複通常只能緩解,不能根治漏洞問題。
安全性漏洞說明
下面分別介紹Alibaba Cloud Linux 2和Alibaba Cloud Linux 3系統中的安全性漏洞詳情,以及如何通過啟動命令列(boot cmdline)關閉安全性漏洞修複。
Alibaba Cloud Linux 3
x86
CVE | 漏洞狀態檔案所在路徑① | 預設處理方式 | 關閉漏洞修複的方法 |
/sys/devices/system/cpu/vulnerabilities/spectre_v1 | 預設開啟漏洞修複 | 強制開啟,無法關閉 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v1 | 預設開啟漏洞修複 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v2 | 預設開啟漏洞修複 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass | 核心根據硬體特性自動開啟漏洞修複 | 添加以下任意一個參數:
| |
/sys/devices/system/cpu/vulnerabilities/meltdown | 預設開啟漏洞修複 | 添加以下任意一個參數:
| |
/sys/devices/system/cpu/vulnerabilities/l1tf | 預設開啟漏洞修複 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/mds | 預設開啟漏洞修複 | 須同時添加以下兩個參數:
| |
/sys/devices/system/cpu/vulnerabilities/srbds | 預設由處理器微碼修複 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data | 預設開啟漏洞修複 | 須同時添加以下三個參數:
| |
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort | 預設開啟漏洞修複 | 須同時添加以下兩個參數:
| |
/sys/devices/system/cpu/vulnerabilities/retbleed | 預設開啟漏洞修複 | 添加 說明 僅 | |
不涉及 | 不涉及 | 不涉及 | 添加 |
ARM64
CVE | 漏洞狀態檔案所在路徑① | 預設處理方式 | 關閉漏洞修複的方法 |
/sys/devices/system/cpu/vulnerabilities/spectre_v1 | 預設開啟漏洞修複 | 強制開啟,無法關閉 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v2 | 預設開啟漏洞修複 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v2 | 預設開啟漏洞修複 | 添加 說明 僅 | |
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass | 預設開啟漏洞修複 | 添加 | |
/sys/devices/system/cpu/vulnerabilities/meltdown | 預設開啟漏洞修複 | 添加 | |
不涉及 | 不涉及 | 不涉及 | 添加 |
Alibaba Cloud Linux 2
CVE | 漏洞狀態檔案所在路徑① | 預設處理方式 | 關閉漏洞修複的方法 |
/sys/devices/system/cpu/vulnerabilities/spectre_v1 | 預設開啟漏洞修複 | 強制開啟,無法關閉 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v1 | 預設開啟漏洞修複 | nospectre_v1=off 說明 僅 | |
/sys/devices/system/cpu/vulnerabilities/spectre_v2 | 預設開啟漏洞修複(spectre_v2=auto) | 添加以下任意一個參數:
說明 僅
| |
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass | 若處理器支援 | 添加以下任意一個參數:
說明 僅
| |
/sys/devices/system/cpu/vulnerabilities/meltdown | 預設開啟漏洞修複 | 添加以下任意一個參數:
說明 僅
| |
/sys/devices/system/cpu/vulnerabilities/l1tf | Guest Kernel中只開啟 | l1tf=off 說明 僅
| |
/sys/devices/system/cpu/vulnerabilities/mds | 預設開啟漏洞修複 | mds=off 說明 僅 | |
不涉及 | 不涉及 | 不涉及 | 添加 |
①漏洞狀態檔案表示Alibaba Cloud Linux系統所在執行個體的CPU是否存在漏洞以及採取的處理措施,各狀態表示:
Not affected:表示當前CPU不存在該漏洞。Vulnerable:表示當前CPU存在該漏洞,沒有採取任何緩解措施(關閉漏洞修複)。Mitigation:表示當前CPU存在該漏洞,採取了相應緩解措施(開啟漏洞修複)。
關閉漏洞修複
以在Alibaba Cloud Linux 3系統中關閉spectre_v2漏洞修複為例。
執行以下命令,將
nospectre_v2參數添加到預設核心的boot cmdline中,以關閉安全性漏洞修複功能。sudo grubby --update-kernel=`sudo grubby --default-kernel` --args='nospectre_v2'執行以下命令,重啟執行個體使配置生效。
警告重啟執行個體將導致您的執行個體暫停運行,這可能引發業務中斷和資料丟失。因此,建議您在執行此操作之前備份關鍵資料,並選擇在非業務高峰期進行。
sudo reboot執行以下命令,查看漏洞狀態檔案,確認漏洞修複是否關閉。
cd /sys/devices/system/cpu/vulnerabilities/ for i in `ls`;do echo -n $i": ";cat $i;done如下圖所示,
spectre_v2: Vulnerable表示當前CPU的spectre_v2漏洞修複已關閉。