JP2019096088A - 距離測定装置、通信システム、作成装置及び距離測定プログラム - Google Patents

距離測定装置、通信システム、作成装置及び距離測定プログラム Download PDF

Info

Publication number
JP2019096088A
JP2019096088A JP2017225395A JP2017225395A JP2019096088A JP 2019096088 A JP2019096088 A JP 2019096088A JP 2017225395 A JP2017225395 A JP 2017225395A JP 2017225395 A JP2017225395 A JP 2017225395A JP 2019096088 A JP2019096088 A JP 2019096088A
Authority
JP
Japan
Prior art keywords
data string
distance
character string
character
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017225395A
Other languages
English (en)
Other versions
JP6783741B2 (ja
Inventor
靖 岡野
Yasushi Okano
靖 岡野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017225395A priority Critical patent/JP6783741B2/ja
Publication of JP2019096088A publication Critical patent/JP2019096088A/ja
Application granted granted Critical
Publication of JP6783741B2 publication Critical patent/JP6783741B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データ列間またはデータ列リスト間の距離を効率的に求めることができる。【解決手段】距離測定装置10は、計測対象の文字列または文字列リスト、及び、参照元の文字列または文字列リストに対し、k個の未使用の文字コードを区分文字列として入力して文字列または文字列リストを1つの文字列に変換する変換部11と、計測対象の文字列におけるk長部分文字列と該部分文字列の直前に出現する文字とを結合した結合部分文字列の出現率である第1の出現率と、参照元の文字列における直後がk長部分文字列であると判明している文字の出現率である第2の出現率の対数である経験情報量と、の乗算値の総和である、k次経験交差エントロピーを、計測対象の文字列または文字列リストと参照元の文字列または文字列リストとの間の距離として算出する距離算出部14と、を有する。【選択図】図1

Description

本発明は、距離測定装置、通信システム、作成装置及び距離測定プログラムに関する。
従来、通信ネットワークやこれらに接続されたコンピュータに対する外部攻撃通信、及び、コンピュータがマルウェア等に感染した結果発生する内部攻撃や情報漏洩等の通信を検出する手法がある。この検出手法の一つとして、ネットワーク機器やコンピュータ等が出力するログを分析する手法がある。このような。ログを収集、分析し、攻撃や情報漏洩等、セキュリティ上の問題を引き起こす悪性通信を通常の通信(良性通信)の中から検出する装置として、SIEM(Security Information and Event Management)システムがあり、代表的な製品として、McAfee(登録商標) SIEM、IBM(登録商標) QRadar等がある(例えば、非特許文献1,2参照)。
この悪性通信の検出や分析において、ブラックリストやホワイトリスト等の既知の文字列・データ列のリストと、検査対象通信に出現する文字列・データ列を比較し、相違を判定することは重要な処理である。相違には、完全一致や正規表現に代表されるパターン一致等、一致または不一致の2値で表現するものがよく知られている。
一方、データ間の相違を数値化し、一致なら0、より相違するごとに値が大きくなるような距離として定義する手法がある。このような距離を利用することによって、機械学習手法、例えば、k-means法によるクラスタリングやk-近傍法による分類、推薦等を悪性通信の検出や分析に適用でき、より高度で効率的な検知、分析を行うことが可能となる。
例えば、文字列間の距離として代表的なものに編集距離(レーベンシュタイン距離)がある。情報理論では相対エントロピー(KL情報量)等が距離として提案されている(例えば、非特許文献3参照)。具体的には、文字列Qに対する文字列Pの相対エントロピーKL(P|Q)は、文字列中に出現する文字の出現率の相違を用いて、以下の通り算出される。
Figure 2019096088
McAfee,"Security Information and Event Management(SIEM)",[平成29年11月9日検索],インターネット<URL:https://www.mcafee.com/jp/products/siem/index.aspx> IBM,"IBM QRadar Security Intelligence Platform",[平成29年11月9日検索],インターネット<URL:http://www-03.ibm.com/software/products/ja/qradar> 杉山 将,"確率分布間の距離推定:機械学習分野における最新動向", 日本応用数理学会論文誌, vol.23, no.3, pp. 439-452, 2013. S.R.Kosaraju, G.MANZINI,"Compression of Low Entropy Strings with Lempel-Ziv Algorithms", SIAM J. Comput., vol.29, pp.893-911, 1999.
マルウェアは、特定の複数の通信を行うことがしばしばある。このため、単一の通信のみならず、複数の通信についてその特徴的な文字列及びデータ列をリストとし、ホワイトリスト・ブラックリスト等の既存リストとの相違を距離として判定できると、より検出精度が高められると考えられる。
しかしながら、現在、文字列間、文字列リスト間の距離を効率的に求める手法が存在しない。例えば、仮に、編集距離で各リスト同士の文字列の距離を総当たりで求め、それらの距離を、例えば、平均等のような各種算法により、文字列間、文字列リスト間の距離測定を行うことを考える。しかしながら、この測定手法は、少なくとも互いのリスト数Nの掛け算の回数の距離測定を行う必要があり、その計算量のオーダは、O(N2)と大きなものとなってしまう。
一方で、相対エントロピーは、参照元のデータ列を文字種ごとの出現率を算出した後に、対象データ列の各文字に対応する参照元文字種の出現率を処理すればよい。このため、相対エントロピーについては、文字列リスト数Nに比例する計算量O(N)で済む。しかしながら、相対エントロピーは、その相違の比較が文字単位となっており、文字の並びを考慮しておらず、文字列同士の距離を測るのには適していない。
また、文字の連なりを考慮したエントロピー(Shannonのn次エントロピー)は、文字の連なりに関する確率モデルを事前に決定しておく必要がある。しかしながら、この確率モデルの決定は、容易ではない。
本発明は、上記に鑑みてなされたものであって、データ列間またはデータ列リスト間の距離を効率的に求めることができる距離測定装置、通信システム、作成装置及び距離測定プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る距離測定装置は、計測対象のデータ列またはデータ列リスト、及び、参照元のデータ列またはデータ列リストに対し、k(kは任意の自然数)個の未使用の文字コードを区分データ列として入力してデータ列またはデータ列リストを1つのデータ列に変換する変換部と、変換部が変換した計測対象のデータ列におけるk長部分データ列と該部分データ列の直前に出現する文字とを結合した結合部分データ列の出現率である第1の出現率と、変換部が変換した参照元のデータ列における直後がk長部分データ列であると判明している文字の出現率である第2の出現率の対数である経験情報量と、の乗算値の総和である、k次経験交差エントロピーを、計測対象のデータ列またはデータ列リストと、参照元のデータ列またはデータ列リストとの間の距離として算出する距離算出部と、を有することを特徴とする。
本発明によれば、データ列間またはデータ列リスト間の距離を効率的に求めることができる。
図1は、実施の形態1に係る距離測定装置の構成の一例を示す図である。 図2は、図1に示す距離測定装置が実行する距離測定方法の処理手順を示すフローチャートである。 図3は、実施の形態2に係る通信システムの構成の一例を示す図である。 図4は、図3に示す悪性距離測定装置における学習処理の処理手順を示すフローチャートである。 図5は、図3に示す悪性距離測定装置における推論理の処理手順を示すフローチャートである。 図6は、図3に示す検出装置における検出処理の処理手順を示すフローチャートである。 図7は、実施の形態3に係る通信システムの構成の一例を示す図である。 図8は、図7に示すマルウェア種別距離測定装置における学習処理の処理手順を示すフローチャートである。 図9は、図7に示すマルウェア種別距離測定装置における推論理の処理手順を示すフローチャートである。 図10は、図7に示す判定装置における検出処理の処理手順を示すフローチャートである。 図11は、実施の形態4に係る作成装置の構成の一例を示す図である。 図12は、図11に示す作成装置が実行する作成処理の処理手順を示すフローチャートである。 図13は、プログラムが実行されることにより、距離測定装置、悪性距離測定装置、マルウェア種別距離測定装置及び作成装置が実現されるコンピュータの一例を示す図である。
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
本実施の形態では、二つの文字列・データ列、または、文字列リスト・データ列リストについて、事前の確率モデルの想定を必要としない、文字の連なりを考慮した出現率を用い、二つの出現率の差異を算出することによって、距離測定の効率化を実現する。この距離を用いれば、例えば、対象の通信を構成する文字列リストと既存の悪性通信等を構成する文字列リストとの距離を測定し、ある程度近ければ悪性等と判定することが可能となる。以下、文字列間または文字列リスト間の距離測定を例として説明するが、本実施の形態は、データ列またはデータ列リスト全般に適用することができる。
[従来の数理的背景]
まず、以降の説明において必要となる従来の数理的背景を説明する。従来、事前の確率モデル設定を必要とせず、文字の連なりを考慮した出現率を用いるものとして、k次経験エントロピーが考案されている。このk次経験エントロピーは、文字列中から、文字長kの部分文字列を全て抽出し、抽出した各部分文字列について、文字列中の同一の部分文字列の直前(或いは直後)の文字の出現率を用いて計算されるものである。k次経験エントロピーは、以下の(2)式のように、算出される(詳細は、非特許文献4参照)。
Figure 2019096088
また、(2)式に用いられる0次経験エントロピーは、以下の(3)式のように算出される。
Figure 2019096088
ここで、対数の底には2、あるいは、文字集合Σの要素数がよく用いられる。pc=nc/|T|とすると、0次経験エントロピーは、Shannonの1次エントロピー(1−2式参照)と同様の形であることがわかる。
例として、文字列T(T=abcbcbccb)の2次経験エントロピーは以下の通り計算される。対数の底は2とした。
ここで、文字列Tにおける文字長2の部分文字列の集合は{ab,bc,cb,cc}となる。まず、最初の部分文字列abは、行頭にしかなく、直前の文字はないため、直前文字連結文字列は、Tab=(空)となる。一方、次の部分文字列bcについては、末尾に含む文字長3の部分文字列には、(先頭より)abc、(3文字目より)cbc、(5文字目より)cbcがあることから、それぞれの直前文字は、「a,c,c」である。したがって、部分文字列bcについての直前文字連結文字列は、Tbc=accとなる。同様に、部分文字列cbについての直前文字連結文字列は、Tcb=bbcとなる。また、部分文字列ccについての直前文字連結文字列は、Tcc=bとなる。
各直前文字連結文字列の0次経験エントロピーは、以下の(A−1)〜(A−4)式のように求めることができる。
H0(Tac)=H0(空)=0 ・・・(A−1)
H0(Tbc)=H0(acc)=1÷3×log(3÷1)+2÷3×log(3÷2)=0.9183 ・・・(A−2)
(na=1、nc=2、|Tbc|=3、小数点5桁以下四捨五入)
H0(Tcb)=H0(bbc)=2÷3×log(3÷2)+1÷3×log(3÷1)=0.9183 ・・・(A−3)
(nb=2、nc=1、|Tcb|=3、小数点5桁以下四捨五入)
H0(Tcc)=H0(b)=0 ・・・(A−4)
上記のように、|T|=9、|Tac|=1、|Tbc|=3、|Tcb|=3、|Tcc|=1であるため、2次経験エントロピーH2(T)は、以下の(B−1)式のように求めることができる。
H2(T)=1÷9×H0(Tac)+3÷9×H0(Tbc)+3÷9×H0(Tbc)+3÷9×H0(Tcc)
=0.1111×0+0.3333×0.9183+0.3333×0.9183+0.1111×0
=0.6122 ・・・(B−1)
[本実施の形態における数理的背景]
次に、本実施の形態における数理的背景について述べる。本実施の形態に係る距離測定方法は、上記のk次経験エントロピーを、k次経験交差エントロピーへと拡張することによって、文字の連なりを考慮した分布の差異を測ることを可能とする。
その前段階として、(2),(3)式を一つの式として書き下すと、以下の(4)式を求めることができる。
Figure 2019096088
(4)式において、p(c,s)は、文字列T中で部分文字列sの直前に文字cが出現する同時確率である。このp(c,s)は、部分文字列c+s(+は文字列同士の結合処理を示す。)は、文字列Tに出現する回数を文字列長|T|で割ったものとなる。したがって、p(c,s)は、k+1長部分文字列c+sの出現率と同等である。また、p(c|s)は、直後の部分文字列がsであると分かっている際に文字cが出現する条件付き確率であり、直前文字連結文字列Tsにおけるcの出現率nc/|Ts|で計算される。
また、以下の(5−2)式のように、文字列c+sの経験情報量I(c+s)を定義すると、k次経験エントロピーは、(5−1)式に示すように、文字列T中のすべてのk+1長部分文字列の経験情報量を出現率に応じて総和したものであるとも記述できる。ただし、p(c+s)はk+1長の部分文字列c+sの出現率であり、p(c,s)と同等である。
Figure 2019096088
そこで、上記式を基に、k次経験交差エントロピーHk(P,Q)(P,Qは文字列)について、以下の(6)式のように定義する。
Figure 2019096088
すなわち、本実施の形態では、(6)式に示すように、計測対象の文字列におけるk長部分文字列と該部分文字列の直前に出現する文字とを結合した結合部分文字列の出現率である第1の出現率と、参照元の文字列における直後がk長部分文字列であると判明している文字cの出現率である第2の出現率の対数である経験情報量と、の乗算値の総和である、k次経験交差エントロピーを、計測対象の文字列または文字列リストと、参照元の文字列または文字列リストとの間の距離として算出する。
ただし、上記の(6)式では、q(c|s)が必ずしも算出できるとは限らないことがある。すなわち、q(c|s)が算出されるためには、少なくとも文字列Q中に部分文字列c+sが含まれていなくてはならない。しかしながら、c+sは文字列Pから取られたものであり、異なる文字列であるQには出現しないことはしばしば有りうる。
このため、本実施の形態では、上記の問題を解決するため、q(c|s)が算出できない場合、qにおいて算出できる次数k’にまでに下げて演算を行う。言い変えると、本実施の形態では、参照元文字列の中に結合部分文字列が含まれていない場合、次数kを、参照元文字列の中に結合部分文字列が出現する次数まで下げる。具体的には、本実施の形態では、直前文字cと部分文字列sとの先頭k’長からなる文字列sk’を結合したc+sk’について、文字列Q中に含まれる中で最大のk’のものを使用することとする。
この条件付き確率をq’(c|s)とすると、k次経験交差エントロピーは、以下に示す(7)式のように記述される。
Figure 2019096088
k'=0時のq(c|sk’)は、sk’が空文字列であるので、代わりにq(c)を算出する。q(c)自体も算出できない場合、すなわち、文字cが文字列Q中に含まれない場合は、実施の形態1で後述する手段で代替する。
[k次経験KL情報量]
次に、k次経験交差エントロピーの各種情報量への適用について説明する。まず、k次経験交差エントロピーを、KL情報量(Kullback−Leibler divergence:相対エントロピー(relative entropy))に適用する場合を例に説明する。
このKL情報量は、確率分布に基づく距離としてよく用いられている。このKL情報量に、上述のk次経験交差エントロピーを適用することによって、以下の(8)式のように、k次経験KL情報量として拡張することができる。
Figure 2019096088
このように、文字の連なりを考慮したk次経験KL情報量を用いても、文字列間、文字列リスト間の距離を算出することが可能となる。
ここで、上記の文字列間の距離測定手法を文字列リストへと拡張する場合について説明する。この場合には、文字列リストに以下の処理を行い、文字列リストを文字列に変換してから距離測定を行うのが容易である。
具体的には、経験交差エントロピーの次数をk次で距離測定する場合、リスト先頭、リスト間、リスト末尾に、k個の未使用の文字(例えば、NULL文字「0x00」)を、区分文字として挿入し、一つの文字列に結合する。本実施の形態では、このように文字列リストを一つに結合した文字列を用いて文字列間の距離を測定する。
そして、文字列への変換方法の一例について説明する。例えば、次数2の場合の変換について説明する。変換前文字列リストは、例えば、「文字列1,文字列2,・・・,文字列n」である。この場合、文字列1の先頭、文字列1,2,・・・,nの各間、文字列nの末尾に、k個の未使用の文字(例えばNULL文字「0x00」)を挿入して一つの文字列に結合する。この結果、変換後結合文字列は、「(null)(null)文字列1(null)(null)文字列2(null)(null)…(null)(null)文字列n(null)(null)」となる。なお、(null)(null)は、2文字からなる区分文字列である。(null)は、1文字(ASCII値0)を示す。
そして、本実施の形態では、未使用文字がない場合でも、例えば、1バイトの各文字を2バイトとして取り扱うことによって、未使用文字(例えば「0xffff」等)を生成することができる。また、本実施の形態では、出現率が低いある1文字種(例えば、NULL文字)をエスケープシーケンスし、他の文字種2文字(例えば「\0」)に置換することによって、その1文字種を区分文字として使うこともできる。
また、本実施の形態では、リストQに対するリストPの距離について、リストPを一つの列に全て連結してから処理するのではなく、リストの要素1件ずつについて、先頭及び末尾に区分文字を追加し、以下の(9)式のように各要素の文字列長に応じた重みに応じて足し合わせることで、文字列間の距離を測定してもよい。
Figure 2019096088
ただし、(9)式において、Piは、リストPのi番目の要素である。|Ti|は、リスト要素Piの文字列長である。|T|は、リストP全体の文字列長(|T|=Σ|Ti|)である。
これによって、文字列のみならず、文字列リスト間の距離も、文字の連なりを考慮したk次経験交差エントロピーを用いて算出可能となる。
なお、上記(4)式〜(7)式において、文字の連なりを考慮した出現率を算出するために、部分文字列sと、その直前の文字cとを用いたが、直前の文字の代わりに直後の文字を用いてもよい。
[k次経験JS情報量]
次に、k次経験交差エントロピーを、JS情報量(Jensen-Shannon divergence)に適用する場合を例に説明する。JS情報量は、以下の(10)式のように示すことができ、距離として用いられる。
Figure 2019096088
(10)式において、Mは、PとQを結合した文字列であり、M/2は、その出現率を1/2して使用することを意味する。
このJS情報量についても、k次経験交差エントロピーを適用することによって、KL情報量と同様に、(11−1)〜(11−3)式のように、k次経験JS情報量として定義することができる。
Figure 2019096088
ただし、(11−1)〜(11−3)式において、P,Qが文字列の場合は、文字列全体を一つのリストとしてMを構成する。P,Qともに文字列の場合は、Mは、2要素のリストとなるためである。Mには、PとQとの部分文字列が全て含まれているため、k次経験JS情報量は、k次経験KL情報量と異なり、k長の文字列c+sの情報量Imを必ず算出できる。したがって、k次経験JS情報量を算出する場合は、より短い文字列c+s’の情報量を代わりに用いなくともよい。
このように、本実施の形態では、文字の連なりに関する確率モデルを事前に決定する必要なく、(6),(7)式に示す、文字の連なりを考慮したk次経験交差エントロピーを用いることによって、文字列間の距離を効率的に算出することができる。また、本実施の形態では、(8)式のように、k次経験交差エントロピーをKL情報量に適用し、k次経験KL情報量として拡張することによって、文字列間の距離を適切に算出することが可能となる。また、本実施の形態では、(8)式のように、k次経験交差エントロピーをJS情報量に適用し、k次経験JS情報量として拡張することによって、文字列間の距離を適切に算出することが可能となる。
[実施の形態1]
次に、実施の形態1について説明する。本実施の形態1では、例えば、k次経験KL情報量を用いて、文字列または文字列リスト間の距離を測定する距離装置について説明する。
図1は、実施の形態1に係る距離測定装置の構成の一例を示す図である。図1に示すように、本実施の形態1に係る距離測定装置10は、変換部11、出現数算出部12、経験情報量算出部13、距離算出部14及び経験情報量格納部15を有する。距離測定装置10は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、CPU(Central Processing Unit)等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。
距離測定装置10は、距離の測定対象の文字列または文字リストの入力を受け付ける。図1の例では、計測対象である対象文字列または文字列リストと、参照元である参照文字列または文字列リストと、の入力を受け付ける。また、距離測定装置10は、距離を演算する際に要する次数k等の設定情報の入力も受け付ける。そして、距離測定装置10は、対象文字列または文字列リストと、参照文字列または文字列リストと、の間の距離を測定し、該測定した距離等の情報を出力する。
変換部11は、入力された対象文字列または文字列リストと、参照元である参照文字列または文字列リストと、に対して変換処理を行い、距離測定に適した文字列へと変換する。
出現数算出部12は、変換済対象文字列に対しては、k長部分文字列と該k長部分文字列の直前の文字との出現数を算出する。出現数算出部12は、変換済参照文字列に対しては、0,1,…,k長部分文字列と該k長部分文字列の直前の文字との出現数を算出する。経験情報量算出部13は、変換済みの参照文字列の出現数を基に、それぞれ0,1,…,k次経験KL情報量を算出し、経験情報量格納部15に格納する。
距離算出部14は、変換済みの対象文字列の出現数と、経験情報量格納部15に格納された経験情報量とを基にk次経験交差エントロピーを計算し、対象文字列または文字列リストと、参照元である参照文字列または文字列リストとの距離として出力する。k次経験交差エントロピーは、変換部11が変換した計測対象の文字列におけるk長部分文字列と該部分文字列の直前に出現する文字とを結合した結合部分文字列の出現率である第1の出現率と、変換部11が変換した参照元の文字列における直後がk長部分文字列であると判明している文字cの出現率である第2の出現率の対数である経験情報量と、の乗算値の総和である。距離算出部14は、変換部11が変換した参照元データ列の中に結合部分データ列が含まれていない場合、次数kを、変換部11が変換した参照元データ列の中に結合部分データ列が出現する次数まで下げる。
経験情報量格納部15は、経験情報量算出部13が算出した経験情報量を記憶する。
[変換部の処理]
まず、変換部11の処理について説明する。変換部11は、計測対象の文字列または文字列リスト、及び、参照元の文字列または文字列リストに対して、k個の未使用の文字コードを区分文字列として入力して文字列または文字列リストを1つの文字列に変換する。
例えば、変換部11は、入力が文字列の場合には、先頭と末尾とに区分文字列を追加する。また、変換部11は、入力が文字列リストの場合には、先頭と末尾とに区分文字列を追加するとともにリスト間に区分文字列を挟み一つの文字列として連結する。
[出現数算出部の処理]
次に、出現数算出部12の処理について説明する。出現数算出部12は、i長(0≦i≦k、iは整数)の部分文字列と該部分文字列の直前文字とを用いて、例えば、以下のように出現数を算出する。
まず、出現数算出部12は、文字列から先頭の(i+1)文字を取得する。そして、出現数算出部12は、取得した(i+1)文字を先頭1文字cと続く部分文字列siに分け、その出現数を変数N[si][c]に1を加算することによって記録する。次に、出現数算出部12は、1文字ずらして、(i+1)文字を取得し、同様に出現数Nを記録する。出現数算出部12は、この処理を、文字列の最後まで実行する。そして、出現数算出部12は、各部分文字列siの出現数N[si]=ΣcN[si][c]を算出する。
なお、出現数算出部12は、i=0長の場合も、部分文字列siを空文字列“”と対応させることによって、同様の算出処理を実行することが可能である。以下、変換済対象文字列に関する出現数(配列)をNpとし、変換済参照文字列に関する出現数(配列)をNqとする。出現数算出部12は、対象文字列出現数Npを、k長について算出し、参照文字列出現数Nqを、0, 1,…,k長について算出する。
[経験情報量算出部の処理]
次に、経験情報量算出部13の処理について説明する。経験情報量算出部13は、参照文字列出現数Nqに基づき、0〜k次までの全ての経験情報量を算出する。経験情報量算出部13は、i次(0≦i≦k、iは整数)の経験情報量I[c+si]を、以下の(12)式を用いて、算出する。なお、(12)式は、(5−2)式に基づく。
Figure 2019096088
経験情報量算出部13は、このi次の経験情報量I[c+si]について、文字列c+siをキーとして経験情報量格納部15に格納する。経験情報量算出部13は、0次の場合もsiを空文字に対応させることによって、同様にi次の経験情報量I[c+si]の算出及び格納を行うことができる。
[距離算出部の処理]
次に、距離算出部14の処理について説明する。距離算出部14は、k次経験交差エントロピーを、計測対象の文字列または文字列リストと、参照元の文字列または文字列リストとの間の距離として算出する。この実施の形態1では、距離算出部14は、対象文字列の出現数と経験情報量とに基づき、k次経験KL情報量を算出し、距離として出力する。
まず、距離算出部14は、変換済みの対象文字列の部分文字列c+s(cは直前文字、sはk長部分文字列)について、以下の(13)式のように、値dを算出する。なお、cは、直前文字であり、sは、k長部分文字列である。なお、値dは、(6)式におけるp(c,s)×logq(c|s)に該当する。
Figure 2019096088
ここで、(13)式において、Npは、前述したように変換済みの対象文字列における出現数であり、Iは、経験情報量格納部15から取得される経験情報量である。また、|TP|は、変換済み対象文字列から区分文字列を取り除いた文字長である。
(6)式より、全ての部分文字列について算出した値dの総和は、k次経験KL情報量である。このため、距離算出部14は、この値dを全ての部分文字列で算出する。そして、距離算出部14は、算出した値dを全て総和したものをk次経験KL情報量として求め、求めたk次経験KL情報量を距離として出力する。
[経験情報量格納部の構成]
次に、経験情報量格納部15の構成について説明する。経験情報量格納部15は、文字列をインデックスとして、文字列に対応する経験情報量を収めたデータ構造として構成される。経験情報量格納部15は、文字列をキーに問い合わせがあると、問い合わせ対象の文字列とインデックスとの前方一致を行い、文字列長が最長となるインデックスに対応する情報量を、問い合わせ元に返却する。
経験情報量格納部15のデータ構造は、例えば、トライ木アルゴリズムを利用して構成できる。トライ木アルゴリズムは登録したインデックス数Nについて、検索時の平均計算量は、O(logN)であることが知られており、高速に検索を行える。
経験情報量格納部15は、問い合わせがあったキーがインデックスと、全く、前方一致しない場合、事前設定等で定められた方法に基づき、値を、問い合わせ元に返却する。例えば、経験情報量格納部15は、規定値(0以上の値)を返却する。また、例えば、経験情報量格納部15は、log|TQ|を返却する。|TQ|は、変換済み参照文字列から区分文字列を取り除いた文字長である。もちろん、経験情報量格納部15は、他の方法を用いて値を返却してもよい。
[距離測定方法の処理手順]
次に、距離測定装置10が実行する距離測定方法について説明する。図2は、図1に示す距離測定装置10が実行する距離測定方法の処理手順を示すフローチャートである。
距離測定装置10では、まず、変換部11が、入力を受付けた対象文字列または文字列リストと、参照文字列または文字列リストとのそれぞれについて、距離測定に適した文字列へと変換する変換処理を行う(ステップS11)。変換部11は、先頭、リスト間、末尾にk長区分文字列を挿入し、リスト間に区分文字列を挟み一つの文字列として連結することによって変換済対象文字列及び変換済参照文字列を生成する。
そして、出現数算出部12は、変換済対象文字列に対して、k長部分文字列と該k長部分文字列の直前の文字との出現数を算出し、変換済参照文字列に対して、0,1,…,k長部分文字列と該k長部分文字列の直前の文字との出現数を算出する出現数算出処理を行う(ステップS12)。
続いて、経験情報量算出部13は、変換済参照文字列の出現数に基づき、0〜k次までの全ての経験情報量を算出し、経験情報量格納部15へ格納する経験情報量算出処理を行う(ステップS13)。
そして、距離算出部14は、変換済対象文字列の出現数と、経験情報量格納部15に格納された経験情報量と、に基づき、距離等を算出する距離算出処理を行う(ステップS14)。なお、距離測定装置10は、参照文字列または文字列リストに対する変換処理、出現数算出処理及び経験情報量算出処理を、参照文字列または文字列リストの入力を受け付けた際に実行すれば足りる。
[本実施の形態1の効果]
本実施の形態では、文字の連なりを考慮したk次経験交差エントロピーを、文字列間または文字列リスト間の距離として算出している。k次経験交差エントロピーは、変換部11が変換した計測対象の文字列におけるk長部分文字列と該部分文字列の直前に出現する文字とを結合した結合部分文字列の出現率である第1の出現率と、変換部11が変換した参照元の文字列における直後がk長部分文字列であると判明している文字cの出現率である第2の出現率の対数である経験情報量と、の乗算値の総和である。
例えば、文字列m個のリストと文字列n個の文字列リストについて、文字列リスト間の距離を求めるために、文字列リスト間の各文字列同士を組合せてその距離を測り、それらの距離に対して、(平均等の)処理を行う方法がある。ただし、この方法では、少なくとも(m×n)回の距離計算が必要であり、計算量はO(N2)と大きくなる。これに対し、本実施の形態1では、経験情報量としたリスト部分はlogのオーダで済むため、その計算量がO(NlogN)となり、前述の手法による計算量O(N2)よりも格段に少なくなる。したがって、本実施の形態によれば、文字列または文字列リスト間同士の距離を、効率的に求めることができる。
また、本実施の形態1では、確率モデルを使用せずにk次経験交差エントロピーを算出するため、文字の連なりに関する確率モデルを事前に決定せずとも、対象文字列と参照文字列との距離を算出することが可能である。
また、本実施の形態1では、距離算出前に、対象文字列または文字列リストと、参照元である参照文字列または文字列リストとを、距離測定に適した一つの連結した文字列へと変換し、k次経験交差エントロピーの算出を適切に実行できる。
[実施の形態2]
次に、実施の形態2について説明する。実施の形態2では、図1に示す距離測定装置10と同様の機能を有する距離測定部10´を用い、通信ログから悪性通信を検出する通信システムについて説明する。
[通信システムの構成]
図3は、実施の形態2に係る通信システムの構成の一例を示す図である。図3に示すように、実施の形態2に係る通信システム201は、悪性距離測定装置210と、検出装置220とを有する。
悪性距離測定装置210は、図1に示す距離測定装置10と同様の機能を有する距離測定部10´を有する。悪性距離測定装置210は、悪性通信ログを教師データとして学習し、学習した悪性ログと、検出対象データである通信ログとの距離である悪性距離を算出する。
検出装置220は、悪性距離測定装置210が算出した悪性距離が、所定の距離以下の場合、距離測定対象の通信ログに悪性通信が含まれることを検出する。なお、図3では、悪性距離測定装置210と検出装置220とを別の装置として示すが、もちろん、悪性距離測定装置210と検出装置220との機能が同一の装置に備わっていてもよい。
[悪性距離測定装置の構成]
次に、悪性距離測定装置210について説明する。図3に示すように、悪性距離測定装置210は、距離測定部10´、学習部211及び推論部212を有する。
学習部211は、距離測定部10´に、悪性通信ログ及び良性通信ログを教師データとして学習させ、良性通信ログ及び悪性通信ログの経験情報量を、参照元の文字列または文字列リストの経験情報量として、経験情報量格納部15に蓄積する。
推論部212は、距離測定部10´に、良性通信ログ及び悪性通信ログの経験情報量を基に、検出対象の通信ログと、教師データである悪性通信ログとの距離を算出させる。推論部212は、経験情報量格納部15に蓄積された悪性ログの経験情報量と、検出対象の通信ログにおけるk長部分文字列及び該k長部分文字列の直前の文字との出現数と、を基に、距離測定部10´に悪性距離を算出させる。なお、次数kは、事前に設定される。
[学習部の処理]
次に、学習部211の処理について説明する。学習部211は、教師データである悪性通信ログ及び良性通信ログの入力を受け付ける。ここで、通信ログは、その1行を文字列リストの1リストとして取り扱う。
まず、学習部211は、各教師データに対して、適宜、不要文字列の削除やログ形式の統一等の整形等の前処理を行う。学習部211は、不要文字列削除として、例えば、多数回出現する同一ログ行の削減等を行ってもよい。学習部211は、実施の形態1と同様に、距離測定部10´に、前処理済みの教師データを参照元の文字列リストとして処理させ、そのk次経験情報量を経験情報量格納部15に格納させる。
[推論部の処理]
次に、推論部212の処理について説明する。推論部212は、検出対象データである通信ログに対して、学習部211と同様に、前処理を実施する。
続いて、推論部212は、前所済みの検出対象データの通信ログから、教師データとして与えた良性通信ログと類似するログを除去する。例えば、推論部212は、単純に良性通信先ドメインと同一のログを、良性通信ログと類似するログであると判定してもよい。また、推論部212は、距離測定部10´に、実施の形態1と同様の処理を実行させ、検出対象データである通信ログと、教師データである良性通信ログとの距離を測定させ、測定距離が所定以下のものを、良性通信ログと類似するログであると判定してもよい。
推論部212は、距離測定部10´に、良性通信ログを除去した検出対象データである通信ログと、教師データである悪性通信ログとの悪性距離を測定させる。この悪性距離は、距離測定部10´に、実施の形態1と同様の処理を実行させ、距離測定部10´の経験情報量格納部15に保存された経験情報量を用いて算出される。
推論部212は、測定した悪性距離を検出装置220に出力する。検出装置220は、悪性距離測定装置210から出力された悪性距離が、所定の距離以下の場合に、検出対象データである通信ログに悪性通信が含まれることを検出する。
なお、推論部212は、検出対象データである通信ログを一括して推論する代わりに、検出対象データである通信ログを、送信元IPアドレス毎(端末毎)や単位時間毎等に応じて分割し、分割した通信ログごとに悪性距離を測定してよい。例えば、推論部212が、検出対象データである通信ログを端末毎に分割した場合、検出装置220は、悪性距離が所定以下だった端末をマルウェア感染端末として検出することができる。
[学習処理の処理手順]
次に、悪性距離測定装置210における学習処理の処理手順について説明する。図4は、図3に示す悪性距離測定装置210における学習処理の処理手順を示すフローチャートである。
悪性距離測定装置210では、まず、学習部211が、入力を受け付けた各教師データに対し、不要文字列の削除やログ形式の統一等の整形等の前処理を行う(ステップS21)。そして、学習部211は、距離測定部10´に、各教師データ別に経験情報量を算出させ、経験情報量格納部15へ格納させる経験情報量算出処理を行う(ステップS22)。
[推論処理の処理手順]
次に、悪性距離測定装置210における推論処理の処理手順について説明する。図5は、図3に示す悪性距離測定装置210における推論理の処理手順を示すフローチャートである。
推論処理では、推論部212が、検出対象データである通信ログに対し、不要文字列削除、形式整形及び分割等の前処理を実施する(ステップS23)。そして、推論部212は、検出対象データである通信ログから、教師データである良性通信ログと類似するログを除去する除去処理を行う(ステップS24)。
続いて、推論部212は、距離測定部10´に、良性通信ログを除去した検出対象データである通信ログと、教師データである悪性通信ログとの悪性距離を測定させる距離測定処理を行い(ステップS25)、測定した悪性距離を検出装置220に出力する。
[検出処理の処理手順]
次に、検出装置220における検出処理の処理手順について説明する。図6は、図3に示す検出装置220における検出処理の処理手順を示すフローチャートである。
図6に示すように、まず、検出装置220は、悪性距離測定装置210による悪性距離の入力を受け付ける(ステップS26)。そして、検出装置220は、悪性距離が、所定の距離以下の場合に、検出対象データである通信ログに悪性通信が含まれることを検出する検出処理を行い(ステップS27)、悪性通信が含まれる通信ログを示す検出結果を対処装置等に出力する。
[実施の形態2の効果]
このように、実施の形態2の通信システム201によれば、ブラックリストと、対象の通信ログとを1件ずつ個別に比較するのに対し、マルウェアの通信をひとまとめにして比較できることから、比較処理の高速化および検知精度の向上を図ることができるという効果を奏する。
[実施の形態3]
次に、実施の形態3について説明する。実施の形態3では、距離測定部10´を用い、通信ログに含まれる悪性通信の原因のマルウェアを判定する通信システムについて説明する。
[通信システムの構成]
図7は、実施の形態3に係る通信システムの構成の一例を示す図である。図7に示すように、実施の形態3に係る通信システム301は、マルウェア種別距離測定装置310と、判定装置320とを有する。
マルウェア種別距離測定装置310は、距離測定部10´を有する。マルウェア種別距離測定装置310は、マルウェア種別ごとの悪性通信ログを教師データとして学習し、学習したマルウェア種別ごとの悪性通信ログと、検出対象データである通信ログとの距離であるマルウェア距離を算出する。
判定装置320は、マルウェア種別距離測定装置310が算出したマルウェア距離が最も短い距離に対応するマルウェア種別を、検出対象の通信ログの悪性通信のマルウェアとして判定する。なお、図7では、マルウェア種別距離測定装置310と判定装置320とを別の装置として示すが、もちろん、マルウェア種別距離測定装置310と判定装置320との機能が同一の装置に備わっていてもよい。
[マルウェア種別距離測定装置の構成]
次に、マルウェア種別距離測定装置310について説明する。図7に示すように、マルウェア種別距離測定装置310は、距離測定部10´、学習部311及び推論部312を有する。
学習部311は、距離測定部10´に、マルウェア種別ごとに分別された悪性通信ログを教師データとして学習させ、マルウェア種別ごとに求めさせた経験情報量を、参照元の文字列または文字列リストの経験情報量として経験情報量格納部15に蓄積する。
推論部312は、距離測定部10´に、検出対象データである通信ログと、教師データとして学習された各マルウェア種別の悪性通信ログとの距離であるマルウェア距離を算出させる。推論部312は、距離測定部10に、経験情報量格納部15に蓄積されたマルウェア種別ごとの悪性ログの経験情報量と、検出対象の通信ログにおけるk長部分文字列及び該k長部分文字列の直前の文字の出現数と、を基に、マルウェア距離をマルウェア種別毎に算出させる。なお、次数kは、事前に設定される。
[学習部の処理]
次に、学習部311の処理について説明する。学習部311は、教師データであるマルウェア種別ごとに分別された悪性通信ログの入力を受け付ける。ここで、通信ログは、その1行を文字列リストの1リストとして取り扱う。
まず、学習部311は、学習部211と同様に、各教師データに対して、適宜、不要文字列の削除やログ形式の統一等の整形等の前処理を行う。学習部311は、不要文字列削除として、例えば、多数回出現する同一ログ行の削減等を行ってもよい。学習部311は、距離測定部10´に、実施の形態1と同様の処理を実行させ、前処理済みの教師データを参照元の文字列リストとして処理させ、そのk次経験情報量を経験情報量格納部15に格納させる。k次経験情報量は、マルウェア種別毎に経験情報量格納部15に蓄積される。
[推論部の処理]
次に、推論部312の処理について説明する。推論部312は、検出対象データである通信ログに対して、学習部311と同様に、前処理を実施する。
続いて、推論部312は、距離測定部10´に、実施の形態1と同様の処理を実行させ、経験情報量格納部15に蓄積されたマルウェア種別毎の経験情報量を基に、検出対象データである通信ログと各マルウェア種別の悪性通信ログとのマルウェア距離を、マルウェア種別毎に算出させる。推論部312は、測定したマルウェア距離を判定装置320に出力する。
[判定装置の処理]
判定装置320は、マルウェア種別距離測定装置210から出力されたマルウェア距離が最も短い距離に対応するマルウェア種別を、検出対象の通信ログの悪性通信のマルウェアとして判定する。判定装置320は、判定結果を対処装置等に出力する。判定装置320は、判定結果として、マルウェア種別名とともにその距離を出力してもよいし、距離が近い順または特定距離内のマルウェア種別名を複数件出力してもよい。
[学習処理の処理手順]
次に、マルウェア種別距離測定装置310における学習処理の処理手順について説明する。図8は、図7に示すマルウェア種別距離測定装置310における学習処理の処理手順を示すフローチャートである。
マルウェア種別距離測定装置310では、まず、学習部311が、入力を受け付けた各教師データに対し、不要文字列の削除やログ形式の統一等の整形等の前処理を行う(ステップS31)。そして、学習部311は、距離測定部10´に、マルウェア種別ごとに、教師データに対する経験情報量を算出させ、マルウェア種別毎に経験情報量を経験情報量格納部15へ格納させる経験情報量算出処理を行う(ステップS32)。
[推論処理の処理手順]
次に、マルウェア種別距離測定装置310における推論処理の処理手順について説明する。図9は、図7に示すマルウェア種別距離測定装置310における推論理の処理手順を示すフローチャートである。
推論処理では、推論部312が、検出対象データである通信ログに対し、不要文字列削除、形式整形及び分割等の前処理を実施する(ステップS33)。続いて、推論部312は、距離測定部10´に、検出対象データである通信ログと、教師データとして学習された各マルウェア種別の悪性通信ログとのマルウェア距離をマルウェア毎に測定させる距離測定処理を行い(ステップS34)、測定したマルウェア距離を判定装置320に出力する。
[判定処理の処理手順]
次に、判定装置320における判定処理の処理手順について説明する。図10は、図7に示す判定装置320における検出処理の処理手順を示すフローチャートである。
図10に示すように、まず、判定装置320は、マルウェア種別距離測定装置310によるマルウェア距離の入力を受け付ける(ステップS35)。そして、判定装置320は、マルウェア距離が、マルウェア種別距離測定装置310から出力されたマルウェア距離が最も短い距離に対応するマルウェア種別を、検出対象の通信ログの悪性通信のマルウェアとして判定する判定処理を行い(ステップS36)、判定結果を対処装置等に出力する。
[実施の形態3の効果]
マルウェアの多くは、特定の複数回通信を行うことが多い。そこで、実施の形態3で説明したように、複数回通信の効率的な比較処理によって、マルウェア種別判定の判定精度向上を図ることができる。また、実施の形態3によれば、未知のマルウェアの通信であっても、その類似の通信のものを判定及び出力することが可能であり、その亜種マルウェアとして分析及び対策を実施することも可能となる。
[実施の形態4]
次に、実施の形態4について説明する。実施の形態4では、実施の形態1に係る距離測定部10´を用い、マルウェア種別ごとの悪性通信ログ間の距離を測定して、マルウェア種別ごとの悪性通信ログ間の距離を基にマルウェア関連マップまたは関連グラフ(系統樹)を生成する作成装置について説明する。
[作成装置の構成]
図11は、実施の形態4に係る作成装置の構成の一例を示す図である。図11に示すように、実施の形態4に係る作成装置410は、マルウェア間距離測定部411、作成部412及び距離測定部10´を有する。
マルウェア間距離測定部411は、距離測定部10´に、マルウェア種別ごとの悪性通信ログ間の距離をそれぞれ測定させ、測定させたマルウェア種別毎の通信ログ間の距離であるマルウェア間距離を、マルウェア間距離格納部415へ格納する。また、マルウェア間距離測定部411は、実施の形態2,3と同様に、マルウェア種別毎の悪性通信ログに対し、不要文字列削除、形式整形等の前処理を行ってから、種別毎の通信ログ間の距離の測定を行う。
作成部412は、マルウェア間距離格納部415に格納されたマルウェア間距離を用いて関連マップ、関連グラフを作成する。作成部412は、マルウェア間距離を用いて、マルウェア間の関係をマップ化したマルウェア関連マップ、または、マルウェア間を関連付けた関連グラフを作成する。
ここで、k次経験KL情報量について、一般的にKLk(P|Q)≠KLk(Q|P)であり、マルウェア間距離として二つの値が出現する。このため、作成部412では、k次経験KL情報量に対し、平均、最小値または最大値等の各種処理を行ってから、マルウェア間距離として用いる。または、k次経験JS情報量は、JSk(P|Q)=JSk(Q|P)であるため、作成部412は、このk次経験JS情報量をマルウェア間距離として用いてもよい。
ここで、関連マップの作成には、距離を用いる手法として、多次元尺度構成法(MDS)、isomap等の手法が知られている。このため、作成部412は、MDS、isomap等の手法を用いて、関連マップを作成する。また、作成部412は、関連グラフについては、距離が近いもの同士から順に関連付けを行っていく、階層的クラスタリング手法を用いて、関連グラフを作成する。
[作成処理の処理手順]
次に、作成装置410が実行する作成処理の処理手順について説明する。図12は、図11に示す作成装置410が実行する作成処理の処理手順を示すフローチャートである。
図12に示すように、作成装置10は、マルウェア間距離測定部411が、各通信ログに対する不要文字列削除、形式整形等の前処理を行う(ステップS51)。続いて、マルウェア間距離測定部411は、距離測定部10´に、マルウェア種別ごとの悪性通信ログ間の距離をそれぞれ測定させる距離測定処理を行う(ステップS52)。マルウェア間距離測定部411は、測定したマルウェア種別毎の通信ログ間の距離であるマルウェア間距離を、マルウェア間距離格納部415へ格納する。
作成部412は、マルウェア間距離格納部415に格納されたマルウェア間距離を用いてマルウェアの関連マップ、関連グラフを作成する作成処理を行う(ステップS53)。作成部412は、作成したマルウェアの関連マップ、関連グラフを対処装置に出力する。
[実施の形態4の効果]
マルウェアは、完全に新しく作られることは珍しく、既存のマルウェアやマルウェア作成ツールを改造して作成されることが大半であり、通信パターンもその既存のものと似通っていることが多い。そこで、実施の形態4では、通信に基づくマルウェアの関連マップ、関連グラフを生成することによって、マルウェアの作成系統を推測する等、マルウェア対策に寄与することができるという効果を奏する。
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施の形態において説明した各処理のうち、自動的に行なわれるものとして説明した処理の全部又は一部を手動的に行なうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的に行なうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図13は、プログラムが実行されることにより、距離測定装置10、悪性距離測定装置210、マルウェア種別距離測定装置310及び作成装置410が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、距離測定装置10、悪性距離測定装置210、マルウェア種別距離測定装置310及び作成装置410の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、距離測定装置10、悪性距離測定装置210、マルウェア種別距離測定装置310及び作成装置410における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
10 距離測定装置
11 変換部
12 出現数算出部
13 経験情報量算出部
14 距離算出部
15 経験情報量格納部
201,301 通信システム
210 悪性距離測定装置
211,311 学習部
212,312 推論部
220 検出装置
310 マルウェア種別距離測定装置
320 判定装置
410 作成装置
411 マルウェア間距離測定部
412 作成部

Claims (8)

  1. 計測対象のデータ列またはデータ列リスト、及び、参照元のデータ列またはデータ列リストに対し、k(kは任意の自然数)個の未使用の文字コードを区分データ列として入力してデータ列またはデータ列リストを1つのデータ列に変換する変換部と、
    前記変換部が変換した計測対象のデータ列におけるk長部分データ列と該部分データ列の直前に出現する文字とを結合した結合部分データ列の出現率である第1の出現率と、前記変換部が変換した前記参照元のデータ列における直後がk長部分データ列であると判明している文字の出現率である第2の出現率の対数である経験情報量と、の乗算値の総和である、k次経験交差エントロピーを、前記計測対象のデータ列またはデータ列リストと、前記参照元のデータ列またはデータ列リストとの間の距離として算出する距離算出部と、
    を有することを特徴とする距離測定装置。
  2. 前記距離算出部は、以下の(1)式を用いて前記k次経験交差エントロピーを算出することを特徴とする請求項1に記載の距離測定装置。
    Figure 2019096088
  3. 前記距離算出部は、前記変換部が変換した参照元データ列の中に前記結合部分データ列が含まれていない場合、次数kを、前記変換部が変換した参照元データ列の中に前記結合部分データ列が出現する次数まで下げることを特徴とする請求項1または2に記載の距離測定装置。
  4. 前記変換部は、入力がデータ列の場合には、先頭と末尾とに前記区分データ列を追加し、入力がデータ列リストの場合には、先頭と末尾とに前記区分データ列を追加するとともにリスト間に区分データ列を挟み一つのデータ列として連結することを特徴とする請求項1〜3のいずれか一つに記載の距離測定装置。
  5. 検出対象の通信ログと悪性通信ログとの距離を測定する悪性距離測定装置と、悪性距離測定装置が測定した距離を基に前記通信ログに悪性通信が含まれることを検出する検出装置と、を有する通信システムであって、
    前記悪性距離測定装置は、
    計測対象のデータ列またはデータ列リスト、及び、参照元のデータ列またはデータ列リストに対し、k(kは任意の自然数)個の未使用の文字コードを区分データ列として入力してデータ列またはデータ列リストを1つのデータ列に変換する変換部と、
    前記変換部が変換した計測対象のデータ列におけるk長部分データ列と該部分データ列の直前に出現する文字とを結合した結合部分データ列の出現率である第1の出現率と、前記変換部が変換した前記参照元のデータ列における直後がk長部分データ列であると判明している文字の出現率である第2の出現率の対数である経験情報量と、の乗算値の総和である、k次経験交差エントロピーを、前記計測対象のデータ列またはデータ列リストと、前記参照元のデータ列またはデータ列リストとの間の距離として算出する距離算出部と、 前記距離測定部に、悪性通信ログ及び良性通信ログを教師データとして学習させ、良性通信ログ及び悪性通信ログの経験情報量を、前記参照元のデータ列またはデータ列リストの経験情報量として蓄積させる学習部と、
    前記距離測定部に、前記良性通信ログ及び悪性通信ログの経験情報量を基に、検出対象の通信ログと、教師データである悪性通信ログとの距離を算出させる推論部と、
    を有し、
    前記検出装置は、検出対象の通信ログと悪性通信ログとの距離が所定の距離以下の場合には、前記検出対象の通信ログに悪性通信が含まれることを検出する
    ことを特徴とする通信システム。
  6. 検出対象の通信ログと悪性通信ログとの距離を測定するマルウェア種別距離測定装置と、距離測定装置が測定した距離を基に前記通信ログに含まれる悪性通信の原因のマルウェアを判定する判定装置と、を有する通信システムであって、
    前記マルウェア種別距離測定装置は、
    計測対象のデータ列またはデータ列リスト、及び、参照元のデータ列またはデータ列リストに対し、k(kは任意の自然数)個の未使用の文字コードを区分データ列として入力してデータ列またはデータ列リストを1つのデータ列に変換する変換部と、
    前記変換部が変換した計測対象のデータ列におけるk長部分データ列と該部分データ列の直前に出現する文字とを結合した結合部分データ列の出現率である第1の出現率と、前記変換部が変換した前記参照元のデータ列における直後がk長部分データ列であると判明している文字の出現率である第2の出現率の対数である経験情報量と、の乗算値の総和である、k次経験交差エントロピーを、前記計測対象のデータ列またはデータ列リストと、前記参照元のデータ列またはデータ列リストとの間の距離として算出する距離算出部と、
    前記距離測定部に、マルウェア種別ごとに分別された悪性通信ログを教師データとして学習させ、マルウェア種別ごとに求めさせた経験情報量を、前記参照元のデータ列またはデータ列リストの経験情報量として蓄積させる学習部と、
    前記距離測定部に、前記マルウェア種別ごとの経験情報量を基に、検出対象の通信ログと、各マルウェア種別の悪性通信ログとの距離をマルウェア種別毎に算出させる推論部と、
    を有し、
    前記判定装置は、前記推論部が推論した距離が最も短い距離に対応するマルウェア種別を、検出対象の通信ログに含まれる悪性通信の原因のマルウェアとして判定する
    ことを特徴とする通信システム。
  7. 計測対象のデータ列またはデータ列リスト、及び、参照元のデータ列またはデータ列リストに対し、k(kは任意の自然数)個の未使用の文字コードを区分データ列として入力してデータ列またはデータ列リストを1つのデータ列に変換する変換部であって、マルウェア種別ごとの悪性通信ログを変換する変換部と、
    前記変換部が変換した計測対象のデータ列におけるk長部分データ列と該部分データ列の直前に出現する文字とを結合した結合部分データ列の出現率である第1の出現率と、前記変換部が変換した前記参照元のデータ列における直後がk長部分データ列であると判明している文字の出現率である第2の出現率の対数である経験情報量と、の乗算値の総和である、k次経験交差エントロピーを、前記計測対象のデータ列またはデータ列リストと、前記参照元のデータ列またはデータ列リストとの間の距離として算出する距離算出部であって、マルウェア種別ごとの悪性通信ログ間の距離を算出する距離算出部と、
    マルウェア種別ごとの悪性通信ログ間の距離を用いて、マルウェア間の関係をマップ化したマルウェア関連マップ、または、マルウェア間を関連付けた関連グラフを作成する作成部と、
    を有することを特徴とする作成装置。
  8. コンピュータを、請求項1〜4のいずれか一つに記載の距離測定装置として機能させるための距離測定プログラム。
JP2017225395A 2017-11-24 2017-11-24 距離測定装置、通信システム、作成装置及び距離測定プログラム Active JP6783741B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017225395A JP6783741B2 (ja) 2017-11-24 2017-11-24 距離測定装置、通信システム、作成装置及び距離測定プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017225395A JP6783741B2 (ja) 2017-11-24 2017-11-24 距離測定装置、通信システム、作成装置及び距離測定プログラム

Publications (2)

Publication Number Publication Date
JP2019096088A true JP2019096088A (ja) 2019-06-20
JP6783741B2 JP6783741B2 (ja) 2020-11-11

Family

ID=66971779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017225395A Active JP6783741B2 (ja) 2017-11-24 2017-11-24 距離測定装置、通信システム、作成装置及び距離測定プログラム

Country Status (1)

Country Link
JP (1) JP6783741B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016066135A (ja) * 2014-09-24 2016-04-28 日本電信電話株式会社 類似度評価装置、類似度評価システム、類似度評価装置方法、および、類似度評価プログラム
US20160366155A1 (en) * 2014-02-28 2016-12-15 British Telecommunications Public Limited Company Malicious encrypted network traffic identification
JP2017102566A (ja) * 2015-11-30 2017-06-08 日本電信電話株式会社 不正ファイル検知装置、不正ファイル検知方法、および、不正ファイル検知プログラム
WO2018070404A1 (ja) * 2016-10-14 2018-04-19 日本電気株式会社 マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラムが格納された記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160366155A1 (en) * 2014-02-28 2016-12-15 British Telecommunications Public Limited Company Malicious encrypted network traffic identification
JP2016066135A (ja) * 2014-09-24 2016-04-28 日本電信電話株式会社 類似度評価装置、類似度評価システム、類似度評価装置方法、および、類似度評価プログラム
JP2017102566A (ja) * 2015-11-30 2017-06-08 日本電信電話株式会社 不正ファイル検知装置、不正ファイル検知方法、および、不正ファイル検知プログラム
WO2018070404A1 (ja) * 2016-10-14 2018-04-19 日本電気株式会社 マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラムが格納された記録媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
堀合啓一,外2名: "ハミング距離によるマルウェア亜種の自動分類", 情報処理学会研究報告 コンピュータセキュリティ, vol. 第2008巻,第45号, JPN6020039486, 15 May 2008 (2008-05-15), pages 61 - 66, ISSN: 0004368379 *
小谷野仁,外2名: "文字列の距離空間上の最大マージン識別器とそのタンパク質科学への応用", 電子情報通信学会技術研究報告, vol. 第114巻,第105号, JPN6020039487, 18 June 2014 (2014-06-18), pages 75 - 82, ISSN: 0004368380 *

Also Published As

Publication number Publication date
JP6783741B2 (ja) 2020-11-11

Similar Documents

Publication Publication Date Title
US20200183986A1 (en) Method and system for document similarity analysis
JP6560451B2 (ja) 悪性通信ログ検出装置、悪性通信ログ検出方法、悪性通信ログ検出プログラム
JP6055391B2 (ja) 関連性判定装置、関連性判定プログラム、及び関連性判定方法
RU2722692C1 (ru) Способ и система выявления вредоносных файлов в неизолированной среде
RU2728498C1 (ru) Способ и система определения принадлежности программного обеспечения по его исходному коду
US10089411B2 (en) Method and apparatus and computer readable medium for computing string similarity metric
CN111290784A (zh) 适用于大规模样本的程序源代码相似度检测方法
RU2728497C1 (ru) Способ и система определения принадлежности программного обеспечения по его машинному коду
RU2759087C1 (ru) Способ и система статического анализа исполняемых файлов на основе предиктивных моделей
CN111930610B (zh) 软件同源性检测方法、装置、设备及存储介质
US20230418578A1 (en) Systems and methods for detection of code clones
US11947572B2 (en) Method and system for clustering executable files
CN113688240B (zh) 威胁要素提取方法、装置、设备及存储介质
CN113901474A (zh) 一种基于函数级代码相似性的漏洞检测方法
CN116149669B (zh) 一种基于二进制文件的软件成分分析方法、装置以及介质
CN110674635A (zh) 一种用于文本段落划分的方法和装置
JP7092001B2 (ja) 数値検索装置、数値検索方法および、数値検索プログラム
CN112612810A (zh) 慢sql语句识别方法及系统
Ting et al. Faster classification using compression analytics
JP6783741B2 (ja) 距離測定装置、通信システム、作成装置及び距離測定プログラム
JP6261669B2 (ja) クエリ校正システムおよび方法
WO2019163643A1 (ja) 要約評価装置、方法、プログラム、及び記憶媒体
Xiao et al. Matching similar functions in different versions of a malware
CN113420127B (zh) 威胁情报处理方法、装置、计算设备及存储介质
CN115221522B (zh) Elf恶意文件快速静态检测方法、装置、电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201012

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201022

R150 Certificate of patent or registration of utility model

Ref document number: 6783741

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150