(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】マッチング装置、マッチング方法、および、マッチングプログラム
(51)【国際特許分類】
H04L 43/04 20220101AFI20241008BHJP
H04L 41/142 20220101ALI20241008BHJP
【FI】
H04L43/04
H04L41/142
(21)【出願番号】P 2023514194
(86)(22)【出願日】2021-04-12
(86)【国際出願番号】 JP2021015195
(87)【国際公開番号】W WO2022219683
(87)【国際公開日】2022-10-20
【審査請求日】2023-08-18
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】渡邉 卓弥
【審査官】羽岡 さやか
(56)【参考文献】
【文献】米国特許出願公開第2018/0063082(US,A1)
【文献】米国特許第6813645(US,B1)
【文献】特開2005-117211(JP,A)
【文献】特開2006-54637(JP,A)
【文献】Butler Lampson et al.,IP Lookups Using Multiway and Multicolumn Search,IEEE/ACM TRANSACTIONS ON NETWORKING,1999年06月,VOL.7, NO.3,P.324-334
(58)【調査した分野】(Int.Cl.,DB名)
H04L 43/04
H04L 41/142
(57)【特許請求の範囲】
【請求項1】
参照用のIPアドレスの範囲を示すリストにおける前記IPアドレスの範囲ごとに、前記IPアドレスの範囲の開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードを生成する生成部と、
前記参照用のIPアドレスの範囲それぞれの開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードと、マッチング対象のIPアドレスを示すレコードとを結合する結合部と、
前記結合されたレコード群を、前記レコードのIPアドレスを主キーとし、前記レコードが、前記マッチング対象のIPアドレスのレコードか、前記開始IPアドレスを示すレコードか、前記終了IPアドレスのレコードかを示す情報を副キーとしてソートするソート部と、
前記ソートされたレコード群において、いずれかの前記IPアドレスの範囲の開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間に、前記マッチング対象のIPアドレスのレコードがある場合、前記マッチング対象のIPアドレスは、当該IPアドレスの範囲にマッチすると判定する判定部と、
前記判定の結果を出力する判定結果出力部と
を備えることを特徴とするマッチング装置。
【請求項2】
前記ソート部は、
前記結合されたレコード群を、各レコードのIPアドレスを主キーとし昇順でソートし、前記副キーについて、前記開始IPアドレスを示すレコード、前記マッチング対象のIPアドレスを示すレコード、前記終了IPアドレスを示すレコードの順になるようソートする
ことを特徴とする請求項1に記載のマッチング装置。
【請求項3】
前記判定部が、
前記マッチング対象のIPアドレスが、いずれかの前記IPアドレスの範囲にマッチすると判定した場合、
前記判定結果出力部は、
前記マッチング対象のIPアドレスからのアクセスは、悪性のアクセスである可能性がある旨の判定結果を出力する
ことを特徴とする請求項1に記載のマッチング装置。
【請求項4】
前記判定部が、
前記マッチング対象のIPアドレスが、いずれかの前記IPアドレスの範囲にマッチすると判定した場合、
前記判定結果出力部は、
前記マッチング対象のIPアドレスがマッチする前記IPアドレスの範囲それぞれの属性情報を出力する
ことを特徴とする請求項1に記載のマッチング装置。
【請求項5】
マッチング装置により実行されるマッチング方法であって、
参照用のIPアドレスの範囲を示すリストにおける前記IPアドレスの範囲ごとに、前記IPアドレスの範囲の開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードを生成する工程と、
前記参照用のIPアドレスの範囲それぞれの開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードと、マッチング対象のIPアドレスを示すレコードとを結合する工程と、
前記結合されたレコード群を、前記レコードのIPアドレスを主キーとし、前記レコードが、前記マッチング対象のIPアドレスのレコードか、前記開始IPアドレスを示すレコードか、前記終了IPアドレスのレコードかを示す情報を副キーとしてソートする工程と、
前記ソートされたレコード群において、いずれかの前記IPアドレスの範囲における開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間に、前記マッチング対象のIPアドレスのレコードがある場合、前記マッチング対象のIPアドレスは、当該IPアドレスの範囲にマッチすると判定する工程と、
前記判定の結果を出力する工程と
を含むことを特徴とするマッチング方法。
【請求項6】
参照用のIPアドレスの範囲を示すリストにおける前記IPアドレスの範囲ごとに、前記IPアドレスの範囲の開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードを生成する工程と、
前記参照用のIPアドレスの範囲それぞれの開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードと、マッチング対象のIPアドレスを示すレコードとを結合する工程と、
前記結合されたレコード群を、前記レコードのIPアドレスを主キーとし、前記レコードが、前記マッチング対象のIPアドレスのレコードか、前記開始IPアドレスを示すレコードか、前記終了IPアドレスのレコードかを示す情報を副キーとしてソートするソート部と、
前記ソートされたレコード群において、いずれかの前記IPアドレスの範囲における開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間に、前記マッチング対象のIPアドレスのレコードがある場合、前記マッチング対象のIPアドレスは、当該IPアドレスの範囲にマッチすると判定する工程と、
前記判定の結果を出力する工程と
をコンピュータに実行させることを特徴とするマッチングプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IPアドレスのマッチング装置、マッチング方法、および、マッチングプログラムに関する。
【背景技術】
【0002】
サーバ等への疑わしいアクセスを検知するため、サーバへのアクセスログに示されるアクセスのうち、Proxyサーバや悪性IPアドレスからのアクセスはどれか、また、Proxyサーバからのアクセスがある場合、どのような種別のProxyサーバからのアクセスかを特定することが行われる。
【0003】
ここでサーバが多数のアクセスを受け付けるサーバである場合、大量のアクセス元のIPアドレス(単体)のリストと、ProxyサーバのIPアドレスや悪性IPアドレスのリスト等の大量のIPアドレス(IPアドレスのレンジを含む)のリストとのマッチングを行う必要がある。
【先行技術文献】
【非特許文献】
【0004】
【文献】N.Yazdani, et al.、Fast and Scalable schemes for the IP address Lookup Problem、High Performance Switching and Routing, 2000. ATM 2000.
【文献】Changhoon Yim, et al.、Efficient Binary Search for IP Address Lookup、IEEE Communications Letters ( Volume: 9, Issue: 7, July 2005)
【文献】Ju Hyoung Mun, et al.、New Approach for Efficient IPAddress Lookup Using a Bloom Filter in Trie Based Algorithms、 IEEE Transactions on Computers ( Volume: 65, Issue: 5, May 1 2016)
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、アクセス元のIPアドレスの数や、ProxyサーバのIPアドレスおよび悪性IPアドレスのリスト(参照用のIPアドレスのリスト)のIPアドレスのレンジの数が膨大である場合、マッチングに要する時間が膨大になる。
【0006】
例えば、アクセス元のIPアドレスの数がMであり、参照用のIPアドレスのリストにおけるIPアドレスのレンジの数がNである場合、IPアドレスのマッチングに要する時間計算量はO(MN)となる。
【0007】
また、参照用のIPアドレスのリストにおけるIPアドレスのレンジを展開して得られたIPアドレス群と、アクセス元のIPアドレスそれぞれとをハッシュ等でマッチングすることも考えられる。このような方法によれば、マッチングに要する時間計算量はO(M)となるが、参照用のIPアドレスのリストの示されるIPアドレスのレンジの大きさによっては、メモリ使用量(空間計算量)が膨大になる可能性がある。
【0008】
なお、IPアドレスlookupにおける高速マッチング方法(非特許文献1,2,3参照)もあるが、この方法は、アクセス元のIPアドレスが、複数のIPアドレスのレンジにマッチする場合については考慮されていない。
【0009】
そこで、本発明は、前記した問題を解決し、大量のIPアドレスのリストのマッチングを行う際の計算量を低減することを課題とする。
【課題を解決するための手段】
【0010】
前記した課題を解決するため、本発明は、参照用のIPアドレスの範囲を示すリストにおける前記IPアドレスの範囲ごとに、前記IPアドレスの範囲の開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードを生成する生成部と、前記参照用のIPアドレスの範囲それぞれの開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードと、マッチング対象のIPアドレスを示すレコードとを結合する結合部と、前記結合されたレコード群を、前記レコードのIPアドレスを主キーとし、前記レコードが、前記マッチング対象のIPアドレスのレコードか、前記開始IPアドレスを示すレコードか、前記終了IPアドレスのレコードかを示す情報を副キーとしてソートするソート部と、前記ソートされたレコード群において、いずれかの前記IPアドレスの範囲の開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間に、前記マッチング対象のIPアドレスのレコードがある場合、前記マッチング対象のIPアドレスは、当該IPアドレスの範囲にマッチすると判定する判定部と、前記判定の結果を出力する判定結果出力部とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、大量のIPアドレスのリストのマッチングを行う際の計算量を低減することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、マッチング装置の概要を説明する図である。
【
図2】
図2は、マッチング装置の動作概要を説明する図である。
【
図3】
図3は、マッチング装置の動作概要を説明する図である。
【
図4】
図4は、マッチング装置の構成例を示す図である。
【
図5】
図5は、マッチング装置の処理手順の例を示すフローチャートである。
【
図6】
図6は、マッチング装置により判定の例を示す図である。
【
図7】
図7は、マッチング装置によるIPアドレスのマッチングの適用例を示す図である。
【
図8】
図8は、マッチングプログラムを実行するコンピュータの例を示す図である。
【発明を実施するための形態】
【0013】
以下、図面を参照しながら、本発明を実施するための形態(実施形態)について説明する。本発明は、以下に説明する実施形態に限定されない。
【0014】
なお、以下の説明において、マッチング装置は、マッチング対象のIPアドレスのリストと、参照用のIPアドレスのリストとのマッチングを行う。参照用のIPアドレスのリストは、例えば、悪性である可能性のあるIPアドレスのリストであり、ProxyサーバのIPアドレスのリスト、悪性IPアドレスのリスト等である。
【0015】
また、マッチング対象のIPアドレスのリストにおけるIPアドレス群は、それぞれ単体のIPアドレスである場合を例に説明する。また、参照用のIPアドレスのリストにおけるIPアドレス群は、それぞれ単体のIPアドレスまたはIPアドレスの範囲(レンジ)である場合を例に説明する。また、各リストは、例えば、総量が1M以上の大規模なリストであるものとする。
【0016】
[概要]
まず、
図1を用いて、本実施形態のマッチング装置の概要を説明する。マッチング装置は、マッチング対象のIPアドレスのリスト(例えば、アクセスログから取得したアクセス元のIPアドレス等)と、参照用のIPアドレスのリストとをマッチングする。
【0017】
例えば、マッチング装置は、アクセス元のIPアドレスのリストと、参照用のIPアドレスのリストとをマッチングすることにより、各アクセスがProxyサーバ経由であるか否か等を判定する。例えば、マッチング装置は、アクセス元のIPアドレスが、参照用のIPアドレスのリストのProxyサーバのIPアドレス(IPアドレスのレンジ)に該当する場合、当該アクセスはProxyサーバ経由であると判定する。これにより、マッチング装置は、当該アクセス元のIPアドレスからのアクセスが、悪性のアクセスである可能性があるか否かを判定することができる。
【0018】
図2、
図3を用いて、マッチング装置の動作概要を説明する。まず、マッチング装置は、参照用のIPアドレスのリストにおけるIPアドレスのレンジごとにインデックスを割り当てる(
図2の(1)参照用のIPアドレスのリストにインデックスを割り当てる)。
【0019】
次に、マッチング装置は、参照用のIPアドレスのリストにおける各IPアドレスのレンジを、レンジの開始IPアドレスのレコードとレンジの終了IPアドレスのレコードとに分割する((2)参照用のIPアドレスのリストのレンジを開始IPアドレスと終了IPアドレスに分割する)。
【0020】
このときマッチング装置は、開始IPアドレスのレコードには、開始IPアドレスのレコードであることを示す情報(例えば、BEGIN)を付与し、終了IPアドレスのレコードには、終了IPアドレスのレコードであることを示す情報(例えば、END)を付与する。
【0021】
次に、マッチング装置は、(2)の処理を行ったリストと、マッチング対象のIPアドレスのリストとを結合する((3)マッチング対象のIPアドレスのリストと結合する)。このときマッチング装置は、マッチング対象のIPアドレスのレコードに、マッチング対象のIPアドレスのレコードであることを示す情報(例えば、TARGET)を付与する。
【0022】
図3の説明に移る。マッチング装置は、
図2の(3)の処理を行ったリストの各レコードに対し、下記のルールで昇順のソートを行う((4)下記のルールで昇順のソートを行う)。
【0023】
主キー:IPアドレス(IPアドレスを整数値としてソート)
副キー:BEGIN<TARGET<ENDの順にソート
【0024】
上記のルールにより各レコードは、例えば、
図3の符号301に示すようにソートされる。
【0025】
その後、マッチング装置は、(4)でソートされた各レコードについて、上から順に、同じインデックスを持つ開始IPアドレスのレコードと終了IPアドレスのレコードとの間に、マッチング対象のIPアドレスのレコードがあるか否かを判定する((5)上から順に処理)。
【0026】
例えば、マッチング装置は、
図3の符号302に示すリストの破線で囲んだ部分について、インデックス0(1.1.1.1-1.1.1.10)の開始IPアドレス(BEGIN)と終了IPアドレス(END)との間に、マッチング対象のIPアドレス(TARGET)1.1.1.2があると判定する。よって、マッチング装置は、マッチング対象のIPアドレス1.1.1.2が、参照用のIPアドレスのインデックス0(1.1.1.1-1.1.1.10)のIPアドレスのレンジに含まれる(マッチする)と判定する。
【0027】
マッチング装置が、上記のようにして各IPアドレスのリストのマッチングを行うことにより、各リストそれぞれが大規模なものであっても、マッチングに要する計算量を低減することができる。
【0028】
例えば、マッチング対象のIPアドレスのリストのIPアドレス数がMであり、参照用のIPアドレスのリストのIPアドレスのレンジの数がNである場合、各リストのIPアドレスのマッチングに要する空間計算量をO(M+N)にすることができる。また、例えば、マッチングに用いるソートアルゴリズムがTimsortである場合、各リストのIPアドレスのマッチングに要する時間計算量を、O((M+N)log(M+N))にすることができる。
【0029】
[構成例]
次に、
図4を用いてマッチング装置の構成例を説明する。
図4に示すようにマッチング装置10は、入出力部11と、記憶部12と、制御部13とを備える。
【0030】
入出力部11は、各種データの入出力を司るインタフェースである。例えば、入出力部11は、マッチング対象のIPアドレスのリスト、参照用のIPアドレスのリスト等の入力を受け付ける。なお、各リストのIPアドレスは、IPv4のIPアドレスでもよいし、IPv6のIPアドレスでもよい。
【0031】
記憶部12は、制御部13が各種処理を実行する際に参照する各種データを記憶する。例えば、記憶部12は、入出力部11経由で入力されたマッチング対象のIPアドレスのリストや、参照用のIPアドレスのリストを記憶する。また、記憶部12は、制御部13がマッチングを行う過程で作成するデータを一時的に記憶する。
【0032】
制御部13は、マッチング装置10全体の制御を司る。制御部13は、例えば、生成部131と、結合部132と、ソート部133と、判定部134と、判定結果出力部135とを備える。
【0033】
生成部131は、参照用のIPアドレスのリストにおけるIPアドレスのレンジごとに、当該IPアドレスのレンジの開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードを生成する。
【0034】
例えば、生成部131は、まず、参照用のIPアドレスのリストにおけるIPアドレスのレンジごとに、インデックスを付与する(
図2の(1)参照)。そして、生成部131は、IPアドレスのレンジそれぞれについて、当該IPアドレスのレンジの開始IPアドレスのレコードおよび終了IPアドレスのレコードを生成する。
【0035】
そして、生成部131は、IPアドレスのレンジの開始IPアドレスのレコードには、当該レコードが開始IPアドレスのレコードであることを示す情報(例えば、BEGIN)を付与する。また、生成部131は、IPアドレスのレンジの終了IPアドレスのレコードには、当該レコードが終了IPアドレスのレコードであることを示す情報(例えば、END)を付与する(
図2の(2)参照)。
【0036】
結合部132は、生成部131により生成されたレコードと、マッチング対象のIPアドレスのリストのIPアドレスのレコードとを結合する。また、このとき、結合部132は、マッチング対象のIPアドレスのレコードに、当該レコードがマッチング対象のIPアドレスのレコードである旨の情報(例えば、TARGET)を付与する(
図2の(3)参照)。
【0037】
ソート部133は、結合部132により結合されたレコード群を、各レコードのIPアドレスを主キーとし、各レコードがマッチング対象のIPアドレスのレコードか、開始IPアドレスのレコードか、終了IPアドレスのレコードかを示す情報(例えば、TARGET、BEGIN、END)を副キーとしてソートする(
図3の(4)参照)。例えば、ソート部133は、各レコードをBEGIN<TARGET<ENDの昇順でソートする。
【0038】
これによりソート部133は、例えば、TARGETが付されたレコードのIPアドレスと、BEGINまたはENDが付されたレコードのIPアドレスとが一致する場合でも、BEGINが付されたレコードとENDが付されたレコードとの間に、TARGETが付されたレコードが配置されるようにソートすることができる。
【0039】
なお、ソート部133が用いるソートアルゴリズムは、例えば、Timsort等である。
【0040】
判定部134は、ソート部133によりソートされたレコードにおいて、参照用のIPアドレスのリストにおけるいずれかのIPアドレスのレンジの開始IPアドレスのレコードと終了IPアドレスのレコードとの間に、マッチング対象のIPアドレスのレコードがある場合(
図3の(5)参照)、当該マッチング対象のIPアドレスは、当該IPアドレスのレンジに該当すると判定する。
【0041】
なお、ソート部133によりソートされたレコードにおいて、参照用のIPアドレスのリストにおけるいずれのIPアドレスのレンジの開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間にも、マッチング対象のIPアドレスのレコードがない場合、判定部134は、マッチング対象のIPアドレスのリストの各IPアドレスは、参照用のIPアドレスのリストにおけるいずれのIPアドレスのレンジにも該当しないと判定する。
【0042】
判定結果出力部135は、判定部134による判定の結果を出力する。例えば、判定部134により、マッチング対象のIPアドレスが、悪性IPリストのIPアドレスのレンジに該当すると判定された場合、判定結果出力部135は、マッチング対象のIPアドレスからのアクセスは、悪性のアクセスである可能性がある旨の判定結果を出力する。
【0043】
また、判定結果出力部135は、マッチング対象のIPアドレスがマッチするIPアドレスのレンジの属性情報を判定結果として出力してもよい。例えば、判定部134により、マッチング対象のIPアドレスが、Web ProxyのIPアドレスのレンジおよびResidential ProxyのIPアドレスのレンジに含まれると判定された場合、判定結果出力部135は、マッチング対象のIPアドレスは、Web ProxyおよびResidential Proxyからのアクセスである旨の判定結果を出力してもよい。
【0044】
[処理手順の例]
次に、
図5を用いて、マッチング装置10の処理手順の例を説明する。なお、マッチング装置10は、参照用のIPアドレスのリストおよびマッチング対象のIPアドレスのリストを取得済みであるものとする。
【0045】
まず、マッチング装置10の生成部131は、参照用のIPアドレスのリストにおける各IPアドレスのレンジのレコードにインデックスを割り当てる(S1)。次に、生成部131は、参照用のIPアドレスのリストの各IPアドレスのレンジのレコードを、開始IPアドレスのレコードと終了IPアドレスのレコードとに分割する(S2)。そして、結合部132は、S2で分割された参照用のIPアドレスのリストを、マッチング対象のIPアドレスのリストのレコードと結合する(S3)。
【0046】
S3の後、ソート部133は、S3で結合されたリストの各レコードを昇順にソートする(S4)。このときの主キーは、IPアドレスであり、副キーは、各レコードが、マッチング対象のIPアドレスのレコードか、開始IPアドレスのレコードか、終了IPアドレスのレコードかを示す情報(例えば、TARGET、BEGIN、END)である。
【0047】
例えば、ソート部133は、S3で結合されたリストの各レコードについて、主キーであるIPアドレスを整数値に変換した値が昇順になり、副キーであるTARGET、BEGIN、ENDがBEGIN<TARGET<ENDであるとして昇順になるようソートする。
【0048】
S4の後、判定部134は、ソート後の各レコードのうち、未処理のレコードについて上から順に、同じインデックスが付された開始IPアドレスのレコードと終了IPアドレスとの間に、マッチング対象のIPアドレスがあるか否かを判定する(S5)。
【0049】
ここで判定部134が、同じインデックスが付された開始IPアドレスのレコードと終了IPアドレスとの間に、マッチング対象のIPアドレスがあると判定した場合(S5でYes)、当該マッチング対象のIPアドレスは、当該インデックスのIPアドレスのレンジに含まれる(マッチする)と判定する(S6)。そして、判定部134が、ソート後のすべてのレコードを処理済みと判定した場合(S7でYes)、S8へ進む。一方、判定部134が、未処理のレコードがあると判定した場合(S7でNo)、S5へ戻る。
【0050】
S7で、判定部134が、ソート後のすべてのレコードを処理済みと判定した場合(S7でYes)、判定部134は、判定の結果を判定結果出力部135に出力する。そして、判定結果出力部135は、判定部134による判定の結果を入出力部11経由で出力する(S8)。例えば、判定結果出力部135は、マッチング対象のIPアドレスが該当する(マッチする)IPアドレスのレンジの属性情報(例えば、Web Proxy、Residential Proxy等)と、マッチング対象のIPアドレスとを出力する。
【0051】
マッチング装置10が上記の処理を行うことで、IPアドレスのリストがそれぞれ大規模なものであっても、マッチングに要する計算量を低減することができる。その結果、マッチング装置10は、大規模なIPアドレスのリスト同士でも、高速かつ高効率でマッチングすることができる。
【0052】
例えば、マッチング装置10が100万件のIPアドレスのリストと、100万件の参照用のIPアドレスのリストとをマッチングする場合、各リストのIPアドレスを1つ1つマッチングする場合と比べ、IPアドレス同士の比較回数を1/10000以下にすることができる。その結果、IPアドレスのリストのマッチングに要する時間を大幅に低減できる。
【0053】
なお、前記した
図5のS5の処理は、例えば、以下のようにして行ってもよい。例えば、判定部134は、未処理のレコードについて上から順に見ていき、BEGINが付与されたレコードを見つけると、当該レコードに付与されたインデックスのフラグを立てる。また、判定部134は、TARGETが付与されたレコードを見つけると、フラグが立っているインデックスに対応するIPアドレスのレンジに、当該TARGETが付与されたレコードのIPアドレスが含まれると判定する。また、判定部134は、ENDが付与されたレコードを見つけると、当該レコードに付与されたインデックスのフラグを降ろす。
【0054】
判定部134は、上記の処理を上から順に最後のレコードまで実行する。そして、判定部134は、フラグの立っているインデックスに対応するIPアドレスのレンジを、マッチング対象のIPアドレスがマッチするIPアドレスのレンジとする。このようにすることで、判定部134は、例えば、マッチング対象のIPアドレスが複数のIPアドレスのレンジに含まれる場合でも、漏れなく検出することができる。
【0055】
例えば、
図6に示すようにマッチング対象のIPアドレスが該当する複数のIPアドレスのレンジ同士が、入れ子状になっている場合(符号601参照)や、部分的に重複している場合(符号602参照)でも、漏れなく検出することができる。
【0056】
例えば、符号601に示す例の場合、判定部134は、マッチング対象のIPアドレス「1.1.1.2」が、インデックス0(1.1.1.1-1.1.1.10)およびインデックス1(1.1.1.1-1.1.1.5)に含まれることを検出することができる。
【0057】
また、符号602に示す例の場合、判定部134は、マッチング対象のIPアドレス「1.1.1.3」が、インデックス0(1.1.1.1-1.1.1.10)およびインデックス2(1.1.1.2-1.1.1.15)に含まれることを検出することができる。
【0058】
[適用例]
図7を用いて、マッチング装置10によるIPアドレスのリストのマッチングの適用例を説明する。例えば、マッチング装置10によるIPアドレスのマッチングを、
図7の(1)に示すような、あるショッピングサイトにおけるクレジットカード決済のIP(IPアドレス)ログと、あらかじめ用意したProxy Listとのマッチングに適用してもよい。ここで、IPログに記載されたIPアドレスが、あらかじめ用意したProxy ListのいずれかのIPアドレスのレンジに該当すれば、当該IPログに対応するアクセスはProxy経由の疑わしいアクセスと判断することができる。
【0059】
また、マッチング装置10によるIPアドレスのマッチングを、
図7の(2)に示すような、あるウェブサイトにおけるサーバへのアクセスログと、あらかじめ用意した悪性IP(IPアドレス)リストとのマッチングに適用してもよい。ここで、アクセスログに記載されたIPアドレスが、あらかじめ用意した悪性IPリストのいずれかのIPアドレスのレンジに該当すれば、当該IPログに対応するアクセスは乗っ取られた端末によるアクセス等と判断することができる。
【0060】
[システム構成等]
また、図示した各部の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0061】
また、前記した実施形態において説明した処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0062】
[プログラム]
前記したマッチング装置10は、パッケージソフトウェアやオンラインソフトウェアとしてプログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記のプログラムを情報処理装置に実行させることにより、情報処理装置をマッチング装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等の端末等がその範疇に含まれる。
【0063】
また、マッチング装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の処理に関するサービスを提供するサーバ装置として実装することもできる。この場合、サーバ装置は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【0064】
図8は、マッチングプログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0065】
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0066】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記のマッチング装置10が実行する各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、マッチング装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0067】
また、上述した実施形態の処理で用いられるデータは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0068】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続される他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0069】
10 マッチング装置
11 入出力部
12 記憶部
13 制御部
131 生成部
132 結合部
133 ソート部
134 判定部
135 判定結果出力部