KR102130944B1 - Method for identifying device information based on named-entity recognition and apparatus thereof - Google Patents

Method for identifying device information based on named-entity recognition and apparatus thereof Download PDF

Info

Publication number
KR102130944B1
KR102130944B1 KR1020180140533A KR20180140533A KR102130944B1 KR 102130944 B1 KR102130944 B1 KR 102130944B1 KR 1020180140533 A KR1020180140533 A KR 1020180140533A KR 20180140533 A KR20180140533 A KR 20180140533A KR 102130944 B1 KR102130944 B1 KR 102130944B1
Authority
KR
South Korea
Prior art keywords
cpe
candidate
object name
cpes
entity
Prior art date
Application number
KR1020180140533A
Other languages
Korean (ko)
Other versions
KR20200056627A (en
Inventor
김환국
김태은
장대일
박성민
고은혜
나사랑
Original Assignee
한국인터넷진흥원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국인터넷진흥원 filed Critical 한국인터넷진흥원
Priority to KR1020180140533A priority Critical patent/KR102130944B1/en
Publication of KR20200056627A publication Critical patent/KR20200056627A/en
Application granted granted Critical
Publication of KR102130944B1 publication Critical patent/KR102130944B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries

Abstract

인터넷에 연결된 타깃 디바이스의 스캔 데이터를 분석하여 상기 타깃 디바이스와 연관된 CPE(Common Platform Enumeration) 정보를 식별하는 개체명 인식 기반의 디바이스 정보 식별 방법이 제공된다. 컴퓨팅 장치에 의하여 수행되는 개체명 인식 기반의 디바이스 정보 식별 방법은, 인터넷 연결된 디바이스에 송신한 요청(request)에 대한 응답(response)으로서 수신된 스캔 데이터를 분석하여, 복수의 검색 키워드를 얻는 단계, 상기 복수의 검색 키워드를 이용하여, 상기 디바이스와 관련된 복수의 후보 CPE를 얻는 단계, 상기 스캔 데이터에 대한 개체명 인식(Named-Entity Recognition)의 결과로 얻어진 개체명과 상기 후보 CPE와 연관된 키워드를 비교하는 단계 및 상기 비교 결과를 기초로 상기 복수의 후보 CPE 중 적어도 일부를 제거하여 상기 디바이스의 최종 CPE를 결정하는 단계를 포함할 수 있다.Provided is an object name recognition based device information identification method that analyzes scan data of a target device connected to the Internet to identify Common Platform Enumeration (CPE) information associated with the target device. A method for identifying device information based on object name recognition performed by a computing device includes analyzing received scan data as a response to a request sent to an Internet-connected device to obtain a plurality of search keywords, Obtaining a plurality of candidate CPEs associated with the device using the plurality of search keywords, and comparing the entity name obtained as a result of Named-Entity Recognition to the scan data with the keyword associated with the candidate CPE And determining a final CPE of the device by removing at least some of the plurality of candidate CPEs based on the step and the comparison result.

Description

개체명 인식 기반의 디바이스 정보 식별 방법 및 그 장치{METHOD FOR IDENTIFYING DEVICE INFORMATION BASED ON NAMED-ENTITY RECOGNITION AND APPARATUS THEREOF}METHOD FOR IDENTIFYING DEVICE INFORMATION BASED ON NAMED-ENTITY RECOGNITION AND APPARATUS THEREOF}

본 개시는 개체명 인식 기반의 디바이스 정보 식별 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 인터넷 연결된 디바이스의 스캔 데이터를 분석하여 상기 디바이스와 연관된 CPE(Common Platform Enumeration) 정보를 식별하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.The present disclosure relates to a method and apparatus for identifying device information based on object name recognition. More specifically, the present invention relates to a method for identifying common platform enumeration (CPE) information associated with the device by analyzing scan data of an internet-connected device, and an apparatus for performing the method.

소프트웨어에 내재되어 있는 보안 취약점은 컴퓨터 시스템을 공격하는데 쉽게 악용될 수 있다. 공격자들은 인터넷 스캔 도구를 가지고 보안이 취약한 웹 서비스(Web Service)를 식별하여 악의적인 행동을 수행할 수 있다. 따라서 보안 관리자들은 공개된 취약점을 파악하고 빠르게 대응할 필요가 있다. 특히, 최근에는 사물 인터넷(Internet of Things; IoT) 디바이스가 널리 보급됨에 따라 인터넷에 연결된 디바이스의 수가 급증하고 있다. 따라서, 인터넷에 연결된 수 많은 컴퓨터 시스템의 보안 취약점을 빠르게 파악하고 취약점 분석을 수행할 필요가 있다.The security vulnerabilities inherent in software can easily be exploited to attack computer systems. Attackers can use Internet scanning tools to identify vulnerable Web services and perform malicious actions. Therefore, security managers need to identify open vulnerabilities and respond quickly. In particular, as the Internet of Things (IoT) devices are widely spread in recent years, the number of devices connected to the Internet is rapidly increasing. Therefore, it is necessary to quickly identify security vulnerabilities of numerous computer systems connected to the Internet and perform vulnerability analysis.

미리 알려진 보안 취약점을 쉽게 공유하기 위해 여러 취약점 정보 소스들로부터 취약점 정보가 제공되고 있다. 예를 들면, NVD(National Vulnerability Database)는 CVE(Common Vulnerabilities and Exposures) 정보를 제공하고 있다. CVE 정보는 소프트웨어 패키지의 보안 취약점 정보에 대한 참조 방법을 제공하고 있다. CVE 정보는 취약점 식별자(Common Vulnerabilities and Exposures IDentifier; CVE-ID), 취약점 개요(Overview), 취약도 점수(Common Vulnerability Scoring System; CVSS), CPE(Common Platform Enumeration), 취약점 종류(Common Weakness Enumeration; CWE)를 포함하고 있다. 따라서, 디바이스에 대한 CPE 정보만 식별되면 이와 매칭된 CVE 정보가 조회함으로써 해당 디바이스의 보안 취약점이 획득될 수 있다.In order to easily share a known security vulnerability, vulnerability information is provided from various vulnerability information sources. For example, the National Vulnerability Database (NVD) provides Common Vulnerabilities and Exposures (CVE) information. CVE information provides a reference method for security vulnerability information in software packages. CVE information includes Common Vulnerabilities and Exposures IDentifier (CVE-ID), Vulnerability Overview, Vulnerability Scoring System (CVSS), Common Platform Enumeration (CPE), and Common Weakness Enumeration (CWE). ). Accordingly, if only CPE information for a device is identified, the security vulnerability of the corresponding device may be obtained by querying the CVE information matched with this.

올바른 취약점 정보를 획득하기 위해서는 무엇보다 디바이스의 CPE 정보가 정확하게 식별될 필요가 있다. 종래에는, 디바이스의 스캔 데이터로부터 키워드를 추출하고, 추출된 키워드를 이용하여 CPE 사전에서 해당 디바이스와 연관된 운영체제, 어플리케이션 제품명 등을 추출하였다.In order to obtain the correct vulnerability information, the CPE information of the device needs to be accurately identified. In the related art, keywords were extracted from the scan data of the device, and the operating system and application product name associated with the device were extracted from the CPE dictionary using the extracted keywords.

그러나, 어플리케이션 CPE는 'login’, ‘server’ 등과 같이 흔한 단어로 구성되는 제품명을 다수 포함하기 때문에, 종래의 방식으로 CPE를 식별하면, 해당 디바이스와 관련없는 제품명이 CPE로 추출되는 경우가 빈번하게 발생되었다. 특히, 어플리케이션 CPE가 전체 CPE의 약 86%(약 13만 개)를 차지하고 있을 정도로 그 수가 많기 때문에 잘못된 CPE들이 빈번하게 추출되었다. 즉, 종래의 방식은 CPE 식별의 정확도가 떨어지고, 이에 따라 디바이스의 보안 취약점 또한 올바르게 파악할 수 없다는 문제점이 있었다.However, since the application CPE includes a number of product names composed of common words such as'login' and'server', if the CPE is identified in a conventional manner, the product name not related to the device is frequently extracted into the CPE. Occurred. In particular, the number of wrong CPEs was frequently extracted because the number of application CPEs is so large that it occupies about 86% (about 130,000) of the total CPEs. That is, the conventional method has a problem in that the accuracy of CPE identification is poor, and accordingly, the security vulnerability of the device cannot be correctly identified.

또한, CPE 사전은 취약점이 발견된 유명 하드웨어, 소프트웨어 제조사 제품 목록만을 포함하고 있기 때문에 잘 알려지지 않은 제조사 제품(e.g. 국산 제품 등)이나 취약점이 발견되지 않은 제품 정보가 포함되어 있지 않다. 뿐만 아니라 신제품에 대한 제품명도 CPE 사전에 거의 포함되어 있지 않다. 따라서, 다양한 디바이스를 식별하기 위해서는, CPE 사전이 지속적으로 갱신될 필요가 있다.In addition, since the CPE dictionary contains only the list of famous hardware and software manufacturers whose vulnerabilities have been found, it does not contain information about unknown manufacturers' products (e.g. domestic products, etc.) or products whose vulnerabilities were not found. In addition, few product names for new products are included in the CPE dictionary. Therefore, in order to identify various devices, the CPE dictionary needs to be constantly updated.

한국공개특허 제10-2018-0094633호 (2018.08.24 공개)Korean Patent Publication No. 10-2018-0094633 (published August 24, 2018)

본 개시가 해결하고자 하는 기술적 과제는, 인터넷 연결된 디바이스의 스캔 데이터를 분석하여 상기 디바이스의 CPE 정보를 정확하게 식별하는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.The technical problem to be solved by the present disclosure is to provide a method for accurately identifying CPE information of the device by analyzing scan data of an internet-connected device, and an apparatus for performing the method.

본 개시가 해결하고자 하는 다른 기술적 과제는, CPE 사전을 이용하여 인터넷 연결된 디바이스의 CPE 정보를 식별함에 있어서, 오식별된 CPE를 제거할 수 있는 방법 및 그 방법을 수행하는 장치에 관한 것이다.Another technical problem to be solved by the present disclosure relates to a method for identifying CPE information of an Internet-connected device using a CPE dictionary, and a method for removing a misidentified CPE and an apparatus to perform the method.

본 개시가 해결하고자 하는 또 다른 기술적 과제는, 인터넷 연결된 디바이스의 스캔 데이터로부터 신규 CPE를 생성할 수 있는 방법 및 그 방법을 수행하는 장치에 관한 것이다.Another technical problem to be solved by the present disclosure relates to a method capable of generating a new CPE from scan data of an internet-connected device and an apparatus to perform the method.

본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.

상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 개체명 인식 기반의 디바이스 정보 식별 방법은, 컴퓨팅 장치에 의하여 수행되는 방법으로서, 인터넷 연결된 디바이스에 송신한 요청(request)에 대한 응답(response)으로서 수신된 스캔 데이터를 분석하여, 복수의 검색 키워드를 얻는 단계, 상기 복수의 검색 키워드를 이용하여, 상기 디바이스와 관련된 복수의 후보 CPE(Common Platform Enumeration)를 얻는 단계, 상기 스캔 데이터에 대한 개체명 인식(Named-Entity Recognition)의 결과로 얻어진 개체명과 상기 후보 CPE와 연관된 키워드를 비교하는 단계 및 상기 비교 결과를 기초로 상기 복수의 후보 CPE 중 적어도 일부를 제거하여 상기 디바이스의 최종 CPE를 결정하는 단계를 포함할 수 있다.In order to solve the above technical problem, a method for identifying device information based on object name recognition according to some embodiments of the present disclosure is a method performed by a computing device, in response to a request sent to an Internet-connected device ( analyzing received scan data as a response), obtaining a plurality of search keywords, using the plurality of search keywords, obtaining a plurality of candidate Common Platform Enumerations (CPEs) associated with the device, for the scan data Comparing an entity name obtained as a result of Named-Entity Recognition with keywords associated with the candidate CPE, and removing at least some of the plurality of candidate CPEs based on the comparison result to determine the final CPE of the device It may include the steps.

몇몇 실시예에서, 상기 스캔 데이터는, HTTP-body일 수 있다.In some embodiments, the scan data may be HTTP-body.

몇몇 실시예에서, 상기 복수의 후보 CPE는, 기 정의된 CPE 사전에서 상기 복수의 검색 키워드에 매칭되는 CPE일 수 있다.In some embodiments, the plurality of candidate CPEs may be CPEs matching the plurality of search keywords in a predefined CPE dictionary.

몇몇 실시예에서, 상기 최종 CPE를 결정하는 단계는, 상기 복수의 후보 CPE 중 제1 후보 CPE와 연관된 키워드에 상기 개체명이 하나도 포함되지 않은 경우 상기 제1 후보 CPE를 제거하는 단계를 포함할 수 있다.In some embodiments, the step of determining the final CPE may include removing the first candidate CPE when the keyword associated with the first candidate CPE among the plurality of candidate CPEs does not include any one of the entity names. .

몇몇 실시예에서, 상기 개체명 인식은, BI-LSTM-CRF(Bidirectional Long Short-Term Memory with a Conditional Random Field Layer) 모델에 기초하여 수행될 수 있다.In some embodiments, the entity name recognition may be performed based on a Bidirectional Long Short-Term Memory with a Conditional Random Field Layer (BI-LSTM-CRF) model.

