ヒープスプレー
ヒープスプレー とは何ですか?
ヒープスプレーヒープを多数のペイロードコピーで埋め尽くす攻撃プリミティブ。破壊されたポインタが攻撃者制御データに高確率で着地するようにする。
ヒープスプレーは、プロセスメモリの広範囲を NOP スレッドとシェルコード(現代では ROP ガジェットや偽の vtable)の予測可能なコピーで満たします。攻撃者がブラウザの use-after-free や type confusion などのメモリ破壊を発火させると、破壊したポインタを 0x0c0c0c0c などの定番アドレスへ向け、スプレーで配置済みのバイト列に着地させます。2004 年に Skylined が公表した Internet Explorer エクスプロイトで広く知られ、現在もブラウザ・ドキュメント・フォント解析のエクスプロイトで多用されます。対策は高エントロピー ASLR、パーティション化されたヒープ(PartitionAlloc、Edge の Heap Isolation)、制御フロー整合性(CFI)、JIT 強化策などです。
● 例
- 01
数百 MB のシェルコード入り JavaScript 文字列を確保し、use-after-free 後に 0x0c0c0c0c をシェルコードにする。
- 02
Adobe Flash のエクスプロイトが Vector<uint> スプレーで ROP チェーンを配置する。
● よくある質問
ヒープスプレー とは何ですか?
ヒープを多数のペイロードコピーで埋め尽くす攻撃プリミティブ。破壊されたポインタが攻撃者制御データに高確率で着地するようにする。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
ヒープスプレー とはどういう意味ですか?
ヒープを多数のペイロードコピーで埋め尽くす攻撃プリミティブ。破壊されたポインタが攻撃者制御データに高確率で着地するようにする。
ヒープスプレー からどのように防御しますか?
ヒープスプレー に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
ヒープスプレー の別名は何ですか?
一般的な別名: ヒープスプレー。