1月4日,國家信息安全漏洞共享平臺(CNVD)收錄了CPU處理器內(nèi)核的Meltdown漏洞(CNVD-2018-00303,對應CVE-2017-5754)和Spectre漏洞(CNVD-2018-00302和CNVD-2018-00304,對應CVE-2017-5715和CVE-2017-5753)。利用上述漏洞,攻擊者可以繞過內(nèi)存訪問的安全隔離機制,使用惡意程序來獲取操作系統(tǒng)和其他程序的被保護數(shù)據(jù),造成內(nèi)存敏感信息泄露。
一、漏洞情況分析
現(xiàn)代的計算機處理器芯片通常使用“預測執(zhí)行”(Speculative Execution)和“分支預測”(Indirect Branch Prediction)技術實現(xiàn)對處理器計算資源的最大化利用。但由于這兩種技術在實現(xiàn)上存在安全缺陷,無法通過正確判斷將低權限的應用程序訪存與內(nèi)核高權限的訪問分開,使得攻擊者可以繞過內(nèi)存訪問的安全隔離邊界,在內(nèi)核中讀取操作系統(tǒng)和其他程序的內(nèi)存數(shù)據(jù),造成敏感信息泄露,根據(jù)獲取到的數(shù)據(jù),可能會導致用戶的數(shù)據(jù)隱私泄露、登陸憑證被攻擊者竊取。具體信息如下:
1)Meltdown漏洞利用破壞了用戶程序和操作系統(tǒng)之間的基本隔離,允許攻擊者未授權訪問其他程序和操作系統(tǒng)的內(nèi)存,獲取其他程序和操作系統(tǒng)的敏感信息。
2)Spectre漏洞利用破壞了不同應用程序之間的安全隔離,允許攻擊者借助于無錯程序(Error-Free)來獲取敏感信息。
具體的漏洞攻擊場景如下:
1)單臺物理主機:低權限的攻擊者利用漏洞,可訪問本地操作系統(tǒng)的內(nèi)核空間,進一步實現(xiàn)提權或命令執(zhí)行等操作。
2)云服務虛擬機:攻擊者利用漏洞可以繞過虛擬機的隔離防護機制,訪問其他租戶的內(nèi)存數(shù)據(jù),導致其他云租戶的敏感信息泄漏。
3)網(wǎng)頁瀏覽器:利用瀏覽器的即時編譯器(Just-In-Time Compiler)特性,執(zhí)行惡意代碼,讀取瀏覽器內(nèi)存數(shù)據(jù),導致用戶賬號、密碼、郵箱、cookie等信息泄漏。
受影響個體 |
利用風險點 |
個人用戶 |
網(wǎng)頁瀏覽器執(zhí)行惡意腳本 配合其他低權限的漏洞執(zhí)行代碼 |
服務器用戶 |
遠程上傳、執(zhí)行惡意代碼后利用 |
云服務用戶 |
被位于同臺物理主機、具有代碼執(zhí)行權限的其他云租戶攻擊 |
CNVD對該漏洞的綜合評級為“高危”。目前該漏洞的本地利用代碼(POC)已經(jīng)發(fā)布并驗證成功,但能夠遠程利用的執(zhí)行代碼尚未發(fā)布,CNVD秘書處正聯(lián)合技術組成員單位對相關情況做進一步的驗證和分析,后續(xù)結果將進一步通報。
二、漏洞影響范圍
該漏洞存在于英特爾(Intel)x86及x64的硬件中,在1995年以后生產(chǎn)的Intel、AMD、ARM處理器芯片受此漏洞影響,具體受影響的型號列表請參考廠商公告。
1)Intel:https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00088&languageid=en-fr
2)AMD:https://www.amd.com/en/corporate/speculative-execution
3)ARM:https://developer.arm.com/support/security-update
同時使用這些處理器芯片的操作系統(tǒng)(Windows、Linux、Mac OS、Android)和云計算設施(亞馬遜、微軟、谷歌、騰訊云、阿里云等)也受此漏洞影響。
三、處置措施
目前,操作系統(tǒng)廠商通過在其產(chǎn)品內(nèi)核引入內(nèi)核頁面隔離(KPTI)技術來修復Meltdown和Spectre漏洞。CNVD建議用戶密切關注操作系統(tǒng)、虛擬機、瀏覽器等產(chǎn)品官方網(wǎng)站發(fā)布的安全公告,并及時下載補丁進行更新。各廠商的修復情況和參考鏈接如下:
微軟:已為windows 10已供修復包,并對windows 7和windows 8進行在線更新(https://support.microsoft.com/en-us/help/4073235/cloud-protections-speculative-execution-side-channel-vulnerabilities)。瀏覽器安全補丁已發(fā)布(https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002);
蘋果:IOS 11.2和macOS10.13.2及tvOS 11.2中加入了保護措施;
谷歌:已于2017年12月向各手機廠商發(fā)布了安全補丁包,并發(fā)布安全公告(https://source.android.com/security/bulletin/2018-01-01)。1月23日發(fā)布的Chrome64瀏覽器將包含相應的保護機制(https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html);
RedHat:已發(fā)布補丁(https://access.redhat.com/security/vulnerabilities/speculativeexecution?sc_cid=701f2000000tsLNAAY);
Ubuntu:已提供修復補丁(https://insights.ubuntu.com/2018/01/04/ubuntu-updates-for-the-meltdown-spectre-vulnerabilities/);
SUSE:已陸續(xù)發(fā)布補丁(https://www.suse.com/support/kb/doc/?id=7022512);
Mozilla Firefox:官方新版本已更新(https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/);
XEN:已發(fā)布安全公告(https://xenbits.xen.org/xsa/advisory-254.html);
QEMU:已發(fā)布安全公告(https://www.qemu.org/2018/01/04/spectre/),非官方安全補?。?a style="margin: 0px; padding: 0px; list-style-type: none; text-decoration: none; color: rgb(43, 125, 226);">https://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg00811.html);
Vmware:發(fā)布安全公告及補?。?a style="margin: 0px; padding: 0px; list-style-type: none; text-decoration: none; color: rgb(43, 125, 226);">https://www.vmware.com/us/security/advisories/VMSA-2018-0002.html);
Citrix XenServer:發(fā)布安全補?。?a style="margin: 0px; padding: 0px; list-style-type: none; text-decoration: none; color: rgb(43, 125, 226);">https://support.citrix.com/article/CTX231390);
亞馬遜:已提供修復補?。?a style="margin: 0px; padding: 0px; list-style-type: none; text-decoration: none; color: rgb(43, 125, 226);">https://amazonaws-china.com/cn/security/security-bulletins/AWS-2018-013/);
阿里云:將于2018年1月12日凌晨進行熱升級,個別用戶可能需要手動重啟;
騰訊云:將于2018年1月10日凌晨進行熱升級,個別用戶可能需要手動重啟。
附件1:Windows漏洞驗證方法
通過使用微軟公司發(fā)布的檢測PowerShell腳本(https://support.microsoft.com/en-us/help/4073119/protect-against-speculative-execution-side-channel-vulnerabilities-in),可以判斷Windows系統(tǒng)是否受漏洞影響。檢測方法如下:
1)安裝相應的PowerShell模塊,執(zhí)行命令:PS> Install-Module SpeculationControl
2)下載并調用相應腳本(https://spectreattack.com/),對應命令:PS> Get-SpeculationControlSettings其中,開啟的保護會顯示為True,未開啟的保護則會顯示為False。