硬科技:被Intel處理器漏洞嚇傻前 科科們要先知道的事(下)

2018.02.13 01:05PM
3221
intel-8th-gen-core-13

現在也差不多是各位科科們該好好瞧瞧Google Project Zero公佈的「幽靈 (Spectre)」和「熔斷 (Meltdown)」的時候了。

還是一句老話,一個簡單的比較表,總是勝過千言萬語不著邊際的廢話。

是硬科技:被Intel處理器漏洞嚇傻前 科科們要先知道的事(下)這篇文章的第1圖

天底下所有的技術,終究都是為了解決人類碰到的問題,關於這兩個命名看起來很恐怖的攻擊手段,也自然可以用生活化的比喻來解釋。目前網路上已不乏諸多「文科生」的野人獻曝,同樣文組背景的筆者,參考了某些頗具創意的解釋,自己也來掰一個。

看來依然無解的「幽靈 (Spectre)」

小明每天固定都在同一間金拱門... M記... 算了,不重要,買一樣的漢堡,他的愛慕者小強也想知道他吃哪種漢堡,所以喬裝路人「尾行」在後,進行調查。

小明對收銀員說:「點和昨天一樣的」,然後就付錢拿走漢堡 (密碼) 閃人了。

小強接著就對收銀員講:「我要點和前面一樣的。(非法讀取)」

收銀員:「你不能窺探他人隱私!」,然後就把小強轟出去了。(被執行權限擋下,停止執行)」

隔天,小強就找了另一位幫手,跟在他的後面排隊 (旁路攻擊)。

小強在小明點餐時,一直高喊「我要點和前面一樣的。(非法讀取)」,然後就被轟出去了 (被執行權限擋下,停止執行),但是廚房裡面做漢堡的廚師聽到了 (製造錯誤分支預測),為了提昇工作效率,多做了一個漢堡丟到空蕩蕩的輸送台上 (預測執行錯誤的指令,將不該被存取的記憶體位址載入快取內)。

輪到幫手時:「我餓死了,我要點店內全部的漢堡,但是哪個最快就先給我。(旁敲側擊)」

最後幫手就拿到了和小明一樣種類的漢堡 (因為資料已經在快取內,讀取最快),小強也就搞清楚小明吃的到底是什麼了,真是可喜可賀。至於小強有沒有塞給幫手足夠的漢堡錢,我們就不得而知了。

更糟糕的是,這奇計淫巧在Google引發大爆炸時,乍看之下沒有啥有效的處理方法,但後來Google又宣稱已經找出不傷害效能的完美解決之道,看來秘訣是「在廚房和櫃台中間,插入一位假裝廚師的中間人,或著弄出個假廚房,隔離兩者 (設置「陷阱 (Trap)」,讓預測執行跳到人畜無害的位址)」,無法直接騙到廚師。效果如何,我們可以繼續觀望。

「幽靈 (Spectre)」:透過欺騙手法,讓其他應用程式能進入記憶體內的任意位置存取內容,Intel AMD ARM都集體躺著中槍,現在就看Google公佈的「絕招」到底有沒有那麼神。

只有Intel獨享的「熔斷 (Meltdown)」

假設某位不良男子大學生想知道暗戀的對象在不在系學會,但對方和友人早已對他的痴漢行徑深感反感,根本寧願打死他也不讓他知道倒楣的女主角身處校園的何處,所以他就打電話去系學會問助教:

「請幫我查詢XXX (被騷擾的女主角) 在系學會幫忙的日程表,看看她是不是在系辦幫忙 (非法存取)。如果在的話,也請一併協助我有哪些科目已經快要被當了,需要我去跑系辦一個一個對教授磕頭跪算盤求Pass,這些可能需要請她幫忙講好話der。」

助教一時不察,先看了系學會義工的日程表,嗯,她的確正在系學會,然後又花了不少時間去查詢這在系上惡名昭彰無聊男子快要掛掉的科目。(預測執行)

但助教隨後突然反應過來:我沒事去幫這快被二一的痴漢幹嘛 (察覺侵犯權限)?於是就在電話的另一端回覆:「你去死吧,打死不讓你去騷擾XXX。」(被執行權限擋下,停止執行)

「那好吧,就請助教大人告訴我有哪些科目需要在教授前面跪算盤的?」(旁敲側擊)

因為助教已經花了不少時間查詢到這些資訊,而且這傢伙就算再該死,也總得有權知道自己是怎麼死的,所以就「你快被死當的科目總計有....」 (預測執行錯誤的指令,將不該被存取的記憶體位址載入快取內)。

通常要找出這些資料需要好幾分鐘,但助教很快就告訴你答案,代表她真的有幫你處理,足以推測倒楣的XXX的確正在系辦,恭喜他,這位不良男子大學生可以準備拔腿衝過去了。

這招也不限只找一個人,假如他不想看到女主角身邊的姊妹掏親衛隊礙事,他也可以設定一份名單 (索引範圍) 和不同的衍生條件,去嘗試推敲出系辦現在到底有哪些討厭鬼,只是助教可能會先想砍死他,像「你現在給我來系辦,我保證不會打死你 (我並沒有違反我不殺的誓言,只是把你活活打個半死)」之類的。

這招的解法也很簡單:聘請另一位根本不認識系上同學的臨時工,專職負責查學生成績 (隔離分頁表),讓助教連「預測執行」的機會都沒有,但代價就是要多花錢僱用另一個人,助教要查成績時也只能請他查,提高時間成本。

「熔斷 (Meltdown)」:打破應用程式被禁止任意存取系統記憶體的保護機制,讓應用程式也能跟著存取到記憶體內的內容,目前僅Intel受害,透過隔離分頁表可以處理,只是成本很高。

面對排山倒海的媒體報導,莫驚慌、莫緊張、莫害怕

世上多數媒體的基因總是內建惟恐天下不亂的本能,但我們回到原點,這些利用處理器預測執行缺陷的攻擊手段,真的如部份媒體繪聲繪影般的可怕嗎?筆者覺得:不會。

  • 這都是「本地端」的攻擊手段,並不是駭客遠在地球的另一端按下按鍵、你的電腦就瞬間自爆的遠端攻擊。
  • 現階段只有資料被不當讀取的風險 (讀出來也不見得有用),但不會破壞現有運行中系統的強固性。
  • 成功的攻擊都需要搭配大量的「助攻」,現實世界不太可能出現如此理想的環境。講的更白一點,無論是幽靈還是熔斷,其實際危險性恐怕不會比十多年前Intel HyperThreading旁路攻擊的安全性事件嚴重到哪裡去。

目前最積極介入此事的Google和Amazon,其最擔憂的莫過於資料中心內虛擬機器Hypervisor被用戶端作業系統偷讀重要資料、導致影響虛擬機安全性這檔事,對人類最大的衝擊也就是數以萬計的伺服器要安裝修正檔並重新開機,進而衝擊雲端服務的總體效能吧。手機的話,再看看。總之,靜觀其變即可,為了這種蠢事而驚呆,不是站在時代浪頭的科科們該有的作為。

但這次所有晶片廠商的反應與危機處理,特別是首當其衝的Intel,過程和態度是否「社會觀感不佳」,那又是另外的故事了。不過,難道你不會好奇,既然Intel AMD ARM的非循序執行處理器都中槍了,難道IBM Oracle Fujitsu的,就能保證全身而退嗎?

至於這兩種攻擊的根除之道,不學無術的筆者已經想到了完美的解決方案,但如同費瑪最後定理,礙於文章字數限制寫不出來,我們下次有機會再好好談談,科科。
 

回應 11

11 則回應

熱門文章

最新消息

本日精選