硬體安全的進階主題與趨勢
關於Intel的CET(控制流程強制技術)等所採用的硬體影子堆疊,正確的說明是下列何者?
- A每隔一定時間把堆疊的內容儲存到非揮發性記憶體,在程式異常終止時,從這些內容恢復執行
- B把函式的區域變數放在與一般堆疊分開的高速記憶體中,減少快取未命中,加快函式呼叫
- C呼叫函式時,把返回位址的副本也放在一般寫入無法改變的另一個堆疊上,返回時比較兩者
查看答案與解析
正確答案:C. 呼叫函式時,把返回位址的副本也放在一般寫入無法改變的另一個堆疊上,返回時比較兩者
若返回位址因堆疊緩衝區溢位等而被改寫,函式返回時,執行就會轉移到攻擊者選定的位置。使用影子堆疊時,call指令把返回位址同時推入一般堆疊與影子堆疊,ret指令則比較兩者。影子堆疊的分頁是一般儲存指令無法寫入的特殊分頁,因此改寫了一般堆疊的攻擊者也無法改變副本,不一致時會引發例外並停止執行。
- A. 這不是從異常終止中恢復的機制。
- B. 這不是移動區域變數以提升速度的機制,而是保護返回位址的機制。
- C. 正確。在返回之前發現返回位址遭竄改。
繼續練習硬體安全的進階主題與趨勢的另外9題