0x00 概述
2018年1月4日,Jann Horn等安全研究者披露了"Meltdown"(CVE-2017-5754)和"Spectre"(CVE-2017-5753 & CVE-2017-5715)兩組CPU特性漏洞。
據(jù)悉,漏洞會造成CPU運作機制上的信息泄露,低權(quán)級的攻擊者可以通過漏洞來遠程泄露用戶信息或本地泄露更高權(quán)級的內(nèi)存信息。
實際攻擊場景中,攻擊者在一定條件下可以做到,
· 泄露出本地操作系統(tǒng)底層運作信息,秘鑰信息等;
· 通過獲取泄露的信息,可以繞過內(nèi)核(Kernel), 虛擬機超級管理器(HyperVisor)的隔離防護;
· 云服務(wù)中,可能可以泄露到其它租戶隱私信息;
· 通過瀏覽器泄露受害者的帳號,密碼,內(nèi)容,郵箱, cookie等用戶隱私信息;
目前相關(guān)的平臺,廠商,軟件提供商都在積極應(yīng)對該系列漏洞,部分廠商提供了解決方案。
經(jīng)過360安全團隊評估,"Meltdown"和"Spectre"漏洞影響重要,修復(fù)流程較復(fù)雜,建議相關(guān)企業(yè)/用戶在充分了解補丁風(fēng)險的基礎(chǔ)上,作好相關(guān)的修復(fù)評估工作。
0x01漏洞影響面
影響面
漏洞風(fēng)險等級重要,影響廣泛:
· 近20年的Intel, AMD,Qualcomm廠家和其它ARM的處理器受到影響;
· 因為此次CPU漏洞的特殊性,包括Linux, Windows, OSX, iOS, Android等在內(nèi)的操作系統(tǒng)平臺參與了修復(fù);
· 360安全瀏覽器, Firefox, Chrome, Edge等瀏覽器也發(fā)布了相關(guān)的安全公告和緩解方案;
漏洞編號
· Meltdown:CVE-2017-5754
· Spectre :CVE-2017-5715 和 CVE-2017-5753
0x02部分漏洞信息
注:本段文字中直接引用了相關(guān)安全公告,如有異議請聯(lián)系cert@#。
現(xiàn)代處理器(CPU)的運作機制中存在兩個用于加速執(zhí)行的特性,推測執(zhí)行(Speculative Execution)和間接分支預(yù)測(Indirect Branch Prediction)。
表面上看,處理器是依次順序執(zhí)行既定的處理器指令。但是,現(xiàn)代處理器為了更好利用處理器資源,已經(jīng)開始啟用并行執(zhí)行,這個技術(shù)已經(jīng)應(yīng)用了20年左右(1995年開始)。假設(shè),基于猜測或概率的角度,在當(dāng)前的指令或分支還未執(zhí)行完成前就開始執(zhí)行可能會被執(zhí)行的指令或分支,會發(fā)生什么?如果猜對了,直接使用,CPU執(zhí)行加速了。如果猜測不正確,則取消操作并恢復(fù)到原來的現(xiàn)場(寄存器,內(nèi)存等),結(jié)果會被忽略。整個過程并不會比沒有猜測的時候慢,即CPU的推測執(zhí)行(Speculative Execution)技術(shù)。
不幸的是,盡管架構(gòu)狀態(tài)被回滾了,仍然有些副作用,比如TLB或緩存狀態(tài)并沒有被回滾。這些副作用隨后可以被黑客通過旁道攻擊(Side Channel Attack)的方式獲取到緩存的內(nèi)容。如果攻擊者能觸發(fā)推測執(zhí)行去訪問指定的敏感數(shù)據(jù)區(qū)域的話,就可能可以讀取到更高特權(quán)級的敏感數(shù)據(jù)。
此外,猜測過程是可以被“污染”的,攻擊者可以構(gòu)造出類似ROP攻擊的邏輯去影響推測過程。根據(jù)作者提供的思路,主要有三種場景:
1. “邊界檢查繞過”:通過污染分支預(yù)測,來繞過kernel或hypervisor的內(nèi)存對象邊界檢測。比如,攻擊者可以對高權(quán)級的代碼段,或虛擬環(huán)境中hypercall,通過構(gòu)造的惡意代碼來觸發(fā)有越界的數(shù)據(jù)下標,造成越界訪問。
2. “分支目標注入”: 污染分支預(yù)測。抽象模型比較好的代碼往往帶有間接函數(shù)指針調(diào)用的情況,CPU在處理時需要會進行必要的內(nèi)存訪問,這個過程有點慢,所以CPU會預(yù)測分支。攻擊者可以通過類似的ROP的方式來進行信息泄露。
3. “流氓數(shù)據(jù)加載”:部分CPU上,為了速度并不是每次都對指令作權(quán)限檢查的,檢查的條件存在一定的缺陷;
實際攻擊場景中,攻擊者在一定條件下可以做到,
· 泄露出本地操作系統(tǒng)底層運作信息,秘鑰信息等;
· 通過獲取泄露的信息,可以繞過內(nèi)核(Kernel), 虛擬機超級管理器(HyperVisor)的隔離防護;
· 云服務(wù)中,可以泄露到其它租戶隱私信息;
· 通過瀏覽器泄露受害者的帳號,密碼,內(nèi)容,郵箱, cookie等用戶隱私信息;
360CERT和360GearTeam對漏洞進行了研究性質(zhì)的嘗試。在Linux+Docker的環(huán)境下進行的攻擊演示,通過利用Meltdown或Spectre漏洞,模擬在獨立的Docker容器A對同一個宿主中的Docker容器B進行敏感數(shù)據(jù)(密碼)竊取的嘗試。
聲明:本試驗是360CERT針對CPU的Meltdown和Spectre漏洞作的一個研究性測試,實際的Docker攻擊利用場景中需要滿足特殊和較嚴苛的限制條件。
目前幾大系統(tǒng)廠商各自在操作系統(tǒng)內(nèi)核中引入了KPTI的技術(shù),旨在和用戶態(tài)的頁表隔離,解決"Meltdown"漏洞問題。但根據(jù)相關(guān)測試信息顯示,修復(fù)補丁可能帶來5%到30%性能上的損失,其中個人終端用戶基本感覺不到,部分服務(wù)器的IO場景可能造成較大的性能損耗。
針對"Spectre"漏洞,相關(guān)操作系統(tǒng)廠商和芯片廠商積極配合,通過微碼固件更新和操作系統(tǒng)更新的方式進行解決。
0x03安全建議
360CERT建議企業(yè)/用戶務(wù)必在充分了解相關(guān)風(fēng)險的基礎(chǔ)上,作好相關(guān)修復(fù)評估工作:
1. "Meltdown"和"Spectre"漏洞修復(fù)流程相對復(fù)雜,部分平臺上暫時沒有統(tǒng)一的修復(fù)工具;
2. 芯片廠商(如:Intel)的微碼固件補丁需要通過所在硬件OEM廠商獲取(如:Dell,聯(lián)想等);
3. 可能會有部分軟件不兼容問題(如Windows平臺下的部分殺毒軟件等);
4. 在云平臺或特定應(yīng)用場景中可能造成較大幅度的性能損失,升級前請充分了解相關(guān)信息;
具體評估和修復(fù)工作,可以參考以下建議和相關(guān)廠商的安全公告:
Intel的緩解建議
Intel已經(jīng)和產(chǎn)業(yè)界聯(lián)合,包括其它處理器廠商和軟件廠商開發(fā)者,來緩解之前提到的三種攻擊類型。緩解策略主要聚焦在適配市面產(chǎn)品和部分在研產(chǎn)品。緩解除了解決漏洞本身之外,還需要兼顧到性能影響,實施復(fù)雜度等方面。
啟用處理器已有的安全特性(如 Supervisor-Mode Execution Protection 和 Execute Disable Bit )可以有效提高攻擊門檻。相關(guān)信息可以參閱Intel的相關(guān)資料。
Intel一直在與操作系統(tǒng)廠商,虛擬化廠商,其它相關(guān)軟件開發(fā)者進行合作,協(xié)同緩解這些攻擊。作為我們的常規(guī)研發(fā)流程,Intel會積極保證處理器的性能。
來源:https://newsroom.intel.com/wp-content/uploads/sites/11/2018/01/Intel-Analysis-of-Speculative-Execution-Side-Channels.pdf
PC終端用戶
PC終端用戶,建議用戶根據(jù)各個平臺進行如下對應(yīng)操作:
微軟Windows
修復(fù)步驟如下:
1. 更新對應(yīng)的瀏覽器,緩解"Spectre"漏洞攻擊;
2. 更新芯片廠商的微碼補丁
如:
3. 更新Windows補丁
用戶可直接下載360安全衛(wèi)士CPU漏洞免疫工具進行更新:http://down.360safe.com/cpuleak_scan.exe
注意:根據(jù)微軟提供的信息,依然存在部分軟件不兼容(如殺毒軟件)的風(fēng)險,請充分了解風(fēng)險后再選擇是否更新:
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漏洞,請直接升級。
Android & iOS
蘋果在iOS 11.2.2及更高版本修復(fù)了Spectre漏洞;
Android產(chǎn)品將于近期更新,盡請留意。
IDC/云系統(tǒng)管理員
目前部分IDC/云基礎(chǔ)架構(gòu)廠商已經(jīng)提供了初步解決方案,但是由于補丁帶來的風(fēng)險和性能損耗暫時沒有明確,權(quán)威的結(jié)論。
請系統(tǒng)管理員盡量做到:
1. 積極聯(lián)系相關(guān)的上游了解相關(guān)的風(fēng)險和解決方案,協(xié)同制定解決方案;
2. 需要重點關(guān)注補丁帶來風(fēng)險和性能損耗評估;
3. 從宏觀和微觀層面,制定完善,可行的修復(fù)和測試流程方案;
4. 涉及到的微碼固件補丁請聯(lián)系硬件OEM廠商,協(xié)同修復(fù),測試,評估;
以下是相關(guān)廠商提供的解決方案:
Linux-Redhat/CentOS發(fā)行版
Redhat提供了一份產(chǎn)品的修復(fù)狀態(tài)清單,建議用戶參照該清單進行更新。具體用戶可以參考:
· https://access.redhat.com/security/vulnerabilities/speculativeexecution
· https://access.redhat.com/articles/3311301#page-table-isolation-pti-6
鑒于更新完補丁后,在部分應(yīng)用場景下會造成性能下降,RedHat方面提供了運行時的解決方案:
· https://access.redhat.com/articles/3311301#page-table-isolation-pti-6
用戶可以通過以下命令臨時關(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默認開啟了。 在RHEL 6中可以通過以下命令開啟:
# mount -t debugfs nodev /sys/kernel/debug
用戶可以通過以下命令查看當(dāng)前安全特性的開啟狀態(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ù)后默認如下:
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ù)后默認如下:
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
在沒有微碼固件補丁升級的情況下:
# 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廠商進行咨詢獲取。
Linux-Ubuntu發(fā)行版
目前Ubuntu只完成對Meltdown(CVE-2017-5754)漏洞在 x86_64平臺上的更新。
請關(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請關(guān)注Debian的更新鏈接:
https://security-tracker.debian.org/tracker/CVE-2017-5753
https://security-tracker.debian.org/tracker/CVE-2017-5715
微軟Windows Server
建議用戶開啟系統(tǒng)自動更新功能,進行補丁補丁安裝。
根據(jù)微軟提供的信息,依然存在部分軟件不兼容(如殺毒軟件)的風(fēng)險,請充分了解風(fēng)險后再選擇是否更新。
更多信息請查看:
https://support.microsoft.com/en-us/help/4073119/windows-client-guidance-for-it-pros-to-protect-against-speculative-exe
Xen虛擬化
目前Xen團隊針對Meltdown,Spectre漏洞的修復(fù)工作依然在進行中,請關(guān)注Xen的更新鏈接:
http://xenbits.xen.org/xsa/advisory-254.html
目前Xen暫時沒有性能損耗方面的明確評估,請謹慎更新。
QEMU-KVM虛擬化
QEMU官方建議通過更新guest和host操作系統(tǒng)的補丁來修復(fù)Meltdown漏洞,并表示Meltdown漏洞不會造成guest到host的信息竊取。
針對Spectre的變種CVE-2017-5715,QEMU方面正在等待KVM更新后再修復(fù),目前KVM在進行相關(guān)補丁整合。需要注意的是,熱遷移不能解決CVE-2017-5715漏洞,KVM需要把cpu的新特性expose到guest內(nèi)核使用,所以guest需要重啟。
相關(guān)信息請查閱:
https://www.qemu.org/2018/01/04/spectre/
https://marc.info/?l=kvm&m=151543506500957&w=2
云平臺租戶
360CERT建議云平臺用戶,
1. 關(guān)注所在云廠商的安全公告,配合相關(guān)云廠商做好漏洞補丁修復(fù)工作;
2. 充分了解和注意補丁帶來的風(fēng)險和性能損耗方面的指標;
3. 更新前可以考慮使用相關(guān)快照或備份功能;
0x04 FAQ 常見問題
1. 問題: Meltdown和Spectre漏洞具體技術(shù)影響。 比如利用這兩個漏洞發(fā)動攻擊是否容易,什么條件下觸發(fā),危害多大?
回答: Meltdown和Spectre漏洞在一定的條件下都可以觸發(fā),例如通過本地環(huán)境,瀏覽器環(huán)境, Xen/QEMU-KVM中惡意租戶Guset的場景來觸發(fā)和攻擊,雖然目前尚未發(fā)現(xiàn)公開的攻擊代碼,但能夠?qū)τ脩粼斐蓭ぬ枺?密碼, 內(nèi)容, 郵箱, cookie等隱私信息泄露潛在危害。從以往情況看,在漏洞暴露后一定時間內(nèi),就可能出現(xiàn)可利用的攻擊代碼。對此,我們需要保持高度警惕。
Meltdown漏洞主要作用于本地環(huán)境,可用于越權(quán)讀內(nèi)核內(nèi)存。Spectre由于不會觸發(fā)trap,可以用于瀏覽器攻擊,以及虛擬機guest/host攻擊,及其它存在代碼注入(如即時編譯JIT)程序的潛在攻擊。具體技術(shù)情況需如下:
2. 問題:當(dāng)前對漏洞的處置情況到底怎么樣了,業(yè)界解決情況如何,有沒有比較完善的解決方案。目前能解決到什么程度,怎么才能徹底解決?
回答:目前大部分的個人終端操作系統(tǒng)(如Windows, MacOS, iOS, Android)都可以通過直接的渠道進行更新解決,其中Windows平臺存在部分殺毒軟件不兼容風(fēng)險。針對IDC或云廠商相關(guān)的系統(tǒng)管理員,除了還需要再繼續(xù)評估補丁的兼容性風(fēng)險外,更需要再進一步評估補丁可能帶來的較大幅度的性能損耗,目前芯片廠商也在積極和大型IDC,云服務(wù)提供商協(xié)同制定更完善的解決方案。
360CERT建議該怎么解決,后續(xù)該怎么做?
回答:360CERT建議,一方面,PC/手機的個人用戶可以直接通過操作系統(tǒng)廠商或第三方安全廠商提供的補丁來解決。另一方面,針對補丁給企業(yè)帶來修復(fù)難題,大型IDC/企業(yè)/云廠商,芯片廠商,操作系統(tǒng)廠商,信息安全公司要協(xié)同起來,在補丁方案,補丁風(fēng)險評估,補丁導(dǎo)致的性能損耗評估,綜合補丁標準方案,一體化補丁等方面形成合力,在保證業(yè)務(wù)穩(wěn)定的情況下逐步或分階段推進補丁的修復(fù)工作。
0x05 時間線
2018-01-04 Google的Jann Horn發(fā)布漏洞信息
2018-01-04 360安全團隊發(fā)布預(yù)警通告
2018-01-09 360安全團隊發(fā)布簡要修復(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
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/
· 漏洞報告
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
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!