2018年1月4日,Jann Horn等安全研究者披露了"Meltdown"(CVE-2017-5754)和"Spe..."/>
ITBear旗下自媒體矩陣:

360網(wǎng)絡(luò)安全響應(yīng)中心發(fā)布CPU漏洞修復(fù)指南

   時(shí)間:2018-01-09 20:56:29 來(lái)源:互聯(lián)網(wǎng)編輯:星輝 發(fā)表評(píng)論無(wú)障礙通道

0x00 概述

2018年1月4日,Jann Horn等安全研究者披露了"Meltdown"(CVE-2017-5754)和"Spectre"(CVE-2017-5753 & CVE-2017-5715)兩組CPU特性漏洞。

據(jù)悉,漏洞會(huì)造成CPU運(yùn)作機(jī)制上的信息泄露,低權(quán)級(jí)的攻擊者可以通過(guò)漏洞來(lái)遠(yuǎn)程泄露用戶信息或本地泄露更高權(quán)級(jí)的內(nèi)存信息。

實(shí)際攻擊場(chǎng)景中,攻擊者在一定條件下可以做到,

· 泄露出本地操作系統(tǒng)底層運(yùn)作信息,秘鑰信息等;

· 通過(guò)獲取泄露的信息,可以繞過(guò)內(nèi)核(Kernel), 虛擬機(jī)超級(jí)管理器(HyperVisor)的隔離防護(hù);

· 云服務(wù)中,可能可以泄露到其它租戶隱私信息;

· 通過(guò)瀏覽器泄露受害者的帳號(hào),密碼,內(nèi)容,郵箱, cookie等用戶隱私信息;

目前相關(guān)的平臺(tái),廠商,軟件提供商都在積極應(yīng)對(duì)該系列漏洞,部分廠商提供了解決方案。

經(jīng)過(guò)360安全團(tuán)隊(duì)評(píng)估,"Meltdown"和"Spectre"漏洞影響重要,修復(fù)流程較復(fù)雜,建議相關(guān)企業(yè)/用戶在充分了解補(bǔ)丁風(fēng)險(xiǎn)的基礎(chǔ)上,作好相關(guān)的修復(fù)評(píng)估工作。

0x01漏洞影響面

影響面

漏洞風(fēng)險(xiǎn)等級(jí)重要,影響廣泛:

· 近20年的Intel, AMD,Qualcomm廠家和其它ARM的處理器受到影響;

· 因?yàn)榇舜蜟PU漏洞的特殊性,包括Linux, Windows, OSX, iOS, Android等在內(nèi)的操作系統(tǒng)平臺(tái)參與了修復(fù);

· 360安全瀏覽器, Firefox, Chrome, Edge等瀏覽器也發(fā)布了相關(guān)的安全公告和緩解方案;

漏洞編號(hào)

· Meltdown:CVE-2017-5754

· Spectre :CVE-2017-5715 和 CVE-2017-5753

0x02部分漏洞信息

注:本段文字中直接引用了相關(guān)安全公告,如有異議請(qǐng)聯(lián)系cert@#。

現(xiàn)代處理器(CPU)的運(yùn)作機(jī)制中存在兩個(gè)用于加速執(zhí)行的特性,推測(cè)執(zhí)行(Speculative Execution)和間接分支預(yù)測(cè)(Indirect Branch Prediction)。

表面上看,處理器是依次順序執(zhí)行既定的處理器指令。但是,現(xiàn)代處理器為了更好利用處理器資源,已經(jīng)開(kāi)始啟用并行執(zhí)行,這個(gè)技術(shù)已經(jīng)應(yīng)用了20年左右(1995年開(kāi)始)。假設(shè),基于猜測(cè)或概率的角度,在當(dāng)前的指令或分支還未執(zhí)行完成前就開(kāi)始執(zhí)行可能會(huì)被執(zhí)行的指令或分支,會(huì)發(fā)生什么?如果猜對(duì)了,直接使用,CPU執(zhí)行加速了。如果猜測(cè)不正確,則取消操作并恢復(fù)到原來(lái)的現(xiàn)場(chǎng)(寄存器,內(nèi)存等),結(jié)果會(huì)被忽略。整個(gè)過(guò)程并不會(huì)比沒(méi)有猜測(cè)的時(shí)候慢,即CPU的推測(cè)執(zhí)行(Speculative Execution)技術(shù)。

