ROP(Return-Oriented Programming)とは?
ROP(Return-Oriented Programming)とは、実行不可属性によって注入コードが動かせない環境で、既に実行可能な領域にある短い命令列(末尾がリターン命令の断片)を選び、スタック上に戻りアドレスを並べて数珠つなぎに実行させる手法。新しい命令を持ち込まずに任意の処理を組み立てる。
りたーんおりえんてっどぷろぐらみんぐ
ROP(Return-Oriented Programming)の意味
実行不可属性によって注入コードが動かせない環境で、既に実行可能な領域にある短い命令列(末尾がリターン命令の断片)を選び、スタック上に戻りアドレスを並べて数珠つなぎに実行させる手法。新しい命令を持ち込まずに任意の処理を組み立てる。
ROP(Return-Oriented Programming)の具体例
ライブラリ内の断片を組み合わせ、まずメモリ属性を変更する関数を呼び出して領域を実行可にし、その後で本来の攻撃コードへ移る。断片の位置が分かる必要があるため、事前にアドレス漏えいの脆弱性と組み合わせて使われる。
ROP(Return-Oriented Programming)は試験でどう引っ掛けられる?
DEPを有効にすれば防げるという理解は誤りで、ROPはまさにDEPを回避するための技法。有効な対策はASLRによる断片位置の隠蔽と、制御フローの正当性を検査する機構であり、単独の緩和策では止まらない点が重要。
ROP(Return-Oriented Programming)と関連する用語
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。