2013 Fiscal Year Research-status Report
Project/Area Number |
25730087
|
Research Category |
Grant-in-Aid for Young Scientists (B)
|
Research Institution | Kyoto Sangyo University |
Principal Investigator |
玉田 春昭 京都産業大学, コンピュータ理工学部, 准教授 (30457139)
|
Project Period (FY) |
2013-04-01 – 2016-03-31
|
Keywords | 動的多様化 / 動的解析 / 堅牢性 / ステルシネス / Java / 畳み込み |
Research Abstract |
本研究はJava言語に対する動的解析への対抗手段の構築を目的に,動的多様化技術を研究することにある.そこで,本年度は書き換え情報の隠ぺい,難読化手法自体の評価,そして,実行速度遅延の影響評価を行った. まず,書き換え情報の隠ぺいでは,Java言語に対する命令の畳み込みを行った.命令の畳み込みとは,似た2つの命令列を1つの命令列にまとめ,相違部分を自己書き換え手法により切り替える手法である.従来Java言語では実現不可能であったものの,最新のJava言語では可能になっている.ロード後にプログラムを書き換えられるインスツルメンテーション機構が導入されたためである.この機構を用いてJava言語の自己書き換えを実現し,畳み込みによる保護手法を提案した.ただし,書き換えには一定の条件があるため,従来の自己書き換え手法はそのまま適用できない.そこで,畳み込み部分をメソッドとして切り出し,メソッド単位で畳み込むようにした. 次に,畳み込みの評価手法として,ステルス性に着目した.ステルス性とは,コンパイラにより生成されたプログラムが自然であるという前提のもと,難読化などによるプログラムの書き換えがどの程度不自然になったのかを評価する方法である.この手法も従来手法をJava言語にそのまま適用するには不十分な点があった.そこで,オペコードではなく,オペランドに着目した測定手法や,別の算出手法を提案し,有用性を検証した. また,実行遅延速度遅延の影響評価では,畳み込みの実行速度の遅延を検証した.更に,従来はリフレクションを用いて実装していた手法をJava 7で導入されたinvokedynamic命令を使っても実装できるようになったため,過去の動的名前解決難読化の実装の違いによる実行速度の遅延の違いも評価した.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
本研究の最終目標は,Javaプログラムに動的解析に対する十分な耐性を持たせることである.そのために,プログラムの動的多様化技術に着目して研究を進めてきた.本年度は,過去に他言語向けに提案されていた畳み込み手法をJava言語に適応させる一方法について提案した. また,その手法が本当に十分な耐性を持たせられるのか評価も必要である.その一手法として,ステルシネスについて着目した.アセンブリ言語向けにステルシネスでの評価方法は提案されているものの,(1) メソッドの増減がステルシネスの増減に関係する,(2) 評価指標が単一であるという2つの問題があった.その2つを改善するJava言語向けのステルシネスの評価基準を提案した. 最後に,実行時間を低減するためには,現在の難読化手法がどのくらいの実行時間の低下をもたらすかを知らなければならない.そのため,提案した畳込みの実行回数による遅延の程度と,過去に提案された手法を別の方法により実装し,実行速度を比較した. 以上のことから,初年度に実施予定の研究内容は行えており,おおむね順調に進展していると言える.
|
Strategy for Future Research Activity |
次年度は,本年度に行った内容についてより広範な評価を行い,手法の改善に務める.具体的には,(1) 効果的な動的解析の手順を確立する,(2) 他の評価手法を用いてどのくらい読みにくくなったのかを評価する,(3) 実行速度低減のための方策について研究を進める,(4) 畳み込み以外の保護方法について検討する,の4つの方向性で研究を進める予定である. まず,(1)では,動的解析に対抗する手段を構築するためには,攻撃手段を明確にしておく必要がある.そのために,効果的な攻撃方法について調査・研究が必要である. 次に,(2)では,初年度では,提案した動的多様化手法について初歩的な評価しか行われていない.つまり,実際に提案した動的多様化技術により,ソフトウェアが堅牢であったのかの評価は十分ではない.先の(1)の結果と合わせて提案手法のより詳細な評価を行っていく. 本年度は,実行速度遅延の程度の計測を行い,遅延の程度を明らかにした.そこで,(3)では,具体的にどのような方策により遅延を低減できるか具体的な方策を講じる. 最後に(4)において,より広範な視点から動的多様化技術について新たな手法について検討する.最新のJava 8で導入されたLambda式で用いられるinvokedynamic命令を中心に検討する.
|
Research Products
(7 results)