不幸的是,盡管架構(gòu)狀態(tài)被回滾了,仍然有些副作用,比如TLB或緩存狀態(tài)并沒(méi)有被回滾。這些副作用隨后可以被黑客通過(guò)旁道攻擊(Side Channel Attack)的方式獲取到緩存的內(nèi)容。如果攻擊者能觸發(fā)推測(cè)執(zhí)行去訪問(wèn)指定的敏感數(shù)據(jù)區(qū)域的話,就可能可以讀取到更高特權(quán)級(jí)的敏感數(shù)據(jù)。

此外,猜測(cè)過(guò)程是可以被“污染”的,攻擊者可以構(gòu)造出類似ROP攻擊的邏輯去影響推測(cè)過(guò)程。根據(jù)作者提供的思路,主要有三種場(chǎng)景:

1. “邊界檢查繞過(guò)”:通過(guò)污染分支預(yù)測(cè),來(lái)繞過(guò)kernel或hypervisor的內(nèi)存對(duì)象邊界檢測(cè)。比如,攻擊者可以對(duì)高權(quán)級(jí)的代碼段,或虛擬環(huán)境中hypercall,通過(guò)構(gòu)造的惡意代碼來(lái)觸發(fā)有越界的數(shù)據(jù)下標(biāo),造成越界訪問(wèn)。

2. “分支目標(biāo)注入”: 污染分支預(yù)測(cè)。抽象模型比較好的代碼往往帶有間接函數(shù)指針調(diào)用的情況,CPU在處理時(shí)需要會(huì)進(jìn)行必要的內(nèi)存訪問(wèn),這個(gè)過(guò)程有點(diǎn)慢,所以CPU會(huì)預(yù)測(cè)分支。攻擊者可以通過(guò)類似的ROP的方式來(lái)進(jìn)行信息泄露。

3. “流氓數(shù)據(jù)加載”:部分CPU上,為了速度并不是每次都對(duì)指令作權(quán)限檢查的,檢查的條件存在一定的缺陷;

實(shí)際攻擊場(chǎng)景中,攻擊者在一定條件下可以做到,

· 泄露出本地操作系統(tǒng)底層運(yùn)作信息,秘鑰信息等;

· 通過(guò)獲取泄露的信息,可以繞過(guò)內(nèi)核(Kernel), 虛擬機(jī)超級(jí)管理器(HyperVisor)的隔離防護(hù);

· 云服務(wù)中,可以泄露到其它租戶隱私信息;

· 通過(guò)瀏覽器泄露受害者的帳號(hào),密碼,內(nèi)容,郵箱, cookie等用戶隱私信息;

360CERT和360GearTeam對(duì)漏洞進(jìn)行了研究性質(zhì)的嘗試。在Linux+Docker的環(huán)境下進(jìn)行的攻擊演示,通過(guò)利用Meltdown或Spectre漏洞,模擬在獨(dú)立的Docker容器A對(duì)同一個(gè)宿主中的Docker容器B進(jìn)行敏感數(shù)據(jù)(密碼)竊取的嘗試。

聲明:本試驗(yàn)是360CERT針對(duì)CPU的Meltdown和Spectre漏洞作的一個(gè)研究性測(cè)試,實(shí)際的Docker攻擊利用場(chǎng)景中需要滿足特殊和較嚴(yán)苛的限制條件。

目前幾大系統(tǒng)廠商各自在操作系統(tǒng)內(nèi)核中引入了KPTI的技術(shù),旨在和用戶態(tài)的頁(yè)表隔離,解決"Meltdown"漏洞問(wèn)題。但根據(jù)相關(guān)測(cè)試信息顯示,修復(fù)補(bǔ)丁可能帶來(lái)5%到30%性能上的損失,其中個(gè)人終端用戶基本感覺(jué)不到,部分服務(wù)器的IO場(chǎng)景可能造成較大的性能損耗。

針對(duì)"Spectre"漏洞,相關(guān)操作系統(tǒng)廠商和芯片廠商積極配合,通過(guò)微碼固件更新和操作系統(tǒng)更新的方式進(jìn)行解決。

