非常に長い割り込み命令によるシステム管理モード(SMM)の悪用
Exploiting System Management Mode with a very long interrupt
研究者らは、x86 CPUのセキュアな実行環境であるシステム管理モード(SMM)を、非常に長い実行時間を持つ単一の機械語命令を利用して悪用できることを発見した。SMMは、すべてのCPUコアが同時にSMM内またはSMM外にある必要があるというセキュリティモデルを持つが、あるコアが非常に長い命令を実行している間に他のコアがSMMに入るよう促すことで、この同期を破ることができる。具体的には、AMD Zen 3 Ryzen 7 5800Hで、MMIOアドレス0xfcc68860からの広幅読み込み命令(vmovdqu)が約1秒間(約40億サイクル)CPUを占有し、他のコアがSMMに入るのを妨げる。これにより、SMM実行中に他のコアがSMM外で動作することが可能になり、従来はハードウェアアクセスやDMAが必要と考えられていたSMM内の脆弱性(TOCTOUなど)がソフトウェアから悪用可能になる。この脆弱性を実証するツール「smiiiiiiiiiiiiiiii」が開発され、特定のハードウェア設定でSMIカウンターの差異を観測することで、SMMの同期が破られたことを確認できる。この手法はプラットフォーム固有であり、他のシステムではMMIOアドレスや命令の調整が必要となる場合がある。
- 研究者が、AMD Zen 3 Ryzen 7 5800Hにおいて、MMIOアドレスからの広幅読み込み命令(vmovdqu)が約1秒間CPUを占有し、SMMの同期モデルを破れることを発見し、実証ツール「smiiiiiiiiiiiiiiii」を開発した
- SMM内の脆弱性(TOCTOUなど)が従来はハードウェアアクセスやDMAが必要と考えられていたが、純ソフトウェアから悪用可能になることを実証した
x86 CPUのセキュア実行環境であるSMM(システム管理モード)を、単一の長大な機械語命令を利用してソフトウェアから悪用できることを実証した研究だ。従来ハードウェアアクセスやDMAが必要とされていたSMM内の脆弱性(TOCTOU等)が純ソフトウェアだけで悪用可能になることを示しており、AMDを含むx86プラットフォーム全体のセキュリティ信頼モデルに関わる重要な発見である。セキュリティ製品・ファームウェア検証・信頼コンピューティング基盤を提供する企業にとっては、防御要件の再設計を迫る潜在的なリスクとして注視に値する。