研究課題/領域番号 |
25730087
|
研究機関 | 京都産業大学 |
研究代表者 |
玉田 春昭 京都産業大学, コンピュータ理工学部, 准教授 (30457139)
|
研究期間 (年度) |
2013-04-01 – 2016-03-31
|
キーワード | 動的難読化 / 動的解析 / ステルシネス / Java / invokedynamic / メソッド引数入れ替え |
研究実績の概要 |
本研究の目的は,動的多様化技術を策定することで,Java言語に対する動的解析への対抗手段を講じることである.本年度は,書き換え情報の隠ぺいと,実行時間遅延の低減について研究を行った. 書き換え情報の隠ぺいは,昨年度から引き続き行っている.昨年度は,他言語向けに提案された畳み込み難読化手法をJavaに導入した.この手法は,似た2つの命令列を1つの命令列にまとめておき,実行時に相違部分を書き換えて本来の命令を実行するという手法である.しかし,実行時に命令を書き換えるため,効果は高いものの,適用後の実行遅延が著しく大きいという欠点があった.本年度は,異なるアプローチでこの問題に取り組み,新たな難読化手法を提案した.その手法は,メソッドのオーバーロードを利用し,本来呼び出すべきメソッドを誤認させる.呼び出されるメソッドは,メソッドの名前と,呼び出し時にスタックに積まれているオブジェクトで決定する.そのため,呼び出し時のオブジェクトを直前で入れ替えれば,記述されているメソッドとは異なるメソッドを呼び出せるようになる.そのため,予めメソッドの引数順序を入れ替えておき,本来とは異なるメソッドが呼び出されるようにしておく.そして,実行時に対象のメソッド呼び出しをフックし,引数の順序を入れ替えることで,本来のメソッドを呼び出す.このようにして,コード上の記述と実行時の記述を矛盾させることで攻撃者を混乱させる手法を提案した.この手法を,静的難読化,動的難読化の両面から提案し,評価した.提案手法の優れている点は,実行時の書き換えを行わなくても良い点にある.そのため,昨年度の手法に比べて遅延を低減できるようになった.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
本研究は大きく5つの達成目標を掲げている.(A) 書き換え情報の隠ぺい,(B) 実行速度遅延の低減,(C) 動的解析への耐性評価,(D) 多言語への適用,(E) ステルス性評価である.昨年度の,(A),(B),(C)への取り組みに加え,(D),(E)についても取り組んだ.また,本年度は,(A),(B),(C)について,昨年度とは異なるアプローチを用いて取り組んだ.(A)では,Java 8で導入されたinvokedynamic命令を用いたメソッドの偽装という新たな難読化手法を提案できた.この方法は,(D)他言語への適用においても,有効な方法である.また,昨年度の畳み込み手法とは異なり,必ずしも実行時の自己書き換えは必要ではない.そのため,(B)の実行速度の低減に寄与している.更に,(C)においても,被験者実験を行い,非常に簡易なプログラムであっても解析困難なプログラムに変更できたことを確認している.一方,難読化の評価も必要である.昨年度に引き続き,新たな手法もOpcode,operandを用いた(E)ステルス性評価を行った. このように,本研究の目的達成のために,多様な角度から切り込んでおり,おおむね順調に進展していると言える.
|
今後の研究の推進方策 |
次年度は,本年度までに行った内容を,より深く,広く発展させる.具体的には,(1) 本年度までの2つの手法を洗練させる.この2つの手法は,Javaに特化しており,他言語への応用が難しい. Javaに依存した技術を使っているためである.そこで,特化している部分をより汎用になるよう改善し,より一般化できるように務める. また,(2) 他の評価手法を用いた堅牢性評価,(3) 攻撃方法の確立も重要な方策である.堅牢性の評価方法も多くの方法を用いて行う必要がある.一方で,従来,保護手法への攻撃方法は確立されたものはない.保護手法だけでなく,攻撃手法の確立も重要な研究課題である.
|
次年度使用額が生じた理由 |
外部への成果発表のための費用として執行予定であったものの,不採録となり,参加を見送ったため,旅費に未使用額が生じた.
|
次年度使用額の使用計画 |
成果発表のための費用(旅費,会議参加費,論文掲載料など)として執行予定である.
|