몇몇 실시예에서, 상기 복수의 후보 CPE를 얻는 단계는, 상기 복수의 검색 키워드로 CPE 사전을 조회하고, 상기 조회 결과로 상기 복수의 후보 CPE를 얻는 단계를 포함하고, 상기 최종 CPE를 결정하는 단계는, 상기 개체명 인식의 결과로 얻어진 개체명 중 제1 개체명을 신규 CPE로 생성하는 단계 및 상기 신규 CPE를 상기 디바이스의 최종 CPE에 포함시키는 단계를 포함하되, 상기 제1 개체명은 상기 복수의 후보 CPE와 연관된 키워드에 등장하지 않은 것일 수 있다.In some embodiments, obtaining the plurality of candidate CPEs includes querying a CPE dictionary with the plurality of search keywords, and obtaining the plurality of candidate CPEs with the search result, and determining the final CPE The method includes generating a first object name as a new CPE among the object names obtained as a result of the object name recognition, and including the new CPE in the final CPE of the device, wherein the first object name is the plurality of object names. It may not have appeared in the keywords associated with the candidate CPE.

상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예에 따른 개체명 인식 기반의 디바이스 정보 식별 방법은, 컴퓨팅 장치에 의하여 수행되는 방법으로서, 인터넷 연결된 디바이스에 송신한 요청(request)에 대한 응답(response)으로서 수신된 스캔 데이터를 분석하여, 복수의 검색 키워드를 얻는 단계, 상기 복수의 검색 키워드를 이용하여, 상기 디바이스와 관련된 복수의 CPE(Common Platform Enumeration)를 얻는 단계, 상기 스캔 데이터에 대한 개체명 인식(Named-Entity Recognition)의 결과로 얻어진 개체명 중 제1 개체명을 신규 CPE로 생성하는 단계 및 상기 신규 CPE를 상기 디바이스와 관련된 상기 복수의 CPE에 더 포함시키는 단계를 포함하되, 상기 제1 개체명은 상기 복수의 CPE와 연관된 키워드에 등장하지 않은 것일 수 있다.A method for identifying device information based on object name recognition according to some embodiments of the present disclosure for solving the above-described technical problem is a method performed by a computing device, in response to a request (request) sent to an Internet-connected device ( analyzing received scan data as a response), obtaining a plurality of search keywords, using the plurality of search keywords, obtaining a plurality of Common Platform Enumerations (CPEs) associated with the device, and objects for the scan data Generating a first entity name as a new CPE among entity names obtained as a result of Named-Entity Recognition, and further including the new CPE in the plurality of CPEs associated with the device. 1 The entity name may not appear in keywords associated with the plurality of CPEs.

몇몇 실시예에서, 상기 복수의 검색 키워드를 얻는 단계는, 상기 디바이스의 포트 중에서 오픈 포트를 스캔하는 단계, 상기 스캔의 결과로 배너 문자열을 획득하는 단계 및 상기 배너 문자열로부터 상기 복수의 검색 키워드를 추출하는 단계를 포함할 수 있다.In some embodiments, the step of obtaining the plurality of search keywords includes: scanning an open port among ports of the device, obtaining a banner string as a result of the scan, and extracting the plurality of search keywords from the banner string It may include the steps.

몇몇 실시예에서, 상기 디바이스와 관련된 복수의 CPE를 얻는 단계는, 상기 개체명 인식의 결과로 얻어진 개체명과 상기 복수의 CPE와 연관된 키워드를 비교하는 단계 및 상기 비교 결과에 기초하여 상기 복수의 CPE 중 적어도 일부를 제거하는 단계를 포함할 수 있다.In some embodiments, the step of obtaining a plurality of CPEs associated with the device may include comparing an object name obtained as a result of the object name recognition with keywords associated with the plurality of CPEs, and based on the comparison result, among the plurality of CPEs. And removing at least a portion.

상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예에 따른 디바이스 정보 식별 장치는, 하나 이상의 인스트럭션들(instructions)을 저장하는 메모리 및 상기 하나 이상의 인스트럭션들을 실행함으로써, 인터넷 연결된 디바이스에 송신한 요청(request)에 대한 응답(response)으로서 수신된 스캔 데이터를 분석하여 복수의 검색 키워드를 획득하고, 상기 복수의 검색 키워드를 이용하여 상기 디바이스와 관련된 복수의 후보 CPE(Common Platform Enumeration)를 획득하며, 상기 스캔 데이터에 대한 개체명 인식(Named-Entity Recognition)의 결과로 얻어진 개체명과 상기 후보 CPE와 연관된 키워드를 비교하고, 상기 비교 결과를 기초로 상기 복수의 후보 CPE 중 적어도 일부를 제거하여 상기 디바이스의 최종 CPE를 결정하는 프로세서를 포함할 수 있다.A device for identifying device information according to some embodiments of the present disclosure for solving the above-described technical problem includes: a memory storing one or more instructions and one or more instructions by executing the one or more instructions, thereby transmitting a request ( A plurality of search keywords are obtained by analyzing the received scan data as a response to a request, and a plurality of candidate Common Platform Enumerations (CPEs) associated with the device are obtained by using the plurality of search keywords, and the The object name obtained as a result of Name-Entity Recognition for the scan data is compared with the keyword associated with the candidate CPE, and at least a part of the plurality of candidate CPEs are removed based on the comparison result to finalize the device. It may include a processor for determining the CPE.

상술한 기술적 과제를 해결하기 위한 본 개시의 또 다른 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 인터넷 연결된 디바이스에 송신한 요청(request)에 대한 응답(response)으로서 수신된 스캔 데이터를 분석하여, 복수의 검색 키워드를 얻는 단계, 상기 복수의 검색 키워드를 이용하여, 상기 디바이스와 관련된 복수의 후보 CPE(Common Platform Enumeration)를 얻는 단계, 상기 스캔 데이터에 대한 개체명 인식(Named-Entity Recognition)의 결과로 얻어진 개체명과 상기 후보 CPE와 연관된 키워드를 비교하는 단계 및 상기 비교 결과를 기초로 상기 복수의 후보 CPE 중 적어도 일부를 제거하여 상기 디바이스의 최종 CPE를 결정하는 단계를 실행시키기 위하여, 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.A computer program according to another embodiment of the present disclosure for solving the above-described technical problem is combined with a computing device and analyzes received scan data as a response to a request sent to an Internet-connected device By doing so, obtaining a plurality of search keywords, using the plurality of search keywords, obtaining a plurality of candidate Common Platform Enumerations (CPEs) associated with the device, Named-Entity Recognition for the scan data Computing the step of determining the final CPE of the device by comparing at least some of the plurality of candidate CPEs based on the result of comparing the subject name and the keyword associated with the candidate CPE, and based on the result of the comparison. It can be stored in a readable recording medium.

도 1은 본 개시의 몇몇 실시예들에 따른 디바이스 정보 식별 시스템을 나타내는 예시적인 구성도이다.
도 2 내지 도 4는 본 개시의 몇몇 실시예들에 따른 디바이스 정보 식별 장치를 나타내는 예시적인 블록도이다.
도 5는 본 개시의 몇몇 실시예들에 따른 개체명 인식 기반의 디바이스 정보 식별 방법을 나타내는 예시적인 흐름도이다.
도 6 및 도 7은 본 개시의 몇몇 실시예들에서 참조될 수 있는 디바이스의 스캔 데이터의 예시도이다.
도 8은 본 개시의 몇몇 실시예들에 따른 CPE 사전 기반 후보 CPE 획득 방법을 나타내는 예시적인 흐름도이다.
도 9 내지 도 11은 본 개시의 몇몇 실시예들에 따른 CPE 사전 기반 후보 CPE 획득 방법을 부연 설명하기 위한 예시도이다.
도 12는 본 개시의 몇몇 실시예들에서 참조될 수 있는 개체명 인식 모델의 구조를 나타내는 예시도이다.
도 13은 본 개시의 몇몇 실시예들에 따라 개체명 인식이 수행되는 과정을 나타내는 예시도이다.
도 14 및 도 15는 본 개시의 몇몇 실시예들에 따른 오식별 CPE 제거 방법을 설명하기 위한 예시도이다.
도 16은 본 개시의 다른 몇몇 실시예들에 따른 개체명 인식 기반의 디바이스 정보 식별 방법을 나타내는 예시적인 흐름도이다.
도 17은 본 개시의 몇몇 실시예들에 따른 신규 CPE 생성 방법을 설명하기 위한 예시도이다.
도 18은 본 개시의 몇몇 실시예들에 따른 개체명 인식 모델의 학습 방법을 설명하기 위한 예시도이다.
도 19는 본 개시의 다양한 실시예들에 따른 장치를 구현할 수 있는 예시적인 컴퓨팅 장치를 나타내는 예시적인 하드웨어 구성도이다.
1 is an exemplary configuration diagram illustrating a device information identification system according to some embodiments of the present disclosure.
2 to 4 are exemplary block diagrams illustrating an apparatus for identifying device information according to some embodiments of the present disclosure.
5 is an exemplary flowchart illustrating a method for identifying device information based on object name recognition according to some embodiments of the present disclosure.
6 and 7 are exemplary views of scan data of a device that may be referenced in some embodiments of the present disclosure.
8 is an exemplary flow diagram illustrating a CPE dictionary-based candidate CPE acquisition method according to some embodiments of the present disclosure.
9 to 11 are exemplary views for explaining a method of obtaining a CPE dictionary-based candidate CPE according to some embodiments of the present disclosure.
12 is an exemplary diagram illustrating a structure of an entity name recognition model that may be referred to in some embodiments of the present disclosure.
13 is an exemplary view illustrating a process in which object name recognition is performed according to some embodiments of the present disclosure.
14 and 15 are exemplary views illustrating a method for removing misidentified CPE according to some embodiments of the present disclosure.
16 is an exemplary flowchart illustrating a method for identifying device information based on object name recognition according to some other embodiments of the present disclosure.
17 is an exemplary diagram for describing a new CPE generating method according to some embodiments of the present disclosure.
18 is an exemplary view for explaining a method of learning an entity name recognition model according to some embodiments of the present disclosure.
19 is an exemplary hardware configuration diagram illustrating an example computing device capable of implementing an apparatus in accordance with various embodiments of the present disclosure.

이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.Hereinafter, preferred embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. Advantages and features of the present disclosure, and a method of achieving them will be apparent with reference to embodiments described below in detail together with the accompanying drawings. However, the technical spirit of the present disclosure is not limited to the following embodiments, but may be implemented in various different forms, and only the present embodiments allow the present disclosure to be complete, and common knowledge in the technical field to which the present disclosure pertains. It is provided to fully inform the holder of the scope of the present disclosure, and the technical spirit of the present disclosure is only defined by the scope of the claims.

각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.It should be noted that in adding reference numerals to the components of each drawing, the same components have the same reference numerals as possible, even if they are displayed on different drawings. In addition, in describing the present disclosure, when it is determined that a detailed description of related known configurations or functions may obscure the subject matter of the present disclosure, the detailed description will be omitted.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used in a sense that can be commonly understood by those skilled in the art to which this disclosure belongs. In addition, terms defined in the commonly used dictionary are not ideally or excessively interpreted unless specifically defined. The terminology used herein is for describing the embodiments and is not intended to limit the present disclosure. In the present specification, the singular form also includes the plural form unless otherwise specified in the phrase.

또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.Further, in describing the components of the present disclosure, terms such as first, second, A, B, (a), and (b) may be used. These terms are only for distinguishing the component from other components, and the nature, order, or order of the component is not limited by the term. When a component is described as being "connected", "coupled" or "connected" to another component, that component may be directly connected to or connected to the other component, but another component between each component It should be understood that elements may be "connected", "coupled" or "connected".

명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.As used herein, "comprises" and/or "comprising" refers to the elements, steps, operations and/or elements mentioned above, the presence of one or more other components, steps, operations and/or elements. Or do not exclude additions.

본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 하기로 한다.Prior to the description of the present specification, some terms used in the specification will be clarified.

본 명세서에서, CPE(Common Platform Enumeration)는 하드웨어, 운영체제 및 어플리케이션의 제품명 등을 공유하기 위해 미리 정해진 포맷으로 구성된 정보이다. CPE는 URL 방식으로 7개의 필드로 구성되며, 제조사, 제품명, 버전 등의 정보를 포함한다. CPE는 "cpe: /part : vendor : product : version : update : ~edition~sw_edition~target_sw~target_hw~other : language"와 같은 포맷을 갖는다. 예컨대, "Microsoft Internet Explorer 8.0.6001 Beta"는 "cpe:/a:microsoft:internet_explorer:8.0.6001:beta"와 같이 구성된다. CPE 포맷에서 part는 Application을 의미하는 'a', OS를 의미하는'o', Hardware를 의미하는 'h'로 구분된다. 또한, CPE 포맷에서 'sw_edition'은 online, special 등 배포판을 의미하고, 'target_sw'는 설치 대상 운영체제를 의미하고, 'target_hw'는 설치 대상 하드웨어를 의미한다.In this specification, CPE (Common Platform Enumeration) is information configured in a predetermined format to share hardware, operating system, and application product names. CPE is composed of 7 fields by URL method and includes information such as manufacturer, product name, and version. CPE has the format "cpe: /part: vendor: product: version: update: ~edition~sw_edition~target_sw~target_hw~other: language". For example, "Microsoft Internet Explorer 8.0.6001 Beta" is configured as "cpe:/a:microsoft:internet_explorer:8.0.6001:beta". In CPE format, parts are divided into'a' for application,'o' for OS, and'h' for hardware. In the CPE format,'sw_edition' refers to distributions such as online and special,'target_sw' refers to the operating system to be installed, and'target_hw' refers to the hardware to be installed.

본 명세서에서 인스트럭션(instruction)이란, 기능을 기준으로 묶인 일련의 명령어들로서 컴퓨터 프로그램의 구성 요소이자 프로세서에 의해 실행되는 것을 가리킨다.In this specification, an instruction is a series of instructions grouped based on a function and refers to a component of a computer program and executed by a processor.

이하, 본 개시의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.Hereinafter, some embodiments of the present disclosure will be described in detail according to the accompanying drawings.

도 1은 본 개시의 몇몇 실시예들에 따른 디바이스 정보 식별 시스템을 나타내는 예시적인 구성도이다.1 is an exemplary configuration diagram illustrating a device information identification system according to some embodiments of the present disclosure.

도 1애 도시된 바와 같이, 상기 디바이스 정보 식별 시스템은 적어도 하나의 IoT 디바이스(300-1 내지 300-n), 스캔 장치(200) 및 디바이스 정보 식별 장치(100)를 포함할 수 있다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 1에 도시된 디바이스 정보 식별 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 가령, 스캔 장치(200)와 디바이스 정보 식별 장치(100)는 동일한 물리적 컴퓨팅 장치 내의 서로 다른 로직(logic)의 형태로 구현될 수도 있다.As illustrated in FIG. 1, the device information identification system may include at least one IoT device 300-1 to 300-n, a scan device 200, and a device information identification device 100. However, this is only a preferred embodiment for achieving the object of the present disclosure, and of course, some components may be added or deleted as necessary. In addition, it is noted that each component of the device information identification system illustrated in FIG. 1 is functionally divided functional elements, and a plurality of components may be implemented in an integrated form in an actual physical environment. For example, the scan device 200 and the device information identification device 100 may be implemented in the form of different logic in the same physical computing device.

또한, 실제 물리적 환경에서 상기 각각의 구성 요소들은 복수의 세부 기능 요소로 분리되는 형태로 구현될 수도 있다. 예컨대, 디바이스 정보 식별 장치(100)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고, 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다. 이하, 상기 각각의 구성 요소에 대하여 설명한다.Further, in the actual physical environment, each of the components may be implemented in a form of being divided into a plurality of detailed functional elements. For example, the first function of the device information identification apparatus 100 may be implemented in the first computing device, and the second function may be implemented in the second computing device. Hereinafter, each of the components will be described.

상기 디바이스 정보 식별 시스템에서, IoT 디바이스(300-1 내지 300-n)는 식별 대상이 되는 타깃 디바이스이다. 도 1은 타깃 디바이스가 IoT 디바이스(300-1 내지 300-n)인 것을 예로써 도시하고 있으나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 즉, 타깃 디바이스는 인터넷에 연결된 모든 디바이스가 될 수 있다.In the device information identification system, the IoT devices 300-1 to 300-n are target devices to be identified. 1 illustrates the target device as an IoT device (300-1 to 300-n) by way of example, but the technical scope of the present disclosure is not limited thereto. That is, the target device can be any device connected to the Internet.

상기 디바이스 정보 식별 시스템에서, 스캔 장치(200)는 타깃 디바이스를 스캔하여 스캔 데이터(1)를 생성하는 컴퓨팅 장치이다.In the device information identification system, the scan device 200 is a computing device that scans a target device to generate scan data 1.

몇몇 실시예에서, 스캔 장치(200)는 타깃 디바이스의 오픈 포트(e.g. HTTP, FTP)를 스캔하여 스캔 데이터(1)를 생성할 수 있다. 이때, 스캔 데이터(1)는 오픈 포트를 통해 획득된 타깃 디바이스의 응답(response) 데이터로, 배너, HTTP response 등이 될 수 있다. 상기 배너는 해당 포트에 접속할 때, 타깃 디바이스가 응답으로 제공하는 웰컴 메시지를 의미한다. 상기 배너와 HTTP response의 일 예는 도 6 및 도 7을 참조하도록 한다.In some embodiments, the scan device 200 may scan the open port (e.g. HTTP, FTP) of the target device to generate scan data 1. At this time, the scan data 1 is response data of the target device acquired through the open port, and may be a banner, HTTP response, or the like. The banner means a welcome message provided by the target device in response when accessing the corresponding port. For an example of the banner and HTTP response, refer to FIGS. 6 and 7.

몇몇 실시예에서, 스캔 장치(200)는 타깃 디바이스의 제조사들 웹 페이지를 통해 디바이스 펌웨어 버전 정보나 보안 패치 정보 등을 얻어올 수도 있다.In some embodiments, the scan apparatus 200 may obtain device firmware version information, security patch information, and the like through the manufacturers' web pages of the target device.

상기 디바이스 정보 식별 시스템에서, 디바이스 정보 식별 장치(100)는 타깃 디바이스의 스캔 데이터(1)를 분석하여 상기 타깃 디바이스의 CPE 정보(3)를 식별하는 컴퓨팅 장치이다. 여기서, 상기 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop), 스마트폰(Smart Phone) 등이 될 수 있으나, 이에 국한되는 것은 아니며 컴퓨팅 기능 및 통신 기능이 구비된 모든 종류의 장치를 포함할 수 있다. 이하에서는 설명의 편의상, 디바이스 정보 식별 장치(100)를 식별 장치(100)로 약칭하도록 한다.In the device information identification system, the device information identification device 100 is a computing device that identifies CPE information 3 of the target device by analyzing scan data 1 of the target device. Here, the computing device may be a laptop, a desktop, a laptop, or a smart phone, but is not limited thereto and includes all types of devices equipped with computing and communication functions. can do. Hereinafter, for convenience of description, the device information identification device 100 will be abbreviated as the identification device 100.

