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

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

Info

Publication number
WO2015087835A1
WO2015087835A1 PCT/JP2014/082427 JP2014082427W WO2015087835A1 WO 2015087835 A1 WO2015087835 A1 WO 2015087835A1 JP 2014082427 W JP2014082427 W JP 2014082427W WO 2015087835 A1 WO2015087835 A1 WO 2015087835A1
Authority
WO
WIPO (PCT)
Prior art keywords
character string
url
partial character
partial
information
Prior art date
Application number
PCT/JP2014/082427
Other languages
English (en)
French (fr)
Inventor
満昭 秋山
毅 八木
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to JP2015552441A priority Critical patent/JP5989919B2/ja
Priority to EP14869490.4A priority patent/EP3067814B1/en
Priority to CN201480066821.3A priority patent/CN106233296B/zh
Priority to US15/103,080 priority patent/US10277613B2/en
Publication of WO2015087835A1 publication Critical patent/WO2015087835A1/ja

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

Definitions

  • the present invention relates to a URL (Uniform Resource Locator) matching device, a URL matching method, and a URL matching program.
  • URL Uniform Resource Locator
  • Filtering has been implemented to protect users who use the WWW (World Wide Web) from malicious websites and malicious web content. Filtering uses a blacklist that shows URLs (malicious URLs) of malicious websites and malicious web contents, and accesses URLs and FQDNs (Fully Qualified Domain Names, server host names) included in this list. It is to prevent.
  • the black list used for this filtering is created from an original viewpoint by an organization such as an anti-virus vendor (see Non-Patent Document 1).
  • the attacker may change the character string of the URL partially in order to prevent the URL from being subject to filtering.
  • http://www.example.com/index1.html may be changed to http://www.example.com/index2.html. Therefore, since the URL character string is partially changed as described above, it is a filtering target. Therefore, a Web content existing on the same FQDN is regarded as a URL similar to a malicious URL, and a technique for filtering is also available. Proposed.
  • an object of the present invention is to solve the above-described problems and provide means for performing matching at high speed even when the URL partially changes.
  • the present invention stores partial character strings that are sequentially linked from the upper-layer character string of the hierarchical structure of one or more reference URLs (Uniform Resource Locator) as associative array keys.
  • a URL partial character string storage unit that stores partial character string information; a partial character string generation unit that generates partial character strings that are sequentially linked from the upper layer character string of the hierarchical structure of the URL to be matched;
  • Each partial character string of the URL to be matched includes a search unit that searches the partial character string information using the partial character string as a key.
  • FIG. 1 is a diagram illustrating an example of a configuration of a system including a URL matching apparatus according to each embodiment.
  • FIG. 2 is a diagram showing an outline of processing of the URL matching apparatus of FIG.
  • FIG. 3 is a diagram illustrating an example of a partial character string generated by the URL matching apparatus of FIG.
  • FIG. 4 is a diagram illustrating an example of partial character string information.
  • FIG. 5 is a functional block diagram showing the configuration of the URL matching apparatus of FIG.
  • FIG. 6 is a diagram illustrating an example of a partial character string generated by the URL matching apparatus of FIG.
  • FIG. 7 is a diagram showing an example of partial character string information held by the URL matching apparatus of FIG.
  • FIG. 8 is a diagram illustrating an example of mounting a partial character string that is a key of partial character string information.
  • FIG. 9 is a flowchart showing a processing procedure of the URL matching apparatus of FIG.
  • FIG. 10 is a diagram illustrating an example of rearrangement of each element in the domain part of the URL.
  • FIG. 11 is a diagram for explaining a common prefix of partial character strings.
  • FIG. 12 is a diagram illustrating a computer that executes a URL matching program.
  • the system includes a URL matching device 10, a user terminal 20, and a Web proxy 30.
  • the user terminal 20 accesses the network via the Web proxy 30.
  • the Web proxy 30 is a relay device when the user terminal 20 accesses the network, and records the access destination URL of the user terminal 20.
  • the Web proxy 30 transmits the recorded access destination URL to the URL matching apparatus 10 as a match target URL.
  • the URL matching device 10 determines whether or not the access destination URL matches the URL group (reference URL) shown in the URL black lists A and B. That is, the URL matching apparatus 10 acquires the access destination URL of the user terminal 20 as a match target URL, and collects a URL blacklist (a list of malicious URLs, for example, URL blacklists A and B). Then, the URL matching apparatus 10 performs matching with the URL to be matched using the URL shown in the collected black list as a reference URL. Then, the URL matching apparatus 10 notifies the matching result (for example, information indicating how much the matching target URL matches the reference URL) to the Web proxy 30 or the like.
  • a URL blacklist a list of malicious URLs, for example, URL blacklists A and B
  • the URL matching apparatus 10 can notify the administrator of the user terminal 20 to what extent the access destination URL of the user terminal 20 matches the malicious URL.
  • FIG. 2 is a diagram showing an outline of processing of the URL matching apparatus of FIG.
  • the URL matching device 10 stores the generated partial character string in an associative array ((2) storage).
  • An associative array is an array using character strings as keys, and examples of implementation include a trie tree and a Patricia tree. In this way, by storing the partial character string of the reference URL in an associative array, the partial character string of the match target URL can be searched at high speed. The details of the associative array will be described later, but the value (value) corresponding to the key (partial character string) in the associative array indicates, for example, which part of the reference URL the partial character string indicated by the key corresponds to. Information (attribute information).
  • the partial character string is a part (partial domain) or all (complete domain) of the domain of the reference URL, or a part (partial path) or all (complete path) of the path part of the reference URL.
  • Information see FIG. 4).
  • the URL matching apparatus 10 searches the partial character string of the generated URL to be matched from the partial character string stored in the associative array ((4) search), and outputs the search result ((5) output. ).
  • the URL matching device 10 searches for a partial character string of the URL to be matched, and outputs attribute information of the partial character string, a matched (matched) partial character string, and the like.
  • the URL matching apparatus 10 can notify the user of this even when the match target URL partially matches the reference URL. Furthermore, the URL matching apparatus 10 can notify how much the match target URL matches the reference URL. Further, in the URL matching apparatus 10, the partial character string of the reference URL is stored in an associative array, so that even when there are a large number of partial character strings serving as keys, the partial character string of the URL to be matched can be searched at high speed.
  • FIG. 5 is a functional block diagram showing the configuration of the URL matching apparatus of FIG.
  • the URL matching apparatus 10 includes an input / output unit 11, a matching processing unit 121, a URL partial character string generation unit 122, a URL partial character string storage processing unit 123, a URL partial character string search unit 124, and a URL part.
  • a character string storage unit 13 is provided.
  • the input / output unit 11 controls data input / output of the URL matching device 10.
  • the input / output unit 11 receives input of the reference URL and the match target URL, and outputs a result of matching between the reference URL and the match target URL (a search result from the partial character string information).
  • the input / output unit 11 may have a communication interface function for transmitting and receiving data over the Internet or the like.
  • the matching processing unit 121, the URL partial character string generation unit 122, the URL partial character string storage processing unit 123, and the URL partial character string search unit 124 are a program execution process or a dedicated processing by a CPU (Central Processing Unit) included in the URL matching device 10. Realized by hardware.
  • a CPU Central Processing Unit
  • the matching processing unit 121 performs matching between the reference URL and the URL to be matched, and outputs the result via the input / output unit 11. Specifically, when the matching processing unit 121 acquires the reference URL via the input / output unit 11, the matching processing unit 121 passes this reference URL to the URL partial character string generation unit 122, and the partial character generated by the URL partial character string generation unit 122. The column is stored in the URL partial character string storage unit 13 via the URL partial character string storage processing unit 123. In addition, when the matching processing unit 121 acquires the matching target URL via the input / output unit 11, similarly, the matching processing unit 121 passes the matching target URL to the URL partial character string generation unit 122 and generates the part generated by the URL partial character string generation unit 122. Receives a string.
  • the URL partial character string generation unit 122 generates a partial character string of the received URL (for example, a reference URL or a match target URL), and returns the generated partial character string to the matching processing unit 121.
  • the generation of the URL partial character string here is performed as follows, for example.
  • the URL has a configuration of http: // ⁇ domain part> / ⁇ path part> as defined in RFC (Request For Comments) 1738.
  • the FQDN of the website is described.
  • the path portion a character string indicating the location of the Web content on the Web site is described in a directory format.
  • the domain part is a character string in which elements are connected from right to left with “. (Dot)” as a delimiter, and is expressed as, for example, www.example.co.jp.
  • Each element of the domain part represents the concept from the superordinate concept from right to left, the rightmost element (jp) is called the top level domain, the second from the right is called the second level domain, and the third from the right is called the third level domain.
  • the path part is a character string in which elements are connected from left to right with “/ (slash)” as a delimiter, and is expressed as, for example, /path1/path2/index.html.
  • Each element of the path portion represents a concept from a superordinate concept to a subordinate concept from left to right.
  • a character string (URL parameter) connected with “?” Can also be added to the end of the path part.
  • the URL partial character string generation unit 122 generates a plurality of partial character strings in which the elements of the URL configured in this way are connected in order from the character string of the higher concept (the upper layer of the hierarchical structure).
  • the partial character string generated by the URL partial character string generation unit 122 is illustrated in FIG. 3 and FIG.
  • six partial character strings indicated by reference numerals 31 to 36 in FIG. 3 are generated from the URL.
  • the domain part is “www.example.co.jp”
  • the “www” of FQDN is changed.
  • the extracted partial character string, the partial character string indicating FQDN, the partial character string up to the highest hierarchy of the path part, the partial character string from the upper part of the path part to the second hierarchy, the third hierarchy from the upper part of the pass part Partial character strings up to and including the end of the path part are generated.
  • the URL partial character string generation unit 122 generates a partial character string for a public suffix (co.jp, jp, etc., a domain that itself has an unspecified number of domains) when generating a partial character string. It may be excluded.
  • the URL partial character string storage processing unit 123 creates partial character string information in which the partial character string of the reference URL generated by the URL partial character string generation unit 122 is stored in an associative array.
  • the associative array is composed of a pair of a key and a value (value) corresponding to the key.
  • the key is a partial character string of the URL
  • the value is attribute information of the partial character string.
  • the attribute information is, for example, information indicating which part of the reference URL the partial character string indicated by the key corresponds to.
  • the partial character strings as keys are “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?
  • the URL partial character string search unit 124 makes the upper-layer characters of the URL for the matching target URL.
  • the columns are the same, it is possible to obtain a matching result of URLs having different character strings, such as URLs having different character strings (for example, path portions) in lower layers.
  • the attribute information given to the partial character string information includes, in addition to the information described above, a numerical value indicating how much the partial character string of the URL matches the reference URL (matching ratio and number of matching characters). ) Etc. may also be used.
  • the partial character string that is the key of the partial character string information is implemented by a tree structure such as a trie tree or a Patricia tree.
  • FIG. 8 is a diagram illustrating an example of mounting a partial character string that is a key of partial character string information. For example, ⁇ http://www.example.co.jp/path1/path2/ '', ⁇ http://www.example.co.jp/path11/path2/ '' and ⁇ http://www.example.co If partial character strings such as “.jp / path1 / path12 /” and “http://www.example.co.jp/path11/path12/” are partially different, they are stored as keys. As illustrated in FIG. 8, it is implemented by a tree structure in which common portions of URL partial character strings are common nodes. By doing in this way, the partial character string used as the key of partial character string information can be stored efficiently.
  • the URL partial character string search unit 124 searches the partial character string information for each partial character string using the partial character string as a key. .
  • the URL partial character string search unit 124 searches the attribute information of the partial character string from the partial character string information using the partial character string of the URL to be matched as a key.
  • the search result is output via the input / output unit 11.
  • the search result here is, for example, that the attribute information of the partial character string was hit as a result of the search, the partial character string that the attribute information was hit, the attribute information that was hit, or the attribute information that was not hit, This is information such as the absence of a partial character string.
  • the URL partial character string search unit 124 outputs such attribute information, so that the user of the URL matching apparatus 10 can know how much the match target URL matches (matches) the reference URL. .
  • the URL partial character string storage unit 13 stores the partial character string information created by the URL partial character string storage processing unit 123.
  • the URL partial character string storage unit 13 is realized by storage means (for example, HDD (Hard Disk Drive), RAM (Random Access Memory), etc.) provided in the URL matching device 10.
  • FIG. 9 is a flowchart showing a processing procedure of the URL matching apparatus of FIG.
  • the matching processing unit 121 of the URL matching apparatus 10 obtains a reference URL via the input / output unit 11 (S1), it passes this reference URL to the URL partial character string generation unit 122, and the URL partial character string generation unit 122 A partial character string of the reference URL is generated (S2).
  • the matching processing unit 121 passes the partial character string of the reference URL generated in S2 to the URL partial character string storage processing unit 123, and the URL partial character string storage processing unit 123 converts the partial character string into an associative array.
  • the URL partial character string storage processing unit 123 determines which part of the reference URL the partial character string is (for example, all or part of the domain part of the reference URL) Also, partial character string information is created with attribute information indicating whether the path part is all or part of the path part.
  • the matching processing unit 121 acquires the matching target URL via the input / output unit 11 (S4), the matching target URL is transferred to the URL partial character string generation unit 122, and the URL partial character string generation unit 122 then matches the matching target URL. Is generated (S5). Then, the matching processing unit 121 passes the partial character string of the matching target URL generated in S5 to the URL partial character string searching unit 124, and the URL partial character string searching unit 124 uses the partial character string of the matching target URL as a key. Then, the attribute information is searched from the partial character string information (S6: partial character string search). Then, the URL partial character string search unit 124 outputs the search result (S7).
  • the URL matching apparatus 10 can notify the user of this even when the match target URL partially matches the reference URL. Moreover, since the URL matching apparatus 10 stores the partial character string of the reference URL as a key of the associative array in the partial character string information, the partial character string of the URL to be matched can be searched at high speed.
  • a plurality of match results may be obtained as a result of the search by the URL partial character string search unit 124.
  • the match target URL is http://www.example.co.jp/path1/path2 May be /test.html.
  • the matching partial strings are example.co.jp (partial domain), www.example.co.jp (full domain), www.example.co.jp/path1/ (full domain / partial path), www.example.co.jp/path1/path2/ (complete domain / partial path), and multiple match results will be obtained.
  • the URL partial character string search unit 124 may output the search results preferentially from those having a high degree of matching with the reference URL.
  • the degree of matching of the partial character strings indicated in the attribute information of the partial character string information is as follows in descending order of the degree of matching.
  • each element of the domain part may be arranged in the left-right direction with respect to the partial character string of the URL as a key in the key part of the partial character string information (that is, the partial character string part).
  • FIG. 10 is a diagram showing an example of rearrangement of each element in the domain part of the URL.
  • the URL partial character string generation unit 122 rearranges the elements of www.example.co.jp in the reverse direction to make jp.co.example.www. Thereafter, the URL partial character string storage processing unit 123 stores the rearranged jp.co.example.www as a key of partial character string information.
  • the URL partial character string storage processing unit 123 starts with the top level domain (for example, jp) or the second level domain (for example, co.jp) of the domain part of the reference URL in the key field of the partial character string information. Deploy. In this way, when the partial character string that is the key of the partial character string information is arranged in a tree structure such as a trie tree or a Patricia tree, the part common to the character string that is the prefix of each partial character string is Even if there are few, each partial character string can be stored efficiently.
  • jp the top level domain
  • co.jp co.jp
  • the separator used when concatenating the character strings of each inverted element is, for example, “. (Dot)” or “_ (underscore)”.
  • the URL partial character string search unit 124 searches the partial character string information using the partial character string arranged in the left and right direction as the key for the domain part of the reference URL, the domain part of the URL to be matched A search is performed using partial character strings arranged in reverse left and right.
  • program It is also possible to create a program in which the processing executed by the URL matching apparatus 10 is described in a language that can be executed by a computer. In this case, the same effect as the above-described embodiment can be obtained by the computer executing the program. Further, such a program may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read by a computer and executed to execute the same processing as in the above embodiment.
  • a computer that executes a URL matching program that realizes the same function as the URL matching apparatus 10 will be described.
  • FIG. 12 is a diagram illustrating a computer that executes a URL matching program.
  • the computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These units are connected by a bus 1080.
  • the hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094.
  • Each table described in the above embodiment is stored in the hard disk drive 1090 or the memory 1010, for example.
  • the URL matching program is stored in the hard disk drive 1090 as a program module in which a command executed by the computer 1000 is described, for example.
  • a program module describing each process executed by URL matching described in the above embodiment is stored in the hard disk drive 1090.
  • data used for information processing by the URL matching program is stored in the hard disk drive 1090, for example, as program data.
  • the CPU 1020 reads out the program module 1093 and the program data 1094 stored in the hard disk drive 1090 to the RAM 1012 as necessary, and executes the above-described procedures.
  • the program module 1093 and the program data 1094 related to the URL matching program are not limited to being stored in the hard disk drive 1090.
  • the program module 1093 and the program data 1094 are stored in a removable storage medium and read by the CPU 1020 via the disk drive 1100 or the like. May be issued.
  • the program module 1093 and the program data 1094 related to the URL matching program are stored in another computer connected via a network such as a LAN (Local Area Network) or a WAN (Wide Area Network), and via the network interface 1070. May be read by the CPU 1020.

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)