0x03安全建議

360CERT建議企業(yè)/用戶務(wù)必在充分了解相關(guān)風(fēng)險(xiǎn)的基礎(chǔ)上,作好相關(guān)修復(fù)評(píng)估工作:

1. "Meltdown"和"Spectre"漏洞修復(fù)流程相對(duì)復(fù)雜,部分平臺(tái)上暫時(shí)沒(méi)有統(tǒng)一的修復(fù)工具;

2. 芯片廠商(如:Intel)的微碼固件補(bǔ)丁需要通過(guò)所在硬件OEM廠商獲取(如:Dell,聯(lián)想等);

3. 可能會(huì)有部分軟件不兼容問(wèn)題(如Windows平臺(tái)下的部分殺毒軟件等);

4. 在云平臺(tái)或特定應(yīng)用場(chǎng)景中可能造成較大幅度的性能損失,升級(jí)前請(qǐng)充分了解相關(guān)信息;

具體評(píng)估和修復(fù)工作,可以參考以下建議和相關(guān)廠商的安全公告:

Intel的緩解建議

Intel已經(jīng)和產(chǎn)業(yè)界聯(lián)合,包括其它處理器廠商和軟件廠商開(kāi)發(fā)者,來(lái)緩解之前提到的三種攻擊類型。緩解策略主要聚焦在適配市面產(chǎn)品和部分在研產(chǎn)品。緩解除了解決漏洞本身之外,還需要兼顧到性能影響,實(shí)施復(fù)雜度等方面。

啟用處理器已有的安全特性(如 Supervisor-Mode Execution Protection 和 Execute Disable Bit )可以有效提高攻擊門檻。相關(guān)信息可以參閱Intel的相關(guān)資料。

Intel一直在與操作系統(tǒng)廠商,虛擬化廠商,其它相關(guān)軟件開(kāi)發(fā)者進(jìn)行合作,協(xié)同緩解這些攻擊。作為我們的常規(guī)研發(fā)流程,Intel會(huì)積極保證處理器的性能。

來(lái)源:https://newsroom.intel.com/wp-content/uploads/sites/11/2018/01/Intel-Analysis-of-Speculative-Execution-Side-Channels.pdf

PC終端用戶

PC終端用戶,建議用戶根據(jù)各個(gè)平臺(tái)進(jìn)行如下對(duì)應(yīng)操作:

微軟Windows

修復(fù)步驟如下:

1. 更新對(duì)應(yīng)的瀏覽器,緩解"Spectre"漏洞攻擊;

2. 更新芯片廠商的微碼補(bǔ)丁

如:

3. 更新Windows補(bǔ)丁

用戶可直接下載360安全衛(wèi)士CPU漏洞免疫工具進(jìn)行更新:http://down.360safe.com/cpuleak_scan.exe

注意:根據(jù)微軟提供的信息,依然存在部分軟件不兼容(如殺毒軟件)的風(fēng)險(xiǎn),請(qǐng)充分了解風(fēng)險(xiǎn)后再選擇是否更新:

https://support.microsoft.com/en-us/help/4073119/windows-client-guidance-for-it-pros-to-protect-against-speculative-exe

蘋果OSX

蘋果在Mac OSX High Sierra 10.13.2 及更高版本修復(fù)了Meltdown和Spectre漏洞,請(qǐng)直接升級(jí)。

Android & iOS

蘋果在iOS 11.2.2及更高版本修復(fù)了Spectre漏洞;

Android產(chǎn)品將于近期更新,盡請(qǐng)留意。

IDC/云系統(tǒng)管理員

目前部分IDC/云基礎(chǔ)架構(gòu)廠商已經(jīng)提供了初步解決方案,但是由于補(bǔ)丁帶來(lái)的風(fēng)險(xiǎn)和性能損耗暫時(shí)沒(méi)有明確,權(quán)威的結(jié)論。

請(qǐng)系統(tǒng)管理員盡量做到:

1. 積極聯(lián)系相關(guān)的上游了解相關(guān)的風(fēng)險(xiǎn)和解決方案,協(xié)同制定解決方案;

