ハードウェアセキュリティの最新動向

制御フロー完全性をハードウェアで支える機能について、関数からの戻りを守るものと、関数ポインタなどによる間接的な呼び出しやジャンプを守るものの組み合わせとして、正しいものはどれか。

  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も、制御の流れを守る仕組みではありません。
この分野を解く 分野ページへ

ハードウェアセキュリティの最新動向の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

ハードウェアセキュリティの最新動向のほかの問題

  1. DRAMの微細化が進むほど、ロウハンマーが起きやすくなるといわれる理由として、正しいものはどれか。
  2. DRAMの中のTRR(ターゲットロウリフレッシュ)によるロウハンマーへの対策が、研究で回避されたことがある理由として、正しいものはどれか。
  3. 「ECC付きのメモリを使えば、ロウハンマーの心配はない」という考えの問題点として、正しいものはどれか。
  4. 2024年に更新されたDDR5の規格(JESD79-5C)に加えられた、PRAC(行ごとの活性化の計数)の考え方として、正しいものはどれか。
  5. 同じバンクで行を活性化できる最短の間隔を、簡単のためtRC = 50 nsとする。リフレッシュの周期が64 msのとき、ある行がリフレッシュされてから次にリフレッシュされるまでに、隣の1つの行を活性化できる回数は最大で 64 ms ÷ 50 ns となる。リフレッシュの頻度を2倍にしたときの、この最大の回数はどれか。