ジャンプ指向プログラミング(JOP)
ジャンプ指向プログラミング(JOP) とは何ですか?
ジャンプ指向プログラミング(JOP)Bletsch らが 2011 年に提案したコード再利用攻撃。間接ジャンプで終わるガジェットをディスパッチャ経由で連結し、ret を使わない ROP 代替を提供する。
JOP は 2011 年に Bletsch、Jiang、Freeh、Liang によって ROP の一般化として提案されました。ret で終わるガジェットの代わりに jmp [rax] のような間接ジャンプで終わるガジェットを用い、攻撃者制御のディスパッチャがガジェットアドレスのテーブルを順次たどります。呼び出しスタックを制御に使わないため、ret 連鎖を狙う shadow stack や stack canary などの旧来の対策を回避できます。実際の JOP 連鎖は Windows・Linux・組み込みで実証されており、情報リークと組み合わせて ASLR を破ることが多いです。現代のハードウェア対策には Intel CET/IBT、ARM BTI があり、間接分岐先を制限してナイーブな JOP 連鎖を断ち切ります。
● 例
- 01
呼び出しスタックは強化されているが間接ジャンプが自由な組み込みファームに対し JOP 連鎖を構築する。
- 02
Linux で JOP ディスパッチャと libc を組み合わせ、shadow stack のみの防御を回避して execve を呼ぶ。
● よくある質問
ジャンプ指向プログラミング(JOP) とは何ですか?
Bletsch らが 2011 年に提案したコード再利用攻撃。間接ジャンプで終わるガジェットをディスパッチャ経由で連結し、ret を使わない ROP 代替を提供する。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
ジャンプ指向プログラミング(JOP) とはどういう意味ですか?
Bletsch らが 2011 年に提案したコード再利用攻撃。間接ジャンプで終わるガジェットをディスパッチャ経由で連結し、ret を使わない ROP 代替を提供する。
ジャンプ指向プログラミング(JOP) からどのように防御しますか?
ジャンプ指向プログラミング(JOP) に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
ジャンプ指向プログラミング(JOP) の別名は何ですか?
一般的な別名: JOP。