2. 需要重點(diǎn)關(guān)注補(bǔ)丁帶來(lái)風(fēng)險(xiǎn)和性能損耗評(píng)估;

3. 從宏觀和微觀層面,制定完善,可行的修復(fù)和測(cè)試流程方案;

4. 涉及到的微碼固件補(bǔ)丁請(qǐng)聯(lián)系硬件OEM廠商,協(xié)同修復(fù),測(cè)試,評(píng)估;

以下是相關(guān)廠商提供的解決方案:

Linux-Redhat/CentOS發(fā)行版

Redhat提供了一份產(chǎn)品的修復(fù)狀態(tài)清單,建議用戶參照該清單進(jìn)行更新。具體用戶可以參考:

· https://access.redhat.com/security/vulnerabilities/speculativeexecution

· https://access.redhat.com/articles/3311301#page-table-isolation-pti-6

鑒于更新完補(bǔ)丁后,在部分應(yīng)用場(chǎng)景下會(huì)造成性能下降,RedHat方面提供了運(yùn)行時(shí)的解決方案:

· https://access.redhat.com/articles/3311301#page-table-isolation-pti-6

用戶可以通過(guò)以下命令臨時(shí)關(guān)閉或部分KPTI,Indirect Branch Restricted Speculation (ibrs),Indirect Branch Prediction Barriers (ibpb) 等安全特性。

# echo 0 > /sys/kernel/debug/x86/pti_enabled

# echo 0 > /sys/kernel/debug/x86/ibpb_enabled

# echo 0 > /sys/kernel/debug/x86/ibrs_enabled

該特性需要使用debugfs 文件系統(tǒng)被掛在,RHEL 7默認(rèn)開(kāi)啟了。 在RHEL 6中可以通過(guò)以下命令開(kāi)啟:

# mount -t debugfs nodev /sys/kernel/debug

用戶可以通過(guò)以下命令查看當(dāng)前安全特性的開(kāi)啟狀態(tài):

# cat /sys/kernel/debug/x86/pti_enabled

# cat /sys/kernel/debug/x86/ibpb_enabled

# cat /sys/kernel/debug/x86/ibrs_enabled

Intel芯片在修復(fù)后默認(rèn)如下:

pti 1 ibrs 1 ibpb 1 -> fix variant#1 #2 #3

pti 1 ibrs 0 ibpb 0 -> fix variant#1 #3 (for older Intel systems with no microcode update available)

Intel芯片在修復(fù)后默認(rèn)如下:

pti 0 ibrs 0 ibpb 2 -> fix variant #1 #2 if the microcode update is applied

pti 0 ibrs 2 ibpb 1 -> fix variant #1 #2 on older processors that can disable indirect branch prediction without microcode updates

在沒(méi)有微碼固件補(bǔ)丁升級(jí)的情況下:

# cat /sys/kernel/debug/x86/pti_enabled

1

# cat /sys/kernel/debug/x86/ibpb_enabled

0

# cat /sys/kernel/debug/x86/ibrs_enabled

0

注:Redhat等廠商并不直接提供芯片廠商的微碼,需要用戶到相關(guān)的硬件OEM廠商進(jìn)行咨詢獲取。

Linux-Ubuntu發(fā)行版

目前Ubuntu只完成對(duì)Meltdown(CVE-2017-5754)漏洞在 x86_64平臺(tái)上的更新。

請(qǐng)關(guān)注Ubuntu的更新鏈接:

https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SpectreAndMeltdown

Linux-Debian發(fā)行版

目前Debian完成了Meltdown(CVE-2017-5754)漏洞的修復(fù)。

關(guān)于CVE-2017-5715和CVE-2017-5753請(qǐng)關(guān)注Debian的更新鏈接:

https://security-tracker.debian.org/tracker/CVE-2017-5753

https://security-tracker.debian.org/tracker/CVE-2017-5715

微軟Windows Server

建議用戶開(kāi)啟系統(tǒng)自動(dòng)更新功能,進(jìn)行補(bǔ)丁補(bǔ)丁安裝。

根據(jù)微軟提供的信息,依然存在部分軟件不兼容(如殺毒軟件)的風(fēng)險(xiǎn),請(qǐng)充分了解風(fēng)險(xiǎn)后再選擇是否更新。

