(57)【要約】【課題】情報を分類する技術において、分類の正誤を精度良く判定する。【解決手段】誤り判定装置において、分類対象データの分類を推定する分類推定部から推定過程のデータを取得し、当該データに基づいて特徴ベクトルを生成する分類推定過程観測部と、前記分類推定過程観測部により生成された前記特徴ベクトルと、前記分類推定部から出力された分類結果とを入力し、前記特徴ベクトルと、前記分類結果とに基づいて、当該分類結果の正誤を判定する誤り判定部とを備える。【選択図】図１
2020024513.tif 000002
【特許請求の範囲】
【請求項１】
分類対象データの分類を推定する分類推定部から推定過程のデータを取得し、当該データに基づいて特徴ベクトルを生成する分類推定過程観測部と、
前記分類推定過程観測部により生成された前記特徴ベクトルと、前記分類推定部から出力された分類結果とを入力し、前記特徴ベクトルと、前記分類結果とに基づいて、当該分類結果の正誤を判定する誤り判定部と
を備えることを特徴とする誤り判定装置。
【請求項２】
前記誤り判定部は、前記分類結果を正しいと判定した場合に、前記分類推定部による分類結果を出力し、前記分類結果を誤りであると判定した場合に、分類は不明であることを示す情報を出力する
ことを特徴とする請求項１に記載の誤り判定装置。
【請求項３】
前記分類推定部がニューラルネットワークにより構成される場合において、前記推定過程のデータは当該ニューラルネットワークにおける中間層のノードの出力データを含み、前記分類推定部が決定木により構成される場合において、前記推定過程のデータは当該決定木における決定のルートの情報を含む
ことを特徴とする請求項１又は２に記載の誤り判定装置。
【請求項４】
前記誤り判定部は、前記分類推定過程観測部により生成される特徴べクトルに基づいて、機械学習により生成された機能部である
ことを特徴とする請求項１ないし３のうちいずれか１項に記載の誤り判定装置。
【請求項５】
コンピュータが実行する誤り判定方法であって、
分類対象データの分類を推定する分類推定部から推定過程のデータを取得し、当該データに基づいて特徴ベクトルを生成する分類推定過程観測ステップと、
前記分類推定過程観測ステップにより生成された前記特徴ベクトルと、前記分類推定部から出力された分類結果とを入力し、前記特徴ベクトルと、前記分類結果とに基づいて、当該分類結果の正誤を判定する誤り判定ステップと
を備えることを特徴とする誤り判定方法。
【請求項６】
コンピュータを、請求項１ないし４のうちいずれか１項に記載の誤り判定装置における分類推定過程観測部及び誤り判定部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を分類する技術に関連するものである。本技術の適用分野の例として、ＩＰＳ(Intrusion Prevention System)やアンチウイルスソフトなどのサイバー攻撃に対するセキュリティシステムを扱うセキュリティ運用者が、脅威情報を機械学習技術等で自動的に分類する技術がある。
【背景技術】
【０００２】
サイバー攻撃に対するセキュリティシステムを扱うセキュリティ運用者は、サイバー攻撃活動について攻撃者、攻撃者の行動や手口、脆弱性などについてを脅威情報としてまとめる。この脅威情報は日々生成する必要があるため、セキュリティ運用者は継続的・逐次的に脅威情報の分類を行う必要がある。なお、脅威情報の例として、非特許文献１、２に記載されたものがある。
【０００３】
分類を行う従来技術として、例えば、機械学習を用いて膨大なデータからパターンを抽出し分析・分類・評価する技術がある（例えば非特許文献３）。また、分類の従来技術として、入力情報がクラス分類器に入力されて得られたクラスに対するスコアに基づいて、当該情報が所定のクラスに分類されるべきものか否かを判別する技術がある（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１０２５５５号公報
【非特許文献】
【０００５】
【非特許文献１】https://www.ipa.go.jp/security/vuln/STIX.html、平成３０年８月２日検索
【非特許文献２】https://www.ipa.go.jp/security/vuln/TAXII.html、平成３０年８月２日検索
【非特許文献３】http://scikit-learn.org/stable/、平成３０年８月２日検索
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したとおり、セキュリティ運用者は脅威情報を分類する必要があるが、脅威情報自体の数が膨大になった場合は分類を行いきれなくなる可能性がある。脅威情報を分類できないということは、サイバー攻撃を防ぎきることができない可能性が生じてしまい、運用対象となっている組織にとって望ましくない可能性がある。
【０００７】
膨大な脅威情報へ全て評価を行いきるには、学習データとなる脅威情報と分類の対からパターンを生成し、分類推定モジュールを構成し、自動で分類するという方法が考えられる。
【０００８】
しかしながら、分類推定モジュールによる分類だけでは誤った分類を避けることができない。脅威情報はセンシティブに扱う必要があり、結局のところセキュリティ運用者によって正しいか誤りかを判断しなくてはならないという問題がある。また、特許文献１に記載された技術によりクラス分類の正誤を判定することができるが、その精度は低いと考えられる。
【０００９】
本発明は上記の点に鑑みてなされたものであり、情報を分類する技術において、分類の正誤を精度良く判定するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
開示の技術によれば、分類対象データの分類を推定する分類推定部から推定過程のデータを取得し、当該データに基づいて特徴ベクトルを生成する分類推定過程観測部と、
前記分類推定過程観測部により生成された前記特徴ベクトルと、前記分類推定部から出力された分類結果とを入力し、前記特徴ベクトルと、前記分類結果とに基づいて、当該分類結果の正誤を判定する誤り判定部と
を備えることを特徴とする誤り判定装置が提供される。
【発明の効果】
【００１１】
開示の技術によれば、情報を分類する技術において、分類の正誤を精度良く判定することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態における分類装置１００の機能構成図である。
【図２】分類装置１００のハードウェア構成の例を示す図である。
【図３】分類推定過程観測部１２１の動作例（ニューラルネットワークの場合）を説明するための図である。
【図４】分類推定過程観測部１２１の動作例（決定木の場合）を説明するための図である。
【図５】誤り判定部１２２の動作概要を説明するための図である。
【図６】誤り判定部１２２を生成するための処理手順を示すフローチャートである。
【図７】Ｓ１の処理を示す図である。
【図８】Ｓ２の処理を示す図である。
【図９】Ｓ３の処理を示す図である。
【図１０】Ｓ４の処理を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態（本実施の形態）を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１４】
（装置の機能構成）
図１は、本発明の実施の形態における分類装置１００の機能構成図を示す。図１に示すように、分類装置１００は、分類推定部１１０、及びセルフリジェクト部１２０を有する。セルフリジェクト部１２０は、分類推定過程観測部１２１、及び誤り判定部１２２を有する。
【００１５】
なお、分類推定部１１０とセルフリジェクト部１２０が別々の装置で構成され、これらがネットワークで接続されていてもよく、その場合、セルフリジェクト部１２０をセルリジェクト装置あるいは誤り判定装置と称してもよい。また、分類推定部１１０とセルフリジェクト部１２０とを含む装置をセルリジェクト装置あるいは誤り判定装置と称してもよい。分類装置１００の動作の概要は下記のとおりである。
【００１６】
（動作概要）
まず、分類対象データが分類推定部１１０に入力される。分類対象データは、本システムを使用して何かしらの分類を行いたいデータであり、例えば脅威情報が該当する。
【００１７】
分類推定部１１０は、入力された分類対象データの分類を推定する。分類推定部１１０自体は従来技術であり、例えば、ＳＶＭ、ニューラルネットワーク、ベイジアンネットワーク、決定木などの人工知能関連の技術を用いて実現できる。
【００１８】
分類推定部１１０からは分類対象データの分類結果が出力される。分類結果は、予め定められた分類リストの中の一つ以上の「分類」、もしくは「不明」である。「不明」は、分類推定部１１０により分類が推定されたものの、確度が低いために分類結果の正確性が怪しい場合の結果である。
【００１９】
分類推定過程観測部１２１は、分類推定部１１０が分類対象データの分類を推定する際の計算過程を観測して、推定過程のデータを取得し、当該データを特徴ベクトルへ変換し、当該特徴ベクトルを誤り判定部１２２に出力する。
【００２０】
誤り判定部１２２は、分類推定過程観測部１２１から、推定過程の観測データを特徴ベクトルとして受け取り、その観測データに基づいて、分類推定部１１０が推定した分類が「正しい」ものか「誤り」であるかを判断する。「正しい」場合は分類推定部１１０が推定した分類をそのまま分類結果とするが、「誤り」の場合は「不明」を分類結果とする。
【００２１】
分類推定過程観測部１２１と誤り判定部１２２についての詳細は後述する。
【００２２】
（ハードウェア構成例）
上述した分類装置１００（セルフリジェクト装置、誤り判定装置も同様）は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。
【００２３】
すなわち、分類装置１００は、コンピュータに内蔵されるＣＰＵやメモリ等のハードウェア資源を用いて、分類装置１００で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【００２４】
図２は、本実施の形態における上記コンピュータのハードウェア構成例を示す図である。図２のコンピュータは、それぞれバスＢで相互に接続されているドライブ装置１５０、補助記憶装置１５２、メモリ装置１５３、ＣＰＵ１５４、インタフェース装置１５５、表示装置１５６、及び入力装置１５７等を有する。
【００２５】
当該コンピュータでの処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ又はメモリカード等の記録媒体１５１によって提供される。プログラムを記憶した記録媒体１５１がドライブ装置１５０にセットされると、プログラムが記録媒体１５１からドライブ装置１５０を介して補助記憶装置１５２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１５１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１５２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２６】
メモリ装置１５３は、プログラムの起動指示があった場合に、補助記憶装置１５２からプログラムを読み出して格納する。ＣＰＵ１５４は、メモリ装置１５３に格納されたプログラムに従って、分類装置１００に係る機能を実現する。インタフェース装置１５５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１５６はプログラムによるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等を表示する。入力装置１５７はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【００２７】
（分類推定過程観測部１２１の詳細）
分類推定過程観測部１２１は、分類推定部１１０が分類対象データの分類を推定する際の計算過程を観測して特徴ベクトルを構成する。分類推定過程観測部１２１の観測対象となる分類対象データの分類を推定する際の計算過程の具体例を、ニューラルネットワーク、決定木、ランダムフォレストを用いて説明する。
【００２８】
分類推定部１１０がニューラルネットワークを用いて分類を推定する場合、分類推定過程観測部１２１は、ニューラルネットワークの各中間層と出力層の各ノード（活性化関数）から出力される値を計算過程の観測データとして使用することができる。
【００２９】
図３に３層のニューラルネットワークの例を示す。この例では、１つの中間層と出力層の各ノード（活性化関数）から出力される値を計算過程の観測データとして使用することができる。図３のように３層であることは一例であり、４層以上でも観測対象が増えるだけで本質的には変わらない。なお、図３におけるニューラルネットワークの形状は、「http://ipr20.cs.ehime-u.ac.jp/column/neural/chapter5.html」に開示されたものに基づく。
【００３０】
図３に示す例において、分類推定過程観測部１２１は、観測箇所の各ノード（活性化関数）から出力される値を取得し、特徴ベクトルを構成する。例えば、中間層の各ノードの値が０．５，０．４，０．７であり、出力層の各ノードの値が０．２，０．７，０．１である場合、特徴ベクトルは［０．５  ０．４  ０．７  ０．２  ０．７  ０．１］と構成することができる。
【００３１】
分類推定部１１０が決定木を用いて分類を推定する場合、分類推定過程観測部１２１は、分類が決定に至るルートを観測し特徴ベクトルを構成する。図４に、決定木の例を示す。この決定木は、分類Ａ、分類Ｂ、分類Ｃの３つの分類のうちのいずれかの分類を推定する決定木である。
【００３２】
図４に示す例では、ノード１−＞ノード３−＞ノード６というルートで分類Ａとなった場合、それを観測データとして取得した分類推定過程観測部１２１により構成される特徴ベクトルは［１  ０  １  ０  ０  １  ０  ０  ０］となる。この例では、ベクトルの要素の添え字と、決定木のノード番号とが対応しており、そのノードを通過したならそのノードに対応する要素に１が入り、通過していないなら０が入るようにして特徴ベクトルを構成している。
【００３３】
次に、分類推定部１１０がランダムフォレストを用いて分類を推定する場合について説明する。ランダムフォレストとは小規模な決定木を複数作り多数決で分類を行うモデルである。そのため、上述した決定木の特徴ベクトルの構成方法で小規模な決定木の特徴ベクトルの各要素を生成し、それを連結することにより特徴ベクトルを構成することができる。また、それに加えて各分類の得票数も特徴ベクトルへ連結することもできる。
【００３４】
（誤り判定部１２２の詳細）
誤り判定部１２２は、分類推定部１１０から推定した分類を受け取るととともに、分類推定過程観測部１２１から、推定過程の観測データの特徴ベクトルを受け取り、その観測データに基づいて、分類推定部１１０が推定した分類が「正しい」ものか「誤り」であるかを判断する。「正しい」場合は分類推定部１１０が推定した分類をそのまま分類結果とするが、「誤り」の場合は「不明」を分類結果とする。
【００３５】
図５は、具体例を示している。図５の例において、誤り判定部１２２は、分類推定部１１０と分類推定過程観測部１２１からそれぞれ分類Ａ、及び特徴ベクトル［１  ０  １  ０  ０  １  ０  ０  ０］を受け取り、これらに基づいて分類Ａが正しいか誤りかを判定する。
【００３６】
誤り判定部１２２の構成方法は特定の方法に限定されない。例えば、誤り判定部１２２は、特徴ベクトルの特定の値（特にニューラルネットワークの出力層の値やランダムフォレストの得票数）が閾値を越えているかどうかを判定することでにより、分類が「正しい」ものか「誤り」であるかを判断することができる。
【００３７】
また、誤り判定部１２２は機械学習分野でよく用いられているモデルで構成することとしてもよい。例えばＳＶＭ、あるいはニューラルネットワークなどで誤り判定部１２２を構成することができる。これらのモデルを用いる場合、教師あり学習でモデルのパラメータチューニングを行なうことで誤り判定部１２２を実装することができる。以下、機械学習による誤り判定部１２２の作成方法を説明する。
【００３８】
（機械学習による誤り判定部１２２の作成方法）
図６は、機械学習による誤り判定部１２２の作成方法の手順を示すフローチャートである。以下、図６に示すＳ１（ステップ１）〜Ｓ４（ステップ４）の手順に沿って、各ステップを説明する。
【００３９】
なお、誤り判定部１２２を作成する処理に関しては、分類装置１００（あるいは、セルフリジェクト装置、誤り判定装置）に学習部を備え、当該学習部が実施してもよいし、分類装置１００（あるいは、セルフリジェクト装置、誤り判定装置）とは別のコンピュータに学習部を備え、その学習部が実施することとしてもよい。また、作成される誤り判定部１２２の実体は、パラメータチューニングされたモデルに対応する数式の計算を行うソフトウェアである。
【００４０】
＜ステップ１＞
ステップ１では、学習用分類対象データリスト（Ａ）とその正解分類リスト（Ｂ）を用意する。分類推定部１１０を機械学習でチューニングしている場合、その学習データも流用してよい。学習用分類対象データリスト（Ａ）とその正解分類リスト（Ｂ）は両方とも人手で用意する必要がある。
【００４１】
図７は、学習用分類対象データリスト（Ａ）とその正解分類リスト（Ｂ）の例を示す。この例では、３つのデータからなる学習用分類対象データリスト（Ａ）と、各データの正解分類のリスト（Ｂ）（＜＞の括弧ではさんだもの）が示されている。
【００４２】
＜ステップ２＞
ステップ２では、図８に示すとおり、分類推定部１１０に分類対象データリスト（Ａ）の各要素を入力する。分類推定過程観測部１２１は、前述した方法で推定過程の特徴ベクトルを生成し、学習部が、そのリストである推定過程特徴ベクトルリスト（Ｃ）を取得する。それと同時に学習部は、分類推定部１１０から分類結果リスト（Ｄ）を取得する。
【００４３】
＜ステップ３＞
ステップ３では、図９に示すように、学習部が、正解分類リスト（Ｂ）と分類結果リスト（Ｄ）を比較し、自動分類の正誤を表した学習用正誤リスト（Ｅ）を取得する。図９の例では、正解分類リスト（Ｂ）に記載のように、一番目の分類の正解が分類Ｏであるのに対し、分類結果では、一番目の分類が分類Ｐとなった。よって、一番目の分類は誤りとなり、学習用正誤リスト（Ｅ）の一番目の要素は１（誤り）になる。２番目と３番目は正しいので、学習用正誤リスト（Ｅ）は＜１  ０  ０＞となる。
【００４４】
＜ステップ４＞
ステップ４では、図１０に示すように、学習部は、推定過程特徴ベクトルリスト（Ｃ）を例えばニューラルネットワーク（あるいはＳＶＭ）の入力とし、学習用正誤リスト（Ｅ）を当該ニューラルネットワーク（あるいはＳＶＭ）の正解の出力として、機械学習を行う。これによりパラメータチューニングのなされたニューラルネットワーク（あるいはＳＶＭ）が、誤り判定部１２２として得られる。
【００４５】
（実施の形態の効果）
以上、説明したように、本実施の形態に係る技術によれば、分類推定部１１０の分類時の推定過程を観測し、観測データに基づいて誤り判定を行うので、精度の高い判定を行なうことができる。
【００４６】
また、本実施の形態に係る技術によれば、正解の可能性が高い分類と、正解の可能性が低い分類をより分けることが可能となる。そのため、正解の可能性が高い分類については人手で確認しないということを選択することが容易となり、正解の可能性が低い分類について人手で確認すれば良いということになる。
【００４７】
（実施の形態のまとめ）
以上、説明したように、本実施の形態によれば、分類対象データの分類を推定する分類推定部から推定過程のデータを取得し、当該データに基づいて特徴ベクトルを生成する分類推定過程観測部と、前記分類推定過程観測部により生成された前記特徴ベクトルと、前記分類推定部から出力された分類結果とを入力し、前記特徴ベクトルと、前記分類結果とに基づいて、当該分類結果の正誤を判定する誤り判定部とを備えることを特徴とする誤り判定装置が提供される。
【００４８】
前記誤り判定部は、例えば、前記分類結果を正しいと判定した場合に、前記分類推定部による分類結果を出力し、前記分類結果を誤りであると判定した場合に、分類は不明であることを示す情報を出力する。
【００４９】
前記分類推定部がニューラルネットワークにより構成される場合において、前記推定過程のデータは当該ニューラルネットワークにおける中間層のノードの出力データを含み、前記分類推定部が決定木により構成される場合において、前記推定過程のデータは当該決定木における決定のルートの情報を含むこととしてもよい。
【００５０】
前記誤り判定部は、前記分類推定過程観測部により生成される特徴べクトルに基づいて、機械学習により生成された機能部であることとしてもよい。
【００５１】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５２】
１００  分類装置
１１０  分類推定部
１２０  セルフリジェクト部
１２１  分類推定過程観測部
１２２  誤り判定部
１５０  ドライブ装置
１５１  記録媒体
１５２  補助記憶装置
１５３  メモリ装置
１５４  ＣＰＵ
１５５  インターフェース装置
１５６  表示装置
１５７  入力装置
【図１】
2020024513.tif 000003
【図２】
2020024513.tif 000004
【図３】
2020024513.tif 000005
【図４】
2020024513.tif 000006
【図５】
2020024513.tif 000007
【図６】
2020024513.tif 000008
【図７】
2020024513.tif 000009
【図８】
2020024513.tif 000010
【図９】
2020024513.tif 000011
【図１０】
2020024513.tif 000012