タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

オーバーフローに関するyuuyuu_0523のブックマーク (2)

  • ヒープに対する攻撃とその対策

    攻撃手法を技術的に理解するための連載、今回はスタックと並んでよく耳にする「ヒープ破壊」を取り上げます。 連載目次 前回取り上げたスタックオーバーフローは比較的理解しやすい攻撃手法なのですが、今回取り上げるヒープオーバーフローは少々分かりにくい面があります。恥ずかしながら、筆者自身、これまでなかなか理解ができていなかったのが実情です。スタック管理と比較すると、ヒープ管理はとても複雑で、解説が難しいのですが、ここではできるだけ単純化し、ポイントとなる点をご紹介していきます。 ヒープメモリとは スタックとヒープは、どちらもプログラムに動的なメモリ領域を提供するための仕組みです。スタックは関数の呼び出しなど、プログラムの制御に伴って利用されるもので、コンパイルの結果としてスタック操作が組み込まれるため、プログラマーが意識することは少ないと思います。 これに対してヒープは、プログラム中でmalloc

    ヒープに対する攻撃とその対策
  • Use After Freeとヒープスプレー

    連載目次 ヒープ破壊を行う「User After Free」とは 前回は、ヒープオーバーフローを中心とした、ヒープ破壊の脆弱性と、その対策について紹介しました。今回は、ヒープオーバーフローと別の手法でヒープ破壊を行う「User After Free」と呼ばれる攻撃と、Use After Freeと一緒に使われることが多い「ヒープスプレー」について紹介します。 図1に見るように、Use After Freeは、2011年から悪用される割合が増えており、2013年のデータでは、最も悪用された割合が多い脆弱性タイプになっています。 Use After Freeは、前回も紹介をしたヒープオーバーフローと同じくヒープ領域に対する攻撃で、ヒープ管理とヒープ領域のアドレスを記録する変数(ポインター)の不整合を使います。通常はこのような不整合が生じることはないのですが、例えばエラー処理やリトライ処理、マル

    Use After Freeとヒープスプレー
  • 1