更多信息請(qǐng)查看:

https://support.microsoft.com/en-us/help/4073119/windows-client-guidance-for-it-pros-to-protect-against-speculative-exe

Xen虛擬化

目前Xen團(tuán)隊(duì)針對(duì)Meltdown,Spectre漏洞的修復(fù)工作依然在進(jìn)行中,請(qǐng)關(guān)注Xen的更新鏈接:

http://xenbits.xen.org/xsa/advisory-254.html

目前Xen暫時(shí)沒(méi)有性能損耗方面的明確評(píng)估,請(qǐng)謹(jǐn)慎更新。

QEMU-KVM虛擬化

QEMU官方建議通過(guò)更新guest和host操作系統(tǒng)的補(bǔ)丁來(lái)修復(fù)Meltdown漏洞,并表示Meltdown漏洞不會(huì)造成guest到host的信息竊取。

針對(duì)Spectre的變種CVE-2017-5715,QEMU方面正在等待KVM更新后再修復(fù),目前KVM在進(jìn)行相關(guān)補(bǔ)丁整合。需要注意的是,熱遷移不能解決CVE-2017-5715漏洞,KVM需要把cpu的新特性expose到guest內(nèi)核使用,所以guest需要重啟。

相關(guān)信息請(qǐng)查閱:

https://www.qemu.org/2018/01/04/spectre/

https://marc.info/?l=kvm&m=151543506500957&w=2

云平臺(tái)租戶

360CERT建議云平臺(tái)用戶,

1. 關(guān)注所在云廠商的安全公告,配合相關(guān)云廠商做好漏洞補(bǔ)丁修復(fù)工作;

2. 充分了解和注意補(bǔ)丁帶來(lái)的風(fēng)險(xiǎn)和性能損耗方面的指標(biāo);

3. 更新前可以考慮使用相關(guān)快照或備份功能;

0x04 FAQ 常見(jiàn)問(wèn)題

1. 問(wèn)題: Meltdown和Spectre漏洞具體技術(shù)影響。 比如利用這兩個(gè)漏洞發(fā)動(dòng)攻擊是否容易,什么條件下觸發(fā),危害多大?

回答: Meltdown和Spectre漏洞在一定的條件下都可以觸發(fā),例如通過(guò)本地環(huán)境,瀏覽器環(huán)境, Xen/QEMU-KVM中惡意租戶Guset的場(chǎng)景來(lái)觸發(fā)和攻擊,雖然目前尚未發(fā)現(xiàn)公開(kāi)的攻擊代碼,但能夠?qū)τ脩粼斐蓭ぬ?hào), 密碼, 內(nèi)容, 郵箱, cookie等隱私信息泄露潛在危害。從以往情況看,在漏洞暴露后一定時(shí)間內(nèi),就可能出現(xiàn)可利用的攻擊代碼。對(duì)此,我們需要保持高度警惕。

Meltdown漏洞主要作用于本地環(huán)境,可用于越權(quán)讀內(nèi)核內(nèi)存。Spectre由于不會(huì)觸發(fā)trap,可以用于瀏覽器攻擊,以及虛擬機(jī)guest/host攻擊,及其它存在代碼注入(如即時(shí)編譯JIT)程序的潛在攻擊。具體技術(shù)情況需如下:

2. 問(wèn)題:當(dāng)前對(duì)漏洞的處置情況到底怎么樣了,業(yè)界解決情況如何,有沒(méi)有比較完善的解決方案。目前能解決到什么程度,怎么才能徹底解決?

回答:目前大部分的個(gè)人終端操作系統(tǒng)(如Windows, MacOS, iOS, Android)都可以通過(guò)直接的渠道進(jìn)行更新解決,其中Windows平臺(tái)存在部分殺毒軟件不兼容風(fēng)險(xiǎn)。針對(duì)IDC或云廠商相關(guān)的系統(tǒng)管理員,除了還需要再繼續(xù)評(píng)估補(bǔ)丁的兼容性風(fēng)險(xiǎn)外,更需要再進(jìn)一步評(píng)估補(bǔ)丁可能帶來(lái)的較大幅度的性能損耗,目前芯片廠商也在積極和大型IDC,云服務(wù)提供商協(xié)同制定更完善的解決方案。

