什麼是影子堆疊
在呼叫函式時,把返回位址的副本也放在一般寫入無法修改的另一個堆疊上,從函式返回時與一般堆疊上的值比較,以發現返回位址遭竄改的機制。若不一致就引發例外並停止執行。由Intel的CET(控制流程強制技術)等以硬體支援,能提高利用堆疊緩衝區溢位的ROP等攻擊的難度。
日文名稱: シャドウスタック
「影子堆疊」出現在1領域的2道練習題中(硬體安全的進階主題與趨勢等)。
這個名詞所屬的領域: 硬體安全的進階主題與趨勢
在呼叫函式時,把返回位址的副本也放在一般寫入無法修改的另一個堆疊上,從函式返回時與一般堆疊上的值比較,以發現返回位址遭竄改的機制。若不一致就引發例外並停止執行。由Intel的CET(控制流程強制技術)等以硬體支援,能提高利用堆疊緩衝區溢位的ROP等攻擊的難度。
日文名稱: シャドウスタック
「影子堆疊」出現在1領域的2道練習題中(硬體安全的進階主題與趨勢等)。
這個名詞所屬的領域: 硬體安全的進階主題與趨勢
使用影子堆疊時,call指令把返回位址同時推入一般堆疊與影子堆疊,ret指令則比較兩者。
關於Intel的CET(控制流程強制技術)等所採用的硬體影子堆疊,正確的說明是下列何者?影子堆疊比較返回位址與其副本,指標驗證確認附加在返回位址上的驗證碼,因此兩者都保護函式的返回。
關於以硬體支援控制流程完整性的功能,保護函式返回者與保護經由函式指標等之間接呼叫或跳躍者的組合,正確的是下列何者?返回位址 緩衝區溢位 控制流程完整性 函式指標 指標驗證(PAC) KPTI(核心分頁表隔離) Meltdown IOMMU(輸入輸出記憶體管理單元) DMA(直接記憶體存取) 目標列刷新(TRR)