? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?河南三中科技
事件的起點是Intel市售處理器被爆出因為設計的缺漏,會造成原本普通的程序卻可以擁有前所未有的高權限,甚至可以直接訪問核心內存當中的數據,這對于用戶隱私和設備安全無疑是多年來前所未有的噩夢。
很快漏洞迅速升級演變,研究人員稱其為“Meltdown”(熔斷)和“Spectre”(幽靈),不僅可以擁有內核級別的高權限,潛在的危害性、影響的廣闊性、解決的棘手性都始料未及,因此這次曝光的漏洞才會鬧得沸沸揚揚,關于漏洞的詳細信息,捷普安全實驗室做了進一步的跟蹤分析。
漏洞原理分析
Meltdown漏洞原理
亂序執行可以簡單的分為三個階段,如下圖所示:
?
每個階段執行的操作如下:
1) ? ??獲取指令,解碼后存放到執行緩沖區Reservations Stations
2) ? ?亂序執行指令,結果保存在一個結果序列中
3) ? ?退休期Retired Circle,重新排列結果序列及安全檢查(如地址訪問的權限檢查),提交結果到寄存器
結合Meltdown利用的代碼片段來看:
; rcx = kernel address
; rbx = probe array
1??mov al, byte [rcx]
2??shl rax, 0xc
3??mov rbx, qword [rbx + rax]
Meltdown漏洞的利用過程有4個步驟:
1) ? ?指令獲取解碼
2) ? 亂序執行3條指令,指令2和指令3要等指令1中的讀取內存地址的內容完成后才開始執行,指令3會將要訪問的rbx數組元素所在的頁加載到CPU Cache中。
3) ? 對2)的結果進行重新排列,對1-3條指令進行安全檢測,發現訪問違例,會丟棄當前執行的所有結果,恢復CPU狀態到亂序執行之前的狀態,但是并不會恢復CPU Cache的狀態
4) ? 通過緩存測信道攻擊,可以知道哪一個數組元素被訪問過,也即對應的內存頁存放在CPU Cache中,從而推測出內核地址的內容
?
Spectre漏洞原理
與Meltdown類似,Spectre的原理是,當CPU發現分支預測錯誤時會丟棄分支執行的結果,恢復CPU的狀態,但是不會恢復CPU Cache的狀態,利用這一點可以突破進程間的訪問限制(如瀏覽器沙箱)獲取其他進程的數據。
Spectre的利用代碼片段:
if (x?< array1_size) {
y =?array2[array1[x] * 256];
// do?something using Y that is
//?observable when speculatively executed
}
具體攻擊過程可以分為三個階段:
1) 訓練CPU的分支預測單元使其在運行利用代碼時會進行特定的預測執行
2) 預測執行使得CPU將要訪問的地址的內容讀取到CPU Cache中
3) ?通過緩存測信道攻擊,可以知道哪一個數組元素被訪問過,也即對應的內存頁存放在CPU Cache中,從而推測出地址的內容。
漏洞驗證
目前開源社區github已經放出來了漏洞的驗證代碼(PoC),如下:
https://github.com/Eugnis/spectre-attack
https://github.com/feruxmax/meltdown
https://github.com/gkaindl/meltdown-poc
https://github.com/turbo/KPTI-PoC-Collection
?
騰訊玄武實驗室開放了在線檢測當前瀏覽器是否易受spectre漏洞攻擊的網址:
http://t.cn/RHkuFNl
?
影響環境
現代處理器(CPU)的運作機制中存在兩個用于加速執行的特性,推測執行(Speculative Execution)和間接分支預測(Indirect Branch Prediction)。這兩組CPU漏洞的利用依靠推測執行特性,通過用戶層面應用從CPU 內存中讀取核心數據。推測執行技術從1995年開始應用,所以近20年的Intel, AMD, Qualcomm廠家和其它ARM的處理器幾乎都受到影響;
Intel CPU用戶:幾乎所有(1995年之后的所有的CPU型號,除了2013年之前的Intel 安騰和Atom外);
AMD CPU用戶:根據AMD公司的聲明,目前AMD CPU不受Meltdown漏洞影響;
ARM CPU用戶:根據ARM公司的聲明,包括Cortex-A75在內的少數ARM核心CPU受影響。
Intel CPU用戶:幾乎所有(1995年之后的所有的CPU型號,除了2013年之前的Intel 安騰和Atom外);
AMD CPU用戶:根據AMD公司的聲明,目前AMD CPU不受Meltdown漏洞影響;
ARM CPU用戶:根據ARM公司的聲明,包括Cortex-A75在內的少數ARM核心CPU受影響。
教您如何修復
針對這兩組漏洞,各家芯片廠商,操作系統廠商,瀏覽器廠商,以及云服務廠商,都積極采取措施,發布安全公告,并及時推出緩解措施和修復補丁。
〖?Intel?〗
Intel已經確認自身CPU中存在相關問題,并正與包括AMD、ARM和多家操作系統廠商在內的許多其他科技公司緊密合作,制定行業范圍的方法,以便及時和建設性地解決這些漏洞。另外Intel認為有些媒體里面的報道并不準確,這些問題不僅僅Intel,其他廠商的CPU中也存在相關問題。這些問題的修復對性能的影響和具體的工作場景相關,對一般用戶而言,影響并不顯著,而且隨著時間的推移這些影響都會得到緩解。
Intel已經提供軟件和固件更新以解決這些漏洞,預計下周末之前會修復最近5年中90%的CPU。Intel的安全公告如下:
https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00088&languageid=en-fr
https://newsroom.intel.com/news/intel-responds-to-security-research-findings/
https://newsroom.intel.com/news-releases/intel-issues-updates-protect-systems-security-exploits/
https://www.intel.com/content/www/us/en/architecture-and-technology/facts-about-side-channel-analysis-and-intel-products.html
〖?ARM?〗
ARM確認大部分處理器不受漏洞影響,但給出了一個受影響的處理器列表。ARM認為,利用這些漏洞進行攻擊需要在本地運行惡意軟件,用戶及時更新軟件和不點擊來歷不明的鏈接會降低攻擊風險。針對linux上的程序,ARM提供了新編譯器,可用新編譯器重新編譯。另外發布了Linux ARM內核補丁,用于修補漏洞,相關頁面如下:
https://developer.arm.com/support/security-update/download-the-whitepaper
https://developer.arm.com/support/security-update
〖?AMD?〗
AMD針對每個漏洞做了回復,第一個漏洞由軟件、操作系統廠商發布補丁解決,性能影響非常輕微,其他兩個漏洞由于AMD CPU特殊的架構,都不受影響。具體如下:
https://www.amd.com/en/corporate/speculative-execution
〖?Windows?〗
微軟已經發布了安全通告,修復了IE、Edge、Windows內核中相關問題,并針對普通用戶、服務器用戶、云用戶各自給出了防護指南。
微軟普通用戶:
https://support.microsoft.com/help/4073119
服務器用戶:
https://support.microsoft.com/help/4072698
云用戶:
https://support.microsoft.com/help/4073235
微軟安全通告:
https://support.microsoft.com/en-us/help/4073235/cloud-protections-speculative-execution-side-channel-vulnerabilities
〖?Linux?〗
Linux內核開發者Thomas Gleixner在2017年12月在Linux內核郵件列表中就新的KAISER隔離補丁發布了說明。目前有人懷疑這批補丁可能正是為了解決Linux系統當中的Metldown與Spectre漏洞。具體如下:
https://lkml.org/lkml/2017/12/4/709
〖?RedHat?〗
紅帽公司已經發布一項建議,其中列出受到影響的產品及其當前狀態。建議內容表明:對于正在運行受影響版本產品的紅帽客戶,強烈建議用戶盡快根據指導清單進行更新。所有受影響產品都應安裝修復補丁,借以緩解CVE-2017-5753 (變種1)與CVE-2017-5754 (變種3)漏洞。CVE-2017-5715(變種2)可通過本地以及虛擬訪客邊界兩種方式被加以利用。具體如下:
https://access.redhat.com/security/vulnerabilities/speculativeexecution?sc_cid=701f2000000tsLNAAY&
〖?安卓?〗
Android團隊于2018年1月更新了安全通告:CVE-2017-5715、CVE-2017-5753以及CVE-2017-5754為已經得到公開披露的一系列與處理器內推測執行相關的漏洞。Android尚未發現任何在基于ARM的Android設備之上重現上述漏洞以進行的未授權信息泄露行為。為了提供額外的保護措施,本公告當中包含的CVE-2017-13218更新減少了對高精度定時器的訪問,旨在限制旁路攻擊(例如CVE-2017-5715、CVE-2017-5753以及CVE-2017-5754)所有已知變種對ARM處理器的影響。具體如下:
https://source.android.com/security/bulletin/2018-01-01
利用漏洞在瀏覽器中進行攻擊依賴于新特性SharedArrayBuffer和用于高精度時間計算的函數performance.now。各個瀏覽器表示都采取了以下兩個緩解措施:
移除瀏覽器中可用于攻擊的SharedArrayBuffer特性
降低用于高精度時間計算的函數performance.now的精確性
加上這兩個緩解措施后,JS版本的漏洞PoC代碼將無法觸發。
〖?Microsoft Edge?〗
微軟已經發布了瀏覽器補丁:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002
〖?FireFox?〗
Mozilla從FireFox 57版本開始采取了這兩個緩解措施:
https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/
〖?Chrome?〗
谷歌從Chrome 64版本開始采取了這兩個緩解措施:
https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html
〖?Amazon?〗
Amazon方面已經發布一項安全公告,指出:此項安全漏洞廣泛存在于過去20年推出的英特爾、AMD以及ARM等各類現代處理器架構當中,影響范圍涵蓋服務器、臺式機以及移動設備。Amazon EC2體系中除極少數實例外,其余皆受到嚴格保護。剩余部分的修復工作將在接下來數小時內完成,并附有相關實例維護通知。雖然AWS所執行的更新能夠切實保護底層基礎設施,但為了充分解決此次問題,客戶還應對實例中的操作系統進行修復。目前Amazon Linux更新已經開始發布,具體如下:
https://aws.amazon.com/security/security-bulletins/AWS-2018-013/
〖?阿里云?〗
為解決處理器芯片的安全問題,阿里云將在北京時間2018年1月12日凌晨1點進行虛擬化底層的升級更新。屆時,阿里云將采用熱升級的方式,絕大多數客戶不會受到影響。但個別客戶可能需要手動重啟,阿里云建議客戶提前準備運營預案及數據備份。
〖?騰訊云?〗
騰訊云將于北京時間2018年1月10日凌晨01:00-05:00通過熱升級技術對硬件平臺和虛擬化平臺進行后端修復,期間客戶業務不會受到影響。對于極少量不支持熱升級方式的,騰訊云另行安排時間手動重啟修復,這部分服務器騰訊云安全團隊將會另行進行通知,協商升級時間。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 修復建議
對于操作系統的修復建議,三中科技提醒您,及時打上官方的最新補丁,并且及時注意官方的安全公告;對于云服務器的防護建議:聽從云計算服務商的建議,如若對業務存在影響請及時與云計算提供商協商解決措施以及應對方法;對于瀏覽器的防護措施:及時升級瀏覽器至最新版本。
? 文章來自網絡
? 長按、掃描河南三中科技二維碼,關注二維碼,收看更多更新的行業資訊。
版權所有:鄭州三中網安科技有限公司 豫ICP備2020036495號-1 ?? | 豫公網安備 41019702002241號 | 站點地圖 | 人才招聘 | 聯系我們 |