360CERT建議該怎么解決,后續(xù)該怎么做?

回答:360CERT建議,一方面,PC/手機(jī)的個(gè)人用戶可以直接通過(guò)操作系統(tǒng)廠商或第三方安全廠商提供的補(bǔ)丁來(lái)解決。另一方面,針對(duì)補(bǔ)丁給企業(yè)帶來(lái)修復(fù)難題,大型IDC/企業(yè)/云廠商,芯片廠商,操作系統(tǒng)廠商,信息安全公司要協(xié)同起來(lái),在補(bǔ)丁方案,補(bǔ)丁風(fēng)險(xiǎn)評(píng)估,補(bǔ)丁導(dǎo)致的性能損耗評(píng)估,綜合補(bǔ)丁標(biāo)準(zhǔn)方案,一體化補(bǔ)丁等方面形成合力,在保證業(yè)務(wù)穩(wěn)定的情況下逐步或分階段推進(jìn)補(bǔ)丁的修復(fù)工作。

0x05 時(shí)間線

2018-01-04 Google的Jann Horn發(fā)布漏洞信息

2018-01-04 360安全團(tuán)隊(duì)發(fā)布預(yù)警通告

2018-01-09 360安全團(tuán)隊(duì)發(fā)布簡(jiǎn)要修復(fù)指南

0x06 相關(guān)廠商公告

· Intel

https://newsroom.intel.com/news/intel-responds-to-security-research-findings/ https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00088&languageid=en-fr

https://www.intel.com/content/www/us/en/architecture-and-technology/facts-about-side-channel-analysis-and-intel-products.html

https://newsroom.intel.com/wp-content/uploads/sites/11/2018/01/Intel-Analysis-of-Speculative-Execution-Side-Channels.pdf

· Microsoft

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002

https://support.microsoft.com/en-us/help/4073119/windows-client-guidance-for-it-pros-to-protect-against-speculative-exe

· 聯(lián)想

https://support.lenovo.com/us/zh/solutions/len-18282

· 華為

http://www.huawei.com/en/psirt/security-advisories/huawei-sa-20180106-01-cpu-en

· Amazon

https://aws.amazon.com/de/security/security-bulletins/AWS-2018-013/

· ARM

https://developer.arm.com/support/security-update

· Google

https://googleprojectzero.blogspot.co.at/2018/01/reading-privileged-memory-with-side.html

https://www.chromium.org/Home/chromium-security/ssca

https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html

· MITRE

http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2017-5715

http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2017-5753

http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2017-5754

· Red Hat

https://access.redhat.com/security/vulnerabilities/speculativeexecution

https://access.redhat.com/articles/3311301#page-table-isolation-pti-6

· Apple

https://support.apple.com/en-us/HT208394

· Xen

http://xenbits.xen.org/xsa/advisory-254.html

· Mozilla

https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/

· VMware

https://www.vmware.com/us/security/advisories/VMSA-2018-0002.html

· AMD

https://www.amd.com/en/corporate/speculative-execution

· SuSe

https://www.suse.com/support/kb/doc/?id=7022512

· Ubuntu

https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SpectreAndMeltdown

· QEMU-KVM

https://marc.info/?l=kvm&m=151543506500957&w=2

https://www.qemu.org/2018/01/04/spectre/

· 漏洞報(bào)告

https://meltdownattack.com/meltdown.pdf

https://spectreattack.com/spectre.pdf

https://googleprojectzero.blogspot.co.uk/2018/01/reading-privileged-memory-with-side.html

· 360

http://down.360safe.com/cpuleak_scan.exe

舉報(bào) 0 收藏 0 打賞 0評(píng)論 0
 
 
更多>同類資訊
全站最新
熱門內(nèi)容
網(wǎng)站首頁(yè)  |  關(guān)于我們  |  聯(lián)系方式  |  版權(quán)聲明  |  網(wǎng)站留言  |  RSS訂閱  |  違規(guī)舉報(bào)  |  開(kāi)放轉(zhuǎn)載  |  滾動(dòng)資訊  |  English Version