WO2022219683A1 - マッチング装置、マッチング方法、および、マッチングプログラム - Google Patents
マッチング装置、マッチング方法、および、マッチングプログラム Download PDFInfo
- Publication number
- WO2022219683A1 WO2022219683A1 PCT/JP2021/015195 JP2021015195W WO2022219683A1 WO 2022219683 A1 WO2022219683 A1 WO 2022219683A1 JP 2021015195 W JP2021015195 W JP 2021015195W WO 2022219683 A1 WO2022219683 A1 WO 2022219683A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- address
- record
- matching
- indicating
- addresses
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 22
- 230000001174 ascending effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/695—Types of network addresses using masks or ranges of addresses
Definitions
- the present invention relates to an IP address matching device, matching method, and matching program.
- the server is a server that accepts a large number of accesses
- a list of a large number of access source IP addresses (single) and a large number of IP addresses (IP address range) such as the IP address of the proxy server and the list of malicious IP addresses ) must be matched against a list of
- the time complexity required for IP address matching is O(MN).
- Non-Patent Documents 1, 2, and 3 There is also a high-speed matching method for IP address lookup (see Non-Patent Documents 1, 2, and 3), but this method does not take into consideration the case where the IP address of the access source matches a range of multiple IP addresses. do not have.
- an object of the present invention is to solve the above-described problem and reduce the amount of calculation when matching a large number of IP address lists.
- the present invention provides a record indicating the starting IP address and the ending IP address of the range of IP addresses for each range of IP addresses in a list indicating the range of IP addresses for reference.
- a connecting unit for connecting a record indicating the start IP address and the end IP address of each of the reference IP address ranges with a record indicating the matching target IP address;
- the IP address of the record as a primary key for the group of records obtained, information indicating whether the record is the record of the IP address to be matched, the record indicating the start IP address, or the record of the end IP address
- a sorting unit that sorts as a secondary key, and in the sorted record group, between the record indicating the start IP address and the record indicating the end IP address of any of the IP address ranges, the IP address to be matched and a determination result output unit for outputting the determination result.
- FIG. 1 is a diagram for explaining the outline of a matching device.
- FIG. 2 is a diagram explaining an outline of the operation of the matching device.
- FIG. 3 is a diagram explaining an outline of the operation of the matching device.
- FIG. 4 is a diagram illustrating a configuration example of a matching device.
- FIG. 5 is a flow chart showing an example of a processing procedure of the matching device.
- FIG. 6 is a diagram showing an example of determination by the matching device.
- FIG. 7 is a diagram showing an application example of IP address matching by a matching device.
- FIG. 8 is a diagram showing an example of a computer that executes a matching program.
- the matching device performs matching between the matching target IP address list and the reference IP address list.
- the reference IP address list is, for example, a list of potentially malicious IP addresses, such as a proxy server IP address list, a malicious IP address list, and the like.
- the IP address group in the list of matching target IP addresses is an example of a single IP address.
- a case where the IP address group in the reference IP address list is each a single IP address or a range of IP addresses will be described as an example.
- each list is assumed to be a large-scale list with a total amount of 1 M or more, for example.
- the matching device matches a list of IP addresses to be matched (for example, access source IP addresses obtained from an access log) and a reference IP address list.
- the matching device determines whether or not each access is via a proxy server by matching the access source IP address list with the reference IP address list. For example, when the access source IP address corresponds to the IP address (IP address range) of the proxy server in the reference IP address list, the matching device determines that the access is via the proxy server. Thereby, the matching device can determine whether or not there is a possibility that the access from the IP address of the access source is malicious access.
- the matching device assigns an index to each IP address range in the reference IP address list ((1) in FIG. 2, assigns an index to the reference IP address list).
- the matching device divides each IP address range in the reference IP address list into a range start IP address record and a range end IP address record ((2) Reference IP address range into a starting and ending IP address).
- the matching device adds information (for example, BEGIN) indicating that it is a record of the start IP address to the record of the start IP address, and indicates that the record of the end IP address is the record of the end IP address.
- information indicating for example, END is given.
- the matching device combines the list that has undergone the processing of (2) and the list of matching target IP addresses ((3) combines with the matching target IP address list). At this time, the matching device adds information (for example, TARGET) indicating that the record is the IP address to be matched to the record of the IP address to be matched.
- information for example, TARGET
- the matching device sorts each record in the list on which the process of (3) in FIG. 2 has been performed in ascending order according to the following rule ((4) Sorts in ascending order according to the following rule).
- IP address (sorted by IP address as an integer value)
- Subkey Sort in order of BEGIN ⁇ TARGET ⁇ END
- each record is sorted, for example, as indicated by reference numeral 301 in FIG.
- the matching device determines that, for each record sorted in (4), there is a matching target IP address record between the start IP address record and the end IP address record with the same index in order from the top. It is determined whether or not ((5) processing in order from the top).
- the matching device determines that between the start IP address (BEGIN) and the end IP address (END) of index 0 (1.1.1.1-1.1.1.10) for the portion enclosed by the dashed line in the list indicated by reference numeral 302 in FIG. determines that there is a matching target IP address (TARGET) 1.1.1.2. Therefore, the matching device determines that the matching target IP address 1.1.1.2 is included (matches) in the IP address range of index 0 (1.1.1.1-1.1.1.10) of the reference IP address.
- the spatial complexity required to match the IP addresses in each list. can be O(M+N).
- the time complexity required for matching IP addresses in each list can be O((M+N)log(M+N)).
- matching device 10 includes input/output unit 11 , storage unit 12 , and control unit 13 .
- the input/output unit 11 is an interface that controls input/output of various data.
- the input/output unit 11 receives inputs such as a list of IP addresses to be matched and a list of reference IP addresses.
- the IP address of each list may be an IPv4 IP address or an IPv6 IP address.
- the storage unit 12 stores various data that the control unit 13 refers to when executing various processes. For example, the storage unit 12 stores a list of matching target IP addresses input via the input/output unit 11 and a list of reference IP addresses. The storage unit 12 also temporarily stores data created in the course of matching by the control unit 13 .
- the control unit 13 controls the matching device 10 as a whole.
- the control unit 13 includes, for example, a generation unit 131 , a combination unit 132 , a sorting unit 133 , a determination unit 134 and a determination result output unit 135 .
- the generation unit 131 generates a record indicating the start IP address and the end IP address of the range of IP addresses for each range of IP addresses in the reference IP address list.
- the generation unit 131 first assigns an index to each range of IP addresses in the reference IP address list (see (1) in FIG. 2). Then, the generation unit 131 generates a record of the start IP address and a record of the end IP address for each range of IP addresses.
- the generating unit 131 adds information (for example, BEGIN) indicating that the record is the starting IP address record to the starting IP address record of the IP address range.
- the generation unit 131 adds information (for example, END) indicating that the record is the record of the end IP address to the record of the end IP address of the range of IP addresses (see (2) in FIG. 2). ).
- the combining unit 132 combines the record generated by the generating unit 131 with the IP address record in the matching target IP address list. At this time, the combining unit 132 adds information (for example, TARGET) to the record of the IP address to be matched, indicating that the record is the record of the IP address to be matched (see (3) in FIG. 2). ).
- information for example, TARGET
- the sorting unit 133 uses the IP address of each record as a primary key for the group of records combined by the combining unit 132, and each record is a matching target IP address record, a start IP address record, or an end IP address record.
- Information for example, TARGET, BEGIN, END
- the sorting unit 133 sorts each record in ascending order of BEGIN ⁇ TARGET ⁇ END.
- the sorting unit 133 It can be sorted so that records with TARGET are placed between them.
- sorting algorithm used by the sorting unit 133 is, for example, Timsort.
- the determination unit 134 determines whether the matching target is found between the record of the start IP address and the record of the end IP address of any range of IP addresses in the list of reference IP addresses. If there is an IP address record (see (5) in FIG. 3), it is determined that the IP address to be matched falls within the range of the IP address.
- the IP address to be matched is also between the record indicating the start IP address and the record indicating the end IP address of any IP address range in the reference IP address list. If there is no address record, the determination unit 134 determines that each IP address in the matching target IP address list does not correspond to any IP address range in the reference IP address list.
- the determination result output unit 135 outputs the result of determination by the determination unit 134. For example, when the determination unit 134 determines that the matching IP address falls within the IP address range of the malicious IP list, the determination result output unit 135 determines that the access from the matching IP address is malicious access. output the judgment result that there is a possibility that
- the determination result output unit 135 may output attribute information of the range of IP addresses that match the matching target IP address as the determination result. For example, if the determination unit 134 determines that the IP address to be matched is included in the IP address range of the Web Proxy and the IP address range of the Residential Proxy, the determination result output unit 135 outputs the IP address to be matched may output the determination result that access is from Web Proxy and Residential Proxy.
- the generation unit 131 of the matching device 10 assigns an index to each IP address range record in the reference IP address list (S1).
- the generation unit 131 divides each IP address range record in the reference IP address list into a start IP address record and an end IP address record (S2).
- the combining unit 132 combines the reference IP address list divided in S2 with the record of the matching target IP address list (S3).
- the sorting unit 133 sorts the records of the list combined in S3 in ascending order (S4).
- the primary key at this time is the IP address
- the secondary key is information indicating whether each record is a matching target IP address record, a start IP address record, or an end IP address record (for example, TARGET, BEGIN, END).
- the sorting unit 133 sorts the values obtained by converting the IP address, which is the primary key, into integer values in ascending order for each record of the list joined in S3, and the secondary keys, TARGET, BEGIN, and END, are BEGIN ⁇ TARGET ⁇ . Sort in ascending order with END.
- the determination unit 134 finds the matching target IP address between the start IP address record and the end IP address with the same index in order from the top of the unprocessed records among the records after sorting. It is determined whether or not there is an address (S5).
- the determination unit 134 determines that there is a matching IP address between the start IP address record and the end IP address with the same index (Yes in S5), the matching IP address is included in (matches) the IP address range of the index (S6). Then, when the determination unit 134 determines that all sorted records have been processed (Yes in S7), the process proceeds to S8. On the other hand, when the determination unit 134 determines that there is an unprocessed record (No in S7), the process returns to S5.
- the determination unit 134 determines that all sorted records have been processed (Yes in S7), the determination unit 134 outputs the determination result to the determination result output unit 135. Then, the determination result output unit 135 outputs the result of determination by the determination unit 134 via the input/output unit 11 (S8). For example, the determination result output unit 135 outputs attribute information (for example, Web Proxy, Residential Proxy, etc.) of the IP address range to which the matching target IP address corresponds (matches) and the matching target IP address.
- attribute information for example, Web Proxy, Residential Proxy, etc.
- the matching device 10 By the matching device 10 performing the above processing, even if each list of IP addresses is large, the amount of calculation required for matching can be reduced. As a result, the matching device 10 can perform matching between large-scale IP address lists at high speed and with high efficiency.
- IP IP
- the matching device 10 matches a list of 1 million IP addresses and a list of 1 million reference IP addresses
- IP The number of comparisons between addresses can be reduced to 1/10000 or less.
- the time required to match a list of IP addresses can be greatly reduced.
- the determination unit 134 looks at the unprocessed records in order from the top, and when finding a record with BEGIN added, flags the index assigned to the record. Further, when finding a record to which TARGET is assigned, the determination unit 134 determines that the IP address of the record to which the TARGET is assigned is included in the IP address range corresponding to the flagged index. Further, when the determining unit 134 finds a record to which END is assigned, it unsets the flag of the index assigned to the record.
- the determination unit 134 executes the above processing from top to bottom until the last record. Then, the determining unit 134 sets the IP address range corresponding to the flagged index as the IP address range with which the matching target IP address matches. By doing so, the determination unit 134 can detect without omission even when the IP address to be matched is included in a range of a plurality of IP addresses, for example.
- the determination unit 134 determines that the matching target IP address "1.1.1.2" is index 0 (1.1.1.1-1.1.1.10) and index 1 (1.1.1.1-1.1.1.5). can be detected to be contained in
- the determination unit 134 determines that the matching target IP address "1.1.1.3" is index 0 (1.1.1.1-1.1.1.10) and index 2 (1.1.1.2-1.1.1.15). can be detected to be contained in
- IP address list matching by the matching device 10 is applied to the matching between the credit card payment IP (IP address) log at a certain shopping site and a proxy list prepared in advance, as shown in FIG. 7(1).
- IP address IP address
- FIG. 7(1) IP address
- the IP address matching by the matching device 10 is applied to matching between an access log to a server of a website and a malicious IP (IP address) list prepared in advance, as shown in (2) of FIG. may
- IP address IP address
- the access corresponding to the IP log is determined to be the access by the hijacked terminal. be able to.
- each constituent element of each part shown in the figure is functionally conceptual, and does not necessarily need to be physically configured as shown in the figure.
- the specific form of distribution and integration of each device is not limited to the illustrated one, and all or part of them can be functionally or physically distributed and integrated in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
- all or any part of each processing function performed by each device can be implemented by a CPU and a program executed by the CPU, or implemented as hardware based on wired logic.
- the matching device 10 described above can be implemented by installing a program in a desired computer as package software or online software.
- the information processing device can function as the matching device 10 by causing the information processing device to execute the above program.
- the information processing apparatus referred to here includes a desktop or notebook personal computer.
- information processing devices include mobile communication terminals such as smartphones, mobile phones and PHS (Personal Handyphone Systems), and terminals such as PDAs (Personal Digital Assistants).
- the matching device 10 can also be implemented as a server device that uses a terminal device used by a user as a client and provides the client with services related to the above processing.
- the server device may be implemented as a web server, or may be implemented as a cloud that provides services related to the above processing by outsourcing.
- FIG. 8 is a diagram showing an example of a computer that executes a matching program.
- the computer 1000 has a memory 1010 and a CPU 1020, for example.
- Computer 1000 also has hard disk drive interface 1030 , disk drive interface 1040 , serial port interface 1050 , video adapter 1060 and network interface 1070 . These units are connected by a bus 1080 .
- the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM (Random Access Memory) 1012 .
- the ROM 1011 stores a boot program such as BIOS (Basic Input Output System).
- BIOS Basic Input Output System
- Hard disk drive interface 1030 is connected to hard disk drive 1090 .
- a disk drive interface 1040 is connected to the disk drive 1100 .
- a removable storage medium such as a magnetic disk or optical disk is inserted into the disk drive 1100 .
- Serial port interface 1050 is connected to mouse 1110 and keyboard 1120, for example.
- Video adapter 1060 is connected to display 1130, for example.
- the hard disk drive 1090 stores, for example, an OS 1091, application programs 1092, program modules 1093, and program data 1094. That is, a program that defines each process executed by the matching device 10 is implemented as a program module 1093 in which computer-executable code is described. Program modules 1093 are stored, for example, on hard disk drive 1090 .
- the hard disk drive 1090 stores a program module 1093 for executing processing similar to the functional configuration in the matching device 10 .
- the hard disk drive 1090 may be replaced by an SSD (Solid State Drive).
- the data used in the processes of the above-described embodiments are stored as program data 1094 in the memory 1010 or the hard disk drive 1090, for example. Then, the CPU 1020 reads out the program modules 1093 and program data 1094 stored in the memory 1010 and the hard disk drive 1090 to the RAM 1012 as necessary and executes them.
- the program modules 1093 and program data 1094 are not limited to being stored in the hard disk drive 1090, but may be stored in a removable storage medium, for example, and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program modules 1093 and program data 1094 may be stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.). Program modules 1093 and program data 1094 may then be read by CPU 1020 through network interface 1070 from other computers.
- LAN Local Area Network
- WAN Wide Area Network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
マッチング装置(10)は、参照用のIPアドレスの範囲ごとに、IPアドレスの範囲の開始IPアドレスのレコードおよび終了IPアドレスのレコードを生成し、マッチング対象のIPアドレスを示すレコードと結合する。次に、マッチング装置(10)は、結合されたレコード群のIPアドレスを主キーとし、マッチング対象のIPアドレスのレコードか、開始IPアドレスを示すレコードか、終了IPアドレスのレコードかを示す情報を副キーとしてソートする。そして、マッチング装置(10)は、ソート後、いずれかのIPアドレスの範囲における開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間に、マッチング対象のIPアドレスのレコードがある場合、当該マッチング対象のIPアドレスは、当該IPアドレスの範囲にマッチすると判定する。
Description
本発明は、IPアドレスのマッチング装置、マッチング方法、および、マッチングプログラムに関する。
サーバ等への疑わしいアクセスを検知するため、サーバへのアクセスログに示されるアクセスのうち、Proxyサーバや悪性IPアドレスからのアクセスはどれか、また、Proxyサーバからのアクセスがある場合、どのような種別のProxyサーバからのアクセスかを特定することが行われる。
ここでサーバが多数のアクセスを受け付けるサーバである場合、大量のアクセス元のIPアドレス(単体)のリストと、ProxyサーバのIPアドレスや悪性IPアドレスのリスト等の大量のIPアドレス(IPアドレスのレンジを含む)のリストとのマッチングを行う必要がある。
N.Yazdani, et al.、Fast and Scalable schemes for the IP address Lookup Problem、High Performance Switching and Routing, 2000. ATM 2000.
Changhoon Yim, et al.、Efficient Binary Search for IP Address Lookup、IEEE Communications Letters ( Volume: 9, Issue: 7, July 2005)
Ju Hyoung Mun, et al.、New Approach for Efficient IPAddress Lookup Using a Bloom Filter in Trie Based Algorithms、 IEEE Transactions on Computers ( Volume: 65, Issue: 5, May 1 2016)
ここで、アクセス元のIPアドレスの数や、ProxyサーバのIPアドレスおよび悪性IPアドレスのリスト(参照用のIPアドレスのリスト)のIPアドレスのレンジの数が膨大である場合、マッチングに要する時間が膨大になる。
例えば、アクセス元のIPアドレスの数がMであり、参照用のIPアドレスのリストにおけるIPアドレスのレンジの数がNである場合、IPアドレスのマッチングに要する時間計算量はO(MN)となる。
また、参照用のIPアドレスのリストにおけるIPアドレスのレンジを展開して得られたIPアドレス群と、アクセス元のIPアドレスそれぞれとをハッシュ等でマッチングすることも考えられる。このような方法によれば、マッチングに要する時間計算量はO(M)となるが、参照用のIPアドレスのリストの示されるIPアドレスのレンジの大きさによっては、メモリ使用量(空間計算量)が膨大になる可能性がある。
なお、IPアドレスlookupにおける高速マッチング方法(非特許文献1,2,3参照)もあるが、この方法は、アクセス元のIPアドレスが、複数のIPアドレスのレンジにマッチする場合については考慮されていない。
そこで、本発明は、前記した問題を解決し、大量のIPアドレスのリストのマッチングを行う際の計算量を低減することを課題とする。
前記した課題を解決するため、本発明は、参照用のIPアドレスの範囲を示すリストにおける前記IPアドレスの範囲ごとに、前記IPアドレスの範囲の開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードを生成する生成部と、前記参照用のIPアドレスの範囲それぞれの開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードと、マッチング対象のIPアドレスを示すレコードとを結合する結合部と、前記結合されたレコード群を、前記レコードのIPアドレスを主キーとし、前記レコードが、前記マッチング対象のIPアドレスのレコードか、前記開始IPアドレスを示すレコードか、前記終了IPアドレスのレコードかを示す情報を副キーとしてソートするソート部と、前記ソートされたレコード群において、いずれかの前記IPアドレスの範囲の開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間に、前記マッチング対象のIPアドレスのレコードがある場合、前記マッチング対象のIPアドレスは、当該IPアドレスの範囲にマッチすると判定する判定部と、前記判定の結果を出力する判定結果出力部とを備えることを特徴とする。
本発明によれば、大量のIPアドレスのリストのマッチングを行う際の計算量を低減することができる。
以下、図面を参照しながら、本発明を実施するための形態(実施形態)について説明する。本発明は、以下に説明する実施形態に限定されない。
なお、以下の説明において、マッチング装置は、マッチング対象のIPアドレスのリストと、参照用のIPアドレスのリストとのマッチングを行う。参照用のIPアドレスのリストは、例えば、悪性である可能性のあるIPアドレスのリストであり、ProxyサーバのIPアドレスのリスト、悪性IPアドレスのリスト等である。
また、マッチング対象のIPアドレスのリストにおけるIPアドレス群は、それぞれ単体のIPアドレスである場合を例に説明する。また、参照用のIPアドレスのリストにおけるIPアドレス群は、それぞれ単体のIPアドレスまたはIPアドレスの範囲(レンジ)である場合を例に説明する。また、各リストは、例えば、総量が1M以上の大規模なリストであるものとする。
[概要]
まず、図1を用いて、本実施形態のマッチング装置の概要を説明する。マッチング装置は、マッチング対象のIPアドレスのリスト(例えば、アクセスログから取得したアクセス元のIPアドレス等)と、参照用のIPアドレスのリストとをマッチングする。
まず、図1を用いて、本実施形態のマッチング装置の概要を説明する。マッチング装置は、マッチング対象のIPアドレスのリスト(例えば、アクセスログから取得したアクセス元のIPアドレス等)と、参照用のIPアドレスのリストとをマッチングする。
例えば、マッチング装置は、アクセス元のIPアドレスのリストと、参照用のIPアドレスのリストとをマッチングすることにより、各アクセスがProxyサーバ経由であるか否か等を判定する。例えば、マッチング装置は、アクセス元のIPアドレスが、参照用のIPアドレスのリストのProxyサーバのIPアドレス(IPアドレスのレンジ)に該当する場合、当該アクセスはProxyサーバ経由であると判定する。これにより、マッチング装置は、当該アクセス元のIPアドレスからのアクセスが、悪性のアクセスである可能性があるか否かを判定することができる。
図2、図3を用いて、マッチング装置の動作概要を説明する。まず、マッチング装置は、参照用のIPアドレスのリストにおけるIPアドレスのレンジごとにインデックスを割り当てる(図2の(1)参照用のIPアドレスのリストにインデックスを割り当てる)。
次に、マッチング装置は、参照用のIPアドレスのリストにおける各IPアドレスのレンジを、レンジの開始IPアドレスのレコードとレンジの終了IPアドレスのレコードとに分割する((2)参照用のIPアドレスのリストのレンジを開始IPアドレスと終了IPアドレスに分割する)。
このときマッチング装置は、開始IPアドレスのレコードには、開始IPアドレスのレコードであることを示す情報(例えば、BEGIN)を付与し、終了IPアドレスのレコードには、終了IPアドレスのレコードであることを示す情報(例えば、END)を付与する。
次に、マッチング装置は、(2)の処理を行ったリストと、マッチング対象のIPアドレスのリストとを結合する((3)マッチング対象のIPアドレスのリストと結合する)。このときマッチング装置は、マッチング対象のIPアドレスのレコードに、マッチング対象のIPアドレスのレコードであることを示す情報(例えば、TARGET)を付与する。
図3の説明に移る。マッチング装置は、図2の(3)の処理を行ったリストの各レコードに対し、下記のルールで昇順のソートを行う((4)下記のルールで昇順のソートを行う)。
主キー:IPアドレス(IPアドレスを整数値としてソート)
副キー:BEGIN<TARGET<ENDの順にソート
副キー:BEGIN<TARGET<ENDの順にソート
上記のルールにより各レコードは、例えば、図3の符号301に示すようにソートされる。
その後、マッチング装置は、(4)でソートされた各レコードについて、上から順に、同じインデックスを持つ開始IPアドレスのレコードと終了IPアドレスのレコードとの間に、マッチング対象のIPアドレスのレコードがあるか否かを判定する((5)上から順に処理)。
例えば、マッチング装置は、図3の符号302に示すリストの破線で囲んだ部分について、インデックス0(1.1.1.1-1.1.1.10)の開始IPアドレス(BEGIN)と終了IPアドレス(END)との間に、マッチング対象のIPアドレス(TARGET)1.1.1.2があると判定する。よって、マッチング装置は、マッチング対象のIPアドレス1.1.1.2が、参照用のIPアドレスのインデックス0(1.1.1.1-1.1.1.10)のIPアドレスのレンジに含まれる(マッチする)と判定する。
マッチング装置が、上記のようにして各IPアドレスのリストのマッチングを行うことにより、各リストそれぞれが大規模なものであっても、マッチングに要する計算量を低減することができる。
例えば、マッチング対象のIPアドレスのリストのIPアドレス数がMであり、参照用のIPアドレスのリストのIPアドレスのレンジの数がNである場合、各リストのIPアドレスのマッチングに要する空間計算量をO(M+N)にすることができる。また、例えば、マッチングに用いるソートアルゴリズムがTimsortである場合、各リストのIPアドレスのマッチングに要する時間計算量を、O((M+N)log(M+N))にすることができる。
[構成例]
次に、図4を用いてマッチング装置の構成例を説明する。図4に示すようにマッチング装置10は、入出力部11と、記憶部12と、制御部13とを備える。
次に、図4を用いてマッチング装置の構成例を説明する。図4に示すようにマッチング装置10は、入出力部11と、記憶部12と、制御部13とを備える。
入出力部11は、各種データの入出力を司るインタフェースである。例えば、入出力部11は、マッチング対象のIPアドレスのリスト、参照用のIPアドレスのリスト等の入力を受け付ける。なお、各リストのIPアドレスは、IPv4のIPアドレスでもよいし、IPv6のIPアドレスでもよい。
記憶部12は、制御部13が各種処理を実行する際に参照する各種データを記憶する。例えば、記憶部12は、入出力部11経由で入力されたマッチング対象のIPアドレスのリストや、参照用のIPアドレスのリストを記憶する。また、記憶部12は、制御部13がマッチングを行う過程で作成するデータを一時的に記憶する。
制御部13は、マッチング装置10全体の制御を司る。制御部13は、例えば、生成部131と、結合部132と、ソート部133と、判定部134と、判定結果出力部135とを備える。
生成部131は、参照用のIPアドレスのリストにおけるIPアドレスのレンジごとに、当該IPアドレスのレンジの開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードを生成する。
例えば、生成部131は、まず、参照用のIPアドレスのリストにおけるIPアドレスのレンジごとに、インデックスを付与する(図2の(1)参照)。そして、生成部131は、IPアドレスのレンジそれぞれについて、当該IPアドレスのレンジの開始IPアドレスのレコードおよび終了IPアドレスのレコードを生成する。
そして、生成部131は、IPアドレスのレンジの開始IPアドレスのレコードには、当該レコードが開始IPアドレスのレコードであることを示す情報(例えば、BEGIN)を付与する。また、生成部131は、IPアドレスのレンジの終了IPアドレスのレコードには、当該レコードが終了IPアドレスのレコードであることを示す情報(例えば、END)を付与する(図2の(2)参照)。
結合部132は、生成部131により生成されたレコードと、マッチング対象のIPアドレスのリストのIPアドレスのレコードとを結合する。また、このとき、結合部132は、マッチング対象のIPアドレスのレコードに、当該レコードがマッチング対象のIPアドレスのレコードである旨の情報(例えば、TARGET)を付与する(図2の(3)参照)。
ソート部133は、結合部132により結合されたレコード群を、各レコードのIPアドレスを主キーとし、各レコードがマッチング対象のIPアドレスのレコードか、開始IPアドレスのレコードか、終了IPアドレスのレコードかを示す情報(例えば、TARGET、BEGIN、END)を副キーとしてソートする(図3の(4)参照)。例えば、ソート部133は、各レコードをBEGIN<TARGET<ENDの昇順でソートする。
これによりソート部133は、例えば、TARGETが付されたレコードのIPアドレスと、BEGINまたはENDが付されたレコードのIPアドレスとが一致する場合でも、BEGINが付されたレコードとENDが付されたレコードとの間に、TARGETが付されたレコードが配置されるようにソートすることができる。
なお、ソート部133が用いるソートアルゴリズムは、例えば、Timsort等である。
判定部134は、ソート部133によりソートされたレコードにおいて、参照用のIPアドレスのリストにおけるいずれかのIPアドレスのレンジの開始IPアドレスのレコードと終了IPアドレスのレコードとの間に、マッチング対象のIPアドレスのレコードがある場合(図3の(5)参照)、当該マッチング対象のIPアドレスは、当該IPアドレスのレンジに該当すると判定する。
なお、ソート部133によりソートされたレコードにおいて、参照用のIPアドレスのリストにおけるいずれのIPアドレスのレンジの開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間にも、マッチング対象のIPアドレスのレコードがない場合、判定部134は、マッチング対象のIPアドレスのリストの各IPアドレスは、参照用のIPアドレスのリストにおけるいずれのIPアドレスのレンジにも該当しないと判定する。
判定結果出力部135は、判定部134による判定の結果を出力する。例えば、判定部134により、マッチング対象のIPアドレスが、悪性IPリストのIPアドレスのレンジに該当すると判定された場合、判定結果出力部135は、マッチング対象のIPアドレスからのアクセスは、悪性のアクセスである可能性がある旨の判定結果を出力する。
また、判定結果出力部135は、マッチング対象のIPアドレスがマッチするIPアドレスのレンジの属性情報を判定結果として出力してもよい。例えば、判定部134により、マッチング対象のIPアドレスが、Web ProxyのIPアドレスのレンジおよびResidential ProxyのIPアドレスのレンジに含まれると判定された場合、判定結果出力部135は、マッチング対象のIPアドレスは、Web ProxyおよびResidential Proxyからのアクセスである旨の判定結果を出力してもよい。
[処理手順の例]
次に、図5を用いて、マッチング装置10の処理手順の例を説明する。なお、マッチング装置10は、参照用のIPアドレスのリストおよびマッチング対象のIPアドレスのリストを取得済みであるものとする。
次に、図5を用いて、マッチング装置10の処理手順の例を説明する。なお、マッチング装置10は、参照用のIPアドレスのリストおよびマッチング対象のIPアドレスのリストを取得済みであるものとする。
まず、マッチング装置10の生成部131は、参照用のIPアドレスのリストにおける各IPアドレスのレンジのレコードにインデックスを割り当てる(S1)。次に、生成部131は、参照用のIPアドレスのリストの各IPアドレスのレンジのレコードを、開始IPアドレスのレコードと終了IPアドレスのレコードとに分割する(S2)。そして、結合部132は、S2で分割された参照用のIPアドレスのリストを、マッチング対象のIPアドレスのリストのレコードと結合する(S3)。
S3の後、ソート部133は、S3で結合されたリストの各レコードを昇順にソートする(S4)。このときの主キーは、IPアドレスであり、副キーは、各レコードが、マッチング対象のIPアドレスのレコードか、開始IPアドレスのレコードか、終了IPアドレスのレコードかを示す情報(例えば、TARGET、BEGIN、END)である。
例えば、ソート部133は、S3で結合されたリストの各レコードについて、主キーであるIPアドレスを整数値に変換した値が昇順になり、副キーであるTARGET、BEGIN、ENDがBEGIN<TARGET<ENDであるとして昇順になるようソートする。
S4の後、判定部134は、ソート後の各レコードのうち、未処理のレコードについて上から順に、同じインデックスが付された開始IPアドレスのレコードと終了IPアドレスとの間に、マッチング対象のIPアドレスがあるか否かを判定する(S5)。
ここで判定部134が、同じインデックスが付された開始IPアドレスのレコードと終了IPアドレスとの間に、マッチング対象のIPアドレスがあると判定した場合(S5でYes)、当該マッチング対象のIPアドレスは、当該インデックスのIPアドレスのレンジに含まれる(マッチする)と判定する(S6)。そして、判定部134が、ソート後のすべてのレコードを処理済みと判定した場合(S7でYes)、S8へ進む。一方、判定部134が、未処理のレコードがあると判定した場合(S7でNo)、S5へ戻る。
S7で、判定部134が、ソート後のすべてのレコードを処理済みと判定した場合(S7でYes)、判定部134は、判定の結果を判定結果出力部135に出力する。そして、判定結果出力部135は、判定部134による判定の結果を入出力部11経由で出力する(S8)。例えば、判定結果出力部135は、マッチング対象のIPアドレスが該当する(マッチする)IPアドレスのレンジの属性情報(例えば、Web Proxy、Residential Proxy等)と、マッチング対象のIPアドレスとを出力する。
マッチング装置10が上記の処理を行うことで、IPアドレスのリストがそれぞれ大規模なものであっても、マッチングに要する計算量を低減することができる。その結果、マッチング装置10は、大規模なIPアドレスのリスト同士でも、高速かつ高効率でマッチングすることができる。
例えば、マッチング装置10が100万件のIPアドレスのリストと、100万件の参照用のIPアドレスのリストとをマッチングする場合、各リストのIPアドレスを1つ1つマッチングする場合と比べ、IPアドレス同士の比較回数を1/10000以下にすることができる。その結果、IPアドレスのリストのマッチングに要する時間を大幅に低減できる。
なお、前記した図5のS5の処理は、例えば、以下のようにして行ってもよい。例えば、判定部134は、未処理のレコードについて上から順に見ていき、BEGINが付与されたレコードを見つけると、当該レコードに付与されたインデックスのフラグを立てる。また、判定部134は、TARGETが付与されたレコードを見つけると、フラグが立っているインデックスに対応するIPアドレスのレンジに、当該TARGETが付与されたレコードのIPアドレスが含まれると判定する。また、判定部134は、ENDが付与されたレコードを見つけると、当該レコードに付与されたインデックスのフラグを降ろす。
判定部134は、上記の処理を上から順に最後のレコードまで実行する。そして、判定部134は、フラグの立っているインデックスに対応するIPアドレスのレンジを、マッチング対象のIPアドレスがマッチするIPアドレスのレンジとする。このようにすることで、判定部134は、例えば、マッチング対象のIPアドレスが複数のIPアドレスのレンジに含まれる場合でも、漏れなく検出することができる。
例えば、図6に示すようにマッチング対象のIPアドレスが該当する複数のIPアドレスのレンジ同士が、入れ子状になっている場合(符号601参照)や、部分的に重複している場合(符号602参照)でも、漏れなく検出することができる。
例えば、符号601に示す例の場合、判定部134は、マッチング対象のIPアドレス「1.1.1.2」が、インデックス0(1.1.1.1-1.1.1.10)およびインデックス1(1.1.1.1-1.1.1.5)に含まれることを検出することができる。
また、符号602に示す例の場合、判定部134は、マッチング対象のIPアドレス「1.1.1.3」が、インデックス0(1.1.1.1-1.1.1.10)およびインデックス2(1.1.1.2-1.1.1.15)に含まれることを検出することができる。
[適用例]
図7を用いて、マッチング装置10によるIPアドレスのリストのマッチングの適用例を説明する。例えば、マッチング装置10によるIPアドレスのマッチングを、図7の(1)に示すような、あるショッピングサイトにおけるクレジットカード決済のIP(IPアドレス)ログと、あらかじめ用意したProxy Listとのマッチングに適用してもよい。ここで、IPログに記載されたIPアドレスが、あらかじめ用意したProxy ListのいずれかのIPアドレスのレンジに該当すれば、当該IPログに対応するアクセスはProxy経由の疑わしいアクセスと判断することができる。
図7を用いて、マッチング装置10によるIPアドレスのリストのマッチングの適用例を説明する。例えば、マッチング装置10によるIPアドレスのマッチングを、図7の(1)に示すような、あるショッピングサイトにおけるクレジットカード決済のIP(IPアドレス)ログと、あらかじめ用意したProxy Listとのマッチングに適用してもよい。ここで、IPログに記載されたIPアドレスが、あらかじめ用意したProxy ListのいずれかのIPアドレスのレンジに該当すれば、当該IPログに対応するアクセスはProxy経由の疑わしいアクセスと判断することができる。
また、マッチング装置10によるIPアドレスのマッチングを、図7の(2)に示すような、あるウェブサイトにおけるサーバへのアクセスログと、あらかじめ用意した悪性IP(IPアドレス)リストとのマッチングに適用してもよい。ここで、アクセスログに記載されたIPアドレスが、あらかじめ用意した悪性IPリストのいずれかのIPアドレスのレンジに該当すれば、当該IPログに対応するアクセスは乗っ取られた端末によるアクセス等と判断することができる。
[システム構成等]
また、図示した各部の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、図示した各部の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、前記した実施形態において説明した処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
前記したマッチング装置10は、パッケージソフトウェアやオンラインソフトウェアとしてプログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記のプログラムを情報処理装置に実行させることにより、情報処理装置をマッチング装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等の端末等がその範疇に含まれる。
前記したマッチング装置10は、パッケージソフトウェアやオンラインソフトウェアとしてプログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記のプログラムを情報処理装置に実行させることにより、情報処理装置をマッチング装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等の端末等がその範疇に含まれる。
また、マッチング装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の処理に関するサービスを提供するサーバ装置として実装することもできる。この場合、サーバ装置は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
図8は、マッチングプログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記のマッチング装置10が実行する各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、マッチング装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施形態の処理で用いられるデータは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続される他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 マッチング装置
11 入出力部
12 記憶部
13 制御部
131 生成部
132 結合部
133 ソート部
134 判定部
135 判定結果出力部
11 入出力部
12 記憶部
13 制御部
131 生成部
132 結合部
133 ソート部
134 判定部
135 判定結果出力部
Claims (6)
- 参照用のIPアドレスの範囲を示すリストにおける前記IPアドレスの範囲ごとに、前記IPアドレスの範囲の開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードを生成する生成部と、
前記参照用のIPアドレスの範囲それぞれの開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードと、マッチング対象のIPアドレスを示すレコードとを結合する結合部と、
前記結合されたレコード群を、前記レコードのIPアドレスを主キーとし、前記レコードが、前記マッチング対象のIPアドレスのレコードか、前記開始IPアドレスを示すレコードか、前記終了IPアドレスのレコードかを示す情報を副キーとしてソートするソート部と、
前記ソートされたレコード群において、いずれかの前記IPアドレスの範囲の開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間に、前記マッチング対象のIPアドレスのレコードがある場合、前記マッチング対象のIPアドレスは、当該IPアドレスの範囲にマッチすると判定する判定部と、
前記判定の結果を出力する判定結果出力部と
を備えることを特徴とするマッチング装置。 - 前記ソート部は、
前記結合されたレコード群を、各レコードのIPアドレスを主キーとし昇順でソートし、前記副キーについて、前記開始IPアドレスを示すレコード、前記マッチング対象のIPアドレスを示すレコード、前記終了IPアドレスを示すレコードの順になるようソートする
ことを特徴とする請求項1に記載のマッチング装置。 - 前記判定部が、
前記マッチング対象のIPアドレスが、いずれかの前記IPアドレスの範囲にマッチすると判定した場合、
前記判定結果出力部は、
前記マッチング対象のIPアドレスからのアクセスは、悪性のアクセスである可能性がある旨の判定結果を出力する
ことを特徴とする請求項1に記載のマッチング装置。 - 前記判定部が、
前記マッチング対象のIPアドレスが、いずれかの前記IPアドレスの範囲にマッチすると判定した場合、
前記判定結果出力部は、
前記マッチング対象のIPアドレスがマッチする前記IPアドレスの範囲それぞれの属性情報を出力する
ことを特徴とする請求項1に記載のマッチング装置。 - マッチング装置により実行されるマッチング方法であって、
参照用のIPアドレスの範囲を示すリストにおける前記IPアドレスの範囲ごとに、前記IPアドレスの範囲の開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードを生成する工程と、
前記参照用のIPアドレスの範囲それぞれの開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードと、マッチング対象のIPアドレスを示すレコードとを結合する工程と、
前記結合されたレコード群を、前記レコードのIPアドレスを主キーとし、前記レコードが、前記マッチング対象のIPアドレスのレコードか、前記開始IPアドレスを示すレコードか、前記終了IPアドレスのレコードかを示す情報を副キーとしてソートする工程と、
前記ソートされたレコード群において、いずれかの前記IPアドレスの範囲における開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間に、前記マッチング対象のIPアドレスのレコードがある場合、前記マッチング対象のIPアドレスは、当該IPアドレスの範囲にマッチすると判定する工程と、
前記判定の結果を出力する工程と
を含むことを特徴とするマッチング方法。 - 参照用のIPアドレスの範囲を示すリストにおける前記IPアドレスの範囲ごとに、前記IPアドレスの範囲の開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードを生成する工程と、
前記参照用のIPアドレスの範囲それぞれの開始IPアドレスを示すレコードおよび終了IPアドレスを示すレコードと、マッチング対象のIPアドレスを示すレコードとを結合する工程と、
前記結合されたレコード群を、前記レコードのIPアドレスを主キーとし、前記レコードが、前記マッチング対象のIPアドレスのレコードか、前記開始IPアドレスを示すレコードか、前記終了IPアドレスのレコードかを示す情報を副キーとしてソートするソート部と、
前記ソートされたレコード群において、いずれかの前記IPアドレスの範囲における開始IPアドレスを示すレコードと終了IPアドレスを示すレコードとの間に、前記マッチング対象のIPアドレスのレコードがある場合、前記マッチング対象のIPアドレスは、当該IPアドレスの範囲にマッチすると判定する工程と、
前記判定の結果を出力する工程と
をコンピュータに実行させることを特徴とするマッチングプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/285,865 US20240187435A1 (en) | 2021-04-12 | 2021-04-12 | Matching device, matching method, and matching program |
PCT/JP2021/015195 WO2022219683A1 (ja) | 2021-04-12 | 2021-04-12 | マッチング装置、マッチング方法、および、マッチングプログラム |
JP2023514194A JP7568071B2 (ja) | 2021-04-12 | 2021-04-12 | マッチング装置、マッチング方法、および、マッチングプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/015195 WO2022219683A1 (ja) | 2021-04-12 | 2021-04-12 | マッチング装置、マッチング方法、および、マッチングプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022219683A1 true WO2022219683A1 (ja) | 2022-10-20 |
Family
ID=83640244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/015195 WO2022219683A1 (ja) | 2021-04-12 | 2021-04-12 | マッチング装置、マッチング方法、および、マッチングプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240187435A1 (ja) |
JP (1) | JP7568071B2 (ja) |
WO (1) | WO2022219683A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6813645B1 (en) * | 2000-05-24 | 2004-11-02 | Hewlett-Packard Development Company, L.P. | System and method for determining a customer associated with a range of IP addresses by employing a configurable rule engine with IP address range matching |
JP2005117211A (ja) * | 2003-10-06 | 2005-04-28 | Nippon Telegr & Teleph Corp <Ntt> | データ検索装置 |
JP2006054637A (ja) * | 2004-08-11 | 2006-02-23 | Ricoh Co Ltd | 通信装置 |
US20180063082A1 (en) * | 2016-08-31 | 2018-03-01 | Fortress Information Security | Systems and methods for geoprocessing-based computing network security |
-
2021
- 2021-04-12 US US18/285,865 patent/US20240187435A1/en active Pending
- 2021-04-12 WO PCT/JP2021/015195 patent/WO2022219683A1/ja active Application Filing
- 2021-04-12 JP JP2023514194A patent/JP7568071B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6813645B1 (en) * | 2000-05-24 | 2004-11-02 | Hewlett-Packard Development Company, L.P. | System and method for determining a customer associated with a range of IP addresses by employing a configurable rule engine with IP address range matching |
JP2005117211A (ja) * | 2003-10-06 | 2005-04-28 | Nippon Telegr & Teleph Corp <Ntt> | データ検索装置 |
JP2006054637A (ja) * | 2004-08-11 | 2006-02-23 | Ricoh Co Ltd | 通信装置 |
US20180063082A1 (en) * | 2016-08-31 | 2018-03-01 | Fortress Information Security | Systems and methods for geoprocessing-based computing network security |
Non-Patent Citations (1)
Title |
---|
BUTLER LAMPSON ; VENKATACHARY SRINIVASAN ; GEORGE VARGHESE: "IP lookups using multiway and multicolumn search", IEEE /ACM TRANSACTIONS ON NETWORKING, vol. 7, no. 3, 1 June 1999 (1999-06-01), US , pages 324 - 334, XP058336752, ISSN: 1063-6692, DOI: 10.1109/90.779199 * |
Also Published As
Publication number | Publication date |
---|---|
JP7568071B2 (ja) | 2024-10-16 |
US20240187435A1 (en) | 2024-06-06 |
JPWO2022219683A1 (ja) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wieder | Hashing, load balancing and multiple choice | |
CN109376277B (zh) | 确定设备指纹同源性的方法及装置 | |
US20140059094A1 (en) | Making use of a file path to determine file locality for applications | |
JP2023546687A (ja) | コード類似性検索 | |
CN103036697A (zh) | 一种多维度数据去重方法及系统 | |
CN114780501A (zh) | 数据处理方法、电子设备和计算机程序产品 | |
WO2022219683A1 (ja) | マッチング装置、マッチング方法、および、マッチングプログラム | |
JP6708575B2 (ja) | 分類装置、分類方法および分類プログラム | |
US20130275384A1 (en) | System, method, and computer program product for determining whether an electronic mail message is unwanted based on processing images associated with a link in the electronic mail message | |
WO2017065795A1 (en) | Incremental update of a neighbor graph via an orthogonal transform based indexing | |
Wasswa et al. | Enhancing iot-botnet detection using variational auto-encoder and cost-sensitive learning: A deep learning approach for imbalanced datasets | |
US6330557B1 (en) | Method and system for storing data in a hash table that eliminates the necessity of key storage | |
US9201982B2 (en) | Priority search trees | |
Zhong et al. | FPGA-CPU Architecture Accelerated Regular Expression Matching With Fast Preprocessing | |
WO2022264366A1 (ja) | 探索装置、探索範囲決定方法及び探索範囲決定プログラム | |
Moia et al. | A comparative analysis about similarity search strategies for digital forensics investigations | |
Kaya et al. | A low power lookup technique for multi-hashing network applications | |
CN111683036B (zh) | 数据存储方法、装置以及报文识别方法和装置 | |
CN114880297A (zh) | 基于指纹的分布式的数据去重方法及系统 | |
WO2024189864A1 (ja) | 情報処理方法 | |
CN114124883A (zh) | 基于云存储地址的数据访问方法、装置、计算机设备及介质 | |
CN112291241A (zh) | 防火墙开墙方法、防火墙开墙装置及终端设备 | |
KR20210021838A (ko) | 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법 | |
Lu et al. | Optimized Aho-Corasick string matching algorithm for smart phones | |
CN116232686B (zh) | 网络攻击防御模型建立方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 2023514194 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18285865 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21936886 Country of ref document: EP Kind code of ref document: A1 |