Return-oriented programming とは

リターン指向プログラミング(ROP)は、コンピュータのセキュリティを悪用する手法であり、攻撃者が実行可能な領域保護やコード署名などのセキュリティ保護機能を備えた状態でコードを実行できるようにします。
この技術では、攻撃者はプログラムスタックをハイジャックするためにコールスタックを制御し、マシンのメモリに既に存在する「ガジェット」と呼ばれる慎重に選択されたマシン命令シーケンスを実行します。各ガジェットは通常、リターン命令で終了し、既存のプログラムおよび/または共有ライブラリコード内のサブルーチンに配置されています。これらのガジェットを組み合わせることで、攻撃者は簡単な攻撃を防御する防御を採用しているマシンで任意の操作を実行できます。