(57)【要約】【課題】送信側や中継ネットワークにおいて、特別な仕組みを備えることなく、受信側でのチェックのみで受信メールが不正か否かの判定を的確に行う。【解決手段】不正メール判定装置において、受信側メールサーバから新規メールを受信する手段と、過去メール情報格納手段と、前記新規メールからヘッダ情報を抽出し、前記過去メールのヘッダ情報との間の距離を算出し、当該距離と所定の閾値とに基づいて前記新規メールが不正メールか否かを判定する判定手段と、前記判定手段により、前記新規メールが不正メールであると判定された場合に、受信者に通知を行い、前記新規メールが不正メールでないと判定された場合に、当該新規メールを前記過去メール情報格納手段に格納する手段と、前記過去メール情報格納手段に格納されたメールのヘッダ情報間の距離に基づいて、前記閾値を算出する手段と、を備える。【選択図】図３
2014102708.tif 000002
【特許請求の範囲】
【請求項１】
受信したメールが不正メールであるかどうかを判定する不正メール判定装置であって、
中継ネットワークを介してメールを受信する受信側メールサーバから新規メールを受信する新規メール受信手段と、
過去に受信した過去メールのヘッダ情報を格納する過去メール情報格納手段と、
前記新規メールからヘッダ情報を抽出し、前記過去メールのヘッダ情報との間の距離を算出し、当該距離と所定の閾値とに基づいて前記新規メールが不正メールか否かを判定する判定手段と、
前記判定手段により、前記新規メールが不正メールであると判定された場合に、受信者に通知を行い、前記新規メールが不正メールでないと判定された場合に、当該新規メールを前記過去メール情報格納手段に格納する手段と、
前記過去メール情報格納手段に格納されたメールのヘッダ情報間の距離に基づいて、前記閾値を算出する閾値算出手段と
を備えることを特徴とする不正メール判定装置。
【請求項２】
前記ヘッダ情報は、Receivedヘッダの情報、User-Agentヘッダの情報、又はX-Mailerヘッダの情報であり、前記距離は編集距離である
ことを特徴とする請求項１に記載の不正メール判定装置。
【請求項３】
前記閾値算出手段は、前記過去メール情報格納手段に格納されたメールのヘッダ情報間の距離に基づきクラスタ分析を行い、最大のクラスタ間の距離に基づいて前記閾値を算出する
ことを特徴とする請求項１又は２に記載の不正メール判定装置。
【請求項４】
前記閾値算出手段は、前記最大のクラスタ間の距離を暫定閾値とし、前記ヘッダ情報の中で、受信メール間で変化し得ると推定される文字が全て変化した場合における変化後のヘッダ情報と、変化前のヘッダ情報との間の距離を用いて前記暫定閾値を補正することにより前記閾値を算出する
ことを特徴とする請求項３に記載の不正メール判定装置。
【請求項５】
前記判定手段は、前記新規メールと前記過去メールとを含むメールのヘッダ情報間の距離に基づくクラスタ分析を行い、前記新規メールのクラスタへの結合時における当該新規メールと当該クラスタ間のヘッダ情報の距離が、前記閾値を超えた場合に、当該新規メールは不正メールであると判定する
ことを特徴とする請求項１ないし４のうちいずれか１項に記載の不正メール判定装置。
【請求項６】
受信したメールが不正メールであるかどうかを判定する不正メール判定装置が実行する不正メール判定方法であって、
前記不正メール判定装置は、過去に受信した過去メールのヘッダ情報を格納する過去メール情報格納手段を備えており、
中継ネットワークを介してメールを受信する受信側メールサーバから新規メールを受信する新規メール受信ステップと、
前記新規メールからヘッダ情報を抽出し、前記過去メールのヘッダ情報との間の距離を算出し、当該距離と所定の閾値とに基づいて前記新規メールが不正メールか否かを判定する判定ステップと、
前記判定ステップにより、前記新規メールが不正メールであると判定された場合に、受信者に通知を行い、前記新規メールが不正メールでないと判定された場合に、当該新規メールを前記過去メール情報格納手段に格納するステップと、
前記過去メール情報格納手段に格納されたメールのヘッダ情報間の距離に基づいて、前記閾値を算出する閾値算出ステップと
を備えることを特徴とする不正メール判定方法。
【請求項７】
コンピュータを、請求項１ないし５のうちのいずれか１項に記載された不正メール判定装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子メール（以下、単にメールと呼ぶ）の不正を検出する技術に関するものであり、特に、受信したメールが不正メールか否かを検出する技術に関するものである。
【背景技術】
【０００２】
現在、通信ネットワークを介してメールによる情報の送受信が一般に行われている。メールの利用が普及するのに伴い、メールは各種業務での情報交換手段として活用され、メールにより重要な機密情報がネットワークを経由して授受されるケースも増加している。そのような観点から、送信先メールアドレスの設定誤り等の不適切なメールの送信を防止するために技術として、例えば特許文献１には、送信するメールの安全性解析・評価を行って安全にメールの送信を行うための技術が記載されている。
【０００３】
一方、近年、発信者のなりすましによる不正な攻撃メールも増加している。そのような観点で、例えば特許文献２には、受信メールに対し、鍵を用いて正当な発信者から送られてきたメールであるかどうかを検証する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2010-198379号公報
【特許文献２】特開2005-142719号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
受信したメールが、不正な発信者から送信されたメールかどうかを検証する技術に関し、例えば特許文献２に記載された技術では、送信側等で鍵を生成して付与するなど、特別な仕組みが必要であり、実現が容易でなく、一般的ではない。
【０００６】
近年、様々なテクニックを使用した攻撃メールが増加していることから、より簡易に実現できる不正メールの判定手法が求められている。
【０００７】
本発明は上記の点に鑑みてなされたものであり、送信側や中継ネットワークにおいて、特別な仕組みを備えることなく、受信側でのチェックのみで受信メールが不正か否かの判定を的確に行うことを可能とした技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明は、受信したメールが不正メールであるかどうかを判定する不正メール判定装置であって、
中継ネットワークを介してメールを受信する受信側メールサーバから新規メールを受信する新規メール受信手段と、
過去に受信した過去メールのヘッダ情報を格納する過去メール情報格納手段と、
前記新規メールからヘッダ情報を抽出し、前記過去メールのヘッダ情報との間の距離を算出し、当該距離と所定の閾値とに基づいて前記新規メールが不正メールか否かを判定する判定手段と、
前記判定手段により、前記新規メールが不正メールであると判定された場合に、受信者に通知を行い、前記新規メールが不正メールでないと判定された場合に、当該新規メールを前記過去メール情報格納手段に格納する手段と、
前記過去メール情報格納手段に格納されたメールのヘッダ情報間の距離に基づいて、前記閾値を算出する閾値算出手段とを備えることを特徴とする不正メール判定装置として構成される。
【０００９】
前記ヘッダ情報は、例えば、Receivedヘッダの情報、User-Agentヘッダの情報、又はX-Mailerヘッダの情報であり、前記距離は編集距離である。なお、ヘッダ情報はこれに限定されるものではなく、本実施例が適用できるヘッダ情報であればいずれのヘッダ情報でもよい。
【００１０】
前記閾値算出手段は、前記過去メール情報格納手段に格納されたメールのヘッダ情報間の距離に基づきクラスタ分析を行い、最大のクラスタ間の距離に基づいて前記閾値を算出するように構成することができる。更に、前記閾値算出手段は、前記最大のクラスタ間の距離を暫定閾値とし、前記ヘッダ情報の中で、受信メール間で変化し得ると推定される文字が全て変化した場合における変化後のヘッダ情報と、変化前のヘッダ情報との間の距離を用いて前記暫定閾値を補正することにより前記閾値を算出するようにしてもよい。
【００１１】
前記判定手段は、前記新規メールと前記過去メールとを含むメールのヘッダ情報間の距離に基づくクラスタ分析を行い、前記新規メールのクラスタへの結合時における当該新規メールと当該クラスタ間のヘッダ情報の距離が、前記閾値を超えた場合に、当該新規メールは不正メールであると判定するように構成することができる。
【００１２】
また、本発明は、前記不正メール判定装置が実行する不正メール判定方法、コンピュータを、前記不正メール判定装置における各手段として機能させるためのプログラムとして構成することもできる。
【発明の効果】
【００１３】
本発明によれば、送信側や中継ネットワークにおいて、特別な仕組みを備えることなく、受信側でのチェックのみで受信メールが不正か否かの判定を的確に行うことが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係るシステムの全体概要構成図である。
【図２】メールの配送経路及びヘッダ情報を説明するための図である。
【図３】本発明の実施の形態に係る不正メール判定装置１０に機能構成図である。
【図４】過去メール管理テーブルの構成例を示す図である。
【図５】閾値管理テーブルと隔離メール管理テーブルの構成例を示す図である。
【図６】不正メール判定装置１０の動作を説明するためのフローチャートである。
【図７】不正メール判定装置１０の動作を説明するためのフローチャートである。
【図８】受信者端末２０に表示される不審メール確認画面例を示す図である。
【図９】受信者端末２０に表示される不審メール一覧画面例を示す図である。
【図１０】不正メール判定（正常経路時）の例を示す図である。
【図１１】不正メール判定（不正経路時）の例を示す図である。
【図１２】クラスタ分析に基づく不正メール判定例を説明するための図である。
【図１３】クラスタ分析に基づく不正メール判定例を説明するための図である。
【図１４】クラスタ分析に基づく不正メール判定例を説明するための図である。
【図１５】閾値の算出方法を説明するための図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１６】
＜装置全体構成、動作概要＞
図１に、本発明の実施の形態に係るシステムの全体概要構成図を示す。図１に示すように、本実施の形態におけるシステムでは、送信側ネットワーク３０と受信側ネットワーク４０が、中継ネットワーク５０を介して接続されている。送信側ネットワーク３０には、送信者端末１と送信側メールサーバ３が備えられ、受信側ネットワーク４０には、受信側メールサーバ４、受信者端末２０、及び本発明に係る不正メール判定装置１０が備えられる。なお、図１には、送信側ネットワークを１つのみ示しているが、本実施の形態では、送信側ネットワークは複数あり、その中に、不正メールの送信元となる送信側ネットワークが含まれることを想定している。
【００１７】
本実施の形態では、不正メール判定装置１０が、受信者端末２０宛に送られてきたメールのヘッダ情報を蓄積し、蓄積したデータに基づいて、受信メールについて異質な配信経路を経由して送られてきたかどうかを判定し、異質な配信経路を経由して送られてきたと判定された場合に、不正メールであると判定する動作を行う。
【００１８】
なお、本実施の形態では、不正メール判定装置１０を、受信者端末２０の外部（受信者端末２０と受信側メールサーバ４の間）に備えることとしているが、不正メール判定装置１０の機能を、受信者端末２０の内部に備えることとしてもよい。その場合、受信者端末２０を不正メール判定装置と呼ぶことができる。また、この場合、本実施の形態における不正メール判定装置１０と受信者端末２０との間でのデータの送受信は、受信者端末２０内での、不正メール判定装置の機能と、所定のアプリケーション（メーラー等）との間のデータの送受信に相当する。
【００１９】
更に、メーラー等のメールアプリケーション内に不正メール判定装置の機能を備えることとしてもよい。この機能は、例えば、メールアプリケーションに追加して機能拡張するためのアドインプログラムとして実現することも可能である。
【００２０】
図２は、本実施の形態におけるメールの配送経路を含む全体動作の概要を説明するための図である。
【００２１】
図２では、一例として、図１の送信側ネットワーク３０、及び受信側ネットワーク４０は、それぞれある会社のネットワークであるものとし、それぞれ、送信者の社内環境、及び受信者の社内環境として記述されている。また、図２の例では、送信者の社内環境において複数の送信側中継メールサーバ、及び複数の送信側メールサーバを含む場合を示している。更に、図２の例では、送信側のメール送信環境の１つとして、受信者端末２０に不正メールを送信する攻撃者のメール送信環境が示されている。攻撃者のメール送信環境には、攻撃者メール送信端末６、攻撃者利用メールサーバ５が存在する。
【００２２】
まず、図２を参照して、送信者端末１から受信者端末２０に向けて送られる本来のメール（以下、メールＡとする）の流れについて説明する。
【００２３】
送信者端末１から送信されたメールＡは、送信側中継メールサーバ２に届く。１００に示されるように、送信側中継メールサーバ２におけるメールＡのメールヘッダには、「Received : from (1) by (2) with SMTP」というReceivedヘッダの情報が含まれる。このReceivedヘッダの情報は、送信者端末１から、送信側中継メールサーバ２に、SMTPでメールAが送られたことを意味する。
【００２４】
メールAは、送信側中継メールサーバ２から送信側メールサーバ３に届けられる。送信側メールサーバ３におけるメールAのReceivedヘッダは２００に図示するとおりであり、「Received : from (1) by (2) with SMTP」に「Received : from (2) by (3) with SMTP」が送信側メールサーバ３により追加されたものとなる。
【００２５】
そして、メールAは、送信側メールサーバ３から中継ネットワークを経由して受信者の社内環境における受信側メールサーバ４に送信される。受信側メールサーバ４におけるメールＡのReceivedヘッダは、３００に示されるように、「Received : from (1) by (2) with SMTP」と「Received : from (2) by (3) with SMTP」に、「Received : from (3) by (4) with SMTP」が追加されたものとなる。この追加されたヘッダは、送信者メールサーバ３から、受信側メールサーバ４に、SMTPでメールAが送られたことを意味する。
【００２６】
次に、攻撃者端末６から送信される攻撃のメール（以下、メールＢとする）について説明する。攻撃者端末６から送信されたメールＢは、攻撃者利用メールサーバ５を経由して、受信側メールサーバ４に届く。受信側メールサーバ４におけるメールＢのReceivedヘッダ情報は図２の５００に示すとおりであり、攻撃者利用メールサーバ５から、受信側メールサーバ４に、SMTPでメールBが送られたことを示す「Received : from (5) by (4) with SMTP」を含む。
【００２７】
本実施の形態では、受信者端末２０が存在する社内ネットワークにおける外部（中継ネットワーク）からの入口の受信側メールサーバ４で付与されるReceivedヘッダ情報におけるFrom部を含む情報を不正メール検出装置１０において蓄積し、蓄積したデータを用いて、新たに受信するメールの配信経路が異質なものかどうかを判定することで、新たに受信したメールが不正かどうかを判定する。受信側メールサーバ４で付与されるReceivedヘッダ情報とは、図２の例では、３００における「Received : from (3) by (4) with SMTP」、５００における「Received : from (5) by (4) with SMTP」であり、From部の情報は、それぞれ、(3)と(5)である。
【００２８】
なお、入口の受信側メールサーバ４で付与されるReceivedヘッダ情報におけるFrom部を含む情報に基づき不正判定を行うことは一例である。配送経路全体に関するヘッダ情報を蓄積し、配送経路全体についてそれが異質かどうかを判定することにより不正判定を行うこととしてもよい。
【００２９】
＜不正メール検出装置１０の構成＞
図３に、不正メール判定装置１０の機能構成図を示す。図３に示すように、本実施の形態に係る不正メール判定装置１０は、新規メール受信部１１、ヘッダ情報抽出部１２、不正メール判定部１３、メール不正判定時処理部１４、メール受信時処理部１５、及び管理情報格納部１６を備える。
【００３０】
以下、各機能部の概要を説明する。不正メール判定や閾値算出の詳細については、概要説明の後、順に説明される。
【００３１】
新規メール受信部１１は、受信側メールサーバ４から新規メールを受信する機能部である。この「受信」は、受信側メールサーバ４から新規メールを取得することであってもよい。ヘッダ情報抽出部１２は、新規メール受信部１１により受信したメールからヘッダ情報を取得する機能部である。不正メール判定部１３は、新規メールが不正メールかどうかを判定する機能部である。
【００３２】
メール不正判定時処理部１４は、不正メール判定部１３により、新規メールが不正メールであると判定された場合の処理を行う機能部である。メール受信時処理部１５は、新規メールが正常であると判定された場合、もしくは、不正と判定されたが、ユーザが新規メールの受信を行う場合の処理を行う機能部である。
【００３３】
管理情報格納部１６は、過去メール管理テーブルと、閾値管理テーブルと、隔離メール管理テーブルを格納している。図４に、過去メール管理テーブルの構成例を示す。図４に示す過去メール管理テーブルは、特定の受信者（本実施形態では、受信者端末２０のユーザの宛先アドレス）に対するテーブルであり、図示されるように、ＩＤ、送信元アドレス、ヘッダ情報（Ｆｒｏｍ部）、追加日時を格納する。これらの情報は、新規メールを受信者端末２０が受信する度に記録される情報である。
【００３４】
図５に、閾値管理テーブルと隔離メール管理テーブルを示す。図５（ａ）に示すように、閾値管理テーブルには、送信元アドレス毎に不正メール判定のための閾値が格納される。また、図５（ｂ）に示すように、隔離メール管理テーブルには、不正メールであると判定され、隔離されたメールについてのＩＤ、送信元アドレス、格納（隔離）された場所、ステータスが記録される。
【００３５】
上記不正メール判定装置１０は、例えば、１つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、不正メール判定装置１０の各部が有する機能は、当該不正メール判定装置１０を構成するコンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、各部で実施される処理に対応するプログラムを実行することによって実現することが可能である。より具体的には、プログラムに従って、処理対象のデータ（ヘッダ情報等）をメモリから読み出し、ＣＰＵにより演算を行って、メモリに格納する動作を繰り返しながら処理が実行される。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００３６】
また、図３に示した機能区分は一例にすぎない。本実施の形態で説明する動作を実現できれば、機能区分は図３に示したものに限られない。例えば、不正メール判定装置１０を、  中継ネットワークを介してメールを受信する受信側メールサーバから新規メールを受信する新規メール受信手段と、過去に受信した過去メールのヘッダ情報を格納する過去メール情報格納手段と、前記新規メールからヘッダ情報を抽出し、前記過去メールのヘッダ情報との間の距離を算出し、当該距離と所定の閾値とに基づいて前記新規メールが不正メールか否かを判定する判定手段と、前記判定手段により、前記新規メールが不正メールであると判定された場合に、受信者に通知を行い、前記新規メールが不正メールでないと判定された場合に、当該新規メールを前記過去メール情報格納手段に格納する手段と、前記過去メール情報格納手段に格納されたメールのヘッダ情報間の距離に基づいて、前記閾値を算出する閾値算出手段とを備える不正メール判定装置として構成することができる。
【００３７】
なお、一例として、上記判定手段は、不正メール判定部１３に対応し、上記「前記判定手段により、前記新規メールが不正メールであると判定された場合に、受信者に通知を行い、前記新規メールが不正メールでないと判定された場合に、当該新規メールを前記過去メール情報格納手段に格納する手段」は、メール不正判定時処理部１４とメール受信時処理部１５に対応し、閾値算出手段は、メール受信時処理部１５に対応する。なお、メール受信時処理部１５が、閾値算出手段（モジュール）を備えることとしてもよい。
【００３８】
＜不正メール検出装置１０の動作＞
以下、図６、及び図７のフローチャートを参照して、不正メール判定装置１０の処理の全体の流れを説明する。以下の説明では、図３に示す各機能部の名称を適宜用いる。また、以下では、特定の送信元アドレスを有し、受信者端末２０宛てに送られたメールを対象とするものとし、当該送信元アドレスも新規メールから抽出して、各テーブルに格納するが、以下では、説明を分かり易くするために、送信元アドレスについては述べていない。
【００３９】
まず、新規メール受信部１１は、受信者端末２０宛に新規に届いたメールを受信する（ステップ１）。
【００４０】
次に、ヘッダ情報抽出部１２は、新規メール受信部１１により受信した新規メールにおけるヘッダ情報の中から、受信側メールサーバ４により付与されたReceivedヘッダのFrom部の情報（以下、これをヘッダ情報と呼ぶ）を抽出する（ステップ２）。不正メール判定部１３は、ヘッダ情報抽出部１２により取得されたヘッダ情報と、管理情報格納部１６における過去メール管理テーブルに格納された当該送信元アドレスに対応するヘッダ情報とに基づいて、新規メールが不正メールかどうかの判定を行う。
【００４１】
すなわち、不正メール判定部１３は、まず、ヘッダ情報について新規メールと過去メールを含めてクラスタ分析を行い、新規メールの他クラスタへの結合時の距離を算出する（ステップ３）。そして、不正メール判定部１３は、閾値管理テーブルに格納された閾値のうち、判定対象の新規メールの送信元アドレスに対応する閾値と結合時の距離とを比較し、結合時の距離が閾値を越えるかどうかをチェックする（ステップ４）。超える場合に不正メールであると判定し、超えない場合に、正常メールであると判定する。
【００４２】
不正メール判定部１３により不正メールであると判定された場合、メール不正判定時処理部１４が、新規メールを隔離する（ステップ５）。具体的には、メール不正判定時処理部１４は、新規メールをメモリ等における所定の記憶領域に格納し、当該新規メールに関する情報を隔離メール管理テーブルに格納する。格納した当初の隔離メールの「ステータス」は「確認待ち」である。続いて、メール不正判定時処理部１４は、新規メールを隔離した旨を受信者端末２０に通知し、受信者にメールを確認させる（図７のステップ６）。
【００４３】
ステップ６において受信者端末２０に表示される画面の一例を図８に示す。この画面上で、ヘッダの詳細を確認できる。また、図８に示すように、「受信する」ボタンを選択すれば、新規メールが受信者端末２０に配送されるとともに、閾値算出処理に移行し、「削除する」ボタンを選択すれば、新規メールは削除される。なお、受信者端末２０では、不正メール判定装置１０における隔離メール管理テーブルのデータを用いることにより、図９に示すように不正メール一覧画面を表示することも可能である。
【００４４】
メール不正判定時処理部１４は、受信者端末２０から確認結果を受け取り、確認結果に応じた処理に進む（ステップ７）。すなわち、受信者が当該新規メールを受信しないことを確認結果が示す場合にステップ８に進み、受信することを示す場合に、ステップ９に進む。
【００４５】
ステップ８では、メール不正判定時処理部１４は、隔離していた新規メールを削除するとともに、隔離メール管理テーブルにおける該当メールのステータスを「削除済み」にする。
【００４６】
一方、ステップ４において、新規メールが不正メールではないと判定された場合、もしくは、ステップ７において、受信者が新規メールを受信することが確認結果に示される場合、ステップ９に進む。
【００４７】
ステップ９において、メール受信時処理部１５は、新規メールのヘッダ情報を過去メール管理テーブルに保存する。そして、メール受信時処理部１５は、新規メールと過去メールを含めたクラスタ分析を行い、クラスタ間の最大距離を暫定閾値として決定する(ステップ１０）。なお、ここでのクラスタ分析については、ステップ３で行ったクラスタ分析の結果を用いてもよい。メール受信時処理部１５は、更に、メールヘッダの特性を考慮し、暫定閾値を補正し、補正した閾値で、閾値管理テーブルにおける閾値を更新する（ステップ１１）。
【００４８】
その後、メール受信時処理部１５は、新規メールを受信者端末２０に配送する（ステップ１２）。
【００４９】
上記の処理では、新規メールを受信する度に、メール受信時処理部１５が、閾値算出処理を行うこととしているが、閾値算出処理は新規メールを受信する度に行わなくてもよい。例えば、一定時間毎に行う、もしくは、特定の送信元アドレスのメールのヘッダ情報が、所定数個だけ新たに格納される度に行うこととしてもよい。
【００５０】
以下、上述した処理の中での、不正メール判定、及び閾値算出処理についてより詳細に説明する。
【００５１】
＜不正メール判定処理＞
本実施の形態では、新規メールと過去メールにおける各メール間において、ヘッダ情報（本実施の形態では、Ｆｒｏｍ部の情報）の文字列比較を行うことにより、類似性を判断し、不正判定を行うこととしている。
【００５２】
ここで、単純に文字列が一致するかどうかでヘッダ情報の正常性を判定することが考えられる。しかし、例えば同じ企業の同一場所に設置される複数の送信メールサーバ間でも、ヘッダ情報は全く同じにならず、一部の文字列が異なるのが一般的である。従って、仮に、単純な文字列一致でヘッダ情報の正常性を判定しようとすると、当初の数回だけ同じメールサーバから送信されたメールを、ヘッダ情報が一致するので正当なメールであると判定するが、次に、同じグループ内の異なる正規のメールサーバから送信されたメールを不正であると判定してしまうことが考えられる。
【００５３】
そこで、本実施の形態では、編集距離と閾値の概念を取り入れて、ある程度の幅をもたせた判定を行うこととしている。
【００５４】
すなわち、本実施の形態では、新規メールと過去メールにおける各メール間においてヘッダ情報の文字列比較を行い、各メール間の編集距離（レーベンシュタイン距離）を求め、この編集距離に基づき類似性を判定することしている。なお、編集距離とは、二つの文字列がどの程度異なっているかを示す数値であり、具体的には、文字の挿入や削除、置換によって、一つの文字列を別の文字列に変形するのに必要な手順の最小回数として与えられるものである。なお、以下では、編集距離を単に「距離」と呼ぶ場合がある。また、メール間の距離といった場合、メールのヘッダ情報間の距離を意味する。
【００５５】
上記の距離を用いた不正メール判定の一例として、受信者により受信され、過去メール管理テーブルに格納された過去メール間の全ての組み合わせにおいて距離を算出し、この中の最大の距離に基づき閾値を定めておき、新規メールを受信したときに、新規メールと、各過去メールとの間の距離を求め、これらの距離のうちの最大の距離が、閾値を超えた場合に、不正メールであると判定することとしてもよい。
【００５６】
一例として、例えば、図１０に示すように、３つの過去メールのヘッダ情報が蓄積されている状態で、図示する新規メールが受信されたものとする。なお、新規メールにおいて、過去メールと特に異なる文字に下線を引いている。新規メールと過去メールとの距離は図示するとおりいずれも６であり、また、閾値は８である。よって、この場合、新規メールは正常メールと判定される。
【００５７】
他の例として、例えば、図１１に示すように、３つの過去メールのヘッダ情報が蓄積されている状態で、図示する新規メールが受信されたものとする。新規メールと過去メールとの距離は図示するとおり最大で１６であり、また、閾値は８である。よって、この場合、新規メールは不正メールと判定される。
【００５８】
ただし、本実施の形態においては、送信側において一般に行われているように、例えばサーバ設置場所等に応じてメールサーバがグループ分けされていたりする場合を想定している。その場合、上記のように単純に距離の比較で判定を行うとすると、あるグループのメールサーバから送信されてきたメールと、正規の別のグループのメールサーバから送信されてきたメールとの距離は大きくなり、正規の別のメールサーバから送られたメールを不正であると判定してしまう可能性がある。
【００５９】
そこで、本実施の形態では、受信したメール間について、距離を類似性の測度とするクラスタ分析を行い、最大のクラスタ間の距離を暫定閾値とする。この暫定閾値は、後述する方法で補正され、不正メール判定の際の閾値として用いられる。新規メールを受信したときには、クラスタ分析の中で当該新規メールが結合（併合する）するクラスタと当該新規メールとの距離（結合距離）が閾値を越えた場合に、不正メールであると判断している。言い換えると、クラスタ分析の中で、当該新規メールからなるクラスタが他のクラスタと結合する場合における、当該クラスタと他のクラスタとの間の距離（本実施の形態では、最長距離法を想定しており、クラスタ間要素の組み合わせの中での最大距離）が閾値を越えた場合に、不正メールであると判断している。
【００６０】
クラスタ分析の手法には種々の手法があり、本実施の形態では特定の手法に限定されないが、例えば、本実施の形態では階層的クラスタ分析を用いることを想定している。階層的クラスタ分析では、個々の対象間の距離を全て計算し、その中で距離が近いもの同士でクラスタを形成し、距離が近いクラスタ同士を併合することを繰り返し、最終的に全てのクラスタが統合される。この結果は樹形図によって表される。
【００６１】
また、前述したとおり、本実施の形態では、「クラスタ間の距離」の定義に、最長距離法を用いている。最長距離法は、二つのクラスタのそれぞれから一つのサンプルを取り出すときの全組み合わせの中で、距離が最大のものをクラスタ間の距離とするものである。もちろん、「クラスタ間の距離」は、最長距離法に限定されるわけではなく、ウォード法等の他の手法も適宜使用することが可能である。
【００６２】
本実施の形態における不正メールの判定においては、クラスタ間の距離の最大値を閾値（暫定閾値）とし、新規メールを含めたクラスタ分析において、新規メールが結合するクラスタと、新規メールとの距離（当該クラスタの各要素と新規メール間の距離のうちの最大のもの）が閾値を越えた場合に、不正メールであると判断しているが、判断手法はこれに限られない。なお、暫定閾値として上記クラスタ間の距離の最大値を求める際のクラスタ数（併合の段階に応じてクラスタ数が変わる）は、例えば、過去メール数に応じて予め定めた数とする。
【００６３】
本実施の形態における不正メール判定の概念の一例を図１２〜図１４を用いて説明する。まず、新規メールを受信する直前の段階で、図１２のようにメール間の距離に基づくクラスタ分析がなされているものとする。図中、黒丸が各メールを示す。番号はメールを識別する番号である。図１２に示すように、３つのクラスタがあり、クラスタＢとクラスタＣ間の距離が最大の６であり、これを暫定閾値とする。図１２〜図１４では、便宜上、これを閾値として用いることとする。
【００６４】
第１例）図１２の状態において、新規メール１０を受信し、新規メール１０を含めたクラスタ分析を行ったところ、図１３に示すように、新規メール１０は、クラスタＣに、結合距離２で併合されたものとする。この場合、新規メール１０は、閾値未満なので正常メールと判断される。
【００６５】
第２例）図１２の状態において、新規メール１０を受信し、新規メール１０を含めたクラスタ分析を行ったところ、図１４に示すように、新規メール１０は、クラスタＡ〜Ｃと独立したクラスタＤを形成し、当該クラスタＤは、クラスタＡ〜Ｃが併合されたクラスタＥと結合されるものとして分析されたとする。このときクラスタＤとクラスタＥ間の距離（結合距離）は１２であり、６を越えるので、新規メール１０は、不正メールであると判断される。
【００６６】
＜閾値の補正について＞
本実施の形態において、例えば過去メール数が少なく、過去メールのヘッダ情報がばらばらで、過去メール間の距離が非常に大きくなる場合が考えられる。この場合、閾値も非常に大きくなってしまい、新規メールを不正メールであると判定できない場合が生じ得る。
【００６７】
他方、例えば、全ての過去メールにおけるヘッダ情報が同一であることもあり得る。この場合、上記クラスタ分析に基づく距離は０となり、これをそのまま用いれば閾値は０となる。しかし、閾値が０であるとすると、少しでもヘッダ情報の異なる新規メールを受信した場合に、不正メールと判定してしまう。一般的に、複数のメールサーバが送信側に存在する場合に、複数の受信メール間でヘッダ情報が少し異なる状況は、正常な一般的な状況であり、これを不正メールと判定することは実情にそぐわなくなるという問題がある。
【００６８】
そこで、本実施の形態では、以下のようにして、クラスタ分析におけるクラスタ間最大距離である暫定閾値を補正して、不正メール判定時の閾値としている。
【００６９】
まず、本実施の形態では、ヘッダ情報の中で、送信元のサーバ構成の変更等で変わり得る部分を推定し、変り得る部分が変った場合のヘッダ情報と、変る前のヘッダ情報との間の距離を算出することとしている。
【００７０】
図１５に、本実施の形態において、サーバ構成の変更等で、ヘッダ情報の中で変化し得ると考えられる部分の例を示す（点線枠で囲んだ部分）。図１５は、セカンドレベル登録ドメインの例を示す。図１５に示すように、ホスト名に対応する部分、ネットマスクが適用され得る部分（ホストの相違によりアドレスが変化する部分）は、変化する可能性が高いと考えられる。なお、ホストの相違によりアドレスが変化する部分を「ホストアドレス」と呼んでもよい。これらの総文字数×２として、これらが変った場合における、変る前に対する距離（編集距離）を求める。これを距離１とする。なお、"×２"により、変る前と変った後の間の編集距離が求められる。一方、用途を表すセカンダリドメイン、国を表すトップドメイン等は変る可能性が低く、変化しないものとしている。
【００７１】
上記のように、過去メールのヘッダ情報がばらばらで暫定閾値が非常に大きくなる場合に、変り得る部分の全てを考慮した上記距離１を用いることにより、適切な判定を行い得る。
【００７２】
他方、本実施の形態では、サーバ構成に変更がなくても、通常の状態で起こり得る状況として、ヘッダ情報のうち、ホスト名に含まれる数字部分の文字のみが変る場合を想定し、それらが変った場合における、変る前に対する距離を求める。これを距離２とする。図１５の例でいえば、mail01の01の部分で、合計４文字であるから、距離としては４×２の８となる。
【００７３】
例えば、過去メール数件分におけるヘッダ情報が同一であり、暫定閾値が０になってしまう場合でも、ホスト名の数字部分はすぐに変る可能性がある。そのような場合でも、上記の数字部分から得られた閾値を用いることで、新規メールを不正メールと判定しないことができる。
【００７４】
本実施の形態では、上記の各距離の算出にあたっては、過去メールを複数用いた平均値を算出することとしている。
【００７５】
上記の概念をまとめて、本実施の形態では、以下の式を用いて、暫定閾値を補正して、不正メール判定で用いる閾値Ｔを算出することとしている。
【００７６】
T = max( min( df, E(dm) ) , E(dn) )
上記の式で、T は、不正メール判定で用いる閾値である。dfは、サンプル(正常メールのみ)のクラスタ間の最大距離、すなわち、暫定閾値である。E(dm)は、ホスト名、ホストアドレスの総文字数＊2 の平均、すなわち、前述した距離１の平均である。E(dn)は、ホスト名に含まれる数字部分の文字数*2 の平均、すなわち、前述した距離２の平均である。
【００７７】
上記の式は、df,とE(dm) のうちの小さいほうと、E(dn)との中で、大きいほうをTとするものである。
【００７８】
df,とE(dm) のうちの小さいほうを選ぶということは、E(dm)は、正常なときにあり得る最大の変化を想定した距離であり、この距離以下の値を閾値とするという趣旨である。また、df,とE(dm) のうちの小さいほうと、E(dn)との中で、大きいほうを選ぶということは、E(dn)が、頻繁に起こりえる変化を想定した距離であり、この距離以上の値を閾値とするという趣旨である。
【００７９】
一例として、例えば、暫定閾値が６であり、E(dm)が３０であり、E(dn)が８であれば、８がTとして用いられる。また、例えば、過去メールが１件しかない状況で新規メール1件を受信した場合、暫定閾値は０であるがT=E(dn)=８が閾値となり、一件の過去メールと新規メール間の距離が８を超えるかどうかで、不正メールか否かを判定することができる。
【００８０】
（他の実施形態について）
これまでに説明した例では、ReceivedヘッダのFrom部を用いて判定を行っているが、with部又はby部、もしくはwith部とby部の両方を加えて判定を行うこととしてもよい。with部やby部を加えた場合は、判定に用いる文字列が増加するが、編集距離に基づきクラスタ分析を行って、クラスタ間の距離に基づき閾値を算出し、当該閾値を用いて新規メールの不正判定を行うという基本的な処理はFrom部のみの場合と同様である。また、必要に応じて、From部のみの場合と同様に、あり得る文字列変化を考慮して閾値を補正することも可能である。
【００８１】
また、対象とするヘッダについてもReceivedヘッダに限らず、他のヘッダを用いてもよい。例えば、User-Agentヘッダの情報、もしくはX-Mailerヘッダの情報を用いて不正判定を行ってもよい。これらの場合も、Receivedヘッダの場合と同様に、ヘッダに記述された文字列のメール間での編集距離に基づきクラスタ分析を行って、クラスタ間の距離に基づき閾値を算出し、当該閾値を用いて新規メールの不正判定を行う。また、必要に応じて、Receivedヘッダの場合と同様に、あり得る文字列変化を考慮して閾値を補正することも可能である。
【００８２】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００８３】
１  送信者端末
２  送信側中継メールサーバ
３  送信側メールサーバ
４  受信側メールサーバ
５  攻撃者利用メールサーバ
６  攻撃者メール送信端末
１０  不正メール判定装置
１１  新規メール受信部
１２  ヘッダ情報抽出部
１３  不正メール判定部
１４  メール不正判定時処理部
１５  メール受信時処理部
１６  管理情報格納部
２０  受信者端末
３０  送信側ネットワーク
４０  受信側ネットワーク
５０  中継ネットワーク
【図１】
2014102708.tif 000003
【図２】
2014102708.tif 000004
【図３】
2014102708.tif 000005
【図４】
2014102708.tif 000006
【図５】
2014102708.tif 000007
【図６】
2014102708.tif 000008
【図７】
2014102708.tif 000009
【図８】
2014102708.tif 000010
【図９】
2014102708.tif 000011
【図１０】
2014102708.tif 000012
【図１１】
2014102708.tif 000013
【図１２】
2014102708.tif 000014
【図１３】
2014102708.tif 000015
【図１４】
2014102708.tif 000016
【図１５】
2014102708.tif 000017