(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0035】
実施の形態1.
実施の形態1について、
図2〜
図5を用いて説明する。
【0036】
図2は、この実施の形態におけるサイバー攻撃検出システム16の構成の一例を示す図である。
【0037】
サイバー攻撃検出システム16は、標的型サイバー攻撃を検出する。サイバー攻撃検出システム16は、例えば、上記説明したローカルネットワークシステム10のなかに設置される。サイバー攻撃検出システム16は、例えば、詐称メール検出装置20と、不正通信検出装置30とを有する。
【0038】
詐称メール検出装置20は、詐称メールを検出する。詐称メールとは、作成者を詐称した電子メールのことである。詐称メール検出装置20は、例えば、メールサーバ装置14がインターネット81を介して受信する電子メールのなかから、詐称メールを検出する。
詐称メールを検出した場合、詐称メール検出装置20は、その電子メールの受信者である端末装置12の利用者や、ローカルネットワークシステム10の管理者などに対して、警告する。これにより、利用者が添付ファイルを開いて端末装置12がコンピュータウィルスに感染するのを防ぐ。また、端末装置12がコンピュータウィルスに感染してしまったとしても、管理者が迅速な対応をすることを可能にする。
【0039】
不正通信検出装置30は、不正な通信を検出する。不正通信検出装置30は、例えば、端末装置12などがウェブプロキシ装置15とインターネット81とを介して行う通信のなかから、不正な通信を検出する。不正通信検出装置30は、例えば、端末装置12などとウェブプロキシ装置15との間の通信を取得して検出の対象とする。これは、ウェブプロキシ装置15が不正な通信であると判定して遮断する通信も検出の対象に含めるためである。なお、不正通信検出装置30は、端末装置12などの代理としてウェブプロキシ装置15がインターネット81を介して行う通信を取得して検出の対象とする構成であってもよい。また、端末装置12がウェブプロキシ装置15を介さずに直接インターネット81を介して通信をする場合には、不正通信検出装置30は、端末装置12がインターネットを介して行う通信を取得して検出の対象とする。
不正な通信を検出した場合、不正通信検出装置30は、ローカルネットワークシステム10の管理者などに対して、警告する。これにより、管理者が迅速な対応をすることができるので、標的型サイバー攻撃のコンピュータウィルスを発見し、秘密情報の漏洩を防ぐことができる。
【0040】
このように、標的型サイバー攻撃の第一段階におけるコンピュータウィルス感染を防ぐとともに、万一コンピュータウィルスに感染してしまっても、第二段階における不正な通信を検出することにより、第三段階まで進むのを防ぐ。これにより、標的型サイバー攻撃による秘密情報の漏洩を防ぐことができる。
【0041】
図3は、この実施の形態におけるコンピュータ90のハードウェア資源の一例を示す図である。
【0042】
詐称メール検出装置20や不正通信検出装置30は、例えば、コンピュータ90を用いて構成される。コンピュータ90は、例えば、制御装置91と、入力装置92と、出力装置93と、記憶装置94と、演算装置95とを有する。
【0043】
制御装置91は、記憶装置94が記憶したコンピュータプログラムを実行することにより、コンピュータ90全体を制御する。
記憶装置94は、制御装置91が実行するコンピュータプログラムや、演算装置95が演算に用いるデジタルデータなどを記憶する。記憶装置94は、例えば、揮発性メモリや不揮発性メモリなどの内部記憶装置、磁気ディスク装置や光学ディスク装置などの外部記憶装置である。
演算装置95は、記憶装置94が記憶したデジタルデータなどを用いて、算術演算や論理演算などの演算をする。演算装置95は、演算の結果を表わすデジタルデータを生成する。演算装置95が生成したデジタルデータは、例えば、記憶装置94が記憶する。
入力装置92は、コンピュータ90の外部から情報を入力し、デジタルデータに変換する。入力装置92が変換したデジタルデータは、例えば、記憶装置94が記憶する。入力装置92は、例えば、キーボードやマウスなどの操作入力装置、カメラやスキャナなどの画像入力装置、マイクなどの音声入力装置、温度や電圧などの物理量を測定する測定装置、他の装置が送信した信号を受信する受信装置である。
出力装置93は、記憶装置94が記憶したデジタルデータなどを、コンピュータ90の外部へ出力できる形式に変換して出力する。出力装置93は、例えば、文字や画像を表示する表示装置、文字や画像を印刷する印刷装置、スピーカなどの音声出力装置、他の装置に対して信号を送信する送信装置である。
【0044】
以下に説明する詐称メール検出装置20や不正通信検出装置30の機能ブロックは、例えば、記憶装置94が記憶したコンピュータプログラムを制御装置91が実行することにより、実現することができる。なお、これらの機能ブロックは、コンピュータ90以外の装置により実現されるものであってもよい。また、詐称メール検出装置20や不正通信検出装置30は、1つのコンピュータ90を用いて構成されるものであってよいし、複数のコンピュータ90を用いて構成されるものであってもよい。また、1つのコンピュータ90が、詐称メール検出装置20を構成するとともに、不正通信検出装置30を構成するものであってもよい。
【0045】
図4は、この実施の形態における詐称メール検出装置20の機能ブロックの一例を示す図である。
【0046】
詐称メール検出装置20は、例えば、メール通信取得部21と、メール通信記憶部22と、作成者ドメイン取得部23と、内部ドメイン検査部24と、外国経由検査部25と、パケット連続度検査部26と、転送経路検査部27と、詐称判定部28と、詐称警告部29とを有する。
【0047】
メール通信取得部21は、入力装置92を用いて、メールサーバ装置14がインターネット81を介して送受信する通信を取得する。メール通信取得部21は、メールサーバ装置14による通信のうち、メールの転送にかかる通信だけを取得する。
【0048】
例えば、メール通信取得部21は、メールサーバ装置14が送受信するIP(インターネットプロトコル)パケットをキャプチャする。IPパケットのヘッダ部分には、バージョン、ヘッダ長、サービスタイプ、全長、識別子、フラグ、断片位置、生存時間、プロトコル、チェックサム、送信元アドレス、宛先アドレス、オプションなどの情報が格納されている。
メール通信取得部21は、キャプチャしたIPパケットを解析して、トランスポート層のプロトコルにおけるメッセージを再構成する。トランスポート層のプロトコルには、例えばTCP(伝送制御プロトコル)やUDP(ユーザデータグラムプロトコル)などがある。
メール通信取得部21は、再構成したトランスポート層におけるメッセージを解析して、アプリケーション層のプロトコルにおけるメッセージを再構成する。アプリケーション層のプロトコルには、例えばHTTP(ハイパーテキスト転送プロトコル)やSMTP(シンプルメール転送プロトコル)などがある。
メール通信取得部21は、再構成したアプリケーション層におけるメッセージを解析して、SMTPにかかるメッセージだけを抽出する。メール通信取得部21は、抽出したメッセージのうちから、更に、メールサーバ装置14がSMTPサーバ(電子メールを受信する側)であるメッセージだけを抽出する。
メール通信取得部21は、抽出したメッセージを出力する。
【0049】
また、メール通信取得部21は、キャプチャしたIPパケットのうち、抽出したメッセージにかかるIPパケットだけを抽出する。メール通信取得部21は、抽出したIPパケットに関する情報を出力する。メール通信取得部21が出力する情報には、例えば、そのIPパケットをキャプチャした日時、そのIPパケットの送信元のIPアドレス、そのIPパケットの送受信方向などが含まれる。IPパケットの送受信方向は、そのIPパケットをメールサーバ装置14がインターネット81から受信したのか、それとも、そのIPパケットをメールサーバ装置14がインターネット81へ送信したのかを表わす。
【0050】
メール通信記憶部22は、記憶装置94を用いて、メール通信取得部21が取得した通信に関する情報を記憶する。メール通信記憶部22が記憶する情報には、例えば、電子メールのメールヘッダに記載された情報、SMTPコマンドのパラメータなどの情報、IPパケットに関する情報などが含まれる。これらの情報には、メール通信取得部21が出力した情報のほか、メール通信取得部21が出力したメッセージなどから、作成者ドメイン取得部23、内部ドメイン検査部24、外国経由検査部25、パケット連続度検査部26、または、転送経路検査部27が、取得し、算出し、あるいは、生成した情報も含まれる。
【0051】
作成者ドメイン取得部23は、演算装置95を用いて、メール通信取得部21が取得した通信によって転送される電子メールの作成者ドメインを取得する。作成者ドメインとは、電子メールに記載された作成者のメールアドレスが所属するドメインのことである。
【0052】
例えば、作成者ドメイン取得部23は、メール通信取得部21が出力したメッセージを解析して、メールサーバ装置14が受信した電子メールのメールヘッダを取得する。
作成者ドメイン取得部23は、取得したメールヘッダの「From」フィールドに記載されたメールアドレスを取得する。
作成者ドメイン取得部23は、取得したメールアドレスのうち、「@」より後ろの部分の文字列を、作成者ドメインとして取得する。
作成者ドメイン取得部23は、取得した作成者ドメインを出力する。
【0053】
内部ドメイン検査部24は、演算装置95を用いて、メールサーバ装置14が受信した電子メールが詐称メールである可能性を検査する。以下、その時点で検査の対象である電子メールを「判定対象メール」と呼ぶ。内部ドメイン検査部24は、次の観点から、詐称メールの可能性を検査する。
【0054】
ローカルネットワークシステム10のなかで作成された電子メールは、ローカルネットワークシステム10のなかの端末装置12から送信される。したがって、メールサーバ装置14がローカルエリアネットワーク11を介して受信することはあっても、インターネット81を介して受信することはないはずである。
【0055】
ローカルネットワークシステム10のなかの端末装置12に割り当てられたメールアドレスが所属するドメインを「内部ドメイン」と呼ぶ。
作成者ドメイン取得部23が取得した作成者ドメインが内部ドメインである場合、判定対象メールが詐称メールである可能性がある。ただし、例外的に、作成者ドメインが内部ドメインである電子メールが外部から届く場合もある。
【0056】
このような観点に基づいて、内部ドメイン検査部24は、詐称メールの可能性を検査する。内部ドメイン検査部24は、検査した結果を出力する。
【0057】
外国経由検査部25は、演算装置95を用いて、判定対象メールが詐称メールである可能性を検査する。外国経由検査部25は、内部ドメイン検査部24とは異なる観点から、詐称メールの可能性を検査する。
【0058】
ローカルネットワークシステム10が存在する国のなかで作成された電子メールは、同じ国のなかだけを経由して届けることができる。したがって、その電子メールが他の国を経由して届けられることはないはずである。
【0059】
メール通信取得部21が取得した通信にかかる電子メールの宛先であるメールアドレスが所属するドメインを「宛先ドメイン」と呼ぶ。メール通信取得部21が取得する通信は、メールサーバ装置14が受信した電子メールにかかる通信であるから、宛先ドメインは、内部ドメインと同じである。また、宛先ドメインが属する国を「宛先国」と呼ぶ。
作成者ドメイン取得部23が取得した作成者ドメインが属する国が宛先国と同じであるにもかかわらず、その電子メールが他の国を経由している場合、判定対象メールが詐称メールである可能性がある。ただし、例外的に、他の国を経由して届く場合もある。
【0060】
このような観点に基づいて、外国経由検査部25は、詐称メールの可能性を検査する。外国経由検査部25は、検査した結果を出力する。
【0061】
パケット連続度検査部26は、演算装置95を用いて、判定対象メールが詐称メールである可能性を検査する。パケット連続度検査部26は、内部ドメイン検査部24や外国経由検査部25とは異なる観点から、詐称メールの可能性を検査する。
【0062】
TCPなどのプロトコルでは、基本的に、データパケットを送信し、それに対する受信確認(ACK)を受信してから、次のデータパケットを送信する。このため、IPパケットの送受信方向は、「送信」「受信」「送信」「受信」…と交互に変化する。
ただし、送信側の装置と受信側の装置との間の距離が離れている場合など、データパケットが相手側に到達するまでに時間がかかる場合は、ACKを受信するまで次のデータパケットを送信しないと、通信速度が低くなる。これを避けるため、ACKを受信するのを待たずに、次のデータパケットを送信する。例えば、ACKを待たずに送信するデータパケットの数の上限をあらかじめ定めておき、その数に達するまでは、ACKを受信しなくても、データパケットを連続して送信する。このため、IPパケットの送受信方向は、規則正しく「送信」「受信」を繰り返すのではなく、「送信」が連続したり、「受信」が連続したりする。
【0063】
一連のIPパケットにおいて、「送信」や「受信」が連続している割合を「パケット連続度」と呼ぶ。
【0064】
一般に、ACKを待たずに送信するデータパケットの数の上限は、送信側の装置が、通信の状況などに基づいて、自動的に最適な値を設定する。
このため、パケット連続度は、送信側の装置と受信側の装置との間の距離など、利用者が任意に設定することのできない要因によって、ある程度定まる。
【0065】
そこで、作成者ドメインごとに、パケット連続度の統計を取っておく。判定対象メールと同じ作成者ドメインについて取った統計と比較して、判定対象メールのパケット連続度が異常値である場合、判定対象メールが詐称メールである可能性がある。
【0066】
このような観点に基づいて、パケット連続度検査部26は、詐称メールの可能性を検査する。パケット連続度検査部26は、検査した結果を出力する。
【0067】
転送経路検査部27は、演算装置95を用いて、判定対象メールが詐称メールである可能性を検査する。転送経路検査部27は、内部ドメイン検査部24や外国経由検査部25やパケット連続度検査部26とは異なる観点から、詐称メールの可能性を検査する。
【0068】
電子メールは、送信者の装置から受信者のメールボックスがあるメールサーバ装置へ直接送られる場合もあるが、いくつかのメールサーバ装置が中継する場合もある。このように、電子メールが送られる経路を「転送経路」と呼ぶ。電子メールの転送経路は、ネットワークの構造や、ドメイン名称サーバ(DNS)装置の設定などによって定まる。ただし、ネットワークの混雑やサーバ装置のダウンなどにより、迂回経路をとる場合もある。
【0069】
そこで、作成者ドメインごとに、転送経路を記録しておく。判定対象メールと同じ作成者ドメインについて記録した転送経路と比較して、判定対象メールの転送経路が異なる場合、判定対象メールが詐称メールである可能性がある。
【0070】
このような観点に基づいて、転送経路検査部27は、詐称メールの可能性を検査する。転送経路検査部27は、検査した結果を出力する。
【0071】
詐称判定部28は、演算装置95を用いて、判定対象メールが詐称メールである可能性があるか否かを判定する。例えば、詐称判定部28は、内部ドメイン検査部24による検査結果と、外国経由検査部25による検査結果と、パケット連続度検査部26による検査結果と、転送経路検査部27による検査結果とを総合して、詐称メールの可能性を判定する。詐称判定部28は、判定した結果を出力する。
【0072】
詐称警告部29は、判定対象メールが詐称メールである可能性があると詐称判定部28が判定した場合、出力装置93を用いて、判定対象メールが詐称メールである可能性があることを警告する。
例えば、詐称警告部29は、メールサーバ装置14に対して、判定対象メールを破棄するよう指示する。しかし、判定対象メールが詐称メールではない可能性もあるので、詐称警告部29は、判定対象メールの宛先である利用者宛の電子メールを、判定対象メールの代わりに生成する。詐称警告部29が生成する電子メールは、例えば、判定対象メールが詐称メールである可能性がある旨の警告文を、判定対象メールの情報に付加したものである。
また、例えば、詐称警告部29は、詐称メールの可能性があると詐称判定部28が判定した判定対象メールに関する情報をログに記録する。詐称警告部29は、例えば、月に一度など定期的に、あるいは、管理者からの要求に基づいて不定期に、記録したログの内容をレポートとして出力する。
【0073】
なお、詐称警告部29は、判定対象メールに添付ファイルまたはリンク(添付URL)が含まれるか否かを判定し、添付ファイルまたはリンクが含まれる場合のみ、警告をする構成であってもよい。
上述したように、標的型サイバー攻撃の第一段階で送付される電子メールは、端末装置12をコンピュータウィルスに感染させることを目的としている。詐称警告部29が警告をするのは、利用者が添付ファイルやリンクを開いて端末装置12がコンピュータウィルスに感染するのを防ぐためである。したがって、たとえ詐称メールであっても、添付ファイルやリンクが含まれていなければ、警告をする必要はない。
【0074】
ただし、内部ドメイン検査部24、外国経由検査部25、パケット連続度検査部26及び転送経路検査部27は、添付ファイルが含まれていない電子メールであっても、メール通信取得部21が取得した通信にかかるすべての電子メールを、判定対象メールとして検査することが望ましい。これは、詐称メールを見つけるためではなく、詐称メールでない電子メールの傾向を学習するためである。
【0075】
図5は、この実施の形態における詐称判定部28の詳細な機能ブロックの一例を示す図である。
【0076】
詐称判定部28は、例えば、詐称評価値算出部281と、詐称評価閾値記憶部282と、詐称評価値判定部283とを有する。
【0077】
詐称評価値算出部281は、演算装置95を用いて、内部ドメイン検査部24による検査結果と、外国経由検査部25による検査結果と、パケット連続度検査部26による検査結果と、転送経路検査部27による検査結果とに基づいて、詐称評価値を算出する。詐称評価値は、例えば0以上の整数である。詐称評価値は、数値が大きいほど、判定対象メールが詐称メールである可能性が高いことを表わす。
例えば、内部ドメイン検査部24、外国経由検査部25、パケット連続度検査部26及び転送経路検査部27は、検査結果を表わすスコアを出力する。スコアは、例えば、0以上4以下の整数である。スコアは、数値が大きいほど、詐称メールである可能性が高いことを表わす。
詐称評価値算出部281は、内部ドメイン検査部24、外国経由検査部25、パケット連続度検査部26及び転送経路検査部27が出力したスコアを入力する。詐称評価値算出部281は、入力したスコアを合計した値を算出して、詐称評価値とする。
【0078】
詐称評価閾値記憶部282は、記憶装置94を用いて、あらかじめ設定された詐称評価閾値を記憶している。詐称評価閾値は、詐称評価値判定部283が詐称メールの可能性を判定する基準となる閾値である。詐称評価閾値は、例えば3である。
【0079】
詐称評価値判定部283は、演算装置95を用いて、詐称評価値算出部281が算出した詐称評価値と、詐称評価閾値記憶部282が記憶した詐称評価閾値とに基づいて、判定対象メールが詐称メールである可能性があるか否かを判定する。詐称評価値判定部283は、詐称評価値が詐称評価閾値より大きい場合に、判定対象メールが詐称メールである可能性があると判定する。
【0080】
内部ドメイン検査部24、外国経由検査部25、パケット連続度検査部26及び転送経路検査部27が出力したスコアが、詐称評価閾値より大きい場合、他の観点からの検査結果にかかわらず、詐称評価値判定部283は、判定対象メールが詐称メールである可能性があると判定する。
内部ドメイン検査部24、外国経由検査部25、パケット連続度検査部26及び転送経路検査部27が出力したスコアが、0より大きく、かつ、詐称評価閾値以下である場合、詐称評価値判定部283は、その観点単独では、判定対象メールが詐称メールである可能性があると判定しない。しかし、他の観点と総合した結果、詐称評価値が詐称評価閾値より大きくなれば、詐称評価値判定部283は、判定対象メールが詐称メールである可能性があると判定する。
【0081】
このように、複数の観点からの検査結果を総合して、判定対象メールが詐称メールである可能性があるか否かを判定することにより、より的確な判定をすることができる。
【0082】
なお、詐称メール検出装置20は、上述した4つの観点のすべてについて検査する必要はない。詐称メール検出装置20は、4つの観点のうちの1つ、2つ、あるいは3つの観点について検査を行い、その結果を総合して、判定対象メールが詐称メールである可能性があるか否かを判定する構成であってもよい。しかし、検査する観点が多いほうが的確な判定ができるので望ましい。
【0083】
また、上述した4つの観点に限らず、他の観点に基づく検査を行い、その結果も総合して、判定対象メールが詐称メールであるか否かを判定する構成であってもよい。そうすれば、更に的確な判定をすることができる。
【0084】
例えば、詐称メール検出装置20は、更に、送信者ポリシフレームワーク(SPF)検査部を有する構成であってもよい。SPF検査部は、例えば、SMTPにおける「MAIL」コマンドのパラメータ「FROM:」(「MAIL FROM:」)から、判定対象メールの送信者のメールアドレスを取得する。SPF検査部は、取得したメールアドレスから、そのメールアドレスが所属するドメインを取得する。また、SPF検査部は、判定対象メールの送信元のIPアドレスを取得する。SPF検査部は、取得したドメインのDNS装置に対して、取得した送信元のIPアドレスにそのドメインを使う権限があるか否かを問い合わせる。SPF検査部は、問い合わせの結果に基づいて、判定対象メールが詐称メールである可能性を検査する。例えば、問い合わせの結果が「None」または「Pass」であれば、SPF検査部は、スコア「0」を出力する。問い合わせの結果が「Neutral」であれば、SPF検査部は、スコア「2」を出力する。問い合わせの結果が「SoftFail」または「Fail」であれば、SPF検査部は、スコア「4」を出力する。
【0085】
このように、更にSPF検査を組み合わせることにより、更に的確な判定をすることができる。
【0086】
メール通信記憶部22は、所定の期間内に転送された電子メールにかかる通信に関する情報だけを記憶する構成であってもよい。例えば、メール通信記憶部22は、記憶している情報のうち、メール通信取得部21がその通信を取得した時刻から所定の期間(例えば1年)経過した情報を消去する。これにより、メール通信記憶部22が使用する記憶装置94の記憶容量を減らすことができる。
【0087】
また、メール通信記憶部22は、所定の数の電子メールにかかる通信に関する情報だけを記憶する構成であってもよい。例えば、メール通信記憶部22は、メール通信取得部21が新しい電子メールにかかる通信を取得した際、情報を記憶している電子メールの数が所定の数(例えば200万通)に達している場合、古い電子メール1通にかかる情報を消去する。これにより、メール通信記憶部22が使用する記憶装置94の記憶容量を減らすことができる。
なお、情報を消去する電子メールとして、メール通信記憶部22は、情報を記憶している電子メールのなかで一番古いものを選択する構成であってもよいし、次のようにして選択する構成であってもよい。
【0088】
例えば、メール通信記憶部22は、新しく通信を取得した電子メールと同じ作成者ドメインについて情報を記憶している電子メールの数が所定の数(例えば1万通)に達している場合、新しく通信を取得した電子メールと同じ作成者ドメインについて情報を記憶している電子メールのなかから一番古いものを選択する。新しく通信を取得した電子メールと同じ作成者ドメインについて情報を記憶している電子メールの数が所定の数(例えば1万通)に達していない場合、情報を記憶している電子メールの作成者ドメインのなかから、作成者ドメインを1つ選択し、選択した作成者ドメインについて情報を記憶している電子メールのなかから一番古いものを選択する。
ここで、メール通信記憶部22は、例えば、選択する作成者ドメインが偏らないようにする。例えば、メール通信記憶部22は、情報を記憶している電子メールの数が所定の数(例えば10通)以上ある作成者ドメインのなかで、情報を記憶している電子メールの数が一番多い作成者ドメインを選択する。ただし、メール通信記憶部22は、選択した作成者ドメインを記憶しておき、次回は、選択したことのない作成者ドメインのなかから、作成者ドメインを選択する。したがって、二回目は、例えば、情報を記憶している電子メールの数が二番目に多い作成者ドメインが選択され、三回目は、例えば、情報を記憶している電子メールの数が三番目に多い作成者ドメインが選択される。情報を記憶している電子メールの数が所定の数(例えば10通)以上ある作成者ドメインがすべて選択済になった場合、メール通信記憶部22は、記憶している選択済の作成者ドメインを消去し、再び、情報を記憶している電子メールの数が一番多い作成者ドメインを選択する。これにより、それぞれの作成者ドメインから、情報を消去する電子メールを均等に選択することができる。
【0089】
このようにして、情報を消去する電子メールを選択することにより、メール通信記憶部22が情報を記憶している電子メールの作成者ドメインが適度にばらつく。上述したように、パケット連続度検査部26は、作成者ドメインごとに統計を取り、転送経路検査部27は、作成者ドメインごとに転送経路を記録するなど、詐称メールの検査には、作成者ドメインが深くかかわる。メール通信記憶部22が情報を記憶している電子メールの作成者ドメインが適度にばらついていることにより、詐称メールの検査の精度を高くすることができる。
【0090】
また、内部ドメイン検査部24や外国経由検査部25などは、メール通信取得部が過去に取得した通信についてメール通信記憶部22が記憶した情報に基づいて、判定対象メールが詐称メールであるか否かを判定する構成であってもよい。
【0091】
これにより、判定対象メールが詐称メールであるか否かの判定精度を高くすることができる。
【0092】
しかし、システム導入時には、過去に取得した通信が存在しないので、判定精度を高くすることができない。
そこで、メール通信記憶部22は、あらかじめダミー通信についての情報を記憶しておく構成であってもよい。
ダミー通信とは、メール通信取得部21が実際に取得した通信ではない架空の通信のことである。ダミー通信についての情報をメール通信記憶部22が記憶していることにより、実際には転送されていないが、転送されたことになっている電子メールのことを「ダミーメール」と呼ぶ。例えば、メール通信記憶部22は、ダミーメールが所定の数存在することを表わすダミー通信についての情報を記憶する。メール通信記憶部22が記憶した情報によって表わされるダミーメールにかかるIPパケットの取得日時は、例えば、サイバー攻撃検出システム16の稼働開始時(システム導入時)である。
【0093】
これにより、システム導入当初であっても、判定対象メールが詐称メールであるか否かの判定精度を高くすることができる。
【0094】
以上のようにして、詐称メール検出装置20が詐称メールを検出して警告することにより、端末装置12がコンピュータウィルスに感染するのを防ぐ。これにより、標的型サイバー攻撃による秘密情報の漏洩を防ぐことができる。
【0095】
また、不正通信検出装置30が不正通信を検出して警告することにより、仮に、端末装置12がコンピュータウィルスに感染した場合でも、コンピュータウィルスを早期に発見することができる。これにより、標的型サイバー攻撃による秘密情報の漏洩を防ぐことができる。
【0096】
以上説明したサイバー攻撃検出システム(16)は、詐称メール検出装置(20)と、不正通信検出装置(30)とを有する。
詐称メール検出装置は、ネットワークを介した通信によって転送される電子メールのうちから、作成者を詐称した詐称メールを検出する。
不正通信検出装置は、ネットワークを介した通信のうちから、不正通信の可能性がある通信を検出する。
【0097】
これにより、標的型サイバー攻撃による秘密情報の漏洩を防ぐことができる。
【0098】
実施の形態2.
実施の形態2について、
図6〜
図10を用いて説明する。
この実施の形態では、実施の形態1で説明した詐称メール検出装置20のうち、内部ドメイン検査部24の構成例について、詳しく説明する。
なお、実施の形態1と共通する構成には、同一の符号を付し、説明を省略する場合がある。
【0099】
図6は、本実施の形態においてメール通信取得部21が取得する通信の一例を示す図である。
図7は、本実施の形態に係る内部ドメイン検査部24の詳細な機能ブロックの一例を示す図である。
図6及び
図7を用いて、本実施の形態に係る内部ドメイン検査部24の機能構成について説明する。
【0100】
メール通信取得部21は、SMTPプロトコルによる通信を取得する。
図6に示すように、SMTPプロトコルによる通信は、SMTPプロトコル情報240aから構成される。“DATA”コマンドの後には、電子メール240が設定される。電子メール240は、メールヘッダ240b、メッセージボディ240cから構成される。
【0101】
SMTPプロトコル情報240aには、“MAIL”コマンドの引数に送信者メールアドレス249aが設定されている。送信者メールアドレス249aのうち、「@」より後ろの部分の文字列「xxyyzzpp.or.jp」は送信者ドメイン249bである。送信者ドメイン249bは、送信者メールアドレス249aが所属するドメインのことである。
【0102】
電子メール240のメールヘッダ240bには、“From”フィールドに作成者メールアドレス248aが設定されている。作成者メールアドレス248aのうち、「@」より後ろの部分の文字列「aaabbbcc.or.jp」は作成者ドメイン248bである。作成者ドメイン248bは、作成者メールアドレス248aが所属するドメインのことである。
電子メール240のメッセージボディ240cには、メッセージテキストが設定される。
【0103】
図7に示すように、内部ドメイン検査部24は、送信者ドメイン取得部241、内部作成計数部242、内部ドメイン詐称スコア算出部243を備える。また、内部ドメイン検査部24は、ドメイン別メール数一覧2421、除外判定値2422、計数時間2423、対象メール数2424、除外ドメイン一覧2425を記憶装置94に記憶する。
【0104】
作成者ドメイン取得部23は、メール通信取得部21が取得した判定対象メールである電子メール240の作成者ドメイン248bを取得する。
【0105】
作成者ドメイン取得部23は、メール通信取得部21が出力したメッセージを解析して、メールサーバ装置14が受信した電子メール240のメールヘッダ240bを取得する。作成者ドメイン取得部23は、取得したメールヘッダ240bの「From」フィールドに記載された作成者メールアドレス248aを取得する。
作成者ドメイン取得部23は、取得したメールアドレスのうち、「@」より後ろの部分の文字列「aaabbbcc.or.jp」を作成者ドメイン248bとして取得する。
作成者ドメイン取得部23は、取得した作成者ドメイン248bを内部ドメイン検査部24に出力する。
【0106】
送信者ドメイン取得部241は、作成者ドメイン取得部23から判定対象メールの作成者ドメイン248bを入力する。
送信者ドメイン取得部241は、対象判定メールの作成者ドメイン248bが所定の内部ドメイン、すなわち、ローカルネットワークシステム10により付与された内部ドメインである場合は、メール通信記憶部22に記憶されている判定対象メールである電子メール240の情報から、送信者ドメイン249bを取得する。
【0107】
送信者ドメイン取得部241は、対象判定メールの作成者ドメイン248bが内部ドメインである場合、判定対象メールである電子メール240を解析して、判定対象メールである電子メール240のSMTPプロトコル情報240aを取得する。送信者ドメイン取得部241は、取得したSMTPプロトコル情報240aの“MAIL”コマンドの引数に記載された送信者メールアドレス249aを取得する。
送信者ドメイン取得部241は、取得した送信者メールアドレス249aのうち、「@」より後ろの部分の文字列「xxyyzzpp.or.jp」を送信者ドメイン249bとして取得する。
送信者ドメイン取得部241は、取得した送信者ドメイン249bを出力する。
【0108】
対象判定メールの作成者ドメイン248bが内部ドメイン、すなわち、ローカルネットワークシステム10のなかの端末装置12に割り当てられたメールアドレスが所属するドメインである場合は、対象判定メールが詐称メールである可能性がある。
これは、通常、内部ドメインのメールアドレスからの電子メールが外部から届くことがないと考えられるからである。
【0109】
しかし、送信者(外部のメールサーバ装置82)が、例えば、大手のメーリングリストサービス業者(以下「大手ML」と呼ぶ。)などの場合には、受信者のアドレスをメールヘッダの「From」フィールドに設定して配信する場合がある。メーリングリスト(以下「ML」と呼ぶ。)は、参加者の誰かが送信したメールを、参加者全員に送信するサービスである。MLでは、送信者のメールアドレスを他の参加者に知られないようにするため、「From」フィールドを改変して、MLのアドレスや受信者のアドレスにする場合がある。
【0110】
このようなドメイン(大手ML等)から送られてくるメールは、基本的にすべて「From」フィールドに「受信者メールアドレス」が記載されている。したがって、多数の内部作成メールが送られてくることになる。
これに対して、標的型サイバー攻撃のメールは、基本的に、1通か、多くても数通程度である。したがって、そのドメインから送信された内部作成メールの数で、攻撃メールか否かを判定できる。
【0111】
内部ドメイン検査部24では、判定対象メールの作成者ドメイン248bが内部ドメインであっても、判定対象メールの送信者ドメイン249bから過去に所定の閾値以上の電子メール240の受信がある場合は、その送信者ドメイン249bは信頼できるドメイン(以下、除外ドメインという)であると判定する。
【0112】
内部ドメイン検査部24は、判定対象メールの送信者ドメイン249bが除外ドメインであるか否かを判定するために、過去の判定対象メールの送信者ドメイン249bからのメールの受信数を所定の閾値と比較する。内部ドメイン検査部24は、この所定の閾値を除外判定値2422として記憶装置94に予め記憶している。除外判定値2422は、例えば、詐称メール検出装置20のシステム導入時の初期設定の際に設定される。
【0113】
内部作成計数部242は、判定対象メールと送信者ドメイン249bが同じ1以上の電子メールのうち、作成者ドメイン248bが内部ドメインである内部作成メールの数を計数する。内部作成計数部242は、メール通信記憶部22に記憶された電子メールの情報を検索し、送信者ドメイン249bが判定対象メールの送信者ドメイン249bと同一であり、かつ、作成者ドメイン248bが内部ドメインである内部作成メールを計数する。
【0114】
図8は、本実施の形態に係るドメイン別メール数一覧2421の構成を示す図である。
図8に示すように、ドメイン別メール数一覧2421には、ドメイン名と、当該ドメイン名について内部作成計数部242が計数した内部作成メール数とが対応付けられて記憶されている。
内部作成計数部242は、計数した内部作成メール数を、判定対象メールの送信者ドメイン249bに対応付けてドメイン別メール数一覧2421に記憶する。
【0115】
また、内部作成計数部242は、メール通信記憶部22に記憶された1以上の電子メールのうち、所定の期間内に転送された内部作成メールの数だけを計数する。この所定の期間は、現時点から過去に計数時間2423遡った時点から現時点までの期間のことである。計数時間2423は、例えば、1週間、1ヶ月、3ヶ月、半年、1年等、予め記憶装置94に記憶されている。
【0116】
また、内部作成計数部242は、転送時刻が新しい順に所定の数以内の電子メールのなかで、判定対象メールと送信者ドメイン249bが同じ内部作成メールの数を計数する構成としてもよい。内部作成計数部242は、この所定の数を対象メール数2424として記憶装置94に記憶する。例えば、内部作成計数部242は、転送時刻が新しい順に対象メール数2424以内の電子メールのなかで、判定対象メールと送信者ドメイン249bが同じ内部作成メールの数を計数する。
【0117】
内部ドメイン詐称スコア算出部243は、判定対象メールについて内部ドメイン詐称スコア246を算出する。
内部ドメイン詐称スコア246とは、判定対象メールの作成者ドメインが内部ドメインに詐称された詐称メールである度合いを示す値である。
【0118】
内部ドメイン詐称スコア算出部243は、判定対象メールの作成者ドメイン248bが内部ドメインでない場合は、詐称メールの可能性が低いことを表わす値(例えば「0」)を、内部ドメイン詐称スコア246に設定する。
【0119】
内部ドメイン詐称スコア算出部243は、判定対象メールの作成者ドメイン248bが内部ドメインであって、判定対象メールの送信者ドメイン249bに対応する内部作成メール数が除外判定値2422以上である場合は、判定対象メールが詐称メールである可能性が低いことを表わす値(例えば「0」)を、内部ドメイン詐称スコア246に設定する。
【0120】
内部ドメイン詐称スコア算出部243は、判定対象メールの作成者ドメイン248bが内部ドメインであって、判定対象メールの送信者ドメイン249bに対応する内部作成メール数が除外判定値2422より少ない場合は、判定対象メールは詐称メールの可能性が高いことを表わす値(例えば「4」)を、内部ドメイン詐称スコア246に設定する。
【0121】
内部ドメイン詐称スコア算出部243が設定する内部ドメイン詐称スコア246の値は、「0」、「4」に限られず、システム導入時等に適宜設定される値でよい。内部ドメイン詐称スコア算出部243は、算出した内部ドメイン詐称スコア246を内部ドメイン検査部24が出力するスコアとして詐称判定部28に出力する。
【0122】
詐称判定部28は、内部ドメイン検査部24が出力した内部ドメイン詐称スコア246に基づいて、判定対象メールが詐称メールであるか否かを判定する。
【0123】
なお、内部作成計数部242は、所定の時期に所定の内部作成除外ドメインから送信された内部作成メールが所定の数あるものとして、内部作成メールの数を計数する。内部作成除外ドメインとは、上述した大手MLのように、内部作成メールを送信してくることがあらかじめわかっているため、そのドメインから送信された電子メールが内部作成メールであっても、詐称メールではないと判定してよいドメインのことである。
【0124】
内部ドメイン検査部24は、内部作成除外ドメインの一覧を、除外ドメイン一覧2425として記憶装置94にあらかじめ記憶しておく。
内部ドメイン検査部24は、システム導入時から計数時間2423の期間において、除外ドメイン一覧2425のなかに、送信者ドメイン249bが含まれている場合、計数した内部作成メール数に所定の数を加算する。この所定の数は、例えば、除外判定値2422である。
内部ドメイン検査部24は、所定の数を加算した内部作成メール数を、判定対象メールの送信者ドメイン249bに対応付けてドメイン別メール数一覧2421に記憶する。
【0125】
システム導入当初の段階においては、内部作成メール数が除外判定値2422に達しない。内部作成除外ドメインから送信された内部作成メール数に所定の数を加算することにより、内部作成メール数が除外判定値2422以上となるので、内部ドメイン詐称スコア算出部243は、判定対象メールが詐称メールである可能性が低いと判定する。
【0126】
これにより、内部作成メールを送信してくることがあらかじめわかっているドメインから内部作成メールが送信された場合に、その電子メールを詐称メールであると判定するのを防ぐことができる。
【0127】
なお、所定の数を加算するのを、例えば、システム導入時から計数時間2423の期間が経過するまでに限るのは、その間に、メール通信記憶部22に内部作成メールが蓄積され、内部作成メール数が除外判定値2422に達すると考えられるからである。
逆に、計数時間2423が経過してもまだ内部作成メール数が除外判定値2422に達していない場合は、例えばMLの設定が変更になり、そのドメインから内部作成メールが送信されなくなったものと考えられる。
その場合、そのドメインからの電子メールを除外する必要がなくなるため、他のドメインからの電子メールと同様、実際の内部作成メール数に基づいて、詐称メールか否かを判定する。
【0128】
あるいは、内部ドメイン検査部24において、内部ドメイン詐称スコア算出部243の処理を詐称判定部28が実行するものとしてもよい。この場合は、詐称判定部28が、ドメイン別メール数一覧2421と除外判定値2422に基づいて、判定対象メールの内部ドメイン詐称スコア246を算出する。
例えば、詐称判定部28が備える詐称評価値算出部281は、判定対象メールについてスコアを算出し、判定対象メールの送信者ドメイン249bに対応する内部作成メール数が除外判定値2422より小さい場合に、スコアに所定の値(内部ドメイン詐称スコア246「4」)を加算する。
【0129】
図9は、本実施の形態に係る内部ドメイン検査部24の内部ドメイン検査方法を示すフローチャートである。
図9を用いて、本実施の形態に係る内部ドメイン検査部24の内部ドメイン検査方法について説明する。
【0130】
S2410において、送信者ドメイン取得部241は、判定対象メールの作成者ドメイン248bを作成者ドメイン取得部23から入力する。
内部ドメイン検査部24は、予め、内部ドメインを記憶装置94に記憶している。
S2420において、送信者ドメイン取得部241は、入力した作成者ドメイン248bと記憶装置94に記憶している内部ドメインとを処理装置により比較して、判定対象メールの作成者ドメイン248bが内部ドメインであるか否かを判定する。
【0131】
判定対象メールの作成者ドメイン248bが内部ドメインであると判定された場合(S2420においてYES)は、処理はS2430に進む。判定対象メールの作成者ドメイン248bが内部ドメインでないと判定された場合(S2420においてNO)は、処理はS2450に進む。
【0132】
S2430において、送信者ドメイン取得部241は、メール通信記憶部22に記憶されている判定対象メールの情報から、判定対象メールの送信者ドメイン249bを取得し、内部作成計数部242に出力する。
【0133】
S2440において、内部作成計数部242は、入力した判定対象メールの送信者ドメイン249bと、計数時間2423とに基づいて、メール通信記憶部22に記憶されている電子メールを計数し、ドメイン別の内部作成メール数をドメイン別メール数一覧2421に設定する。
ドメイン別メール数一覧2421には、ドメイン毎の内部作成メール数が設定されている。内部ドメイン検査部24では、内部作成メール数が除外判定値2422以上になったドメインを、詐称メールであるか否かの判定から除外する。内部作成計数部242によるドメイン別メール数一覧2421への設定処理を「除外ドメイン学習処理」と呼ぶ。
【0134】
S2450において、内部ドメイン詐称スコア算出部243は、判定対象メールについて内部ドメイン詐称スコア246を算出する。
【0135】
内部ドメイン詐称スコア算出部243は、判定対象メールの作成者ドメイン248bが内部ドメインでない場合、詐称メールの可能性が低いので、内部ドメイン詐称スコア246に「0」を設定する。
【0136】
内部ドメイン詐称スコア算出部243は、判定対象メールの作成者ドメイン248bが内部ドメインである場合、ドメイン別メール数一覧2421の判定対象メールの送信者ドメイン249bに対応する内部作成メール数を取得する。
内部ドメイン詐称スコア算出部243は、取得した内部作成メール数が除外判定値2422以上である場合、内部ドメイン詐称スコア246に「0」を設定する。
内部ドメイン詐称スコア算出部243は、取得した内部作成メール数が除外判定値2422より小さい値である場合、内部ドメイン詐称スコア246に「4」を設定する。
【0137】
内部ドメイン詐称スコア算出部243は、内部ドメイン詐称スコア246を内部ドメイン検査部24が出力するスコアとして詐称判定部28に出力する。
【0138】
詐称判定部28は、内部ドメイン検査部24が出力した内部ドメイン詐称スコア246に基づいて、判定対象メールが詐称メールであるか否かを判定する。
【0139】
図10は、本実施の形態に係る内部作成計数部242による除外ドメイン学習処理を示すフローチャートである。
【0140】
S2441において、内部作成計数部242は、送信者ドメイン取得部241から判定対象メールの送信者ドメイン249bを入力する。
S2442において、内部作成計数部242は、記憶装置94に記憶されている計数時間2423を取得する。
【0141】
S2443において、内部作成計数部242は、判定対象メールの送信者ドメイン249bと計数時間2423とに基づいて、メール通信記憶部22に記憶されている電子メールから送信者ドメインが判定対象メールの送信者ドメイン249bであり、かつ、作成者ドメインが内部ドメインである内部作成メールを処理装置により計数する。
【0142】
特に、内部作成計数部242は、メール通信記憶部22に記憶されている電子メールのうち、現時点から計数時間2423遡った時点から現時点までの期間に取得された電子メールについて、送信者ドメインが判定対象メールの送信者ドメイン249bであり、かつ、作成者ドメインが内部ドメインである内部作成メールを処理装置により計数する。
例えば、現時点が2012年9月10日であり、計数時間2423が「3ヶ月」であるとすると、内部作成計数部242は、メール通信記憶部22に記憶されている電子メールのうち、過去3ヶ月分の電子メール(2012年6月10日から計数時間2423遡った時点から現時点までの期間に取得された電子メール)について、送信者ドメインが判定対象メールの送信者ドメイン249bであり、かつ、作成者ドメインが内部ドメインである内部作成メールを処理装置により計数する。
【0143】
内部ドメイン検査部24は、除外すべきドメインとして予め判明している除外ドメイン一覧2425を記憶装置94に記憶している。
S2444において、内部作成計数部242は、判定対象メールの送信者ドメイン249bが除外ドメイン一覧2425に含まれているが否かを処理装置により判定する。判定対象メールの送信者ドメイン249bが除外ドメイン一覧2425に含まれていないと判定した場合(S2444)は、処理はS2446に進む。
【0144】
判定対象メールの送信者ドメイン249bが除外ドメイン一覧2425に含まれている判定した場合は、内部作成計数部242は、現時点が所定の時期であるか否かを処理装置により判定する。所定の時期とは、例えば、システム導入時から計数時間2423以内の時期である。内部作成計数部242は、現時点が所定の時期でないと判定した場合(S2444でNO)には、処理はS2446に進む。
【0145】
S2446において、内部作成計数部242は、ドメイン別メール数一覧2421のドメイン名のうち、判定対象メールの送信者ドメイン249bに対応するドメイン名の内部作成メール数の欄に、S2443において算出した内部作成メール数を設定する。
【0146】
現時点が所定の時期であると判定した場合(S2444でYES)には、処理はS2445に進む。
【0147】
S2445において、内部作成計数部242は、S2443で計数した判定対象メールの送信者ドメインの内部作成メール数に、所定の数(例えば、除外判定値2422)を処理装置により加算する。内部作成計数部242は、ドメイン別メール数一覧2421のドメイン名のうち、判定対象メールの送信者ドメイン249bに対応するドメイン名の内部作成メール数の欄に、算出した内部作成メール数を設定する。
【0148】
例えば、
図8において、ドメイン名“ABC.com”が、除外ドメイン一覧2425に含まれているものとする。判定対象メールの送信者ドメイン249bが“ABC.com”であり、S2443において計数した内部作成メール数が「3」であったとする。さらに、現時点が「2012年9月10日」、計数時間2423が「3ヶ月」、除外判定値2422が「10通」であるとする。そしてシステム導入時が「2012年8月10日」であったとする。
【0149】
このとき、内部作成計数部242は、S2444において、送信者ドメイン249b“ABC.com”が除外ドメイン一覧2425に含まれており、かつ、現時点「2012年9月10日」がシステム導入時「2012年8月10日」から計数時間2423「3ヶ月」以内であり、所定の時期であると判定する。したがって、内部作成計数部242は、S2445において、S2443で計数した内部作成メール数「3」に、除外判定値2422「10」を処理装置により加算し、ドメイン名“ABC.com”に対応する内部作成メール数に「13」を設定する。
【0150】
S2446において、内部作成計数部242は、ドメイン別メール数一覧2421のドメイン名のうち、判定対象メールの送信者ドメイン249bに対応するドメイン名の内部作成メール数の欄に、算出した内部作成メール数を設定する。
【0151】
以上で、除外ドメイン学習処理の説明を終わる。
【0152】
なお、システム導入当初において、内部作成メールを送信してくることがあらかじめわかっているドメインから送信された電子メールを詐称メールとして判定しないための構成として、内部作成計数部242が計数した内部作成メール数の所定の数を加算する構成について説明したが、他の構成であってもよい。
【0153】
例えば、メール通信記憶部22は、ダミーメールについての情報をあらかじめ記憶しておく。
この場合におけるダミーメールの取得日時は、例えば、システム導入時である。ダミーメールの送信者ドメイン249bは、上述した内部作成除外ドメインである。ダミーメールの作成者ドメイン248bは、内部ドメインである。
メール通信記憶部22は、1つの内部作成除外ドメインにつき所定の数(例えば除外判定値2422)のダミーメールについての情報を記憶しておく。
【0154】
内部作成計数部242は、実際に取得した電子メールのほかにダミーメールも含めた電子メールのなかで、取得日時からの経過時間が計数時間2423以下である内部作成メールの数を計数する。
したがって、システム導入時から計数時間2423が経過するまでの間において、内部作成除外ドメインについて内部作成計数部242が計数する内部作成メール数には、ダミーメールの数が上乗せされる。
しかし、システム導入時から計数時間2423が経過したのちは、内部作成除外ドメインについて内部作成計数部242が計数する内部作成メール数に、ダミーメールの数は上乗せされない。内部作成計数部242は、実際の内部作成メールの数を計数する。
【0155】
このような構成としても、システム導入当初において、内部作成メールを送信してくることがあらかじめわかっているドメインから送信された電子メールを詐称メールとして判定しないようにすることができる。
【0156】
なお、内部ドメイン検査方法において、除外ドメイン学習処理を実行したのちに、内部ドメイン詐称スコアを算出する構成について説明したが、内部ドメイン詐称スコアを算出したのちに、除外ドメイン学習処理を実行する構成であってもよい。
【0157】
除外ドメイン学習処理を、内部ドメイン詐称スコアの算出に先だって実行する構成の場合、常に最新の学習結果に基づいてスコアを算出するので、判定精度を高くすることができる。
【0158】
逆に、除外ドメイン学習処理を、内部ドメイン詐称スコアの算出後に実行する構成の場合、スコアを算出するまでにかかる時間を短縮することができる。これにより、判定対象メールが詐称メールであると判定した場合における警告が出力されるまでにかかる時間を短縮できるので、警告が発せられる前に詐称メールが開かれてしまうのを防ぐことができる。
【0159】
以上説明した詐称メール検出装置(20)は、
ネットワークを介した通信のうち、メール転送プロトコルである通信を取得するメール通信取得部(21)と、
上記メール通信取得部が取得した通信によって転送される電子メールの作成者フィールドに記載された作成者が属する作成者ドメインを取得する作成者ドメイン取得部(23)と、
上記作成者ドメイン取得部が取得した作成者ドメインが所定の内部ドメインである場合に、上記電子メールの送信者が属する送信者ドメインを取得する送信者ドメイン取得部(241)と、
判定対象メールと送信者ドメインが同じ1以上の電子メールのうち、作成者ドメインが上記内部ドメインである内部作成メールの数を計数する内部作成計数部(242)と、
上記内部作成計数部が計数した内部作成メールの数が所定の内部作成閾値より小さい場合に、上記判定対象メールが作成者を詐称した詐称メールである可能性があると判定する詐称判定部(28,内部ドメイン詐称スコア算出部243)とを有する。
【0160】
上記内部作成計数部(242)は、上記1以上の電子メールのうち、所定の期間内に転送された上記内部作成メールの数だけを計数する。
【0161】
上記内部作成計数部(242)は、転送時刻が新しい順に所定の数以内の電子メールのなかで、上記判定対象メールと送信者ドメインが同じ内部作成メールの数を計数する。
【0162】
上記内部作成計数部(242)は、所定の時期に所定の内部作成除外ドメインから送信された内部作成メールが所定の数あるものとして、上記内部作成メールの数を計数する。
【0163】
上記詐称判定部(28,243)は、
判定対象メールについて詐称評価値を算出し、上記内部作成計数部が計数した内部作成メールの数が所定の内部作成閾値より小さい場合に、上記詐称評価値に所定の値を加算する詐称評価値算出部(281,243)と、
上記詐称評価値算出部が算出した詐称評価値が所定の詐称評価閾値より大きい場合に、上記判定対象メールが作成者を詐称した詐称メールである可能性があると判定する詐称評価値判定部(283)とを有する。
【0164】
以上のように、本実施の形態に係る詐称メール検出装置の内部ドメイン検査部によれば、除外ドメインを学習しつつ、詐称メールを判定することができるので、より的確な詐称メールの判定が可能となる。
【0165】
また、本実施の形態に係る詐称メール検出装置の内部ドメイン検査部によれば、内部作成計数部は、現時点から計数時間遡った時点から現時点までに転送された内部作成メールの数だけを計数するので、最新の電子メールの動向を詐称メールの判定に反映させることができるので、より的確な詐称メールの判定が可能となる。
【0166】
また、本実施の形態に係る詐称メール検出装置の内部ドメイン検査部によれば、内部作成計数部は、転送時刻が新しい順に所定の数以内の電子メールのなかで、判定対象メールと送信者ドメインが同じ内部作成メールの数を計数するので、最新の電子メールの動向を詐称メールの判定に反映させることができるので、より的確な詐称メールの判定が可能となる。
【0167】
また、本実施の形態に係る詐称メール検出装置の内部ドメイン検査部によれば、内部作成計数部は、所定の時期に所定の内部作成除外ドメインから送信された内部作成メールが所定の数あるものとして、内部作成メールの数を計数するので、予め除外ドメインと判明しているドメインからの電子メールを詐称メールと判定するのを防ぐことができる。
【0168】
実施の形態3.
実施の形態3について、
図11〜
図16を用いて説明する。
この実施の形態では、実施の形態1で説明した詐称メール検出装置20のうち、外国経由検査部25の構成例について、詳しく説明する。
なお、実施の形態1または実施の形態2と共通する構成には、同一の符号を付し、説明を省略する場合がある。
【0169】
図11は、実施の形態3における外国経由検査部25の構成図である。
実施の形態3における外国経由検査部25の構成について、
図11に基づいて説明する。
【0170】
外国経由検査部25は、外国経由判定部251、国内信頼ドメイン学習部252、中継装置ドメイン取得部253、中継時刻取得部254、パケット送信元取得部255および外国経由検査スコア決定部259を備える。
【0171】
以下に、外国経由検査部25が備える各構成の概要について説明する。外国経由検査部25が備える各構成の詳細については別途説明する。
外国経由判定部251は、中継装置ドメイン取得部253、中継時刻取得部254またはパケット送信元取得部255によって取得される情報に基づいて、作成国と宛先国とが同じである電子メールが宛先国と異なる外国を経由して通信された外国経由メールであるか否かを判定する。作成国とは、電子メールの作成者のドメインが属する国のことである。宛先国とは、電子メールの宛先ドメインが属する国のことである。
国内信頼ドメイン学習部252(外国経由計数部の一例)は、外国経由判定部251の判定結果に基づいて、電子メールの作成者が属する作成者ドメインのうち電子メールが外国を経由しないで通信される可能性が高い作成者ドメインを国内信頼ドメインとして学習し、国内信頼ドメイン一覧252Aを生成する。
中継装置ドメイン取得部253は、電子メールのヘッダを参照し、電子メールを中継した中継装置(メールサーバ)が属する中継装置ドメインを電子メールのヘッダから取得する。
中継時刻取得部254は、電子メールのヘッダを参照し、電子メールが中継された中継時刻のタイムゾーンを電子メールのヘッダから取得する。
パケット送信元取得部255は、電子メールの少なくとも一部を含んだIPパケットからIPパケットの送信元アドレスを取得する。
外国経由検査スコア決定部259は、外国経由判定部251の判定結果に基づいて、詐称メールであるか否かを判定する対象の電子メール(以下、「判定対象メール」という)が詐称メールである可能性の度合いを表す外国経由検査スコアを算出する。
【0172】
図12、
図13は、実施の形態3における国内信頼ドメイン学習処理を示すフローチャートである。
国内信頼ドメイン一覧252Aを生成する国内信頼ドメイン学習処理について、
図12および
図13に基づいて説明する。
【0173】
外国経由検査部25は、メール通信取得部21が電子メールを取得する毎に、以下に説明する国内信頼ドメイン学習処理を実行する。
【0174】
図12のS2501−1から国内信頼ドメイン学習処理の説明を始める。
【0175】
S2501−1において、外国経由判定部251は、メール通信取得部21によって取得された電子メールの作成国と宛先国とが同じであるか否かを判定する。
電子メールの作成国とは、電子メールを作成した作成者のドメインが属する国のことである。
電子メールの宛先国とは、電子メールの宛先のドメインが属する国のことである。
【0176】
例えば、作成者のメールアドレス「xxx@yyy.co.jp」を構成する文字列のうちアットマークの後ろの文字列「yyy.co.jp」が作成者ドメインを表し、作成者ドメイン「yyy.co.jp」の最後のドット以降にある末尾の文字列「.jp」が作成国を表す。末尾の文字列が「.jp」である場合、作成国は日本である。
例えば、電子メールの宛先アドレス「aaa@bbb.us」を構成する文字列のうちアットマークの後ろの文字列「bbb.us」が宛先ドメインを表し、宛先ドメイン「bbb.us」の末尾の文字列「.us」が宛先国を表す。末尾の文字列が「.us」である場合、宛先国は米国である。
実施の形態の場合、電子メールの宛先国は、ローカルネットワークシステム10のメールサーバ装置14のドメイン(宛先ドメイン)が属する国と同じである。
【0177】
電子メールの作成国と電子メールの宛先国とが同じであるか否かを以下のように判定する。
外国経由判定部251は、電子メールの作成者ドメインを作成者ドメイン取得部23から取得し、取得した作成者ドメインから作成国を表す文字列を抽出する。
外国経由判定部251は、作成国を表す文字列と宛先国を表す文字列とが同じであるか否かを判定する。宛先国を表す文字列は、記憶装置94に予め記憶しておくか、または、電子メールの宛先アドレスから取得する。
【0178】
作成者ドメインの末尾の文字列が「.com」などのように国を表す文字列でない場合、外国経由判定部251は、電子メールの作成国と電子メールの宛先国とが同じであるか否かを以下のように判定する。
外国経由判定部251は、電子メールの作成者ドメインを作成者ドメイン取得部23から取得し、取得した作成者ドメインに対応するIPアドレスをDNSサーバ(図示省略)から取得する。
外国経由判定部251は、DNSサーバから取得したIPアドレスが、宛先国に割り当てられているIPアドレスの範囲に含まれるか否かを判定する。
DNSサーバから取得したIPアドレスが、宛先国に割り当てられているIPアドレスの範囲に含まれる場合、電子メールの作成国と電子メールの宛先国は同じ国である。宛先国に割り当てられているIPアドレスの範囲に関する情報は記憶装置に予め記憶しておく。
宛先ドメインの末尾の文字列が国を表す文字列でない場合も、同様である。あるいは、外国経由判定部251は、あらかじめ宛先国を記憶しておく構成であってもよい。
【0179】
以下、作成国と宛先国とが同じである電子メールを「国内メール」という。
作成国と宛先国とが同じである国内メールは、原則として、国内のメールサーバから送信され、外国のメールサーバを経由しない。したがって、外国のメールサーバを経由した国内メールは、詐称メールである可能性がある。
【0180】
但し、外国のメールサーバを経由した国内メールであっても、詐称メールではない場合がある。
例えば、大手MLなどのメールサーバは、電子メールの作成者メールアドレスに、電子メールの宛先アドレスを設定する場合がある。この場合、作成国と宛先国とが同じになるが、実際の作成者が外国から送信した電子メールであれば、外国のメールサーバを経由する。
あるいは、国内の作成者が、外国のクラウドサービスを利用して送信した電子メールの場合も、作成国と宛先国とが同じになるが、外国のメールサーバを経由する。
したがって、実施の形態3における国内メールの中には、外国のメールサーバを経由していても詐称メールでないものが存在する。
S2501−1の後、S2501−2に進む。
【0181】
S2501−2において、メール通信取得部21によって取得された電子メールが国内メールであると判定された場合(YES)、S2502−1に進む。
また、メール通信取得部21によって取得された電子メールが国内メールでないと判定された場合(NO)、国内信頼ドメイン学習処理は終了する。
【0182】
S2502−1において、外国経由判定部251は、メール通信取得部21によって取得された電子メールが、外国のメールサーバを経由したか否かを判定する。以下、外国のメールサーバを経由した電子メールを「外国経由メール」と呼ぶ。
電子メールが外国経由メールであるか否かの判定方法は、後述する外国経由検査方法のS2520からS2522及びS2530と同様なので、外国経由検査方法についての説明を参照されたい。
S2502−1の後、S2502−2に進む。
【0183】
S2502−2において、外国経由判定部251は、作成者ドメイン取得部23から、電子メールの作成者ドメインを取得する。
S2502−2の後、S2502−3に進む。
【0184】
S2502−3において、外国経由判定部251は、メール通信取得部21によって取得された電子メールの通信日時と、S2502−2で取得した作成者ドメインと、S2502−1で判定した判定結果(以下、「外国経由判定結果」という)とを対応付けてメール通信記憶部22に記憶する。
電子メールの通信日時とは、例えば、メール通信取得部21が電子メールを取得した日時、または電子メールのメールヘッダに含まれる送信日時である。
S2502−3の後、
図13のS2503に進む。
【0185】
S2503において、国内信頼ドメイン学習部252は、メール通信記憶部22に記憶されている外国経由判定結果のうち、S2502で取得された作成者ドメインと同じドメインに対応付けられている外国経由判定結果の数を計数する。ここで、計数した外国経由判定結果の数を「電子メール数」という。
国内信頼ドメイン学習部252は、計数した電子メール数と所定の蓄積閾値(例えば、100個)とを比較する。
電子メール数(外国経由判定結果の数)が蓄積閾値以上である場合(YES)、S2504に進む。
電子メール数が蓄積閾値未満である場合(NO)、国内信頼ドメイン学習処理は終了する。
【0186】
S2504において、国内信頼ドメイン学習部252は、メール通信記憶部22から、S2502−2で取得された作成者ドメインと同じドメインに対応付けられている外国経由判定結果を取得する。
国内信頼ドメイン学習部252は、取得した外国経由判定結果のうち、電子メールが外国経由メールであることを示す外国経由判定結果の数を計数する。ここで、計数した外国判定結果の数を「外国経由メール数」という。
S2504の後、S2505に進む。
【0187】
なお、国内信頼ドメイン学習部252は、電子メールが外国経由メールであることを示す外国経由判定結果のうち、所定期間(例えば、計数する直前の1カ月)の通信日時に対応付けられている外国経由判定結果の数を外国経由メール数として計数してもよい。
また、国内信頼ドメイン学習部252は、通信日時が新しい順に、所定数(例えば、上記蓄積閾値と同じ数)の外国経由判定結果を対象にして外国経由メール数を計数してもよい。
【0188】
S2505において、国内信頼ドメイン学習部252は、S2504で計数した外国経由メール数に基づいて、S2502−2で取得した作成者ドメインが国内信頼ドメインであるか否かを判定する。
国内信頼ドメインとは、外国を経由せずに通信される可能性が高い電子メールを作成する作成者のドメイン(作成者ドメイン)である。
【0189】
例えば、国内信頼ドメイン学習部252は、作成者ドメインが国内信頼ドメインであるか否かを以下の(1)または(2)の判定方法によって判定する。
(1)国内信頼ドメイン学習部252は、外国経由メール数と所定の外国経由閾値(例えば、10通)とを大小比較する。外国経由メール数が所定の外国経由閾値より小さい場合、国内信頼ドメイン学習部252は、作成者ドメインが国内信頼ドメインであると判定する。
(2)国内信頼ドメイン学習部252は、S2504で計数した電子メール数に対する外国経由メール数の割合と所定の外国経由閾値(例えば、1割)とを大小比較する。外国経由メール数の割合が所定の外国経由閾値より小さい場合、国内信頼ドメイン学習部252は、作成者ドメインが国内信頼ドメインであると判定する。
S2505の後、S2506に進む。
【0190】
なお、国内信頼ドメイン学習部252は、上記(1)または(2)以外の方法で、作成者ドメインが国内信頼ドメインであるか否かを判定する構成であってもよい。
例えば、国内信頼ドメイン学習部252は、上記(1)と(2)とを組み合わせて判定する構成であってもよい。
すなわち、外国経由メール数が第一の外国経由閾値より小さく、且つ、外国経由メール数の割合が第二の外国経由閾値より小さい場合に、国内信頼ドメイン学習部252は、作成者ドメインが国内信頼ドメインであると判定する構成であってもよい。
あるいは、外国経由メール数が第一の外国経由閾値より小さいか、または、外国経由メール数の割合が第二の外国経由閾値より小さい場合に、国内信頼ドメイン学習部252は、作成者ドメインが国内信頼ドメインであると判定する構成であってもよい。
【0191】
S2506において、作成者ドメインが国内信頼ドメインであると判定した場合(YES)、S2507に進む。
【0192】
また、作成者ドメインが国内信頼ドメインでないと判定した場合(NO)、国内信頼ドメイン学習処理は終了する。
但し、国内信頼ドメイン学習部252は、国内信頼ドメイン学習処理を終了する前に、以下の処理を行ってもよい。
まず、国内信頼ドメイン学習部252は、当該作成者ドメインが国内信頼ドメイン一覧252Aに設定されているか否かを判定する。
そして、当該作成者ドメインが国内信頼ドメイン一覧252Aに設定されている場合、国内信頼ドメイン学習部252は、国内信頼ドメイン一覧252Aから当該作成者ドメインを削除する。
【0193】
S2507において、国内信頼ドメイン学習部252は、S2502−2で取得された作成者ドメインが国内信頼ドメイン一覧252Aに設定されているか否かを判定する。
当該作成者ドメインが国内信頼ドメイン一覧252Aに設定されていない場合、国内信頼ドメイン学習部252は、作成者ドメインを国内信頼ドメインとして国内信頼ドメイン一覧252Aに設定する。
そして、国内信頼ドメイン学習処理は終了する。
【0194】
上記の国内信頼ドメイン学習処理では電子メール数(外国経由判定結果の数)が所定の蓄積閾値未満である場合、国内信頼ドメインを学習していない(S2503参照)。
但し、国内信頼ドメイン学習部252は、電子メール数が所定の蓄積閾値未満である場合にも国内信頼ドメインを学習しても構わない。
この場合、学習に用いることができる外国経由判定結果の数が少ないため、国内信頼ドメインを適切に学習することができない可能性がある。つまり、国内信頼ドメインとして登録すべきでない作成者ドメインを国内信頼ドメインとして登録してしまう可能性がある。
そこで、電子メール数が所定の蓄積閾値未満である場合、国内信頼ドメイン学習部252は、所定数の外国経由メールを既に受信しているものとして、作成者ドメインが国内信頼ドメインであるか否かを判定する(S2505)。
例えば、国内信頼ドメイン学習部252は、実際の外国経由メール数に所定数を加えた値を判定用の外国経由メール数として算出する。そして、国内信頼ドメイン学習部252は、算出した判定用の外国経由メール数に基づいて、作成者ドメインが国内信頼ドメインであるか否かを判定する。
【0195】
また、国内信頼ドメイン一覧252Aには、国内信頼ドメインであることが分かっている作成者ドメインを予め設定しておいても構わない。
【0196】
図14は、実施の形態3における外国経由検査方法を示すフローチャートである。
実施の形態3における外国経由検査方法(詐称メール検出方法の一例)について、
図14に基づいて説明する。
【0197】
ここで、国内信頼ドメイン学習部252は、国内信頼ドメイン一覧252Aを予め生成しているものとする。
例えば、国内信頼ドメイン一覧252Aが生成された後、作成者ドメイン取得部23が電子メールを取得したときに、外国経由検査部25が当該電子メールを判定対象メールとして
図14に示す処理を実行する。
【0198】
S2510において、外国経由判定部251は、作成者ドメイン取得部23から判定対象メールの作成者ドメインを取得する。
S2510の後、S2511に進む。
【0199】
S2511において、外国経由判定部251は、S2510で取得した判定対象メールの作成者ドメインが国内信頼ドメイン一覧252Aに設定されている国内信頼ドメインと同じドメインであるか否かを判定する。
判定対象メールの作成者ドメインが国内信頼ドメインと同じドメインである場合(YES)、S2520からS2522の各処理に進む。
判定対象メールの作成者ドメインが国内信頼ドメインと同じドメインでない場合(NO)、S2540に進む。
【0200】
なお、判定対象メールの作成者ドメインが国内信頼ドメイン一覧252Aに設定されている国内信頼ドメインと同じドメインであれば、判定対象メールの作成国は、必ず宛先国と同じであるので、判定対象メールが国内メールであるか否かを判定する必要はない。
【0201】
S2520からS2522の各処理は、所定の順番で実行しても、並行して実行しても構わない。
【0202】
S2520において、中継装置ドメイン取得部253は、メール通信取得部21から判定対象メールを取得し、取得した判定対象メールのメールヘッダから中継装置ドメイン(中継装置のIPアドレスを含む)を取得する。
S2520の後、S2530に進む。
【0203】
図15は、実施の形態3における電子メールのメールヘッダの一例を示す概要図である。
3台の中継装置A、B、Cを中継して通信された電子メール(例えば、判定対象メール)のメールヘッダについて、
図15に基づいて説明する。
電子メールのメールヘッダは、電子メールを中継した中継装置毎に「Received:」で始まるReceivedフィールドを備える。
各Receivedフィールドは、中継装置ドメイン(中継装置のIPアドレスを含む)および中継時刻(中継時刻のタイムゾーンを含む)などの情報を含む。Receivedフィールドのfrom句は、中継装置が中継した電子メールをその中継装置に対して送信した送信元の装置(電子メールを送信した装置または一つ前の中継装置)のドメインを示し、by句は、中継装置自身のドメインを示す。なお、by句は、ない場合もあある。
電子メールのメールヘッダは、「Date:」で始まるDateフィールドと、「From:」で始まるFromフィールドと、「To:」で始まるToフィールドとを備える。
Dateフィールドは、電子メールの送信日時を示す。
Fromフィールドは、電子メールを作成した作成者のメールアドレスを示す。このメールアドレスのアットマーク以降の文字列が作成者ドメインに相当する。
Toフィールドは電子メールの宛先のメールアドレスを示す。このメールアドレスのアットマーク以降の文字列が宛先ドメインに相当する。
【0204】
例えば、中継装置ドメイン取得部253は、
図15に示す判定対象メールのメールヘッダから、各Receivedフィールドに記載されている中継装置Aドメイン、中継装置Bドメインおよび中継装置Cドメイン(それぞれIPアドレスを含む)を取得する。
【0205】
図14に戻り、外国経由検査方法の説明をS2521から続ける。
【0206】
S2521において、中継時刻取得部254は、メール通信取得部21から判定対象メールを取得し、取得した判定対象メールのメールヘッダから中継時刻(タイムゾーンを含む)を取得する。
例えば、中継時刻取得部254は、
図15に示す判定対象メールのメールヘッダから、各Receivedフィールドに記載されている中継時刻「・・・ +900(JST)」を取得する。中継時刻の最後の部分「+900(JST)」は中継時刻のタイムゾーンを示す。
例えば、タイムゾーン「+900(JST)」の「+900」および「JST」は、中継時刻がグリニッジ標準時(GMT)より9時間進んでいる日本時間の時刻であることを意味する。
S2521の後、S2530に進む。
【0207】
S2522において、パケット送信元取得部255は、判定対象メールを通信するために用いられた少なくともいずれかのIPパケット、つまり、判定対象メールの少なくとも一部を含んだIPパケットをメール通信取得部21から取得する。
パケット送信元取得部255は、メール通信取得部21から取得したIPパケットのパケットヘッダからIPパケットの送信元アドレスを取得する。
S2522の後、S2530に進む。
【0208】
S2530において、外国経由判定部251は、S2520で取得された中継装置ドメイン(中継装置のIPアドレスを含む)と、S2521で取得された中継時刻(タイムゾーンを含む)と、S2522で取得された判定対象メールの送信元アドレスとの少なくともいずれかに基づいて、判定対象メールが外国経由メールであるか否かを判定する。
例えば、外国経由判定部251は、判定対象メール(電子メールの一例)が外国経由メールであるか否かを以下のように判定する。
【0209】
(1)外国経由判定部251は、S2520で取得された中継装置ドメイン毎に、中継装置ドメインに含まれる国名(中継国)と、ローカルネットワークシステム10のメールサーバ装置14のドメイン(宛先ドメイン)に含まれる国名(宛先国)とを比較する。宛先国は記憶装置に予め記憶しておくものとする。
例えば、中継装置ドメイン「xxx.co.jp」に含まれる「.jp」は、中継国が日本であることを意味する。
宛先国と少なくともいずれかの中継国とが異なる場合、外国経由判定部251は、判定対象メールが外国経由メールであると判定する。それ以外の場合、外国経由判定部251は判定対象メールが外国経由メールでないと判定する。
【0210】
(2)外国経由判定部251は、S2520で取得された中継装置のIPアドレス毎に、中継装置のIPアドレスと、ローカルネットワークシステム10のメールサーバ装置14のドメイン(宛先ドメイン)が属する宛先国に割り当てられているIPアドレスとを比較する。宛先国に割り当てられているIPアドレスの範囲に関する情報は記憶装置に予め記憶しておくものとする。
少なくともいずれかの中継装置のIPアドレスが宛先国に割り当てられているIPアドレスの範囲に含まれないIPアドレスである場合、外国経由判定部251は、判定対象メールが外国経由メールであると判定する。それ以外の場合、外国経由判定部251は判定対象メールが外国経由メールでないと判定する。
【0211】
(3)外国経由判定部251は、S2521で取得された中継時刻のタイムゾーン毎に、中継時刻のタイムゾーンと、ローカルネットワークシステム10のメールサーバ装置14のドメイン(宛先ドメイン)が属する宛先国のタイムゾーンとを比較する。宛先国のタイムゾーンは記憶装置に予め記憶しておくものとする。
少なくともいずれかの中継時刻のタイムゾーンが宛先国のタイムゾーンと異なる場合、外国経由判定部251は、判定対象メールが外国経由メールであると判定する。それ以外の場合、外国経由判定部251は判定対象メールが外国経由メールでないと判定する。
【0212】
(4)外国経由判定部251は、S2522で判定対象メールのIPアドレスから取得された送信元アドレスと、ローカルネットワークシステム10のメールサーバ装置14のドメイン(宛先ドメイン)が属する宛先国に割り当てられているIPアドレスとを比較する。宛先国に割り当てられているIPアドレスの範囲に関する情報は記憶装置に予め記憶しておくものとする。
判定対象メールの送信元アドレスが宛先国に割り当てられているIPアドレスの範囲に含まれないIPアドレスである場合、外国経由判定部251は、判定対象メールが外国経由メールであると判定する。それ以外の場合、外国経由判定部251は判定対象メールが外国経由メールでないと判定する。
【0213】
例えば、上記の(1)から(4)の少なくともいずれかの判定で判定対象メールが外国経由メールであると判定した場合、外国経由判定部251は判定対象メールが外国経由メールであると判定する。
但し、外国経由判定部251は、上記の(1)から(4)のいずれかの判定結果に基づいて、判定対象メールが外国経由メールであるか否かを判定しても構わない。また、外国経由判定部251は、上記の(1)から(4)のうち2つまたは3つの判定結果に基づいて、判定対象メールが外国経由メールであるか否かを判定しても構わない。
S2530の後、S2540に進む。
【0214】
S2540において、外国経由検査スコア決定部259は、S2511の判定結果またはS2530の判定結果に基づいて、判定対象メールの外国経由検査スコアを決定する。
外国経由検査スコアとは、判定結果メールが詐称メールである可能性の度合いを表す値である。例えば、判定結果メールが詐称メールである可能性が高いほど外国経由検査スコアは高く、判定結果メールが詐称メールである可能性が低いほど外国経由検査スコアは低い。
【0215】
図16は、実施の形態3における外国経由検査スコア一覧表259Aの一例を示す図である。
例えば、
図16に示すような外国経由検査スコア一覧表259Aを記憶装置に予め記憶しておく。
外国経由検査スコア一覧表259Aは、条件と外国経由検査スコアとを対応付けている。
外国経由検査スコア決定部259は、S2511またはS2530の判定結果に対応する外国経由検査スコアを外国経由検査スコア一覧表259Aから取得する。
【0216】
判定対象メールが国内信頼ドメインでない場合、外国経由検査スコア決定部259は、判定対象メールが詐称メールであるか否かを判断できないことを意味する外国経由検査スコア「0点」を外国経由検査スコア一覧表259Aから取得する。
判定対象メールが外国経由メールでない場合、外国経由検査スコア決定部259は、判定対象メールが詐称メールである可能性が低いことを意味する外国経由検査スコア「0点」を外国経由検査スコア一覧表259Aから取得する。
判定対象メールが外国経由メールである場合、外国経由検査スコア決定部259は、判定対象メールが詐称メールである可能性が高いことを意味する外国経由検査スコア「4点」を外国経由検査スコア一覧表259Aから取得する。
S2540の後、S2550に進む。
【0217】
S2550において、詐称判定部28は、S2540で決定された外国経由検査スコアに基づいて、判定対象メールが詐称メールであるか否かを判定する。
例えば、詐称判定部28は、S2540で決定された判定対象メールの外国経由検査スコアと他の実施の形態で決定される判定対象メールのスコアとの合計値と、所定の詐称評価閾値とを比較する。判定対象メールのスコアの合計値が所定の詐称評価閾値より大きい場合、詐称判定部28は、判定対象メールが詐称メールであると判定する。
但し、詐称判定部28は、外国経由検査スコアを所定の詐称評価閾値と比較し、判定対象メールが詐称メールであるか否かを判定しても構わない。
S2550により、外国経由検査方法の処理は終了する。
【0218】
上記の外国経由検査方法(
図14参照)では、判定対象メールの作成者ドメインが国内信頼ドメインである場合に、判定対象メールが外国経由メールであるか否かを判定している(S2511からS2530参照)。
但し、外国経由検査部25は、判定対象メールの作成者ドメインが国内信頼ドメインであるか否かに関わらず、判定対象メールが外国経由メールであるか否かを判定しても構わない。
例えば、外国経由検査部25は、外国経由検査方法のS2511で判定対象メールの作成者ドメインが国内信頼ドメインであるか否かを判定する代わりに、判定対象メールが国内メールであるか否かを判定する。外国経由検査部25は、判定対象メールが国内メールである場合にS2520以降の処理を実行する。
例えば、判定対象メールが国内メールでない場合の外国経由検査スコアは、判定対象メールの作成者ドメインが国内信頼ドメインでない場合の外国経由検査スコアと同じスコアである。
判定対象メールが国内メールであるか否かを判定する方法は、国内信頼ドメイン学習処理(
図12参照)のS2501−1と同じである。
【0219】
また、外国経由検査部25は、外国経由検査方法のS2511で判定対象メールの作成者ドメインが国内信頼ドメインであるか否かを判定する代わりに、判定対象メールの作成者ドメインが外国経由除外ドメインであるか否かを判定してもよい。
外国経由除外ドメインとは、国内信頼ドメインとは反対に、外国のメールサーバを経由する可能性が高い電子メールの作成者ドメインである。
外国経由検査部25は、判定対象メールの作成者ドメインが外国経由除外ドメインでない場合にS2520以降の処理を実行する。
例えば、判定対象メールの作成者ドメインが外国経由除外ドメインである場合の外国経由検査スコアは、判定対象メールの作成者ドメインが国内信頼ドメインでない場合の外国経由検査スコアと同じスコアである。
また、外国経由検査部25は、国内信頼ドメイン学習部252の代わりに、外国経由除外ドメイン学習部を備える。
外国経由除外ドメイン学習部は、国内信頼ドメイン学習処理(
図12、
図13参照)において国内信頼ドメインを外国経由除外ドメインに置き換えた処理を、外国経由除外ドメイン学習処理として実行する。
つまり、外国経由除外ドメイン学習部は、電子メールの作成者ドメインが外国経由除外ドメインであるか否かを判定し(
図13のS2505)、外国経由除外ドメインである作成者ドメインを外国経由除外ドメイン一覧に設定する(
図13のS2507)。
電子メールが外国経由除外ドメインである条件は、電子メールが国内信頼ドメインである条件と反対の条件である。
【0220】
国内信頼ドメイン学習部252は、国内信頼ドメインを学習する対象の電子メールとして、判定対象メールを利用してもよい。
その場合、国内信頼ドメイン学習部252は、外国経由検査方法(
図14参照)で得られた判定対象メールの外国経由判定結果と作成者ドメインとを記憶し、国内信頼ドメイン学習処理(
図13参照)のS2503からS2507を実行すればよい。
【0221】
以上説明した詐称メール検出装置(20)は、
ネットワークを介した通信のうち、メール転送プロトコルである通信を取得するメール通信取得部(31)と、
上記メール通信取得部が取得した通信によって転送される電子メールの作成者フィールドに記載された作成者が属する作成者ドメインを取得する作成者ドメイン取得部(23)と、
上記作成者ドメイン取得部が取得した作成者ドメインが属する国が、上記電子メールの宛先ドメインが属する宛先国と同じである場合に、上記電子メールが上記宛先国と異なる国を経由したか否かを判定する外国経由判定部(251)と、
判定対象メールと作成者ドメインが同じ1以上の電子メールのうち、上記宛先国と異なる国を経由した外国経由メールの数を計数する外国経由計数部(国内信頼ドメイン学習部252)と、
上記判定対象メールが上記宛先国と異なる国を経由したと上記外国経由判定部が判定し、かつ、上記外国経由計数部が計数した外国経由メールの数が所定の外国経由閾値より小さい場合に、上記判定対象メールが作成者を詐称した詐称メールである可能性があると判定する詐称判定部(28,外国経由検査スコア決定部259)とを有する。
【0222】
上記詐称メール検出装置(20)は、
上記電子メールの中継装置フィールドに記載された中継装置ドメインを取得する中継装置ドメイン取得部(253)を有し、
上記外国経由判定部(251)は、上記中継装置ドメイン取得部が取得した中継装置ドメインが属する国が上記宛先国と異なる場合に、上記電子メールが上記宛先国と異なる国を経由したと判定する。
【0223】
上記詐称メール検出装置(20)は、
上記電子メールの中継装置フィールドに記載された中継時刻を取得する中継時刻取得部(254)を有し、
上記外国経由判定部(251)は、上記中継時刻取得部が取得した中継時刻のタイムゾーンが上記宛先国のタイムゾーンと異なる場合に、上記電子メールが上記宛先国と異なる国を経由したと判定する。
【0224】
上記詐称メール検出装置(20)は、
上記メール通信取得部が取得した通信に基づいて、上記通信を構成するパケットの送信元アドレスを取得するパケット送信元取得部(255)を有し、
上記外国経由判定部(251)は、上記パケット送信元取得部が取得した送信元アドレスが属する国が上記宛先国と異なる場合に、上記電子メールが上記宛先国と異なる国を経由したと判定する。
【0225】
上記外国経由計数部(252)は、上記1以上の電子メールのうち、所定の期間内に転送された上記外国経由メールの数だけを計数する。
【0226】
上記外国経由計数部(252)は、転送時刻が新しい順に所定の数以内の電子メールのなかで、上記判定対象メールと作成者ドメインが同じ外国経由メールの数を計数する。
【0227】
上記外国経由計数部(252)は、所定の時期に所定のドメインから送信された外国経由メールまたは外国経由メールでない電子メールが所定の数あるものとして、上記外国経由メールの数を計数する。
【0228】
上記詐称判定部(28,259)は、
判定対象メールについて詐称評価値を算出し、上記判定対象メールが上記宛先国と異なる国を経由したと上記外国経由判定部が判定し、かつ、上記外国経由計数部が計数した外国経由メールの数が所定の外国経由閾値より小さい場合に、上記詐称評価値に所定の値を加算する詐称評価値算出部(281,259)と、
上記詐称評価値算出部が算出した詐称評価値が所定の詐称評価閾値より大きい場合に、上記判定対象メールが作成者を詐称した詐称メールである可能性があると判定する詐称評価値判定部(283)とを有する。
【0229】
実施の形態3により、外国経由検査部25は、ローカルネットワークシステム10のメールサーバ装置14のドメインが属する国内だけを経由して通信されるはずの電子メールのうち、外国のメールサーバ装置を経由して通信された電子メールを外国経由メールとして判定することができる。
また、外国経由検査部25は、電子メールが外国経由メールであるか否かに基づいて、電子メールが詐称メールである可能性の度合いを表す外国経由検査スコアを決定することができる。
そして、詐称判定部28は、外国経由検査スコアに基づいて、電子メールが詐称メールであるか否かを判定することができる。
【0230】
実施の形態4.
実施の形態4について、
図17〜
図24を用いて説明する。
この実施の形態では、実施の形態1で説明した詐称メール検出装置20のうち、パケット連続度検査部26の構成例について、詳しく説明する。
なお、実施の形態1〜実施の形態3と共通する構成には、同一の符号を付し、説明を省略する場合がある。
【0231】
図17は、実施の形態4におけるパケット連続度検査部26の構成図である。
実施の形態4におけるパケット連続度検査部26の構成について、
図17に基づいて説明する。
【0232】
パケット連続度検査部26は、連続度算出部261、統計量算出部262およびパケット連続度検査スコア決定部269を備える。
以下に、パケット連続度検査部26が備える各構成の概要について説明する。パケット連続度検査部26が備える各構成の詳細については別途説明する。
【0233】
連続度算出部261は、電子メールが通信された際のセッションで、通信方向が同じであるIPパケットが連続して送信された割合を算出する。
セッションとは、1つ以上のメッセージを所定の手順で送受信することによって構成される単位である。例えば、SMTPでは、1つのセッションで1つの電子メールが送信される。
以下、連続度算出部261によって算出される割合を「パケット連続度」という。
【0234】
統計量算出部262は、電子メールの作成者が属する作成者ドメイン毎に、作成者ドメインが同じである電子メールのパケット連続度の統計量を算出する。
以下、統計量算出部262によって算出されるパケット連続度の統計量を「連続度統計量」という。
また、作成者ドメイン毎に作成者ドメインと連続度統計量とを対応付けて設定したデータを「統計量一覧表262A」という。
【0235】
パケット連続度検査スコア決定部269は、判定対象メールのパケット連続度と、判定対象メールと作成者ドメインが同じである電子メールの連続度統計量とを比較する。
パケット連続度検査スコア決定部269は、比較結果に基づいて、判定対象メールが詐称メールである可能性の度合いを表すパケット連続度検査スコアを算出する。
判定対象メールとは、詐称メールであるか否かを判定する対象の電子メールである。
【0236】
図18は、実施の形態4における統計量学習処理を示すフローチャートである。
作成者ドメイン別に連続度統計量を学習する統計量学習処理について、
図18に基づいて説明する。
【0237】
パケット連続度検査部26は、メール通信取得部21が電子メールを取得する毎に、以下に説明する統計量学習処理を実行する。
【0238】
S2601において、連続度算出部261は、メール通信取得部21によって取得された電子メールのパケット連続度を算出する。
【0239】
図19、
図20は、実施の形態4における電子メールのパケット連続度の一例を示す図である。
実施の形態4における電子メールのパケット連続度について、
図19および
図20に基づいて説明する。
【0240】
図19および
図20において、「TX」は、外部のメールサーバ装置82からローカルネットワークシステム10のメールサーバ装置14へ送信されたIPパケット(TXパケット、送信パケットともいう)を表す。例えば、電子メールの少なくとも一部を含んだIPパケットはTXパケットの一例である。
また、「RX」は、ローカルネットワークシステム10のメールサーバ装置14から外部のメールサーバ装置82へ送信されたIPパケット(RXパケット、受信パケットともいう)を表す。例えば、TXパケットを受信したことを応答するACKパケットはRXパケットの一例である。
【0241】
図19において、電子メールAが通信された際のセッションAで、4つのIPパケットが「TX」「RX」「TX」「RX」の順で通信されたものとする。
この場合、「TX」「RX」のいずれも連続して通信されていない。
つまり、2つ目以降の3つのIPパケットのいずれも1つ前のIPパケットと連続していない。
したがって、電子メールAのパケット連続度は「0%(=0/3)」である。
【0242】
図20において、電子メールBが通信された際のセッションBで、4つのIPパケットが「TX」「TX」「RX」「RX」の順で通信されたものとする。
この場合、先頭のIPパケット「TX」と2つ目のIPパケット「TX」とが連続し、3つ目のIPパケット「RX」と4つ目のIPパケット「RX」とが連続している。
つまり、2つ目以降の3つのIPパケットのうち、2つのIPパケットが1つ前のIPパケットと連続している。
したがって、電子メールBのパケット連続度は「66.7%(=2/3)」である。
【0243】
但し、連続度算出部261は、「TX」と「RX」とのいずれかの連続度をパケット連続度として算出しても構わない。
例えば、連続度算出部261は、「TX」毎に、「TX」と「TX」の1つ後のIPパケットとが連続しているか否か判定する。
図20の場合、1つ目の「TX」は1つ後のIPパケット「TX」と連続し、2つ目の「TX」は1つ後のIPパケット「RX」と連続していない。
つまり、2つの「TX」のうち、1つの「TX」が1つ後のIPパケットと連続している。したがって、パケット連続度は「50%(=1/2)」である。
【0244】
TCP(伝送制御プロトコル)では、通常、送信パケットと、それに対するACKパケットとが交互に同期通信される。この場合、パケット連続度は「0%」になる。しかし、ウィンドウ制御やフロー制御、輻輳制御により、TXパケットが連続して届く場合があり、パケット連続度は「0%」にならない。このような制御は、MTA間の経路が長い場合や混雑している場合など、1回のパケットの往復に時間がかかる場合に行われることが多い。同じ送信者ドメインから送信された電子メールが中継される経路は、通常一定であるから、パケット連続度もほぼ一定になると考えられる。このため、パケット連続度を、送信者ドメインの特徴として利用することできる。
したがって、同じ送信者ドメインから送信された電子メールにかかるパケット連続度が、いつもの値と異なる異常値である場合、送信者ドメインを詐称した詐称メールである可能性がある。
【0245】
図18に戻り、連続度統計量算出処理の説明をS2602から続ける。
【0246】
S2602において、連続度算出部261は、作成者ドメイン取得部23から、電子メールの作成者ドメインを取得する。
S2602の後、S2603に進む。
【0247】
S2603において、連続度算出部261は、メール通信取得部21によって取得された電子メールの通信日時と、S2602で取得した作成者ドメインと、S2601で算出したパケット連続度とを対応付けてメール通信記憶部22に記憶する。
電子メールの通信日時とは、例えば、メール通信取得部21が電子メールを取得した日時、または電子メールのメールヘッダに含まれる送信日時である。
S2603の後、S2604に進む。
【0248】
S2604において、統計量算出部262は、メール通信記憶部22に記憶されているパケット連続度のうち、S2602で取得された作成者ドメインと同じドメインに対応付けられているパケット連続度を計数する。
統計量算出部262は、計数したパケット連続度の数が所定の蓄積閾値(例えば、100個)以上であるか否かを判定する。
当該パケット連続度の数が蓄積閾値以上である場合(YES)、S2605に進む。
当該パケット連続度の数が蓄積閾値未満である場合(NO)、統計量学習処理は終了する。
【0249】
S2605において、統計量算出部262は、S2604で計数したパケット連続度をメール通信記憶部22から取得する。
【0250】
例えば、統計量算出部262は、S2604で計数した全てのパケット連続度をメール通信記憶部22から取得する。
但し、統計量算出部262は、S2604で計数したパケット連続度のうち、所定期間(例えば、直前の1カ月)の通信日時に対応付けられているパケット連続度を取得してもよい。
また、統計量算出部262は、電子メールの通信日時が新しい順に、所定数(例えば、上記蓄積閾値と同じ数)のパケット連続度を取得してもよい。
S2605の後、S2606に進む。
【0251】
S2606において、統計量算出部262は、S2605で取得したパケット連続度に基づいて、パケット連続度の統計量(連続度統計量)を算出する。
例えば、統計量算出部262は、パケット連続度の平均値および標準偏差を連続度統計量として算出する。
但し、統計量算出部262は、パケット連続度の最小値または最大値など、平均値または標準偏差以外の統計量を連続度統計量として算出しても構わない。
S2606の後、S2607に進む。
【0252】
S2607において、統計量算出部262は、S2602で取得された作成者ドメインと同じドメインに対応付けて、S2606で算出した連続度統計量を統計量一覧表262Aに設定する。
既に、当該ドメインに対応付けられて連続度統計量が設定されている場合、統計量算出部262は、設定されている連続度統計量を今回算出した新たな連続度統計量に更新する。これにより、連続度統計量を最新の状態にすることができる。
S2607により、統計量学習処理は終了する。
【0253】
上記の統計量学習処理(
図18参照)では、作成者ドメイン毎に連続度統計量を算出している。
但し、統計量算出部262は、作成者ドメイン毎のパケット連続度を複数のグループに分類し、分類したグループ毎に連続度統計量を算出してもよい。
例えば、統計量算出部262は、作成者ドメイン毎のパケット連続度を電子メールの通信日時に基づいて、時間帯別、曜日別(平日休日別)またはこれらの組み合わせ別の複数のグループに分類し、分類したグループ毎に連続度統計量を算出してもよい。
【0254】
図21は、実施の形態4における統計量一覧表262Aの一例を示す図である。
例えば、統計量算出部262は、作成者ドメイン毎に連続度統計量(平均値、標準偏差)を算出し、作成者ドメインと連続度統計量とを対応付けて統計量一覧表262Aに設定する。
【0255】
図22は、実施の形態4における統計量一覧表262Aの一例を示す図である。
例えば、統計量算出部262は、作成者ドメイン毎のパケット連続度を時間帯別のグループに分類し、時間帯別に連続度統計量を算出し、作成者ドメインと時間帯と連続度統計量とを対応付けて統計量一覧表262Aに設定する。
【0256】
パケット連続度は、MTA間の混雑度の影響を受ける場合がある。時間帯別や曜日別にパケット連続度を集計して、連続度統計量を算出することにより、パケット連続度が異常値であるか否かの判定精度を高くすることができる。
【0257】
図23は、実施の形態4におけるパケット連続度検査方法を示すフローチャートである。
実施の形態4におけるパケット連続度検査方法(詐称メール検出方法の一例)について、
図23に基づいて説明する。
【0258】
ここで、統計量算出部262は、統計量一覧表262Aを予め生成しているものとする。
【0259】
S2610において、連続度算出部261は、判定対象メールのパケット連続度を算出する。
パケット連続度の算出方法は、
図18で説明したS2601と同じである。
S2610の後、S2620に進む。
【0260】
S2620において、パケット連続度検査スコア決定部269は、作成者ドメイン取得部23から判定対象メールの作成者ドメインを取得する。
S2620の後、S2621に進む。
【0261】
S2621において、パケット連続度検査スコア決定部269は、S2620で取得した判定対象メールの作成者ドメインに対応する連続度統計量を、統計量一覧表262A(
図21参照)から取得する。
S2621の後、S2630に進む。
【0262】
S2630において、パケット連続度検査スコア決定部269は、S2610で算出されたパケット連続度と、S2621で取得した連続度統計量とを比較し、比較結果に基づいてパケット連続度検査スコアを決定する。
パケット連続度検査スコアは、判定対象メールが詐称メールである可能性の度合いを表す値である。
例えば、判定対象メールが詐称メールである可能性が高いほどパケット連続度検査スコアは高く、判定対象メールが詐称メールである可能性が低いほどパケット連続度検査スコアは低い。
【0263】
判定対象メールのパケット連続度と連続度統計量の平均値との差が大きい場合、判定対象メールをローカルネットワークシステム10のメールサーバ装置14に中継したメールサーバと、作成者ドメインが同じである他の電子メールをメールサーバ装置14に中継したメールサーバとが異なる装置である可能性が高い。したがって、他の電子メールと異なるメールサーバによって中継された判定対象メールは詐称メールである可能性が高い。
【0264】
図24は、実施の形態4におけるパケット連続度検査スコア一覧表269Aの一例を示す図である。
例えば、
図24に示すようなパケット連続度検査スコア一覧表269Aを記憶装置に予め記憶しておく。
パケット連続度検査スコア一覧表269Aは、パケット連続度の範囲とパケット連続度検査スコア(異常値の一例)とを対応付けている。図中において「α」はパケット連続度を意味し、「μ」は平均値(連続度統計量の一例)を意味し、「σ」は標準偏差(連続度統計量の一例)を意味している。
パケット連続度検査スコア決定部269は、パケット連続度と連続度統計量との関係に基づいて、パケット連続度検査スコアをパケット連続度検査スコア一覧表269Aから取得する。
【0265】
パケット連続度(α)が「μ−1σ≦α≦μ+1σ」の関係を満たす場合、パケット連続度検査スコア決定部269は、判定対象メールが詐称メールである可能性が低いことを意味するパケット連続度検査スコア「0点」をパケット連続度検査スコア一覧表269Aから取得する。
パケット連続度(α)が「μ−2σ≦α<μ−1σ」または「μ+1σ<α≦μ+2σ」の関係を満たす場合、パケット連続度検査スコア決定部269は、判定対象メールが詐称メールである可能性が比較的高いことを意味するパケット連続度検査スコア「1点」をパケット連続度検査スコア一覧表269Aから取得する。
パケット連続度(α)が「α<μ−2σ」または「μ+2σ<α」の関係を満たす場合、パケット連続度検査スコア決定部269は、判定対象メールが詐称メールである可能性が高いことを意味するパケット連続度検査スコア「2点」をパケット連続度検査スコア一覧表269Aから取得する。
【0266】
但し、パケット連続度検査スコア決定部269は、上記以外の方法でパケット連続度検査スコアを決定しても構わない。
例えば、パケット連続度検査スコア決定部269は、パケット連続度と連続度統計量の平均値(または、最小値、最大値)との差(例えば、絶対値)を算出し、算出した差に応じてパケット連続度検査スコアを決定しても構わない。この場合、パケット連続度検査スコア一覧表269Aには、差の範囲とパケット連続度検査スコアとを対応付けて設定しておく。
例えば、パケット連続度検査スコア決定部269は、パケット連続度と連続度統計量の平均値との差を、連続度統計量の標準偏差で割ることによって得られる商(異常値の一例)をパケット連続度検査スコアとして算出しても構わない。
S2630の後、S2640に進む。
【0267】
S2640において、詐称判定部28は、S2630で決定されたパケット連続度検査スコアに基づいて、判定対象メールが詐称メールであるか否かを判定する。
例えば、詐称判定部28は、S2630で決定された判定対象メールのパケット連続度検査スコアと他の実施の形態で決定される判定対象メールのスコアとの合計値と、所定の詐称評価閾値とを比較する。判定対象メールのスコアの合計値が所定の詐称評価閾値より大きい場合、詐称判定部28は、判定対象メールが詐称メールであると判定する。
但し、詐称判定部28は、パケット連続度検査スコアを所定の詐称評価閾値と比較し、判定対象メールが詐称メールであるか否かを判定しても構わない。
S2640により、パケット連続度検査方法の処理は終了する。
【0268】
上記のパケット連続度検査方法(
図23参照)では、判定対象メールの作成者ドメインに対応する連続度統計量を統計量一覧表262Aから取得し、取得した連続度統計量に基づいてパケット連続度検査スコアを決定している。
但し、統計量算出部262が作成者ドメイン別のパケット連続度を複数のグループ(例えば、時間帯別)に分類して連続度統計量を算出している場合、パケット連続度検査スコア決定部269は、判定対象メールが属するグループの連続度統計量を統計量一覧表262A(
図22参照)から取得する。
そして、パケット連続度検査スコア決定部269は、判定対象メールが属するグループの連続度統計量に基づいて、S2630と同様にパケット連続度検査スコアを決定する。
この際、パケット連続度検査スコア一覧表269A(
図24参照)をグループ別に記憶装置に記憶し、判定対象メールが属するグループ用のパケット連続度検査スコア一覧表269Aを用いてパケット連続度検査スコアを算出してもよい。
【0269】
統計量算出部262は、連続度統計量を学習する対象の電子メールとして、判定対象メールを利用してもよい。
その場合、統計量算出部262は、パケット連続度検査方法(
図23参照)で得られた判定対象メールのパケット連続度と作成者ドメインとを記憶し、統計量学習処理(
図18参照)のS2604からS2607を実行すればよい。
【0270】
以上説明した詐称メール検出装置(20)は、
ネットワークを介した通信のうち、メール転送プロトコルである通信を取得するメール通信取得部(21)と、
上記メール通信取得部が取得した通信によって転送される電子メールの作成者フィールドに記載された作成者が属する作成者ドメインを取得する作成者ドメイン取得部(23)と、
上記電子メールの転送にかかるセッションを構成する一連のパケットそれぞれの送信方向を判定し、上記一連のパケットのうち2番目以降のパケットの送信方向が、1つ前のパケットと同じであるパケットの割合を算出して、上記電子メールのパケット連続度とする連続度算出部(261)と、
判定対象メールと作成者ドメインが同じ1以上の電子メールについて上記連続度算出部が算出したパケット連続度に基づいて統計量を算出する統計量算出部(262)と、
上記統計量算出部が算出した統計量に基づいて、上記判定対象メールについて上記連続度算出部が算出したパケット連続度が異常値であるか否かを判定し、上記パケット連続度が異常値であると判定した場合に、上記判定対象メールが作成者を詐称した詐称メールである可能性があると判定する詐称判定部(28,パケット連続度検査スコア決定部269)とを有する。
【0271】
上記統計量算出部(262)は、上記統計量として、上記1以上の電子メールのパケット連続度を平均した平均値及び標準偏差を算出し、
上記詐称判定部(28,269)は、上記標準偏差に所定の定数を乗じた値を上記平均値に加えた値よりも上記パケット連続度が大きい場合と、上記標準偏差に所定の定数を乗じた値を上記平均値から差し引いた値よりも上記パケット連続度が小さい場合とのうち、少なくともいずれかの場合に、上記パケット連続度が異常値であると判定する。
【0272】
上記詐称判定部(28,269)は、
判定対象メールについて詐称評価値を算出し、上記統計量算出部が算出した統計量に基づいて、上記連続度算出部が算出したパケット連続度が異常値であるか否かを判定し、上記パケット連続度が異常値であると判定した場合に、上記詐称評価値に所定の値を加算する詐称評価値算出部(281,269)と、
上記詐称評価値算出部が算出した詐称評価値が所定の詐称評価閾値より大きい場合に、上記判定対象メールが作成者を詐称した詐称メールである可能性があると判定する詐称評価値判定部(283)とを有する。
【0273】
上記詐称評価値算出部(269)は、
上記連続度算出部が算出したパケット連続度の異常度を算出し、算出した異常度に応じた値を上記詐称評価値に加算する。
【0274】
上記統計量算出部(262)は、上記統計量として、上記1以上の電子メールのパケット連続度を平均した平均値及び標準偏差を算出し、
上記詐称評価値算出部は、上記判定対象メールのパケット連続度と、上記統計量算出部が算出した平均値との差を、上記標準偏差で割った商を算出して、上記異常度とする。
【0275】
上記統計量算出部(262)は、上記1以上の電子メールを、上記電子メールが転送された時間帯と、曜日と、平日休日の別とのうち少なくともいずれかに基づいて、複数のグループに分類し、分類したそれぞれのグループについて、上記統計量を算出する。
【0276】
上記統計量算出部(262)は、上記1以上の電子メールのうち、所定の期間内に転送された電子メールに基づいて、上記統計量を算出する。
【0277】
上記統計量算出部(262)は、転送時刻が新しい順に所定の数以内の電子メールに基づいて、上記統計量を算出する。
【0278】
実施の形態4により、パケット連続度検査部26は、電子メールを通信する際のセッションで通信されたIPパケットの通信順序に基づいて、IPパケットの通信順序に関する指標値(パケット連続度)を算出することができる。
また、パケット連続度検査部26は、電子メールの指標値と指標値の統計量との差に基づいて、電子メールが詐称メールである可能性の度合いを表すパケット連続度検査スコアを決定することができる。
そして、詐称判定部28は、パケット連続度検査スコアに基づいて、電子メールが詐称メールであるか否かを判定することができる。
【0279】
このように、パケット連続度を送信者ドメインの特徴として捉え、パケット連続度が異常値である場合に、詐称メールの可能性があると判定する。パケット連続度は、通信の結果として得られる値なので、攻撃者が意図的に設定することが困難である。
これにより、判定対象メールが詐称メールであるか否かの判定精度を高くすることができ、標的型サイバー攻撃による秘密情報の漏洩を防ぐことができる。
【0280】
実施の形態5.
実施の形態5について、
図25〜
図31を用いて説明する。
この実施の形態では、実施の形態1で説明した詐称メール検出装置20のうち、転送経路検査部27の構成例について、詳しく説明する。
なお、実施の形態1〜実施の形態4と共通する構成には、同一の符号を付し、説明を省略する場合がある。
【0281】
図25は、実施の形態5における転送経路検査部27の構成図である。
実施の形態5における転送経路検査部27の構成について、
図25に基づいて説明する。
【0282】
転送経路検査部27は、転送経路算出部271、ドメイン経路学習部272、経路情報取得部273および転送経路検査スコア決定部279を備える。
以下に、転送経路検査部27が備える各構成の概要について説明する。転送経路検査部27が備える各構成の詳細については別途説明する。
【0283】
転送経路算出部271は、経路情報取得部273によって取得された経路情報に基づいて、電子メールが通信された際の転送経路を算出する。
転送経路は、電子メールを中継(転送)した1つ以上の中継装置(メールサーバ)を示す情報である。
以下、転送経路を示すデータを「転送経路データ271A」という。
【0284】
ドメイン経路学習部272(経路一致計数部、経路部分一致計数部の一例)は、電子メールの作成者ドメイン毎に、作成者ドメインから送信された電子メールが転送される転送経路を学習する。
作成者ドメインとは、電子メールを作成した作成者が属するドメインである。
以下、ドメイン経路学習部272によって学習された転送経路を「ドメイン経路」という。また、ドメイン経路を一覧にしたリストを「ドメイン経路リスト272A」という。
【0285】
経路情報取得部273は、電子メールのメールヘッダ、および、電子メールを通信するために用いられたIPパケット(例えば、電子メールの少なくとも一部を含んだIPパケット)から、転送経路を算出するための経路情報を取得する。
IPパケットを中継した中継装置のドメイン(中継装置ドメイン)およびIPパケットの送信元アドレスは、経路情報取得部273によって取得される経路情報の一例である。
【0286】
転送経路検査スコア決定部279は、判定対象メールの転送経路と、判定対象メールの作成者ドメインについてのドメイン経路とを比較し、判定対象メールが詐称メールである可能性の度合いを表す転送経路検査スコアを算出する。
判定対象メールとは、詐称メールであるか否かを判定する対象の電子メールである。
【0287】
図26は、実施の形態5におけるドメイン経路学習処理を示すフローチャートである。
電子メールの作成者ドメイン別にドメイン経路を学習するドメイン経路学習処理について、
図26に基づいて説明する。
【0288】
転送経路検査部27は、メール通信取得部21が電子メールを取得する毎に、以下に説明する転送経路学習処理を実行する。
【0289】
S2701において、経路情報取得部273は、メール通信取得部21によって取得された電子メールのメールヘッダから、電子メールの転送経路を算出するための経路情報を取得する。
また、経路情報取得部273は、当該電子メールを通信するために用いられたIPパケット(例えば、電子メールの少なくとも一部を含んだIPパケット)をメール通信取得部21から取得し、取得したIPパケットから経路情報を取得する。
【0290】
図27は、実施の形態5における電子メールのメールヘッダの一例を示す概要図である。
3台の中継装置A、B、Cを中継して通信された電子メールのメールヘッダについて、
図27に基づいて説明する。
【0291】
電子メールのメールヘッダは、電子メールを中継した中継装置毎に「Received:」で始まるReceivedフィールドを備える。
Receivedフィールドは、電子メールを受信した中継装置が電子メールを中継する際に設定する。ここで、電子メールを受信した中継装置を「受信中継装置」といい、電子メールを受信中継装置へ中継した中継装置を「送信中継装置」という。
Receivedフィールドは、中継装置のドメイン(中継装置のIPアドレスを含む)などの情報を含む。
Receivedフィールドのfrom句は送信中継装置のドメインを示し、by句は受信中継装置のドメインを示す。
但し、受信中継装置は、電子メールを中継する際、Receivedフィールドにby句を設定しなくても構わない。この場合、電子メールを最後に中継した中継装置のドメインを電子メールのメールヘッダから取得することはできない。
【0292】
電子メールのメールヘッダは、「Date:」で始まるDateフィールドと、「From:」で始まるFromフィールドと、「To:」で始まるToフィールドとを備える。
Dateフィールドは電子メールの送信日時を示す。
Fromフィールドは電子メールを作成した作成者のメールアドレスを示す。このメールアドレスのアットマーク以降の文字列が作成者ドメインに相当する。
Toフィールドは電子メールの宛先のメールアドレスを示す。このメールアドレスのアットマーク以降の文字列が宛先ドメインに相当する。
【0293】
例えば、経路情報取得部273は、
図27に示す電子メールのメールヘッダから、各Receivedフィールドに記載されている中継装置Aドメイン、中継装置Bドメインおよび中継装置Cドメイン(それぞれIPアドレスを含む)を経路情報として取得する。
このとき、from句とby句とで重複している中継装置Bドメインは二重に取得する必要はない。
また、Receivedフィールドに中継装置のIPアドレスが記載されていない場合、経路情報取得部273は、中継装置ドメインに対応するIPアドレスをDNSサーバ(図示省略)から取得する。
【0294】
電子メールを最後に中継した中継装置がReceivedフィールドにby句を設定していない場合、経路情報取得部273は、この中継装置のドメインをReceivedフィールドから取得することができない。
そこで、経路情報取得部273は、この中継装置のIPアドレスとして、IPパケットのパケットヘッダからIPパケットの送信元アドレスを取得する。
【0295】
図26に戻り、転送経路学習処理の説明をS2702から続ける。
【0296】
S2702において、転送経路算出部271は、S2701で取得された経路情報に基づいて電子メールの転送経路を算出する。
転送経路算出部271は、例えば、以下のように電子メールの転送経路を算出する。
【0297】
ここで、ローカルネットワーク(プライベートネットワークまたはローカルエリアネットワークともいう)で用いられるローカルIPアドレス(プライベートIPアドレスともいう)を経路情報から抽出するために、ローカルIPリストが記憶装置に予め記憶されているものとする。
ローカルIPリストには、「192.168.…」、「172.16.…」〜「172.31.…」、「10.…」など、ローカルIPアドレスに用いられるアドレス(以下、「ローカルアドレス」という)を設定しておく。
転送経路算出部271は、このローカルIPリストを用いて、経路情報に含まれるIPアドレスからローカルIPアドレスを抽出する。
ローカルIPリストに含まれるいずれかのアドレスから始まるIPアドレスがローカルIPアドレスである。例えば、「192.168.xxx.xxx」「172.16.xxx.xxx」〜「172.31.xxx.xxx」または「10.xxx.xxx.xxx」はローカルIPアドレスである。
転送経路算出部271は、抽出したローカルIPアドレス毎に、ローカルIPアドレスから、ローカルIPリストに設定されているローカルアドレスを抽出する。
【0298】
転送経路算出部271は、経路情報に含まれるIPアドレスのうちローカルIPアドレスとして抽出しなかった残りのIPアドレスを、グローバルIPアドレスとして抽出する。
グローバルIPアドレスは、グローバルネットワーク(例えば、インターネット81)で用いられるIPアドレスである。
転送経路算出部271は、抽出したグローバルIPアドレス毎に、グローバルIPアドレス(32ビット)の先頭から所定のバイト数(例えば、24ビット)をネットワークアドレスとして抽出する。
【0299】
転送経路算出部271によって抽出されたローカルアドレスおよびグローバルアドレスが転送経路である。
以下、転送経路のうち1つ以上のローカルアドレスによって表される経路を「ローカル経路」といい、1つ以上のグローバルアドレスによって表される経路を「グローバル経路」という。
転送経路算出部271は、転送経路(ローカル経路およびグローバル経路)を示す転送経路データ271Aを生成する。
【0300】
図28は、実施の形態5における転送経路データ271Aの一例を示す図である。
図28に示す転送経路データ271Aは、ローカル経路としてローカルアドレスのリスト「IP
1、IP
2」を示し、グローバル経路としてグローバルアドレス(IP
3、IP
4)を示している。
ローカル経路を示すローカルアドレスのリストおよびグローバル経路を示すグローバルアドレスのリストは、電子メールの転送順(メールヘッダのReceivedフィールドの昇順)にアドレスを並べた順序有りリストであってもよいし、電子メールの転送順に関係なくアドレスを並べた順序無しリストであってもよい。
S2702の後、S2703に進む。
【0301】
S2703において、転送経路算出部271は、作成者ドメイン取得部23から、電子メールの作成者ドメインを取得する。
S2703の後、S2704に進む。
【0302】
S2704において、転送経路算出部271は、メール通信取得部21によって取得された電子メールの通信日時と、S2703で取得された作成者ドメインと、S2702で算出した転送経路(転送経路データ271A)とを対応付けてメール通信記憶部22に記憶する。
電子メールの通信日時とは、例えば、メール通信取得部21が電子メールを取得した日時、または電子メールのメールヘッダに含まれる送信日時である。
S2704の後、S2705に進む。
【0303】
S2705において、ドメイン経路学習部272は、ドメイン経路リスト272Aから、S2703で取得された作成者ドメインと同じドメインに対応付けられているドメイン経路を抽出する。
ドメイン経路学習部272は、S2702で算出した転送経路がドメイン経路リスト272Aから抽出したいずれかのドメイン経路と同じ経路であるか否かを判定する。
【0304】
図29は、実施の形態5におけるドメイン経路リスト272Aの一例を示す図である。
図29に示すように、ドメイン経路リスト272Aは、作成者ドメインと、ドメイン経路(ローカル経路およびグローバル経路)と、ドメイン経路の使用日時とを対応付けている。
【0305】
転送経路がいずれかのドメイン経路と同じ経路である場合(YES)、ドメイン経路学習部272は、ドメイン経路リスト272A(
図29参照)に設定されている当該ドメイン経路の使用日時を更新する。
例えば、ドメイン経路学習部272は、現在日時、メール通信取得部21が電子メールを取得した日時または電子メールの送信日時を用いて当該使用日時を更新する。
これにより、ドメイン経路学習処理は終了する。
【0306】
転送経路がいずれのドメイン経路とも異なる経路である場合(NO)、S2706に進む。
【0307】
S2706において、ドメイン経路学習部272は、メール通信記憶部22に記憶されている転送経路のうち、S2703で取得された作成者ドメインと同じドメインに対応付けられている転送経路を選択する。
【0308】
ドメイン経路学習部272は、S2703で取得された作成者ドメインと同じドメインに対応付けられている転送経路のうち、所定期間(例えば、直前の1カ月)の通信日時に対応付けられている転送経路を選択してもよい。つまり、ドメイン経路学習部272は、所定期間に通信された電子メールの転送経路を選択してもよい。
ドメイン経路学習部272は、電子メールの通信日時が新しい順に、所定数の転送経路を選択してもよい。
以下に、S2706の説明を続ける。
【0309】
ドメイン経路学習部272は、選択した転送経路のうち、S2702で算出された転送経路と同じ転送経路の数を計数する。
ドメイン経路学習部272は、計数した転送経路の数と所定の学習閾値(例えば、10個)とを比較し、計数した転送経路の数が所定の学習閾値(例えば、10個)以上であるか否かを判定する。
【0310】
転送経路の数が学習閾値以上である場合(YES)、S2707に進む。
転送経路の数が学習閾値未満である場合(NO)、ドメイン経路学習処理は終了する。
【0311】
S2707において、ドメイン経路学習部272は、S2702で算出した転送経路をドメイン経路としてドメイン経路リスト272A(
図29参照)に設定する。
このとき、ドメイン経路学習部272は、S2703で取得した作成者ドメインと、S2702で算出した転送経路(ドメイン経路)と、ドメイン経路の使用日時とを対応付けて設定する。
例えば、ドメイン経路学習部272は、現在日時、メール通信取得部21が電子メールを取得した日時または電子メールの送信日時をドメイン経路の使用日時として設定する。
S2702により、ドメイン経路学習処理は終了する。
【0312】
上記のドメイン経路学習処理(
図26参照)によって学習するドメイン経路は、転送経路の全経路、転送経路内のグローバル経路またはその両方のいずれであってもよい。
転送経路の全経路と転送経路内のグローバル経路との両方を学習する場合、以下のような条件で転送経路の全経路および転送経路内のグローバル経路が学習される。ここで、メール通信取得部21が取得した転送経路を対象経路とする。
対象経路の全経路と一致する転送経路が学習閾値より多く記憶されている場合(S2706)、ドメイン経路学習部272は、対象経路の全経路(転送経路内のグローバル経路を含む)をドメイン経路としてドメイン経路リスト272Aに設定する。
対象経路の全経路と一致する転送経路が学習閾値より少なく、対象経路とグローバル経路が一致する転送経路が学習閾値より多く記憶されている場合(S2706)、ドメイン経路学習部272は、対象経路内のグローバル経路だけをドメイン経路としてドメイン経路リスト272Aに設定する。この場合、ドメイン経路リスト272Aのローカル経路欄は空欄である。
【0313】
ドメイン経路学習部272は、定期的またはユーザに指定されたときなどの所定のタイミングでドメイン経路リスト272A(
図29参照)を参照し、使用日時が現在日時より所定の保持時間以上前の日時であるドメイン経路をドメイン経路リスト272Aから削除してもよい。これにより、ドメイン経路リスト272Aのデータサイズを小さくすることができる。
【0314】
図30は、実施の形態5における転送経路検査方法を示すフローチャートである。
実施の形態5における転送経路検査方法(詐称メール検出方法の一例)について、
図30に基づいて説明する。
【0315】
ここで、ドメイン経路学習部272は、ドメイン経路リスト272Aを予め生成しているものとする。
【0316】
S2710において、経路情報取得部273は、判定対象メールから中継装置のIPアドレスおよび判定対象メールの送信元アドレスなどの経路情報を取得する。
経路情報の取得方法は、ドメイン経路学習処理(
図26参照)のS2701と同様である。
S2710の後、S2720に進む。
【0317】
S2720において、転送経路算出部271は、S2710で取得された経路情報に基づいて、判定対象メールの転送経路を算出する。
転送経路の算出方法は、ドメイン経路学習処理(
図26参照)のS2702と同様である。
S2720の後、S2730に進む。
【0318】
S2730において、転送経路検査スコア決定部279は、作成者ドメイン取得部23から判定対象メールの作成者ドメインを取得する。
S2730の後、S2731に進む。
【0319】
S2731において、転送経路検査スコア決定部279は、ドメイン経路リスト272A(
図29参照)から、S2730で取得した判定対象メールの作成者ドメインと同じドメインに対応付けられたドメイン経路を取得する。
S2731の後、S2740に進む。
【0320】
S2740において、転送経路検査スコア決定部279は、S2720で算出した転送経路がS2731で取得したいずれかのドメイン経路と同じ経路であるか否かを判定し、判定結果に基づいて転送経路検査スコアを決定する。
転送経路検査スコアは、判定対象メールが詐称メールである可能性の度合いを表す値である。
例えば、判定対象メールが詐称メールである可能性が高いほど転送経路検査スコアは高く、判定対象メールが詐称メールである可能性が低いほど転送経路検査スコアは低い。
【0321】
転送経路がドメイン経路と同じ経路であるか否かを判定する判定方法は、ドメイン経路学習処理(
図26参照)のS2705と同様である。
このとき、転送経路検査スコア決定部279は、転送経路の全経路がドメイン経路と同じであるか否かを判定すると共に、転送経路内のグローバル経路がドメイン経路内のグローバル経路と同じであるか否かを判定する。但し、転送経路検査スコア決定部279は、いずれか一方の判定だけを行っても構わない。
【0322】
図31は、実施の形態5における転送経路検査スコア一覧表279Aの一例を示す図である。
例えば、
図31に示すような転送経路検査スコア一覧表279Aを記憶装置に予め記憶しておく。
転送経路検査スコア一覧表279Aは、条件と転送経路検査スコアとを対応付けている。
転送経路検査スコア決定部279は、S2720で算出した転送経路とS2731で取得したドメイン経路との関係に基づいて、転送経路検査スコアを転送経路検査スコア一覧表279Aから取得する。
【0323】
転送経路の全経路(ローカル経路およびグローバル経路)がいずれかのドメイン経路と一致する場合、転送経路検査スコア決定部279は、判定対象メールが詐称メールである可能性が低いことを意味する転送経路検査スコア「0点」を転送経路検査スコア一覧表279Aから取得する。
転送経路のグローバル経路がいずれかのドメイン経路のグローバル経路と一致する場合、転送経路検査スコア決定部279は、判定対象メールが詐称メールである可能性が比較的低いことを意味する転送経路検査スコア「2点」を転送経路検査スコア一覧表279Aから取得する。
転送経路のグローバル経路がいずれのドメイン経路のグローバル経路とも一致しない場合、転送経路検査スコア決定部279は、判定対象メールが詐称メールである可能性が高いことを意味する転送経路検査スコア「4点」を転送経路検査スコア一覧表279Aから取得する。
また、S2731でドメイン経路が取得されなかった場合、転送経路検査スコア決定部279は、判定対象メールが詐称メールであるか否かを判定できないことを意味する転送経路検査スコア「0点」を転送経路検査スコア一覧表279Aから取得する。
S2740の後、S2750に進む。
【0324】
S2750において、詐称判定部28は、S2740で決定された転送経路検査スコアに基づいて、判定対象メールが詐称メールであるか否かを判定する。
例えば、詐称判定部28は、S2740で決定された判定対象メールの転送経路検査スコアと他の実施の形態で決定される判定対象メールのスコアとの合計値と、所定の詐称評価閾値とを比較する。判定対象メールのスコアの合計値が所定の詐称評価閾値より大きい場合、詐称判定部28は、判定対象メールが詐称メールであると判定する。
但し、詐称判定部28は、転送経路検査スコアを所定の詐称評価閾値と比較し、判定対象メールが詐称メールであるか否かを判定しても構わない。
S2750により、転送経路検査方法の処理は終了する。
【0325】
ドメイン経路学習部272は、ドメイン経路を学習する対象の電子メールとして、判定対象メールを利用してもよい。
その場合、ドメイン経路学習部272は、転送経路検査方法(
図30参照)で得られた判定対象メールの転送経路と作成者ドメインとを記憶し、ドメイン経路学習処理(
図26参照)のS2705からS2707を実行すればよい。
【0326】
以上説明した詐称メール検出装置(20)は、
ネットワークを介した通信のうち、メール転送プロトコルである通信を取得するメール通信取得部(21)と、
上記メール通信取得部が取得した通信によって転送される電子メールの作成者フィールドに記載された作成者が属する作成者ドメインを取得する作成者ドメイン取得部(23)と、
上記電子メールの転送経路を算出する転送経路算出部(271)と、
判定対象メールと作成者ドメインが同じ1以上の電子メールのうち、上記判定対象メールと転送経路が一致する経路一致メールの数を計数する経路一致計数部(ドメイン経路学習部272)と、
上記経路一致計数部が計数した経路一致メールの数が所定の経路一致閾値より小さい場合に、上記判定対象メールが作成者を詐称した詐称メールである可能性があると判定する詐称判定部(28,転送経路検査スコア決定部279)とを有する。
【0327】
上記詐称メール検出装置(20)は、
上記電子メールの中継装置フィールドに記載された中継装置ドメインを取得する中継装置ドメイン取得部(経路情報取得部273)を有し、
上記転送経路算出部(271)は、上記中継装置ドメイン取得部が取得した中継装置ドメインに基づいて、上記転送経路を算出する。
【0328】
上記詐称メール検出装置(20)は、
上記メール通信取得部が取得した通信に基づいて、上記通信を構成するパケットの送信元アドレスを取得するパケット送信元取得部(経路情報取得部273)を有し、
上記転送経路算出部(271)は、上記パケット送信元取得部が取得した送信元アドレスに基づいて、上記転送経路を算出する。
【0329】
上記転送経路算出部(271)は、上記電子メールを中継した1以上のホスト装置のネットワークアドレスを算出し、算出したネットワークアドレスの順序なしリストまたは順序ありリストを、上記転送経路とする。
【0330】
上記転送経路算出部(271)は、サブネットマスクが所定の値であるものと仮定して、上記ネットワークアドレスを算出する。
【0331】
上記詐称判定部(28,279)は、上記判定対象メールと作成者ドメインが同じ電子メールのうち転送経路が互いに一致する電子メールの数が上記経路一致閾値以上である転送経路が存在し、かつ、上記経路一致計数部が計数した経路一致メールの数が上記経路一致閾値より小さい場合に、上記判定対象メールが作成者を詐称した詐称メールである可能性があると判定する。
【0332】
上記詐称判定部(28,279)は、
判定対象メールについて詐称評価値を算出し、上記経路一致計数部が計数した経路一致メールの数が所定の経路一致閾値より小さい場合に、上記詐称評価値に所定の値を加算する詐称評価値算出部(281,279)と、
上記詐称評価値算出部が算出した詐称評価値が所定の詐称評価閾値より大きい場合に、上記判定対象メールが作成者を詐称した詐称メールである可能性があると判定する詐称評価値判定部(283)とを有する。
【0333】
上記詐称メール検出装置(20)は、
上記転送経路算出部が算出した転送経路からプライベートネットワーク内における転送経路を除外したグローバル経路について、上記判定対象メールと作成者ドメインが同じ1以上の電子メールのうち、上記判定対象メールと上記グローバル経路が一致する経路部分一致メールの数を計数する経路部分一致計数部(ドメイン経路学習部272)を有し、
上記詐称評価値算出部(279)は、
上記経路一致計数部が計数した経路一致メールの数が所定の経路一致閾値より小さく、かつ、上記経路部分一致計数部が計数した経路部分一致メールの数が所定の経路部分一致閾値以上である場合に、第一の値を上記詐称評価値に加算し、上記経路一致計数部が計数した経路一致メールの数が所定の経路一致閾値より小さく、かつ、上記経路部分一致計数部が計数した経路部分一致メールの数が所定の経路部分一致閾値より小さい場合に、上記第一の値よりも大きい第二の値を上記詐称評価値に加算する。
【0334】
上記経路一致計数部(272)は、上記1以上の電子メールのうち、所定の期間内に転送された上記経路一致メールの数だけを計数する。
【0335】
上記経路一致計数部(272)は、転送時刻が新しい順に所定の数以内の電子メールのなかで、上記判定対象メールと作成者ドメインが同じ経路一致メールの数を計数する。
【0336】
実施の形態5により、転送経路検査部27は、電子メールの作成者ドメイン毎に、電子メールが転送される可能性が高い転送経路をドメイン経路として学習することができる。
また、転送経路検査部27は、電子メールの転送経路と学習したドメイン経路とに基づいて、電子メールが詐称メールである可能性の度合いを表す転送経路検査スコアを決定することができる。
そして、詐称判定部28は、転送経路検査スコアに基づいて、電子メールが詐称メールであるか否かを判定することができる。
【0337】
電子メールは、通常、同一の送信者ドメインからは同一の経路で届く。このため、送信者ドメインごとの転送経路を学習しておき、異なる経路で届いた電子メールを、詐称メールの可能性があると判定する。
しかし、ローカルネットワーク内での経路は、人や組織によって異なる可能性がある。そこで、転送経路を、グローバル経路とローカル経路とに分け、全経路が一致した転送経路と、グローバル経路のみが一致した転送経路とを学習する。判定対象メールが詐称メールであるか否かの判定は、全経路が一致する場合、グローバル経路は一致するがローカル経路は一致しない場合、グローバル経路も一致しない場合の3段階で行う。
これにより、判定対象メールが詐称メールであるか否かの判定精度を高くすることができ、標的型サイバー攻撃による秘密情報の漏洩を防ぐことができる。
【0338】
実施の形態6.
実施の形態6について、
図32〜
図40を用いて説明する。
この実施の形態では、実施の形態1で説明した不正通信検出装置30の構成例について、詳しく説明する。
なお、実施の形態1〜実施の形態5と共通する構成には、同一の符号を付し、説明を省略する場合がある。
【0339】
図32は、本実施の形態に係る不正通信検出装置30のブロック構成図である。
不正通信検出装置30は、通信取得部31、通信記憶部31a、特性値算出部32、特性値蓄積部32a、統計量算出部33、統計量記憶部33a、通信計数部35、通信数蓄積部35a、通信数統計量算出部36、通信数統計量記憶部36a、不正判定部37、分析結果テーブル37aを備える。
【0340】
通信記憶部31a、特性値蓄積部32a、統計量記憶部33a、通信数蓄積部35a、通信数統計量記憶部36a、分析結果テーブル37aは記憶装置に備えられている。
【0341】
通信取得部31は、入力装置92を用いて、端末装置12がウェブプロキシ装置15(
図2参照)やインターネット81を介して送受信するウェブ通信を取得する。ウェブプロキシ装置15は、端末装置12(
図1参照)からの要求にしたがって、外部のウェブサーバ装置83(
図1参照)からウェブページを取得し、端末装置12に対して送信する。通信取得部31は、特に、端末装置12からウェブサーバ装置83へ向けて送信するリクエスト側のウェブ通信を取得する。
【0342】
例えば、通信取得部31は、端末装置12がウェブプロキシ装置15に対して送信するIP(インターネットプロトコル)パケットをキャプチャする。IPパケットのヘッダ部分には、バージョン、ヘッダ長、サービスタイプ、全長、識別子、フラグ、断片位置、生存時間、プロトコル、チェックサム、送信元アドレス、宛先アドレス、オプションなどの情報が格納されている。
【0343】
通信取得部31は、キャプチャしたIPパケットを解析して、トランスポート層のプロトコルにおけるメッセージを再構成する。トランスポート層のプロトコルには、例えばTCP(伝送制御プロトコル)やUDP(ユーザデータグラムプロトコル)などがある。
【0344】
通信取得部31は、再構成したトランスポート層におけるメッセージを解析して、アプリケーション層のプロトコルにおけるメッセージを再構成する。アプリケーション層のプロトコルは、端末装置12のウェブブラウザとウェブサーバ装置83との間のプロトコルであり、例えば、HTTP(ハイパーテキスト転送プロトコル)などである。
【0345】
通信取得部31は、アプリケーション層のプロトコルにおけるメッセージを再構成することにより、再構成したメッセージのなかから、所定のメッセージ(例えば、HTTPリクエスト)を取得する。例えば、通信取得部31は、ウェブプロキシ装置15からウェブサーバ装置83へ送信されるHTTPによるリクエスト(以下、HTTPリクエスト310とする)を取得する。通信取得部31は、取得したHTTPリクエスト310を、通信記憶部31aに蓄積する。
【0346】
特性値算出部32は、通信取得部31が取得したHTTPリクエスト310(通信の一例)を通信記憶部31aから入力する。特性値算出部32は、入力したHTTPリクエスト310(以下、判定対象のHTTPリクエスト310ともいう)に基づいて、HTTPリクエスト310の特性値320を算出する。
【0347】
図33は、本実施の形態におけるHTTPリクエスト310の一例を示す図であり、(a)はゲットメソッドによるHTTPリクエスト310(以下「ゲットリクエスト310g」と呼ぶ。)及びゲットリクエスト310gから取得されるURI311の一例、(b)はポストメソッドによるHTTPリクエスト310(以下「ポストリクエスト310p」と呼ぶ。)及びポストリクエスト310pから取得されるURI311の一例である。
図33を用いて、特性値算出部32による特性値320の算出について説明する。
【0348】
図33(a)(b)に示すように、HTTPリクエスト310は、先頭から、メソッド名314、リソース名、通信プロトコルバージョンを備える。HTTPリクエスト310の「Host」フィールドには、宛先ホスト317のホスト名が設定されている。
また、「User−Agent」フィールドには、UAが設定されている。UAは、そのHTTPリクエストを生成したウェブブラウザなどのプログラムを識別するための文字列である。
【0349】
メソッド名314には、HTTPリクエスト310がゲットメソッドによるものの場合には「GET」が設定され、ポストメソッドによるものの場合には「POST」が設定される。
【0350】
リソース名には、宛先ホストのリソース名が設定される。
リソース名は、絶対パス文字列を含む。リソース名は、クエリー文字列を含む場合がある。クエリー文字列は、リソース名のうち、文字「?」より後ろの部分である。クエリー文字列は、パラメータを表わす。リソース名がクエリー文字列を含む場合、絶対パス文字列は、リソース名のうち、文字「?」より前の部分である。
HTTPリクエスト310がゲットリクエスト310gの場合のクエリー文字列をGETパラメータ312と呼ぶ。
リソース名に文字「?」が含まれない場合、リソース名は、クエリー文字列を含まない。その場合、リソース名全体が絶対パス文字列である。
【0351】
なお、リソース名は、「http:」などのプロトコル文字列及びホスト名を含む場合がある。リソース名がプロトコル文字列及びホスト名を含む場合、プロトコル文字列及びホスト名は、絶対パス文字列の前に付加されている。
【0352】
図33(a)に示すように、ゲットリクエスト310gの宛先ホスト名とリソース名と連結した文字列をURI311(統一資源識別子)と呼ぶ。URI311のうち、GETパラメータ312(及び文字「?」)を除いた部分をURL313と呼ぶ。
【0353】
図33(a)に示すように、ゲットリクエスト310gのURI311「www.aaaaa.co.jp/myservlet1?name=xyz&color=red」は、URL313部分「www.aaaaa.co.jp/myservlet1」と、GETパラメータ312部分「name=xyz&color=red」とから構成される。
【0354】
図33(b)に示すように、リソース名にクエリー文字列が含まれない場合は、URI311とURL313とは、同一の文字列である。
【0355】
図33(b)に示すように、ポストリクエスト310pのURI311「www.aaaaa.co.jp/myservlet2」は、宛先を示すURL313部分のみであり、GETパラメータ312部分はない。
ポストリクエスト310pは、GETパラメータ312を含まない代わりに、ポストメッセージ311pをメッセージボディに含む。ポストメッセージ311pは、パラメータを表わす。
【0356】
URI311のURL313は、宛先(宛先ホスト317、宛先サイト、宛先ウェブサーバ装置等ともいう)を示している。
【0357】
特性値算出部32は、入力した判定対象のHTTPリクエスト310を解析して、特性値320を取得する。特性値320は、例えば、HTTPリクエスト310のURI全体長321、GETパラメータ長322、URL長323、リクエスト全体長324等である。
【0358】
URI全体長321とは、URI311全体の長さのことである。例えば、特性値算出部32は、入力した判定対象のHTTPリクエスト310を解析して、URI311を取得する。特性値算出部32は、取得したURI311に基づいて、URI全体長321を算出する。
GETパラメータ長322とは、GETパラメータ312の長さ(クエリー文字列の長さ)のことである。例えば、特性値算出部32は、取得したURI311からクエリー文字列を抽出する。特性値算出部32は、抽出したクエリー文字列に基づいて、GETパラメータ長322を算出する。
URL長323とは、URL313の長さのことである。例えば、特性値算出部32は、取得したURI311からURL313を抽出する。特性値算出部32は、抽出したURL313に基づいて、URL長323を算出する。
リクエスト全体長324とは、HTTPリクエスト310全体の長さのことである。例えば、特性値算出部32は、入力したHTTPリクエスト310に基づいて、リクエスト全体長324を算出する。
【0359】
例えば、特性値算出部32は、1つのHTTPリクエスト310に対して、URI全体長321と、GETパラメータ長322と、URL長323と、リクエスト全体長324とを、特性値320として算出する。なお、特性値算出部32は、URI全体長321と、GETパラメータ長322と、URL長323と、リクエスト全体長324とのうち少なくともいずれか1つを特性値320として算出する構成であってもよい。
【0360】
特性値蓄積部32aは、特性値算出部32により算出された特性値320を蓄積する。特性値算出部32は、1つのHTTPリクエスト310について、1つの特性値情報を特性値蓄積部32aに記憶させる。特性値情報は、宛先ホスト317と、メソッド名314と、URI全体長321と、GETパラメータ長322と、URL長323と、リクエスト全体長324とを含む。特性値蓄積部32aには、端末装置12のウェブブラウザとウェブサーバ装置83との間の通信(HTTPリクエスト310)に対応付けられた特性値情報(URI全体長321、GETパラメータ長322、URL長323、リクエスト全体長324などの特性値320を含む。)が蓄積される。特性値蓄積部32aは、多数のHTTPリクエスト310についての特性値情報を記憶する。
【0361】
統計量算出部33は、特性値算出部32が算出した1つ以上の通信(HTTPリクエスト310)に対応付けられた特性値320に基づいて、統計量330を算出する。統計量算出部33が算出する統計量330には、例えば、特性値の平均値や標準偏差(または分散)などがある。
【0362】
統計量算出部33は、統計量330として、特性値蓄積部32aに蓄積されている1つ以上の通信(HTTPリクエスト310)に対応付けられた特性値320を平均した平均値と、1つ以上の通信(HTTPリクエスト310)に対応付けられた特性値320の標準偏差とを演算装置95により算出する。
【0363】
統計量算出部33は、特性値蓄積部32aに蓄積されたすべての通信についての特性値320に基づく統計量330を算出してもよいし、所定の種類の通信についての特性値320だけを抽出して統計量330を算出してもよい。例えば、統計量算出部33は、すべてのHTTPリクエスト310について、URI全体長321の統計量330を算出する。統計量算出部33は、ゲットリクエスト310gについて、リクエスト全体長324の統計量330を算出する。また、統計量算出部33は、ポストリクエスト310pについても、リクエスト全体長324の統計量を算出する。
【0364】
統計量算出部33は、特性値蓄積部32aに蓄積されている特性値情報によって表わされる特性値のうち、例えば、URI全体長321、GETパラメータ長322、URL長323について、それぞれの平均値及び標準偏差を統計量330として演算装置95により算出する。
【0365】
図33(a)(b)に示すように、HTTPリクエスト310には、ゲットメソッドによるゲットリクエスト310gと、ポストメソッドによるポストリクエスト310pとがある。
【0366】
統計量算出部33は、特性値蓄積部32aに蓄積されている特性値情報によって表わされる特性値のうち、例えば、リクエスト全体長324について、メソッド名314が「GET」であるHTTPリクエスト310(すなわち、ゲットリクエスト310g)についてのリクエスト全体長324だけの平均値及び標準偏差を、統計量330として算出する。また、統計量算出部33は、メソッド名314が「POST」であるHTTPリクエスト310(すなわち、ポストリクエスト310p)についてのリクエスト全体長324だけの平均値及び標準偏差を、統計量330として算出する。
【0367】
統計量算出部33が統計量330を算出するタイミングは、例えば、特性値算出部32から判定対象のHTTPリクエスト310の特性値320が出力されるたびである。すなわち、統計量算出部33は、特性値算出部32から特性値320が出力されるたびに、出力された特性値320を統計量330算出の母集団に含め、最新のデータに基づく統計量330を算出する。
【0368】
統計量算出部33は、判定対象のHTTPリクエスト310がゲットメソッドである場合にはゲットリクエスト310gについてのリクエスト全体長324の平均値及び標準偏差を算出する。一方、統計量算出部33は、判定対象のHTTPリクエスト310がポストメソッドである場合にはポストリクエスト310pについてのリクエスト全体長324の平均値及び標準偏差を算出する。
統計量算出部33は、判定対象のHTTPリクエスト310がゲットメソッドであるかポストメソッドであるかにかかわらず、URI全体長321、GETパラメータ長322、URL長323などの平均値及び標準偏差を算出する。
【0369】
統計量記憶部33aは、統計量算出部33により算出された統計量330を記憶する。統計量算出部33が算出する統計量330は、例えば、URI全体長321の平均値及び標準偏差、GETパラメータ長322の平均値及び標準偏差、URL長323の平均値及び標準偏差、ゲットリクエスト310gのリクエスト全体長324の平均値及び標準偏差、ポストリクエスト310pのリクエスト全体長324の平均値及び標準偏差である。統計量算出部33は、算出した統計量330を統計量記憶部33aに記憶する。
【0370】
統計量算出部33は、統計量330を算出すると、統計量記憶部33aに既に記憶されている統計量330を、新たに算出した最新の統計量330に更新する。統計量330は母集団が大きいほど信頼性が高いと考えられるので、統計量記憶部33aには常に一番信頼性の高い統計量330(URI全体長321の平均値及び標準偏差、GETパラメータ長322の平均値及び標準偏差、URL長323の平均値及び標準偏差、ゲットリクエスト310gのリクエスト全体長324の平均値及び標準偏差、ポストリクエスト310pのリクエスト全体長324の平均値及び標準偏差)が記憶されていることになる。
【0371】
通信計数部35は、所定の期間内に通信取得部31が取得した通信の数を、通信の宛先ごとに計数する。例えば、通信計数部35は、所定の期間(例えば、24時間とする)に取得したHTTPリクエスト310の数を、宛先(以下、宛先ホスト317ともいう)ごとに計数し、所定期間通信数350として通信数蓄積部35aに蓄積する。所定の期間は、例えば、6時間、12時間、1週間、3週間、1ヶ月等、適宜設定することができるものとする。通信数蓄積部35aには、宛先ホスト317ごとに、複数の所定期間通信数350が蓄積される。
【0372】
通信数統計量算出部36は、通信数蓄積部35aに蓄積されている宛先ホスト317ごとの複数の所定期間通信数350の通信数統計量360(統計量の一例)を宛先ホスト317ごとに算出する。通信数統計量算出部36は、宛先ホスト317ごとの複数の所定期間通信数350の平均値と標準偏差とを算出し、標準偏差を平均値で割った変動係数を宛先ホスト317ごとの通信数統計量360として演算装置95により算出する。通信数統計量算出部36は、宛先ホスト317ごとの通信数統計量360を通信数統計量記憶部36aに記憶する。
【0373】
通信数統計量算出部36が通信数統計量360を算出するタイミングは、例えば、通信計数部35が所定期間通信数350を通信数蓄積部35aに蓄積したタイミングである。
【0374】
不正判定部37は、特性値分析部371、通信数分析部372、通信種別分析部373を備える。
【0375】
特性値分析部371は、統計量記憶部33aに記憶されている統計量330に基づいて、判定対象のHTTPリクエスト310の特性値320(以下、判定対象特性値325とする)が異常値であるか否かを演算装置95により判定する。特性値分析部371は、判定対象特性値325が異常値であると判定した場合に、判定対象のHTTPリクエスト310が不正通信の可能性があると判定する。
【0376】
特性値分析部371は、例えば、判定対象特性値325が、標準偏差に所定の定数を乗じた値を平均値に加えた値よりも大きい場合に、判定対象特性値325が異常値であると判定する。あるいは、特性値分析部371は、判定対象特性値325が、標準偏差に所定の定数を乗じた値を平均値から差し引いた値よりも小さい場合に、判定対象特性値325が異常値であると判定する。あるいは、特性値分析部371は、上記2つの場合のどちらであっても、判定対象特性値325が異常値であると判定する。
例えば、特性値分析部371は、判定対象特性値325と平均値Xとの差が、標準偏差σの3倍以内である場合には正常と判定し、判定対象特性値325と平均値Xとの差が、標準偏差σの3倍を超える場合には異常値であると判定する。
【0377】
特性値320の分布が正規分布であると仮定すると、特性値320と平均値Xとの差が3σ以下である確率は、99.7%である。特性値320がX+3σより大きい確率は0.15%、特性値320がX−3σより小さい確率は同じく0.15%である。したがって、特性値320と平均値Xとの差が3σより大きいケースは、稀にしか発生しない。
【0378】
なお、標準偏差に乗じる所定の定数は、3に限らず、例えば2など、0より大きい実数であればよい。例えば、特性値320と平均値Xとの差が2σ以下である確率は、95%である。特性値320がX+2σより大きい確率は2.5%、特性値320がX−2σより小さい確率は同じく2.5%である。したがって、特性値320と平均値Xとの差が2σより大きいケースは、3σより大きいケースよりは頻繁であるが、やはり稀にしか発生しない。
【0379】
標的型サイバー攻撃に使われるコンピュータウィルスは、ローカルネットワークシステム10の構造などを調査し、調査結果をHTTPリクエストの形式で、攻撃者のサーバ装置に対して送信する。コンピュータウィルスは、調査結果を表わす情報を、例えばGETパラメータ312やポストメッセージ311pなど、HTTPリクエストのどこか埋め込んで送信する。このため、コンピュータウィルスが送信するHTTPリクエストのGETパラメータ長322やリクエスト全体長324などは、通常のHTTPリクエストと比べて大きくなる可能性が高い。
そこで、これらの特性値320が異常に大きい場合は、標的型サイバー攻撃のコンピュータウィルスによる不正通信である可能性がある。
【0380】
逆に、これらの特性値320が異常に小さい場合も、なんらかの偽装が行われている可能性がある。すなわち、標的型サイバー攻撃のコンピュータウィルスによる不正通信である可能性がある。
【0381】
そこで、特性値分析部371は、判定対象特性値325が異常値であるか否かを判定し、異常値である場合に、判定対象のHTTPリクエスト310が不正通信の可能性があると判定する。
【0382】
判定対象特性値325が異常値であるか否かの判定に用いる閾値は、多数のHTTPリクエストの特性値320から算出した統計量330に基づいて算出する。これにより、あらかじめ定めた閾値を用いる場合よりも適切な閾値を使うことができるので、不正通信の可能性を精度よく判定することができる。
【0383】
なお、統計量算出部33が算出した統計量330が、特性値蓄積部32aに蓄積された通信のうち所定の種類のHTTPリクエストについての特性値320だけを抽出して算出したものである場合には、特性値分析部371は、判定対象のHTTPリクエスト310の種類に応じて、それと同じ種類のHTTPリクエストについての特性値320から算出した統計量330に基づいて閾値を算出し、判定対象特性値325と比較する。
【0384】
例えば、統計量算出部33は、リクエスト全体長324について、ゲットリクエスト310gについての統計量330と、ポストリクエスト310pについての統計量330とを算出する。
判定対象のHTTPリクエスト310がゲットリクエストである場合、特性値分析部371は、判定対象のHTTPリクエスト310から算出したリクエスト全体長324を、ゲットリクエスト310gについての統計量330から算出した閾値と比較する。また、判定対象のHTTPリクエスト310がゲットリクエストである場合、特性値分析部371は、判定対象のHTTPリクエスト310から算出したリクエスト全体長324を、ポストリクエスト310pについての統計量330から算出した閾値と比較する。
【0385】
リクエスト全体長324は、メソッドによって大きく異なることが予想される。
このように通信の種類によって大きく異なる可能性がある特性値320の場合、特性値320が正規分布していると仮定することができない。したがって、通信の種類に関わらず算出した統計量330を使ったのでは、よい閾値を算出することができない。
そこで、そのような特性値320については、通信を種類によって分類し、それぞれの種類の通信についての統計量330を算出する。
それぞれの分類のなかでは、特性値320が正規分布しているとの仮定が成り立つ。これにより、通信の種類に関わらず算出した統計量330を用いる場合よりも適切な閾値を使うことができるので、不正通信の可能性を精度よく判定することができる。
【0386】
特性値分析部371は、判定対象のHTTPリクエスト310の判定対象特性値325(URI全体長321、GETパラメータ長322、URL長323、リクエスト全体長324)についての分析結果を分析結果テーブル37aに記憶する。不正判定部37による分析結果テーブル37aへの書込処理については後述する。
【0387】
通信数分析部372は、1つ1つのHTTPリクエストについて不正通信の可能性があるかどうかを判定するのではなく、ある宛先に対する1つ以上のHTTPリクエストを全体として見て、不正通信の可能性があるか否かを判定する。
【0388】
例えば、通信数分析部372は、いずれかの宛先(宛先ホスト317)について、通信計数部35が計数した所定期間通信数350が1である場合に、不正通信の可能性があると判定する。通信数分析部372は、通信計数部35が通信数蓄積部35aに蓄積した所定期間通信数350が1であると判定した場合に、その宛先ホスト317に対する通信が不正通信である可能性があると判定する。
【0389】
標的型サイバー攻撃に使われるコンピュータウィルスは、不正通信が露見しないように、様々な形での偽装を行う可能性がある。
例えば、同じサーバ装置に対して繰り返しHTTPリクエストを送信すると、不正通信を疑われる可能性があるので、攻撃者は、サーバ装置を複数用意しておき、コンピュータウィルスは、HTTPリクエストを送信する相手のサーバ装置を、送信のたびに変える可能性がある。
そのような攻撃パターンの可能性を考えると、一定期間に1アクセスしかないサイトは、逆に怪しいと考えられる。通常のウェブページ閲覧に伴うHTTPリクエストであれば、そのページに含まれる画像データにアクセスしたり、同じサイトの別のページにアクセスしたりするため、同じサーバ装置に対して、一定期間に複数のHTTPリクエストを送信するほうが、むしろ普通である。
【0390】
そこで、通信数分析部372は、ある宛先ホスト317に対するアクセスが一定期間に1つしかない場合、不正通信の可能性があると判定する。
【0391】
通信数分析部372は、例えば、通信計数部35が所定期間通信数350を算出する度に、所定期間通信数350の分析を実行する。通信数分析部372は、宛先ホスト317に対する通信が不正通信である可能性があると判定した場合に、その分析結果を分析結果テーブル37aに記憶する。不正判定部37による分析結果テーブル37aへの書込処理については後述する。
【0392】
また、通信数分析部372は、通信数統計量算出部36が算出した通信数統計量360(変動係数)が所定の閾値より小さい場合に、不正通信の可能性があると判定する。通信数分析部372は、通信数統計量算出部36が通信数統計量360(変動係数)を算出する度に、通信数統計量360(変動係数)と所定の閾値とを演算装置95により比較し、通信数統計量360(変動係数)が前記所定の閾値より小さい場合に、算出した通信数統計量360に対応する宛先ホスト317に対する通信が不正通信である可能性があると判定する。
【0393】
上述したように、標的型サイバー攻撃に使われるコンピュータウィルスは、ローカルネットワークシステム10の構造などを調査し、調査結果をHTTPリクエストの形式で、攻撃者のサーバ装置に対して送信する。この送信は、定期的に行われるなど、決まったパターンにしたがって機械的に行われる可能性がある。
通信数統計量360(変動係数)の値が小さいということは、所定期間通信数350の変動が小さいことを意味し、アクセスが機械的であることを意味する。
そこで、通信数分析部372は、通信数統計量360(変動係数)が前記所定の閾値より小さい場合に、その宛先ホスト317に対する通信が不正通信である可能性があると判定する。
【0394】
通信数分析部372は、宛先ホスト317に対する通信が不正通信である可能性があると判定した場合に、その分析結果を分析結果テーブル37aに記憶する。不正判定部37による分析結果テーブル37aへの書込処理については後述する。
【0395】
通信種別分析部373は、判定対象のHTTPリクエスト310(通信)について、特性値分析部371や通信数分析部372とは異なる観点から、判定対象のHTTPリクエスト310が不正通信である可能性があるか否かを判定する。通信種別分析部373は、例えば、HTTPリクエスト310(通信)のメソッド、フォーマット、ユーザエージェント(以下、UAとする)、宛先(宛先ホスト317)等の内容に基づいて、不正通信の可能性を判定する。
【0396】
また、通信種別分析部373は、通信取得部31が取得したHTTPリクエスト310(通信)がポストリクエスト310pである場合に、そのポストリクエスト310pは不正通信である可能性があると判定する。
例えば、セキュリティポリシーによりポストリクエスト310pの使用が禁止されている場合、ポストリクエスト310pがあるというだけで、その通信が不正通信であると判定できる。
【0397】
また、通信種別分析部373は、通信取得部31が取得したHTTPリクエスト310(通信)のフォーマットがHTTPの規定に合致しない場合に、そのHTTPリクエスト310は不正通信である可能性があると判定する。
例えば、標的型サイバー攻撃のコンピュータウィルスは、表面上は、HTTPにしたがったHTTPリクエスト310であると見せかけているが、内容をよく見ると、HTTPの規定にしたがっていないものを送信する可能性がある。
【0398】
また、通信種別分析部373は、通信取得部31が取得したHTTPリクエスト310(通信)のUAが所定のリスト(以下、UAホワイトリストという)に含まれるUAでない場合に、そのHTTPリクエスト310は不正通信である判定する。通信種別分析部373は、あらかじめUAホワイトリストを記憶している。UAホワイトリストに含まれるUAは、例えば、一般的なウェブブラウザが使用しているUAである。
【0399】
HTTPリクエストのUAフィールドには、比較的自由な文字列を設定することができる。このため、標的型サイバー攻撃のコンピュータウィルスは、調査結果を表わす情報を、User−Agentフィールドに埋め込む可能性がある。
そこで、通信種別分析部373は、HTTPリクエストのUAが、一般的なウェブブラウザが使用しているものと異なる場合、その通信が不正通信である可能性があると判定する。
【0400】
また、通信種別分析部373は、通信取得部31が取得したHTTPリクエスト310(通信)の宛先(宛先ホスト317)が所定のリスト(以下、ホストブラックリストという)に含まれる宛先である場合に、不正通信の可能性があると判定する。通信種別分析部373は、あらかじめホストブラックリストを記憶している。ホストブラックリストに含まれる宛先ホストは、例えば、不正サイトとして知られている宛先ホストである。
【0401】
ウェブブラウザには、利用者が間違って不正サイトにアクセスしないよう、不正サイトに対するアクセスを遮断する機能を有するものがある。その場合、ウェブブラウザは、不正サイトに対するHTTPリクエストを送信しないので、不正サイトに対するHTTPリクエストがあれば、それは、ウェブブラウザ以外のプログラムが送信したものである。したがって、そのHTTPリクエストを送信したプログラムが標的型サイバー攻撃のコンピュータウィルスである可能性がある。
そこで、通信種別分析部373は、HTTPリクエストの宛先が、不正サイトである場合、その通信が不正通信である可能性があると判定する。
【0402】
なお、通信種別分析部373は、HTTPリクエスト310(通信)がポストリクエスト310pである場合と、上記通信のフォーマットがHTTPの規定に合致しない場合と、上記通信のUAがUAホワイトリストに含まれるユーザエージェントでない場合と、宛先ホスト317がHostブラックリストに含まれる宛先ホスト317である場合とのうち、いずれかの場合に、不正通信の可能性があると判定する構成であってもよい。あるいは、通信種別分析部373は、4つの条件のうちの2つ、あるいは、3つの条件だけを判定する構成であってもよい。
【0403】
通信種別分析部373は、宛先ホスト317に対する通信が不正通信である可能性があると判定した場合に、その分析結果を分析結果テーブル37aに記憶する。不正判定部37による分析結果テーブル37aへの書込処理については後述する。
【0404】
レポート生成部38は、特性値分析部371、通信数分析部372、通信種別分析部373による分析結果に基づいて、レポート380を出力する。レポート生成部38は、分析結果テーブル37aに基づいて、宛先ホスト317ごとに、特性値320(URI全体長321、GETパラメータ長322、URL長323、リクエスト全体長324)が異常値と判定された件数、所定期間通信数350が異常値と判定された件数、通信種別374が異常であると判定された件数等が示されたレポート380を生成して出力する。このレポート380に基づいて、ローカルネットワークシステム10の管理者は、例えば、コンピュータウィルスの駆除を行うなどの防御対策を講じることができる。これにより、標的型サイバー攻撃による被害を未然に防ぐことができる。
【0405】
図34は、本実施の形態に係る不正通信検出装置30の不正通信検出方法を示すフローチャートである。
図35は、本実施の形態に係る分析結果テーブル37aの構成の一例を示す図である。
図36は、本実施の形態に係る不正通信検出装置30の特性値分析方法を示すフローチャートである。
図37は、本実施の形態に係る不正通信検出装置30の通信数分析方法を示すフローチャートである。
図38は、本実施の形態に係る通信数蓄積部35a及び通信数統計量記憶部36aの構成の一例を示す図である。
図39は、本実施の形態6に係る不正通信検出装置30の通信種別分析方法を示すフローチャートである。
図34〜
図39を用いて、不正通信検出装置30の不正通信検出方法の概要について説明する。
【0406】
図34に示すように、不正通信検出装置30の不正通信検出方法は、通信取得処理(S310)、特性値分析処理(S320)、通信数分析処理(S330)、通信種別分析処理(S340)、レポート生成処理(S350)を備える。
【0407】
通信取得処理(S310)において、通信取得部31は、上述したようにHTTPリクエスト310を取得し、判定対象のHTTPリクエスト310として通信記憶部31aに記憶する。
【0408】
図35は、本実施の形態に係る分析結果テーブル37aの構成の一例を示す図である。
図35に示すように、分析結果テーブル37aは、宛先ホスト名に対して、複数の項目が対応付けられている。複数の項目とは、リクエスト数、URI全体長、URL長、GETパラメータ長、ゲットリクエスト全体長、ポストリクエスト全体長、リクエスト数=1、リクエスト分散(通信数変動係数)、POST数、不正HTTP、不正UA、不正サイト等である。項目は、リクエスト数、URI全体長、URL長、GETパラメータ長、ゲットリクエスト全体長、ポストリクエスト全体長、リクエスト数=1、通信数変動係数、POST数、不正HTTP、不正UA、不正サイトのうちの少なくともいずれかでもよい。
【0409】
通信取得部31は、HTTPリクエスト310を取得すると、HTTPリクエスト310の「Host」から(
図33参照)、宛先ホスト317を特定し、分析結果テーブル37aのなかに特定した宛先ホスト317があるか否かを演算装置95により判定する。通信取得部31は、分析結果テーブル37aのなかに特定した宛先ホスト317があると判定した場合には、特定した宛先ホスト317のレコードの「リクエスト数」の項目をカウントアップする。通信取得部31は、特定した宛先ホスト317のレコードが分析結果テーブル37aに無いと判定した場合には、特定した宛先ホスト317のレコードを生成し、「リクエスト数」の項目に1を設定する。
【0410】
次に、
図36を用いて、特性値分析方法(特性値分析処理)(S320)について説明する。
【0411】
<S321:特性値算出工程>
特性値算出部32は、通信記憶部31aから判定対象のHTTPリクエスト310を読み込む。特性値算出部32は、判定対象のHTTPリクエスト310のURI311(
図33参照)を取得する。
【0412】
特性値算出部32は、URI311の全体の文字数を演算装置95によりカウントし、URI全体長321として特性値蓄積部32aに書き込む。また、特性値算出部32は、URI311のうち、“?”より後のクエリー文字列(GETパラメータ312の文字列)の文字数を演算装置95によりカウントし、GETパラメータ長322として特性値蓄積部32aに書き込む。特性値算出部32は、URI311において“?”がない場合には、GETパラメータ長322を「0」とする。
【0413】
また、特性値算出部32は、URI311の文字列のうち、“?”よりも前の文字列(絶対パス文字列)の文字数を演算装置95によりカウントし、URL長323として特性値蓄積部32aに書き込む。
図33(a)に示すように、特性値算出部32は、URI311の“www”の1文字目から“?”の前までの文字数をカウントし、URL長323とする。URI311において“?”がない場合は、GETパラメータ312部分がないので、特性値算出部32は、URI全体長321をそのままURL長323とし、特性値蓄積部32aに書き込む。
【0414】
また、特性値算出部32は、HTTPリクエスト310の全体の文字数を演算装置95によりカウントし、リクエスト全体長324とする。
上述したように、リクエスト全体長324は、ゲットリクエスト310gの場合と、ポストリクエスト310pの場合とで大きく異なる可能性が高い。これは、ウェブページの設計において、パラメータの数が少ない場合は、ゲットメソッドを用いることが多く、パラメータの数が多い場合や、ファイルのアップロードなどGETパラメータ312として記述することができない場合は、ポストメソッドを用いることが多いからである。したがって、リクエスト全体長324は、ポストリクエスト310pの方がゲットリクエスト310gよりも長いと考えられる。
【0415】
図33(a)(b)に示すように、HTTPリクエスト310の先頭文字列は、“GET”、あるいは、“POST”といったメソッド名314になっている。特性値算出部32は、メソッド名314を演算装置95により判定し、判定対象のHTTPリクエスト310のメソッドが“GET”であるか“POST”であるかを判定する。
なお、メソッドには、“GET”及び“POST”以外のものもある。判定対象のHTTPリクエスト310のメソッドが“GET”でも“POST”でもない場合、特性値算出部32は、例えば、判定対象のHTTPリクエスト310のメソッドが「その他」であると判定する。
【0416】
以上のように、特性値算出部32は、URI全体長321、GETパラメータ長322、URL長323、メソッドの種別、リクエスト全体長324を、HTTPリクエスト310に対応付けて特性値蓄積部32aに蓄積する。特性値算出部32は、URI全体長321、GETパラメータ長322、URL長323、リクエスト全体長324のうちの少なくともひとつを特性値320としてもよい。
【0417】
<S322:統計量算出工程>
統計量算出部33は、特性値蓄積部32aに蓄積されているHTTPリクエスト310について、URI全体長321の平均値及び標準偏差、GETパラメータ長322の平均値及び標準偏差、URL長323の平均値及び標準偏差を統計量330として演算装置95により算出する。統計量算出部33は、算出したURI全体長321の平均値及び標準偏差、GETパラメータ長322の平均値及び標準偏差、URL長323の平均値及び標準偏差を、統計量記憶部33aに記憶する。
【0418】
このとき、不正通信検出装置30が最初にHTTPリクエスト310を取得して不正通信検出処理を開始する場合には、特性値320の母集団の構成要素は1つということになる。母集団の構成要素の数があまりにも少ない場合には、統計量330の信頼度が低い。したがって、統計量330を算出するための母集団の構成要素の数が所定の数以上になってから、統計量算出処理を開始する構成であってもよい。
【0419】
具体的には、特性値算出部32が特性値320を算出して、特性値蓄積部32aに蓄積したHTTPリクエスト310の数が所定数を超えたら、統計量算出部33が起動するように設計してもよい。
【0420】
また、統計量算出部33は、特性値蓄積部32aに蓄積されているHTTPリクエスト310について、ゲットリクエスト310gのリクエスト全体長324(ゲットリクエスト全体長324gとする)の平均値及び標準偏差、ポストリクエスト310pのリクエスト全体長(ポストリクエスト全体長324pとする)の平均値及び標準偏差を統計量330として演算装置95により算出する。
【0421】
統計量算出部33は、特性値蓄積部32aに蓄積されているHTTPリクエスト310のなかのメソッド種別が“GET”のもののリクエスト全体長324の平均値及び標準偏差を演算装置95により算出してゲットリクエスト全体長324gの平均値及び標準偏差とする。また、統計量算出部33は、特性値蓄積部32aに蓄積されているHTTPリクエスト310のなかのメソッド種別が“POST”のもののリクエスト全体長324の平均値及び標準偏差を演算装置95により算出してポストリクエスト全体長324pの平均値及び標準偏差とする。統計量算出部33は、算出したゲットリクエスト全体長324gの平均値及び標準偏差及びポストリクエスト全体長324pの平均値及び標準偏差を統計量記憶部33aに記憶する。
【0422】
なお、メソッドが「その他」であるHTTPリクエスト310について、統計量算出部33は、ゲットリクエスト310gやポストリクエスト310pとは別に、例えばリクエスト全体長324などの特性値から、例えば平均値や標準偏差などの統計量を算出する構成であってもよい。
あるいは、統計量算出部33は、メソッドが「その他」であるHTTPリクエスト310をゲットリクエスト310gであるとみなして、特性値の統計量を算出する構成であってもよい。すなわち、統計量算出部33は、ポストメソッド以外のメソッドであるHTTPリクエスト310についての統計量と、ポストメソッドであるHTTPリクエスト310についての統計量とを算出する構成であってもよい。
【0423】
<S323:特性値分析工程>
特性値分析部371は、特性値算出部32が特性値蓄積部32aに蓄積した判定対象のHTTPリクエスト310について、統計量記憶部33aに記憶されている統計量330に基づいて、判定対象特性値325を分析する。
【0424】
特性値分析部371は、特性値蓄積部32aから判定対象のHTTPリクエスト310のURI全体長321を読み出す。特性値分析部371は、統計量記憶部33aからURI全体長321の平均値(Xとする)及び標準偏差(σとする)を読み出す。特性値分析部371は、判定対象のURI全体長321が、(X−3σ)以上(X+3σ)以下であるか否かを演算装置95により判定する。
【0425】
判定対象のURI全体長321が、(X−3σ)以上(X+3σ)以下であると判定した場合、判定対象のURI全体長321はURI全体長321全体の約99.7%に入っているので、特性値分析部371は、正常範囲であると判定する。判定対象のURI全体長321が、(X−3σ)以上(X+3σ)以下でないと判定した場合、判定対象のURI全体長321はURI全体長321全体の約99.7%に入っていないので、特性値分析部371は、異常値であると判定する。
【0426】
特性値分析部371は、判定対象のHTTPリクエスト310のGETパラメータ長322及びURL長323についても同様に、それぞれが(X−3σ)以上(X+3σ)以下であるか否かを演算装置95により判定し、異常値であるか否かを判定する。
【0427】
特性値分析部371は、判定対象のHTTPリクエスト310のメソッド名314から、判定対象のHTTPリクエスト310がゲットメソッドであるかポストメソッドであるかを判定する。特性値分析部371は、判定対象のHTTPリクエスト310がゲットメソッドである場合には、統計量記憶部33aからゲットリクエスト全体長324gの平均値(Xとする)及び標準偏差(σとする)を読み出す。特性値分析部371は、判定対象のリクエスト全体長324が、(X−3σ)以上(X+3σ)以下であるか否かを演算装置95により判定し、異常値であるか否かを判定する。特性値分析部371は、判定対象のHTTPリクエスト310がポストメソッドである場合も、同様に(X−3σ)以上(X+3σ)以下であるか否かを演算装置95により判定し、異常値であるか否かを判定する。
【0428】
特性値分析部371は、判定対象の特性値320が異常値であると判定した場合には、分析結果テーブル37aの判定対象のHTTPリクエスト310の宛先ホスト317名に対応する特性値320の項目に設定されている数をカウントアップする。HTTPリクエスト310の宛先ホスト317名は、上述したように、「Host」から取得する。
【0429】
例えば、特性値分析部371は、判定対象のHTTPリクエスト310のGETパラメータ長322が異常値であると判定したとする。特性値分析部371は、判定対象のHTTPリクエスト310の「Host」から宛先ホスト317の名称(例えば、“dddd.co.jp”であるとする)を取得する。そして、特性値分析部371は、宛先ホスト317が“dddd.co.jp”であるレコードのGETパラメータ長の項目をカウントアップする(
図35参照)。
【0430】
次に、
図37を用いて、通信数分析処理(S330)(通信数分析方法)について説明する。
【0431】
<S331:通信計数工程>
通信計数部35は、所定の期間内に通信取得部31が取得した通信の数を、通信の宛先ホスト317ごとに計数する。通信計数部35は、例えば、24時間の間(所定の期間)に取得したHTTPリクエスト310の数を、宛先ホスト317ごとに計数し、所定期間通信数350として通信数蓄積部35aに蓄積する。
図38(a)に示すように、通信計数部35は、宛先ホスト317ごとに24時間の所定期間通信数350を通信数蓄積部35aに蓄積する。通信計数部35は、所定の期間を24時間とした場合は、宛先ホスト317ごとに、かつ、1日ごとに計数した所定期間通信数350を通信数蓄積部35aに蓄積する。
【0432】
<S332:通信数統計量算出工程>
通信数統計量算出部36は、通信計数部35が宛先ホスト317ごとに複数の所定の期間について計数した所定期間通信数350の通信数統計量360を宛先ホスト317ごとに算出する。通信数統計量算出部36は、宛先ホスト317ごとの複数の所定期間通信数350の平均値と標準偏差とを算出し、標準偏差を平均値で割った変動係数を宛先ホスト317ごとの通信数統計量360として演算装置95により算出する。通信数統計量算出部36は、宛先ホスト317ごとの通信数統計量360を通信数統計量記憶部36aに記憶する(
図38(b)参照)。
【0433】
具体的には、通信数統計量算出部36は、通信数蓄積部35aに蓄積されている宛先ホスト317ごと、かつ、1日ごとの所定期間通信数350を複数日分取得し、宛先ホスト317ごとの所定期間通信数350の平均値と標準偏差とを算出する。通信数統計量算出部36は、宛先ホスト317ごとの所定期間通信数350の平均値と標準偏差とに基づいて、標準偏差を平均値で割った変動係数を算出する。この変動係数は、宛先ホスト317ごとの24時間の所定期間通信数350のばらつきを相対的に示したものである。通信数統計量算出部36は、宛先ホスト317ごとの変動係数(通信数統計量360)を通信数統計量記憶部36aに記憶する。通信数統計量記憶部36aには、宛先ホスト317ごとに変動係数(通信数統計量360)が常に最新のものに更新されて記憶されている。
【0434】
<S333〜S334:通信数分析工程>
S333において、通信数分析部372は、通信計数部35が所定期間通信数350を算出する度に、所定期間通信数350が1であるか否かを演算装置95により判定する。所定期間通信数350が1であるとは、例えば、1日(24時間)に特定の宛先ホスト317にHTTPリクエスト310を送信した数が1回だけであることを意味する。このような場合は、宛先ホスト317に不正通信をしている可能性があると判定する。
【0435】
通信数分析部372は、所定期間通信数350が1であると判定した場合には、分析結果テーブル37aの対応する宛先ホスト317のレコードの「リクエスト数=1」の項目をカウントアップする(
図35参照)。
【0436】
S334において、通信数分析部372は、通信数統計量算出部36が通信数統計量360(変動係数)を算出する度に、通信数統計量360(変動係数)と所定の閾値とを演算装置95により比較し、通信数統計量360(変動係数)が所定の閾値より小さい場合に、算出した通信数統計量360に対応する宛先ホスト317に不正通信があったと判定する。変動係数は、所定期間通信数350のばらつきの相対的な値を示すものである。したがって、変動係数が小さいということは、所定期間通信数350のばらつきが少なく所定期間通信数350が一定に近いことを意味し、機械的な通信である可能性が高いことを意味している。したがって、通信数分析部372は、(変動係数)が所定の閾値より小さいと判定した場合には、その変動係数に対応する宛先ホスト317に不正通信があったと判定し、分析結果テーブル37aの対応する宛先ホスト317のレコードの「リクエスト分散」の項目をカウントアップする(
図35参照)。
【0437】
次に、
図39を用いて、通信種別分析処理(S340)(通信種別分析方法)について説明する。
【0438】
<S341〜S342:ポスト数判定工程>
S341において、通信種別分析部373は、判定対象のHTTPリクエスト310のメソッド名314(
図33参照)を演算装置95より判定する。通信種別分析部373は、メソッド名314がポストメソッドであると判定した場合(S341でYES)、S342に進む。
【0439】
HTTPリクエスト310がポストメソッドである場合、ポストメッセージ311pに機密情報などの不正取得した情報を記載した不正通信である場合があると判断し、通信種別分析部373は、不正通信の可能性があると判断する。
【0440】
S342において、通信種別分析部373は、分析結果テーブル37aにおいて、判定対象のHTTPリクエスト310に対応する宛先ホスト317のレコードの「ポスト数」の項目をカウントアップする。
【0441】
<S343〜S344:不正HTTP判定工程>
S343において、通信種別分析部373は、判定対象のHTTPリクエスト310のプロトコルを演算装置95より判定する。通信種別分析部373は、判定対象のHTTPリクエスト310のプロトコルがHTTP以外の独自のプロトコルであると判定した場合(S341でYES)、S344に進む。判定対象のHTTPリクエスト310のプロトコルがHTTP以外の独自のプロトコルである場合は、判定対象のHTTPリクエスト310はHTTPのポートを使用して独自プロトコルを使用している可能性が高く、通信種別分析部373は、不正通信の可能性があると判断する。
【0442】
S344において、通信種別分析部373は、分析結果テーブル37aにおいて、判定対象のHTTPリクエスト310に対応する宛先ホスト317のレコードの「不正HTTP」の項目をカウントアップする。
【0443】
<S345〜S346:不正UA判定工程>
S345において、通信種別分析部373は、判定対象のHTTPリクエスト310の「User−Agent」(UA)(
図33参照)を演算装置95により判定する。不正通信検出装置30では、予めUAとして設定されるUA名(各種ブラウザなど)のUAホワイトリストを記憶装置94に記憶している。通信種別分析部373は、判定対象のHTTPリクエスト310のUAに設定されているUA名がUAホワイトリストにあるか否かを演算装置95により判定する。UAホワイトリストにないと判定した場合(S345でYES)、不正UAであると判断してS346に進む。
【0444】
S346において、通信種別分析部373は、分析結果テーブル37aにおいて、判定対象のHTTPリクエスト310に対応する宛先ホスト317のレコードの「不正UA」の項目をカウントアップする。
【0445】
<S347〜S348:不正サイト判定工程>
S347において、通信種別分析部373は、判定対象のHTTPリクエスト310の「Host」(
図33参照)を演算装置95より判定する。不正通信検出装置30では、予め「Host」として設定されるサイト名のHostブラックリストを記憶装置94に記憶している。通信種別分析部373は、判定対象のHTTPリクエスト310の「Host」に設定されるサイト名(ホスト名)がHostブラックリストにあるか否かを演算装置95により判定する。Hostブラックリストにあると判定した場合(S347でYES)、不正サイトであると判断してS348に進む。
【0446】
S348において、通信種別分析部373は、分析結果テーブル37aにおいて、判定対象のHTTPリクエスト310に対応する宛先ホスト317のレコードの「不正サイト」の項目に「NG」を設定する。通信種別分析部373は、分析結果テーブル37aにおいて、判定対象のHTTPリクエスト310に対応する宛先ホスト317のレコードの「不正サイト」の項目に「NG」が設定されているか否かを演算装置95により判定し、「NG」が設定されていたら不正サイト判定処理を実行しないことにしてもよい。
【0447】
次に、
図33及び
図40を用いて、レポート生成処理(S350)(レポート生成方法)について説明する。
【0448】
レポート生成部38は、
図33に示す分析結果テーブル37aに基づいて、レポート380を生成する。レポート生成部38は、例えば、1週間毎、3週間毎、1ヶ月毎等の、予め設定された期間ごとにレポート380を生成する。レポート生成部38がレポート380を生成するタイミングは、ユーザが指定することにしてもよい。
【0449】
レポート生成部38は、分析結果テーブル37aに基づいて、宛先ホスト317毎に、リクエスト数、URI全体長、URL長、GETパラメータ長、ゲットリクエスト全体長、ポストリクエスト全体長、リクエスト数=1、リクエスト分散(通信数変動係数)、POST数、不正HTTP、不正UA、不正サイトの項目に設定された値を出力する。
【0450】
レポート生成部38がレポート380として出力する項目は、上記全ての項目でなくともよい。例えば、ユーザが予め指定した項目でもよいし、レポート380を出力する都度、ユーザが出力項目を設定できることにしてもよい。例えば、
図40に示すようにレポート380には、URI全体長の項目がなくてもよい。
【0451】
図40に示すように、レポート生成部38は、宛先ホスト317毎のスコア項目を出力する。レポート生成部38は、宛先ホスト317毎に、項目に設定されている値に基づいて、演算装置95によりスコアを算出する。レポート生成部38は、例えば、値が設定されている項目の数をスコアとして算出する。
【0452】
レポート生成部38は、
図40に示すように、宛先ホスト317をスコアの高い順から順番に並べてレポート380を出力する。これにより、ユーザは危険な宛先ホスト317をすぐに検出することができる。
【0453】
なお、レポート生成部38は、スコアが所定の閾値以上である宛先ホスト317だけについてのレポート380を出力する構成であってもよい。
あるいは、レポート生成部38は、スコアが高い宛先ホスト317から順に順位を付け、順位が所定の閾値以下である宛先ホスト317だけについてのレポート380を出力する構成であってもよい。
【0454】
なお、宛先ホスト317に対するアクセスが機械的であるか否かを判定する方式として、所定の周期ごとにその宛先ホスト317に対して送信されたHTTPリクエストの数(所定期間通信数350)を集計し、所定期間通信数350の変動係数(標準偏差を平均値で割った商)を閾値と比較して、変動係数が閾値より小さい場合に、アクセスが機械的であると判定する方式について説明したが、他の方式で判定する構成であってもよい。
例えば、通信計数部35は、ある宛先ホスト317に対して送信されたHTTPリクエストの数をカウントする。カウントした数が所定の数に達したら、通信計数部35は、カウントした数をリセットして0にする。通信計数部35は、これを繰り返し、カウントした数をリセットしてから次にリセットするまでにかかった時間(以下「所定数通信期間」と呼ぶ。)を算出する。通信数統計量算出部36は、通信計数部35が算出した所定数通信期間の平均値及び標準偏差を算出し、変動係数を算出する。通信数分析部372は、所定数通信期間の変動係数を閾値と比較して、変動係数が閾値より小さい場合に、アクセスが機械的であると判定する。
【0455】
以上説明した不正通信検出装置(30)は、
ネットワークを介した通信を取得する通信取得部(31)と、
上記通信取得部が取得した通信を解析して、上記通信の特性値を算出する特性値算出部(32)と、
1以上の通信について上記特性値算出部が算出した特性値に基づいて統計量を算出する統計量算出部(33)と、
上記統計量算出部が算出した統計量に基づいて、上記特性値算出部が算出した特性値が異常値であるか否かを判定し、上記特性値が異常値であると判定した場合に、不正通信の可能性があると判定する不正判定部(37)とを有する。
【0456】
上記通信取得部(31)は、上記通信として、ハイパーテキスト転送プロトコルにおけるリクエストを取得し、
上記特性値算出部(32)は、上記通信取得部が取得した通信に基づいて、上記特性値として、統一資源識別子の長さと、上記統一資源識別子のうち絶対パス文字列の長さと、上記統一資源識別子のうちクエリー文字列の長さと、上記リクエスト全体の長さとのうち、少なくともいずれかを算出する。
【0457】
上記統計量算出部(33)は、上記統計量として、上記1以上の通信についての上記特性値を平均した平均値及び標準偏差を算出し、
上記不正判定部(37)は、上記標準偏差に所定の定数を乗じた値を上記平均値に加えた値よりも上記特性値が大きい場合と、上記標準偏差に所定の定数を乗じた値を上記平均値から差し引いた値よりも上記特性値が小さい場合とのうち、少なくともいずれかの場合に、上記特性値が異常値であると判定する。
【0458】
上記通信取得部(31)は、上記通信として、ハイパーテキスト転送プロトコルにおけるリクエストを取得し、
上記統計量算出部(33)は、上記統計量として、上記1以上の通信のうち、ゲットメソッドである通信についての上記特性値を平均した平均値及び標準偏差と、ポストメソッドである通信についての上記特性値を平均した平均値及び標準偏差と、ポストメソッド以外のメソッドである通信についての上記特性値を平均した平均値及び標準偏差とのうち、少なくともいずれかの平均値及び標準偏差を算出する。
【0459】
上記不正通信検出装置(30)は、
所定の期間内に上記通信取得部が取得した通信の通信数を、上記通信の宛先ごとに計数する通信計数部(35)を有し、
上記不正判定部(37)は、いずれかの宛先について上記通信計数部が計数した通信数が1である場合に、不正通信の可能性があると判定する。
【0460】
上記不正通信検出装置(30)は、
所定の期間内に上記通信取得部が取得した通信の数を、上記通信の宛先ごとに計数する通信計数部(35)と、
複数の期間について上記通信計数部が計数した通信数の統計量を、上記宛先ごとに算出する通信数統計量算出部(36)とを有し、
上記不正判定部(37)は、上記通信数統計量算出部が算出した統計量が所定の閾値より小さい場合に、不正通信の可能性があると判定する。
【0461】
上記通信取得部(31)は、上記通信として、ハイパーテキスト転送プロトコルにおけるリクエストを取得し、
上記不正判定部(37)は、上記通信取得部が取得した通信がポストメソッドである場合と、上記通信のフォーマットがハイパーテキスト転送プロトコルの規定に合致しない場合と、上記通信のユーザエージェントが所定のリストに含まれるユーザエージェントでない場合とのうち、少なくともいずれかの場合に、不正通信の可能性があると判定する。
【0462】
上記不正判定部(37)は、上記通信取得部が取得した通信の宛先が所定のリストに含まれる宛先である場合に、不正通信の可能性があると判定する。
【0463】
実施の形態7.
実施の形態7について、
図41を用いて説明する。
図41は、本実施の形態に係る不正通信検出装置30aのブロック構成図である。
【0464】
この実施の形態では、実施の形態6で説明した不正通信検出装置30の構成の他の例(不正通信検出装置30a)について説明する。
なお、実施の形態6と共通する構成には、同一の符号を付し、説明を省略する場合がある。
【0465】
図41において、
図32と異なる点は、不正通信検出装置30aでは、不正通信検出装置30に加えて、宛先別統計量算出部34、宛先別統計量記憶部34aを有している点である。
【0466】
宛先別統計量算出部34は、宛先ホスト317が同じ複数のHTTPリクエスト310について、特性値320の平均値(宛先別平均値とする)と標準偏差(宛先別標準偏差とする)とを宛先別統計量340として算出する。宛先別統計量算出部34は、算出した宛先別統計量340を宛先別統計量記憶部34aに記憶する。つまり、宛先別統計量記憶部34aには、宛先ホスト317毎に、特性値320の宛先別平均値と宛先別標準偏差とが記憶されている。
【0467】
特性値分析部371は、判定対象のHTTPリクエスト310の宛先ホスト317に対応する宛先別統計量340に基づいて、判定対象のHTTPリクエスト310の判定対象特性値325が異常値であるか否かを演算装置95により判定する。
特性値分析部371は、判定対象のHTTPリクエスト310の宛先ホスト317を取得して、取得した宛先ホスト317に対応する宛先別統計量340を宛先別統計量記憶部34aから取得する。
【0468】
例えば、判定対象のHTTPリクエスト310の宛先ホスト317が“dddd.co.jp”であり、判定対象特性値325がURL長323である場合について説明する。特性値分析部371は、宛先別統計量記憶部34aから、宛先ホスト317が“dddd.co.jp”に対応するURL長323の宛先別平均値と宛先別標準偏差とを取得する。特性値分析部371は、取得したURL長323の宛先別平均値と宛先別標準偏差とに基づいて、判定対象特性値325であるURL長323が異常値であるか否かを演算装置95により判定する。
【0469】
具体的には、特性値分析部371は、宛先別平均値をXとし、宛先別標準偏差をσとすると、判定対象のURI全体長321が(X−3σ)以上(X+3σ)以下であるか否かを演算装置95により判定する。
特性値分析部371は、判定対象のURL長323が(X−3σ)以上(X+3σ)以下であると判定した場合には、判定対象のURL長323は、宛先ホスト317が“dddd.co.jp”であるURL長323全体の約99.7%に入っているので、正常範囲であると判定する。
特性値分析部371は、判定対象のURL長323が(X−3σ)以上(X+3σ)以下でないと判定した場合には、判定対象のURL長323は、宛先ホスト317が“dddd.co.jp”であるURL長323全体の約99.7%に入っていないので、異常値であると判定する。
【0470】
例えば、不正な宛先ホスト317へのリクエストにおいて、不正通信をカモフラージュするために、特性値320が正常値であるリクエストの中に、たまに特性値320が異常値である不正通信のリクエストを混在させる可能性がある。
このような場合に、本実施の形態に係る不正通信検出装置30aによれば、宛先別に算出された宛先別統計量340に基づいて、特性値320を分析することができるので、高い精度で異常な特性値320を検出することができる。
【0471】
実施の形態8.
実施の形態8について、
図41及び
図42を用いて説明する。
図42は、本実施の形態に係るレポート作成処理により作成されたレポート380を示す図である。
【0472】
この実施の形態では、実施の形態7で説明した不正通信検出装置30aの特性値分析方法の他の例について説明する。
なお、実施の形態6,7と共通する構成には、同一の符号を付し、説明を省略する場合がある。
【0473】
特性値分析部371は、レポート生成部38がレポート380を生成するタイミングで、宛先別統計量記憶部34aに記憶されている宛先別統計量340のうちの宛先別平均値が所定の閾値よりも大きいか否かを判定する。特性値分析部371は、宛先別統計量記憶部34aに記憶されている全ての宛先ホスト317について、宛先別平均値の判定を実行する。
【0474】
分析結果テーブル37aは、さらに、宛先別平均値の項目を備えるものとする。特性値分析部371は、判定対象の宛先ホスト317の宛先別平均値が異常値であると判定した場合には、判定対象の宛先ホスト317の宛先別平均値の項目に「NG」を設定する。
例えば、特性値分析部371は、統計量記憶部33aに記憶されている統計量330に基づいて、判定対象の宛先別平均値が異常値であるか否かを判定する。
【0475】
判定対象の宛先別平均値としては、例えば、URI全体長321の宛先別平均値、GETパラメータ長322の宛先別平均値、URL長323の宛先別平均値、ゲットリクエストのリクエスト全体長324の宛先別平均値、ポストリクエストのリクエスト全体長324の宛先別平均値などがある。
【0476】
以下、判定対象の宛先別平均値がゲットリクエストのリクエスト全体長324の宛先別平均値である場合について説明する。
判定対象の宛先ホスト317が“aabb.com”であり、ゲットリクエストのリクエスト全体長324の宛先別平均値(以下、ゲット平均値とする)について判定を実行する場合について説明する。特性値分析部371は、宛先別統計量記憶部34aから、宛先ホスト317が“aabb.com”に対応するゲット平均値を取得する。特性値分析部371は、統計量記憶部33aに記憶されているゲットリクエストのリクエスト全体長324の統計量330(平均値及び標準偏差)に基づいて、判定対象のゲット平均値が異常値であるか否かを演算装置95により判定する。
【0477】
具体的には、特性値分析部371は、統計量記憶部33aに記憶されているゲットリクエストのリクエスト全体長324の統計量330(平均値(Xとする)及び標準偏差(σとする))を読み出す。特性値分析部371は、判定対象のゲット平均値が(X−3σ)以上(X+3σ)以下であるか否かを演算装置95により判定する。
【0478】
特性値分析部371は、判定対象のゲット平均値が、(X−3σ)以上(X+3σ)以下であると判定した場合には、判定対象のゲット平均値は、ゲットリクエストのリクエスト全体長324全体の約99.7%に入っているので、正常範囲であると判定する。
特性値分析部371は、判定対象のゲット平均値が、(X−3σ)以上(X+3σ)以下でないと判定した場合には、判定対象のゲット平均値は、ゲットリクエストのリクエスト全体長324全体の約99.7%に入っていないので、異常値であると判定する。
【0479】
特性値分析部371は、判定対象の宛先別平均値(宛先ホスト317が“aabb.com”であるゲット平均値)が異常値であると判定した場合に、宛先ホスト317“aabb.com”はゲット平均値が異常値であるとして、分析結果テーブル37aの「ゲット平均値」項目に「NG」を設定する。
【0480】
また、特性値分析部371は、宛先別統計量記憶部34aに記憶されている宛先ホスト317毎の宛先別平均値を平均した値に基づいて、判定対象の宛先別平均値を判定するための判定閾値を算出する構成であってもよい。
例えば、統計量算出部33は、それぞれの宛先について算出した宛先別平均値を母集団として、宛先別統計量記憶部34aが記憶している宛先別平均値の平均値及び標準偏差を算出する。統計量記憶部33aは、宛先別平均値の平均値X’及び標準偏差σ’を記憶する。
特性値分析部371は、判定対象の宛先別平均値が(X’−3σ’)以上(X’+3σ’)以下でない場合に、判定対象の宛先別平均値が異常値であると判定する。
【0481】
あるいは、特性値分析部371は、予め記憶装置94に記憶された固定値を判定対象の宛先別平均値を判定するための判定閾値としてもよい。
【0482】
図42に示すように、本実施の形態に係るレポート380では、実施の形態7に係るレポート380における「ゲット全体量」項目及び「ポスト全体量」項目に替えて、「ゲット平均量」項目及び「ポスト平均量」項目を備える。
【0483】
レポート生成部38は、分析結果テーブル37aに設定されている宛先ホスト317毎の「ゲット平均値」項目、「ポスト平均値」項目に設定されている内容に基づいて、レポート380を生成する。
【0484】
レポート生成部38は、分析結果テーブル37aが備える項目すべてについてレポート380に出力するものとしてもよいし、例えば、ユーザがレポート380として出力する項目を選択することができるとしてもよい。
【0485】
以上説明した不正通信検出装置(30a)は、
宛先が同じ複数の通信について上記特性値算出部(32)が算出した特性値を平均した宛先別平均値を算出する宛先別平均値算出部(宛先別統計量算出部34)を有し、
上記不正判定部(37)は、上記統計量算出部(33)が算出した統計量に基づいて、上記宛先別平均値算出部が算出した宛先別平均値が異常値であるか否かを判定し、上記宛先別平均値が異常値であると判定した場合に、不正通信の可能性があると判定する。
【0486】
上記統計量算出部(33)は、上記宛先別平均値算出部が算出した宛先別平均値に基づいて、上記統計量を算出する。
【0487】
以上のように、本実施の形態に係る不正通信検出装置30aによれば、特性値320の宛先別平均値について異常か否かを判定することができるので、宛先ホストの分析の精度が向上する。