Abstract

 URLマッチング装置は、1以上の参照URLの階層構造の上位層の文字列から順に段階的に連結した部分文字列を連想配列のキーとして格納した部分文字列情報を作成する。そして、URLマッチング装置は、マッチ対象URLについても階層構造の上位層の文字列から順に段階的に連結した部分文字列を生成し、このマッチ対象URLの部分文字列ごとに、当該部分文字列をキーとして部分文字列情報を検索する。これにより、URLが部分的に変化したとしても高速にマッチングを行うことができる。

Description

URLマッチング装置、URLマッチング方法、および、URLマッチングプログラム
 本発明は、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マッチングプログラム。
PCT/JP2014/082427 2013-12-10 2014-12-08 Urlマッチング装置、urlマッチング方法、および、urlマッチングプログラム WO2015087835A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015552441A JP5989919B2 (ja) 2013-12-10 2014-12-08 Urlマッチング装置、urlマッチング方法、および、urlマッチングプログラム
EP14869490.4A EP3067814B1 (en) 2013-12-10 2014-12-08 Url matching device, url matching method, and url matching program
CN201480066821.3A CN106233296B (zh) 2013-12-10 2014-12-08 Url匹配装置以及url匹配方法
US15/103,080 US10277613B2 (en) 2013-12-10 2014-12-08 URL matching apparatus, URL matching method, and URL matching program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013255096 2013-12-10
JP2013-255096 2013-12-10

