(57)【要約】  算出装置（１０）は、悪性であることが既知の通信先をデータとして含む複数の訓練データの入力を受け付ける。また、算出装置（１０）は、入力された通信先の悪性度を算出するモデルを、複数の訓練データのそれぞれから生成する。また、算出装置（１０）は、モデルのそれぞれに重みを付け、モデル及び重みを用いて混合モデルを生成する。また、算出装置（１０）は、混合モデルを用いて悪性であるか否かが未知の通信先の悪性度を算出する。
2020070916.tif 000002
【特許請求の範囲】
【請求項１】
悪性であることが既知の通信先をデータとして含む複数のデータセットの入力を受け付ける入力部と、
入力された通信先の悪性度を算出するモデルを、前記複数のデータセットのそれぞれから生成する第１の生成部と、
前記モデルのそれぞれに重みを付け、前記モデル及び前記重みを用いて混合モデルを生成する第２の生成部と、
を有することを特徴とする算出装置。
【請求項２】
前記第２の生成部は、前記モデルのそれぞれについて、生成元のデータセットに関する統計量に応じた重みを付けることを特徴とする請求項１に記載の算出装置。
【請求項３】
前記複数のデータセットに含まれるデータから、前記モデルを用いた悪性度の算出への寄与度が大きい順に一定数のデータを選択する選択部と、
前記第１の生成部は、前記選択部によって選択されたデータから前記モデルを生成することを特徴とする請求項１に記載の算出装置。
【請求項４】
前記入力部は、前記データセットの入力を逐次受け付け、
前記選択部は、前記入力部に前記データセットが入力されるたびに、当該入力されたデータセットに含まれるデータそれぞれについて、前記第１の生成部によって生成済みのモデルを用いた場合の悪性度の算出への寄与度が大きい順に一定数のデータを選択し、
前記第１の生成部は、前記選択部によってデータが選択されるたびに、当該選択されたデータを基に前記モデルを生成し、
前記第２の生成部は、前記第１の生成部によってモデルが生成されるたびに、当該生成されたモデルに、誤差関数が小さいほど大きくなるように重みを付けた上で、生成済みのモデルと足し合わせることを特徴とする請求項３に記載の算出装置。
【請求項５】
コンピュータによって実行される算出方法であって、
悪性であることが既知の通信先をデータとして含む複数のデータセットの入力を受け付ける入力工程と、
入力された通信先の悪性度を算出するモデルを、前記複数のデータセットのそれぞれから生成する第１の生成工程と、
前記モデルのそれぞれに重みを付け、前記モデル及び前記重みを用いて混合モデルを生成する第２の生成工程と、
を含むことを特徴とする算出方法。
【請求項６】
コンピュータを、請求項１から４のいずれか１項に記載の算出装置として機能させるための算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、算出装置、算出方法及び算出プログラムに関する。
【背景技術】
【０００２】
インターネット上でサイバー攻撃を実施する攻撃者は、攻撃の実施過程あるいは目的遂行のために、ＵＲＬやドメイン名やＩＰアドレスに代表される通信先を利用する。例えば、攻撃者はマルウェアと呼ばれる悪意のあるソフトウェアをインターネット上のサーバに配置し、そのサーバやソフトウェアの識別子としてＵＲＬやドメイン名やＩＰアドレスに代表される通信先を設定する。ユーザが当該通信先にアクセスすることでマルウェアに感染する攻撃事例や、マルウェアに感染した後に当該通信先へアクセスさせられて情報漏えいが発生する攻撃事例がある。【０００３】
従来、サイバー攻撃への対策として、攻撃で利用されるＵＲＬやドメイン名やＩＰアドレスに代表される通信先（以後、悪性通信先）を特定し、通信経路上で監視し遮断することが一般的に行われている。例えば、ローカルネットワークやＩＳＰ（Internet  Service  Provider）に配置されるキャッシュＤＮＳサーバにおいてユーザからの悪性通信先宛の通信をフィルタリングする対策や、ローカルネットワークに配置されるＩＤＳ（Intrusion  Detection  System）、ＩＰＳ（Intrusion  Prevention  System）、ＤＰＩ（Deep  Packet  Inspection）  に代表されるセキュリティアプライアンスにおいてユーザからの悪性通信先宛の通信をフィルタリングする対策が行われている。【０００４】
このような対策に利用するための悪性通信先は、ハニーポットに代表されるおとりシステムで故意にマルウェア感染を発生させることや、サンドボックスに代表されるマルウェア解析システムにてマルウェアを実際に動作させることで特定される。さらに、これらのシステムだけでは観測及び特定をすることができない悪性通信先を補完するために、既に特定された既知悪性通信先を訓練データとして機械学習手法による訓練モデルを生成し、生成した訓練モデルを利用して新規通信先で構成されるテストデータの悪性度を算出することにより、新たな悪性通信先を特定することが行われている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第６１９６００８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術には、悪性通信先が変化する場合に、精度良く悪性通信先を特定することが困難な場合があるという問題がある。ここで、攻撃者は、悪性通信先を特定されることを避けるため、悪性通信先を次々と変化させる場合がある。また、悪性通信先が変化するたびに、新たな悪性通信先のデータが発生することになる。【０００７】
例えば、特許文献１に記載の手法によれば、最新の悪性通信先のデータを訓練データとしたモデルの生成を行うことができる。一方で、最新の悪性通信先のデータには、偏りが発生している場合や、モデルの精度向上に十分な情報が含まれていない場合があり得る。そのような場合、特許文献１に記載の手法では、モデルの精度を十分に向上させることができないことが考えられる。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、算出装置は、悪性であることが既知の通信先をデータとして含む複数のデータセットの入力を受け付ける入力部と、入力された通信先の悪性度を算出するモデルを、前記複数のデータセットのそれぞれから生成する第１の生成部と、前記モデルのそれぞれに重みを付け、前記モデル及び前記重みを用いて混合モデルを生成する第２の生成部と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、悪性通信先が変化する場合であっても、精度良く悪性通信先を特定することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１の実施形態に係る算出装置の構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る訓練データの一例を示す図である。
【図３】図３は、第１の実施形態に係る対象通信先リストの一例を示す図である。
【図４】図４は、第１の実施形態に係る対象通信先の悪性度の一例を示す図である。
【図５】図５は、第１の実施形態に係る混合モデルの生成処理を説明するための図である。
【図６】図６は、第１の実施形態に係る算出装置の処理の流れを示すフローチャートである。
【図７】図７は、第２の実施形態に係る混合モデルの生成処理を説明するための図である。
【図８】図８は、第２の実施形態に係る算出装置の処理の流れを示すフローチャートである。
【図９】図９は、算出プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願に係る算出装置、算出方法及び算出プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【００１２】
［第１の実施形態の構成］
まず、図１を用いて、第１の実施形態に係る算出装置の構成について説明する。図１は、第１の実施形態に係る算出装置の構成の一例を示す図である。図１に示すように、算出装置１０は、制御部１１及び記憶部１２を有する。
【００１３】
制御部１１は、算出装置１０全体を制御する。制御部１１は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１１は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。
【００１４】
記憶部１２は、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部１２は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶部１２は、算出装置１０で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部１２は、プログラムの実行で用いられる各種情報を記憶する。
【００１５】
また、制御部１１は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部１１は、訓練データ入力部１１１、選択部１１２、訓練モデル生成部１１３、対象通信先入力部１１４、混合訓練モデル生成部１１５及び出力部１１６を有する。
【００１６】
訓練データ入力部１１１は、訓練データの入力を受け付ける。訓練データは、悪性であることが既知の通信先をデータとして含むデータセットである。図２は、第１の実施形態に係る訓練データの一例を示す図である。図２に示すように、訓練データには、通番、ラベル、種別及び通信先が含まれる。ラベルは、各通信先が良性であるか悪性であるかを示している。また、訓練データの各レコードは、データセットに含まれるデータの一例である。また、以降の説明では、データセットに含まれるデータを要素と呼ぶ場合がある。
【００１７】
例えば、図２の例では、「foo.example.com」というドメイン名が良性の通信先のものであることが示されている。また、図２の例では、「bar.example.net」というドメイン名が悪性の通信先のものであることが示されている。また、図２に示すように、通信先はドメイン名で表記されてもよいし、ＵＲＬやＩＰアドレスで表記されてもよい。
【００１８】
なお、訓練データの各項目の表記は、図２に示されるものに限定されない。例えば、良性の場合のラベル及び悪性の場合のラベルは、それぞれ「０」及び「１」のように表記されてもよい。また、訓練データは悪性の通信先のみを含むものであってもよい。その場合、ラベルの項目は省略されてもよい。
【００１９】
また、訓練データ入力部１１１は、一定期間ごとに訓練データの入力を受け付ける。例えば、訓練データ入力部１１１には、１日ごとに、その日にサンドボックス等を用いて収集された悪性通信先のデータが訓練データとして入力される。
【００２０】
選択部１１２は、入力された訓練データから所定の要素を選択する。選択部１１２は、全要素を選択してもよいし、要素をランダムに選択してもよいし、後述する寄与度に基づいて要素を選択してもよい。
【００２１】
訓練モデル生成部１１３は、入力された通信先の悪性度を算出するモデルを、複数の訓練データのそれぞれから生成する。また、訓練モデル生成部１１３は、選択部１１２によって選択されたデータからモデルを生成する。
【００２２】
訓練モデル生成部１１３は、既知の機械学習の手法を用いて、訓練データの学習及びモデルの生成を行うことができる。例えば、訓練モデル生成部１１３は、決定木、ニューラルネットワーク及びサポートベクターマシン等を用いてモデルの生成を行う。なお、訓練モデル生成部１１３は、第１の生成部の一例である。また、以降の説明では、訓練モデル生成部１１３によって生成されるモデルを訓練モデルと呼ぶ場合がある。
【００２３】
訓練モデル生成部１１３は、訓練データが入力された単位で訓練モデルの生成を行う。例えば、前述のように訓練データが１日ごとに入力される場合、訓練モデル生成部１１３は、各日に対応した訓練モデルを生成する。
【００２４】
対象通信先入力部１１４は、対象通信先リストの入力を受け付ける。図３は、第１の実施形態に係る対象通信先リストの一例を示す図である。図３に示すように、対象通信先リストは、悪性であるか否かが未知の通信先のリストである。訓練データと同様に、対象通信先リストにおいて、通信先はドメイン名、ＵＲＬ及びＩＰアドレス等で表記される。また、通信先リストには、訓練データに含まれる通信先が含まれていてもよい。
【００２５】
混合訓練モデル生成部１１５は、訓練モデルのそれぞれに重みを付け、訓練モデル及び重みを用いて混合モデルを生成する。ここで、混合訓練モデル生成部１１５は、アンサンブル学習の手法により混合モデルを生成することができる。また、以降の説明では、混合訓練モデル生成部１１５によって生成されるモデルを混合訓練モデルと呼ぶ場合がある。
【００２６】
例えば、混合訓練モデル生成部１１５は、訓練モデル生成部１１３によって生成された各訓練モデルの出力値の重み付き和を計算する混合訓練モデルを生成する。また、訓練モデル生成部１１３が決定木を用いた訓練モデルを生成する場合、混合訓練モデル生成部１１５は、ランダムフォレストを用いた混合訓練モデルを生成することができる。なお、混合訓練モデル生成部１１５は、第２の生成部の一例である。
【００２７】
ここで、例えば、前述のように、訓練モデル生成部１１３が各日に対応した訓練モデルを生成する場合、混合訓練モデル生成部１１５は、複数の日に対応する訓練モデルを混合した混合訓練モデルを生成することができる。
【００２８】
また、混合訓練モデル生成部１１５は、訓練モデルのそれぞれについて、生成元の訓練データに関する統計量に応じた重みを付ける。例えば、混合訓練モデル生成部１１５は、生成元の訓練データに含まれるレコード数が多いほど重みを大きくすることができる。
【００２９】
出力部１１６は、混合訓練モデル生成部１１５によって生成された混合訓練モデルを用いて、対象通信先リストに含まれる各通信先の悪性度を算出し、出力する。図４は、第１の実施形態に係る対象通信先の悪性度の一例を示す図である。図４に示すように、悪性度は、０以上１以下の数値で表されてもよい。図４の例では、「www.example.com」という通信先の悪性度が０．３であることが示されている。
【００３０】
なお、悪性度の表記方法は、図４に示すような連続値に限られない。例えば、出力部１１６は、悪性度を「良性」及び「悪性」の２値で表してもよい。この場合、例えば、出力部１１６は、連続値として算出された悪性度が０．５未満であれば２値の悪性度を「良性」とし、連続値として算出された悪性度が０．５以上であれば２値の悪性度を「悪性」としてもよい。また、出力部１１６は、２値以外の離散値で悪性度を表してもよい。また、出力部１１６、モデルの生成に利用する手法の特性に合わせた形式で悪性度を出力してもよいし、ユーザが指定した形式に悪性度を変換して出力してもよい。
【００３１】
ここで、図５を用いて、算出装置１０による混合訓練モデルの生成処理を詳細に説明する。図５は、第１の実施形態に係る混合訓練モデルの生成処理を説明するための図である。図５に示すように、算出装置１０には、訓練データがＴ回入力されるものとする。そして、算出装置１０は、訓練データが入力されるたびに混合訓練モデルＨを生成し、悪性度Ｈ（ｘ）を算出する。なお、ｘは対象通信先を表している。
【００３２】
例えば、１週間の間毎日訓練データが入力される場合、Ｔは７である。そして、ｔ＝１の場合、すなわち週の初日には、算出装置１０は、１つ目の訓練モデルを生成する。また、ｔ＝２の場合、すなわち週の２日目には、算出装置１０は、２つ目の訓練モデルを生成し、当該２つ目の訓練モデルを１日目に生成した１つ目の訓練モデルと混合する。同様に、ｔ＝７の場合、すなわち週の最終日には、算出装置１０は、７つ目の訓練モデルを生成し、当該７つ目の訓練モデルを６日目までに生成した訓練モデルと混合する。
【００３３】
訓練データに含まれる通信先をｘｉ∈Ｘ、ｘｉが悪性であるか否かを表すラベルｙｉ∈｛−１，１｝とする。また、算出装置１０に入力されたＴ回分の訓練データを（ｘ１，ｙ１），…，（ｘｎ，ｙｎ）とする。このとき、ｔ回目の訓練データのサイズ、すなわち要素の数をＮｔとすると、Ｔ回目までの訓練データは（１）式のように表される。
【００３４】
【数１】
2020070916.tif 000003
【００３５】
ｔ＝１の場合、Ｎｔ＝Ｎ１である。また、ｔ＝１でない場合、Ｎｔ＝Ｎｔ−１＋Ｋである。ここで、Ｋは、ｔ回目に追加される訓練データのサイズである。ここで、訓練モデル生成部１１３は、各ｔの値ごとに、（２）式に示すように、Ｎｔ個の訓練データを用いて訓練モデルｈｔを生成する。
【００３６】
【数２】
2020070916.tif 000004
【００３７】
また、混合訓練モデル生成部１１５は、訓練モデルｈｔの重みαｔを（３）式のように計算する。
【００３８】
【数３】
2020070916.tif 000005
【００３９】
ここで、Ｄｔは、訓練モデルｈｔのモデル次元である。モデル次元は、モデルの複雑さを表す指標である。例えば、訓練モデルｈｔが決定木を用いるものである場合、モデル次元は、決定木の分岐の数である。
【００４０】
混合訓練モデル生成部１１５は、訓練モデルｈｔ及び重みαｔを用いて、（４）式に示す混合訓練モデルＨを生成する。また、出力部１１６は、混合訓練モデルＨに、対象通信先ｘを入力し、悪性度Ｈ（ｘ）を計算する。
【００４１】
【数４】
2020070916.tif 000006
【００４２】
なお、本実施形態では、選択部１１２は、訓練データの全要素、又はランダムに選択されたＭ個の要素を選択するものとする。ただし、Ｍは、ｔによらない定数である。また、Ｍ個の要素には重複するものが含まれていてもよい。
【００４３】
［第１の実施形態の処理］
図６を用いて、算出装置１０の処理の流れについて説明する。図６は、第１の実施形態に係る算出装置の処理の流れを示すフローチャートである。ここで、現行訓練データは、ｔ−１回目までの訓練データであるものとする。また、新規訓練データは、ｔ回目の訓練データであるものとする。また、現行訓練モデルは、ｈｔ−１であるものとする。また、新規訓練モデルは、ｈｔであるものとする。また、混合訓練モデルはｔ回目の訓練データが入力された後に生成される混合訓練モデルＨである。
【００４４】
図６に示すように、算出装置１０には、現行訓練データ（ステップＳ１０１）及び新規訓練データが入力される（ステップＳ１０２）。ここで、現行訓練データは、事前に入力され、記憶部１２に記憶されているものであってもよい。
【００４５】
次に、算出装置１０は、現行訓練モデルを生成する（ステップＳ１０３）。また、算出装置１０は、新規訓練モデルを生成する（ステップＳ１０４）。ここで、現行訓練データは、事前に生成され、記憶部１２に記憶されているものであってもよい。
【００４６】
そして、算出装置１０は、生成した訓練モデルの選択及び重み付けを行った上で混合し（ステップＳ１０５）、混合訓練モデルを生成する（ステップＳ１０６）。
【００４７】
さらに、算出装置１０は、混合訓練モデルに対象通信先を入力し（ステップＳ１０７）、対象通信先の悪性度を算出し（ステップＳ１０８）、算出した悪性度を出力する（ステップＳ１０９）。
【００４８】
［第１の実施形態の効果］
算出装置１０は、悪性であることが既知の通信先をデータとして含む複数の訓練データの入力を受け付ける。また、算出装置１０は、入力された通信先の悪性度を算出するモデルを、複数の訓練データのそれぞれから生成する。また、算出装置１０は、モデルのそれぞれに重みを付け、モデル及び重みを用いて混合モデルを生成する。
【００４９】
従来の教師あり機械学習を利用した悪性度算出手法は、新規訓練データが得られると、現行訓練モデルを破棄して新規訓練データを用いて新規訓練モデルを生成するものであった。そのため、新規訓練データに対象通信先に関連する通信先が欠如したり、訓練モデルのノイズとなる通信先が混在したりする場合に、現行訓練モデルでは正しく悪性度を算出できていた通信先について、新規訓練モデルでは正しく悪性度を算出できない場合があった。このように、従来の悪性度算出手法では、悪性通信先が変化する場合、精度が低下していた。
【００５０】
これに対し、本実施形態の算出装置１０は、新規訓練データが追加された場合、現行訓練モデルを破棄することなく、適宜重みを付けて新規訓練モデルと混合するため、悪性通信先が変化する場合であっても、精度良く悪性通信先を特定することができる。
【００５１】
また、算出装置１０は、モデルのそれぞれについて、生成元の訓練データに関する統計量に応じた重みを付ける。例えば、訓練に用いられた訓練データのサイズが大きいほど、生成されたモデルの精度が向上することが考えられる。このため、算出装置１０は、データサイズ等の統計量を重みに反映させることで、混合訓練モデルにおいて、より精度が高いモデルの影響が大きくなるようにすることができる。
【００５２】
［第２の実施形態］
第２の実施形態について説明する。なお、第２の実施形態に係る算出装置１０の基本的な構成及び処理は、第１の実施形態に係る算出装置１０の構成及び処理と同様である。以下では、第２の実施形態に係る算出装置１０の構成及び処理のうち、第１の実施形態に係る算出装置１０の構成及び処理と同様であるものについては適宜説明を省略する。
【００５３】
第１の実施形態では、算出装置１０は、各訓練モデルに重み付けを行う。これに対し、第２の実施形態では、算出装置１０は、各訓練モデルだけでなく、生成元の訓練データの各要素に対しても重み付けを行う。
【００５４】
算出装置１０は、悪性度の算出の寄与度に応じて訓練データの各要素の重み付けを行うことができる。このとき、選択部１１２は、複数の訓練データに含まれるデータから、モデルを用いた悪性度の算出への寄与度が大きい順に一定数のデータを選択する。
【００５５】
ここで、図７を用いて、算出装置１０による混合訓練モデルの生成処理を詳細に説明する。図７は、第２の実施形態に係る混合モデルの生成処理を説明するための図である。図７の例では、図５の例と異なり、各訓練データに重みＤｔ（ｋ）が設定されている。ここで、ｋは訓練データの要素を識別するインデックスである。
【００５６】
また、算出装置１０には、ｔ回目まで、又はＴ回目までの訓練データが一時に入力されてもよいし、ｔごとに逐次入力されてもよい。ここでは、訓練データが、算出装置１０に逐次入力されるものとする。
【００５７】
このとき、訓練データ入力部１１１は、訓練データの入力を逐次受け付ける。また、選択部１１２は、訓練データ入力部１１１に訓練データが入力されるたびに、当該入力された訓練データに含まれるデータそれぞれについて、訓練モデル生成部１１３によって生成済みのモデルを用いた場合の悪性度の算出への寄与度が大きい順に一定数のデータを選択する。また、訓練モデル生成部１１３は、選択部１１２によってデータが選択されるたびに、当該選択されたデータを基にモデルを生成する。また、混合訓練モデル生成部１１５は、訓練モデル生成部１１３によってモデルが生成されるたびに、当該生成されたモデルに、誤差関数が小さいほど大きくなるように重みを付けた上で、生成済みのモデルと足し合わせる。
【００５８】
ここで、訓練モデル生成部１１３は、ｔ＝１の場合の重みＤ１（ｋ）を（５）式のように計算する。
【００５９】
【数５】
2020070916.tif 000007
【００６０】
また、訓練モデル生成部１１３は、ｔ回目の訓練モデル生成時に利用される誤差関数εｔを（６）式のように計算する。なお、（６）式のＺは、εｔを０以上１以下にするための要素である。例えば、Ｚ＝１／ｎである。
【００６１】
【数６】
2020070916.tif 000008
【００６２】
また、混合訓練モデル生成部１１５は、訓練モデルｈｔの重みαｔを（７）式のように計算する。
【００６３】
【数７】
2020070916.tif 000009
【００６４】
このように、αｔは、誤差関数が小さいほど大きくなり、誤差関数が大きいほど小さくなる。これにより、算出装置１０は、混合訓練モデルにおいて、より精度が高いモデルの影響が大きくなるようにすることができる。
【００６５】
また、訓練モデル生成部１１３は、ｔ＝１でな場合の重みＤｔ（ｋ）を（８）式のように計算する。ここで、Ｎｔ−１＜ｋ≦Ｎｔである場合、すなわちｋが新規訓練データに対応している場合、どの要素の寄与度が大きいかは不明であるため、各要素の重みは均等になる。なお、（８）式のＺｔは、１≦ｋ≦Ｎｔ−１である場合のＤｔ（ｋ）の合計値がＮｔ−１／Ｎｔとなるように正規化する要素である。
【００６６】
【数８】
2020070916.tif 000010
【００６７】
一方で、１≦ｋ≦Ｎｔ−１である場合、すなわちｋが現行訓練データに対応している場合、重みＤｔ（ｋ）は、現行訓練モデルにおける各要素の寄与度の影響を受ける。具体的には、ｔ−１回目に訓練データ入力時に生成された現行訓練モデルｈｔ−１における要素ｋの寄与度が大きいほど、重みＤｔ（ｋ）が大きくなる。
【００６８】
ここで、選択部１１２は、重みＤｔ（ｋ）を基に、Ｍ個の要素を選択する。例えば、選択部１１２は、Ｄｔ（ｋ）が大きい順にＭ個の要素を選択することができる。そして、訓練モデル生成部１１３は、各ｔの値ごとに、選択部１１２によって選択された各要素をＤｔ（ｋ）で重み付けした上で、（９）式に示すように、Ｎｔ個の訓練データを用いて訓練モデルｈｔを生成する。
【００６９】
【数９】
2020070916.tif 000011
【００７０】
混合訓練モデル生成部１１５は、訓練モデルｈｔ及び重みαｔを用いて、（１０）式に示す混合訓練モデルＨを生成する。また、出力部１１６は、混合訓練モデルＨに、対象通信先ｘを入力し、悪性度Ｈ（ｘ）を計算する。
【００７１】
【数１０】
2020070916.tif 000012
【００７２】
［第２の実施形態の処理］
図８を用いて、算出装置１０の処理の流れについて説明する。図８は、第２の実施形態に係る算出装置の処理の流れを示すフローチャートである。図６に示すように、算出装置１０には、現行訓練データ（ステップＳ２０１）及び新規訓練データが入力される（ステップＳ２０２）。
【００７３】
ここで、算出装置１０は、新規訓練データ及び現行訓練データの各要素の重みを計算し、各データに含まれる要素の選択及び重み付けを行う（ステップＳ２０２ａ）。
【００７４】
次に、算出装置１０は、現行訓練モデルを生成する（ステップＳ２０３）。また、算出装置１０は、新規訓練モデルを生成する（ステップＳ２０４）。ここで、算出装置１０は、ステップＳ２０２ａで選択及び重み付けを行った要素を用いて、現行訓練モデル及び新規訓練モデルを生成する。
【００７５】
そして、算出装置１０は、生成した訓練モデルの選択及び重み付けを行った上で混合し（ステップＳ２０５）、混合訓練モデルを生成する（ステップＳ２０６）。
【００７６】
さらに、算出装置１０は、混合訓練モデルに対象通信先を入力し（ステップＳ２０７）、対象通信先の悪性度を算出し（ステップＳ２０８）、算出した悪性度を出力する（ステップＳ２０９）。
【００７７】
［第２の実施形態の効果］
選択部１１２は、複数の訓練データに含まれるデータから、モデルを用いた悪性度の算出への寄与度が大きい順に一定数のデータを選択する。このように、算出装置１０は、過去又は現行で有用であった情報を伝播させ、最新の訓練モデルの生成に利用することができる。さらに、算出装置１０は、回を重ねるごとに、より精度の高いモデルを生成することが可能になる。
【００７８】
このとき、訓練データ入力部１１１は、訓練データの入力を逐次受け付ける。また、選択部１１２は、訓練データ入力部１１１に訓練データが入力されるたびに、当該入力された訓練データに含まれるデータそれぞれについて、訓練モデル生成部１１３によって生成済みのモデルを用いた場合の悪性度の算出への寄与度が大きい順に一定数のデータを選択する。また、訓練モデル生成部１１３は、選択部１１２によってデータが選択されるたびに、当該選択されたデータを基にモデルを生成する。また、混合訓練モデル生成部１１５は、訓練モデル生成部１１３によってモデルが生成されるたびに、当該生成されたモデルに、誤差関数が小さいほど大きくなるように重みを付けた上で、生成済みのモデルと足し合わせる。
【００７９】
これにより、算出装置１０は、訓練データが最大で何回入力されるかが不明な場合であっても、逐次入力された訓練データを基に重みの計算を行うことができる。
【００８０】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８１】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８２】
［プログラム］
一実施形態として、算出装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記のモデル生成及び悪性度算出を実行する算出プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の算出プログラムを情報処理装置に実行させることにより、情報処理装置を算出装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００８３】
また、算出装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記のモデル生成及び悪性度算出に関するサービスを提供する算出サーバ装置として実装することもできる。例えば、算出サーバ装置は、訓練データを入力とし、混合訓練モデルを出力とする算出サービスを提供するサーバ装置として実装される。この場合、算出サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記のモデル生成及び悪性度算出に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００８４】
図９は、算出プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００８５】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００８６】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、算出装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、算出装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００８７】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０は、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した実施形態の処理を実行する。
【００８８】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００８９】
１０  算出装置
１１  制御部
１２  記憶部
１１１  訓練データ入力部
１１２  選択部
１１３  訓練モデル生成部
１１４  対象通信先入力部
１１５  混合訓練モデル生成部
１１６  出力部
【図１】
2020070916.tif 000013
【図２】
2020070916.tif 000014
【図３】
2020070916.tif 000015
【図４】
2020070916.tif 000016
【図５】
2020070916.tif 000017
【図６】
2020070916.tif 000018
【図７】
2020070916.tif 000019
【図８】
2020070916.tif 000020
【図９】
2020070916.tif 000021
【国際調査報告】
2020070916.tif 000022
2020070916.tif 000023
2020070916.tif 000024
2020070916.tif 000025