몇몇 실시예에서, 식별 장치(100)는 CPE 사전 기반으로 타깃 디바이스의 스캔 데이터(1)를 분석하여 후보 CPE 정보를 식별할 수 있다. 또한, 식별 장치(100)는 상기 스캔 데이터로부터 개체명(named entity)을 추출하고 상기 개체명을 이용하여 상기 후보 CPE 중에서 오식별 CPE를 제거할 수 있다. 그렇게 함으로써, CPE 식별의 정확도가 크게 향상될 수 있다.In some embodiments, the identification apparatus 100 may identify candidate CPE information by analyzing the scan data 1 of the target device based on the CPE dictionary. Also, the identification device 100 may extract a named entity from the scan data and remove the misidentified CPE from the candidate CPEs using the entity name. By doing so, the accuracy of CPE identification can be greatly improved.

몇몇 실시예에서, 식별 장치(100)는 상기 추출된 개체명 중에서 상기 후보 CPE와 연관되지 않은 개체명을 신규 CPE로 생성할 수 있다. 그렇게 함으로써, CPE 사전에 없는 신규 CPE가 지속적으로 CPE 사전에 추가될 수 있다.In some embodiments, the identification device 100 may generate an entity name that is not associated with the candidate CPE among the extracted entity names as a new CPE. By doing so, new CPEs that are not in the CPE dictionary can be continuously added to the CPE dictionary.

식별 장치(100)에 대한 보다 자세한 설명은 도 2 이하의 도면을 참조하여 후술하도록 한다.A more detailed description of the identification device 100 will be described later with reference to the drawings of FIG. 2 and below.

도 1에 도시된 시스템의 구성 요소 중 적어도 일부는 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.At least some of the components of the system shown in FIG. 1 can communicate over a network. Here, the network is a wired/wireless network of any kind, such as a local area network (LAN), a wide area network (WAN), a mobile radio communication network, a Wibro (Wireless Broadband Internet), and the like. Can be implemented.

지금까지 도 1을 참조하여 본 개시의 몇몇 실시예에 따른 디바이스 정보 식별 시스템에 대하여 설명하였다. 이하에서는, 식별 장치(100)의 구성 및 동작에 대하여 도 2 내지 도 4를 참조하여 설명한다.So far, a device information identification system according to some embodiments of the present disclosure has been described with reference to FIG. 1. Hereinafter, the configuration and operation of the identification device 100 will be described with reference to FIGS. 2 to 4.

도 2는 본 개시의 몇몇 실시예들에 따른 식별 장치(100)를 나타내는 예시적인 블록도이고, 도 3은 식별 장치(100)의 동작 흐름을 추가로 도시하고 있다.2 is an exemplary block diagram illustrating the identification device 100 in accordance with some embodiments of the present disclosure, and FIG. 3 further illustrates the operation flow of the identification device 100.

도 2 및 도 3에 도시된 바와 같이, 식별 장치(100)는 입력부(110), 전처리부(130), CPE 식별부(150), 신규 CPE 생성부(170) 및 저장부(190)를 포함할 수 있다. 다만, 도 2에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 또한, 도 2에 도시된 식별 장치(100)의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 이하, 각 구성 요소에 대하여 설명한다.2 and 3, the identification device 100 includes an input unit 110, a pre-processing unit 130, a CPE identification unit 150, a new CPE generation unit 170 and a storage unit 190 can do. However, only components related to the exemplary embodiment of the present disclosure are illustrated in FIG. 2. Accordingly, a person skilled in the art to which the present disclosure belongs may recognize that other general-purpose components may be further included in addition to the components illustrated in FIG. 2. In addition, it is noted that each of the components of the identification device 100 illustrated in FIG. 2 is functionally divided functional elements, and a plurality of components may be implemented in an integrated form in an actual physical environment. Hereinafter, each component will be described.

입력부(110)는 스캔 데이터(1)를 입력받는다.The input unit 110 receives scan data 1.

다음으로, 전처리부(130)는 스캔 데이터(1)에 대한 전처리를 수행한다. 중복된 설명을 배제하기 위해, 전처리부(130)의 동작에 대한 자세한 설명은 도 5 내지 도 7, 도 9를 참조하여 후술하도록 한다.Next, the pre-processing unit 130 performs pre-processing on the scan data 1. In order to exclude the duplicate description, detailed description of the operation of the pre-processing unit 130 will be described later with reference to FIGS. 5 to 7 and 9.

다음으로, CPE 식별부(150)는 전처리된 스캔 데이터(9)에서 타깃 디바이스의 CPE 정보를 식별한다. 도 4에 도시된 바와 같이, CPE 식별부(150)는 사전 기반 CPE 식별부(151), 개체명 인식부(153) 및 CPE 결정부(155)를 포함할 수 있다.Next, the CPE identification unit 150 identifies CPE information of the target device from the pre-processed scan data 9. As shown in FIG. 4, the CPE identification unit 150 may include a dictionary-based CPE identification unit 151, an entity name recognition unit 153, and a CPE determination unit 155.

사전 기반 CPE 식별부(151)는 CPE 사전을 이용하여 전처리된 스캔 데이터(9)에서 타깃 디바이스의 후보 CPE를 식별한다. 사전 기반 CPE 식별부(151)의 동작에 대한 자세한 설명은 도 8 내지 도 11을 참조하여 후술하도록 한다.The dictionary-based CPE identification unit 151 identifies candidate CPEs of the target device from the scan data 9 preprocessed using the CPE dictionary. A detailed description of the operation of the dictionary-based CPE identification unit 151 will be described later with reference to FIGS. 8 to 11.

다음으로, 개체명 인식부(153)는 개체명 인식을 통해 전처리된 스캔 데이터(9)에서 타깃 디바이스와 연관된 개체명을 추출한다. 개체명 인식부(153)의 동작에 대한 자세한 설명은 도 12 및 도 13을 참조하여 후술하도록 한다.Next, the object name recognition unit 153 extracts the object name associated with the target device from the pre-processed scan data 9 through object name recognition. A detailed description of the operation of the entity name recognition unit 153 will be described later with reference to FIGS. 12 and 13.

다음으로, CPE 결정부(155)는 상기 추출된 개체명을 이용하여 복수의 후보 CPE 중 오식별 CPE를 제거하여 타깃 디바이스의 최종 CPE를 결정한다. 중복된 설명을 배제하기 위해, CPE 결정부(155)의 동작에 대한 자세한 설명은 도 5, 도 14 및 도 15를 참조하여 후술하도록 한다.Next, the CPE determination unit 155 determines the final CPE of the target device by removing the misidentified CPE among the plurality of candidate CPEs using the extracted object name. In order to exclude duplicate descriptions, a detailed description of the operation of the CPE determination unit 155 will be described later with reference to FIGS. 5, 14, and 15.

다음으로, 신규 CPE 생성부(170)는 개체명 인식 결과를 이용하여 타깃 디바이스와 연관된 신규 CPE를 생성한다. 중복된 설명을 배제하기 위해, 신규 CPE 생성부(170)에 대한 자세한 설명은 도 16 내지 도 18을 참조하여 후술하도록 한다.Next, the new CPE generating unit 170 generates a new CPE associated with the target device using the object name recognition result. In order to exclude the duplicate description, a detailed description of the new CPE generation unit 170 will be described later with reference to FIGS. 16 to 18.

저장부(190)는 CPE 사전, CVE 사전 및 개체명 인식 모델 등의 각종 정보를 저장하고 관리한다. 타깃 디바이스의 CPE 정보가 식별되면, CVE 사전을 통해 상기 타깃 디바이스의 취약점 정보가 제공될 수 있다.The storage unit 190 stores and manages various information such as a CPE dictionary, a CVE dictionary, and an object name recognition model. When the CPE information of the target device is identified, vulnerability information of the target device may be provided through a CVE dictionary.

참고로, 도 2 내지 도 4에 도시된 식별 장치(100)의 모든 구성 요소가 필수 구성 요소는 아닐 수도 있음에 유의하여야 한다. 즉, 본 개시의 다른 몇몇 실시예들에 따른 식별 장치(100)는 도 2 내지 도 4에 도시된 구성 요소 중 일부에 의해 구현될 수도 있다.For reference, it should be noted that not all components of the identification device 100 illustrated in FIGS. 2 to 4 may be required components. That is, the identification device 100 according to some other embodiments of the present disclosure may be implemented by some of the components illustrated in FIGS. 2 to 4.

도 2 내지 도 4의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.Each component of FIGS. 2 to 4 may mean software or hardware such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). However, the above components are not limited to software or hardware, and may be configured to be in an addressable storage medium, or may be configured to execute one or more processors. The functions provided in the above components may be implemented by more detailed components, or may be implemented as a single component that performs a specific function by combining a plurality of components.

지금까지 도 2 내지 도 4를 참조하여 본 개시의 몇몇 실시예들에 따른 식별 장치(100)의 구성 및 동작에 대하여 설명하였다. 이하에서는, 도 5 내지 도 18을 참조하여 본 개시의 다양한 실시예들에 따른 개체명 인식 기반의 디바이스 정보 식별 방법에 대하여 설명한다.So far, the configuration and operation of the identification device 100 according to some embodiments of the present disclosure have been described with reference to FIGS. 2 to 4. Hereinafter, a method for identifying device information based on object name recognition according to various embodiments of the present disclosure will be described with reference to FIGS. 5 to 18.

상기 디바이스 정보 식별 방법의 각 단계는 컴퓨팅 장치에 의해 수행될 수 있다. 다시 말하면, 상기 디바이스 정보 식별 방법의 각 단계는 컴퓨팅 장치의 프로세서에 의해 실행되는 하나 이상의 인스트럭션들로 구현될 수 있다. 상기 디바이스 정보 식별 방법에 포함되는 모든 단계는 하나의 물리적인 컴퓨팅 장치에 의하여 실행될 수도 있을 것이나, 상기 방법의 제1 단계들은 제1 컴퓨팅 장치에 의하여 수행되고, 상기 방법의 제2 단계들은 제2 컴퓨팅 장치에 의하여 수행될 수도 있다. 이하에서는, 상기 디바이스 정보 식별 방법의 각 단계가 식별 장치(100)에 의해 수행되는 것을 가정하여 설명을 이어가도록 한다. 다만, 설명의 편의를 위해, 상기 디바이스 정보 식별 방법에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다.Each step of the device information identification method may be performed by a computing device. In other words, each step of the device information identification method may be implemented with one or more instructions executed by a processor of a computing device. All the steps included in the device information identification method may be executed by one physical computing device, but the first steps of the method are performed by the first computing device, and the second steps of the method are second computing It can also be performed by the device. Hereinafter, it is assumed that each step of the device information identification method is performed by the identification device 100 to continue the description. However, for convenience of description, description of the operation subject of each step included in the device information identification method may be omitted.

도 5는 본 개시의 몇몇 실시예들에 따른 개체명 인식 기반의 디바이스 정보 식별 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.5 is an exemplary flowchart illustrating a method for identifying device information based on object name recognition according to some embodiments of the present disclosure. However, this is only a preferred embodiment for achieving the object of the present disclosure, and of course, some steps may be added or deleted as necessary.

도 5에 도시된 바와 같이, 상기 방법은 인터넷에 연결된 타깃 디바이스의 스캔 데이터를 획득하는 단계 S10에서 시작된다.As shown in FIG. 5, the method starts at step S10 of obtaining scan data of a target device connected to the Internet.

몇몇 실시예에서, 상기 스캔 데이터는 상기 타깃 디바이스의 오픈 포트를 스캔함으로써 획득된 것일 수 있다. 즉, 상기 스캔 데이터는 타깃 디바이스의 오픈 포트로 소정의 요청(request)을 송신하고, 상기 요청에 대한 응답(response)으로 수신된 것일 수 있다.In some embodiments, the scan data may be obtained by scanning the open port of the target device. That is, the scan data may be received by transmitting a predetermined request to the target device's open port and responding to the request.

보다 구체적인 예를 들어, 상기 스캔 데이터는 상기 오픈 포트 스캔을 통해 획득된 배너의 문자열로 구성될 수 있다. 상기 배너의 일 예는 도 6에 도시되어 있다. 특히, 도 6은 HTTP 포트 스캔을 통해 획득된 배너(11)를 예로써 도시하고 있다.For a more specific example, the scan data may be configured as a string of banners obtained through the open port scan. An example of the banner is shown in FIG. 6. In particular, FIG. 6 shows as an example the banner 11 obtained through the HTTP port scan.

다른 예를 들어, 상기 스캔 데이터는 HTTP 포트 스캔을 통해 획득된 HTTP response일 수 있다. 상기 HTTP response의 일 예는 도 7에 도시되어 있다. 도 7에 도시된 바와 같이, HTTP response(13)는 배너 문자열(e.g. 11)에 비해 더 많은 정보를 담고 있다. 따라서, HTTP response(13)를 분석하는 경우, 배너에 비해 더 많은 식별 정보(e.g. CPE)가 획득될 수 있다.For another example, the scan data may be an HTTP response obtained through an HTTP port scan. An example of the HTTP response is illustrated in FIG. 7. As shown in FIG. 7, the HTTP response 13 contains more information than the banner string (e.g. 11). Therefore, when analyzing the HTTP response (13), more identification information (e.g. CPE) can be obtained compared to the banner.

상기 포트 스캔은 당해 기술 분야에 이미 널리 알려진 기술인 바, 이에 대한 자세한 설명은 생략하도록 한다.The port scan is a technology that is already well known in the art, and a detailed description thereof will be omitted.

단계 S20에서, 식별 장치(100)는 스캔 데이터에 대한 전처리를 수행한다. 상기 전처리는 상기 스캔 데이터를 분석에 적합한 형태로 가공하는 모든 종류의 전처리 프로세스를 포함할 수 있다. 예를 들어, 상기 전처리는 HTTP 헤더 제거, 태그 제거, 공백 제거, 텍스트 변환 등의 전처리 프로세스를 포함할 수 있다. 또는, 상기 전처리는 키워드 추출, 기 지정된 구분자(delimeter)를 이용한 단어 분리, 소/대문자 변환 등의 전처리 프로세스를 포함할 수 있다.In step S20, the identification device 100 performs pre-processing for the scan data. The pre-processing may include all types of pre-processing processes for processing the scan data into a form suitable for analysis. For example, the pre-processing may include a pre-processing process such as HTTP header removal, tag removal, blank removal, and text conversion. Alternatively, the pre-processing may include a pre-processing process such as keyword extraction, word separation using a predetermined delimeter, and small/capital conversion.

본 단계 S20에서, 식별 장치(100)는 HTTP response에서 헤더를 제거하여 HTTP-body를 획득하고, HTTP-body에서 기 지정된 하나 이상의 태그를 제거하고, 남은 데이터를 텍스트화하여 텍스트화된 스캔 데이터를 획득할 수 있다. 다만, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.In this step S20, the identification device 100 removes the header from the HTTP response to obtain the HTTP-body, removes one or more predefined tags from the HTTP-body, and textualizes the remaining data to scan the textualized scan data. Can be obtained. However, the technical scope of the present disclosure is not limited thereto.

단계 S30에서, 식별 장치(100)는 CPE 사전으로부터 후보 CPE를 획득한다. 구체적으로, 식별 장치(100)는 전처리된 스캔 데이터로부터 검색 키워드를 추출하고, 상기 CPE 사전에서 상기 검색 키워드에 매칭되는 CPE를 후보 CPE로 획득할 수 있다. 보다 이해의 편의를 제공하기 위해, 본 단계 S30에 대하여 도 8 내지 11을 참조하여 부연 설명하도록 한다.In step S30, the identification device 100 obtains a candidate CPE from the CPE dictionary. Specifically, the identification device 100 may extract a search keyword from the pre-processed scan data, and obtain a CPE matching the search keyword from the CPE dictionary as a candidate CPE. In order to provide a more convenient understanding, this step S30 will be described in detail with reference to FIGS. 8 to 11.

도 8은 본 개시의 몇몇 실시예들에 따른 후보 CPE 획득 방법을 나타내는 예시적인 흐름도이다.8 is an exemplary flow diagram illustrating a method for obtaining a candidate CPE according to some embodiments of the present disclosure.

도 8에 도시된 바와 같이, 상기 후보 CPE 획득 방법은 전처리된 스캔 데이터(e.g. 텍스트 데이터)를 분석하여 복수의 키워드를 추출하는 단계 S31에서 시작된다. 복수의 키워드를 추출하는 구체적인 방식은 실시예에 따라 달라질 수 있다.As illustrated in FIG. 8, the candidate CPE acquisition method starts in step S31 of extracting a plurality of keywords by analyzing pre-processed scan data (e.g. text data). The specific method of extracting a plurality of keywords may vary according to embodiments.

몇몇 실시예에서, 식별 장치(100)는 특정 데이터 패턴(e.g. IP의 경우 integer.integer.integer.integer, 포트의 경우는 IP:integer 등)을 이용하여 키워드를 추출할 수 있다.In some embodiments, the identification device 100 may extract keywords using a specific data pattern (e.g. integer.integer.integer.integer for IP, IP:integer for port, etc.).

몇몇 실시예에서, 식별 장치(100)는 기 지정된 특수 문자를 구분자로 이용하여, 상기 전처리된 스캔 데이터를 복수의 단어로 분리하여 상기 복수의 키워드를 추출할 수 있다. 여기서, 식별 장치(100)는 상기 전처리된 스캔 데이터에 소문자 변환을 적용하고, 소문자 변환된 데이터를 상기 복수의 단어로 분리할 수도 있다.In some embodiments, the identification device 100 may extract the plurality of keywords by dividing the pre-processed scan data into a plurality of words using pre-designated special characters as separators. Here, the identification device 100 may apply a lowercase conversion to the preprocessed scan data, and may separate the lowercase converted data into the plurality of words.

본 단계 S31에서 키워드를 추출하는 예는 도 9에 도시되어 있다. 도 9에 도시된 바와 같이, HTTP response(21)에서 전처리가 수행되면 텍스트 데이터(22)가 획득되고, 텍스트 데이터(22)에서 복수의 키워드(23 내지 29)가 추출될 수 있다.An example of extracting keywords in this step S31 is illustrated in FIG. 9. As illustrated in FIG. 9, when pre-processing is performed in the HTTP response 21, text data 22 is obtained, and a plurality of keywords 23 to 29 can be extracted from the text data 22.

단계 S33에서, 식별 장치(100)는 추출된 복수의 키워드 중에서 불용어(stop word)를 제거하여 검색 키워드를 결정한다. 가령, 식별 장치(100)는 기 정의된 불용어 사전을 이용하여 불용어를 제거할 수 있다. 상기 불용어는 'login', 'administrator' 'server' 등과 같이 오식별 CPE를 발생시킬 수 있는 단어를 포함할 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.In step S33, the identification device 100 determines a search keyword by removing stop words from the extracted plurality of keywords. For example, the identification device 100 may remove the stopword using a predefined stopword dictionary. The terminology may include words that can generate misidentified CPE, such as'login','administrator' and'server', but the technical scope of the present disclosure is not limited thereto.

단계 S35에서, 식별 장치(100)는 검색 키워드로 CPE 사전을 조회하여 후보 CPE를 획득한다. 즉, 각 검색 키워드에 의해 조회된 CPE가 후보 CPE로 획득된다. 이때, 상기 후보 CPE는 운영체제 CPE, 어플리케이션 CPE, 하드웨어 CPE 중 적어도 하나를 포함할 수 있다.In step S35, the identification device 100 obtains a candidate CPE by querying the CPE dictionary with a search keyword. That is, the CPE searched by each search keyword is obtained as a candidate CPE. In this case, the candidate CPE may include at least one of an operating system CPE, an application CPE, and a hardware CPE.

한편, 본 개시의 다른 몇몇 실시예들에 따르면, CPE 사전을 기초로 구성된 CPE 트리를 이용하여 후보 CPE를 생성할 수도 있다. 이하, 본 실시예에 대하여, 도 10 및 도 11을 참조하여 부연 설명하도록 한다.Meanwhile, according to some other embodiments of the present disclosure, a candidate CPE may be generated using a CPE tree constructed based on a CPE dictionary. Hereinafter, this embodiment will be described in detail with reference to FIGS. 10 and 11.

도 10에 도시된 바와 같이, 식별 장치(100)는 CPE 사전(33)으로부터 복수의 레벨 및 복수의 노드를 CPE 트리(35)를 구성할 수 있다. 구성된 CPE 트리(35)는 총 6개의 레벨을 가질 수 있다. CPE 트리(35)의 6개의 레벨은 CPE 포맷(31)에서 part를 제외하고 제조사(vendor)부터 제품 언어(language)에 각각 대응된다. 보다 구체적으로, CPE 트리(35)에서, (i) 제1 레벨에 해당하는 노드는 제조사(Vendor) 정보에, (ii) 제2 레벨에 해당하는 노드는 제품명(Product) 정보에, 제3 레벨에 해당하는 노드는 제품 버전(version) 정보, 제4 레벨에 해당하는 노드는 업데이트(Update) 정보를, 제5 레벨에 해당하는 노드는 배포판(Edition) 정보에, 제6 레벨에 해당하는 노드는 제품 언어(Language) 정보에 대응된다.As illustrated in FIG. 10, the identification device 100 may construct a CPE tree 35 of a plurality of levels and a plurality of nodes from the CPE dictionary 33. The constructed CPE tree 35 may have a total of six levels. The six levels of the CPE tree 35 correspond to the product language from the vendor, excluding the part in the CPE format 31. More specifically, in the CPE tree 35, (i) the node corresponding to the first level is the vendor information, (ii) the node corresponding to the second level is the product name, and the third level The node corresponding to the product version information, the node corresponding to the fourth level is the update information, the node corresponding to the fifth level is the distribution information, and the node corresponding to the sixth level is Corresponds to product language information.

CPE 트리(35)는 제1 레벨 내지 제6 레벨 중에서 적어도 세 개의 레벨을 포함할 수 있다. 이때, 제1 레벨에 해당하는 노드가 갖는 정보와 제2 레벨에 해당하는 노드가 갖는 정보가 동일할 수도 있다(즉, 제조사와 제품명이 같을 수 있다).The CPE tree 35 may include at least three levels from the first level to the sixth level. At this time, the information of the node corresponding to the first level and the information of the node corresponding to the second level may be the same (ie, the manufacturer and the product name may be the same).

CPE 트리(35)는 부모 노드, 자식 노드, 형제 노드 중 적어도 하나를 포함한다. 복수의 레벨 중에서 상위 레벨에 해당하는 노드가 부모 노드에 해당하고, 복수의 레벨 중에서 하위 레벨에 해당하는 노드가 자식 노드에 해당하고, 복수의 레벨 중에서 동일 레벨에 해당하는 노드들이 형제 노드에 해당한다. 복수의 레벨 중에서 중간 레벨이 생략되면, 생략된 중간 레벨의 상위 레벨 노드에 해당하는 노드 및 생략된 중간 레벨의 하위 레벨에 해당하는 노드 가 서로 연결될 수 있다.The CPE tree 35 includes at least one of a parent node, a child node, and a sibling node. A node corresponding to a higher level among a plurality of levels corresponds to a parent node, a node corresponding to a lower level among a plurality of levels corresponds to a child node, and nodes corresponding to the same level among the plurality of levels correspond to a sibling node. . If the intermediate level is omitted among the plurality of levels, a node corresponding to a higher level node of the omitted intermediate level and a node corresponding to a lower level of the omitted intermediate level may be connected to each other.

식별 장치(100)는 CPE 사전(33)의 문자열을 구분자(':')를 기준으로 분리하여 복수의 레벨들을 생성하고, CPE 사전(33)의 제5 레벨에서 문자'~'을 기준으로 문자열을 분리할 수 있다. 또한, 식별 장치(100)는 CPE 사전(33)의 각 레벨에서 문자'_'를 기준으로 문자열을 분리함으로써 CPE 트리(35)를 구성할 수 있다. 예컨대, "cpe:/a:microsoft:ftp_service:7.0"의 경우, 제1 레벨은 'microsoft'이고, 제2 레벨은 'ftp', 'service'이고, 제3 레벨은 '7.0'으로 구성되며, 해당 CPE에 대한 제4 레벨 내지 제6 레벨은 존재하지 않게 된다.The identification device 100 generates a plurality of levels by separating the character string of the CPE dictionary 33 based on the separator (':'), and the character string based on the characters'~' at the fifth level of the CPE dictionary 33 Can be separated. Also, the identification device 100 may construct the CPE tree 35 by separating the character string based on the letter'_' at each level of the CPE dictionary 33. For example, in the case of "cpe:/a:microsoft:ftp_service:7.0", the first level is'microsoft', the second level is'ftp','service', and the third level consists of '7.0', There is no fourth to sixth level for the CPE.

도 11은 CPE 트리로부터 후보 CPE를 획득하는 과정을 예시한다.11 illustrates a process of obtaining a candidate CPE from a CPE tree.

도 11에 도시된 바와 같이, 스캔 데이터에서 추출된 검색 키워드(43)와 CPE 트리(41)를 매칭함에 따라, 검색 키워드(43) 중에서 CPE 트리(41)에 매칭되는 키워드가 레벨 별로 결정될 수 있다. 매칭 결과는 도 11의 오른쪽 도형(45)에 도시되어 있다. 그러면, 식별 장치(100)는 각 레별 별로 매칭되는 키워드를 조합하여 후보 CPE를 생성할 수 있다. 또한, 상기 생성된 후보 CPE가 CPE 사전에 존재하지 않는 경우, 식별 장치(100)는 상기 후보 CPE를 CPE 사전에 추가할 수 있다.As shown in FIG. 11, by matching the search keyword 43 and the CPE tree 41 extracted from the scan data, keywords matching the CPE tree 41 among the search keywords 43 may be determined for each level. . The matching result is shown in the right figure 45 of FIG. 11. Then, the identification device 100 may generate a candidate CPE by combining keywords matched for each level. In addition, if the generated candidate CPE does not exist in the CPE dictionary, the identification device 100 may add the candidate CPE to the CPE dictionary.

다시 도 5를 참조하여 설명한다.It will be described again with reference to FIG. 5.

단계 S40에서, 식별 장치(100)는 전처리된 스캔 데이터에서 개체명 인식(Named Entity Recognition; NER)을 수행하여 타깃 디바이스와 연관된 개체명을 추출한다.In step S40, the identification device 100 extracts the entity name associated with the target device by performing Named Entity Recognition (NER) from the pre-processed scan data.

몇몇 실시예에서, 상기 개체명 인식은 딥러닝 기반의 개체명 인식 모델에 의해 수행될 수 있다. 가령, 상기 개체명 인식 모델은 도 12에 도시된 바와 같은 BI-LSTM-CRF(Bidirectional Long Short-Term Memory with a Conditional Random Field Layer) 기반의 모델일 수 있다. 그러나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 상기 BI-LSTM-CRF 모델은 단어 간의 순차적 관계를 고려하여 개체명을 보다 정확하게 식별할 수 있다.In some embodiments, the object name recognition may be performed by a deep learning based object name recognition model. For example, the entity name recognition model may be a model based on BI-LSTM-CRF (Bidirectional Long Short-Term Memory with a Conditional Random Field Layer) as illustrated in FIG. 12. However, the technical scope of the present disclosure is not limited thereto. The BI-LSTM-CRF model can more accurately identify an entity name in consideration of sequential relationships between words.

전처리된 스캔 데이터에서 개체명이 식별된 예는 도 13에 도시되어 있다. 특히 도 13은 개체명 카테고리가 사람(Person), 기관명(Organization), 위치명(Location) 및 기타(Miscellaneous)로 구분되는 경우를 예시하고 있으나, 개체명 카테고리는 다른 방식으로 정의될 수도 있다.An example in which the object name is identified in the pre-processed scan data is shown in FIG. 13. In particular, FIG. 13 illustrates a case in which the object name category is divided into a person, an organization, a location, and others, but the object name category may be defined in other ways.

도 13에 도시된 바와 같이, 개체명 인식이 수행되면, 스캔 데이터(50)에서 개체명에 해당하는 키워드(52 내지 57)가 카테고리 별로 추출될 수 있다. 당해 기술 분야의 당업자라면 상기 개체명 인식에 대하여 자명하게 이해할 수 있을 것인 바 더 이상의 자세한 설명은 생략하도록 한다.As illustrated in FIG. 13, when object name recognition is performed, keywords 52 to 57 corresponding to the object name in the scan data 50 may be extracted for each category. Those skilled in the art will be able to clearly understand the object name recognition, and further detailed description will be omitted.

다시 도 5를 참조하여 설명한다.It will be described again with reference to FIG. 5.

단계 S50에서, 식별 장치(100)는 후보 CPE와 개체명과의 비교 결과를 이용하여 오식별 CPE 제거함으로써 타깃 디바이스의 최종 CPE를 결정한다 즉, 본 단계 S50에서 개체명을 기준으로 후보 CPE에 대한 필터링이 수행된다. 상기 개체명을 이용하는 이유는 "login", "server" 등과 같은 일반적인 키워드는 개체명으로 추출되지 않기 때문이며, 이와 같은 필터링 과정을 통해 타깃 디바이스와 관련없는 제품명이 CPE로 추출되는 것이 방지될 수 있다.In step S50, the identification device 100 determines the final CPE of the target device by removing the misidentified CPE using the comparison result of the candidate CPE and the individual name, that is, filtering for the candidate CPE based on the individual name in the step S50 This is done. The reason for using the object name is that general keywords such as "login" and "server" are not extracted as the object name, and through this filtering process, product names not related to the target device can be prevented from being extracted as CPE.

오식별 CPE를 제거하는 구체적인 방식은 실시예에 따라 달라질 수 있다.The specific way to remove misidentified CPE may vary depending on the embodiment.

몇몇 실시예에서, 식별 장치(100)는 복수의 후보 CPE 중에서 상기 개체명이 전혀 등장하지 않는 후보 CPE를 오식별 CPE로 판단하여 제거할 수 있다. 그렇게 함으로써, 타깃 디바이스와 연관된 CPE 정보가 보다 정확하게 식별될 수 있다. 본 실시예에 대한 구체적인 예시는 도 14에 도시되어 있다.In some embodiments, the identification device 100 may determine and remove candidate CPEs in which the individual name does not appear at all among a plurality of candidate CPEs as a misidentified CPE. By doing so, CPE information associated with the target device can be more accurately identified. A specific example of this embodiment is illustrated in FIG. 14.

도 14에 도시된 바와 같이, 개체명 인식 결과(65)와 후보 CPE(61 내지 63)에 대한 비교가 수행된다. 보다 구체적으로, 개체명으로 추출된 키워드와 후보 CPE(61 내지 63)와 연관된 키워드 간의 비교가 수행된다. 이때, 상기 개체명으로 추출된 키워드는 하나 이상의 단어(e.g. 복합 명사 등)로 구성될 수 있다. 또한, 후보 CPE(61 내지 63)와 연관된 키워드는 상기 후보 CPE에 포함된 제품명, 제조사 등을 가리키는 키워드, 상기 후보 CPE 검색에 이용된 키워드 등을 포함한다.As shown in FIG. 14, comparison of the object name recognition result 65 and candidate CPEs 61 to 63 is performed. More specifically, a comparison is performed between keywords extracted by the object name and keywords associated with candidate CPEs 61 to 63. At this time, the keyword extracted by the object name may be composed of one or more words (e.g. a compound noun, etc.). In addition, keywords associated with the candidate CPEs 61 to 63 include product names included in the candidate CPEs, keywords indicating manufacturers, etc., keywords used for searching the candidate CPEs, and the like.

또한, 상기 비교 결과를 통해, 후보 CPE(61 내지 63) 중에 개체명이 전혀 등장하지 않는 후보 CPE(63)가 결정되고, 후보 CPE(63)는 오식별 CPE로 간주되어 제거된다. 즉, 도 14에서 개체명3은 단어 4와 단어 5의 조합으로 구성되나, 후보 CPE(7)은 개체명3을 모두 포함하지 않으므로, 오식별된 CPE로 간주된다.In addition, through the above comparison results, candidate CPEs 63 whose individual names do not appear at all among the candidate CPEs 61 to 63 are determined, and the candidate CPEs 63 are regarded as misidentified CPEs and removed. That is, in FIG. 14, the entity name 3 is composed of a combination of the word 4 and the word 5, but the candidate CPE 7 does not include all the entity names 3, and thus is regarded as a misidentified CPE.

다른 몇몇 실시예에서, 식별 장치(100)는 기 지정된 특수 문자를 구분자(delimeter)로 이용하여 개체명을 복수의 단어로 분리하고, 복수의 후보 CPE 중에서 상기 복수의 단어 중 어느 하나도 등장하지 않는 후보 CPE를 오식별 CPE로 판단하여 제거할 수 있다. 즉, 본 실시예에서는, 전술한 실시예보다 완화된 조건으로 필터링이 수행된다. 그렇게 함으로써, 타깃 디바이스와 연관된 CPE 정보가 누락 없이 식별될 수 있다. 본 실시예에 대한 구체적인 예시는 도 15에 도시되어 있다.In some other embodiments, the identification device 100 separates the entity name into a plurality of words using a predetermined special character as a delimiter, and among the plurality of candidate CPEs, none of the plurality of words appears CPE can be removed by judging by misidentifying CPE. That is, in this embodiment, filtering is performed under the relaxed condition than the above-described embodiment. By doing so, CPE information associated with the target device can be identified without omission. A specific example of this embodiment is illustrated in FIG. 15.

도 15에 도시된 바와 같이, 제1 개체명 인식 결과(78)에서 단어 분리가 수행되어 제2 개체명 인식 결과(79)가 산출되고, 개체명1(또는 개체명3)에 대한 키워드(75)가 2개의 단어(76, 77)로 분리될 수 있다. 전술한 실시예와 유사하게, 식별 장치(100)는 제2 개체명 인식 결과(79)과 후보 CPE(71 내지 73)와 연관된 키워드를 비교하고, 비교 결과에 기초하여 오식별 CPE를 제거한다. 도 15에 도시된 예에서, 오식별 CPE는 존재하지 않으므로(즉, 후보 CPE들 모두가 개체명을 나타내는 단어를 적어도 하나는 포함하고 있으므로), 모든 후보 CPE(71 내지 73)가 최종 CPE로 결정될 수 있다.As illustrated in FIG. 15, the word separation is performed in the first entity name recognition result 78 to calculate the second entity name recognition result 79, and the keyword 75 for entity name 1 (or entity name 3) ) Can be separated into two words (76, 77). Similar to the above-described embodiment, the identification device 100 compares the keyword associated with the second entity name recognition result 79 and the candidate CPEs 71 to 73, and removes the misidentified CPE based on the comparison result. In the example shown in FIG. 15, since there are no misidentified CPEs (i.e., all of the candidate CPEs contain at least one word representing an entity name), all candidate CPEs 71 to 73 are determined as final CPEs. Can.

