脆弱性
ヌルポインタ参照
別称: null 参照
定義
値が null(あるいは無効)であるポインタを介して読み書きするバグ。通常はクラッシュを引き起こし、時に悪用も可能となる。
ヌルポインタ参照(CWE-476)は、未初期化のポインタ、free 後に NULL に設定されたポインタ、戻り値を検査せずに失敗を見逃した関数のポインタなどを参照することで発生します。多くの現代システムではセグメンテーション違反となりプロセスが落ちるため、DoS となります。一部の制約された環境(0 番地をマップできた古い Linux カーネル、MMU を持たない組込み機器、特定の JIT コンパイラ)では、ヌル参照をメモリ破壊プリミティブへ昇格できることがあります。防御策には厳密なヌルチェック、言語機能(Optional/Maybe、非 null 参照)、静的解析、サニタイザを用いたテスト、低位アドレスのマップを禁じる mmap_min_addr などの OS 制御があります。
例
- オプションのヘッダ欠落でクラッシュする Web サーバ。
- mmap_min_addr が 0 のときに悪用された Linux カーネルのヌル参照不具合。
関連用語
メモリ破壊
プログラムが意図したメモリ境界の外に書き込み、型安全性・制御フロー・データ整合性を損なうタイプの脆弱性を総称する用語。
解放後使用(Use-After-Free)
free 済みのメモリをプログラムが使い続けるメモリ安全性のバグ。攻撃者にオブジェクト状態の操作と制御フロー奪取を許すことが多い。
脆弱性
システム、アプリケーション、または運用プロセスに存在する弱点で、攻撃者が機密性・完全性・可用性を侵害するために悪用できるもの。
Secure Coding
Secure Coding — definition coming soon.
エクスプロイト
脆弱性を悪用して、コード実行・権限昇格・情報漏えいなど意図しない動作を引き起こすコード、データ、または手法。
サービス妨害攻撃 (DoS)
システムの帯域・処理能力・メモリ・アプリケーション資源を枯渇させ、正当な利用者がサービスを利用できなくする攻撃。