JP5989919B2 - Urlマッチング装置、urlマッチング方法、および、urlマッチングプログラム - Google Patents

Urlマッチング装置、urlマッチング方法、および、urlマッチングプログラム Download PDF

Info

Publication number
JP5989919B2
JP5989919B2 JP2015552441A JP2015552441A JP5989919B2 JP 5989919 B2 JP5989919 B2 JP 5989919B2 JP 2015552441 A JP2015552441 A JP 2015552441A JP 2015552441 A JP2015552441 A JP 2015552441A JP 5989919 B2 JP5989919 B2 JP 5989919B2
Authority
JP
Japan
Prior art keywords
character string
url
partial character
partial
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015552441A
Other languages
English (en)
Other versions
JPWO2015087835A1 (ja
Inventor
満昭 秋山
満昭 秋山
毅 八木
毅 八木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Application granted granted Critical
Publication of JP5989919B2 publication Critical patent/JP5989919B2/ja
Publication of JPWO2015087835A1 publication Critical patent/JPWO2015087835A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、URL(Uniform Resource Locator)マッチング装置、URLマッチング方法、および、URLマッチングプログラムに関する。
悪質なWebサイトや悪質なWebコンテンツからWWW(World Wide Web)を利用するユーザを保護するために、フィルタリングが実施されている。フィルタリングは、悪質なWebサイトや悪質なWebコンテンツのURL(悪性URL)を示したブラックリストを利用し、このリストに含まれるURLやFQDN(Fully Qualified Domain Name、サーバのホスト名)へのアクセスを防止するものである。このフィルタリングに用いられるブラックリストは、アンチウィルスベンダ等の組織によって、独自の観点で作成されている(非特許文献1参照)。
一方、攻撃者は、自らのURLがフィルタリングの対象になるのを回避するために、URLの文字列を部分的に変化させることがある。例えば、http://www.example.com/index1.htmlをhttp://www.example.com/index2.htmlに変化させることがある。そこで、このようにURLの文字列を部分的に変化させた場合でもフィルタリングの対象とするため、同一FQDN上に存在するWebコンテンツを悪性URLに類似するURLと見なし、フィルタリングの対象とする技術も提案されている。
"Google Safe Browsing"、[online]、[平成25年11月5日検索]、インターネット<https://developers.google.com/safe-browsing/> Zhou Zhou 他、"A High-Performance URL Lookup Engine for URL Filtering Systems",IEEE ICC、2010年
しかし、前記した技術において、悪性URLに類似するURLをフィルタリングの対象とすると誤検知が発生するおそれがある。また、類似するURLをフィルタリングの対象とすると、多数のURLとのマッチングを行う必要があるため、マッチング処理に時間がかかってしまうという問題もある。特に、通常、ブラックリストを用いたフィルタリングは、ネットワークのゲートウェイやWebプロキシにおいて行われ、多数の通信先URLを対象にマッチングを行う必要があるため、マッチングの高速化は重要な問題である。そこで本発明は、前記した問題を解決し、URLが部分的に変化したとしても高速にマッチングを行う手段を提供することを課題とする。
上述した課題を解決するために、本発明は、1以上の参照URL(Uniform Resource Locator)の階層構造の上位層の文字列から順に段階的に連結した部分文字列を連想配列のキーとして格納した部分文字列情報を記憶するURL部分文字列格納部と、マッチ対象URLの階層構造の上位層の文字列から順に段階的に連結した部分文字列を生成する部分文字列生成部と、前記生成されたマッチ対象URLの部分文字列ごとに、当該部分文字列をキーとして前記部分文字列情報を検索する検索部とを備えることを特徴とする。
本発明によれば、URLが部分的に変化したとしても高速にマッチングを行うことができる。
図1は、各実施形態のURLマッチング装置を含むシステムの構成の一例を示す図である。 図2は、図1のURLマッチング装置の処理の概要を示す図である。 図3は、図1のURLマッチング装置により生成される部分文字列の一例を示す図である。 図4は、部分文字列情報の一例を示す図である。 図5は、図1のURLマッチング装置の構成を示す機能ブロック図である。 図6は、図1のURLマッチング装置により生成される部分文字列の一例を示す図である。 図7は、図1のURLマッチング装置が保持する部分文字列情報の一例を示す図である。 図8は、部分文字列情報のキーとなる部分文字列の実装の一例を示す図である。 図9は、図1のURLマッチング装置の処理手順を示すフローチャートである。 図10は、URLのドメイン部の各要素の並べ替えの一例を示す図である。 図11は、部分文字列の共通接頭辞を説明するための図である。 図12は、URLマッチングプログラムを実行するコンピュータを示す図である。
以下、図面を参照しながら、本発明の実施形態を第1の実施形態から第3の実施形態に分けて説明する。なお、これらの実施形態により本発明が限定されるものではない。
(第1の実施形態)
まず、図1を用いて、各実施形態のURLマッチング装置10を含むシステムの構成例を説明する。図1は、各実施形態のURLマッチング装置を含むシステムの構成の一例を示す図である。なお、以下の例では、参照URLは、悪質なWebサイトや悪質なWebコンテンツのURL(悪性URL)のリスト(例えば、URLブラックリスト)である場合を例に説明するが、これに限定されない。
システムは、URLマッチング装置10、ユーザ端末20、Webプロキシ30を含んで構成される。ユーザ端末20は、Webプロキシ30経由でネットワークへアクセスする。Webプロキシ30は、ユーザ端末20がネットワークへアクセスするときの中継装置であり、ユーザ端末20のアクセス先URLを記録する。Webプロキシ30は、この記録したアクセス先URLをマッチ対象URLとしてURLマッチング装置10へ送信する。
URLマッチング装置10は、アクセス先URLがURLブラックリストA,Bに示されるURL群(参照URL)とマッチするか否かを判断する。すなわち、URLマッチング装置10は、ユーザ端末20のアクセス先URLをマッチ対象URLとして取得し、URLブラックリスト(悪性URLのリスト。例えば、URLブラックリストA,B)を収集する。そして、URLマッチング装置10は、この収集したブラックリストに示されるURLを参照URLとして、マッチ対象URLとのマッチングを行う。そして、URLマッチング装置10は、マッチング結果(例えば、参照URLに対しマッチ対象URLがどの程度一致しているかを示した情報)をWebプロキシ30等へ通知する。
このようにすることで、URLマッチング装置10は、ユーザ端末20の管理者等に、ユーザ端末20のアクセス先URLが悪性URLに対しどの程度マッチしているかを通知することができる。
次に、図2を用いて、URLマッチング装置10の処理の概要を説明する。図2は、図1のURLマッチング装置の処理の概要を示す図である。
URLマッチング装置10は、参照URL(つまり、ブラックリストに示される悪性URL)を部分文字列、例えば、「.」や「/」で区切られる文字列で分割する。そして、URLマッチング装置10は、分割した文字列のうち、階層構造の上位層の文字列から順に段階的に連結した複数の部分文字列を生成する。例えば、URLマッチング装置10は、参照URLの部分文字列A,B,C,Dを生成する((1)分割)。例えば、参照URLが「http://www.example.co.jp/path1/path2/index.php?id=123」である場合、図3の符号31〜符号36に示すような部分文字列を生成する。ここでのURLの部分文字列の生成は、例えば、特開2012-118713号公報に記載される技術を用いる。
その後、URLマッチング装置10は、生成した部分文字列を連想配列により格納する((2)格納)。連想配列とは、文字列をキーとする配列であり、実装例としては、トライ木やパトリシア木等がある。このように参照URLの部分文字列を連想配列により格納することで、マッチ対象URLの部分文字列を高速に検索できる。この連想配列の詳細は後記するが、連想配列におけるキー(部分文字列)に対応するバリュー(値)は、例えば、キーに示される部分文字列が参照URLのどの部分に該当するかを示した情報(属性情報)である。具体例を挙げると、当該部分文字列が、参照URLのドメインの一部分(部分ドメイン)か全部(完全ドメイン)か、また参照URLのパス部の一部分(部分パス)か全部(完全パス)かを示す情報である(図4参照)。
次に、URLマッチング装置10は、マッチ対象URLを分割し、部分文字列E,F,G,Hを生成する((3)分割)。
そして、URLマッチング装置10は、生成されたマッチ対象URLの部分文字列を、連想配列に格納された部分文字列から検索し((4)検索)、その検索結果を出力する((5)出力)。例えば、URLマッチング装置10は、マッチ対象URLの部分文字列を検索し、当該部分文字列の属性情報や、一致(マッチ)した部分文字列等を出力する。
このようにすることで、URLマッチング装置10は、マッチ対象URLが参照URLに部分的に一致する場合でも、そのことをユーザに通知することができる。さらに、URLマッチング装置10は、マッチ対象URLが、参照URLとどの程度一致するのかを通知することができる。また、URLマッチング装置10において、参照URLの部分文字列は連想配列により格納されるので、キーとなる部分文字列が多数ある場合でもマッチ対象URLの部分文字列を高速に検索することができる。
次に、URLマッチング装置10の構成を説明する。図5は、図1のURLマッチング装置の構成を示す機能ブロック図である。
図5に示すように、URLマッチング装置10は、入出力部11、マッチング処理部121、URL部分文字列生成部122、URL部分文字列格納処理部123、URL部分文字列検索部124、URL部分文字列格納部13を備える。
入出力部11は、URLマッチング装置10のデータ入出力を司る。入出力部11は、例えば、前記した参照URLや、マッチ対象URLの入力を受け付けたり、参照URLとマッチ対象URLとのマッチングの結果(部分文字列情報からの検索結果)を出力したりする。この入出力部11は、インターネット等でデータ送受信を行うための通信インタフェース機能を備えていてもよい。
マッチング処理部121、URL部分文字列生成部122、URL部分文字列格納処理部123、URL部分文字列検索部124は、URLマッチング装置10の備えるCPU(Central Processing Unit)によるプログラム実行処理や専用のハードウェアにより実現される。
マッチング処理部121は、参照URLとマッチ対象URLとのマッチングを行い、その結果を入出力部11経由で出力する。具体的には、マッチング処理部121は、入出力部11経由で参照URLを取得すると、この参照URLをURL部分文字列生成部122に受け渡し、URL部分文字列生成部122により生成された部分文字列をURL部分文字列格納処理部123経由でURL部分文字列格納部13に格納させる。また、マッチング処理部121は、入出力部11経由でマッチ対象URLを取得すると、同様に、マッチ対象URLをURL部分文字列生成部122に受け渡し、URL部分文字列生成部122により生成された部分文字列を受け取る。そして、マッチング処理部121は、このマッチ対象URLの部分文字列をURL部分文字列検索部124に受け渡す。その後、マッチング処理部121は、URL部分文字列検索部124から当該部分文字列の検索の結果を受け取ると、その検索の結果を入出力部11経由で出力する。
URL部分文字列生成部122は、受け取ったURL(例えば、参照URLやマッチ対象URL)の部分文字列を生成し、生成した部分文字列をマッチング処理部121へ返す。ここでのURLの部分文字列の生成は、例えば、以下のようにして行われる。
まず、前提となるURLの構成から説明する。URLは、RFC(Request For Comments)1738に規定されるとおり、http://<ドメイン部>/<パス部>という構成をとる。このドメイン部にはWebサイトのFQDNが記述される。また、パス部には当該Webサイト上のWebコンテンツの場所を示す文字列がディレクトリ形式で記述される。ドメイン部は「.(ドット)」を区切り文字として、要素を右から左に接続した文字列であり、例えば、www.example.co.jp等と表される。ドメイン部の各要素は右から左に上位概念から下位概念を表し、最も右の要素(jp)をトップレベルドメイン、右から2番目をセカンドレベルドメイン、右から3番目をサードレベルドメインと呼ぶ。
パス部は「/(スラッシュ)」を区切り文字として、要素を左から右に接続した文字列であり、例えば、/path1/path2/index.html等と表される。パス部の各要素は左から右に上位概念から下位概念を表す。パス部の末尾には「?」で接続される文字列(URLパラメータ)も付与できる。例えば、/path1/path2/index.html?id=123のようにid=123というURLパラメータも付与できる。URL部分文字列生成部122は、このように構成されるURLの各要素について上位概念(階層構造の上位層)の文字列から順に段階的に連結した複数の部分文字列を生成する。
このURL部分文字列生成部122が生成する部分文字列を、図3、図6に例示する。例えば、部分文字列の生成の対象となるURLが「http://www.example.co.jp/path1/path2/index.php?id=123」である場合を考える。この場合、当該URLから図3の符号31〜符号36に示す6つの部分文字列が生成される。つまり、「http://www.example.co.jp/path1/path2/index.php?id=123」について、ドメイン部が「www.example.co.jp」の場合、FQDNの「www」を抜かした部分文字列、FQDNを示す部分文字列、パス部の最上位の階層までの部分文字列、パス部の上位から2番目の階層までの部分文字列、パス部の上位から3番目の階層までの部分文字列、パス部の末尾まで含む部分文字列が生成される。
なお、URL部分文字列生成部122は、部分文字列の生成の際、パブリックサフィックス(co.jpやjp等、それ自体が不特定多数のドメインを配下に持つドメイン)については部分文字列の生成対象外としてもよい。
さらに、URL部分文字列生成部122が生成する部分文字列は、図6に例示するように「*(ワイルドカード)」を含んでいてもよい。このようにすることで、URL部分文字列検索部124において、ドメイン部のホスト名が一部変更されたURLについても部分文字列情報の部分文字列とのマッチングの対象とすることができる。例えば、参照URLがhttp://www.example.co.jp/path1/index.php?id=abcである場合、http://mail.example.co.jp/path1/index.php?id=abcについてもマッチさせることができる。
URL部分文字列格納処理部123は、URL部分文字列生成部122により生成された参照URLの部分文字列を連想配列により格納した部分文字列情報を作成する。前記したとおり、連想配列はキーと、当該キーに対応する値(バリュー)とのペアからなるが、ここでのキーはURLの部分文字列であり、バリューは当該部分文字列の属性情報である。属性情報は、例えば、キーに示される部分文字列が参照URLのどの部分に該当するかを示した情報である。
図4、図7は、部分文字列情報の一例を示す図である。図4に示す部分文字列情報は、http://www.example.co.jp/path1/path2/index.php?id=123という参照URLに関する部分文字列情報を示した情報である。図4に示す部分文字列情報において、キーとなる部分文字列は「example.co.jp」、「www.example.co.jp」、「www.example.co.jp/path1/」、「www.example.co.jp/path1/path2/」、「www.example.co.jp/path1/path2/index.php?」、「http://www.example.co.jp/path1/path2/index.php?id=123」であり、それぞれに対するバリューは、「部分ドメイン」、「完全ドメイン」、「完全ドメイン・部分パス」、「完全ドメイン・部分パス」、「完全ドメイン・部分パス」、「完全ドメイン・完全パス」という属性情報である。「部分ドメイン」とは参照URLの部分的なドメイン名であることを意味し、「完全ドメイン」とは参照URLの完全なドメイン名(つまりFQDN)であることを意味する。同様にパスについても、「部分パス」とは参照URLの部分的なパス名、「完全パス」とは参照URLの完全なパス名を意味する。
この部分文字列情報のキーとして、参照URLの階層ごとに段階的に区切った部分文字列を設定することで、URL部分文字列検索部124が、マッチ対象URLに対し、URLの上位階層の文字列は同じであるが、下位階層の文字列(例えば、パス部等)が異なるURL等、文字列の一部が異なるURLのマッチング結果を得ることができる。
また、URL部分文字列格納処理部123は、部分文字列情報において部分文字列を連想配列のキーとして格納することで、当該部分文字列情報に格納される要素数が増えた場合でも、検索速度の低下を抑制できる。
なお、部分文字列情報に付与される属性情報は、前記した情報以外に、当該URLの部分文字列が、参照URLに対し、どの程度一致するかを示した数値(一致する割合や一致する文字数)等を示した情報であってもよい。
また、図7に例示するように部分文字列情報のキーの欄の部分文字列について「*(ワイルドカード)」を用いてもよい。
なお、前記したとおり、部分文字列情報のキーとなる部分文字列は、例えば、トライ木やパトリシア木のような木構造により実装される。図8は、部分文字列情報のキーとなる部分文字列の実装の一例を示す図である。例えば、「http://www.example.co.jp/path1/path2/」と「http://www.example.co.jp/path11/path2/」と「http://www.example.co.jp/path1/path12/」と、「http://www.example.co.jp/path11/path12/」のように一部が異なる部分文字列について、これらがキーとして格納される場合、図8に例示するように、URLの部分文字列の共通部分を共通ノードとした木構造により実装される。このようにすることで、部分文字列情報のキーとなる部分文字列を効率よく格納することができる。
URL部分文字列検索部124は、URL部分文字列生成部122から、マッチ対象URLの部分文字列を受け取ると、この部分文字列それぞれについて、当該部分文字列をキーとして部分文字列情報を検索する。例えば、URL部分文字列検索部124は、マッチ対象URLの部分文字列をキーとし、部分文字列情報から当該部分文字列の属性情報を検索する。検索結果は、入出力部11経由で出力する。ここでの検索結果は、例えば、検索の結果、当該部分文字列の属性情報がヒットしたことや、属性情報がヒットした部分文字列、ヒットした属性情報、ヒットする属性情報がなかった、つまり該当する部分文字列がなかった等の情報である。
例えば、URL部分文字列検索部124が、図4に示す部分文字列情報を検索した結果、「www.example.co.jp/path1/」がマッチした場合、当該部分文字列に対する属性値は「完全ドメイン・部分パス」であるという検索結果を出力する。URL部分文字列検索部124が、このような属性情報を出力することで、URLマッチング装置10のユーザは、マッチ対象URLが、参照URLに対しどの程度一致(マッチ)したかを知ることができる。
URL部分文字列格納部13は、URL部分文字列格納処理部123により作成された部分文字列情報を記憶する。このURL部分文字列格納部13は、URLマッチング装置10の備える記憶手段(例えば、HDD(Hard Disk Drive)、RAM(Random Access Memory)等)により実現される。
次に、図9を用いて、URLマッチング装置10の処理手順を説明する。図9は、図1のURLマッチング装置の処理手順を示すフローチャートである。
まず、URLマッチング装置10のマッチング処理部121は、入出力部11経由で参照URLを取得すると(S1)、この参照URLをURL部分文字列生成部122に受け渡し、URL部分文字列生成部122は参照URLの部分文字列を生成する(S2)。
次に、マッチング処理部121は、S2で生成された参照URLの部分文字列をURL部分文字列格納処理部123に受け渡し、URL部分文字列格納処理部123は、当該部分文字列を連想配列により格納し、部分文字列情報を作成する(S3)。つまり、URL部分文字列格納処理部123は、部分文字列情報のキーとして、S2で生成された部分文字列を配し、それぞれの部分文字列に対する値(バリュー)として、当該部分文字列の属性情報を対応付ける。すなわち、URL部分文字列格納処理部123は、S2で生成された部分文字列ごとに、当該部分文字列が、参照URLのどの部分か(例えば、参照URLのドメイン部の全部か一部か、また、パス部の全部か一部か)を属性情報として付与した部分文字列情報を作成する。
その後、マッチング処理部121が入出力部11経由でマッチ対象URLを取得すると(S4)、このマッチ対象URLをURL部分文字列生成部122に受け渡し、URL部分文字列生成部122は、マッチ対象URLの部分文字列を生成する(S5)。そして、マッチング処理部121は、S5で生成されたマッチ対象URLの部分文字列をURL部分文字列検索部124に受け渡し、URL部分文字列検索部124は、このマッチ対象URLの部分文字列をキーとして、部分文字列情報から属性情報を検索する(S6:部分文字列検索)。そして、URL部分文字列検索部124は、検索結果を出力する(S7)。
このようにすることで、URLマッチング装置10は、マッチ対象URLが参照URLに部分的に一致する場合でも、そのことをユーザに通知することができる。また、URLマッチング装置10は、部分文字列情報に参照URLの部分文字列を連想配列のキーとして格納しておくので、マッチ対象URLの部分文字列の検索を高速に行うことができる。
(第2の実施形態)
なお、URL部分文字列検索部124による検索の結果、複数のマッチ結果が得られる場合もある。例えば、参照URLがhttp://www.example.co.jp/path1/path2/index.php?id=123であり、マッチ対象URLがhttp://www.example.co.jp/path1/path2/test.htmlの場合がある。この場合、一致する部分文字列は、example.co.jp(部分ドメイン)、www.example.co.jp(完全ドメイン)、www.example.co.jp/path1/(完全ドメイン・部分パス)、www.example.co.jp/path1/path2/(完全ドメイン・部分パス)であり、複数のマッチ結果が得られることになる。この場合、URL部分文字列検索部124は、参照URLにマッチした度合いの高いものから優先的に検索結果として出力してもよい。
つまり、部分文字列情報の属性情報に示される、部分文字列のマッチの度合いは、マッチの度合いが高い順に以下のようになる。完全ドメイン・完全パス→完全ドメイン・部分パス→部分ドメイン・部分パス→部分ドメイン。したがって、URL部分文字列検索部124は、マッチ結果が複数存在する場合は、マッチの度合いが高いものから優先的に出力する。例えば、前記した例でいうと、URL部分文字列検索部124は、マッチの度合いが高い属性情報である「完全ドメイン・部分パス」を出力する。
このようにすることで、URLマッチング装置10のユーザは、マッチ対象URLが参照URLにどの程度マッチしたかを確認しやすくなる。
さらに、URL部分文字列検索部124は、前記した参照URLとのマッチの度合いを、文字列情報から検索された属性情報のみならず、マッチした部分文字列の文字数も含めて判断するようにしてもよい。例えば、前記した例でいうと、属性情報が「完全ドメイン・部分パス」の部分文字列が2つある。すなわち、www.example.co.jp/path1/(完全ドメイン・部分パス)と、www.example.co.jp/path1/path2/(完全ドメイン・部分パス)がある。このような場合、URL部分文字列検索部124は、これらの部分文字列のうち部分文字列の文字列の長いものから優先的に出力する。例えば、URL部分文字列検索部124は、これらの部分文字列のうち、文字列が最も長いものを出力する。
前記した例でいうと、www.example.co.jp/path1/の文字列よりwww.example.co.jp/path1/path2/の文字列が長い。よって、URL部分文字列検索部124は、www.example.co.jp/path1/path2/の方を選択し、出力する。このようにすることで、URLマッチング装置10のユーザは、マッチ対象URLのどの階層の文字列まで参照URLと一致しているかを確認しやすくなる。
(第3の実施形態)
なお、部分文字列情報のキー部分(つまり、部分文字列の部分)におけるキーとなるURLの部分文字列については、ドメイン部の各要素を左右逆に配置するようにしてもよい。
図10は、URLのドメイン部の各要素の並べ替えの一例を示す図である。ここでは、www.example.co.jpを例に説明する。URL部分文字列生成部122は、図10に示すように、www.example.co.jpの各要素を左右逆に並べ替え、jp.co.example.wwwにする。その後、URL部分文字列格納処理部123は、並べ替えられたjp.co.example.wwwを部分文字列情報のキーとして格納する。
つまり、URL部分文字列格納処理部123は、部分文字列情報のキー欄に、参照URLのドメイン部のトップレベルドメイン(例えば、jp)やセカンドレベルドメイン(例えば、co.jp)を先頭にして配置する。このようにすることで、部分文字列情報のキーとなる部分文字列をトライ木やパトリシア木等の木構造で配置した場合において、各部分文字列の接頭辞となる文字列に共通する部分が少ない場合でも、各部分文字列を効率よく格納することができる。
例えば、2つの参照URLのドメイン部がそれぞれwww.example.co.jpとmail.explain.co.jpである場合を考える。この場合、それぞれのドメイン部の文字列が先頭部分から異なるので通常であれば、トライ木やパトリシア木等における共通接頭辞は存在しない。しかし、www.example.co.jpとmail.explain.co.jpについて要素を左右逆に配置するとjp.co.example.wwwとjp.co.explain.mailとなる。これにより、図11に示すように、jp.co.exまでを部分文字列の共通接頭辞とすることができるので、部分文字列情報のキー欄の部分文字列を効率よく格納できる。
なお、反転した各要素の文字列連結時に用いられる分離記号は、例えば、「.(ドット)」や「_(アンダースコア)」等である。また、参照URLのドメイン部について左右逆に配置された部分文字列をキーとする部分文字列情報に対し、URL部分文字列検索部124が検索を行う際には、マッチ対象URLのドメイン部について左右逆に配置した部分文字列を用いて検索を行う。
(プログラム)
また、URLマッチング装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、URLマッチング装置10と同様の機能を実現するURLマッチングプログラムを実行するコンピュータの一例を説明する。
図12は、URLマッチングプログラムを実行するコンピュータを示す図である。図12に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
ここで、図12に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ1090やメモリ1010に記憶される。
また、URLマッチングプログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ1090に記憶される。具体的には、上記実施形態で説明したURLマッチングが実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。
また、URLマッチングプログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、URLマッチングプログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、URLマッチングプログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 URLマッチング装置
11 入出力部
13 URL部分文字列格納部
20 ユーザ端末
30 Webプロキシ
121 マッチング処理部
122 URL部分文字列生成部
123 URL部分文字列格納処理部
124 URL部分文字列検索部

Claims (7)

  1. 1以上の参照URL(Uniform Resource Locator)の階層構造の上位層の文字列から順に段階的に連結した部分文字列を、連想配列のキーとして格納した部分文字列情報を記憶するURL部分文字列格納部と、
    マッチ対象URLの階層構造の上位層の文字列から順に段階的に連結した部分文字列を生成する部分文字列生成部と、
    前記生成されたマッチ対象URLの部分文字列ごとに、当該部分文字列をキーとして前記部分文字列情報を検索する検索部とを備えることを特徴とするURLマッチング装置。
  2. 前記部分文字列情報は、前記部分文字列と、当該部分文字列が前記参照URLとどの程度一致するかを示した属性情報とを対応付けて示した情報であり、
    前記検索部は、前記マッチ対象URLの部分文字列をキーとして前記部分文字列情報を検索し、当該部分文字列の属性情報を出力することを特徴とする請求項1に記載のURLマッチング装置。
  3. 前記属性情報は、前記部分文字列が前記参照URLのドメイン部およびパス部それぞれの全部と一致するか一部と一致するかを示す情報であることを特徴とする請求項2に記載のURLマッチング装置。
  4. 前記検索部は、前記検索された各部分文字列の属性情報を参照して、前記参照URLと一致する度合いが高い部分文字列から優先的に出力することを特徴とする請求項2または請求項3に記載のURLマッチング装置。
  5. 前記部分文字列情報における部分文字列は、前記参照URLのトップレベルドメインの文字列から順に段階的に連結した文字列であり、前記参照URL間でそれぞれのURLのドメイン部で先頭部分が共通する文字列をトライ木またはパトリシア木の共通接頭辞として抽出した文字列であることを特徴とする請求項1ないし請求項4のいずれか1項に記載のURLマッチング装置。
  6. マッチ対象URLの階層構造の上位層の文字列から順に段階的に連結した部分文字列を生成するステップと、
    前記生成されたマッチ対象URLの部分文字列ごとに、当該部分文字列をキーとして1以上の参照URLの部分文字列情報を検索するステップとをコンピュータが実行し、
    前記部分文字列情報は、前記1以上の参照URLの階層構造の上位層の文字列から順に段階的に連結した部分文字列を連想配列のキーとして格納した情報である
    ことを特徴とするURLマッチング方法。
  7. マッチ対象URLの階層構造の上位層の文字列から順に段階的に連結した部分文字列を生成するステップと、
    前記生成されたマッチ対象URLの部分文字列ごとに、当該部分文字列をキーとして1以上の参照URLの部分文字列情報を検索するステップとをコンピュータに実行させ、
    前記部分文字列情報は、前記1以上の参照URLの階層構造の上位層の文字列から順に段階的に連結した部分文字列を連想配列のキーとして格納した情報である
    ことを特徴とするURLマッチングプログラム。
JP2015552441A 2013-12-10 2014-12-08 Urlマッチング装置、urlマッチング方法、および、urlマッチングプログラム Active JP5989919B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013255096 2013-12-10
JP2013255096 2013-12-10
PCT/JP2014/082427 WO2015087835A1 (ja) 2013-12-10 2014-12-08 Urlマッチング装置、urlマッチング方法、および、urlマッチングプログラム

Publications (2)

Publication Number Publication Date
JP5989919B2 true JP5989919B2 (ja) 2016-09-07
JPWO2015087835A1 JPWO2015087835A1 (ja) 2017-03-16

Family

ID=53371140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015552441A Active JP5989919B2 (ja) 2013-12-10 2014-12-08 Urlマッチング装置、urlマッチング方法、および、urlマッチングプログラム

Country Status (5)

Country Link
US (1) US10277613B2 (ja)
EP (1) EP3067814B1 (ja)
JP (1) JP5989919B2 (ja)
CN (1) CN106233296B (ja)
WO (1) WO2015087835A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209488B (zh) * 2015-04-28 2021-01-29 北京瀚思安信科技有限公司 用于检测网站攻击的方法和设备
WO2018131200A1 (ja) * 2017-01-11 2018-07-19 日本電信電話株式会社 解析装置、解析方法及び解析プログラム
JP6442545B2 (ja) * 2017-03-31 2018-12-19 西日本電信電話株式会社 Dnsサーバ、dnsサーバにおけるブラックリスト生成方法、dnsサーバに用いるブラックリスト生成プログラム
US11086957B2 (en) 2017-12-26 2021-08-10 Beijing Didi Infinity Technology And Development Co., Ltd. System and method for uniform resource identifier (URI) consolidation
US10666681B2 (en) * 2017-12-31 2020-05-26 Rapid7, Inc. Detecting malicious actors
CN110245330B (zh) * 2018-03-09 2023-07-07 腾讯科技(深圳)有限公司 字符序列匹配方法、实现匹配的预处理方法和装置
CN109889616B (zh) * 2018-05-21 2020-06-05 新华三信息安全技术有限公司 一种识别域名的方法及装置
CN108881311A (zh) * 2018-08-22 2018-11-23 杭州安恒信息技术股份有限公司 一种多网域环境下访问设备的方法
CN110336777B (zh) * 2019-04-30 2020-10-16 北京邮电大学 安卓应用的通信接口采集方法及装置
CN111061972B (zh) * 2019-12-25 2023-05-16 武汉绿色网络信息服务有限责任公司 一种用于url路径匹配的ac查找优化方法和装置
TWI736457B (zh) * 2020-10-27 2021-08-11 財團法人資訊工業策進會 動態網路特徵處理裝置以及動態網路特徵處理方法
CN113312549B (zh) * 2021-05-25 2024-01-26 北京天空卫士网络安全技术有限公司 一种域名处理方法和装置
CN113890756B (zh) * 2021-09-26 2024-01-02 网易(杭州)网络有限公司 用户账号的混乱度检测方法、装置、介质和计算设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012094071A (ja) * 2010-10-28 2012-05-17 Nippon Telegr & Teleph Corp <Ntt> フィルタリング方法、フィルタリングシステム及びフィルタリングプログラム
JP2012118713A (ja) * 2010-11-30 2012-06-21 Nippon Telegr & Teleph Corp <Ntt> リスト生成方法、リスト生成装置及びリスト生成プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7013304B1 (en) 1999-10-20 2006-03-14 Xerox Corporation Method for locating digital information files
US7921035B2 (en) * 2005-04-15 2011-04-05 The Go Daddy Group, Inc. Parked webpage domain name suggestions
CN1952947A (zh) 2005-10-17 2007-04-25 左其其 一种网站反克隆的系统和方法
US8407245B2 (en) * 2010-11-24 2013-03-26 Microsoft Corporation Efficient string pattern matching for large pattern sets
CN102045360B (zh) 2010-12-27 2014-04-02 华为数字技术(成都)有限公司 恶意网址库的处理方法及装置
CN102339320B (zh) 2011-11-04 2013-08-28 华为数字技术(成都)有限公司 恶意网页的识别方法以及识别装置
US20140258260A1 (en) * 2013-03-11 2014-09-11 Sabrina Rayborn Methods for on line dating

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012094071A (ja) * 2010-10-28 2012-05-17 Nippon Telegr & Teleph Corp <Ntt> フィルタリング方法、フィルタリングシステム及びフィルタリングプログラム
JP2012118713A (ja) * 2010-11-30 2012-06-21 Nippon Telegr & Teleph Corp <Ntt> リスト生成方法、リスト生成装置及びリスト生成プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6014034470; 秋山 満昭、外2名: '検索エンジンを利用した悪性サイトURLの近隣探索によるブラックリストの拡張' コンピュータセキュリティシンポジウム2010 論文集 [第二分冊] 第2010巻 第9号, 20101012, p.519-524, 一般社団法人情報処理学会 *
JPN6015008157; 秋山 満昭 Mitsuaki AKIYAMA: '悪性URL群の木構造に着目したURLフィルタリングの粒度決定 Determining granularity of URL filteri' 電子情報通信学会技術研究報告 Vol.110 No.266 IEICE Technical Report 第110巻, 20101029, pp.53〜58, 社団法人電子情報通信学会 The Institute of Electro *

Also Published As

Publication number Publication date
EP3067814A4 (en) 2017-06-14
JPWO2015087835A1 (ja) 2017-03-16
US10277613B2 (en) 2019-04-30
CN106233296B (zh) 2019-09-06
US20180145993A1 (en) 2018-05-24
WO2015087835A1 (ja) 2015-06-18
CN106233296A (zh) 2016-12-14
EP3067814B1 (en) 2020-02-26
EP3067814A1 (en) 2016-09-14

Similar Documents

Publication Publication Date Title
JP5989919B2 (ja) Urlマッチング装置、urlマッチング方法、および、urlマッチングプログラム
CN111935192B (zh) 网络攻击事件溯源处理方法、装置、设备和存储介质
US10419465B2 (en) Data retrieval in security anomaly detection platform with shared model state between real-time and batch paths
US8903800B2 (en) System and method for indexing food providers and use of the index in search engines
EP3794487B1 (en) Obfuscation and deletion of personal data in a loosely-coupled distributed system
JP5415390B2 (ja) フィルタリング方法、フィルタリングシステム及びフィルタリングプログラム
JP5465651B2 (ja) リスト生成方法、リスト生成装置及びリスト生成プログラム
US20170169027A1 (en) Determining a Display Order for Values in a Multi-Value Field of an Application Card
US8392421B1 (en) System and method for internet endpoint profiling
CN106844553A (zh) 基于样本数据的数据探测和扩充方法及装置
CN110392032B (zh) 检测异常url的方法、装置及存储介质
US10897483B2 (en) Intrusion detection system for automated determination of IP addresses
Na et al. Service identification of internet-connected devices based on common platform enumeration
JP2012003463A (ja) シグネチャの生成を支援する支援装置、方法及びプログラム
JP7001180B2 (ja) フィッシングサイト検知装置、フィッシングサイト検知方法、および、フィッシングサイト検知プログラム
JP2006221294A (ja) Url検索方法及び検索装置
JP2009230662A (ja) ウェブサイト判定装置及びウェブサイト判定プログラム
JP2018093440A (ja) 経路解析処理装置および経路解析処理プログラム
JP6478730B2 (ja) 悪性url候補取得装置、悪性url候補取得方法、及びプログラム
Zhang et al. Hacks Hit the Phish: Phish Attack Detection Based on Hacks Search
JP6064881B2 (ja) 設定支援プログラム、設定支援装置および設定支援方法
JP7322500B2 (ja) 検索方法、検索プログラム、および情報処理装置
JP2018206189A (ja) 情報収集装置、および、情報収集方法
Hansen The study of keyword search in open source search engines and digital forensics tools with respect to the needs of cyber crime investigations
JP6509719B2 (ja) 構造データ生成装置、検索装置、構造データ生成方法及び構造データ生成プログラム

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160810

R150 Certificate of patent or registration of utility model

Ref document number: 5989919

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150