NXビット 【No-Execute bit】 XDビット / Execute Disable bit

概要

NXビット(No-Execute bit)とは、x86系マイクロプロセッサが備えるメモリ保護機能での一つで、メモリ上にデータとして記録された領域をプログラムとして実行するのを防ぐ仕組み。米AMD社の製品では「NXビット」、米インテル(Intel)の製品では「XDビット」と呼ぶ。

現代的なCPUおよびオペレーティングシステムOS)では、メインメモリRAM)を「仮想記憶」という仕組みで管理し、「ページ」と呼ばれる等しい容量の領域に分割して物理メモリストレージの間で随時入れ替え(ページング)をっている。

NXビットはページのアドレスなどを管理するページテーブル上で、各ページの情報を表すエントリ内に設けられた特定のビットで、これが「1」に設定されると内容をプログラムとして実行することが禁止される。

これにより、ネットワークを通じて攻撃者がソフトウェアに不正な攻撃用プログラムコードを送り込んで実行させる「バッファオーバーラン攻撃」(バッファオーバーフロー攻撃)などを効果的に防ぐことができる。

この攻撃手法はソフトウェアメモリ管理の欠陥を悪用し、外部から過剰なデータを送りつけて受信用の一時的なデータ保管領域(バッファ)を溢れさせ、本来データが保管される領域に置かれた攻撃用のコード実行させるものである。データ領域のNXビットがオンになっていれば攻撃コードを誤って実行することはなく、ソフトウェアOSによって強制終了させられる。

NXビットは2003年にAMD社が「NXビット」の名称でAMD64x86-64命令セットプロセッサ製品に搭載し始め、翌年にはまったく同じ仕様がIntel社によって「XDビット」の名称でIntel 64命令セットAMD64互換)の製品群に採用されるようになった。Windowsデータ実行防止DEP:Data Execution Protection)など、多くのOSがNXビットを用いてメモリ保護をう機能を実装している。

(2019.1.6更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる