KR101880705B1 - System for collecting device information using internet and method thereof - Google Patents
System for collecting device information using internet and method thereof Download PDFInfo
- Publication number
- KR101880705B1 KR101880705B1 KR1020170148318A KR20170148318A KR101880705B1 KR 101880705 B1 KR101880705 B1 KR 101880705B1 KR 1020170148318 A KR1020170148318 A KR 1020170148318A KR 20170148318 A KR20170148318 A KR 20170148318A KR 101880705 B1 KR101880705 B1 KR 101880705B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- response information
- response
- information
- address
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- 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/1433—Vulnerability analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 인터넷을 이용하여 장치정보를 수집하는 시스템 및 그 방법에 대한 것으로서, 보다 상세하게는, 인터넷에 연결되어 있는 사물인터넷 장치(IoT device)의 정보를 신속하게 수집하기 위한 시스템 및 그 방법에 관한 것이다.The present invention relates to a system and method for collecting device information using the Internet, and more particularly, to a system and method for rapidly collecting information of an Internet device (IoT device) connected to the Internet .
인터넷에 연결되어 동작하는 것을 특징으로 하는 사물인터넷 장치(사물인터넷 서비스 단말)가 널리 보급되면서, 사물인터넷 장치에 대한 해킹의 위험도 함께 늘어나고 있다.(Internet Internet service terminal), which is connected to the Internet, has been widely popularized, so that the risk of hacking to the Internet device is also increasing.
사물인터넷 장치에 대한 보안을 유지하기 위해서, 사물인터넷 장치의 보안 취약성을 주기적으로 검사하여 보안이 취약한 점이 발견되면, 즉각적인 보안 패치의 업데이트를 통해서, 사물인터넷 장치가 안정적인 서비스를 제공할 수 있도록 해야 한다.In order to maintain the security of the Internet devices, if the security weaknesses of the Internet devices are periodically checked, it is necessary to update the security patches so that the Internet devices can provide stable services .
위와 같이 진화하는 보안 위협에 신속하게 대응하기 위해서는, 사물인터넷 장치의 보안과 관련된 정보를 짧은 주기를 통해서 수집할 필요가 있다. 즉, 42억개의 IP 주소(Internet Protocol Address)를 포함하는 IPv4 공간에서 실제 유효한 37억개의 인터넷 장치의 정보를 초고속으로 수집해야만 한다.In order to respond quickly to evolving security threats, it is necessary to collect information related to the security of the Internet devices in a short period of time. In other words, it has to collect information of 3.7 billion Internet devices actually available in the IPv4 space including 4.2 billion Internet Protocol addresses at a very high speed.
도 1은 종래의 인터넷 장치의 정보를 수집하는 방법을 도식적으로 나타낸 도면이다.1 is a diagram schematically illustrating a method of collecting information of a conventional Internet device.
종래의 장치정보를 수집하는 장치는 IP 주소마다 패킷(packet)을 송신하고, 그 송신된 패킷에 대한 응답패킷을 수신한다. 응답패킷에는 사물인터넷 장치의 운영체제정보, 보안 업데이트 패치의 버전정보 등이 포함되어 있다. 수신된 정보들은 그 내용이 파악되기에 앞서 IP스캔결과파일이라는 하나의 데이터파일을 형성하게 되며, IP 스캔결과파일은 복수의 핑거프린팅 프로세스(fingerprinting process) 과정을 통해 처리되어 최종적으로 장치정보를 수집하는 장치가 파악해야 하는 사물인터넷 장치의 정보가 된다.The conventional apparatus for collecting device information transmits a packet for each IP address and receives a response packet for the transmitted packet. The response packet includes operating system information of the object Internet device, version information of the security update patch, and the like. The received information forms a single data file called an IP scan result file before its contents are grasped. The IP scan result file is processed through a plurality of fingerprinting processes and finally collects device information Which is the information of the Internet device.
보다 구체적으로, 기존 구조에서의 핑거프린팅 프로세스는 IP 주소의 스캔 결과에서 데이터를 파싱(parsing)하여 그 파싱결과를 하나의 긴 문자열 변수로 만들고, 사물인터넷 장치에 운영체제 정보의 검색을 위해서 미리 저장된 규칙파일(Rule File)에 문자열 변수와 매칭되는 부분이 있는지 여부를 검색하는 프로세스이다. 이때, 데이터를 파싱하는 작업과 규칙파일을 검색하는 과정에서 장치정보를 수집하는 장치의 성능의 병목현상이 발생한다. 이 과정에서 발생하는 장치정보를 수집하는 장치의 성능의 병목현상은 규칙파일에 정의되어 있는 필드 순서와 동일하게 IP 주소의 스캔 결과를 파싱해서 문자열 변환을 해야하고, 변환된 문자열을 규칙파일의 모든 내용과 문자열 비교 연산을 수행하기 때문에 발생하는 문제점이다.More specifically, a fingerprinting process in an existing structure parses data from a scan result of an IP address, converts the parsing result into a single long string variable, and stores a pre-stored rule It is a process of searching whether or not there is a part matching with a string variable in a file (Rule File). At this time, a performance bottleneck occurs in the apparatus for collecting device information in the process of parsing the data and searching the rule file. The bottleneck of the performance of the device collecting the device information generated in this process is that the scan result of the IP address is parsed and converted into a string in the same way as the field order defined in the rule file, This is a problem that occurs because the content and string comparison operations are performed.
위와 같은 이유로, 사물인터넷 장치의 정보를 신속하게 수집할 수 있을 뿐만 아니라, 종래의 장치가 갖고 있는 성능의 병목현상을 극복한 장치정보를 수집하는 장치의 필요성이 대두된다.For this reason, there is a need for an apparatus for collecting device information that overcomes the bottleneck of the performance of a conventional apparatus, as well as capable of quickly collecting information of the object Internet apparatus.
본 발명이 해결하고자 하는 기술적 과제는, 종래의 장치보다 더 신속하게 동작하는 장치정보를 수집하는 방법을 제공하는 데에 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method for collecting device information that operates more quickly than a conventional device.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시 예에 따른, 인터넷을 이용하여 장치정보를 수집하는 방법은, 복수의 IP(internet protocol)주소를 생성하고, 상기 생성된 복수의 IP주소로 패킷을 송신하는 패킷생성단계; 상기 송신된 패킷에 대응되는 응답패킷을 수신하고, 상기 IP주소별로 수신된 응답패킷을 통합한 응답정보를 산출하는 응답정보산출단계; 상기 산출된 응답정보를 미리 설정된 프로세스(process)의 수에 따라 분할하고, 상기 분할된 응답정보를 각 프로세스에 포함된 복수의 스레드(thread)를 통해 분할처리하는 분할처리단계; 및 상기 분할처리된 응답정보를 복수의 핑거프린팅 프로세스를 통해서 처리한 결과를 기초로 하여 상기 응답패킷을 송신한 각 장치들의 장치정보를 파악하는 장치정보파악단계를 포함한다.According to an aspect of the present invention, there is provided a method for collecting device information using the Internet, the method comprising: generating a plurality of Internet protocol (IP) addresses; Generating a packet for transmission; A response information calculation step of receiving a response packet corresponding to the transmitted packet and calculating response information combining response packets received for each IP address; A division processing step of dividing the calculated response information according to the number of predetermined processes and dividing the divided response information through a plurality of threads included in each process; And a device information grasping step of grasping device information of each device that has transmitted the response packet based on a result of processing the divided response information through a plurality of fingerprinting processes.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 일 실시 예에 따른 인터넷을 이용하여 장치정보를 수집하는 시스템은, 복수의 IP(internet protocol)주소를 생성하고, 상기 생성된 복수의 IP주소로 패킷을 송신하는 패킷생성부; 상기 송신된 패킷에 대응되는 응답패킷을 수신하고, 상기 IP주소별로 수신된 응답패킷을 통합한 응답정보를 산출하는 응답정보산출부; 상기 산출된 응답정보를 미리 설정된 프로세스(process)의 수에 따라 분할하고, 상기 분할된 응답정보를 각 프로세스에 포함된 복수의 스레드(thread)를 통해 분할처리하는 분할처리부; 및 상기 분할처리된 응답정보를 복수의 핑거프린팅 프로세스를 통해서 처리한 결과를 기초로 하여 상기 응답패킷을 송신한 각 장치들의 장치정보를 파악하는 장치정보파악부를 포함한다.According to another aspect of the present invention, there is provided a system for collecting device information using the Internet, the method comprising: generating a plurality of internet protocol (IP) addresses; A packet generating unit for transmitting the packet; A response information calculation unit for receiving a response packet corresponding to the transmitted packet and calculating response information combining response packets received for each IP address; A division processing unit for dividing the calculated response information according to the number of predetermined processes and dividing the divided response information through a plurality of threads included in each process; And a device information acquisition unit for acquiring device information of each device that has transmitted the response packet based on a result of processing the divided response information through a plurality of fingerprinting processes.
본 발명의 일 실시 예는, 인터넷을 이용하여 장치정보를 수집하는 방법을 실행시키기 위한 프로그램을 저장하고 있는 컴퓨터 판독가능한 기록매체를 제공한다.An embodiment of the present invention provides a computer-readable recording medium storing a program for executing a method of collecting device information using the Internet.
본 발명에 따르면, 사물인터넷 장치의 정보를 신속하게 수집할 수 있을 뿐만 아니라, 사물인터넷 장치들의 IP주소 스캔의 결과를 처리하는 과정에 있어서, 성능의 병목현상이 발생되지 않는다.According to the present invention, performance bottlenecks do not occur in the process of processing the result of the IP address scan of the object Internet devices as well as rapidly collecting information of the object Internet apparatuses.
도 1은 종래의 인터넷 장치의 정보를 수집하는 방법을 도식적으로 나타낸 도면이다.
도 2는 본 발명에 따른 시스템의 전체 구성을 개략적으로 나타낸 도면이다.
도 3은 본 발명에 따른 장치정보를 수집하는 시스템의 일 예의 블록도를 도시한 도면이다.
도 4는 패킷생성부가 IP 주소를 순열 및 미리 설정된 소수를 변수로 하는 수학식으로 IP 주소를 생성하는 일 예를 도식적으로 나타낸 도면이다.
도 5는 응답정보산출부가 응답패킷을 커널 영역을 통과시켜 사용자단에서 처리하는 것을 도식적으로 나타낸 도면이다.
도 6은 복수의 프로세스내에 생성된 복수의 스레드가 응답정보를 분할하여 처리하는 구조를 도식화한 도면이다.
도 7은 응답정보가 고속병렬구조에서의 프로세스내에 생성된 스레드에서 처리되기 위해서 스레드에 할당되는 과정을 도식화한 도면이다.
도 8은 복수의 핑거프린팅 프로세스를 통해서 큐에 쌓인 정보가 병렬적으로 처리되는 과정을 도식화한 도면이다.
도 9는 본 발명에 따라 인터넷을 이용하여 장치정보를 수집하는 방법의 일 예의 흐름도를 도시한 도면이다.1 is a diagram schematically illustrating a method of collecting information of a conventional Internet device.
Fig. 2 is a schematic diagram showing the overall configuration of a system according to the present invention.
Figure 3 is a block diagram of an example of a system for collecting device information in accordance with the present invention.
4 is a diagram schematically illustrating an example in which the packet generator generates an IP address using an equation that permits an IP address as a permutation and a preset prime number as a variable.
5 is a diagram schematically showing that the response information calculation unit passes the response packet through the kernel area and processes it at the user end.
6 is a diagram showing a structure in which a plurality of threads generated in a plurality of processes divide and process response information.
7 is a diagram illustrating a process in which response information is assigned to a thread to be processed in a thread created in a process in a fast parallel structure.
FIG. 8 is a diagram illustrating a process in which information stored in a queue is processed in parallel through a plurality of fingerprinting processes.
9 is a flowchart illustrating an example of a method of collecting device information using the Internet according to the present invention.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. The effects and features of the present invention and methods of achieving them will be apparent with reference to the embodiments described in detail below with reference to the drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, wherein like reference numerals refer to like or corresponding components throughout the drawings, and a duplicate description thereof will be omitted .
이하의 실시 예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. In the following embodiments, the terms first, second, and the like are used for the purpose of distinguishing one element from another element, not the limitative meaning.
이하의 실시 예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.In the following examples, the singular forms "a", "an" and "the" include plural referents unless the context clearly dictates otherwise.
이하의 실시 예에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징을 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. In the following embodiments, terms such as inclusive or possessed mean that a feature or element described in the specification is present, and does not exclude the possibility that one or more other features or components are added in advance.
어떤 실시 예가 달리 구현 가능한 경우에 특정한 공정 순서는 설명되는 순서와 다르게 수행될 수도 있다. 예를 들어, 연속하여 설명되는 두 공정이 실질적으로 동시에 수행될 수도 있고, 설명되는 순서와 반대의 순서로 진행될 수 있다.If certain embodiments are otherwise feasible, the particular process sequence may be performed differently from the sequence described. For example, two processes that are described in succession may be performed substantially concurrently, and may be performed in the reverse order of the order described.
도 2는 본 발명에 따른 시스템의 전체 구성을 개략적으로 나타낸 도면이다.Fig. 2 is a schematic diagram showing the overall configuration of a system according to the present invention.
도 2를 참조하면, 본 발명에 따른 전체시스템(10)은 장치정보를 수집하는 시스템(100)이 통신망(600)을 통해서, 카메라(200), 냉장고(300), 에어컨(400) 및 드론(500)과 각종 정보를 송수신하는 것을 알 수 있다.2, a
먼저, 장치정보를 수집하는 시스템(100)은 카메라(200), 냉장고(300), 에어컨(400) 및 드론(500)에 패킷을 송신하고, 그에 따른 응답패킷을 수신하여, 카메라(200), 냉장고(300), 에어컨(400) 및 드론(500)의 장치정보를 파악하고, 보안의 취약점이 있는지 여부를 판단한다.First, a
카메라(200), 냉장고(300), 에어컨(400) 및 드론(500)은 모두 사물인터넷 장치로서, 장치정보를 수집하는 시스템(100)으로부터 패킷을 수신하면, 그에 따라 응답패킷을 생성하여 송신할 수 있는 통신장치를 포함하고 있다. 도 2의 전체시스템(10)은 도시된 카메라(200), 냉장고(300), 에어컨(400) 및 드론(500) 외에도 통신망(600)을 통해서 각종 정보를 송수신할 수 있는 다른 장치를 더 포함할 수 있다.The
통신망(600)은 장치정보를 수집하는 시스템(100)과 사물인터넷 장치들을 연결시켜주는 기능을 수행하고, 데이터망, 이동통신망, 인터넷 등 각종 무선 통신망을 포함한다.The
도 3은 본 발명에 따른 장치정보를 수집하는 시스템의 일 예의 블록도를 도시한 도면이다.Figure 3 is a block diagram of an example of a system for collecting device information in accordance with the present invention.
도 3을 참조하면, 본 발명에 따른 장치정보를 수집하는 시스템(100)은 패킷생성부(110), 응답정보산출부(130), 분할처리부(150) 및 장치정보파악부(170)를 포함하는 것을 알 수 있다. 이하에서, 도 3의 장치정보를 수집하는 시스템(100)은 도 2의 장치정보를 수집하는 시스템(100)과 동일한 장치인 것으로 간주하며, 설명의 편의를 위해서 도 2를 참조하여 설명하기로 한다.3, a
패킷생성부(110)는 복수의 IP(Internet Protocol) 주소를 생성하고, 생성된 복수의 IP 주소로 패킷을 송신한다.The packet generating
먼저, 패킷생성부(110)는 복수의 IP 주소를 생성한다. 패킷생성부(110)가 생성한 IP 주소는, 패킷생성부(110)가 그 IP 주소를 갖는 사물인터넷 장치에 패킷을 보내기 위해 생성한 주소이다. 현재 이용되고 있는 IPv4(Internet Protocol version 4)에 따르면, 유효한 IP 주소는 37억개 정도이며, 패킷생성부(110)는 37억개의 유효한 주소 중에서 미리 설정된 범위와 개수내에서 IP 주소를 다양하게 생성하며, 그 생성된 IP 주소에 패킷을 송신한다.First, the
선택적 일 실시 예로서, 패킷생성부(110)는 복수의 IP 주소를 순열 및 미리 설정된 소수를 변수로 하는 수학식을 통해서 IP 주소를 생성할 수도 있다.As an alternative embodiment, the
도 4는 패킷생성부가 IP 주소를 순열 및 미리 설정된 소수를 변수로 하는 수학식으로 IP 주소를 생성하는 일 예를 도식적으로 나타낸 도면이다.4 is a diagram schematically illustrating an example in which the packet generator generates an IP address using an equation that permits an IP address as a permutation and a preset prime number as a variable.
IPv4하에서 정의될 수 있는 IP 주소의 전체 개수는 약 42억개(2의 32제곱에 의해 산출된 값)이며, 이중 유효 주소는 약 37억개이다. 패킷생성부(110)는 도 4에서 도시된 것과 같이 순열(circulation) 및 미리 설정된 소수(prime number)를 변수로 하는 수학식을 기초로 하여 매번 다른 IP 주소를 생성할 수 있으며, 생성되는 IP 주소는 순열 및 수학식의 특성에 따라 중복되지 않게 된다.The total number of IP addresses that can be defined under IPv4 is approximately 4.2 billion (the value computed by the power of 2 squared), and the effective address is about 3.7 billion. The
수학식 1은 패킷생성부(110)가 IP 주소를 생성하기 위해서 이용하는 수학식의 일 예를 나타낸다. 수학식 1에서, g는 순열을 구성하는 순열결정인자이고, p는 현재 이용되고 있는 인터넷프로토콜 버전에서 정의될 수 있는 IP 주소의 전체 개수에 가장 가까운 소수(prime number)를 의미한다. 설명의 편의를 위해서, 이하에서는, g는 순열결정인자, p는 결정소수라고 호칭하기로 한다.Equation (1) shows an example of a mathematical expression used by the
예를 들어, IPv4하에서 p는 2의 32제곱과 가장 가까운 소수인 4294967311(2의 32제곱에 15를 더한 값)이 될 수 있고, 도 4에 따르면 순열결정인자 g는 6이 될 수 있다. For example, under IPv4, p may be 4294967311 (the 32 th power of 2 plus 15), which is the closest prime to the 32nd power of 2, and the permutation factor g may be 6 according to FIG.
또한, 수학식 1에서 와 는 각각 i번째 10진수 및 i+1번째 10진수로서, 1부터 인터넷프로토콜 버전에서 정의될 수 있는 IP 주소의 전체 개수와 같은 수 중 어느 하나의 수가 될 수 있다. 예를 들어, IPv4하에서 는 1에서 4294967296(2의 32제곱) 중 어느 하나의 수가 될 수 있다. 즉, i+1번째 10진수는 i번째 10진수에 순열결정인자 g를 곱한 값을 결정소수 p로 나눈 나머지로 정의된다.In
수학식 1에 따라서, 도 4를 순서대로 설명하면 다음과 같다. 먼저, 패킷생성부(110)에 의해 순열을 구성하는 순열결정인자 g는 임의의 값 5로 선택되고, 이 1로 선택되면, 는 수학식 1에 따라 5가 된다. 위와 같은 과정을 반복하면, 는 5, 는 4, 는 6, 은 2, 은 3, 은 과 같은 1이 산출된다. 즉, 과 이 같은 값을 같은 것은 결정소수가 7이기 때문이며, 결정소수가 달라지면 그만큼 최초의 과 같은 값이 산출되기 위해서 앞선 과정보다 더 많은 반복과정이 필요하다. 도 4에 따르면, 결정소수가 7이므로, 결정소수보다 더 작은 수가 나머지값들로 산출된 것을 알 수 있다.Referring to
이하에서는, 패킷생성부(110)가 수학식 1을 통해서 매번 다른 IP 주소를 생성하는 과정을 보다 더 구체적인 예를 들어 설명하기로 한다. 먼저, 패킷생성부(110)는 순열결정인자 g를 3으로 결정하고, 결정소수를 4294967311(2의 32제곱에 15를 더한 수)로 결정하고, 첫 번째 10진수가 2598이라고 가정한다. 그러면, 두 번째 10진수는 2598에 3을 곱한 값을 4294967311로 나눈 나머지인 7794가 된다. 패킷생성부(110)는 10진수 7794를 IPv4 주소로 변환하여, IP 주소 0.0.30.114를 생성한다. 즉, 패킷생성부(110)가 생성한 첫 번째 IP 주소는 0.0.30.114이다. 본 실시 예에서, 패킷생성부(110)가 10진수를 도트 10진수 IP 주소로 변환하는 방법에 대한 설명은 종래에 널리 알려진 방법이므로 그에 대한 설명은 생략하기로 한다.Hereinafter, a process in which the
이어서, 패킷생성부(110)는 세 번째 10진수인 23382, 네 번째 10진수인 70146을 IP 주소로 변환하여, 0.0.91.86 및 0.1.18.2를 각각 생성한다. 위와 같은 과정을 계속 반복하다보면, 첫 번째 10진수인 2598와 동일한 10진수가 수학식 1의 좌변값으로 산출되며, 패킷생성부(110)는 생성될 수 있는 모든 IP 주소가 생성된 것으로 보고 해당 순열에 대한 IP 주소 생성을 중지한다.Then, the
종래기술처럼 IPv4 주소 공간에서 생성될 수 있는 IP 주소를 순서대로 생성하고, 그 IP 주소에 대해 스캐닝 작업을 하면, 목적지 네트워크의 과부하를 유발할 수 있으며, 일시적인 네트워크 오류에 의해 스캐닝 결과가 불일치할 가능성이 있으나, 본 선택적 실시 예에 따라 임의 순열(random circulation) 방식을 통해 IP 주소를 생성하면 전술한 문제점이 최소화되는 이점이 있다. 본 선택적 실시 예는, 패킷생성부(110)가 실행시킨 프로세스 내에 정의된 주소생성 스레드(address generating thread)에 의해서 수행될 수 있다.It is possible to generate an IP address that can be generated in the IPv4 address space in order and to scan the IP address in the same manner as in the prior art, which may cause an overload of the destination network and a possibility that the scanning result is inconsistent due to a temporary network error However, if an IP address is generated through a random circulation scheme according to this alternative embodiment, the above-described problem is minimized. This optional embodiment can be performed by an address generating thread defined in the process executed by the
패킷생성부(110)는 위와 같은 과정을 통해 생성한 복수의 IP 주소로 패킷을 생성하여 송신한다. 패킷생성부(110)는 각 IP 주소로 패킷을 생성하여 송신할 때, 각 IP 주소에 위치한 장치의 장치정보를 스캐닝하는 동안, 변경되지 않는 이더넷 헤더(ethernet header)의 체크섬(check sum)을 제거하여, 리눅스 커널(Linux Kernel)이 모든 패킷마다 불필요한 점검을 하는 것을 방지함으로써, 리눅스 커널의 오버헤드를 감소시킨다. 패킷생성부(110)는 전술한 주소생성 스레드와는 별개의 스레드를 통해서 이더넷 헤더의 체크섬을 제거하는 작업이 수행되도록 한다.The
이어서, 응답정보산출부(130)는 복수의 IP 주소로 송신된 패킷에 대응되는 응답패킷을 수신하고, IP 주소별로 수신된 응답패킷을 통합한 응답정보를 산출한다. 응답패킷은 그 IP 주소에 해당하는 사물인터넷 장치의 장치정보를 포함하고, 응답정보는 패킷생성부(110)에 의해 생성된 모든 IP 주소에 해당하는 사물인터넷 장치들의 장치정보를 포함한다. The response
실시 예에 따라서, 전술한 것과 달리, 사물인터넷 장치들로부터 송신되는 응답패킷은 장치정보를 송신하기에 앞서 통신체계를 확립하기 위한 확인정보만 포함할 수도 있다. 이 경우, 추후에 반응형 스캔 스레드에서 다시 한번 사물인터넷 장치에게 장치정보의 송신을 요청하게 된다.According to the embodiment, unlike the above, the response packet transmitted from the object Internet devices may contain only confirmation information for establishing the communication system prior to transmitting the device information. In this case, the response type scan thread requests the object Internet device to send the device information again once more.
일반적으로, 원격지에 있는 장치간의 패킷의 송수신은 전송 제어 프로토콜(TCP: Transmission Control Protocol)에 의하므로, 이를 기초로 설명하면, 패킷생성부(110)가 패킷을 생성하여 각 IP 주소에 송신할 때의 각 패킷은 동기화 요청메시지(SYN)에 해당한다. 동기화 요청메시지(SYN)를 수신한 각 IP 주소에 대응되는 사물인터넷 장치는 동기화 승인메시지(SYN-ACK)를 생성하여 응답정보산출부(130)에 송신한다. 패킷생성부(110) 또는 응답정보산출부(130)는 3-way 핸드셰이킹(handshaking)에 따라, 승인메시지(ACK)를 각 사물인터넷 장치에 송신해야 하나, 본 발명에서는 승인 메시지를 보내지 않고 동기화를 위한 통신을 종료하며, 이는 최소한의 패킷 교환으로 사물인터넷 장치의 응답여부를 검증할 수 있도록 해준다.In general, the transmission and reception of packets between remote devices is based on a transmission control protocol (TCP). Therefore, when the
선택적 일 실시 예로서, 응답정보산출부(130)는 응답패킷을 커널(kernel) 영역을 통과하여 사용자단에서 처리하는 방식을 통해서, 응답정보를 산출할 수도 있다. 본 선택적 실시 예에 따르면, 응답패킷을 처리하기 위해서 매번 복사하는 과정이 생략되어, 응답정보산출부(130)의 오버헤드를 줄일 수 있다.In an alternative embodiment, the response
도 5는 응답정보산출부가 응답패킷을 커널 영역을 통과시켜 사용자단에서 처리하는 것을 도식적으로 나타낸 도면이다.5 is a diagram schematically showing that the response information calculation unit passes the response packet through the kernel area and processes it at the user end.
도 5를 참조하면, 응답패킷이 하드웨어(510) 및 커널 영역(530)을 그대로 통과하여 라이브러리(550)를 거쳐서 바로 사용자단(570)에서 처리되는 것을 알 수 있다. 여기서, 사용자단(570)은 응답패킷을 라이브러리를 통하여 수신하고, 응답패킷의 데이터 처리결과를 공유하는 적어도 하나 이상의 어플리케이션으로 구성된다.Referring to FIG. 5, it can be seen that the response packet passes through the
도 5에서 라이브러리(550)는 데이터 플레인 가속화(DPA: Data Plane Acceleration)기술에 따른 DPA 라이브러리일 수도 있다. 데이터 플레인 가속화 기술의 예는 이미 공개된 문헌(선행기술문헌 중 비특허문헌 목차에 기재된 문헌)에 다양하게 기재되어 있으므로, 이에 대한 자세한 설명은 생략하기로 한다.In FIG. 5, the
이하에서는, 도 3에 대한 설명을 이어서 하기로 한다.Hereinafter, description on Fig. 3 will be described.
분할처리부(150)는 응답정보산출부(130)가 산출한 응답정보를 미리 설정된 프로세스의 수에 따라 분할하고, 분할된 응답정보를 각 프로세스에 포함된 복수의 스레드를 통해서 분할처리한다.The
먼저, 분할처리부(150)는 응답정보를 응답정보산출부(130)로부터 수신하고, 응답정보를 프로세스의 수에 따라 분할한다. 프로세스의 수는 미리 설정된 값으로서, 본 발명에 따른 시스템의 관리자에 의해서 특정 시점에서 최적의 값으로 변경될 수도 있고, 또한, 다른 예로서, 분할처리부(150)에 포함된 연산장치가 응답정보의 크기를 기초로 하여, 응답정보를 분할하여 처리하기에 적절한 프로세스의 수를 임의로 결정할 수도 있다.First, the
프로세스(process)는 분할처리부(150)에 미리 저장되어 있는 응답정보처리 프로그램이 실행되면, 적어도 하나 이상 생성되어 프로그램의 코드 또는 스크립트에 따른 작업을 수행한다. 분할처리부(150)는 프로세스의 수가 몇 개인지 파악하고, 응답정보를 프로세스의 수에 따라 분할한다. 예를 들어, 응답정보의 크기가 1기가바이트(giga bytes)짜리 파일이고, 4개의 프로세스가 있다면, 각 프로세스가 담당하는 분할된 응답정보의 크기는 250메가바이트(mega bytes)가 될 수 있다. 각 프로세스는 독립적이고, 별개의 메모리를 차지하므로, 각 프로세스의 특성에 따라 서로 다른 작업량을 할당받아 수행할 수도 있다.When a response information processing program stored in advance in the
이어서, 분할처리부(150)는 분할된 응답정보를 각 프로세스에 포함된 복수의 스레드를 통해서 처리하도록 한다. 프로세스 내부에는 적어도 하나 이상의 스레드(thread)가 포함된다. 스레드는 프로세스 내부에 존재하는 일련의 실행코드로서, 프로세스가 생성될 때 하나의 주 스레드(main thread)가 생성되어 대부분의 작업을 처리하고, 주 스레드가 종료되면, 프로세스도 종료된다. 본 발명에서는 멀티스레드(multi thread)방식을 통해서 응답정보를 처리하며, 멀티스레드는 멀티프로세스와는 달리 스레드간에 프로세스내의 메모리를 공유하여 사용할 수 있어서, 전환속도가 우수하고, 분할처리부의 CPU가 멀티코어 CPU(Central Processing Unit)일 경우, 각각의 CPU마다 스레드를 하나씩 담당하도록 하여 전체적인 작업속도를 높이는 것이 가능하다.Subsequently, the
선택적 일 실시 예로서, 분할처리부(150)는 응답정보를 서로 다른 크기로 분할하되, 스레드가 분할처리하는 분할된 응답정보의 크기는 모두 동일할 수도 있다. 전술한 과정을 통해서 분할처리부(150)는 응답패킷을 하나로 통합한 응답정보를 프로세스의 수로 분할하며, 이 분할과정에서 분할처리부(150)는 응답정보를 서로 다른 크기로 분할한다. 이때, 분할처리부(150)가 응답정보를 서로 다른 크기로 분할하는 기준은 여러가지가 될 수 있다. 일 예로서, 분할처리부(150)는 프로세스가 사용하는 메모리의 크기를 기초로 하여 응답정보를 서로 다른 크기로 분할할 수 있다. 즉, 80MB의 메모리를 사용하는 프로세스가 처리하는 응답정보의 크기는 40MB의 메모리를 사용하는 프로세스가 처리하는 응답정보의 크기의 두 배가 되도록, 응답정보가 서로 다른 크기로 분할될 수 있다.In an alternative embodiment, the
일단, 위와 같은 과정을 통해서 프로세스별로 분할된 응답정보가 할당되고 나면, 프로세스내에 생성된 복수의 스레드는 분할처리부(150)에 의해 분할된 응답정보를 재차 스레드의 수로 분할하여 처리한다. 일 예로서, 50MB의 응답정보를 처리하는 프로세스내에 5개의 스레드가 생성되어 있다면, 각 스레드는 10MB의 응답정보를 처리하게 된다.Once the divided response information is allocated to each process through the above process, the plurality of threads generated in the process divides the response information divided by the
도 6은 복수의 프로세스내에 생성된 복수의 스레드가 응답정보를 분할하여 처리하는 구조를 도식화한 도면이다.6 is a diagram showing a structure in which a plurality of threads generated in a plurality of processes divide and process response information.
도 6은 도 1에서 설명한 중복적인 핑거프린팅 프로세스로 인한 시스템의 성능병목현상을 방지하기 위해서 고안된 구조로서, 설명의 편의를 위해서, 도 1 및 도 3을 참조하여 설명하기로 한다.FIG. 6 is a structure designed to prevent the performance bottleneck of the system due to the redundant fingerprinting process described in FIG. 1, and will be described with reference to FIGS. 1 and 3 for convenience of explanation.
먼저, 응답정보는 IP 주소를 스캔한 결과로서 생성되는 정보로서, 인터넷에서 데이터를 주고 받을 때에 데이터를 표현하는 방법 중 가장 일반적인 제이슨(JSON : JavaScript Object Notation)포맷이 될 수 있다. 응답정보는 분할처리부(150)에 의해서, 프로세스의 수만큼 분할되고, 분할된 응답정보는 서로 다른 크기를 가질 수 있다.First, the response information is generated as a result of scanning an IP address. The response information may be the JSON (JavaScript Object Notation) format, which is the most common method of representing data when data is exchanged on the Internet. The response information is divided by the number of processes by the
각 프로세스에 할당된 응답정보는 프로세스내에 생성된 복수의 스레드에 의해서 처리된다. 보다 구체적으로, 프로세스내의 스레드는 분할된 응답정보에 대해서 데이터 검색(search)의 부하를 감소시키기 위한 인덱싱(indexing) 작업 및 데이터 파싱(parsing)의 부하를 감소시키기 위한 포맷변환 작업을 수행한다. 복수의 프로세스에서의 복수의 스레드에 의한 인덱싱 작업 및 포맷변환 작업을 수행하기 위한 고속병렬구조(610)는 도 1에서 설명한 각 프로세스에서의 성능병목현상을 방지하기 위한 구조이다.The response information assigned to each process is processed by a plurality of threads created in the process. More specifically, a thread in the process performs an indexing operation to reduce the load of data search for the divided response information and a format conversion operation to reduce the load of data parsing. The fast
이하에서는, 고속병렬구조(610)에서의 프로세스 1의 반응형스캔 스레드 1(이하, "대상 스레드")의 처리과정에 대해서 기술하기로 한다. 분할처리부(150)는 응답정보를 프로세스의 수인 10개로 분할하여, 각 프로세스에 할당한다. 프로세스 1 내지 프로세스 10은 프로세스내에 복수의 스레드를 생성하고, 할당받은 응답정보가 복수의 스레드에 의해 처리되도록 한다. Hereinafter, the process of the reactive scan thread 1 (hereinafter, "target thread") of the
일 예로서, 대상 스레드는 프로세스별로 분할된 응답정보를 재차 N으로 나눈 결과를 수신하여 처리한다. 대상 스레드는 응답정보로부터 패킷생성부(110)로부터 패킷을 수신하고 난 뒤에 응답패킷을 송신한 사물인터넷 장치의 IP주소를 특정하고, 그 사물인터넷 장치로부터 운영체제 정보(장치정보)를 추가적으로 요청하여 수신한다. 대상 스레드는 운영체제 정보가 미리 저장되어 있는 규칙 파일(Rule File)에 정의된 필드 순서와 동일한 순서로 조정하고, 이 과정에서 수집된 운영체제 정보의 필드 수를 운영체제 정보의 메타데이터(metadata)로서 운영체제 정보에 추가한다. 여기서, 규칙 파일은 후술하는 핑거프린팅 프로세스에서 이용되는 참조파일로서, 배경기술에서 설명한 바 있다.As an example, the target thread receives and processes the result obtained by dividing the response information divided by the process N again. The target thread receives the packet from the
대상 스레드는 최종적으로 수집된 반응형 스캔 결과를 파싱(parsing)하여, 큐(queue)에 송신하며, 큐에는 복수의 스레드로부터 송신된 반응형 스캔 결과가 순서에 맞춰서 누적된다.The target thread finally parses and sends the collected reactive scan results to a queue, where the reactive scan results sent from the plurality of threads are accumulated in order.
대상 스레드가 운영체제 정보를 규칙 파일에 정의된 필드 순서와 동일한 순서로 조정하는 과정 및 수집된 필드의 수를 운영체제 정보의 메타데이터로 추가하는 과정은 핑거프린팅프로세스에서의 데이터 검색의 부하 감소를 위한 인덱싱 작업이며, 대상 스레드가 반응형 스캔 결과를 파싱하여 큐에 송신하는 과정은 핑거프린팅프로세서에서의 데이터 파싱 감소를 위한 포맷 변환 과정에 해당한다.The process of adjusting the operating system information in the same order as the field order defined in the rule file and the process of adding the number of collected fields to the meta data of the operating system information are performed by indexing for load reduction of data retrieval in the fingerprinting process The process of parsing the reactive scan result by the target thread and transmitting the result to the queue corresponds to a format conversion process for reducing data parsing in the fingerprinting processor.
도 7은 응답정보가 고속병렬구조에서의 프로세스내에 생성된 스레드에서 처리되기 위해서 스레드에 할당되는 과정을 도식화한 도면이다.7 is a diagram illustrating a process in which response information is assigned to a thread to be processed in a thread created in a process in a fast parallel structure.
도 7을 참조하면, IP 스캔결과파일 1(710), 프로세스 1(730), IP 스캔결과파일 N(750), 프로세스 N(770)을 포함하는 것을 알 수 있으며, 설명의 편의를 위해서, 도 3을 참조하여 설명하기로 한다.Referring to FIG. 7, it can be seen that IP
먼저, IP 스캔결과파일 1(710)은 분할처리부(150)에 의해서 프로세스의 수에 따라서 분할된 응답정보 중 하나를 의미한다. 분할처리부(150)는 응답정보를 프로세스의 수인 N개로 분할하고, 분할된 응답정보의 크기는 각 프로세스가 차지하는 메모리에 따라서 서로 다를 수 있다. 도 7에서 IP 스캔결과파일 1(710)의 크기는 125MB이다.First, the IP
프로세스 1(730)은 IP 스캔결과파일 1(710)을 처리한다. 프로세스 1(730)은 100개의 반응형 스캔스레드를 생성하고, 각 스레드가 IP 스캔결과파일 1(710)을 분할하여 처리하도록 제어한다. 보다 구체적으로, 프로세스 1(730)은 IP 스캔결과파일 1(710)을 누락 또는 중복없이 균등하게 처리할 수 있도록, IP 스캔결과파일 1(710)의 크기를 스레드의 수인 100으로 나누고, 그 크기만큼의 오프셋(offset)으로 파일에 접근하여 처리하도록 제어한다. 일 예로서, 프로세스 1(730)내에 생성된 반응형 스캔스레드 1은 IP 스캔결과파일 1(710)의 0MB에서 1.25MB까지의 구간을 할당받아서 처리하고, 프로세스 1(730)내에 생성된 반응형 스캔스레드 100은 IP 스캔결과파일 1(710)의 123.75MB부터 125MB까지의 구간을 할당받아서 처리한다.
IP 스캔결과파일 N(750)은 분할처리부(150)에 의해서 프로세스의 수에 따라서 분할된 응답정보 중 IP 스캔결과파일 1(710)과 서로 다른 하나를 의미한다. 도 7에서 IP 스캔결과파일 N(750)의 크기는 120MB이다.The IP scan
프로세스 N(770)은 IP 스캔결과파일 N(750)을 처리한다. 프로세스 N(770)은 100개의 반응형 스캔스레드를 생성하고, 각 스레드가 IP 스캔결과파일 N(750)을 분할하여 처리하도록 제어한다. 일 예로서, 프로세스 N(770)내에 생성된 반응형 스캔스레드 2는 IP 스캔결과파일 N(750)의 1.2MB에서 2.4MB까지의 구간을 할당받아서 처리하고, 프로세스 N(770)내에 생성된 반응형 스캔스레드 100은 IP 스캔결과파일 N(750)의 123.8MB부터 125MB까지의 구간을 할당받아서 처리한다.Process N770 processes the IP scan result file N (750). Process N770 generates 100 reactive scan threads and controls each thread to divide and process IP scan
도 7에 도시된 것과 같이, 프로세스가 차지하는 메모리 등에 따라서 프로세스별로 처리하는 분할된 응답정보의 크기는 서로 다를 수 있고, 같은 프로세스내에서 생성되어 반응형 스캔 작업을 수행하는 반응형 스캔스레드가 처리하도록 할당받는 응답정보의 크기는 서로 동일하다. 프로세스내의 반응형 스캔스레드들은 응답정보로부터 IP 주소를 파악하고, 그 IP 주소에 해당하는 사물인터넷 장치와 추가적인 통신을 거쳐서 운영체제 정보를 수신하고, 핑거프린팅 프로세스를 일괄적으로 진행하기 위해서, 인덱싱 및 파싱 작업을 수행하게 된다.As shown in FIG. 7, the size of the divided response information processed by the process may be different according to the memory occupied by the process, etc., and may be generated by a reactive scan thread that is generated in the same process and performs a reactive scan operation The size of the response information to be allocated is the same. The responsive scan threads in the process receive the IP address from the response information, receive the operating system information through the additional communication with the object Internet device corresponding to the IP address, and perform the indexing and parsing And perform the operation.
이하에서는, 도 3에 대한 설명을 계속하기로 한다.The description with reference to FIG. 3 will be continued below.
장치정보파악부(170)는 분할처리된 응답정보를 복수의 핑거프린팅 프로세스를 통해서 처리한 결과를 기초로 하여 응답패킷을 송신한 각 장치들의 장치정보를 파악한다.The device
먼저, 장치정보파악부(170)는 분할처리부(150)로부터 복수의 스레드를 통해서 분할처리된 응답정보를 수신한다. 여기서, 분할처리된 응답정보는 복수의 스레드에 의해서 핑거프린팅 프로세스를 진행하기 위한 인덱싱 및 파싱이 완료된 정보이며, 핑거프린팅 프로세스에서의 규칙 파일과의 매칭을 통해서 응답패킷을 보낸 사물인터넷 장치들의 장치정보가 파악될 수 있다.First, the device
핑거프린팅 프로세스에서는 분할처리된 응답정보를 미리 저장되어 있는 규칙 파일과 매칭되는 결과가 있는지 검색하는 방식으로 응답패킷을 보낸 사물인터넷 장치들의 장치정보가 파악된다. 도 1의 기존 구조에서의 핑거프린팅 프로세스에 따르면, 반응형 스캔 결과에서 데이터를 파싱하고, 그 파싱 결과를 하나의 문자열 변수로 만든 후, 규칙 파일의 모든 내용과 문자열 비교 연산을 하게 되어 성능의 병목현상이 발생하지만, 본 발명에 따르면, 도 6에서 설명한 고속 병렬 구조에 따라 복수의 스레드가 핑거프린팅 프로세스를 위한 사전 작업으로서, 데이터 검색의 부하 감소를 위한 인덱싱 작업 및 데이터 파싱의 부하 감소를 위한 포맷 변환을 수행함으로써, 핑거프린팅 프로세스가 진행될 때에 성능의 병목현상(입출력이 지연되면서 처리속도가 현저히 느려지는 현상)이 방지된다.In the fingerprinting process, the device information of the destination Internet devices that send the response packet is determined by searching for a result matching the stored rule file with the previously stored response information. According to the fingerprinting process in the existing structure of FIG. 1, the data is parsed from the response-type scan result, the parsing result is made into one string variable, and then the string comparison operation is performed with all the contents of the rule file. However, according to the present invention, in accordance with the high-speed parallel structure described in FIG. 6, a plurality of threads are used as a preliminary task for the fingerprinting process, as a format for reducing the load of data parsing By performing the conversion, a performance bottleneck (a phenomenon in which the processing speed is significantly slowed down due to delay in input / output) is prevented when the fingerprinting process proceeds.
선택적 일 실시 예로서, 장치정보파악부(170)는 복수의 핑거프린팅 프로세스가 큐(queue)에 쌓인 분할처리된 응답정보를 병렬적으로 처리하고, 병렬적으로 처리된 응답정보를 통합하고, 통합된 응답정보를 기초로 각 장치들의 장치정보를 파악할 수도 있다.In an alternative embodiment, the device
도 8은 복수의 핑거프린팅 프로세스를 통해서 큐에 쌓인 정보가 병렬적으로 처리되는 과정을 도식화한 도면이다.FIG. 8 is a diagram illustrating a process in which information stored in a queue is processed in parallel through a plurality of fingerprinting processes.
먼저, IP 스캔결과는 고속병렬구조에서의 10개의 프로세스, 총 10에 n을 곱한 수의 스레드에 의해서 분할처리되고, 분할처리된 결과는 큐 1(queue 1)에 누적된다. 장치정보파악부(170)는 복수의 핑거프린팅프로세스를 생성하여, 큐 1에 쌓인 정보들을 병렬적으로 처리하도록 제어한다.First, the IP scan result is divided into 10 processes in a high-speed parallel structure, a total of 10 multiplied by n threads, and the divided processing result is accumulated in a
도 8에서 복수의 핑거프린팅 프로세스가 병렬적으로 진행될 때, 큐 1에 반응형 스캔스레드가 처리한 정보들이 규칙 파일에 정의된 필드 순서와 동일한 순서에 따라 데이터가 수집되었고, 규칙 파일과의 매칭과정에서 검색의 범위를 줄이기 위해 수집 필드의 개수가 분할처리된 응답정보의 메타데이터로서 포함되어 있으므로, 핑거프린팅 프로세스가 진행되는 과정에서 성능의 병목현상이 발생하지 않는다.In FIG. 8, when a plurality of fingerprinting processes are performed in parallel, data processed by the reactive scan thread in
반응형 스캔스레드가 처리한 정보는 파싱(parsing)이 완료되어 문자열 변수(string variable)로 표현되는데, 이러한 문자열 변수는 특정한 정보를 포함하고 있지만, 일반적으로 규칙 파일에 정의된 필드 순서와 동일한 순서가 아니다. 그리고, 반응형 스캔스레드가 처리한 정보에서 일부 필드에 대한 정보가 생략되어 있다면, 핑거프린팅 프로세스에서 그 필드에 대해서는 규칙 파일과 일일이 매칭을 하지 않아도 된다. The information processed by the responsive scan thread is parsed and represented as a string variable that contains specific information but generally has the same order as the field order defined in the rule file no. If the information about some fields is omitted from the information processed by the reactive scan thread, the fingerprinting process does not need to match the rule file with the rule file.
간단한 숫자로 예를 들면, 규칙 파일의 정보가 12345의 필드 순서에 따라 기록되어 있고, 반응형 스캔스레드가 처리하기 전의 어떤 장치의 장치정보가 531이라면, 반응형 스캔스레드는 531을 규칙 파일의 필드 순서에 맞춰서 135로 바꾸고, 수집된 필드 수는 5개 중 3개라는 정보를 추가로 산출하게 된다. 이후, 장치정보파악부(170)는 병렬적으로 처리되는 핑거프린팅 프로세스 중 하나가 규칙 파일과 반응형 스캔스레드가 처리한 정보를 매칭하는 방식으로 장치의 장치정보를 파악할 수 있으며, 이 과정은 기존의 핑거프린팅 프로세스와 달리, 필드의 순서 및 개수에 대한 정보가 이미 존재함에 따라, 성능의 병목현상없이 빠르게 처리될 수 있다.For example, if the information of the rule file is recorded in accordance with the field order of 12345, and the device information of a certain device before processing by the responsive scan thread is 531, the reactive scan thread writes 531 to the field The number of fields collected is changed to 135 according to the order, and the information that the number of collected fields is three out of five is additionally calculated. Thereafter, the device
복수의 핑거프린팅 프로세스가 병렬적으로 처리되고 나면, 장치정보파악부(170)는 각 프로세스가 처리한 결과를 큐 2(queue 2)에 보내도록 하고, 장치정보파악부(170)는 새로운 프로세스를 통해서 큐 2에 쌓인 순서를 기초로 하여 병렬적으로 처리된 응답정보를 하나로 통합한다. 위와 같은 과정으로 통합된 응답정보를 통해 장치정보파악부(170)는 패킷생성부(110)가 패킷을 보냈을 때, 응답패킷을 송신하고, 반응형 스캔스레드의 장치정보의 송신요청에 따라서 장치정보를 송신한 장치들의 장치정보를 일괄적으로 파악할 수 있으며, 파악된 장치정보를 각 장치에 대한 JSON 형태의 결과파일을 생성할 수도 있다.When a plurality of fingerprinting processes are processed in parallel, the device
본 발명에서, 복수의 핑거프린팅 프로세스를 전후로 하여 큐 1 및 큐 2를 통해 데이터를 처리하는 것은, 복수의 프로세스가 메모리를 공유하면서 빠른 속도로 입력되는 데이터를 처리하기 위함이다. 복수의 프로세스가 여러 개의 파일에 쓰기 작업을 할 경우, 빈번한 디스크 입출력(I/O)으로 인한 성능 저하가 발생하므로, 도 8에서 도시된 것 같은 메모리 큐(memory queue)로 처리하여 성능 저하 요소를 제거하는 것이다.In the present invention, processing data through
도 9는 본 발명에 따라 인터넷을 이용하여 장치정보를 수집하는 방법의 일 예의 흐름도를 도시한 도면이다.9 is a flowchart illustrating an example of a method of collecting device information using the Internet according to the present invention.
도 9에 따른 방법은 도 3에 따른 시스템에 의해 구현될 수 있으므로, 이하에서는, 도 3에서 설명한 내용과 중복된 설명은 생략하기로 하며, 설명의 편의를 위해서, 도 3을 참조하여 설명하기로 한다. 본 발명에 따른 시스템은 패킷생성부, 응답정보산출부, 분할처리부 및 장치정보파악부를 포함한다.Since the method according to FIG. 9 can be implemented by the system according to FIG. 3, the description of FIG. 3 will not be repeated below, and for convenience of description, do. The system according to the present invention includes a packet generation unit, a response information calculation unit, a division processing unit, and a device information determination unit.
먼저, 패킷생성부는 복수의 IP 주소를 생성하고 생성된 IP 주소로 패킷을 송신한다(S910). First, the packet generating unit generates a plurality of IP addresses and transmits the packet to the generated IP address (S910).
단계 S910의 선택적 일 실시 예로서, 패킷생성부는 순열(circulation) 및 미리 설정된 소수(prime number)를 변수로 하는 수학식을 통해서 IP 주소를 생성할 수도 있다. 본 선택적 실시 예에서 이용될 수 있는 수학식은 수학식 1에서 이미 설명한 바 있다.As an alternative embodiment of step S910, the packet generator may generate an IP address through a formula using a circulation and a preset prime number as a variable. The mathematical formulas that can be used in this optional embodiment have already been described in Equation (1).
이어서, 응답정보산출부는 패킷을 송신한 IP 주소의 장치로부터 응답패킷을 수신하고, IP 주소별로 수신된 응답패킷을 통합한 응답정보를 산출한다(S930).Then, the response information calculation unit receives the response packet from the device having the IP address of the packet that transmitted the packet, and calculates the response information combining the response packet received for each IP address (S930).
단계 S930의 선택적 일 실시 예로서, 응답정보산출부는 패킷을 송신한 IP 주소의 장치로부터 수신한 응답패킷을 커널 영역을 통과시켜서 사용자단에서 처리하는 방식으로 응답정보를 산출할 수도 있다.In an alternative embodiment of the step S930, the response information calculation unit may calculate the response information in such a manner that the response packet received from the device of the IP address to which the packet is transmitted passes through the kernel area and is processed at the user end.
단계 S930의 다른 선택적 일 실시 예로서, 응답정보산출부는 데이터 플레인 가속화(DPA)를 통해서 응답정보를 산출할 수도 있다.In another alternative embodiment of step S930, the response information calculator may calculate the response information via data plane acceleration (DPA).
단계 S930의 또 다른 선택적 일 실시 예로서, 패킷생성부가 IP 주소의 장치에게 송신한 패킷은 전송제어프로토콜의 동기화 요청패킷(SYN 패킷)이고, 응답정보산출부는 동기화 요청패킷에 대한 응답패킷으로서, 동기화 승인패킷(SYN-ACK 패킷)을 수신한 다음, 승인패킷(ACK)패킷을 재차 송신하지 않고, 리셋(RST)플래그를 통해서 해당 IP 주소의 장치와의 연결을 종료하여, 최소한의 패킷 교환으로 응답여부를 검증할 수도 있다.As another alternative embodiment of step S930, the packet transmitted by the packet generator to the apparatus of the IP address is a synchronization request packet (SYN packet) of the transmission control protocol, and the response information calculator is a response packet to the synchronization request packet, After receiving the acknowledgment packet (SYN-ACK packet), it does not send the acknowledge packet (ACK) packet again, ends the connection with the device of the corresponding IP address through the reset (RST) flag, It can also be verified.
분할처리부는 응답패킷을 통합한 응답정보를 미리 설정된 프로세스의 수에 따라서 분할하고, 분할된 응답정보를 각 프로세스에 포함된 복수의 스레드를 통해서 분할처리하도록 제어한다(S950).The division processing unit divides the response information combining the response packets according to the number of the preset processes, and controls the divided response information to be divided through a plurality of threads included in each process (S950).
먼저, 응답패킷을 통합한 응답정보는, 패킷생성부에서 생성한 수많은 IP 주소 중에서, 패킷생성부로부터 패킷을 수신하고 난 후, 응답패킷까지 송신한 장치의 IP 주소에 대한 정보를 포함한다. 분할처리부는 응답패킷을 통합한 응답정보를 미리 설정된 프로세스의 수에 따라서 분할하고, 분할된 응답정보가 프로세스 내에서 다시 한번 스레드의 수로 균등하게 분할되어 처리되도록 제어한다. The response information incorporating the response packet includes information on the IP address of the device that has transmitted the packet from the packet generation unit to the response packet among the numerous IP addresses generated by the packet generation unit. The division processing unit divides the response information in which the response packet is integrated according to the number of the preset processes, and controls the divided response information to be divided into the number of threads once again in the process.
이 과정에서, 각 스레드는 응답정보에 포함된 IP 주소스캐닝 결과를 통해서, IP 주소를 파악한 후, 그 IP 주소에 해당하는 장치로부터 장치정보를 수신한다. 스레드는 장치정보를 수신하고, 핑거프린팅프로세스에서 규칙 파일과의 빠른 매칭을 통해서 최종적으로 모든 장치에 대한 장치정보가 신속하게 파악될 수 있도록, 규칙 파일의 필드 순서와 동일하게 장치정보를 수집하고, 수집 필드의 개수를 각 장치정보의 메타데이터로서 추가로 기록한다.In this process, each thread obtains the IP address from the IP address scanning result included in the response information, and then receives the device information from the device corresponding to the IP address. The thread collects the device information in the same order as the field order of the rule file so that the device information on all the devices can be quickly identified through quick matching with the rule file in the fingerprinting process, The number of collection fields is additionally recorded as metadata of each device information.
단계 S950의 선택적 일 실시 예로서, 분할처리부가 응답패킷을 통합한 응답정보를 프로세스의 수에 따라 분할시킬 때, 분할된 응답정보의 크기가 서로 다르고, 스레드가 분할처리하는 분할된 응답정보의 크기는 모두 동일할 수도 있다. 본 선택적 실시 예는, 멀티프로세스와 멀티스레드의 기능적인 특성에 기인한다. 프로세스가 복수 존재할 때에는 각 프로세스는 독립적이고 별개의 메모리를 차지하지만, 프로세스 내에 복수의 스레드가 생성된 경우, 각 스레드는 프로세스내의 메모리를 공유하여 사용할 수 있어서 전환속도가 더 빠르기 때문이다. As an alternative embodiment of step S950, when the division processing unit divides the response information incorporating the response packet according to the number of processes, the size of the divided response information is different from the size of the divided response information divided by the thread, May all be the same. This optional embodiment is due to the multi-threaded and multi-thread functional characteristics. When there are a plurality of processes, each process occupies an independent and distinct memory, but when a plurality of threads are created in the process, each thread can share the memory in the process and use it because the conversion speed is faster.
분할처리부가 프로세스의 수에 따라 분할시킨 응답정보를 제1분할응답정보라고 호칭할 수 있고, 프로세스의 수에 따라 분할된 응답정보를 스레드의 수에 따라 균등하게 분할한 응답정보를 제2분할응답정보라고 호칭할 수 있다.The response information divided according to the number of processes of the division processing unit may be referred to as first divided response information and the response information obtained by dividing the divided response information in accordance with the number of threads equally according to the number of threads, Information.
장치정보파악부는 분할처리부의 각 스레드가 분할처리한 응답정보를 복수의 핑거프린팅 프로세스를 통해서 처리하고, 그 처리한 결과를 기초로 하여 응답패킷을 송신한 각 장치들의 장치정보를 파악한다(S970).The device information determination unit processes the response information divided by each thread of the division processing unit through a plurality of fingerprinting processes and grasps the device information of each device that transmitted the response packet based on the processed result (S970) .
핑거프린팅 프로세스는 IP 스캐닝 결과 및 반응형 스캔 스레드의 반응형 스캐닝 처리결과를 모두 수신하여, 해당 IP 주소의 장치정보(운영체제정보)를 파악하기 위한 과정이다. 빠른 데이터 처리를 위해서, 장치정보파악부는 복수의 핑거프린팅 프로세스를 생성하여 데이터를 처리하도록 하고, 핑거프린팅 프로세스가 처리한 결과를 기초로 하여 각 장치들의 장치정보를 파악한다.The fingerprinting process is a process for receiving both the IP scanning result and the reactive scanning process result of the reactive scan thread and grasping the device information (operating system information) of the corresponding IP address. For fast data processing, the device information acquiring unit generates a plurality of fingerprinting processes to process data, and grasps the device information of each device based on the result of processing by the fingerprinting process.
단계 S970의 선택적 일 실시 예로서, 장치정보파악부는 복수의 핑거프린팅 프로세스가 큐에 쌓인 응답정보를 병렬적으로 처리하고, 병렬적으로 처리된 응답정보를 통합하여, 통합된 응답정보를 기초로 각 장치들의 장치정보를 파악할 수도 있다. 본 선택적 실시 예에서, 장치정보파악부는 각 장치들의 장치정보를 JSON(JavaScript Object Notation)형태의 결과파일을 생성할 수 있다는 것을 도 8을 통해서 설명한 바 있다.As an alternative embodiment of step S970, the apparatus information obtaining unit may be configured such that the plurality of fingerprinting processes process queued response information in parallel, integrate the parallelly processed response information, The device information of the devices can be grasped. In this optional embodiment, the device information acquiring unit has been described with reference to FIG. 8 that device information of each device can be generated as a result file in the form of JSON (JavaScript Object Notation).
인터넷에 연결된 방대한 양의 사물인터넷 서비스 단말의 경우, CPU, 메모리 등의 성능상의 제한으로서 소프트웨어의 업데이트 및 관리에 한계가 있고, 제한적인 연산능력으로 인해서 보안 위협에 취약하다는 문제점이 있다. 사물인터넷 서비스 단말의 보안의 취약성을 발견하여 즉각적인 보안패치를 하기 위해서는, 인터넷에 연결되어 있는 단말의 정보가 빠른 주기로 수집, 관리되어야 한다. 본 발명에 따르면, 인터넷에 연결되어 있는 사물인터넷 장치들의 장치정보를 수많은 경량 스레드를 이용하여 수집처리하고, 별도의 병렬적인 프로세스를 통해서, 수집된 장치정보를 파악할 수 있게 되어, 인터넷상의 수많은 IoT 서비스 단말의 운영체제의 최신 업데이트 상태를 유지하도록 하는데에 도움을 주는 서비스를 제공할 수 있다.In the case of a large number of Internet service terminals connected to the Internet, there are limitations in the performance of software such as CPU and memory, and there is a problem in that software is vulnerable to security threats due to limited computing ability. In order to detect security weakness of Internet service terminal and make instant security patch, information of terminals connected to the Internet should be collected and managed at a fast cycle. According to the present invention, device information of object Internet devices connected to the Internet can be collected and processed by using a number of lightweight threads, and the collected device information can be grasped through a separate parallel process, It is possible to provide a service that helps maintain the latest update state of the operating system of the terminal.
이상 설명된 본 발명에 따른 실시 예는 컴퓨터상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.The embodiments of the present invention described above can be embodied in the form of a computer program that can be executed on various components on a computer, and the computer program can be recorded on a computer-readable medium. At this time, the medium may be a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floptical disk, , A RAM, a flash memory, and the like, which are specifically configured to store and execute program instructions.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.Meanwhile, the computer program may be designed and configured specifically for the present invention or may be known and used by those skilled in the computer software field. Examples of computer programs may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific acts described in the present invention are, by way of example, not intended to limit the scope of the invention in any way. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of such systems may be omitted. Also, the connections or connecting members of the lines between the components shown in the figures are illustrative of functional connections and / or physical or circuit connections, which may be replaced or additionally provided by a variety of functional connections, physical Connection, or circuit connections. Also, unless explicitly mentioned, such as " essential ", " importantly ", etc., it may not be a necessary component for application of the present invention.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.The use of the terms " above " and similar indication words in the specification of the present invention (particularly in the claims) may refer to both singular and plural. In addition, in the present invention, when a range is described, it includes the invention to which the individual values belonging to the above range are applied (unless there is contradiction thereto), and each individual value constituting the above range is described in the detailed description of the invention The same. Finally, the steps may be performed in any suitable order, unless explicitly stated or contrary to the description of the steps constituting the method according to the invention. The present invention is not necessarily limited to the order of description of the above steps. The use of all examples or exemplary language (e.g., etc.) in this invention is for the purpose of describing the present invention only in detail and is not to be limited by the scope of the claims, It is not. It will also be appreciated by those skilled in the art that various modifications, combinations, and alterations may be made depending on design criteria and factors within the scope of the appended claims or equivalents thereof.
Claims (15)
응답정보산출부가 상기 송신된 패킷에 대응되는 응답패킷을 수신하고, 상기 IP주소별로 수신된 응답패킷을 통합한 응답정보를 산출하는 응답정보산출단계;
분할처리부가 상기 산출된 응답정보를 미리 설정된 프로세스(process)의 수에 따라 분할하고, 상기 분할된 응답정보를 각 프로세스에 포함된 복수의 스레드(thread)를 통해 분할처리하는 분할처리단계; 및
장치정보파악부가 상기 분할처리된 응답정보를 복수의 핑거프린팅 프로세스를 통해서 처리한 결과를 기초로 하여 상기 응답패킷을 송신한 각 장치들의 장치정보를 파악하는 장치정보파악단계를 포함하고,
상기 패킷생성단계는,
패킷생성부가 실행시킨 프로세스 내에 정의되어 있는 주소생성스레드(address generating thread)에 의해 IPv4에 따라 생성될 수 있는 IP주소 중 유효한 IP주소의 범위가 파악되면, 상기 주소생성스레드가 상기 파악된 범위의 유효한 주소 중에서 미리 설정된 개수 내로 IP 주소를 생성하고,
상기 미리 설정된 소수는,
IPv4에서 정의될 수 있는 전체 IP주소의 수와 가장 가까운 소수이고,
상기 송신된 패킷은,
상기 패킷생성부가 변경되지 않는 이더넷 헤더(ethernet header)의 체크섬(check sum)을 제거한 패킷이고,
상기 분할처리단계는,
상기 복수의 스레드가 상기 분할된 응답정보에 대해서 데이터 검색의 부하를 감소시키기 위한 인덱싱(indexing) 작업 및 데이터 파싱(parsing)의 부하를 감소시키기 위한 포맷변환 작업을 수행하는 방식을 통해 상기 분할된 응답정보를 처리하고,
상기 생성된 복수의 IP주소는, 다음과 같은 수학식을 통해 결정되고,
상기 g는 상기 패킷생성부에 의해 결정된 상기 미리 설정된 소수보다 더 작은 수이고,
상기 p는 상기 미리 설정된 소수이고,
상기 및 는 각각 i번째 및 i+1번째 10진수로서, 상기 IP주소는 상기 i+1번째 10진수를 상기 IPv4에 따라 변환한 주소인 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 방법.Wherein the packet generating unit generates a plurality of Internet protocol (IP) addresses through a formula using a circulation and a preset prime number as variables, and transmits a packet to the generated plurality of IP addresses ;
A response information calculation step in which a response packet corresponding to the transmitted packet is received by the response information calculation unit and response information obtained by combining response packets received for each IP address is calculated;
A division processing step of dividing the calculated response information according to the number of predetermined processes and dividing the divided response information through a plurality of threads included in each process; And
And a device information grasping step of grasping device information of each device that has transmitted the response packet based on a result of processing the divided response information through a plurality of fingerprinting processes,
The packet generation step includes:
When a valid IP address range of an IP address that can be generated according to IPv4 is recognized by an address generating thread defined in a process executed by the packet generation unit, An IP address is generated within a predetermined number of addresses,
The predetermined number of prime numbers,
It is the closest prime number to the total number of IP addresses that can be defined in IPv4,
The transmitted packet is transmitted,
Wherein the packet generator is a packet from which a check sum of an Ethernet header not modified is removed,
Wherein the dividing step comprises:
Wherein the plurality of threads perform an indexing operation for reducing a load of data retrieval with respect to the divided response information and a format conversion operation for reducing a load of data parsing, Processing information,
The generated plurality of IP addresses are determined through the following equation,
G is a number smaller than the predetermined number of decimals determined by the packet generation unit,
Wherein p is the predetermined prime number,
remind And Is an i-th and (i + 1) -th decimal number, and the IP address is an address obtained by converting the i + 1-th decimal in accordance with the IPv4.
상기 응답정보산출단계는,
상기 수신된 응답패킷을 커널 영역을 통과시켜서 사용자단에서 처리하는 방식으로 상기 응답정보를 산출하는 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 방법.The method according to claim 1,
The response information calculation step may include:
And the response information is calculated in such a manner that the received response packet is passed through a kernel area and processed by a user terminal.
상기 응답정보산출단계는
데이터 플레인 가속화(DPA: Data Plane Acceleration)를 통해 상기 응답정보를 산출하는 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 방법.The method according to claim 1,
The response information calculation step
Wherein the response information is calculated through Data Plane Acceleration (DPA).
상기 분할처리단계는,
상기 분할된 응답정보의 크기가 서로 다르고,
상기 스레드가 분할처리하는 분할된 응답정보의 크기는 모두 동일한 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 방법.The method according to claim 1,
Wherein the dividing step comprises:
The sizes of the divided response information are different from each other,
Wherein the size of the divided response information divided by the thread is all the same.
상기 장치정보파악단계는,
복수의 핑거프린팅 프로세스가 큐(queue)에 쌓인 상기 분할처리된 응답정보를 병렬적으로 처리하고, 상기 병렬적으로 처리된 응답정보를 통합하고, 상기 통합된 응답정보를 기초로 각 장치들의 장치정보를 파악하는 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 방법.The method according to claim 1,
In the device information holding step,
A plurality of fingerprinting processes are performed in parallel on the divided response information stacked in a queue, the parallel processed response information is integrated, and the device information of each device based on the integrated response information The method comprising the steps of: acquiring device information using the Internet;
상기 송신된 패킷은 전송제어프로토콜(Transmission Control Protocol)의 SYN 패킷이고,
상기 응답정보산출단계는,
상기 SYN 패킷에 대한 응답패킷으로서 SYN-ACK 패킷을 수신하고, RST 플래그를 통해 상기 IP주소에 해당하는 장치와의 연결을 종료하는 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 방법.The method according to claim 1,
The transmitted packet is a SYN packet of a transmission control protocol,
The response information calculation step may include:
Receiving a SYN-ACK packet as a response packet for the SYN packet, and terminating the connection with the device corresponding to the IP address through the RST flag.
상기 송신된 패킷에 대응되는 응답패킷을 수신하고, 상기 IP주소별로 수신된 응답패킷을 통합한 응답정보를 산출하는 응답정보산출부;
상기 산출된 응답정보를 미리 설정된 프로세스(process)의 수에 따라 분할하고, 상기 분할된 응답정보를 각 프로세스에 포함된 복수의 스레드(thread)를 통해 분할처리하는 분할처리부; 및
상기 분할처리된 응답정보를 복수의 핑거프린팅 프로세스를 통해서 처리한 결과를 기초로 하여 상기 응답패킷을 송신한 각 장치들의 장치정보를 파악하는 장치정보파악부를 포함하고,
상기 패킷생성부가 실행시킨 프로세스 내에 정의되어 있는 주소생성스레드(address generating thread)에 의해 IPv4에 따라 생성될 수 있는 IP주소 중 유효한 IP주소의 범위가 파악되면, 상기 주소생성스레드가 상기 파악된 범위의 유효한 주소 중에서 미리 설정된 개수 내로 IP 주소를 생성하고,
상기 미리 설정된 소수는,
IPv4에서 정의될 수 있는 전체 IP주소의 수와 가장 가까운 소수이고,
상기 송신된 패킷은,
상기 패킷생성부가 변경되지 않는 이더넷 헤더(ethernet header)의 체크섬(check sum)을 제거한 패킷이고,
상기 분할처리부는,
상기 복수의 스레드가 상기 분할된 응답정보에 대해서 데이터 검색의 부하를 감소시키기 위한 인덱싱(indexing) 작업 및 데이터 파싱(parsing)의 부하를 감소시키기 위한 포맷변환 작업을 수행하는 방식을 통해 상기 분할된 응답정보를 처리하고,
상기 생성된 복수의 IP주소는, 다음과 같은 수학식을 통해 결정되고,
상기 g는 상기 패킷생성부에 의해 결정된 상기 미리 설정된 소수보다 더 작은 수이고,
상기 p는 상기 미리 설정된 소수이고,
상기 및 는 각각 i번째 및 i+1번째 10진수로서, 상기 IP주소는 상기 i+1번째 10진수를 상기 IPv4에 따라 변환한 주소인 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 시스템.A packet generating unit for generating a plurality of internet protocol (IP) addresses through a mathematical expression using a circulation and a predetermined prime number as parameters, and transmitting the packets to the generated plurality of IP addresses;
A response information calculation unit for receiving a response packet corresponding to the transmitted packet and calculating response information combining response packets received for each IP address;
A division processing unit for dividing the calculated response information according to the number of predetermined processes and dividing the divided response information through a plurality of threads included in each process; And
And a device information acquisition unit for acquiring device information of each device that has transmitted the response packet based on a result of processing the divided response information through a plurality of fingerprinting processes,
When a valid IP address range of an IP address that can be generated according to IPv4 is recognized by an address generating thread defined in a process executed by the packet generation unit, Generates an IP address within a predetermined number of valid addresses,
The predetermined number of prime numbers,
It is the closest prime number to the total number of IP addresses that can be defined in IPv4,
The transmitted packet is transmitted,
Wherein the packet generator is a packet from which a check sum of an Ethernet header not modified is removed,
The division processing unit,
Wherein the plurality of threads perform an indexing operation for reducing a load of data retrieval with respect to the divided response information and a format conversion operation for reducing a load of data parsing, Processing information,
The generated plurality of IP addresses are determined through the following equation,
G is a number smaller than the predetermined number of decimals determined by the packet generation unit,
Wherein p is the predetermined prime number,
remind And Is an i-th and (i + 1) -th decimal number, and the IP address is an address obtained by converting the (i + 1) -th decimal in accordance with the IPv4.
상기 응답정보산출부는,
상기 수신된 응답패킷을 커널 영역을 통과시켜서 사용자단에서 처리하는 방식으로 상기 응답정보를 산출하는 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 시스템.10. The method of claim 9,
Wherein the response information calculation unit comprises:
Wherein the response information is calculated in a manner that the received response packet is passed through a kernel area and processed by a user terminal.
상기 응답정보산출부는
데이터 플레인 가속화(DPA: Data Plane Acceleration)를 통해 상기 응답정보를 산출하는 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 시스템.10. The method of claim 9,
The response information calculation unit
Wherein the response information is calculated through Data Plane Acceleration (DPA).
상기 분할처리부는,
상기 분할된 응답정보의 크기가 서로 다르고,
상기 스레드가 분할처리하는 분할된 응답정보의 크기는 모두 동일한 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 시스템.10. The method of claim 9,
The division processing unit,
The sizes of the divided response information are different from each other,
Wherein the size of the divided response information divided by the thread is all the same.
상기 장치정보파악부는,
복수의 핑거프린팅 프로세스가 큐(queue)에 쌓인 상기 분할처리된 응답정보를 병렬적으로 처리하고, 상기 병렬적으로 처리된 응답정보를 통합하고, 상기 통합된 응답정보를 기초로 각 장치들의 장치정보를 파악하는 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 시스템.10. The method of claim 9,
Wherein the device-
A plurality of fingerprinting processes are performed in parallel on the divided response information stacked in a queue, the parallel processed response information is integrated, and the device information of each device based on the integrated response information And collecting device information using the Internet.
상기 송신된 패킷은 전송제어프로토콜(TCP: Transmission Control Protocol)의 SYN 패킷이고,
상기 응답정보산출부는,
상기 SYN 패킷에 대한 응답패킷인 SYN-ACK 패킷을 수신하고, RST 플래그를 통해 상기 IP주소에 해당하는 장치와의 연결을 종료하는 것을 특징으로 하는 인터넷을 이용하여 장치정보를 수집하는 시스템.10. The method of claim 9,
The transmitted packet is a SYN packet of a Transmission Control Protocol (TCP)
Wherein the response information calculation unit comprises:
Receiving a SYN-ACK packet, which is a response packet for the SYN packet, and terminating the connection with the device corresponding to the IP address through the RST flag.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170148318A KR101880705B1 (en) | 2017-11-08 | 2017-11-08 | System for collecting device information using internet and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170148318A KR101880705B1 (en) | 2017-11-08 | 2017-11-08 | System for collecting device information using internet and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101880705B1 true KR101880705B1 (en) | 2018-07-20 |
Family
ID=63103382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170148318A KR101880705B1 (en) | 2017-11-08 | 2017-11-08 | System for collecting device information using internet and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101880705B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102143593B1 (en) | 2019-10-18 | 2020-08-11 | 주식회사 모비젠 | Method for detecting anomaly of Internet of Things device based on autoencoder and system thereof |
KR102370661B1 (en) | 2021-07-02 | 2022-03-07 | 주식회사 모비젠 | Method of detecting abnormal traffic of IoT devices deployed in each household and system thereof |
CN116800618A (en) * | 2023-08-24 | 2023-09-22 | 明阳时创(北京)科技有限公司 | Network IP portrait construction method, system, medium and equipment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101374721B1 (en) * | 2012-12-27 | 2014-03-19 | 전자부품연구원 | Apparatus and method for data collection |
US20140078913A1 (en) * | 2012-09-20 | 2014-03-20 | Hewlett-Packard Development Company, L.P. | Data packet stream fingerprint |
KR101767454B1 (en) | 2015-11-12 | 2017-08-14 | 주식회사 엔젠소프트 | Method and apparatus of fraud detection for analyzing behavior pattern |
-
2017
- 2017-11-08 KR KR1020170148318A patent/KR101880705B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140078913A1 (en) * | 2012-09-20 | 2014-03-20 | Hewlett-Packard Development Company, L.P. | Data packet stream fingerprint |
KR101374721B1 (en) * | 2012-12-27 | 2014-03-19 | 전자부품연구원 | Apparatus and method for data collection |
KR101767454B1 (en) | 2015-11-12 | 2017-08-14 | 주식회사 엔젠소프트 | Method and apparatus of fraud detection for analyzing behavior pattern |
Non-Patent Citations (1)
Title |
---|
Electronics and Telecommunications Trends. Vol. 30, No. 2, April 2015, pp. 87-94, 최강일 선임연구원 외 1인 저술(14-000-05-001, 스마트 네트워킹 핵심 기술개발). |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102143593B1 (en) | 2019-10-18 | 2020-08-11 | 주식회사 모비젠 | Method for detecting anomaly of Internet of Things device based on autoencoder and system thereof |
KR102370661B1 (en) | 2021-07-02 | 2022-03-07 | 주식회사 모비젠 | Method of detecting abnormal traffic of IoT devices deployed in each household and system thereof |
CN116800618A (en) * | 2023-08-24 | 2023-09-22 | 明阳时创(北京)科技有限公司 | Network IP portrait construction method, system, medium and equipment |
CN116800618B (en) * | 2023-08-24 | 2023-10-20 | 明阳时创(北京)科技有限公司 | Network IP portrait construction method, system, medium and equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9906630B2 (en) | Processing data packets in performance enhancing proxy (PEP) environment | |
US8681819B2 (en) | Programmable multifield parser packet | |
US8009672B2 (en) | Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections | |
WO2023005773A1 (en) | Message forwarding method and apparatus based on remote direct data storage, and network card and device | |
US10630758B2 (en) | Method and system for fulfilling server push directives on an edge proxy | |
US20170054640A1 (en) | Device and method for establishing connection in load-balancing system | |
KR101880705B1 (en) | System for collecting device information using internet and method thereof | |
US20060112422A1 (en) | Data transfer using hyper-text transfer protocol (HTTP) query strings | |
EP2768200B1 (en) | Receiving data packets | |
CN110581812A (en) | Data message processing method and device | |
CN108833450B (en) | Method and device for preventing server from being attacked | |
US10178033B2 (en) | System and method for efficient traffic shaping and quota enforcement in a cluster environment | |
WO2016091402A1 (en) | Fragmented packet processing resource determination | |
EP2916516A1 (en) | Packet processing method and apparatus | |
CN108011850B (en) | Data packet reassembly method and apparatus, computer device, and readable medium | |
CN110545230B (en) | Method and device for forwarding VXLAN message | |
CN115499230A (en) | Network attack detection method and device, equipment and storage medium | |
CN113810337A (en) | Method, device and storage medium for network message duplicate removal | |
CN106209680B (en) | Information processing apparatus and information processing method | |
CN108595574B (en) | Database cluster connection method, device, equipment and storage medium | |
CN103746768A (en) | Data packet identification method and equipment thereof | |
EP3408989B1 (en) | Detecting malware on spdy connections | |
US20210306357A1 (en) | Sorting device, communication system, and sorting method | |
CN115550470B (en) | Industrial control network data packet analysis method and device, electronic equipment and storage medium | |
US10911362B2 (en) | System and methods to filter out noisy application signatures to improve precision of first packet classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
GRNT | Written decision to grant |