(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】判定装置、判定方法、および、判定プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241203BHJP
【FI】
G06N20/00
(21)【出願番号】P 2023550809
(86)(22)【出願日】2021-09-28
(86)【国際出願番号】 JP2021035717
(87)【国際公開番号】W WO2023053226
(87)【国際公開日】2023-04-06
【審査請求日】2024-02-01
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】千葉 大紀
(72)【発明者】
【氏名】芝原 俊樹
(72)【発明者】
【氏名】秋山 満昭
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2020-115292(JP,A)
【文献】特開2019-215705(JP,A)
【文献】特開2017-111733(JP,A)
【文献】特開2002-99892(JP,A)
【文献】国際公開第2020/175692(WO,A1)
【文献】特開2020-135438(JP,A)
【文献】特開2020-89712(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/00
(57)【特許請求の範囲】
【請求項1】
入力データが悪性か否かを識別する識別モデルを用いて、前記入力データが悪性か否かを識別する識別部と、
前記識別モデルによる識別の根拠を出力する説明モデルを用いて、前記識別モデルによる入力データの識別の根拠を出力する根拠出力部と、
前記識別の結果と当該識別の根拠とを入力とし、当該識別の結果が誤っている確率を出力する異議判定モデルに、前記識別の結果と当該識別の根拠とを入力することにより、当該識別の結果が誤っている確率を出力する判定部と
を備えることを特徴とする判定装置。
【請求項2】
前記識別の結果および当該識別の根拠と、当該識別の結果が正しいか否かを示すラベルとを含むデータセットを用いて、前記異議判定モデルの学習を行う学習部
を備えることを特徴とする請求項1に記載の判定装置。
【請求項3】
前記学習部は、
前記識別モデルが、悪性のデータを悪性ではないと識別する傾向がある場合、前記データセットのデータのうち、前記識別モデルにより、悪性であるにもかかわらず悪性ではないと識別されたデータを用いて前記異議判定モデルを学習する
ことを特徴とする請求項2に記載の判定装置。
【請求項4】
前記学習部は、
前記識別モデルが、悪性ではないデータを悪性と識別する傾向がある場合、前記データセットのデータのうち、前記識別モデルにより、悪性ではないにもかかわらず悪性と識別されたデータを用いて前記異議判定モデルを学習する
ことを特徴とする請求項2に記載の判定装置。
【請求項5】
前記識別モデルの学習に用いられたデータを、前記識別モデルに入力して得られた識別の結果と、前記データが悪性か否かの正解ラベルとに基づき、前記識別モデルに、悪性の入力データを悪性ではないと識別する傾向があるか、悪性ではない入力データを悪性と識別する傾向があるかを分析する傾向分析部
をさらに備えることを特徴とする請求項3または請求項4に記載の判定装置。
【請求項6】
前記識別の結果が誤っている確率の高さに基づき、ユーザが検証すべきデータを抽出する抽出部
をさらに備えることを特徴とする請求項1に記載の判定装置。
【請求項7】
判定装置により実行される判定方法であって、
入力データが悪性か否かを識別する識別モデルを用いて、前記入力データが悪性か否かを識別する工程と、
前記識別モデルによる識別の根拠を出力する説明モデルを用いて、前記識別モデルによる入力データの識別の根拠を出力する工程と、
前記識別の結果と当該識別の根拠とを入力とし、当該識別の結果が誤っている確率を出力する異議判定モデルに、前記識別の結果と当該識別の根拠とを入力することにより、当該識別の結果が誤っている確率を出力する工程と
を含むことを特徴とする判定方法。
【請求項8】
入力データが悪性か否かを識別する識別モデルを用いて、前記入力データが悪性か否かを識別する工程と、
前記識別モデルによる識別の根拠を出力する説明モデルを用いて、前記識別モデルによる入力データの識別の根拠を出力する工程と、
前記識別の結果と当該識別の根拠とを入力とし、当該識別の結果が誤っている確率を出力する異議判定モデルに、前記識別の結果と当該識別の根拠とを入力することにより、当該識別の結果が誤っている確率を出力する工程と
をコンピュータに実行させるための判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、判定装置、判定方法、および、判定プログラムに関する。
【背景技術】
【0002】
従来、機械学習されたモデルにより、サイバー空間における悪性活動を検知する技術がある。しかし、モデルによる検知は完全なものではなく、誤検知や悪性活動の見逃しが起こる可能性がある。このため、実用の場面においては、人間がモデルの検知結果を検証することが不可欠である。
【0003】
上記の人間による検証を手助けする方法として、モデルの検知結果の根拠を出力する説明可能AI(Explainable AI:XAI)を用いる方法がある。このXAIの出力結果を人間が確認することにより、上記のモデルによる検知結果を検証することができる。
【先行技術文献】
【非特許文献】
【0004】
【文献】S.C.Sundaramurthy, et al., A Human Capital Model for Mitigating Security Analyst Burnout, Proc. SOUPS, 2015.
【文献】Ponemon Institute, Improving the Effectiveness of the Security Operations Center, 2019.
【文献】D. Chiba, et al., DomainProfiler: Discovering Domain Names Abused in Future, in Proc. IEEE/IFIP DSN, 2016.
【文献】N. Fukushi, et al., Exploration into Gray Area: Toward Efficient Labeling for Detecting Malicious Domain Names, IEICE Trans. Communications, 2020.
【文献】Adadi, et al., Peeking Inside the Black-Box: A Survey on Explainable Artificial Intelligence (XAI), IEEE Access, 2018.
【文献】総務省,AIネットワーク社会推進会議報告書 2018, [2021年9月22日検索],インターネット<URL:http://www.soumu.go.jp/menu_news/s-news/01iicp01_02000072.html>
【文献】Ribeiro, et al., “Why Should I Trust You?”Explaining the Predictions of Any Classifier, Proc. ACM KDD, 2016.
【文献】Lundberg, et al., A Unified Approach to Interpreting Model Predictions, Proc. NIPS, 2017.
【文献】I.Lage, et al., Human-in-the-Loop Interpretability Prior, Proc. NeurIPS, 2018.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、検証の対象となる検知結果の数が膨大である場合、人間がその検知結果の根拠(XAIの出力結果)をすべて確認するのは難しい。また、XAIの出力結果を解釈すること自体が難しいこともある。そこで、本発明は、人間がモデルの検知結果を検証する際の労力を軽減することを課題とする。
【課題を解決するための手段】
【0006】
前記した課題を解決するため、入力データが悪性か否かを識別する識別モデルを用いて、前記入力データが悪性か否かを識別する識別部と、前記識別モデルによる識別の根拠を出力する説明モデルを用いて、前記識別モデルによる入力データの識別の根拠を出力する根拠出力部と、前記識別の結果と当該識別の根拠とを入力とし、当該識別の結果が誤っている確率を出力する異議判定モデルに、前記識別の結果と当該識別の根拠とを入力することにより、当該識別の結果が誤っている確率を出力する判定部とを備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、人間がモデルの検知結果を検証する際の労力を軽減することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、判定装置の概要を説明する図である。
【
図3】
図3は、異議判定モデルの学習用データセットの作成例を示す図である。
【
図4】
図4は、第1の実施形態における異議判定モデルの学習手順の例を示すフローチャートである。
【
図5】
図5は、第1の実施形態における異議判定モデルを用いた判定処理の例を示すフローチャートである。
【
図6】
図6は、第2の実施形態における異議判定モデルの学習手順の例を示すフローチャートである。
【
図7】
図7は、判定プログラムを実行するコンピュータの構成例を示す図である。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら、本発明を実施するための形態(実施形態)を第1の実施形態および第2の実施形態に分けて説明する。本発明は、各実施形態に限定されない。
【0010】
[第1の実施形態]
まず、
図1を用いて、第1の実施形態の判定装置の概要を説明する。判定装置は、識別モデルと説明モデルと異議判定モデルとを備える。
【0011】
識別モデルは、入力データが悪性か否かの識別結果を出力するモデルである。例えば、識別モデルは、入力データが悪性である確率を識別結果として出力する。
【0012】
また、説明モデルは、識別モデルによる識別の根拠を出力するモデルである。例えば、説明モデルは、識別モデルおよび当該識別モデルへの入力データの入力を受け付けると、当該識別モデルによる識別の根拠(説明結果)を出力する。この説明結果は、例えば、識別モデルが用いる各特徴量の重要度を示した情報である。
【0013】
異議判定モデルは、識別モデルによる入力データの識別結果と説明モデルによる説明結果とを入力とし、入力データの識別結果のもっともらしさを示す値(例えば、識別結果が誤っている確率)を判定結果として出力するモデルである。
【0014】
この異議判定モデルは、識別モデルによる識別結果および説明モデルによる説明結果と、当該識別結果が正しいか否かを示すラベル(真の値を示すラベル)とに基づき学習される。
【0015】
判定装置のユーザ(例えば、アナリスト)は、異議判定モデルにより出力される判定結果を確認することで、識別モデルによる入力データの識別結果のもっともらしさを知ることができる。
【0016】
これにより、判定装置のユーザは、例えば、入力データの識別結果のうち、誤っている可能性の高い識別結果が分かる。よって、例えば、ユーザは、どの識別結果から優先的に検証を行えばよいかが分かるので、識別結果の検証を効率よく行うことができる。例えば、ユーザが、誤っている可能性の高い識別結果に絞り込んで検証を行うことで、検証に要する労力を軽減することができる。
【0017】
[構成]
次に、
図2を用いて、判定装置10の構成例を説明する。判定装置10は、入出力部11と、記憶部12と、制御部13とを備える。
【0018】
入出力部11は、制御部13が用いる各種データの入力を受け付けたり、制御部13による処理結果を出力したりする入出力インターフェースである。
【0019】
記憶部12は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部12は、RAM(Random Access Memory)、フラッシュメモリ等のデータを書き換え可能な半導体メモリであってもよい。記憶部12は、判定装置10で実行されるOS(Operating System)や各種プログラムを記憶する。さらに、記憶部12は、プログラムの実行で用いられる各種情報を記憶する。
【0020】
例えば、記憶部12は、識別モデル、説明モデル、識別モデルの学習に用いられたデータセット等を記憶する。また、制御部13により異議判定モデルが学習されると、記憶部12には異議判定モデルが記憶される。
【0021】
識別モデルは、前記したとおり、入力データが悪性か否かの識別結果(例えば、入力データが悪性である確率値)を出力するモデルである。この識別モデルは、例えば、DomainProfiler(機械学習によりドメイン名に対し悪性/良性の二値分類を行うモデル。非特許文献3参照)等により実現される。
【0022】
説明モデルは、入力データと識別モデルとを入力とし、当該識別モデルよる当該入力データの識別の根拠(説明結果)を出力するモデルである。この説明モデルは、例えば、LIME(非特許文献7参照)、SHAP(非特許文献8参照)等により実現される。
【0023】
データセットは、識別モデルの学習に用いられたデータセットである。このデータセットは、例えば、データ(特徴量)とそのデータの真の識別ラベル(悪性/良性)とを対応付けたデータである。
【0024】
制御部13は、判定装置10全体を制御する。制御部13は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。
【0025】
制御部13は、学習部131と、データ受付部132と、識別部133と、根拠出力部134と、判定部135と、抽出部136と、データ出力部137とを備える。傾向分析部138および学習データ選択部139は、装備される場合と装備されない場合とがあり、装備される場合については後記する。
【0026】
学習部131は、異議判定モデルの学習を行う。学習部131は、例えば、識別モデルにより出力された入力データの識別の結果と、説明モデルにより出力された当該識別の説明結果と、当該識別の結果が正しいか否かを示すラベルとを含む学習用データセットを用いて、異議判定モデルを学習する。
【0027】
図3を用いて、学習部131による異議判定モデルの学習例を説明する。まず、学習部131が異議判定モデルの学習用データセットQの作成手順を説明する。
【0028】
まず、学習部131は、真の識別ラベルが既知のデータセットP={(xi,yi*)}、i=1,2,・・・,nを用意する。このデータセットPは、例えば、サンプルを特徴付けるm次元の特徴量ベクトルxi=(xi,1,xi,2,・・・,xi,m)とその真の識別ラベルyi*∈{悪性,良性}の組からなるn個のサンプルの集合である。
【0029】
学習部131は、学習用データセットQを作成するため、xiを識別モデルf(・)と説明モデルg(・)に入力し,識別結果y1,i=f(xi)∈{悪性,良性}と、説明結果y2,i=g(xi,f(・))を得る。この説明結果y2,iは、特徴量ベクトルxiと同じく、m次元ベクトルとして与えられる。この説明結果y2,iの各要素は、例えば、特徴量ベクトルxiの各要素に対応する特徴量xi,jの重要度である。この特徴量xi,jの重要度は、任意のXAIを用いて算出された値でよい。
【0030】
次に、学習部131は、識別結果y
1,iを真の識別ラベルy
i*と比較し、異議ラベルy
3,i*=I(y
1,i≠y
i*)を生成する。ただし、
図3に示すI(・)は括弧内が真の場合に1(異議あり)、偽の場合に0(異議なし)となる指示関数とする。すなわち、学習部131は、識別モデルによる識別結果y
1,iと、真の識別ラベルy
i*が一致しなければ「異議あり(識別結果は正しくない)」、一致すれば「異議なし(識別結果は正しい)」というラベルを生成する。
【0031】
以上の手順により、学習部131は、異議判定モデルの学習用データセットQ={(y1,i,y2,i),y3,i*}、i=1,2,・・・,nを作成する。
【0032】
学習部131は、学習用データセットQを用い、特徴量(y1,i,y2,i)に対する異議判定モデルの出力h(y1,i,y2,i)が異議ラベルy3,i*に一致するように異議判定モデルを学習する。この異議判定モデルの学習には任意の教師あり機械学習アルゴリズムを使用することができる。
【0033】
なお、学習部131は、異議判定モデルの判定精度を高めるため、学習用データセットQに含まれるサンプルのうち、異議判定が生じている可能性が高い(つまり識別結果に誤検知や見逃しが生じている可能性が高い)サンプルを用いて異議判定モデルの学習を行ってもよい。この場合の実施形態については、第2の実施形態で述べる。
【0034】
図2の説明に戻る。データ受付部132は、識別モデルによる識別対象のデータの入力(入力データ)を受け付ける。識別部133は、識別モデルを用いて、入力データが悪性か否かを識別する。根拠出力部134は、説明モデルを用いて、識別モデルによる入力データの識別の根拠(説明結果)を出力する。
【0035】
判定部135は、学習された異議判定モデルに、識別モデルにより出力された識別の結果と、説明モデルにより出力された当該識別の根拠とを入力することにより、当該識別の結果のもっともらしさを示す値(判定結果)を出力する。判定結果は、例えば、当該識別の結果が誤っている確率等である。
【0036】
抽出部136は、判定部135による判定結果に基づき、判定装置10のユーザが検証すべきデータを抽出する。例えば、抽出部136は、誤っている確率が高いものから順に所定順位までのデータ(例えば、識別の結果と、当該識別の対象となった入力データと、当該識別の説明結果)を記憶部12から抽出する。また、抽出部136は、誤っている確率が所定の閾値以上のデータを記憶部12から抽出してもよい。データ出力部137は、抽出部136により抽出されたデータを入出力部11経由で出力する。
【0037】
[処理手順の例]
次に、
図4および
図5を用いて、判定装置10の処理手順の例を説明する。まず、
図4を用いて、判定装置10が異議判定モデルを学習する手順を説明する。
【0038】
判定装置10のデータ受付部132は、入力データ(データセット)を受け付ける(S1)。次に、識別部133は、識別モデルを用いて、S1で受け付けた入力データが悪性か否かを識別する(S2)。また、根拠出力部134は、説明モデルを用いて、S2の識別の結果(識別結果)の根拠(説明結果)を出力する(S3)。
【0039】
学習部131は、S2の処理により得られた入力データの識別の結果と、S3の処理により得られた当該識別の説明結果と、当該識別の結果が正しいか否かを示すラベルとを用いて、異議判定モデルの学習用データセットを作成する(S4)。そして、学習部131は、S4で作成した学習用データセットを用いて、異議判定モデルを学習する(S5)。
【0040】
次に、
図5を用いて、異議判定モデルを用いた判定処理の例を説明する。判定装置10のデータ受付部132は、判定対象の入力データを受け付ける(S11)。次に、識別部133は、識別モデルを用いて、S11で受け付けた入力データが悪性か否かを識別する(S12)。その後、根拠出力部134は、説明モデルを用いて、S12の識別の結果(識別結果)の根拠(説明結果)を出力する(S13)。
【0041】
その後、判定部135は、異議判定モデルを用いて、識別モデルによる入力データの識別の結果が誤っているか否かを判定する。例えば、判定部135は、異議判定モデルに、S12における入力データの識別の結果と、S13の説明結果とを入力することにより、入力データに対する識別の結果が誤っている確率(判定結果)を出力する(S14)。
【0042】
そして、抽出部136は、識別の結果が誤っている確率が高いデータから優先的に抽出する(S15)。例えば、抽出部136は、識別の結果が誤っている確率の高さが上記所定順位までの入力データ、識別の結果、当該識別の説明結果を抽出する。その後、データ出力部137は、S15で抽出されたデータを出力する(S16)。
【0043】
以上の処理により判定装置10は、識別モデルによる識別の結果が誤っている可能性の高いデータ(=人間が検証すべきデータ)を出力することができる。その結果、人間(例えば、アナリスト)は、識別の結果の検証作業を効率よく行うことができる。また、人間が識別モデルの識別の結果を検証する際の労力を軽減することができる。
【0044】
[第2の実施形態]
なお、前記した通り、判定装置10の学習部131は、異議判定モデルの判定精度を高めるため、学習用データセットQに含まれるサンプルのうち、識別結果が誤っている可能性が高い(つまり誤検知や見逃しが生じている可能性が高い)サンプルを用いて異議判定モデルの学習を行ってもよい。この場合の実施形態を第2の実施形態として説明する。第1の実施形態と同じ構成は同じ符号を付して説明を省略する。
【0045】
第2の実施形態の判定装置10は、
図2に示す傾向分析部138と学習データ選択部139をさらに備える。傾向分析部138は、識別モデルが、悪性の入力データを悪性ではないと識別する傾向があるか(悪性を見逃す傾向があるか)、悪性ではない入力データを悪性と識別する傾向があるか(誤検知の傾向があるか)を分析する。
【0046】
例えば、傾向分析部138は、識別モデルの学習に用いられたデータセットを識別モデルに入力して得られた識別の結果と、当該データセットのデータそれぞれが悪性か否かを示す正解ラベルとを比較することにより、識別モデルが上記のいずれの傾向があるかを分析する。
【0047】
学習データ選択部139は、傾向分析部138による識別モデルの傾向の分析結果に基づき、異議判定モデルの学習に用いるデータの範囲を選択する。
【0048】
例えば、傾向分析部138により、識別モデルは「悪性を見逃す傾向がある」と分析された場合、学習データ選択部139は、当該識別モデルにより、悪性であるにもかかわらず悪性ではないと識別されたデータを、異議判定モデルの学習に用いるデータとして選択する。
【0049】
一方、傾向分析部138により、識別モデルは「誤検知が多い傾向がある」と分析された場合、学習データ選択部139は、当該識別モデルにより、悪性ではないにもかかわらず悪性と識別されたデータを、異議判定モデルの学習に用いるデータとして選択する。
【0050】
判定装置10が上記のようにして異議判定モデルの学習に用いるデータを選択することで、異議判定モデルの学習を効率よく行うことができる。
【0051】
図6を用いて、第2の実施形態の判定装置10における異議判定モデルの学習手順の例を説明する。判定装置10の傾向分析部138は、識別モデルの学習に用いたデータセットを識別モデルに入力し、識別結果を取得する(S21)。その後、傾向分析部138は、S21で取得した識別結果と、上記のデータセットに含まれる正解ラベルとの差異により、識別モデルが間違う傾向(悪性を見逃してしまう傾向が強い/誤検知の傾向が強い)を分析する(S22)。
【0052】
S22で、傾向分析部138により、識別モデルは、悪性を見逃してしまう傾向が強いと分析された場合(S23→悪性を見逃してしまう傾向が強い)、学習データ選択部139は、非悪性の予測領域、かつ、予測確率が低い領域を、異議判定モデルが学習すべき領域として選択する(S24)。例えば、学習データ選択部139は、学習用データセットQに含まれるサンプルのうち、悪性と識別する確率が所定値以下(例えば、0.1以上、0.5以下)のサンプルを、異議判定モデルが学習すべきサンプルとして選択する。
【0053】
一方、S22で、傾向分析部138により、識別モデルは、誤検知の傾向が強いと分析された場合(S23→誤検知の傾向が強い)、学習データ選択部139は、学習用データセットのうち、悪性の予測領域、かつ、予測確率が低い領域を、異議判定モデルが学習すべき領域として選択する(S25)。例えば、学習データ選択部139は、学習用データセットQに含まれるサンプルのうち、悪性と識別する確率が所定値以下(例えば、0.5以上、0.9以下)のサンプルを、異議判定モデルが学習すべきサンプルとして選択する。その後、S26へ進む。
【0054】
学習部131は、S24またはS25で学習データ選択部139により選択された領域のデータを用いて、異議判定モデルを学習する(S26)。
【0055】
このようにすることで、判定装置10は、識別モデルの特性に基づき、異議判定モデルの学習を効率的に行うことができる。
【0056】
[その他]
判定装置10が、識別モデルによる識別結果が疑わしいデータ(=人間が検証すべきデータ)を出力し、人間がそのデータを検証した後、判定装置10は、人間による検証結果を用いて、識別モデルの再学習を行ってもよい。このようにすることで、判定装置10は、識別モデルの識別の精度を向上させることができる。その結果、人間が識別モデルの識別結果を検証する労力をさらに軽減することができる。
【0057】
[実験結果]
次に、上記の第2の実施形態で述べた判定装置10により学習された、異議判定モデルの評価結果を以下に示す。
【0058】
ここでは、異議判定モデルによる判定対象の識別モデルが、DomainProfilerのデータセットにより学習されたモデルである場合の評価結果を説明する。このDomainProfilerのデータセットのうち、識別モデルにより、悪性ドメイン名と識別された80個のサンプルを異議判定モデルのテストデータとして使用した。この80個のサンプルは、すべて識別モデルにより悪性ドメイン名と識別されたものであるが、その中に実際には良性ドメイン名が12個含まれている。
【0059】
上記のテストデータを用いて、異議判定モデルの有効性を評価した。なお、異議判定モデルが、識別モデルの識別結果は誤っている(異議あり)と判定する確信度が0.5以上のサンプルについて、異議判定モデルが「異議あり」と判定したサンプルとした。また、上記の確信度が0.5未満のサンプルについては、異議判定モデルが「異議なし」と判定したサンプルとした。
【0060】
ここで、上記の異議判定モデルにより「異議あり」と判定されたサンプル31個をアナリスト(人間)が検証したところ、そのうち11個が正解であった。つまり、「異議あり」の正解率は0.35(=11/31)であった。また、異議判定モデルにより「異議なし」と判定されたサンプル49個をアナリストが検証したところ、そのうち3個が不正解であった。つまり、「異議なし」の不正解率は0.06(=3/49)であった。
【0061】
また、異議判定モデルによる判定対象の識別モデルが、EMBER(Endgame Malware BEnchmark for Research)のデータセットにより学習されたモデルである場合の評価結果を説明する。このEMBERのデータセットのうち、識別モデルにより良性PEファイル(良性のポータブル実行ファイル)と識別された81個のサンプルを異議判定モデルのテストデータとして使用した。この81個のサンプルは、すべて識別モデルにより良性PEファイルと識別されたものであるが、その中に実際には悪性PEファイルが18個含まれている。
【0062】
上記のテストデータを用いて、異議判定モデルの有効性を評価した。ここでも、異議判定モデルが、識別モデルの識別結果は誤っている(異議あり)と判定する確信度が0.5以上のサンプルについて、異議判定モデルが「異議あり」と判定したサンプルとした。また、上記の確信度が0.5未満のサンプルについては、異議判定モデルが「異議なし」と判定したサンプルとした。
【0063】
ここで、上記の異議判定モデルにより「異議あり」と判定されたサンプル52個をアナリストが検証したところ、そのうち15個が正解であった。つまり、「異議あり」の正解率は0.28(=15/52)であった。また、異議判定モデルにより「異議なし」と判定されたサンプル29個をアナリストが検証したところ、そのうち3個が不正解であった。つまり、「異議なし」の不正解率は0.10(=3/29)であった。
【0064】
以上のことから、異議判定モデルにより異議あり(識別モデルによる識別結果が誤っている可能性が高い)と判定されたサンプルは、人間による検証対象としてよいサンプルであることが確認できた。
【0065】
[システム構成等]
また、図示した各部の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0066】
また、前記した実施形態において説明した処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0067】
[プログラム]
前記した判定装置10は、パッケージソフトウェアやオンラインソフトウェアとしてプログラム(判定プログラム)を所望のコンピュータにインストールさせることによって実装できる。例えば、上記のプログラムを情報処理装置に実行させることにより、情報処理装置を判定装置10として機能させることができる。ここで言う情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等の端末等がその範疇に含まれる。
【0068】
図7は、判定プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0069】
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0070】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の判定装置10が実行する各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、判定装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0071】
また、上述した実施形態の処理で用いられるデータは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0072】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続される他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0073】
10 判定装置
11 入出力部
12 記憶部
13 制御部
131 学習部
132 データ受付部
133 識別部
134 根拠出力部
135 判定部
136 抽出部
137 データ出力部
138 傾向分析部
139 学習データ選択部