全部產品
Search
文件中心

Alibaba Cloud Linux:Alibaba Cloud Linux 3系統關閉CPU漏洞修複的方法

更新時間:Jul 17, 2024

Alibaba Cloud Linux 3系統預設開啟漏洞修複,但是漏洞修複會對系統有效能方面的影響,您可以根據實際需要選擇關閉漏洞修複。本文主要介紹Alibaba Cloud Linux 3系統中存在的CPU漏洞、漏洞狀態檔案、關閉漏洞修複的方法等。

背景資訊

2018年01月,Google Project Zero公布現代處理器存在安全性漏洞SpectreMeltdown。攻擊者可以使用這些漏洞竊取高特權級的資料,因而對系統安全存在嚴重威脅。同時這兩組漏洞幾乎涉及當今大部分主流的處理器(包括Intel、AMD、ARM等多種架構),自公開時,便引起了廣泛的討論。不可避免的,阿里雲相關產品也受到該漏洞的影響。隨後,包括Linux在內的主流作業系統都對漏洞進行了相應的軟體修複。同時,自2018年01月Spectre與Meltdown漏洞被首次公布以來,新變種以及新類型的漏洞不斷出現,因此可以預見,在未來相當一段時間內,這些漏洞的存在會成為常態。

重要
  • 由於漏洞利用處理器硬體的推測執行(Speculative Execution)以及亂序執行(Out-of-order Execution)特性,而這些特性對於現代處理器的效能提升具有不可或缺的作用,因此修複漏洞會有一定的效能回退。

  • 軟體修複通常只能緩解,不能根治漏洞問題。

安全性漏洞介紹

Alibaba Cloud Linux 3系統支援x86處理器與arm64處理器,這兩類處理器在CPU安全性漏洞的處理上有一定區別,下面分別介紹Alibaba Cloud Linux 3系統中x86與arm64的安全性漏洞詳情,以及如何通過啟動命令列(boot cmdline)關閉安全性漏洞修複。

x86

CVE

漏洞狀態檔案所在路徑

預設處理方式

關閉漏洞修複的方法

Spectre Variant 1(Bounds Check Bypass)

/sys/devices/system/cpu/vulnerabilities/spectre_v1

預設開啟漏洞修複

強制開啟,無法關閉

Spectre Variant 1(swapgs)

/sys/devices/system/cpu/vulnerabilities/spectre_v1

預設開啟漏洞修複

添加nospectre_v1參數

Spectre Variant 2

/sys/devices/system/cpu/vulnerabilities/spectre_v2

預設開啟漏洞修複

添加nospectre_v2參數

Spectre Variant 4(Speculative Store Bypass)

/sys/devices/system/cpu/vulnerabilities/spec_store_bypass

核心根據硬體特性自動開啟漏洞修複

添加以下任意一個參數:

  • nospec_store_bypass_disable

  • spec_store_bypass_disable=off

Meltdown

/sys/devices/system/cpu/vulnerabilities/meltdown

預設開啟漏洞修複

添加以下任意一個參數:

  • pti=off

  • nopti

L1TF

/sys/devices/system/cpu/vulnerabilities/l1tf

預設開啟漏洞修複

添加l1tf=off參數

MDS

/sys/devices/system/cpu/vulnerabilities/mds

預設開啟漏洞修複

須同時添加以下兩個參數:

  • mds=off

  • tsx_async_abort=off

SRBDS

/sys/devices/system/cpu/vulnerabilities/srbds

預設由處理器微碼修複

添加srbds=off參數

MMIO Stale Data

/sys/devices/system/cpu/vulnerabilities/mmio_stale_data

預設開啟漏洞修複

須同時添加以下三個參數:

  • mmio_stale_data=off

    說明

    5.10.134-12及之後的核心版本支援。

  • mds=off

  • tsx_async_abort=off

TAA

/sys/devices/system/cpu/vulnerabilities/tsx_async_abort

預設開啟漏洞修複

須同時添加以下兩個參數:

  • tsx_async_abort=off

  • mds=off

RETBleed

/sys/devices/system/cpu/vulnerabilities/retbleed

預設開啟漏洞修複

添加retbleed=off參數

說明

5.10.134-12及之後的核心版本支援。

不涉及

不涉及

不涉及

添加mitigations=off參數關閉所有漏洞修複

ARM64

CVE

漏洞狀態檔案所在路徑

預設處理方式

關閉漏洞修複的方法

Spectre Variant 1(Bounds Check Bypass)

/sys/devices/system/cpu/vulnerabilities/spectre_v1

預設開啟漏洞修複

強制開啟,無法關閉

Spectre Variant 2

/sys/devices/system/cpu/vulnerabilities/spectre_v2

預設開啟漏洞修複

添加nospectre_v2參數。具體操作,請參見操作步驟

Spectre Variant 2 (BHB)

/sys/devices/system/cpu/vulnerabilities/spectre_v2

預設開啟漏洞修複

添加nospectre_bhb參數

說明

5.10.134-12及之後的核心版本支援。

Spectre Variant 4(Speculative Store Bypass)

/sys/devices/system/cpu/vulnerabilities/spec_store_bypass

預設開啟漏洞修複

添加ssbd=force-off參數

Meltdown

/sys/devices/system/cpu/vulnerabilities/meltdown

預設開啟漏洞修複

添加kpti=0參數

不涉及

不涉及

不涉及

添加mitigations=off參數關閉所有漏洞修複

說明

漏洞狀態檔案表示Alibaba Cloud Linux 3系統所在執行個體的CPU是否存在漏洞以及採取的處理措施,各狀態表示:

  • Not affected:表示當前CPU不存在該漏洞。

  • Vulnerable:表示當前CPU存在該漏洞,沒有採取任何緩解措施(關閉漏洞修複)。

  • Mitigation:表示當前CPU存在該漏洞,採取了相應緩解措施(開啟漏洞修複)。

操作步驟

以下步驟以關閉spectre_v2漏洞修複為例,介紹如何關閉Alibaba Cloud Linux 3系統的安全性漏洞修複。

  1. 遠端連線Alibaba Cloud Linux 3所在的ECS執行個體。

    具體操作,請參見通過密碼或密鑰認證登入Linux執行個體

  2. 執行以下命令,將nospectre_v2參數添加到預設核心的boot cmdline中,以關閉安全性漏洞修複。

    grubby --update-kernel=`grubby --default-kernel` --args='nospectre_v2'
  3. 執行以下命令,重啟執行個體使配置生效。

    reboot
  4. 執行以下命令,查看漏洞狀態檔案,確認漏洞修複是否關閉。

    cd /sys/devices/system/cpu/vulnerabilities/
    for i in `ls`;do echo -n $i": ";cat $i;done

    如下圖所示,spectre_v2: Vulnerable表示當前CPU存在spectre_v2漏洞,沒有採取相應緩解措施,即漏洞修複已關閉。

    image.png