CyberGlossary

脆弱性

メモリ破壊

別称: メモリ安全性バグ

定義

プログラムが意図したメモリ境界の外に書き込み、型安全性・制御フロー・データ整合性を損なうタイプの脆弱性を総称する用語。

メモリ破壊は、バッファオーバーフロー・Use-After-Free・二重解放・型混乱・誤ったサイズを生む整数オーバーフロー・未初期化メモリの読み出しなどを包括的に指します。共通点は、攻撃者が本来触れるべきでないメモリを読み書きさせ、それをプリミティブとして情報漏えい、重要な状態の改ざん、制御フローの奪取に発展させる点です。ブラウザ・カーネル・ハイパーバイザ・文書パーサの悪用において長らく主役でした。緩和策はコンパイル時(CFI、カナリア、FORTIFY_SOURCE)、ランタイム(ASLR、DEP/NX、サンドボックス、MTE)、言語層(Rust、Swift、マネージドランタイム)に分かれます。業界データは、メモリ安全言語の採用がこの種の新規脆弱性の大半を消し去ることを示しています。

  • ヒープオーバーフロー → ROP → サンドボックス脱出と連鎖したブラウザレンダラの侵害。
  • デバイスドライバの UAF を利用したカーネル権限昇格。

関連用語