IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

<>
  • 特許-評価装置、評価方法及び評価プログラム 図1
  • 特許-評価装置、評価方法及び評価プログラム 図2
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-22
(45)【発行日】2023-03-30
(54)【発明の名称】評価装置、評価方法及び評価プログラム
(51)【国際特許分類】
   G06F 21/14 20130101AFI20230323BHJP
   G06N 20/00 20190101ALI20230323BHJP
【FI】
G06F21/14
G06N20/00 130
【請求項の数】 11
(21)【出願番号】P 2020065650
(22)【出願日】2020-04-01
(65)【公開番号】P2021163300
(43)【公開日】2021-10-11
【審査請求日】2022-06-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】清本 晋作
【審査官】平井 誠
(56)【参考文献】
【文献】特表2009-514060(JP,A)
【文献】米国特許出願公開第2018/0183815(US,A1)
【文献】北岡 哲哉 Tetsuya Kitaoka,第82回(2020年)全国大会講演論文集(1) コンピュータシステム ソフトウェア科学・工学 データとウェブ,2020年02月20日,第1-231~1-232ページ
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/14
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
難読化前の複数のプログラムから評価用プログラムを選択して所定のラベルを付与し、当該評価用プログラム及び前記所定のラベルとは異なるラベルを付与した他のプログラムを訓練データとして、学習済みモデルを生成する学習部と、
前記評価用プログラム及び前記他のプログラムのうち、いずれかのプログラムに対して評価対象の難読化処理を行った後のプログラムを前記学習済みモデルに入力し、判定結果を取得する判定部と、
複数の前記判定結果の正答率に基づいて、前記難読化処理の安全性の評価値を算出する評価部と、を備える評価装置。
【請求項2】
前記評価部は、前記評価用プログラム及び前記他のプログラムのそれぞれに対する前記判定結果の正答率に基づいて、前記難読化処理の安全性の評価値を算出する請求項1に記載の評価装置。
【請求項3】
前記評価部は、無作為にラベルの答えを選択した場合の正答確率に応じた前記判定結果への重み付けにより、前記正答率を調整する請求項2に記載の評価装置。
【請求項4】
前記学習部は、前記複数のプログラムから前記評価用プログラムを繰り返し選択し、
前記判定部は、複数の前記学習済みモデルから、それぞれ前記判定結果を取得する請求項1から請求項3のいずれかに記載の評価装置。
【請求項5】
前記評価部は、前記判定結果の正答率を、前記評価用プログラムを変えて複数回取得することにより統計処理する請求項4に記載の評価装置。
【請求項6】
前記判定部は、前記いずれかのプログラムに対して前記難読化処理を、パラメータをそれぞれ変えて複数回行った際の前記判定結果をそれぞれ取得する請求項1から請求項5のいずれかに記載の評価装置。
【請求項7】
前記評価部は、前記判定結果の正答率を、前記難読化処理のパラメータを変えて複数回取得することにより統計処理する請求項6に記載の評価装置。
【請求項8】
前記訓練データ、及び前記学習済みモデルへの入力は、プログラムを2次元画像に変換したものである請求項1から請求項7のいずれかに記載の評価装置。
【請求項9】
前記訓練データ、及び前記学習済みモデルへの入力は、プログラムをベクトルに変換したものである請求項1から請求項7のいずれかに記載の評価装置。
【請求項10】
難読化前の複数のプログラムから評価用プログラムを選択して所定のラベルを付与し、当該評価用プログラム及び前記所定のラベルとは異なるラベルを付与した他のプログラムを訓練データとして、学習済みモデルを生成する学習ステップと、
前記評価用プログラム及び前記他のプログラムのうち、いずれかのプログラムに対して評価対象の難読化処理を行った後のプログラムを前記学習済みモデルに入力し、判定結果を取得する判定ステップと、
複数の前記判定結果の正答率に基づいて、前記難読化処理の安全性の評価値を算出する評価ステップと、をコンピュータが実行する評価方法。
【請求項11】
請求項1から請求項9のいずれかに記載の評価装置としてコンピュータを機能させるための評価プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムの難読化手法の安全性を評価するための装置、方法及びプログラムに関する。
【背景技術】
【0002】
一般に、ソフトウェアには、価値のあるアルゴリズム及びコンテンツの暗号鍵等、利用者に対して秘密にすべき情報が含まれる場合がある。一方で、ソフトウェアを解析するためのリバースエンジニアリング技術も数多く開発されているのが現状である。このため、これらの技術によりソフトウェアが解析されると、不正な者に秘密情報が入手されるという脅威が考えられる。
こうした脅威に対し、ソフトウェアの仕様を保ったまま、ソフトウェアの解析を困難にする難読化という技術がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-58994号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、難読化されたプログラムから秘密にすべき情報が解析される脅威を定量的に評価することはできなかった。
【0005】
本発明は、難読化手法の安全性を定量的に評価できる評価装置、評価方法及び評価プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る評価装置は、難読化前の複数のプログラムから評価用プログラムを選択して所定のラベルを付与し、当該評価用プログラム及び前記所定のラベルとは異なるラベルを付与した他のプログラムを訓練データとして、学習済みモデルを生成する学習部と、前記評価用プログラム及び前記他のプログラムのうち、いずれかのプログラムに対して評価対象の難読化処理を行った後のプログラムを前記学習済みモデルに入力し、判定結果を取得する判定部と、複数の前記判定結果の正答率に基づいて、前記難読化処理の安全性の評価値を算出する評価部と、を備える。
【0007】
前記評価部は、前記評価用プログラム及び前記他のプログラムのそれぞれに対する前記判定結果の正答率に基づいて、前記難読化処理の安全性の評価値を算出してもよい。
【0008】
前記評価部は、無作為にラベルの答えを選択した場合の正答確率に応じた前記判定結果への重み付けにより、前記正答率を調整してもよい。
【0009】
前記学習部は、前記複数のプログラムから前記評価用プログラムを繰り返し選択し、前記判定部は、複数の前記学習済みモデルから、それぞれ前記判定結果を取得してもよい。
【0010】
前記評価部は、前記判定結果の正答率を、前記評価用プログラムを変えて複数回取得することにより統計処理してもよい。
【0011】
前記判定部は、前記いずれかのプログラムに対して前記難読化処理を、パラメータをそれぞれ変えて複数回行った際の前記判定結果をそれぞれ取得してもよい。
【0012】
前記評価部は、前記判定結果の正答率を、前記難読化処理のパラメータを変えて複数回取得することにより統計処理してもよい。
【0013】
前記訓練データ、及び前記学習済みモデルへの入力は、プログラムを2次元画像に変換したものであってもよい。
【0014】
前記訓練データ、及び前記学習済みモデルへの入力は、プログラムをベクトルに変換したものであってもよい。
【0015】
本発明に係る評価方法は、難読化前の複数のプログラムから評価用プログラムを選択して所定のラベルを付与し、当該評価用プログラム及び前記所定のラベルとは異なるラベルを付与した他のプログラムを訓練データとして、学習済みモデルを生成する学習ステップと、前記評価用プログラム及び前記他のプログラムのうち、いずれかのプログラムに対して評価対象の難読化処理を行った後のプログラムを前記学習済みモデルに入力し、判定結果を取得する判定ステップと、複数の前記判定結果の正答率に基づいて、前記難読化処理の安全性の評価値を算出する評価ステップと、をコンピュータが実行する。
【0016】
本発明に係る評価プログラムは、前記評価装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0017】
本発明によれば、難読化手法の安全性を定量的に評価できる。
【図面の簡単な説明】
【0018】
図1】実施形態における評価装置の機能構成を示す図である。
図2】実施形態における安全性の評価方法の処理手順を例示する図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施形態の一例について説明する。
図1は、本実施形態における評価装置1の機能構成を示す図である。
評価装置1は、サーバ又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備える。
【0020】
制御部10は、評価装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0021】
記憶部20は、ハードウェア群を評価装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)等であってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(評価プログラム)、学習モデル等を記憶する。
【0022】
制御部10は、学習部11と、判定部12と、評価部13とを備える。
制御部10は、これらの機能部により、学習モデルを用いた判定結果を用いて、難読化手法の安全性を評価する。
【0023】
学習部11は、難読化前の複数のプログラムから評価用プログラムを一つ選択して所定のラベルを付与し、この評価用プログラム及び所定のラベルとは異なるラベルを付与した他のプログラムを訓練データとしてDNN(Deep Neural Network)等に学習させ、学習済みモデルを生成する。
なお、付与されるラベルは、評価用プログラムを示すラベルt1と、その他を示すラベルt2の2種類であってもよいし、他のプログラムそれぞれに別々のラベル(t2,t3,…)が付与されてもよい。すなわち、学習済みモデルの出力は、t1を含む2種類以上である。
【0024】
ここで、訓練データ、及び学習済みモデルへの入力は、例えば、プログラムのビット列を2次元画像データに変換したものであってよく、この場合、DNN(Deep Neural Network)等に学習させることで学習済みモデルが生成される。
あるいは、訓練データ、及び学習済みモデルへの入力は、例えば、プログラムをベクトルに変換したものであってもよく、この場合、DBScan等のクラスタリング手法の学習をさせることで学習済みモデルが生成される。
【0025】
学習部11は、安全性評価のための多様な評価結果を収集するために、複数のプログラムから新たな評価用プログラムを繰り返し選択し、選択した評価用プログラムそれぞれに基づく学習済みモデルを判定部12に提供できる。
【0026】
判定部12は、評価用プログラム及び他のプログラムのうち、いずれか一つ又は複数のプログラムに対して評価対象の難読化処理を行った後のプログラムを、生成された学習済みモデルに入力し、ラベルの判定結果を取得する。
【0027】
このとき、判定部12は、評価用プログラム毎に生成された複数の学習済みモデルから、それぞれ判定結果を取得してもよい。
また、判定部12は、各プログラムに対して難読化処理を、パラメータを変えて複数回行った際の判定結果をそれぞれ取得してもよい。
【0028】
評価部13は、複数の判定結果の正答率に基づいて、難読化処理の強度すなわち安全性の評価値を算出する。
ここで、判定結果が正答であるとは、難読化された評価用プログラムをt1と判定した場合、難読された他のプログラムをt1以外(例えばt2、t3、・・・)と判定した場合であってよい。あるいは、他のプログラムにt2,t3,…と別々のラベルが付与された場合に、t1以外についても正しいラベルを出力した場合のみを正答としてもよい。
【0029】
また、正答率は、例えば次のように算出される。
(1)評価部13は、判定部12による評価用プログラム及び他のプログラムのそれぞれに対する判定結果を全て集計して正答率を算出する。
このとき、評価部13は、無作為にラベルの答えを選択した場合の正答確率に応じた判定結果への重み付けにより、正答率を調整してもよい。例えば、他のプログラム(ラベルt2)が複数用意された場合に、他のプログラム(t2)をt2と分類した判定結果よりも、評価用プログラム(t1)をt1と分類した判定結果に重み付けがされてよい。
【0030】
(2)評価部13は、選択された評価用プログラム毎に判定結果の正答率を求め、評価用プログラムを変えて正答率を複数回取得することにより、平均値又は最大値等の統計値を算出する。
【0031】
(3)評価部13は、評価用プログラムを変えて複数取得した判定結果から正答率を求め、さらに、難読化処理のパラメータを変えて正答率を複数回取得することにより、平均値又は最大値等の統計値を算出する。
【0032】
図2は、本実施形態における安全性の評価方法の処理手順を例示する図である。
この例では、訓練データに付与されるラベルは2種類、すなわち複数のプログラムのうち、評価用プログラムのラベルをt1、他のプログラムのラベルを共通のt2としている。また、学習モデルとして、画像データを入力とするDNNを採用している。
【0033】
学習部11は、これらのプログラムをそれぞれ画像データ化し、DNNに入力して学習させる。これにより生成された学習済みモデルは、入力されたプログラムの画像データをt1又はt2に分類して判定結果として出力する。
【0034】
判定部12は、評価対象である難読化手法を用いて難読化した評価用プログラムを画像データ化し、学習済みモデルに入力すると、判定結果としてt1又はt2が得られる。そして、判定結果がt1の場合が正答としてカウントされる。
このとき、判定部12は、他のプログラムについても、同様に画像データ化して学習済みモデルに入力し、判定結果がt2の場合を正答としてカウントしてもよい。
【0035】
ここで、評価対象である難読化手法がパラメータ(例えば乱数)の変更等により同一のプログラムから毎回異なる難読化プログラムを生成する場合、評価用プログラム及び他のプログラムの難読化は、繰り返し行われる。判定部12は、難読化後の各プログラムをそれぞれ画像化して学習済みモデルに入力すると、同様に判定結果を得る。
【0036】
そして、評価部13は、収集した判定結果の正答率が低いほど難読化手法が安全であるとして、例えば正答率の逆数等の評価値を算出する。
【0037】
このとき、評価部13は、前述のように、評価用プログラムを入れ替えて同様に正答率を算出すると、これらの平均値又は最大値等の統計値に基づいて評価値を算出してもよい。
あるいは、評価部13は、難読化手法のパラメータ毎に正答率を算出すると、これらの平均値又は最大値等の統計値に基づいて評価値を算出してもよい。
【0038】
本実施形態によれば、評価装置1は、所定のラベルを付与した評価用プログラムと、別のラベルを付与した他のプログラムとを訓練データとして、学習済みモデルを生成し、評価用プログラム及び他のプログラムのうち、いずれかのプログラムに対して難読化処理を行った後のプログラムを学習済みモデルに入力し、判定結果を取得する。そして、評価装置1は、複数の判定結果の正答率に基づいて、評価対象である難読化処理の安全性の評価値を算出する。
したがって、評価装置1は、AI(Artificial Intelligence)により難読化後のプログラムが難読化前と同じプログラムであると分類される場合を危険と判断することで、従来は人手に頼っていた安全性の評価を自動化し、難読化手法の安全性を定量的に評価できる。
【0039】
評価装置1は、評価用プログラム及び他のプログラムのそれぞれに対する判定結果の正答率に基づいて、難読化処理の安全性の評価値を算出することで、判定結果を容易に収集し、安全性の評価値を適切に算出できる。
このとき、評価装置1は、無作為にラベルの答えを選択した場合の正答確率に応じた判定結果への重み付けにより、正答率を調整することで、判定結果それぞれの重要度を反映し、より適切に安全性を評価できる。
【0040】
評価装置1は、複数のプログラムから評価用プログラムを繰り返し選択し、選択の度に生成した複数の学習済みモデルから、それぞれ判定結果を取得してもよい。
これにより、評価装置1は、複数の評価用プログラムを用いて、難読化手法の安全性を多面的に適切に評価できる。
また、評価装置1は、評価用プログラムの選択毎の正答率を統計処理することで、より適切な評価値を算出できる。
【0041】
評価装置1は、難読化処理を、パラメータを変えて複数回行った際の判定結果をそれぞれ取得してもよい。
これにより、評価装置1は、複数の難読化結果を用いて、難読化手法の安全性を多面的に適切に評価できる。
また、評価装置1は、パラメータ毎の正答率を統計処理することで、より適切な評価値を算出できる。
【0042】
評価装置1は、プログラムのビット列を2次元画像データに変換したものを訓練データ、及び学習済みモデルへの入力とすることで、DNN等による分類手法に適合させ、適切に評価方法を実現できる。
また、評価装置1は、プログラムをベクトルに変換したものを訓練データ、及び学習済みモデルへの入力とすることで、DBScan等によるクラスタリング手法に適合させ、適切に評価方法を実現できる。
【0043】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0044】
評価装置1による評価方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0045】
1 評価装置
10 制御部
11 学習部
12 判定部
13 評価部
20 記憶部
図1
図2