참고로, 전술한 단계 S10 내지 S50 중에서, 단계 S10은 입력부(110)에 의해 수행되고, 단계 S20은 전처리부(130)에 의해 수행되며, 단계 S30은 사전 기반 CPE 식별부(151)에 의해 수행될 수 있다. 또한, 단계 S40은 개체명 인식부(153)에 의해 수행되고, 단계 S50은 CPE 결정부(155)에 의해 수행될 수 있다.For reference, among the above-described steps S10 to S50, step S10 is performed by the input unit 110, step S20 is performed by the pre-processing unit 130, and step S30 is performed by the dictionary-based CPE identification unit 151 Can be. In addition, step S40 may be performed by the entity name recognition unit 153, and step S50 may be performed by the CPE determination unit 155.

지금까지 도 5 내지 도 15를 참조하여 본 개시의 몇몇 실시예들에 따른 개체명 인식 기반의 디바이스 정보 식별 방법에 대하여 설명하였다. 상술한 방법에 따르면, 개체명 인식을 통해 추출된 개체명을 이용하여 후보 CPE에 대한 필터링이 수행된다. "login", "server" 등과 같이 일반적인 단어는 개체명으로 추출되지 않는 바, 상기 조건에 따라 오식별 CPE가 필터링되고, 타깃 디바이스와 연관된 CPE 정보가 정확하게 식별될 수 있다.So far, a method of identifying device information based on object name recognition according to some embodiments of the present disclosure has been described with reference to FIGS. 5 to 15. According to the above-described method, filtering for the candidate CPE is performed using the object name extracted through object name recognition. Common words such as "login", "server", and the like are not extracted as the object name, and thus the CPE for misidentification is filtered, and CPE information associated with the target device can be accurately identified.

나아가, 타깃 디바이스에 대한 CPE 정보가 정확하게 식별됨에 따라 CVE 사전을 통해 상기 타깃 디바이스의 취약점 또한 정확하게 식별될 수 있다.Furthermore, as the CPE information for the target device is accurately identified, the vulnerability of the target device can also be accurately identified through the CVE dictionary.

이하에서는, 도 16 내지 도 18을 참조하여 본 개시의 다른 몇몇 실시예들에 따른 개체명 인식 기반의 디바이스 정보 식별 방법에 대하여 설명하도록 한다. 이하에서, 본 명세서의 명료함을 위해, 전술한 실시예와 중복되는 내용에 대한 설명은 생략하도록 한다.Hereinafter, a method for identifying device information based on object name recognition according to some other embodiments of the present disclosure will be described with reference to FIGS. 16 to 18. Hereinafter, for clarity of the present specification, descriptions of contents overlapping with the above-described embodiments will be omitted.

도 16은 본 개시의 다른 몇몇 실시예들에 따른 개체명 인식 기반의 디바이스 정보 식별 방법을 나타내는 예시적인 흐름도이다.16 is an exemplary flowchart illustrating a method for identifying device information based on object name recognition according to some other embodiments of the present disclosure.

도 16에 도시된 바와 같이, 단계 S10 내지 S50은 전술한 실시예와 동일하나, 단계 S60이 더 수행되는 점에서 전술한 실시예와 차이가 있다.As shown in FIG. 16, steps S10 to S50 are the same as the above-described embodiment, but differ from the above-described embodiment in that step S60 is further performed.

단계 S60에서, 식별 장치(100)는 후보 CPE와 연관되지 않은 개체명을 신규 CPE로 생성한다. 여기서, 상기 후보 CPE와 연관되지 않은 개체명은 단계 S50에서 오식별 CPE 제거에 사용되지 않은 개체명을 의미한다. 본 단계 S60에서 생성된 신규 CPE는 CPE 사전에 추가될 수 있고, 타깃 디바이스의 최종 CPE 정보에 포함될 수 있다. 그렇게 함으로써, 타깃 디바이스와 연관된 CPE 정보가 누락없이 식별될 수 있다. 또한, 점진적인 CPE 사전 갱신을 통해 식별 장치(100)의 미식별 범위는 줄어들고, 다양한 디바이스에 대해 정확한 식별이 이루어질 수 있다.In step S60, the identification device 100 generates an entity name that is not associated with the candidate CPE as a new CPE. Here, the object name not associated with the candidate CPE means the object name not used to remove the misidentified CPE in step S50. The new CPE generated in step S60 may be added to the CPE dictionary, and included in the final CPE information of the target device. By doing so, CPE information associated with the target device can be identified without omission. In addition, the sophistication range of the identification device 100 is reduced through a gradual CPE dictionary update, and accurate identification can be made for various devices.

참고로, 본 단계 S60에서, 식별 장치(100)는 CPE 사전을 이용하여 상기 생성된 신규 CPE에 대한 중복 검사를 수행하고, 중복이 아니라는 판정에 응답하여 상기 생성된 신규 CPE를 CPE 사전에 추가할 수 있다. 또한, 본 단계 S60은 신규 CPE 생성부(170)에 의해 수행될 수 있다.For reference, in the step S60, the identification device 100 performs a duplicate check on the generated new CPE using the CPE dictionary, and adds the generated new CPE to the CPE dictionary in response to the determination that it is not a duplicate. Can. In addition, this step S60 may be performed by the new CPE generating unit 170.

보다 이해의 편의를 제공하기 위해, 본 단계 S60에 대하여 도 17에 도시된 예를 참조하여 부연 설명하도록 한다.In order to provide more convenience, the step S60 will be described in detail with reference to the example shown in FIG. 17.

도 17에 도시된 바와 같이, 개체명 인식 결과(86)를 이용하여, 후보 CPE(81 내지 83)에 대한 필터링이 수행되고, 상기 필터링에 이용되지 않은 개체명(또는 개체명에서 분리된 단어, 84, 이하 "미사용 개체명"으로 칭함)은 신규 CPE(85)로 생성될 수 있다.As shown in FIG. 17, using the entity name recognition result 86, filtering for candidate CPEs 81 to 83 is performed, and the entity names (or words separated from the entity names) that are not used for the filtering, 84, hereinafter referred to as "unused entity name") may be generated with a new CPE 85.

몇몇 실시예에서, 상기 미사용 개체명 중에서 카테고리가 기관명 또는 기타 카테고리에 해당하는 개체명이 선별되고, 선별된 개체명만을 이용하여 신규 CPE가 생성될 수 있다. 사람 또는 위치명 카테고리에 속한 개체명은 제품명과 연관되지 않을 가능성이 높기 때문이다. 본 실시예에 따르면, 보다 정확하게 신규 CPE가 생성될 수 있다.In some embodiments, among the unused individual names, individual names whose categories correspond to institution names or other categories are selected, and new CPEs may be generated using only the selected individual names. This is because it is highly likely that an individual name belonging to a person or location name category is not associated with a product name. According to this embodiment, a new CPE can be generated more accurately.

한편, 몇몇 실시예에서, 미사용 개체명으로 신규 CPE를 생성하기 위해, 미사용 개체명과 전술한 CPE 트리와의 매칭이 수행될 수 있다. 보다 구체적으로, CPE 트리의 각 레벨 별로 미사용 개체명과 키워드 매칭이 이루어지고, 각 레벨 별로 매칭되는 키워드가 결정될 수 있다. 또한, 각 레벨 별로 매칭되는 키워드를 조합하여(즉, CPE 포맷에 맞게 연결하여), 신규 CPE가 생성될 수 있다.Meanwhile, in some embodiments, in order to generate a new CPE with an unused entity name, matching of the unused entity name with the above-described CPE tree may be performed. More specifically, unused entity names and keyword matching are performed for each level of the CPE tree, and keywords matching for each level may be determined. In addition, new CPEs may be generated by combining keywords matched for each level (that is, connected according to the CPE format).

한편, 몇몇 실시예에서, 신규 CPE를 생성하기 위해, 개체명 인식 모델이 이용될 수도 있다. 보다 구체적으로, 제품명(Product)을 개체명으로 인식할 수 있는 신규 개체명 인식 모델을 구축하고, 구축된 개체명 인식 모델을 이용하여 타깃 데이터의 스캔 데이터에서 제품명 카테고리에 속한 개체명이 추출될 수 있다. 그러면, 상기 추출된 개체명이 신규 CPE로 생성될 수 있다.On the other hand, in some embodiments, in order to create a new CPE, an entity name recognition model may be used. More specifically, a new object name recognition model capable of recognizing a product name as an object name is constructed, and an object name belonging to a product name category can be extracted from the scan data of target data using the constructed object name recognition model. . Then, the extracted individual name may be generated as a new CPE.

상기 신규 개체명 인식 모델을 구축하는 과정에 대한 일 예는 도 18에 도시되어 있다.An example of a process of constructing the new entity name recognition model is illustrated in FIG. 18.

도 18에 도시된 바와 같이, 식별 장치(100)는, 정확하게는 신규 CPE 생성부(170)는, 기존 CPE 정보(91) 또는 도 17에 도시된 방법에 따라 생성된 신규 CPE 정보(93)와 연관된 키워드에 제품명(product) 카테고리를 부여함으로써 학습 데이터셋을 생성할 수 있다. 또한, 식별 장치(100)는 상기 학습 데이터셋을 학습하여 제품명 카테고리의 개체명을 인식할 수 있는 모델을 구축할 수 있다. 다른 타깃 디바이스의 스캔 데이터가 획득되면, 식별 장치(100)는 상기 구축된 개체명 인식 모델을 이용하여 상기 스캔 데이터에서 제품명 카테고리의 개체명을 추출할 수 있다. 또한, 식별 장치(100)는 상기 추출된 개체명을 이용하여 신규 CPE를 생성할 수 있다. 전술한 바와 같이, 식별 장치(100)는 CPE 사전을 통해 중복 검사를 수행하고, 중복되지 않는 신규 CPE만을 CPE 사전에 추가할 수 있다.As shown in FIG. 18, the identification device 100, exactly, the new CPE generation unit 170, the existing CPE information 91 or the new CPE information 93 generated according to the method shown in FIG. A training dataset can be created by assigning a product category to an associated keyword. In addition, the identification device 100 may build a model capable of recognizing the individual name of the product name category by learning the learning data set. When the scan data of another target device is obtained, the identification device 100 may extract the object name of the product name category from the scan data using the constructed object name recognition model. In addition, the identification device 100 may generate a new CPE using the extracted object name. As described above, the identification device 100 may perform a duplication check through the CPE dictionary, and only new CPEs that do not overlap may be added to the CPE dictionary.

지금까지 도 16 내지 도 18을 참조하여 본 개시의 다른 몇몇 실시예들에 따른 개체명 인식 기반의 디바이스 정보 식별 방법에 대하여 설명하였다. 상술한 방법에 따르면, 제품명과 연관이 깊은 특정 카테고리의 개체명을 이용하여 신규 CPE가 생성되고 CPE 사전에 추가될 수 있다. 이에 따라, 식별 장치(100)의 디바이스 식별 기능이 점진적으로 강화될 수 있다. 즉, 식별 장치(100)의 식별 범위는 점차 확장되고, CPE 식별의 정확도 또한 향상될 수 있다.So far, a method for identifying device information based on object name recognition according to some other embodiments of the present disclosure has been described with reference to FIGS. 16 to 18. According to the above-described method, a new CPE can be created and added to the CPE dictionary using the object name of a specific category deeply related to the product name. Accordingly, the device identification function of the identification device 100 may be gradually enhanced. That is, the identification range of the identification device 100 is gradually expanded, and the accuracy of CPE identification can also be improved.

이하에서는, 도 19를 참조하여 본 개시의 다양한 실시예들에 따른 장치를 구현할 수 있는 컴퓨팅 장치(400)의 일 예시에 대하여 설명하도록 한다.Hereinafter, an example of a computing device 400 capable of implementing a device according to various embodiments of the present disclosure will be described with reference to FIG. 19.

도 19는 본 개시의 다양한 실시예들에 따른 장치를 구현할 수 있는 예시적인 컴퓨팅 장치(400)를 나타내는 예시적인 하드웨어 구성도이다.19 is an exemplary hardware configuration diagram illustrating an example computing device 400 capable of implementing an apparatus in accordance with various embodiments of the present disclosure.

도 19를 참조하면, 컴퓨팅 장치(400)는 하나 이상의 프로세서(410), 버스(450), 통신 인터페이스(470), 프로세서(410)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(430)와, 컴퓨터 프로그램(491)을 저장하는 스토리지(490)를 포함할 수 있다. 다만, 도 19에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 19에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.Referring to FIG. 19, the computing device 400 includes a memory 430 for loading one or more processors 410, a bus 450, a communication interface 470, and computer programs performed by the processor 410. And, it may include a storage 490 for storing the computer program 491. However, only components related to the exemplary embodiment of the present disclosure are illustrated in FIG. 19. Therefore, a person skilled in the art to which the present disclosure belongs may recognize that other general-purpose components may be further included in addition to the components illustrated in FIG. 19.

