(57)【要約】  識別装置（１０）は、ＩＰアドレスブロックに含まれるＩＰアドレスであって、所定の順序でソートされたＩＰアドレスの列を複数の部分に分割する境界を、各ＩＰアドレスのＡＳ番号、ｅ２ＬＤ、ＰＴＲレコード等に基づいて特定する。また、識別部（１４２）は、境界によって分割された部分に含まれるＩＰアドレスの数が任意に設定可能なパラメータＮ以上である場合、当該部分に含まれるＩＰアドレスを動的ＩＰアドレスと識別する。
2020012747.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰアドレスブロックに含まれるＩＰアドレスであって、所定の順序でソートされたＩＰアドレスの列を複数の部分に分割する境界を、前記ＩＰアドレスに関する所定の情報に基づいて特定する特定部と、
前記境界によって分割された部分が所定の条件を満たす場合、前記部分に含まれるＩＰアドレスを動的ＩＰアドレスと識別する識別部と、
を有することを特徴とする識別装置。
【請求項２】
前記特定部は、第１のＩＰアドレスに関する第１の情報と、前記列における順序が前記第１のＩＰアドレスの次である第２のＩＰアドレスに関する第２の情報とを比較し、前記第１の情報と前記第２の情報との類似度が閾値以下である場合、前記第１のＩＰアドレスと前記第２のＩＰアドレスとの間の位置を境界と特定することを特徴とする請求項１に記載の識別装置。
【請求項３】
前記特定部は、管理者又は運用者が前記ＩＰアドレス間で同じであるか否かを特定可能な情報に基づいて境界を特定することを特徴とする請求項１又は２に記載の識別装置。
【請求項４】
前記特定部は、前記所定の情報に含まれる所定の文字列の類似度に基づいて境界を特定することを特徴とする請求項１又は２に記載の識別装置。
【請求項５】
前記特定部は、第１のＩＰアドレスのホスト名からｅ２ＬＤ（effective  second  level  domain）を除いた第１の文字列と、前記列における順序が前記第１のＩＰアドレスの次である第２のＩＰアドレスのホスト名からｅ２ＬＤを除いた第２の文字列と、の間のJaro-Winkler距離が閾値以下である場合、前記第１のＩＰアドレスと前記第２のＩＰアドレスとの間の位置を境界と特定することを特徴とする請求項４に記載の識別装置。
【請求項６】
前記識別部は、前記境界によって分割された部分に含まれるＩＰアドレスの数が閾値以上である場合、前記部分に含まれるＩＰアドレスを動的ＩＰアドレスと識別することを特徴とする請求項１から５のいずれか１項に記載の識別装置。
【請求項７】
コンピュータが実行する識別方法であって、
ＩＰアドレスブロックに含まれるＩＰアドレスであって、所定の順序でソートされたＩＰアドレスの列を複数の部分に分割する境界を、前記ＩＰアドレスに関する所定の情報に基づいて特定する特定工程と、
前記境界によって分割された部分が所定の条件を満たす場合、前記部分に含まれるＩＰアドレスを動的ＩＰアドレスでと識別する識別工程と、
を含むことを特徴とする識別方法。
【請求項８】
コンピュータを、請求項１から６のいずれか１項に記載の識別装置として機能させるための識別プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、識別装置、識別方法及び識別プログラムに関する。
【背景技術】
【０００２】
サイバー攻撃の多くはマルウェアに感染したマルウェア感染端末を利用する。サイバー攻撃やマルウェア感染端末への対策を進める際に、ＩＰ（Internet  Protocol）アドレスはユニークな識別子として扱われることが多い。具体的には、マルウェア感染端末のＩＰアドレスがブラックリストやシグネチャとして利用される場合や、当該ＩＰアドレスから送出されるトラヒックが異常トラヒックとして取り扱われる場合がある。また、このようなマルウェア感染端末が利用するＩＰアドレスは、ＩＳＰ（Internet  Service  Provider）によって割り振られる動的ＩＰアドレスであることが多い。【０００３】
ここで、端末に動的ＩＰアドレスが割り振られる場合、同じ端末が永続的にＩＰアドレスを利用することはない。例えば、端末のＩＰアドレスは、ＰＰＰｏＥ（Point-to-Point  Protocol  over  Ethernet）セッションの再接続や、電源断、ＩＳＰによる変更が発生したタイミングで変更される。【０００４】
このため、動的ＩＰアドレスでは、マルウェア感染端末を正確に特定できない場合がある。そこで、マルウェア感染端末の特定に動的ＩＰアドレスを用いることを回避するため、ＩＰアドレスの中から、動的ＩＰアドレスを識別するための手法が提案されている。【０００５】
例えば、対象ＩＰアドレスのＰＴＲ（PoinTeR）レコードにあらかじめ指定したキーワード、又は当該ＩＰアドレスの第１〜第４オクテットの一部又は全ての数値が含まれる場合に、当該ＩＰアドレス又は当該ＩＰアドレスを含む/24のアドレスブロックが動的ＩＰアドレスであることを識別する手法が提案されている（例えば、非特許文献１から４を参照）。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Yinglian  Xie,  Fang  Yu,  Kannan  Achan,  Eliot  Gillum,  Moises  Goldszmidt  and  Ted  Wobber,  "How  Dynamic  are  IP  Addresses?,"  in  SIGCOMM'07  Proceedings  of  the  2007  Conference  on  Applications,  Technologies,  Architectures,  and  Protocols  for  Computer  Communications,  pp.301-312,  2007.
【非特許文献２】Philipp  Richter,  Georgios  Smaragdakis,  David  Plonka  and  Arthur  Berger,  "Beyond  Counting:  New  Perspectives  on  the  Active  IPv4  Address  Space,"  in  IMC  '16  Proceedings  of  the  2016  Internet  Measurement  Conference,  pp.135-149,  2016.
【非特許文献３】Yu  Jin,  Esam  Sharafuddin  and  Zhi-Li  Zhang,  "Identifying  Dynamic  IP  Address  Blocks  Serendipitously  through  Background  Scanning  Traffic,"  in  CoNEXT  '07  Proceedings  of  the  2007  ACM  CoNEXT  conference,  2007.
【非特許文献４】Xue  Cai  and  John  Heidemann,  "Understanding  Block-level  Address  Usage  in  the  Visible  Internet,"  in  SIGCOMM'10  Proceedings  of  the  ACM  SIGCOMM  2010  conference,  pp.99-110,  2010.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の動的ＩＰを識別する手法では、動的ＩＰアドレスを精度良く識別することができない場合がある。例えば、動的ＩＰアドレスのＰＴＲレコードが指定したキーワードのいずれにも合致しない場合、従来の手法では、当該動的ＩＰアドレスを識別することは困難である。また、指定したキーワードが、動的ＩＰアドレスでないＩＰアドレスのＰＴＲレコードに含まれている場合、従来の手法では、動的ＩＰアドレスでないＩＰアドレスを誤って動的ＩＰアドレスと識別してしまう場合がある。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、識別装置は、ＩＰアドレスブロックに含まれるＩＰアドレスであって、所定の順序でソートされたＩＰアドレスの列を複数の部分に分割する境界を、前記ＩＰアドレスに関する所定の情報に基づいて特定する特定部と、前記境界によって分割された部分が所定の条件を満たす場合、前記部分に含まれるＩＰアドレスを動的ＩＰアドレスと識別する識別部と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、動的ＩＰアドレスを精度良く識別することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１の実施形態に係る識別装置の構成の一例を示す図である。
【図２】図２は、第１の実施形態に係るＩＰアドレスブロックの一例を示す図である。
【図３】図３は、第１の実施形態に係る設定情報の一例を示す図である。
【図４】図４は、第１の実施形態に係る管理境界について説明するための図である。
【図５】図５は、第１の実施形態に係る文字列の比較方法について説明するための図である。
【図６】図６は、第１の実施形態に係る文字列の比較方法について説明するための図である。
【図７】図７は、第１の実施形態に係る文字列境界について説明するための図である。
【図８】図８は、第１の実施形態に係る種別の識別について説明するための図である。
【図９】図９は、第１の実施形態に係る識別装置の処理の流れを示すフローチャートである。
【図１０】図１０は、識別プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願に係る識別装置、識別方法及び識別プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【００１２】
［第１の実施形態の構成］
まず、図１を用いて、第１の実施形態に係る識別装置の構成について説明する。図１は、第１の実施形態に係る識別装置の構成の一例を示す図である。図１に示すように、識別装置１０は、入力部１１、出力部１２、記憶部１３及び制御部１４を有する。
【００１３】
入力部１１は、ユーザからのデータの入力を受け付ける。入力部１１は、例えば、マウスやキーボード等の入力装置である。出力部１２は、画面の表示等により、データを出力する。出力部１２は、例えば、ディスプレイ等の表示装置である。また、入力部１１及び出力部１２は、外部の装置との通信によりデータの入出力を行うインタフェースであってもよい。
【００１４】
入力部１１は、図２に示すようなＩＰアドレスブロックの入力を受け付ける。図２は、第１の実施形態に係るＩＰアドレスブロックの一例を示す図である。なお、ＩＰアドレスブロックは、１つ以上のＩＰアドレスの集合である。
【００１５】
ここで、図２の通番１のレコードに示すように、ＩＰアドレスブロックは、「192.0.2.0/24」のように表される。ＩＰアドレスブロック「192.0.2.0/24」には、上位２４ビット、すなわち第１オクテットから第３オクテットまでが「192.0.2」であり、下位８ビット、すなわち第４オクテットが任意の値である２５６個のＩＰアドレスが含まれる。
【００１６】
図１に戻り、記憶部１３は、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部１３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶部１３は、識別装置１０で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部１３は、プログラムの実行で用いられる各種情報を記憶する。また、記憶部１３は、設定情報１３１を記憶する。
【００１７】
記憶部１３は、ＩＰアドレスに関する情報を設定情報１３１として記憶する。ここで、図３を用いて、設定情報１３１について説明する。図３は、第１の実施形態に係る設定情報の一例を示す図である。なお、設定情報１３１は、動的ＩＰアドレスの識別処理が行われる前に、手動又は自動で記憶部１３に格納済みであるものとする。例えば、設定情報１３１は、ＳＳＬ（Secure  Sockets  Layer）サーバ証明書から取得したものであってよい。
【００１８】
図３に示すように、設定情報１３１には、通番、ＩＰアドレス、ＡＳ番号、ＰＴＲレコード、ｅ２ＬＤ（effective  second  level  domain）等の項目が含まれる。通番は、各レコードを識別するための番号である。ＰＴＲレコードは、ＤＮＳ（Domain  Name  System）の逆引きレコードであり、ＩＰアドレスに対するホスト名を示す。ｅ２ＬＤは、ＰＴＲレコードに含まれるトップレベルドメイン名及びセカンドレベルドメイン名である。
【００１９】
図３の通番２６のレコードは、ＩＰアドレス「192.0.2.26」のＡＳ番号が「AS64496」であり、ＰＴＲレコードが「www.example.com」であり、ｅ２ＬＤが「example.com」であることを示している。
【００２０】
図１に戻り、制御部１４は、識別装置１０全体を制御する。制御部１４は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１４は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１４は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部１４は、特定部１４１及び識別部１４２を有する。
【００２１】
特定部１４１は、入力部１１に入力されたＩＰアドレスブロックに含まれるＩＰアドレスであって、所定の順序でソートされたＩＰアドレスの列を複数の部分に分割する境界を、設定情報１３１に基づいて特定する。例えば、図４に示すように、特定部１４１は、位置１００ａ及び位置１００ｂを境界として特定する。なお、設定情報１３１は、ＩＰアドレスに関する所定の情報の一例である。また、ここでの部分とは、入力されたＩＰアドレスブロックに含まれるＩＰアドレスの一部であって、ソートされた列における順序及び連続性を保持したＩＰアドレスの集合である。
【００２２】
図４に示すように、まず、特定部１４１は、ＩＰアドレスを所定の順序でソートする。図４は、第１の実施形態に係る管理境界について説明するための図である。本実施形態では、特定部１４１は、ＩＰアドレスの各オクテットの値を数値とみなしたものをキーとして、当該キーの大小関係によってソートを行うものとする。図４の例では、ＩＰアドレスはキーの小さい順にソートされている。
【００２３】
例えば、特定部１４１は、第１のＩＰアドレスに関する第１の情報と、列における順序が第１のＩＰアドレスの次である第２のＩＰアドレスに関する第２の情報とを比較し、第１の情報と第２の情報との類似度が閾値以下である場合、第１のＩＰアドレスと第２のＩＰアドレスとの間の位置を境界と特定する。つまり、特定部１４１は、図４の通番が連続する２つのレコードの所定の項目の値を比較し、類似度が所定値以下であった場合、当該連続する２つのレコードの間の位置を境界と特定する。なお、２つの比較対象の類似度が所定値以下である場合には、２つの比較対象が完全一致しない場合も含まれる。
【００２４】
具体的には、特定部１４１は、管理者又は運用者がＩＰアドレス間で同じであるか否かを特定可能な情報に基づいて境界を特定する。本実施形態では、特定部１４１は、２つのＩＰアドレス間でＡＳ番号又はｅ２ＬＤが異なる場合、当該２つのＩＰアドレスの管理者又は運用者がそれぞれ異なると判定する。
【００２５】
例えば、図４の通番１から１２８までのレコードと、通番１２９以降のレコードとでは、ＡＳ番号が異なるため、特定部１４１は、通番１２８のレコードと通番１２９のレコードの間の位置１００ｂを境界と特定する。また、ここでは、位置１００ｂより前のレコード及び位置１００ｂより後のレコードは、それぞれセグメント１及びセグメント２に分割されるものとする。
【００２６】
さらに、セグメント１のレコードのうち、通番１から２０までのレコードと、通番２１以降のレコードとでは、ｅ２ＬＤが異なるため、特定部１４１は、通番２０のレコードと通番２１のレコードの間の位置１００ａを境界と特定する。また、ここでは、セグメント１内の、位置１００ａより前のレコード及び位置１００ａより後のレコードは、枝番号を付けて、それぞれセグメント１−１及びセグメント１−２に分割されるものとする。
【００２７】
さらに、特定部１４１は、所定の情報に含まれる所定の文字列の類似度に基づいて境界を特定する。具体的には、特定部１４１は、第１のＩＰアドレスのホスト名からｅ２ＬＤを除いた第１の文字列と、列における順序が第１のＩＰアドレスの次である第２のＩＰアドレスのホスト名からｅ２ＬＤを除いた第２の文字列と、の間のJaro-Winkler距離（参考文献１：William  E.  Winkler,  "String  Comparator  Metrics  and  Enhanced  Decision  Rules  in  the  Fellegi-Sunter  Model  of  Record  Linkage,"  Proceedings  of  the  Section  on  Survey  Research  Methods,  in  American  Statistical  Association,  pp.354--359,  1990）が閾値以下である場合、第１のＩＰアドレスと第２のＩＰアドレスとの間の位置を境界と特定する。ここで、本実施形態において、ホスト名はＰＴＲレコードである。
【００２８】
図５及び図６を用いて、特定部１４１による文字列の比較方法について説明する。図５及び図６は、第１の実施形態に係る文字列の比較方法について説明するための図である。まず、図５に示すように、ＰＴＲレコード「test1.example.co.jp」は、比較対象文字列２０１及びｅ２ＬＤ２０２を含む。また、ＰＴＲレコード「test2.example.co.jp」は、比較対象文字列２０３及びｅ２ＬＤ２０４を含む。ここで、特定部１４１は、比較対象文字列２０１と比較対象文字列２０３との間のJaro-Winkler距離を０．９０９と計算する。
【００２９】
また、図６に示すように、ＰＴＲレコード「test1.example.co.jp」は、比較対象文字列２１１及びｅ２ＬＤ２１２を含む。また、ＰＴＲレコード「invalid.example.co.jp」は、比較対象文字列２１３及びｅ２ＬＤ２１４を含む。ここで、特定部１４１は、比較対象文字列２１１と比較対象文字列２１３との間のJaro-Winkler距離を０．０００と計算する。
【００３０】
ここで、図７に示すように、特定部１４１は、Jaro-Winkler距離に基づいて、位置２０００ａ、位置２０００ｂ、位置２０００ｃ、位置２０００ｄ、位置２０００ｅ及び位置２０００ｆを境界と特定する。図７は、第１の実施形態に係る文字列境界について説明するための図である。
【００３１】
例えば、図７の通番２０のレコードと、通番２１のレコードとでは、Jaro-Winkler距離が閾値以下になるため、特定部１４１は、通番２０のレコードと通番２１のレコードの間の位置２００ａを境界と特定する。また、ここでは、セグメント１−１内の、位置２００ａより前のレコード及び位置２００ａより後のレコードは、さらに枝番号を付けて、それぞれセグメント１−１−１及びセグメント１−２−１に分割されるものとする。
【００３２】
ここで、Jaro-Winkler距離は、２つの文字列が完全一致している場合には１となり、全く一致していない場合は０となる指標であり、Jaro距離に基づいて定義される。特定部１４１は、Jaro距離Φを（１）式のように計算する。また、特定部１４１は、Jaro-Winkler距離Φｎを（２）式のように計算する。
【００３３】
【数１】
2020012747.tif 000003
【００３４】
【数２】
2020012747.tif 000004
【００３５】
例えば、図６の「test1」及び「test2」は、プレフィックス「test」に続く１桁の数字のみが異なる。このため、「test1」と「test2」との間の、Jaro-Winkler距離は、０．９０９という非常に大きな値となる。一方で、図７の「test1」及び「invalid」には、一致する文字が全く含まれていないため、Jaro-Winkler距離は、０．０００になる。
【００３６】
例えば、Jaro-Winkler距離の閾値を０．９０００とした場合、図７の例で比較対象の文字列のJaro-Winkler距離が閾値以下になると思われる組み合わせは、通番２５と通番２６、通番２０と通番２７、通番２０と通番２８、通番２０と通番２９、通番１２８と通番１２９等である。一方で、通番１から通番２０、及び通番２１から通番２５等の範囲では、比較対象の文字列のJaro-Winkler距離は閾値より大きくなると考えられる。
【００３７】
ここで、一般に、ＩＳＰ等のネットワーク事業者や管理者は、連続するＩＰアドレスをまとめて動的ＩＰアドレスとして設定することが多い。また、管理や運用における利便性向上のため、まとめて設定する連続するＩＰアドレスのＰＴＲレコードには、共通のプレフィックスと、各ＩＰアドレスで異なる数値とを組み合わせた文字列が設定される場合が多い。例えば、図７の通番１から通番２０のＰＴＲレコードは、共通のプレフィックス「host」に数字を結合させたものである。このような、プレフィックスの部分が共通し、数字の部分のみが異なるＰＴＲレコードの比較対象文字列間のJaro-Winkler距離は、大きくなる傾向がある。
【００３８】
図１に戻り、識別部１４２は、境界によって分割された部分が所定の条件を満たす場合、部分に含まれるＩＰアドレスを動的ＩＰアドレスと識別する。例えば、識別部１４２は、境界によって分割された部分に含まれるＩＰアドレスの数が閾値以上である場合、部分に含まれるＩＰアドレスを動的ＩＰアドレスと識別する。
【００３９】
図８に示すように、境界によって分割されたセグメントが一致する部分の中から、識別部１４２は、部分３００ａ、部分３００ｂ、及び部分３００ｃを動的ＩＰアドレスと識別する。図８は、第１の実施形態に係る種別の識別について説明するための図である。例えば、識別部１４２は、含まれるＩＰアドレスの数が、任意に設定可能なパラメータＮ以上である部分を動的ＩＰアドレスと識別する。ここで、Ｎ＝５とした場合、セグメント１−２−１に対応する部分３００ｂに含まれるＩＰアドレスの数は５なので、識別部１４２は、部分３００ｂを動的ＩＰアドレスと識別する。
【００４０】
なお、識別に用いられるパラメータＮは、静的ＩＰアドレスであるか動的ＩＰアドレスであるかが明らかなＩＰアドレスブロックを訓練データとして用いて、あらかじめ決定されていてもよい。パラメータＮは、管理者により決定されてもよいし、識別装置１０により自動的に決定されてもよい。
【００４１】
ここで、識別装置１０がパラメータＮを決定する場合の例について説明する。識別装置１０は、動的ＩＰアドレスであるか否かが既知のＩＰアドレスブロックを対象に、Ｎの値を１から増加させながら識別装置１０による識別処理を実行する。そして、識別装置１０は、静的ＩＰアドレスを誤って動的ＩＰアドレスと識別した数、及び動的ＩＰアドレスを誤って静的ＩＰアドレスと識別した数の合計値を算出する。このとき、識別装置１０は、算出した当該合計が最も小さくなるようなＮの値を採用する。
【００４２】
［第１の実施形態の処理］
図９を用いて、識別装置１０の処理の流れについて説明する。図９は、第１の実施形態に係る識別装置の処理の流れを示すフローチャートである。図９に示すように、まず、識別装置１０は、ＩＰアドレスブロックの入力を受け付ける（ステップＳ１１）。
【００４３】
そして、識別装置１０は、受け付けたＩＰアドレスブロックに含まれるＩＰアドレスに対応する設定情報１３１を記憶部１３から読み込む（ステップＳ１２）。次に、識別装置１０は、設定情報１３１を基に、管理境界を特定する（ステップＳ１３）。ここで、管理境界は、管理者又は運用者がＩＰアドレス間で同じであるか否かを特定可能な情報に基づいて特定される境界である。例えば、管理境界は、ソートされたＩＰアドレスの列の、ＡＳ番号又はｅ２ＬＤが前後で異なる位置である。
【００４４】
そして、識別装置１０は、設定情報１３１を基に、文字列境界を特定する（ステップＳ１４）。文字列境界は、所定の文字列の類似度に基づいて特定される境界である。例えば、文字列境界は、ソートされたＩＰアドレスの列の、前後のＩＰアドレスのＰＴＲレコードからｅ２ＬＤを除いた部分の、Jaro-Winkler距離が閾値以下となる位置である。
【００４５】
識別装置１０は、管理境界及び文字列境界を基に、ＩＰアドレスの種別を識別する（ステップＳ１５）。例えば、ＩＰアドレスの種別は、静的ＩＰアドレス及び動的ＩＰアドレスである。また、識別装置１０は、ソートされたＩＰアドレスの列の、管理境界及び文字列境界で分割された部分に含まれるＩＰアドレスの数が閾値以上である場合、当該部分を動的ＩＰアドレスと識別する。
【００４６】
その後、識別装置１０は、識別結果を出力する（ステップＳ１６）。例えば、識別装置１０は、識別結果として、動的ＩＰアドレスと識別されたＩＰアドレスのリストを出力する。
【００４７】
［第１の実施形態の効果］
ここまで説明したように、本実施形態の識別装置１０は、ＩＰアドレスブロックに含まれるＩＰアドレスであって、所定の順序でソートされたＩＰアドレスの列を複数の部分に分割する境界を、ＩＰアドレスに関する所定の情報に基づいて特定する。また、識別部１４２は、境界によって分割された部分が所定の条件を満たす場合、部分に含まれるＩＰアドレスを動的ＩＰアドレスと識別する。このように、本実施形態の識別装置１０は、特定のキーワードを用いることなく、動的ＩＰアドレスを識別する。このため、識別装置１０によれば、動的ＩＰアドレスを精度良く識別することができる。
【００４８】
例えば、従来の手法を用いて、図８の部分３００ａ、３００ｂ、３００ｃが動的ＩＰアドレスであることを識別するためには、「host」、「test」というキーワードが事前に指定されている必要がある。このようなキーワードが事前に指定されていない場合、従来の手法では本実施形態と同等以上の精度で動的ＩＰアドレスを識別することは困難である。また、動的ＩＰアドレスのＰＴＲレコードで用いられるあらゆるキーワードを網羅しておくことは現実的とはいえないため、本実施形態の手法によれば、従来の手法と比べて容易かつ高精度に動的ＩＰアドレスを識別することができる。
【００４９】
識別装置１０は、第１のＩＰアドレスに関する第１の情報と、列における順序が第１のＩＰアドレスの次である第２のＩＰアドレスに関する第２の情報とを比較し、第１の情報と第２の情報との類似度が閾値以下である場合、第１のＩＰアドレスと第２のＩＰアドレスとの間の位置を境界と特定する。このように、識別装置１０は、順序が連続しているＩＰアドレスの組み合わせに着目して境界を特定する。このため、識別装置１０は、全てのＩＰアドレスの組み合わせを評価する必要がなく、効率的に境界の特定を行うことができる。
【００５０】
識別装置１０は、管理者又は運用者がＩＰアドレス間で同じであるか否かを特定可能な情報に基づいて境界を特定する。このため、識別装置１０は、同一の管理者又は運用者によって一括で管理されている動的ＩＰアドレスを特定することができる。
【００５１】
識別装置１０は、所定の情報に含まれる所定の文字列の類似度に基づいて境界を特定する。このため、識別装置１０は、ＰＴＲレコードに共通のプレフィックスが用いられている動的ＩＰアドレスを特定することができる。
【００５２】
識別装置１０は、第１のＩＰアドレスのホスト名からｅ２ＬＤを除いた第１の文字列と、列における順序が第１のＩＰアドレスの次である第２のＩＰアドレスのホスト名からｅ２ＬＤを除いた第２の文字列と、の間のJaro-Winkler距離が閾値以下である場合、第１のＩＰアドレスと第２のＩＰアドレスとの間の位置を境界と特定する。このように、識別装置１０は、ＰＴＲレコードに共通のプレフィックスが用いられている可能性が高い部分に着目して動的ＩＰアドレスを特定することができる。
【００５３】
識別装置１０は、境界によって分割された部分に含まれるＩＰアドレスの数が閾値以上である場合、部分に含まれるＩＰアドレスを動的ＩＰアドレスと識別する。セグメントに含まれるＩＰアドレスの数が多いほど動的ＩＰアドレスである可能性が高くなる傾向がある。識別装置１０は、そのような傾向を利用して、精度良く動的ＩＰアドレスを識別することができる。
【００５４】
［その他の実施形態］
上記の実施形態では、識別装置１０の識別対象のＩＰアドレスがＩＰｖ４である場合の例について説明した。一方で、識別装置１０の識別対象のＩＰアドレスはＩＰｖ６であってもよい。ＩＰアドレスがＩＰｖ６であっても、上記の実施形態と同様に、識別装置１０は、区切られた各部の値を数値とみなしたものをキーとしてソートを行うことができる。
【００５５】
また、上記の実施形態では、Jaro-Winkler距離を用いて文字列間の類似度を評価する場合の例について説明した。一方で、識別装置１０は、Jaro-Winkler距離以外の指標を用いて文字列間の類似度を評価してもよい。例えば、識別装置１０は、２つの文字列の前方一致する文字の数又は割合を文字列間の類似度とすることができる。
【００５６】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５７】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５８】
［プログラム］
一実施形態として、識別装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の識別処理を実行する識別プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の識別プログラムを情報処理装置に実行させることにより、情報処理装置を識別装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００５９】
また、識別装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の識別処理に関するサービスを提供する識別サーバ装置として実装することもできる。例えば、識別サーバ装置は、ＩＰアドレスブロックを入力とし、動的ＩＰアドレスのリストを出力とする識別サービスを提供するサーバ装置として実装される。この場合、識別サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の識別処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００６０】
図１０は、識別プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００６１】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００６２】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、識別装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、識別装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００６３】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０は、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した実施形態の処理を実行する。
【００６４】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６５】
１０  識別装置
１１  入力部
１２  出力部
１３  記憶部
１４  制御部
１３１  設定情報
１４１  特定部
１４２  識別部
【図１】
2020012747.tif 000005
【図２】
2020012747.tif 000006
【図３】
2020012747.tif 000007
【図４】
2020012747.tif 000008
【図５】
2020012747.tif 000009
【図６】
2020012747.tif 000010
【図７】
2020012747.tif 000011
【図８】
2020012747.tif 000012
【図９】
2020012747.tif 000013
【図１０】
2020012747.tif 000014
【国際調査報告】
2020012747.tif 000015
2020012747.tif 000016