Publications (1)

Publication Number Publication Date
WO2015087835A1 true WO2015087835A1 (ja) 2015-06-18

Family

ID=53371140

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/082427 WO2015087835A1 (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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018131200A1 (ja) * 2017-01-11 2018-07-19 日本電信電話株式会社 解析装置、解析方法及び解析プログラム
JP2018174469A (ja) * 2017-03-31 2018-11-08 西日本電信電話株式会社 Dnsサーバ、dnsサーバにおけるブラックリスト生成方法、dnsサーバに用いるブラックリスト生成プログラム
WO2019133294A1 (en) * 2017-12-26 2019-07-04 Didi Research America, Llc System and method for uniform resource identifier (uri) consolidation

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209488B (zh) * 2015-04-28 2021-01-29 北京瀚思安信科技有限公司 用于检测网站攻击的方法和设备
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 (4)

* Cited by examiner, † Cited by third party
Title
MITSUAKI AKIYAMA ET AL.: "Kensaku Engine o Riyo shita Akusei Site URL no Kinrin Tansaku ni yoru Black List no Kakucho", COMPUTER SECURITY SYMPOSIUM 2010 RONBUNSHU, vol. 2010, no. 9, 12 October 2010 (2010-10-12), pages 519 - 524, XP008184012 *
MITSUAKI AKIYAMA: "Determining granularity of URL filtering based on tree structure of malicious website URL", IEICE TECHNICAL REPORT, vol. 110, no. 266, 29 October 2010 (2010-10-29), pages 53 - 58, XP008183087 *
See also references of EP3067814A4
ZHOU ZHOU ET AL.: "A High-Performance URL Lookup Engine for URL Filtering Systems", IEEE ICC, 2010

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018131200A1 (ja) * 2017-01-11 2018-07-19 日本電信電話株式会社 解析装置、解析方法及び解析プログラム
JPWO2018131200A1 (ja) * 2017-01-11 2019-04-18 日本電信電話株式会社 解析装置、解析方法及び解析プログラム
US11163882B2 (en) 2017-01-11 2021-11-02 Nippon Telegraph And Telephone Corporation Analysis apparatus, analysis method, and analysis program
JP2018174469A (ja) * 2017-03-31 2018-11-08 西日本電信電話株式会社 Dnsサーバ、dnsサーバにおけるブラックリスト生成方法、dnsサーバに用いるブラックリスト生成プログラム
WO2019133294A1 (en) * 2017-12-26 2019-07-04 Didi Research America, Llc System and method for uniform resource identifier (uri) consolidation
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5989919B2 (ja) Urlマッチング装置、urlマッチング方法、および、urlマッチングプログラム
CN111935192B (zh) 网络攻击事件溯源处理方法、装置、设备和存储介质
Zittrain et al. Internet filtering in China
Xiang et al. Cantina+ a feature-rich machine learning framework for detecting phishing web sites
US8019764B1 (en) System and method for internet endpoint profiling
JP5415390B2 (ja) フィルタリング方法、フィルタリングシステム及びフィルタリングプログラム
EP3794487B1 (en) Obfuscation and deletion of personal data in a loosely-coupled distributed system
US20110302148A1 (en) System and Method for Indexing Food Providers and Use of the Index in Search Engines
JP5465651B2 (ja) リスト生成方法、リスト生成装置及びリスト生成プログラム
JP6557334B2 (ja) アクセス分類装置、アクセス分類方法、及びアクセス分類プログラム
Kim et al. Automated dataset generation system for collaborative research of cyber threat analysis
Zhao et al. Malicious domain names detection algorithm based on lexical analysis and feature quantification
US8392421B1 (en) System and method for internet endpoint profiling
US11477161B1 (en) Systems and methods for detecting DNS communications through time-to-live analyses
CN110392032B (zh) 检测异常url的方法、装置及存储介质
US10897483B2 (en) Intrusion detection system for automated determination of IP addresses
Suma et al. Forensic analysis of google chrome cache files
JP6823205B2 (ja) 収集装置、収集方法及び収集プログラム
CN106844553A (zh) 基于样本数据的数据探测和扩充方法及装置
Na et al. Service identification of internet-connected devices based on common platform enumeration
JP6246885B1 (ja) 経路解析処理装置および経路解析処理プログラム
JP7001180B2 (ja) フィッシングサイト検知装置、フィッシングサイト検知方法、および、フィッシングサイト検知プログラム
JP2006221294A (ja) Url検索方法及び検索装置
JP2009230662A (ja) ウェブサイト判定装置及びウェブサイト判定プログラム
WO2016042762A1 (ja) 情報生成装置、情報生成方法および記録媒体

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14869490

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015552441

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2014869490

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2014869490

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15103080

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE