類似命令列の畳み込みによるプログラムの改ざん防止方法

西岡 隆司(0651085)


本発表では, 不正な改ざんからプログラムを保護することを目的として, アセンブリプログラムに対して畳み込みというプログラム変換を行う方法を提案する. 畳み込みは, プログラム中から一致する命令列の集合を検出し, それらを1つの命令列にまとめるプログラム変換である. この畳み込まれた命令列に改ざんを加えると, すべての畳み込み元の処理に影響を 与えるため, 攻撃者がプログラムに意図した改ざんすることは困難となる.

提案方法の評価として, 改ざんに対する耐性, プログラムサイズと実行時間の変化, 適用可能な範囲の評価を行った. その結果, 畳み込みによって改ざん耐性が向上しており, プログラムの実行時間 への影響も小さいが, 適用可能な範囲が小さいという課題も明らかとなった. そこで, 提案手法を拡張し, プログラムの自己書き換えを用いる命令列の畳み込みを 提案する. この拡張により, 不一致命令を含む類似命令列の集合に対しても畳み込みが 可能となり, 適用範囲が広がることを示した.