• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 課題ページに戻る

2013 年度 実施状況報告書

Java言語を対象とした動的多様化技術

研究課題

研究課題/領域番号 25730087
研究種目

若手研究(B)

研究機関京都産業大学

研究代表者

玉田 春昭  京都産業大学, コンピュータ理工学部, 准教授 (30457139)

研究期間 (年度) 2013-04-01 – 2016-03-31
キーワード動的多様化 / 動的解析 / 堅牢性 / ステルシネス / Java / 畳み込み
研究概要

本研究はJava言語に対する動的解析への対抗手段の構築を目的に,動的多様化技術を研究することにある.そこで,本年度は書き換え情報の隠ぺい,難読化手法自体の評価,そして,実行速度遅延の影響評価を行った.
まず,書き換え情報の隠ぺいでは,Java言語に対する命令の畳み込みを行った.命令の畳み込みとは,似た2つの命令列を1つの命令列にまとめ,相違部分を自己書き換え手法により切り替える手法である.従来Java言語では実現不可能であったものの,最新のJava言語では可能になっている.ロード後にプログラムを書き換えられるインスツルメンテーション機構が導入されたためである.この機構を用いてJava言語の自己書き換えを実現し,畳み込みによる保護手法を提案した.ただし,書き換えには一定の条件があるため,従来の自己書き換え手法はそのまま適用できない.そこで,畳み込み部分をメソッドとして切り出し,メソッド単位で畳み込むようにした.
次に,畳み込みの評価手法として,ステルス性に着目した.ステルス性とは,コンパイラにより生成されたプログラムが自然であるという前提のもと,難読化などによるプログラムの書き換えがどの程度不自然になったのかを評価する方法である.この手法も従来手法をJava言語にそのまま適用するには不十分な点があった.そこで,オペコードではなく,オペランドに着目した測定手法や,別の算出手法を提案し,有用性を検証した.
また,実行遅延速度遅延の影響評価では,畳み込みの実行速度の遅延を検証した.更に,従来はリフレクションを用いて実装していた手法をJava 7で導入されたinvokedynamic命令を使っても実装できるようになったため,過去の動的名前解決難読化の実装の違いによる実行速度の遅延の違いも評価した.

現在までの達成度 (区分)
現在までの達成度 (区分)

2: おおむね順調に進展している

理由

本研究の最終目標は,Javaプログラムに動的解析に対する十分な耐性を持たせることである.そのために,プログラムの動的多様化技術に着目して研究を進めてきた.本年度は,過去に他言語向けに提案されていた畳み込み手法をJava言語に適応させる一方法について提案した.
また,その手法が本当に十分な耐性を持たせられるのか評価も必要である.その一手法として,ステルシネスについて着目した.アセンブリ言語向けにステルシネスでの評価方法は提案されているものの,(1) メソッドの増減がステルシネスの増減に関係する,(2) 評価指標が単一であるという2つの問題があった.その2つを改善するJava言語向けのステルシネスの評価基準を提案した.
最後に,実行時間を低減するためには,現在の難読化手法がどのくらいの実行時間の低下をもたらすかを知らなければならない.そのため,提案した畳込みの実行回数による遅延の程度と,過去に提案された手法を別の方法により実装し,実行速度を比較した.
以上のことから,初年度に実施予定の研究内容は行えており,おおむね順調に進展していると言える.

今後の研究の推進方策

次年度は,本年度に行った内容についてより広範な評価を行い,手法の改善に務める.具体的には,(1) 効果的な動的解析の手順を確立する,(2) 他の評価手法を用いてどのくらい読みにくくなったのかを評価する,(3) 実行速度低減のための方策について研究を進める,(4) 畳み込み以外の保護方法について検討する,の4つの方向性で研究を進める予定である.
まず,(1)では,動的解析に対抗する手段を構築するためには,攻撃手段を明確にしておく必要がある.そのために,効果的な攻撃方法について調査・研究が必要である.
次に,(2)では,初年度では,提案した動的多様化手法について初歩的な評価しか行われていない.つまり,実際に提案した動的多様化技術により,ソフトウェアが堅牢であったのかの評価は十分ではない.先の(1)の結果と合わせて提案手法のより詳細な評価を行っていく.
本年度は,実行速度遅延の程度の計測を行い,遅延の程度を明らかにした.そこで,(3)では,具体的にどのような方策により遅延を低減できるか具体的な方策を講じる.
最後に(4)において,より広範な視点から動的多様化技術について新たな手法について検討する.最新のJava 8で導入されたLambda式で用いられるinvokedynamic命令を中心に検討する.

  • 研究成果

    (7件)

すべて 2014 2013

すべて 雑誌論文 (1件) (うち査読あり 1件) 学会発表 (6件)

  • [雑誌論文] 命令のランダム性に基づくプログラム難読化の評価2013

    • 著者名/発表者名
      二村 阿美,門田 暁人,玉田 春昭,神崎 雄一郎,中村 匡秀,松本 健一
    • 雑誌名

      コンピュータソフトウェア

      巻: 30 ページ: 18-24

    • DOI

      10.11309/jssst.30.3_18

    • 査読あり
  • [学会発表] An Obfuscation Method to Build a Fake Call Flow Graph by Hooking Method Calls2014

    • 著者名/発表者名
      Kazumasa Fukuda, Haruaki Tamada
    • 学会等名
      14th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD 2013)
    • 発表場所
      Harrah’s Casino Hotel, Las Vegas, U.S.A.
    • 年月日
      20140630-20140702
  • [学会発表] Javaバイトコード命令のオペコード、オペランドを用いた難読化手法のステルシネス評価2014

    • 著者名/発表者名
      大滝 隆貴,大堂 哲也,玉田 春昭,神崎 雄一郎,門田 暁人
    • 学会等名
      2014年暗号と情報セキュリティシンポジウム
    • 発表場所
      (2D2-2), 城山観光ホテル, 鹿児島, 日本
    • 年月日
      20140121-20140124
  • [学会発表] メソッド呼び出し関係隠蔽のための引数順序の入れ替えによる難読化2014

    • 著者名/発表者名
      福田 收真,玉田 春昭
    • 学会等名
      2014年暗号と情報セキュリティシンポジウム
    • 発表場所
      (2D2-3), 城山観光ホテル, 鹿児島, 日本
    • 年月日
      20140121-20140124
  • [学会発表] Java 7におけるAPI名隠ぺいのためのinvokedynamic命令を用いた難読化の試み2013

    • 著者名/発表者名
      福田 收真,玉田 春昭
    • 学会等名
      コンピュータセキュリティシンポジウム 2013
    • 発表場所
      (3D4-2), かがわ国際会議場, 高松, 香川
    • 年月日
      20131021-20131023
  • [学会発表] A Dynamic Birthmark from Analyzing Operand Stack Runtime Behavior to Detect Copied Software2013

    • 著者名/発表者名
      Kazumasa Fukuda, Haruaki Tamada
    • 学会等名
      13th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD 2013)
    • 発表場所
      Sheraton Waikiki, Honolulu, Hawaii, U.S.A.
    • 年月日
      20130701-20130703
  • [学会発表] An Instruction Folding Method to Prevent Reverse Engineering in Java Platform2013

    • 著者名/発表者名
      Tetsuya Ohdo, Haruaki Tamada, Yuichiro Kanzaki, Akito Monden
    • 学会等名
      13th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD 2013)
    • 発表場所
      Sheraton Waikiki, Honolulu, Hawaii, U.S.A.
    • 年月日
      20130701-20130703

URL: 

公開日: 2015-05-28  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi