ヒープオーバーフロー
ヒープオーバーフロー とは何ですか?
ヒープオーバーフロー動的に確保したメモリ上で発生するバッファオーバーフロー。アロケータのメタデータ、関数ポインタ、オブジェクトの vtable などが破壊されることが多い。
ヒープオーバーフローは、ヒープ上に確保されたバッファの末尾を越えて書き込み、隣接チャンクや malloc/free・jemalloc・mimalloc などのアロケータのメタデータを破壊します。ヒープ配置は非決定的なため、悪用では "heap grooming" や "feng shui" によって、関数ポインタ、vtable、スマートポインタの制御ブロック、重要な状態などの有用な標的を脆弱なバッファの隣に配置します。最新のアロケータはメタデータを強化し、チャンクを分離し、ガードページを挿入します。ASLR、CFI、サンドボックス、メモリ安全言語が影響をさらに抑えます。ブラウザ・カーネル・文書パーサの悪用で中心的な役割を担い、Pwn2Own 入賞例にも多く登場します。
● 例
- 01
CVE-2018-4407:XNU カーネルの TCP ヒープオーバーフロー。
- 02
Pwn2Own で繰り返し悪用された Chrome の JavaScript エンジンのヒープオーバーフロー。
● よくある質問
ヒープオーバーフロー とは何ですか?
動的に確保したメモリ上で発生するバッファオーバーフロー。アロケータのメタデータ、関数ポインタ、オブジェクトの vtable などが破壊されることが多い。 サイバーセキュリティの 脆弱性 カテゴリに属します。
ヒープオーバーフロー とはどういう意味ですか?
動的に確保したメモリ上で発生するバッファオーバーフロー。アロケータのメタデータ、関数ポインタ、オブジェクトの vtable などが破壊されることが多い。
ヒープオーバーフロー からどのように防御しますか?
ヒープオーバーフロー に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
ヒープオーバーフロー の別名は何ですか?
一般的な別名: ヒープバッファオーバーフロー。