프로세서(410)는 컴퓨팅 장치(400)의 각 구성의 전반적인 동작을 제어한다. 프로세서(410)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(410)는 본 개시의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(400)는 하나 이상의 프로세서를 구비할 수 있다.The processor 410 controls the overall operation of each component of the computing device 400. The processor 410 includes a CPU (Central Processing Unit), a Micro Processor Unit (MPU), a Micro Controller Unit (MCU), a Graphic Processing Unit (GPU), or any type of processor well known in the art of the present disclosure. Can be. Also, the processor 410 may perform operations on at least one application or program for executing the method according to embodiments of the present disclosure. Computing device 400 may include one or more processors.

메모리(430)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(430)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위하여 스토리지(490)로부터 하나 이상의 프로그램(491)을 로드할 수 있다. 가령, 메모리(430)에 컴퓨터 프로그램(491)이 로드되면, 도 2에 도시된 바와 같이 모듈이 메모리(430) 상에 구현될 수 있다. 메모리(430)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.The memory 430 stores various data, commands and/or information. The memory 430 may load one or more programs 491 from the storage 490 to execute a method/operation according to various embodiments of the present disclosure. For example, when the computer program 491 is loaded in the memory 430, a module may be implemented on the memory 430 as illustrated in FIG. 2. The memory 430 may be implemented as a volatile memory such as RAM, but the technical scope of the present disclosure is not limited thereto.

버스(450)는 컴퓨팅 장치(400)의 구성 요소 간 통신 기능을 제공한다. 버스(450)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.The bus 450 provides communication functions between components of the computing device 400. The bus 450 may be implemented as various types of buses, such as an address bus, a data bus, and a control bus.

통신 인터페이스(470)는 컴퓨팅 장치(400)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(470)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(470)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.The communication interface 470 supports wired and wireless Internet communication of the computing device 400. Also, the communication interface 470 may support various communication methods other than Internet communication. To this end, the communication interface 470 may include a communication module well known in the art of the present disclosure.

스토리지(490)는 상기 하나 이상의 프로그램(491)을 비임시적으로 저장할 수 있다. 스토리지(490)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.The storage 490 may store the one or more programs 491 non-temporarily. The storage 490 is well-known in the field of non-volatile memory such as read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, or the technical field to which the present disclosure pertains. And any known form of computer-readable recording media.

컴퓨터 프로그램(491)은 메모리(430)에 로드될 때 프로세서(410)로 하여금 본 개시의 다양한 실시예에 따른 방법을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(410)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법들을 수행할 수 있다.Computer program 491 may include one or more instructions that, when loaded into memory 430, cause processor 410 to perform a method in accordance with various embodiments of the present disclosure. That is, the processor 410 may execute the methods according to various embodiments of the present disclosure by executing the one or more instructions.

예를 들어, 컴퓨터 프로그램(491)은 인터넷 연결된 디바이스에 송신한 요청(request)에 대한 응답(response)으로서 수신된 스캔 데이터를 분석하여 복수의 검색 키워드를 획득하는 동작, 상기 복수의 검색 키워드를 이용하여 상기 디바이스와 관련된 복수의 후보 CPE(Common Platform Enumeration)를 획득하는 동작, 상기 스캔 데이터에 대한 개체명 인식(Named-Entity Recognition)의 결과로 얻어진 개체명과 상기 후보 CPE와 연관된 키워드를 비교하는 동작 및 상기 비교 결과를 기초로 상기 복수의 후보 CPE 중 적어도 일부를 제거하여 상기 디바이스의 최종 CPE를 결정하는 디바이스 식별하는 동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(400)를 통해 식별 장치(100)가 구현될 수 있다.For example, the computer program 491 analyzes received scan data as a response to a request sent to an Internet-connected device to obtain a plurality of search keywords, and uses the plurality of search keywords To obtain a plurality of candidate Common Platform Enumerations (CPEs) associated with the device, comparing the entity names obtained as a result of Named-Entity Recognition to the scan data with keywords associated with the candidate CPEs, and It may include one or more instructions to remove at least a portion of the plurality of candidate CPE based on the comparison result to perform a device identification operation to determine the final CPE of the device. In this case, the identification device 100 may be implemented through the computing device 400.

다른 예를 들어, 컴퓨터 프로그램(491)은 인터넷 연결된 디바이스에 송신한 요청(request)에 대한 응답(response)으로서 수신된 스캔 데이터를 분석하여, 복수의 검색 키워드를 얻는 동작, 상기 복수의 검색 키워드를 이용하여, 상기 디바이스와 관련된 복수의 CPE(Common Platform Enumeration)를 얻는 동작, 상기 스캔 데이터에 대한 개체명 인식(Named-Entity Recognition)의 결과로 얻어진 개체명 중 제1 개체명을 신규 CPE로 생성하는 동작 및 상기 신규 CPE를 상기 디바이스와 관련된 상기 복수의 CPE에 더 포함시키는 동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 이와 같은 경우에도, 컴퓨팅 장치(400)를 통해 식별 장치(100)가 구현될 수 있다.For another example, the computer program 491 analyzes received scan data as a response to a request sent to an Internet-connected device to obtain a plurality of search keywords, and the plurality of search keywords. By using the operation, obtaining a plurality of Common Platform Enumerations (CPEs) associated with the device and generating a first entity name as a new CPE among entity names obtained as a result of Named-Entity Recognition for the scan data One or more instructions may be included to perform an operation and an operation of further including the new CPE in the plurality of CPEs associated with the device. Even in such a case, the identification device 100 may be implemented through the computing device 400.

지금까지 도 1 내지 도 19를 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.So far, various embodiments of the present disclosure and effects according to the embodiments have been described with reference to FIGS. 1 to 19. Effects according to the technical spirit of the present disclosure are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

지금까지 도 1 내지 도 19를 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.The technical idea of the present disclosure described so far with reference to FIGS. 1 to 19 may be embodied as computer readable codes on a computer readable medium. The computer-readable recording medium may be, for example, a removable recording medium (CD, DVD, Blu-ray Disc, USB storage device, removable hard disk), or a fixed recording medium (ROM, RAM, hard disk equipped with a computer). Can. The computer program recorded on the computer-readable recording medium may be transmitted to another computing device through a network such as the Internet and installed on the other computing device, and thus used on the other computing device.

이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.In the above, even if all components constituting the embodiments of the present disclosure are described as being combined or operated as one, the technical spirit of the present disclosure is not necessarily limited to these embodiments. That is, within the scope of the present disclosure, all of the components may be selectively combined and operated.

도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.Although the operations are shown in a specific order in the drawings, it should not be understood that the operations must be performed in a specific order or in a sequential order, or all illustrated operations must be executed to obtain a desired result. In certain situations, multitasking and parallel processing may be advantageous. Moreover, the separation of various configurations in the above-described embodiments should not be understood as such a separation is not necessarily necessary, and the described program components and systems may generally be integrated together into a single software product or packaged into multiple software products. It should be understood that there is.

이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although the embodiments of the present disclosure have been described with reference to the accompanying drawings, those of ordinary skill in the art to which the present disclosure pertains may implement the present disclosure in other specific forms without changing its technical spirit or essential features. You can understand that there is. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. The scope of protection of the present disclosure should be interpreted by the claims below, and all technical spirits within the scope equivalent thereto should be interpreted as being included in the scope of the technical spirits defined by the present disclosure.

Claims (21)

