隱藏22年的安全大漏洞
一、令人震驚的消息
2018年1月2日,著名的The Register1網站率先爆出一條令人震驚的消息2:PC處理器的領舞者,當年支配CPU發展方向的Intel(英特爾公司),22年來所生產的億萬顆CPU晶元都存在嚴重的安全漏洞。要命的是,這回史無前例地問題出在CPU硬體裡面。
二、兩個機製造成的問題
Intel公司1995年率先在新CPU,Pentium Pro設計中,率先推出了加速CPU運算速度的新方法,叫做「Speculative Execution」。它的功能就是讓CPU在執行下一條指令前,就把指令需要的數據從內存讀入到CPU晶元的高速緩存「Cache」中,這樣CPU在執行指令的時候,就不用停下來等數據。這個創新大大加快了CPU執行的速度。
Intel在80年代的80386之後,所有的CPU中都設計有Protected Mode。原理是這樣的:Protected Mode使得CPU給與每個「進程」 (Process)一個固定的內存範圍,並保證每個進程只能讀寫自己內存範圍內的資料。這個機制禁止了不同進程之間的訪問,是現代計算機安全機制的「基石」。否則真要「天下大亂」了。比如:在隨便哪個網頁上運行幾句JavaScript,就可以去搜索用戶在其他同時運行的程序中輸入的資料,包括用戶名、密碼等。
這兩個聰明的設計,就是因為20多年前Intel工程師的疏忽,沒有考慮清楚,造成如今引起軒然大波的嚴重問題。原因是,Protected Mode會檢查提取的數據是否是從合法內存範圍內讀取的,但這種檢查是在指令執行的時候才進行,而前面提到的Speculative Execution恰恰被設計成在指令執行前就讀取數據到Cache了。儘管等CPU發現讀取的數據是從非法內存讀入時,會拒絕執行指令,但那些不屬於這個進程的數據已經被輕鬆放到了「唾手可得"的Cache裡面了。這個漏洞對於黑客來說,不啻是個天上掉下來的「餡餅」。
這個漏洞直到2017年6月才由White Hat3(白帽子)發現,並且立即知會了Intel公司。可是這個缺陷是內建在晶元上的,Intel要改也只能改以後出廠的晶元。世界上現有的上億台裝了Intel CPU的電腦怎麼辦呢?更何況,重新設計生產CPU也是很花時間的,半年多了,新版CPU還沒定型。
三、目前的應對措施
白帽子們研究後,把問題分成兩類。第一類是惡意軟體(Malware)利用這個缺陷直接攻擊操作系統,取名叫作Meltdown;第二類是攻擊應用軟體,叫做 Spectre。
Meltdown是最嚴重的,因為通過操作系統可以掌握整機的所有機密,可是解決起來反而相對容易些。因為Intel CPU的定址方式(Addressing method)是分頁的(page)。如果把操作系統放在應用程序訪問不到的內存頁上,就可以避免Meltdown(不過這樣做會稍稍降低整機的運算速度,所以一直以來沒有操作系統這樣做。)。蘋果的Mac OS已經改了,Windows和Android應該本月也會改版。
Spectre就麻煩了。因為整台電腦就這麼多內存,可同時在運行的程序可能會有成百上千個,不可能完全分頁。更可怕的是象瀏覽器這樣的程序,運行時一次可以打開很多網頁,只要有一個惡意網頁啟動JavaScript,其他網頁上的密碼都算是同一個進程的數據,不能用分頁來保護。所以Spectre細節一公布,我馬上啟動了我的Chrome瀏覽器的 Site Isolation功能。這個選項強迫Chrome瀏覽器將每一個網頁當作獨立進程來處理。只是這樣一來,Chrome會多佔用一些內存。
四、問題不只涉及Intel
The Register 1月2日的文章作者原以為只有Intel的CPU有問題,後來知道Intel、AMD、ARM(現今幾乎所有的智能手機都使用ARM的CPU)的產品基本都沒有倖免4。
The Register其實應該等到操作系統改版都出來了才報道這個問題。不過再怎麼等,Spectre也沒有徹底的解決方法。就算Intel生產出了改版的CPU,也不可能替換掉過去這麼多年來賣出去的CPU。更可氣的是,Intel CEO,Brian Krzanich在2017年11月急急忙忙把自己持有的50萬股Intel股票中的一半(Intel合同規定CEO至少要持有25萬股),以低於市場價賣出。他說與Meltdown/Spectre無關,你信嗎?
1、The Register 是一家著名的科技新聞網站,總部設在英國。https://www.theregister.co.uk/
2、https://www.theregister.co.uk/2018/01/02/intel_cpu_design_flaw/
3、White Hat 白帽子,指從事計算機安全的從業人員。
4、https://www.theregister.co.uk/2018/01/04/intel_amd_arm_cpu_vulnerability/


TAG:全球大搜羅 |