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