컴퓨팅 장치에 의하여 수행되는 방법으로서,
인터넷 연결된 디바이스에 송신한 요청(request)에 대한 응답(response)으로서 수신된 스캔 데이터를 분석하여, 복수의 검색 키워드를 얻는 단계;
상기 복수의 검색 키워드를 이용하여, 상기 디바이스와 관련된 복수의 후보 CPE(Common Platform Enumeration)를 얻는 단계;
상기 스캔 데이터에 대한 개체명 인식(Named-Entity Recognition)의 결과로 얻어진 개체명과 상기 후보 CPE와 연관된 키워드를 비교하는 단계; 및
상기 비교 결과를 기초로 상기 복수의 후보 CPE 중 적어도 일부를 제거하여 상기 디바이스의 최종 CPE를 결정하는 단계를 포함하되,
상기 최종 CPE를 결정하는 단계는,
상기 복수의 후보 CPE 중 제1 후보 CPE와 연관된 키워드에 상기 개체명이 포함되지 않은 경우 상기 제1 후보 CPE를 제거하는 단계를 포함하는,
개체명 인식 기반의 디바이스 정보 식별 방법.
A method performed by a computing device,
Analyzing received scan data as a response to a request sent to an internet-connected device to obtain a plurality of search keywords;
Obtaining a plurality of candidate Common Platform Enumerations (CPEs) associated with the device using the plurality of search keywords;
Comparing an entity name obtained as a result of Named-Entity Recognition with respect to the scan data and a keyword associated with the candidate CPE; And
And determining a final CPE of the device by removing at least some of the plurality of candidate CPEs based on the comparison result.
Determining the final CPE,
And removing the first candidate CPE when the object name is not included in a keyword associated with the first candidate CPE among the plurality of candidate CPEs.
Method for identifying device information based on object name recognition.
제1 항에 있어서,
상기 스캔 데이터는,
HTTP-body인,
개체명 인식 기반의 디바이스 정보 식별 방법.
According to claim 1,
The scan data,
HTTP-body,
Method for identifying device information based on object name recognition.
제2 항에 있어서,
상기 스캔 데이터를 분석하여, 상기 복수의 검색 키워드를 얻는 단계는,
상기 HTTP-body에서 기 지정된 하나 이상의 태그를 제거하여 텍스트 데이터를 획득하는 단계를 포함하는,
개체명 인식 기반의 디바이스 정보 식별 방법.
According to claim 2,
The step of analyzing the scan data and obtaining the plurality of search keywords may include:
Comprising the step of acquiring text data by removing one or more predefined tags from the HTTP-body,
Method for identifying device information based on object name recognition.
제3 항에 있어서,
상기 스캔 데이터를 분석하여, 복수의 검색 키워드를 얻는 단계는,
기 지정된 특수 문자를 구분자(delimeter)로 이용하여, 상기 획득된 텍스트 데이터를 복수의 단어로 분리하는 단계; 및
상기 복수의 단어 중 적어도 일부를 상기 복수의 검색 키워드로 결정하는 단계를 더 포함하는,
개체명 인식 기반의 디바이스 정보 식별 방법.
According to claim 3,
The step of analyzing the scan data to obtain a plurality of search keywords,
Separating the obtained text data into a plurality of words using a predetermined special character as a delimiter; And
And determining at least some of the plurality of words as the plurality of search keywords.
Method for identifying device information based on object name recognition.
제4 항에 있어서,
상기 획득된 텍스트 데이터를 복수의 단어로 분리하는 단계는,
상기 획득된 텍스트 데이터에 대하여 소문자 변환을 적용하는 단계; 및
소문자 변환된 상기 텍스트 데이터를 상기 복수의 단어로 분리하는 단계를 포함하는,
개체명 인식 기반의 디바이스 정보 식별 방법.
According to claim 4,
The step of separating the acquired text data into a plurality of words,
Applying a lowercase conversion to the obtained text data; And
The step of separating the text data converted to lowercase into the plurality of words,
Method for identifying device information based on object name recognition.
제4 항에 있어서,
상기 복수의 단어 중 적어도 일부를 상기 복수의 검색 키워드로 결정하는 단계는,
상기 복수의 단어 중 기 등록된 키워드를 제외한 나머지 단어를 상기 복수의 검색 키워드로 결정하는 단계를 포함하는,
개체명 인식 기반의 디바이스 정보 식별 방법.
According to claim 4,
Determining at least a portion of the plurality of words as the plurality of search keywords,
Determining a word other than the pre-registered keyword among the plurality of words as the plurality of search keywords,
Method for identifying device information based on object name recognition.
제1 항에 있어서,
상기 복수의 후보 CPE는,
기 정의된 CPE 사전에서 상기 복수의 검색 키워드에 매칭되는 CPE인,
개체명 인식 기반의 디바이스 정보 식별 방법.
According to claim 1,
The plurality of candidate CPE,
CPE that matches the plurality of search keywords in the predefined CPE dictionary,
Method for identifying device information based on object name recognition.
제7 항에 있어서,
상기 복수의 후보 CPE는,
운영체제 CPE 및 어플리케이션 CPE 중 적어도 하나와 하드웨어 CPE를 포함하는,
개체명 인식 기반의 디바이스 정보 식별 방법.
The method of claim 7,
The plurality of candidate CPE,
Comprising at least one of an operating system CPE and an application CPE and a hardware CPE,
Method for identifying device information based on object name recognition.
삭제delete 제1 항에 있어서,
상기 복수의 후보 CPE 중 제1 후보 CPE와 연관된 키워드에 상기 개체명이 포함되지 않은 경우 상기 제1 후보 CPE를 제거하는 단계는,
기 지정된 특수 문자를 구분자(delimeter)로 이용하여, 상기 개체명을 복수의 단어로 분리하는 단계;
상기 복수의 후보 CPE 중 제1 후보 CPE와 연관된 키워드에 상기 복수의 단어 중 어느 하나의 단어도 포함되지 않은 경우 상기 제1 후보 CPE를 제거하는 단계를 포함하는,
개체명 인식 기반의 디바이스 정보 식별 방법.
According to claim 1,
If the entity name is not included in a keyword associated with a first candidate CPE among the plurality of candidate CPEs, removing the first candidate CPE may include:
Separating the object name into a plurality of words by using a predetermined special character as a delimiter;
Removing the first candidate CPE when the keyword associated with the first candidate CPE among the plurality of candidate CPEs does not include any one of the plurality of words;
Method for identifying device information based on object name recognition.
제1 항에 있어서,
상기 개체명 인식은,
BI-LSTM-CRF(Bidirectional Long Short-Term Memory with a Conditional Random Field Layer) 모델에 기초하여 수행되는,
개체명 인식 기반의 디바이스 정보 식별 방법.
According to claim 1,
The object name recognition,
BI-LSTM-CRF (Bidirectional Long Short-Term Memory with a Conditional Random Field Layer) model,
Method for identifying device information based on object name recognition.
제1 항에 있어서,
상기 복수의 후보 CPE를 얻는 단계는,
상기 복수의 검색 키워드로 CPE 사전을 조회하고, 상기 조회 결과로 상기 복수의 후보 CPE를 얻는 단계를 포함하고,
상기 최종 CPE를 결정하는 단계는,
상기 개체명 인식의 결과로 얻어진 개체명 중 제1 개체명을 신규 CPE로 생성하는 단계; 및
상기 신규 CPE를 상기 디바이스의 최종 CPE에 포함시키는 단계를 포함하되,
상기 제1 개체명은 상기 복수의 후보 CPE와 연관된 키워드에 등장하지 않은 것인,
개체명 인식 기반의 디바이스 정보 식별 방법.
According to claim 1,
Obtaining the plurality of candidate CPE,
Querying a CPE dictionary with the plurality of search keywords, and obtaining the plurality of candidate CPEs as the search result,
Determining the final CPE,
Generating a first entity name as a new CPE among the entity names obtained as a result of the entity name recognition; And
Including the new CPE in the final CPE of the device,
The first entity name does not appear in keywords associated with the plurality of candidate CPEs,
Method for identifying device information based on object name recognition.
제12 항에 있어서,
상기 제1 개체명은 기관명(organization) 카테고리의 또는 기타(miscellaneous) 카테고리의 개체명인,
개체명 인식 기반의 디바이스 정보 식별 방법.
The method of claim 12,
The first entity name is an organization category (organization) category or other (miscellaneous) entity name,
Method for identifying device information based on object name recognition.
제1 항에 있어서,
상기 복수의 후보 CPE를 얻는 단계는,
상기 복수의 검색 키워드로 CPE 사전을 조회하고, 상기 조회 결과로 상기 복수의 후보 CPE를 얻는 단계를 포함하고,
상기 최종 CPE를 결정하는 단계는,
상기 개체명 인식의 결과로 얻어진 개체명 중 제1 개체명을 신규 CPE로 생성하여 등록하는 단계; 및
상기 신규 CPE를 상기 디바이스의 최종 CPE에 포함시키는 단계를 포함하되,
상기 제1 개체명에 포함된 어느 단어도 상기 복수의 후보 CPE와 연관된 키워드에 등장하지 않은 것인,
개체명 인식 기반의 디바이스 정보 식별 방법.
According to claim 1,
Obtaining the plurality of candidate CPE,
Querying a CPE dictionary with the plurality of search keywords, and obtaining the plurality of candidate CPEs as the search result,
Determining the final CPE,
Generating and registering a first object name as a new CPE among the object names obtained as a result of the object name recognition; And
Including the new CPE in the final CPE of the device,
None of the words included in the first entity name appear in keywords associated with the plurality of candidate CPEs.
Method for identifying device information based on object name recognition.
컴퓨팅 장치에 의하여 수행되는 방법으로서,
인터넷 연결된 디바이스에 송신한 요청(request)에 대한 응답(response)으로서 수신된 스캔 데이터를 분석하여, 복수의 검색 키워드를 얻는 단계;
상기 복수의 검색 키워드를 이용하여, 상기 디바이스와 관련된 복수의 CPE(Common Platform Enumeration)를 얻는 단계;
상기 스캔 데이터에 대한 개체명 인식(Named-Entity Recognition)의 결과로 얻어진 개체명 중 제1 개체명을 신규 CPE로 생성하는 단계; 및
상기 신규 CPE를 상기 디바이스와 관련된 상기 복수의 CPE에 더 포함시키는 단계를 포함하되,
상기 제1 개체명은 상기 복수의 CPE와 연관된 키워드에 등장하지 않은 것인,
개체명 인식 기반의 디바이스 정보 식별 방법.
A method performed by a computing device,
Analyzing received scan data as a response to a request sent to an internet-connected device to obtain a plurality of search keywords;
Obtaining a plurality of Common Platform Enumerations (CPEs) associated with the device using the plurality of search keywords;
Generating a first entity name as a new CPE among entity names obtained as a result of Named-Entity Recognition for the scan data; And
Including the step of further comprising the new CPE in the plurality of CPE associated with the device,
The first entity name does not appear in the keywords associated with the plurality of CPE,
Method for identifying device information based on object name recognition.
제15 항에 있어서,
상기 복수의 검색 키워드를 얻는 단계는,
상기 디바이스의 포트 중에서 오픈 포트를 스캔하는 단계;
상기 스캔의 결과로 배너 문자열을 획득하는 단계; 및
상기 배너 문자열로부터 상기 복수의 검색 키워드를 추출하는 단계를 포함하는,
개체명 인식 기반의 디바이스 정보 식별 방법.
The method of claim 15,
The step of obtaining the plurality of search keywords,
Scanning an open port among the ports of the device;
Obtaining a banner string as a result of the scan; And
And extracting the plurality of search keywords from the banner string,
Method for identifying device information based on object name recognition.
제15 항에 있어서,
상기 디바이스와 관련된 복수의 CPE를 얻는 단계는,
상기 개체명 인식의 결과로 얻어진 개체명과 상기 복수의 CPE와 연관된 키워드를 비교하는 단계; 및
상기 비교 결과에 기초하여 상기 복수의 CPE 중 적어도 일부를 제거하는 단계를 포함하는,
개체명 인식 기반의 디바이스 정보 식별 방법.
The method of claim 15,
Obtaining a plurality of CPE associated with the device,
Comparing an entity name obtained as a result of the entity name recognition with a keyword associated with the plurality of CPEs; And
And removing at least some of the plurality of CPEs based on the comparison result.
Method for identifying device information based on object name recognition.
제15 항에 있어서,
상기 제1 개체명은 기관명(organization) 카테고리의 또는 기타(miscellaneous) 카테고리의 개체명인,
개체명 인식 기반의 디바이스 정보 식별 방법.
The method of claim 15,
The first entity name is an organization category (organization) category or other (miscellaneous) entity name,
Method for identifying device information based on object name recognition.
제15 항에 있어서,
상기 제1 개체명에 포함된 어느 단어도 상기 복수의 후보 CPE와 연관된 키워드에 등장하지 않은 것인,
개체명 인식 기반의 디바이스 정보 식별 방법.
The method of claim 15,
None of the words included in the first entity name appear in keywords associated with the plurality of candidate CPEs.
Method for identifying device information based on object name recognition.
제15 항에 있어서,
상기 제1 개체명에 포함된 키워드에 제품명(product) 카테고리를 부여하여 학습 데이터셋을 생성하는 단계; 및
상기 학습 데이터셋을 이용하여 개체명 인식 모델을 학습하는 단계를 더 포함하는,
개체명 인식 기반의 디바이스 정보 식별 방법.
The method of claim 15,
Generating a learning dataset by assigning a product category to keywords included in the first entity name; And
Further comprising the step of learning the object name recognition model using the learning data set,
Method for identifying device information based on object name recognition.
하나 이상의 인스트럭션들(instructions)을 저장하는 메모리; 및
상기 하나 이상의 인스트럭션들을 실행함으로써,
인터넷 연결된 디바이스에 송신한 요청(request)에 대한 응답(response)으로서 수신된 스캔 데이터를 분석하여 복수의 검색 키워드를 획득하고, 상기 복수의 검색 키워드를 이용하여 상기 디바이스와 관련된 복수의 후보 CPE(Common Platform Enumeration)를 획득하며, 상기 스캔 데이터에 대한 개체명 인식(Named-Entity Recognition)의 결과로 얻어진 개체명과 상기 후보 CPE와 연관된 키워드를 비교하고, 상기 비교 결과를 기초로 상기 복수의 후보 CPE 중 적어도 일부를 제거하여 상기 디바이스의 최종 CPE를 결정하는 프로세서를 포함하되,
상기 최종 CPE의 결정은, 상기 복수의 후보 CPE 중 제1 후보 CPE와 연관된 키워드에 상기 개체명이 포함되지 않은 경우 상기 제1 후보 CPE를 제거하는 것을 포함하는,
디바이스 정보 식별 장치.
A memory that stores one or more instructions; And
By executing the one or more instructions,
A plurality of search keywords are obtained by analyzing scan data received as a response to a request sent to an Internet-connected device, and a plurality of candidate CPEs (Commons) associated with the device are obtained by using the plurality of search keywords Platform Enumeration), compares the entity name obtained as a result of Named-Entity Recognition to the scan data with keywords associated with the candidate CPE, and based on the comparison result, at least one of the plurality of candidate CPEs. Including a processor to determine the final CPE of the device by removing a portion,
The determination of the final CPE includes removing the first candidate CPE when the object name is not included in a keyword associated with the first candidate CPE among the plurality of candidate CPEs.
Device information identification device.
KR1020180140533A 2018-11-15 2018-11-15 Method for identifying device information based on named-entity recognition and apparatus thereof KR102130944B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180140533A KR102130944B1 (en) 2018-11-15 2018-11-15 Method for identifying device information based on named-entity recognition and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180140533A KR102130944B1 (en) 2018-11-15 2018-11-15 Method for identifying device information based on named-entity recognition and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20200056627A KR20200056627A (en) 2020-05-25
KR102130944B1 true KR102130944B1 (en) 2020-07-07

Family

ID=70914337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180140533A KR102130944B1 (en) 2018-11-15 2018-11-15 Method for identifying device information based on named-entity recognition and apparatus thereof

Country Status (1)

Country Link
KR (1) KR102130944B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101806118B1 (en) * 2016-11-04 2017-12-07 한국인터넷진흥원 Method and Apparatus for Identifying Vulnerability Information Using Keyword Analysis for Banner of Open Port

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102598273B1 (en) * 2015-09-01 2023-11-06 삼성전자주식회사 Method of recommanding a reply message and device thereof
KR20180094633A (en) 2017-02-16 2018-08-24 엘에스산전 주식회사 Method for identifying state of device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101806118B1 (en) * 2016-11-04 2017-12-07 한국인터넷진흥원 Method and Apparatus for Identifying Vulnerability Information Using Keyword Analysis for Banner of Open Port

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
B. Cheikes et al., Common Platform Enumeraion: Naming Specification Version 2.3, NIST (2011.08.19)
E. Ko et al., Management platform of threats information in IoT environment, Jour. of Ambient Intelligence and Humanized Computing (2017.09.23)
고은혜, 고려대학교 석사학위 논문, 네트워크 스캐닝 정보를 활용한 IoT 디바이스 취약점 분석 (2018.06)
김계영 외, CEP 기반의 스마트 홈 IoT 디바이스 원격 제어 정책 관리 시스템 설계, 한국정보통신학회 2016년 추계학술대회 논문집, pp.576-578 (2016.10.25)
윤영석 외, 사물인터넷 신뢰 연구와 시사점: EU FP7을 중심으로, 한국정보화진흥원 정보화정책 pp.56-73 (2016)
한국인터넷진흥원, IoT 보안 시험 인증 기준 안내 (2017.11.15)

Also Published As

Publication number Publication date
KR20200056627A (en) 2020-05-25

Similar Documents

Publication Publication Date Title
US11212297B2 (en) Access classification device, access classification method, and recording medium
US20190147167A1 (en) Apparatus for collecting vulnerability information and method thereof
KR101893090B1 (en) Vulnerability information management method and apparastus thereof
EP3287909B1 (en) Access classification device, access classification method, and access classification program
WO2018159010A1 (en) Selection device, selection method, and selection program
KR101806118B1 (en) Method and Apparatus for Identifying Vulnerability Information Using Keyword Analysis for Banner of Open Port
CN111800404B (en) Method and device for identifying malicious domain name and storage medium
US20210136032A1 (en) Method and apparatus for generating summary of url for url clustering
US20190243895A1 (en) Contextual Analogy Representation
CN113961768B (en) Sensitive word detection method and device, computer equipment and storage medium
US10133736B2 (en) Contextual analogy resolution
KR20200063067A (en) Apparatus and method for validating self-propagated unethical text
KR102130944B1 (en) Method for identifying device information based on named-entity recognition and apparatus thereof
US20180137102A1 (en) Multilingual Idiomatic Phrase Translation
CN113688240B (en) Threat element extraction method, threat element extraction device, threat element extraction equipment and storage medium
CN115150354A (en) Method and device for generating domain name, storage medium and electronic equipment
KR20180050163A (en) Method and Apparatus for Classifying Vulnerability Information Based on Machine Learning
KR101893029B1 (en) Method and Apparatus for Classifying Vulnerability Information Based on Machine Learning
CN114024701A (en) Domain name detection method, device and communication system
WO2021149317A1 (en) Inference system, inference method, and inference program
WO2021106306A1 (en) Label assignment device and label assignment program
EP3905608B1 (en) Inference method, inference device, and inference program
KR20180050205A (en) Method and Apparatus for Identifying Vulnerability Information Using Keyword Analysis for Banner of Open Port
CN113849803A (en) Terminal type identification method and device, electronic equipment and storage medium
CN115238044A (en) Sensitive word detection method, device and equipment and readable storage medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant