境界外読み取り
境界外読み取り とは何ですか?
境界外読み取りメモリ安全性に関するバグ(CWE-125)で、想定したバッファの前後または範囲外を読み取り、隣接メモリの内容を漏えいさせる。
境界外読み取り(OOB read)は、攻撃者の影響を受けた添字、長さ、ポインタを使ってバッファの末尾より先、または先頭より前を読む不具合です。漏えいするバイトには暗号鍵、セッショントークン、ASLR を破るポインタ、その他のプロセス機密が含まれ得ます。代表例は OpenSSL の Heartbleed(CVE-2014-0160)で、TLS ハートビートが攻撃者提供の長さを信用して最大 64KB のメモリを返してしまいました。OOB read は CWE-125 として追跡され、しばしば別の書き込みプリミティブと組み合わせて任意コード実行に至ります。対策は境界チェック API、メモリ安全な言語(Rust、近代 C++)、ASan/KASAN などのサニタイザ、ファジング、ARM MTE などのハードウェアタグです。
● 例
- 01
Heartbleed(CVE-2014-0160):OpenSSL の TLS ハートビートで最大 64KB のメモリが漏えいする。
- 02
画像パーサがチャンクサイズフィールドを越えて読み、API 応答に攻撃者が読めるピクセルを返す。
● よくある質問
境界外読み取り とは何ですか?
メモリ安全性に関するバグ(CWE-125)で、想定したバッファの前後または範囲外を読み取り、隣接メモリの内容を漏えいさせる。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
境界外読み取り とはどういう意味ですか?
メモリ安全性に関するバグ(CWE-125)で、想定したバッファの前後または範囲外を読み取り、隣接メモリの内容を漏えいさせる。
境界外読み取り はどのように機能しますか?
境界外読み取り(OOB read)は、攻撃者の影響を受けた添字、長さ、ポインタを使ってバッファの末尾より先、または先頭より前を読む不具合です。漏えいするバイトには暗号鍵、セッショントークン、ASLR を破るポインタ、その他のプロセス機密が含まれ得ます。代表例は OpenSSL の Heartbleed(CVE-2014-0160)で、TLS ハートビートが攻撃者提供の長さを信用して最大 64KB のメモリを返してしまいました。OOB read は CWE-125 として追跡され、しばしば別の書き込みプリミティブと組み合わせて任意コード実行に至ります。対策は境界チェック API、メモリ安全な言語(Rust、近代 C++)、ASan/KASAN などのサニタイザ、ファジング、ARM MTE などのハードウェアタグです。
境界外読み取り からどのように防御しますか?
境界外読み取り に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
境界外読み取り の別名は何ですか?
一般的な別名: OOB read, CWE-125。
● 関連用語
- vulnerabilities№ 131
バッファオーバーフロー
メモリ安全性の欠陥で、確保済みバッファの末尾を超えて書き込みが行われ、隣接メモリが破壊されてしばしばコード実行を可能にする。
- attacks№ 544
整数アンダーフロー
算術上の欠陥(CWE-191)。符号なし整数を 0 未満まで減算すると巨大な値に巻き戻り、過大なアロケーションやバッファ越境を引き起こす。
- vulnerabilities№ 667
メモリ破壊
プログラムが意図したメモリ境界の外に書き込み、型安全性・制御フロー・データ整合性を損なうタイプの脆弱性を総称する用語。
- vulnerabilities№ 1193
解放後使用(Use-After-Free)
free 済みのメモリをプログラムが使い続けるメモリ安全性のバグ。攻撃者にオブジェクト状態の操作と制御フロー奪取を許すことが多い。