本文描述了阿里雲ECS如何應對和預防Meltdown與Spectre損害,您可以根據本文描述瞭解阿里雲ECS側的安全措施。

背景資訊

漏洞Meltdown與Spectre(中文名稱為熔斷和幽靈)是存在於英特爾(Intel)處理器晶片的安全性漏洞。該漏洞事件來源於晶片硬體層面的設計缺陷,可導致作業系統核心資訊泄露、應用程式越權訪問系統核心資料等問題。漏洞編號請在 CVE 網站搜尋查看:分別為:

阿里雲於2018年1月20日發布了安全性漏洞公告公示漏洞風險詳情及影響範圍。

本文具體介紹阿里雲提供的公用鏡像(GuestOS)安全補丁設定情況,及您如何根據具體情況配置作業系統。預設安全性原則如下所示:

  • 對Meltdown漏洞預設採取pti on(Page Table Isolation開啟)措施,開啟Meltdown安全性漏洞補丁。
  • 對Spectre漏洞預設採取noibrs(No Indirect Branch Restricted Speculation,禁止間接分支限制推測)措施,結合了reptpoline和ibpb(Indirect Branch Prediction Barriers)的限制策略。

如何開啟或者關閉Meltdown安全性漏洞補丁

已開啟Meltdown安全性漏洞補丁(採取pti on措施)的公用鏡像包括:

  • CentOS 7.5/7.6
  • Debian 9.6/8.10
  • Red Hat 7.5/7.6
  • SUSE Linux 15
  • Ubuntu 18.04
  • CoreOS 1911.3.0
  • FreeBSD 11.2
  • OpenSUSE 15

以上列表將隨阿里雲公用鏡像的更新而發生變化。

如果您認為開啟PTI對執行個體效能有影響,或者您有其他防護措施,可以根據以下步驟關閉PTI:

  1. 遠端連線執行個體。
  2. 選擇您要做的操作:
    • CentOS、Debian、OpenSUSE、Red Hat、SUSE Linux和Ubuntu:添加核心參數nopti
    • CoreOS:運行vi /usr/share/oem/grub.cfg,在GRUB設定檔中加入pti=off
    • FreeBSD:運行vi /boot/loader.conf,在設定檔中加入vm.pmap.pti=0
  3. 重啟執行個體。

如何開啟或者關閉Spectre安全性漏洞補丁

阿里雲目前支援ibrs和ibpb能力輸出。公用鏡像預設通過reptpoline和ibpb (Indirect Branch Prediction Barriers)的限制策略對Spectre漏洞進行防護,同時通過noibrs參數禁用了ibrs。涉及的公用鏡像包括:

  • CentOS 7.5/7.6
  • Debian 9.6/8.10
  • Red Hat 7.5/7.6
  • SUSE Linux 15
  • Ubuntu 18.04
  • CoreOS 1911.3.0
  • FreeBSD 11.2
  • OpenSUSE 15

以上列表將隨阿里雲公用鏡像的更新而發生變化。

如果您需要恢複作業系統預設設定,或者認為當前設定對效能有影響或您有其他防護措施需要關閉Spectre安全性漏洞補丁,請按照以下步驟做相應修改:

  1. 遠端連線執行個體。
  2. 根據下表中的說明選擇您要做的操作:
    發行平台 如何恢複阿里雲預設設定 如何恢複作業系統預設設定 如何關閉Spectre漏洞補丁
    CentOS 添加核心參數noibrs 刪除核心參數noibrs 添加核心參數spectre_v2=off
    Red Hat
    CoreOS 運行vi /usr/oem/share/grub.cfg在GRUB設定檔中添加核心參數spectre_v2=off 刪除核心參數spectre_v2=off
    OpenSUSE 添加核心參數spectre_v2=off
    Debian 已預設開啟retpoline與ibpb防護措施 無需修改
    Ubuntu
    SUSE Linux 已預設開啟retpoline防護措施
    FreeBSD 添加核心參數hw.ibrs_disable 刪除核心參數hw.ibrs_disable 添加核心參數hw.ibrs_disable
    说明 核心參數noibrs對OpenSUSE和CoreOS作業系統無效,您需要通過設定spectre_v2=off添加防護措施。
  3. 重啟執行個體。

如何檢測是否開啟防護

  1. 遠端連線執行個體。
  2. GitHub spectre-meltdown-checker Repo擷取spectre-meltdown-checker.sh檢測指令碼。
  3. 在執行個體內部運行:
    1. chmod +x spectre-meltdown-checker.shsudo bash spectre-meltdown-checker.sh
  4. 根據指令碼提示判斷是否已開啟Meltdown或Spectre防護。

相關連結

若您使用的是下列作業系統,可以前往官網瞭解更多詳情:

  1. </article>
  2. </main>