資格暗記無料で始める

ROP(Return-Oriented Programming)とは?

ROP(Return-Oriented Programming)とは、実行不可属性によって注入コードが動かせない環境で、既に実行可能な領域にある短い命令列(末尾がリターン命令の断片)を選び、スタック上に戻りアドレスを並べて数珠つなぎに実行させる手法。新しい命令を持ち込まずに任意の処理を組み立てる。

りたーんおりえんてっどぷろぐらみんぐ

情報処理安全確保支援士試験の頻出用語/午前II/別名: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/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。