硬體安全的進階主題與趨勢

關於以硬體支援控制流程完整性的功能,保護函式返回者與保護經由函式指標等之間接呼叫或跳躍者的組合,正確的是下列何者?

  1. A返回以影子堆疊或指標驗證保護,間接呼叫或跳躍則以要求目的地開頭有指定標記指令的機制保護
  2. B返回以要求目的地開頭有指定標記指令的機制保護,間接呼叫或跳躍則以影子堆疊保護
  3. C返回以KPTI(核心分頁表隔離)保護,間接呼叫或跳躍則以IOMMU的位址轉換保護
查看答案與解析

正確答案:A. 返回以影子堆疊或指標驗證保護,間接呼叫或跳躍則以要求目的地開頭有指定標記指令的機制保護

影子堆疊比較返回位址與其副本,指標驗證確認附加在返回位址上的驗證碼,因此兩者都保護函式的返回。對於間接呼叫或跳躍,Intel的IBT與Arm的分支目標識別(Branch Target Identification)要求目的地開頭有標記指令(x86為ENDBR64),並把跳到函式中途等處的分支變成例外。不過,只要是有標記的地方,任何間接分支都能跳過去,因此有時會與編譯器所做、把目的地限制在型別相符之函式的細部檢查搭配使用。KPTI是針對Meltdown的對策,IOMMU是限制設備DMA的機制,兩者都不保護控制流程。

  • A. 正確。返回與間接分支由不同的機制保護。
  • B. 組合相反。標記指令保護間接分支的目的地,影子堆疊保護返回。
  • C. KPTI與IOMMU都不是保護控制流程的機制。
練習這個領域 前往領域頁面

硬體安全的進階主題與趨勢的其他題目

  1. DRAM越微縮,越容易發生列鎚攻擊(Rowhammer)的理由,正確的是下列何者?
  2. 以DRAM內部的TRR(目標列刷新)對抗列鎚攻擊的對策,在研究中曾被繞過,其理由正確的是下列何者?
  3. 「只要使用具ECC的記憶體,就不必擔心列鎚攻擊」這種想法的問題點,正確的是下列何者?
  4. 在2024年更新的DDR5規格(JESD79-5C)中加入的PRAC(逐列啟動計數),其想法正確的是下列何者?
  5. 為簡化起見,設同一記憶庫中可啟動列的最短間隔為 tRC = 50 ns。刷新週期為64 ms時,某一列從被刷新到下一次被刷新之間,能啟動相鄰1列的最大次數為 64 ms ÷ 50 ns。把刷新頻率提高為2倍時,這個最大次數是下列何者?