KR101779327B1 - 룰 기반 핑거프린트 생성 방법 및 그 장치 - Google Patents
룰 기반 핑거프린트 생성 방법 및 그 장치 Download PDFInfo
- Publication number
- KR101779327B1 KR101779327B1 KR1020160155601A KR20160155601A KR101779327B1 KR 101779327 B1 KR101779327 B1 KR 101779327B1 KR 1020160155601 A KR1020160155601 A KR 1020160155601A KR 20160155601 A KR20160155601 A KR 20160155601A KR 101779327 B1 KR101779327 B1 KR 101779327B1
- Authority
- KR
- South Korea
- Prior art keywords
- service
- fingerprint
- packet
- information
- scan
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0861—Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/695—Types of network addresses using masks or ranges of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Biomedical Technology (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명의 일 태양에 따른 기기 정보 수집 방법은, 기기 정보 수집 장치가, 랜덤으로 생성한 IP로 패킷을 전송하고, 그에 대한 응답으로 syn-ack 패킷을 수신하는 단계와 상기 기기 정보 수집 장치가, 상기 syn-ack 패킷을 파싱하여 TCP/IP 필드를 추출하는 단계 및 상기 기기 정보 수집 장치가, 상기 TCP/IP 필드와 JSON 형태의 OS 핑거프린트 룰을 비교하여, 상기 IP의 OS 핑거프린트를 생성하는 단계를 포함하되, 상기 OS 핑거프린트 룰은 운영체제 및 상기 운영체제의 버전에 따른 상기 TCP/IP 필드의 값을 속성과 값의 쌍으로 저장한 것이다.
Description
본 발명은 룰 기반으로 핑거프린트(fingerprint)를 생성하는 방법 및 그 장치에 관한 발명이다. 보다 자세하게는, 인터넷에 연결된 수 많은 IoT(Internet of Things) 기기를 스캔(scan)하고, 정보를 수집하기 위한 핑거프린트를 룰 기반으로 생성하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.
시스코(Cisco)와 휴렛패커드(HP)가 내놓은 한 통계 자료를 참고하면, 2010년의 세계 인구의 수는 68억명인데 비해, 인터넷을 사용할 수 있는 기기의 수는 125억개에 달한다. 그리고 2015년에는 세계 인구의 수는 72억명인데 비해, 인터넷을 사용할 수 있는 기기의 수는 250억개에 달한다.
이와 같은 증가 추세는 점점 커져서, 2020년에는 세계 인구의 수는 76억명, 인터넷을 사용할 수 있는 기기의 수는 500억개로 예상된다. 그리고, 2025년에는 세계 인구의 수는 81억명, 인터넷을 사용할 수 있는 기기의 수는 1조개로 예상된다. 이처럼 인구의 증가에 비해 IoT 기기의 증가는 폭발적이라 할 만하다.
이렇게 IoT 기기의 수가 기하급수적으로 증가하다 보니, IoT 기기와 관련된 문제점도 등장하고 있다. 예를 들면, "당신의 사생활이 생중계된다. 검색 엔진 A 피해 속출" 제목의 뉴스 기사를 따르면, 홈 해커들이 웹 캠의 공장 초기 비밀번호를 이용하여, 각 가정에 설치된 웹 캠이 촬영한 동영상을 IoT 검색 엔진 A를 통해 그대로 전송 받는 사건이 발생했다. 일반적인 컴퓨터에 비해서 IoT 기기에 대한 보안이 소홀한 점을 틈타 발생한 사건이다.
이러한 문제점을 해결하기 위해서는 IoT 기기의 보안 취약점을 검색하고 예방할 수 있어야 한다. 즉, IoT 기기의 CVE(Common Vulnerabilities and Exposure)나 CWE(Common Weakness Enumeration) 등의 보안 취약점 정보를 분석할 필요가 있다.
IoT 기기의 보안 취약점을 검색하고 분석하기 위해서는 사전에 IoT 기기의 정보가 수집되어 있어야 한다. 즉 어떤 IP를 통해서 어떤 IoT 기기가 연결되어 있는지 정보가 사전에 수집되어 있어야 한다. 그래야 해당 IP의 해당 IoT 기기의 취약점을 분석하고 조치를 취할 수 있다. 이에 IoT 기기에 특화된 기기 정보 수집 방법이 요구된다.
본 발명이 해결하고자 하는 기술적 과제는 룰 기반으로 핑거프린트를 생성하는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 태양에 따른 기기 정보 수집 방법은, 기기 정보 수집 장치가, 랜덤으로 생성한 IP로 패킷을 전송하고, 그에 대한 응답으로 syn-ack 패킷을 수신하는 단계와 상기 기기 정보 수집 장치가, 상기 syn-ack 패킷을 파싱하여 TCP/IP 필드를 추출하는 단계 및 상기 기기 정보 수집 장치가, 상기 TCP/IP 필드와 JSON 형태의 OS 핑거프린트 룰을 비교하여, 상기 IP의 OS 핑거프린트를 생성하는 단계를 포함하되, 상기 OS 핑거프린트 룰은 운영체제 및 상기 운영체제의 버전에 따른 상기 TCP/IP 필드의 값을 속성과 값의 쌍으로 저장한 것이다.
일 실시 예에서, 상기 기기 정보 수집 장치가, 상기 IP의 기 설정된 포트로 상기 포트에 따른 프로토콜의 패킷을 전송하고, 그에 대한 응답으로 트래픽을 수신하는 단계와 상기 기기 정보 수집 장치가, 상기 트래픽에서 배너 정보 및 서비스 정보를 추출하는 단계 및 상기 기기 정보 수집 장치가, 상기 배너 정보 및 서비스 정보와 JSON 형태의 서비스 핑거프린트 룰을 비교하여, 상기 IP의 상기 포트의 서비스 핑거프린트를 생성하는 단계를 더 포함하되, 상기 서비스 핑거프린트 룰은 서비스를 제공하는 어플리케이션 및 상기 어플리케이션 버전에 따른 상기 배너 정보 및 서비스 정보의 값을 속성과 값의 쌍으로 저장한 것이다.
다른 실시 예에서, 상기 포트는, FTP, SSH, Telnet, SMTP, DNS, HTTP, POP3, IMAP, SIP, RTSP 서비스를 제공하는 포트 중에서 하나이다.
또 다른 실시 예에서, 상기 기기 정보 수집 장치가, 상기 OS 핑거프린트와 상기 서비스 핑거프린트를 JSON 형태로 제공하는 단계를 더 포함할 수 있다.
또 다른 실시 예에서, 상기 기기 정보 수집 장치가, 상기 IP의 기 설정된 포트로 상기 포트에 따른 프로토콜의 패킷을 전송하는 것을 스케줄링 하는 단계를 더 포함할 수 있다.
또 다른 실시 예에서, 상기 랜덤으로 생성한 IP로 패킷을 전송하고, 그에 대한 응답으로 syn-ack 패킷을 수신하는 단계는, 제1 IP 대역에 속하는 상기 IP를 랜덤으로 생성하고, 상기 IP로부터 syn-ack 패킷을 수신한 후에는 제1 IP 대역의 Hit-List에 상기 IP를 추가하는 단계를 포함할 수 있다.
또 다른 실시 예에서, 상기 기기 정보 수집 장치가, 상기 랜덤으로 생성한 IP로 패킷을 전송하는 것을 스케줄링 하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 태양에 따른 기기 정보 수집 장치는, 랜덤으로 생성한 IP로 패킷을 전송하고, 그에 대한 응답으로 syn-ack 패킷을 수신하는 IP 스캔 모듈 및 상기 syn-ack 패킷을 파싱하여 TCP/IP 필드를 추출하고, 상기 TCP/IP 필드와 JSON 형태의 OS 핑거프린트 룰을 비교하여, 상기 IP의 OS 핑거프린트를 생성하는 핑거프린트 생성 모듈을 포함하되, 상기 OS 핑거프린트 룰은 운영체제 및 상기 운영체제의 버전에 따른 상기 TCP/IP 필드의 값을 속성과 값의 쌍으로 저장한 것이다.
일 실시 예에서, 상기 IP의 기 설정된 포트로 상기 포트에 따른 프로토콜의 패킷을 전송하고, 그에 대한 응답으로 트래픽을 수신하는 서비스 스캔 모듈을 더 포함하고, 상기 핑거프린트 생성 모듈은, 상기 트래픽에서 배너 정보 및 서비스 정보를 추출하고, 상기 배너 정보 및 서비스 정보와 JSON 형태의 서비스 핑거프린트 룰을 비교하여, 상기 IP의 상기 포트의 서비스 핑거프린트를 생성하고, 상기 서비스 핑거프린트 룰은 서비스를 제공하는 어플리케이션 및 상기 어플리케이션 버전에 따른 상기 배너 정보 및 서비스 정보의 값을 속성과 값의 쌍으로 저장한 것이다.
다른 실시 예에서, 상기 랜덤으로 생성한 IP로 패킷을 전송하는 것과 상기 IP의 기 설정된 포트로 상기 포트에 따른 프로토콜의 패킷을 전송하는 것을 스케줄링 하는 스케줄링 모듈을 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 컴퓨터 프로그램은 컴퓨터를 이용하여 기기 정보 수집 장치가, 랜덤으로 생성한 IP로 패킷을 전송하고, 그에 대한 응답으로 syn-ack 패킷을 수신하는 단계와 상기 기기 정보 수집 장치가, 상기 syn-ack 패킷을 파싱하여 TCP/IP 필드를 추출하는 단계 및 상기 기기 정보 수집 장치가, 상기 TCP/IP 필드와 JSON 형태의 OS 핑거프린트 룰을 비교하여, 상기 IP의 OS 핑거프린트를 생성하는 단계를 포함하되, 상기 OS 핑거프린트 룰은 운영체제 및 상기 운영체제의 버전에 따른 상기 TCP/IP 필드의 값을 속성과 값의 쌍으로 저장한 것의 방법을 실행시키기 위하여 저장매체에 저장된 컴퓨터 프로그램이다.
본 발명의 실시 예에 따른 효과는 다음과 같다.
본 발명을 이용하면 IP를 스캔하고, 서비스를 스캔하여 IoT 기기의 핑거프린트를 생성할 수 있다. 이 과정에서 병목 현상 및 보안 장비에서 차단 문제를 해결하기 위해 순차적으로 IP를 탐색하는 것이 아니라, 랜덤 IP를 생성하고, 이를 이용하여 IP 스캔을 수행한다. IP가 활성화 상태일 경우 해당 IP에 대해 서비스 스캔을 수행한다.
또한, IP 스캔과 서비스 스캔을 스케줄링 할 수 있다. 그리고 IP 스캔 결과와 서비스 스캔 결과를 이용하여 IoT 기기의 핑거프린트를 생성한다. 특히 이 과정에서 룰 기반으로 IoT 기기의 핑거프린트를 생성하기 때문에 손쉽게 IoT 기기의 정보를 수집할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시 예에 따른 IoT 기기 정보 수집 장치의 기능을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 IoT 기기 정보 수집 장치의 구성도이다.
도 3a 내지 도 3g는 본 발명의 일 실시 예에 따른 IoT 기기 정보 수집 장치의 각 모듈을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른, IP 스캔 과정을 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시 예에 따른 서비스 스캔 과정을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 핑거프린트 생성 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 핑거프린트 생성 과정을 설명하기 위한 순서도이다.
도 8a 내지 도 8b는 본 발명의 일 실시 예에서 사용될 수 있는 IP 스캔 결과와 서비스 스캔 결과의 예시도이다.
도 9a 내지 도 9b는 본 발명의 일 실시 예에서 활용될 수 있는 OS 핑거프린트와 스캔 결과 레포트를 설명하기 위한 도면이다.
도 10a 내지 도 10b는 본 발명의 일 실시 예에 따른 OS 핑거프린트를 생성하기 위한 룰과 그 룰에 의한 핑거프린트 결과를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 IoT 기기 정보 수집 장치의 구성도이다.
도 3a 내지 도 3g는 본 발명의 일 실시 예에 따른 IoT 기기 정보 수집 장치의 각 모듈을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른, IP 스캔 과정을 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시 예에 따른 서비스 스캔 과정을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 핑거프린트 생성 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 핑거프린트 생성 과정을 설명하기 위한 순서도이다.
도 8a 내지 도 8b는 본 발명의 일 실시 예에서 사용될 수 있는 IP 스캔 결과와 서비스 스캔 결과의 예시도이다.
도 9a 내지 도 9b는 본 발명의 일 실시 예에서 활용될 수 있는 OS 핑거프린트와 스캔 결과 레포트를 설명하기 위한 도면이다.
도 10a 내지 도 10b는 본 발명의 일 실시 예에 따른 OS 핑거프린트를 생성하기 위한 룰과 그 룰에 의한 핑거프린트 결과를 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
우선 본 발명에서 사용하는 용어에 대해 간단히 정리하면 다음과 같다. IP 스캔이란 IPv4의 지정된 대역에 대한 Hit-List를 생성하는 것을 말한다. 즉 랜덤하게 생성된 IP 주소에 패킷을 전송하여 해당 IP에 대응되는 IoT 기기가 있는지 스캔하는 과정을 말한다.
다음으로 서비스 스캔이란 IP 스캔 결과를 바탕으로 IP가 활성화 되어 있는 경우에 한해, 해당 IP의 포트를 스캔하는 것을 말한다. 즉 특정 IP의 특정 포트가 서비스를 제공 중인지 확인하는 것을 말한다. 서비스 스캔의 대상이 되는 포트의 수에 제한이 있는 것은 아니나, 일반적으로 주로 사용하는 15개의 프로토콜에 대해서 서비스 정보를 획득한다.
다음으로 스캔 스케줄링이란 IP 스캔과 서비스 스캔을 스케줄링 하는 것을 말한다. IP 스캔은 지정된 대역의 IP에 대한 스캔을 수행하는데 경우에 따라서는 그 수가 수천 수만을 넘는 경우도 많다. 게다가 서비스 스캔은 하나의 IP에 대해서 15개의 프로토콜을 확인하므로 서비스 스캔의 회수는 더 많을 수밖에 없다. 이런 대량의 작업은 스케줄링을 통해서 효율적으로 수행해야 한다. 스캔 스케줄링은 이와 관련된 기능이다.
다음으로 핑거프린트 생성이란, 룰 기반으로 핑거프린트를 정의하고 IP 스캔 결과와 서비스 스캔 결과를 이용하여 IoT 기기의 핑거프린트를 생성하는 것을 말한다. 즉 IP 스캔 결과를 이용하여 TCP/IP 패킷 기반 OS 핑거프린트를 생성하고, 서비스 스캔 결과를 이용하여 서비스 배너 기반 서비스 핑거프린트를 생성한다.
다음으로 성능 모니터링이랑 IP 스캔과 서비스 스캔의 속도를 측정하고, 스캔 진행률이나 응답률을 측정하는 것을 말한다. 즉 IoT 기기의 정보를 수집하는 장치의 성능을 모니터링 하는 것을 말한다. 이는 추후 스캔 스케줄링에 활용될 수 있다.
시스템 관리는 IoT 기기의 정보를 수집하는 장치의 CPU, 디스크, 메모리 사용률 등 시스템 리소스를 관리하고 프로세스의 오류를 점검하는 기능을 말한다. 이를 통해 각 모듈의 원활한 수행을 모니터링하고 관리할 수 있다.
이하, 본 발명에 대하여 첨부된 도면에 따라 더욱 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 IoT 기기 정보 수집 장치의 기능을 설명하기 위한 도면이다.
도 1을 참고하면 본 발명의 IoT 기기 정보 수집 장치(10)는 인터넷에 연결된 다양한 종류의 IoT 기기(111, 112, 113, 114, 115, 116, 117, 118)의 정보를 수집한다. 예를 들면, 냉장고(111), 세탁기(112), 게임기(113), 컴퓨터(114), 스마트폰(115), 스마트 워치(116), 전등(117), 난방기(118) 등이 있다.
도 1에 예시된 IoT 기기 외에도 다양한 종류의 IoT 기기가 더 있을 수 있다. 예를 들면 도어락(door-lock)이나, 창문, 인덕터, 에어컨, 텔레비전, 스마트 밴드 등 최근에는 다양한 기기에 인터넷을 접목하여 서비스를 제공하고 있다. 도 1의 111 내지 118은 발명의 이해를 돕기 위한 IoT 기기의 예시에 불과하다.
본 발명의 IoT 기기 정보 수집 장치(10)는 인터넷을 통하여 IoT 기기의 IP와 포트를 스캔하고 그 결과를 핑거프린트를 이용하여 저장하는 장치이다. IoT 기기는 유선/무선 등 다양한 방식으로 인터넷에 연결되어 있다. IoT 기기는 인터넷에 연결되어 서비스를 제공하고 있으므로 필수적으로 IP를 가지고 있다. 그러므로 특정 IP에는 어떤 IoT 기기가 있는지 정보를 수집하는 것이 본 발명의 IoT 기기 정보 수집 장치(10)의 목적이다.
이를 위해서 지정된 범위 내에서 IP를 생성한다. 예를 들면, IPv4를 기준으로 0.0.0.0부터 127.255.255.255 대역의 IP에 대해서 어떠한 IP가 있는지 조사할 수 있다. 조사 대상이 되는 IP 대역은 다양하게 지정할 수 있다. 만약 이를 지정하지 않는다면, 모든 IP에 대해 IP 스캔을 수행할 수도 있다.
만약 0.0.0.0부터 127.255.255.255 대역까지 범위가 지정되어 있는 경우 해당 대역에서 IP를 순차적으로 스캔한다면 다양한 문제가 발생할 수 있다. 즉 0.0.0.0을 스캔하고 다음에는 0.0.0.1을 스캔하고 그 다음에는 0.0.0.2를 스캔하는 방식으로 순차적으로 IP를 스캔하면 단위 네트워크에 스캔 트래픽으로 인한 병목 현상이 발생할 수 있다. 또한 상대방 보안 장비에서 DDoS 공격으로 인식하고 IoT 기기 정보 수집 장치(10)의 접근을 차단할 수 있다.
그러므로 지정된 대역에서 IP를 랜덤하게 생성하여 IP 스캔을 수행할 필요가 있다. 만약 0.0.0.0부터 127.255.255.255 대역까지 범위가 지정되어 있는 경우, 0.0.0.0을 스캔하고 다음에는 119.203.20.23을 스캔하고, 다음에는 60.41.0.2를 스캔하는 방식으로 랜덤하게 IP를 스캔할 수 있다. 이렇게 랜덤 방식으로 IP를 스캔하는 경우에는 어떤 IP를 스캔했는지 어떤 IP를 아직 스캔하지 않았는지 스케줄링 하는 것이 매우 중요해진다. 이에 대해서는 추후 도 3a 내지 도 3g에서 보다 자세히 설명하기로 한다.
다시 도 1을 참고하면, 랜덤으로 IP를 생성하고, 생성한 IP에 패킷을 전송하여 응답을 하는지 확인한다. 즉 IP가 활성화 되어 있는지 스캔한다. 만약 IP가 활성화 되어 있다면, 해당 IP에 대해 최소 15개 정도의 포트에 대해서 서비스 스캔을 수행한다.
다음으로 IP 스캔 결과와 서비스 스캔 결과를 이용하여 핑거프린트를 생성한다. 이때 핑거프린트를 룰 기반으로 생성할 수 있다. 그리고 그 결과를 JSON(JavaScript Object Notation) 형태로 제공할 수 있다. 여기서 JSON이란, 속성-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신 (AJAJ)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다.
도 2는 본 발명의 일 실시 예에 따른 IoT 기기 정보 수집 장치의 구성도이다.
도 2를 참고하면, IoT 기기의 예로 컴퓨터(114)와 스마트폰(115)이 예시되어 있다. 이는 이해의 편의를 돕기 위해 도 1의 IoT 기기 중에서 일부만 표시한 것이다. 인터넷에 연결되어 있는 IoT 기기(114, 115)에 대한 정보를 수집하기 위해 본 발명의 IoT 기기 정보 수집 장치(10)를 활용할 수 있다.
본 발명의 IoT 기기 정보 수집 장치(10)는 크게 IP 스캐너(220), 서비스 스캐너(230)와 이 둘을 스케줄링 하는 스캔 스케줄링(210)을 포함할 수 있다. 또한, IoT 기기 정보 수집 장치(10)는 스캔 결과를 이용하여 핑거프린트를 생성하는 핑거프린트 생성기(240), 그 결과를 리포트로 생성하는 리포트 생성기(260)를 포함할 수 있다. 또한 시스템 관리(250)와 성능 측정기(270)를 더 포함할 수 있다.
도 2에서 도시한 IoT 기기 정보 수집 장치(10)의 각 모듈(210, 220, 230, 240, 250, 260, 270)에 대해서는 도 3a 내지 도 3g에서 보다 자세히 설명하기로 한다. 다만, 도 2에 도시한 IoT 기기 정보 수집 장치(10)를 통해서 IP와 포트를 스캔하고 그 결과를 저장하고 관리할 수 있다. 이는 추후 IoT 기기의 취약점을 분석할 때 활용될 수 있다.
본 발명의 IoT 기기 정보 수집 장치(10)를 이용하면 IP와 포트를 스캔할 수 있다. 이때 IP는 단위 네트워크에 대한 스캔 트래픽으로 병목 현상이 발생하는 것을 예방하기 위해 랜덤으로 IP를 생성하여 스캔을 진행한다. 또한 이는 상대방 보안장비에 의한 차단을 예방할 수도 있다.
생성된 IP를 대상으로 활성화를 확인한 후에는, 활성화된 IP와 TPC/IP의 필드를 추출하여 저장한다. 또한, 활성화된 IP를 대상으로 각 프로토콜 기반 Handshake를 이용하여 서비스 스캔을 수행한다. 서비스 스캔은 활성화 스캔을 수행한 포트를 대상으로 프로토콜 기반의 Handshake를 수행하는 것을 의미한다. 이때 스캔 단계의 효율성을 위해 스케줄링을 수행한다.
다음으로 스캔한 결과를 이용하여 IoT 기기에 대한 정보를 생성한다. 즉 IP 상태 스캔 후 생성되는 정보를 이용하여 OS 핑거프린트를 생성한다. 이는 스캔 대상 IP의 ack 패킷에서 추출한 TCP/IP 필드 정보를 이용하여 생성할 수 있다. 또한 IP 스캔 결과와 서비스 스캔 결과를 이용하여 배너(banner) 정보를 추출하고, 서비스 버전, 프로토콜 통신 내역을 생성한다. 마지막으로 생성된 정보를 이용하여 IoT 기기 취약점 분석 장치로 전송할 레포트를 생성한다.
마지막으로 관리 기능은 각 스캔 단계 별 성능을 모니터링 하기 위해 IoT 기기 정보 수집 장치(10)의 CPU, 메모리 사용량 및 전송속도, 스캔 진행률 등을 측정한다. 그리고 시스템 관리를 위해 각 단계에서 실행되는 프로세스, 생성 파일, 리소스 및 수집 상태를 관리한다.
도 3a 내지 도 3g는 본 발명의 일 실시 예에 따른 IoT 기기 정보 수집 장치의 각 모듈을 설명하기 위한 도면이다.
도 3a를 참고하면, 스캔 스케줄링(210) 모듈의 내부 구조를 확인할 수 있다. 스캔 스케줄링(210) 모듈은 IP 스캔 스케줄링(213) 모듈과 서비스 스캔 스케줄링(215) 모듈 및 이를 실행할 스레드 관리(211) 모듈을 포함한다. 스레드 관리(211) 모듈을 통해 멀티-스레드를 생성하면 IP 스캔이나 서비스 스캔을 병렬처리 할 수 있다.
다음으로 도 3b를 참고하면, IP 스캐너(220) 모듈의 내부 구조를 확인할 수 있다. IP 스캐너(220) 모듈은 지정된 IP 대역에서 상태를 확인한 IP와 확인하지 않은 IP를 구분하기 위한 Hit-List 관리(221) 모듈을 포함할 수 있다. 즉 IP 상태를 확인한 IP는 Hit-List에 목록으로 추가하는 것이다.
다음으로 랜덤으로 생성된 IP의 활성화 여부를 확인하기 위한 패킷 생성(223) 모듈, 패킷 송수신(225) 모듈 및 그 응답을 분석할 패킷 파싱(227) 모듈을 포함할 수 있다. 여기서 IP는 IPv4 및 IPv6를 모두 포함한다. 여기서 패킷은 TCP, UDP, ICMP 등 다양한 프로토콜로 생성될 수 있다.
다음으로 도 3c를 참고하면, 서비스 스캐너(230) 모듈의 내부 구조를 확인할 수 있다. 서비스 스캐너(230) 모듈은 포트에 제공하는 각 서비스를 확인하기 위해, 프로토콜 별 정보 관리(231) 모듈과 해당 정보를 이용하여 포트의 활성화를 확인하는 서비스 스캔(233) 모듈을 포함할 수 있다.
여기서 서비스 스캐너(230) 모듈이 확인하는 포트의 예로 FTP, SSH, Telnet, SMTP, DMS, HTTP, POP3, IMAP, SIP, RTSP 등을 들 수 있다. 이는 어플리케이션에서 서비스를 제공하기 위해 주로 사용되는 포트로 이를 표로 정리하면 다음의 표 1과 같다.
Port | Application | Protocol |
20 | FTP Data | TCP |
21 | FTP Control | TCP |
23 | Telnet | TCP |
25 | SMTP | TCP |
60 | TFTP | UDP |
80 | HTTP | TCP |
110 | POP3 | TCP |
194 | IRC | TCP |
443 | HTTPS | TCP |
520 | RIP | UDP |
이를 흔히 잘 알려진 포트(Well Known Port)라 한다. 표 1에 정리된 포트 외에도 다른 포트가 더 있다. 표 1의 예는 이해의 편의를 돕기 위한 예일 뿐이다.
스캔 스케줄링(210) 모듈, IP 스캐너(220) 모듈 및 서비스 스캐너(230) 모듈이 IoT 기기 정보 수집 장치(10)의 스캔 기능을 담당한다. 스캔 기능은 IoT 기기의 정보를 획득하기 위한 모들 행위를 말한다.
여기서 IP 스캔은 서비스 스캔을 효율적으로 수행하기 위해서 활성화된 IP를 필터링하는 기능을 수행한다. IP 스캐너(220) 모듈은 서비스 스캔을 효율적으로 수행하기 위해 Hit-List를 생성하며 이는 지정된 범위의 IP 대역에 대해서 수행할 수 있다. 또는 IPv4 전 대역에 대해서 스캔을 수행하고 활성화된 IP의 리스트를 생성할 수 있다.
이때 활성화된 IP의 목록을 생성하기 위해 오픈소스인 ZMap을 이용할 수 있다. ZMap은 http://zmap.io/ 사이트에서 제공중인 오프소스로 인터넷을 통해 접속할 수 있는 기기의 정보를 수집하기 위한 오픈소스이다. ZMap을 기반으로 IP 스캐너(220) 모듈을 구현하고, IP의 활성화 여부를 확인한다.
다음으로 서비스 스캐너(230)는 오픈 된 포트에 프로토콜 기반의 Handshake를 수행하여 서비스 및 배너 정보를 가져오는 역할을 담당한다. 여기서 배너 정보란 환영 메시지를 말한다. 예를 들면 FTP를 접속하면 노출되는 환영 메시지를 말한다. 환영 메시지에는 서비스에 대한 정보를 포함하고 있으므로 이를 분석하는 것이다.
이때 활성화된 포트의 목록을 생성하기 위해서 오픈소스인 ZGrab를 이용할 수 있다. ZGrab은 http://github.com/zmap/zgrab 사이트에서 제공중인 오픈소스로 ZMap과 연동하여 어플리케이션 레벨에서 스캔을 수행하는 오픈소스이다. ZGrab를 기반으로 서비스 스캐너(230) 모듈을 구현하고, 포트의 활성화 여부를 확인한다.
그리고 스캔 단계별 효율성을 위해 스케줄링 기법을 적용할 수 있다. 이는 스캔 스케줄링(210)에서 담당한다. 여기서 IP 스캐너(220)를 구현하기 위한 ZMap 오픈소스와 서비스 스캐너(230)를 구현하기 위한 ZGrab 오픈소스는 발명의 해를 돕기 위한 예일 뿐, 발명을 제한하고자 하는 것은 아니다.
다음으로 도 3d를 참고하면, 핑거프린트 생성기(240) 모듈의 내부 구조를 확인할 수 있다. 핑거프린트 생성기(240) 모듈은 OS 핑거프린트(241) 모듈, 서비스 핑거프린트(243) 모듈, 디바이스 핑거프린트(245) 모듈, 핑거프린트 룰(247) 모듈을 포함할 수 있다.
OS 핑거프린트(241) 모듈은 IP 스캔의 결과인 ack 패킷에서 추출한 TCP/IP 필드 정보를 이용하여 OS 핑거프린트를 생성할 수 있다. 서비스 핑거프린트(243) 모듈은 서비스 스캔 결과인 네트워크 트래픽 데이터의 배너 정보를 이용하여 서비스 핑거프린트를 생성할 수 있다.
다음으로 도 3e를 참고하면 시스템 관리(250) 모듈의 내부 구조를 확인할 수 있다. 시스템 관리(250) 모듈은 프로세스 관리(251) 모듈, 생성 파일 관리(253) 모듈, 리소스 관리(255) 모듈, 수집 상태 관리(257) 모듈을 포함할 수 있다.
다음으로 도 3f를 참고하면 리포트 생성기(260) 모듈의 내부 구조를 확인할 수 있다. 리포트 생성기(260) 모듈은 레포트 생성(261) 모듈과 분석 시스템 전송(263) 모듈을 포함할 수 있다. 레포트 생성(261) 모듈은 OS 핑거프린트와 서비스 핑거프린트를 JSON 형태의 결과로 생성할 수 있다. 그리고 분석 시스템 전송(263) 모듈은 JSON 형태의 결과를 IoT 취약점 분석 시스템으로 전송할 수 있다.
마지막으로 도 3g를 참고하면 성능 측정기(270) 모듈의 내부 구조를 확인할 수 있다. 성능 측정기(270) 모듈은 CPU 체크(271) 모듈, 메모리 체크(@73) 모듈, 전송 속도(275) 모듈, 스캔 진행률(277) 모듈을 포함할 수 있다.
핑거프린트 생성기(240) 모듈과 리포트 생성기(260) 모듈이 정보 생성 기능을 담당한다. 그리고 시스템 관리(250) 모듈과 성능 측정기(270) 모듈이 관리 기능을 담당한다. 관리 기능은 수집 시스템의 스캔 수행 및 성능 측정을 위해 시스템 관리와 성능 모니터링을 수행하는 것을 말한다. 시스템 관리는 각 모듈의 원활한 수행을 위해 프로세스, 리소스 및 생성 파일을 관리한다.
성능 모니터링은 수집 시스템의 성능 측정을 위해 주기적으로 CPU 및 메모리 사용량을 체크하고 송수신 패킷의 양을 체크한다. 그리고 IP 스캔을 지정한 범위 대비 스캔 진행률을 점검한다. 만약 IP 스캔을 지정한 범위가 IPv4 전역이라면, IPv4 전역 대비 스캔 진행률을 점검한다.
도 4는 본 발명의 일 실시 예에 따른 IP 스캔 과정을 설명하기 위한 순서도이다.
도 4를 참고하면 IP를 스캔하는 과정을 확인할 수 있다. IP 스캔은 스캔 타겟을 생성하기 위한 랜덤 IP 생성과 스캔 패킷을 송수신하는 과정, 패킷을 해석하는 과정을 포함한다. 즉, 랜덤으로 생성된 IP에 패킷을 송수신 한 후 응답 IP와 응답 패킷(syn-ack)의 정보를 이용하여 IP를 스캔한다.
도 4를 참고하면, 랜덤 IP를 생성하고(S1100), 해당 IP에 전송할 패킷을 생성한다(S1200). 다음으로 패킷을 송신하고(S1300), 응답을 기다린다(S1400). 만약 응답이 오지 않으면 다시 첨으로 돌아가 랜덤 IP를 생성하고(S1100), 패킷을 생성하고(S1200), 패킷을 송신한다(S1300).
만약 응답이 왔으면(S1400), 응답으로 받은 syn-ack 패킷을 분석한다(S1500). 분석된 결과를 스캔 결과 파일에 기록한다(S1600). 이때 해당 IP가 마지막 IP이면 IP 스캔을 종료하고, 아니면 다시 처음으로 돌아가 랜덤 IP를 생 성하고(S1100), 패킷을 생성하고(S1200), 패킷을 송신한다(S1300).
도 5는 본 발명의 일 실시 예에 따른 서비스 스캔 과정을 설명하기 위한 순서도이다.
도 5를 참고하면, 서비스 스캔은 IP 스캔 결과에 의해 생성된 활성화된 IP 리스트를 대상으로 프로토콜 특성에 기반한 통신을 이용하여 IoT 기기의 정보를 수집한다. 서비스 스캔은 IP 스캔의 결과인 Hit-List에서 IP를 추출하여 서비스 스캔에 활용할 IP리스트를 생성한다.
생성된 IP리트스를 토대로 해당 IP에서 사전에 설정된 포트 번호에 해당하는 프로토콜을 이용하여 서비스 연결을 요청하고 그에 대한 응답을 받는다. 응답 트래픽에서 필요한 데이터를 추출하고 이를 로그로 기록한다. 서비스 스캔은 IP 스캔의 결과인 활성화된 IP 목록과 스캔할 대상인 포트 번호를 입력으로 받고, 결과로 해당 포트로 접속한 로그를 생성한다.
도 5를 참고하면, IP 스캔 결과인 활성화된 IP 리스트를 제공 받고 이를 파싱한다(S2100). 그 결과로 서비스 스캔을 수행할 IP 리스트를 생성하고(S2200), 생성한 IP 리스트에 포함된 각 IP를 대상으로 서비스 스캔을 수행할 포트에 해당하는 프로토콜 기반으로 서비스를 요청한다(S2300).
서비스 요청에 대한 응답 트래픽을 수신하고(S2400), 응답 트래픽을 파싱하고(S2500), 파싱 결과를 로그로 저장한다(S2600). 다음으로 서비스 요청을 한 IP가 생성한 IP 리스트의 마지막 IP이면(S2700), 서비스 스캔을 종료하고, 아니면 다시 처음으로 돌아가 서비스를 요청한다(S2300).
도 6은 본 발명의 일 실시 예에 따른 핑거프린트 생성 과정을 설명하기 위한 도면이다.
도 6을 참고하면, 핑거프린트 생성기(240) 모듈은 JSON 형태의 핑거프린트 룰 파일(311)과 TXT 형태의 IP 스캔 결과 파일(312) 및 TXT 형태의 서비스 스캔 결과 파일(313)를 입력으로 이용한다. 물론 여기에 예시되어 있는 파일의 확장자는 발명의 이해를 돕기 위한 일 예일 뿐이다.
핑거프린트 룰 파일(311)을 JSON 룰 파서(314)를 이용하여 파싱하고, IP 스캔 결과 파일(312)는 TCP/IP 필드 룰 매칭(315)을 이용하여 OS 핑거프린트(316)를 생성한다. 그리고 서비스 스캔 결과 파일(313)은 배너 및 서비스 정보를 추출하고(317), 서비스 핑거프린트를 생성한다. 마지막으로 OS 핑거프린트와 서비스 핑거프린트를 종합하여 JSON 형태의 서비스 스캔 결과 파일(318)을 생성한다.
도 7은 본 발명의 일 실시 예에 따른 핑거프린트 생성 과정을 설명하기 위한 순서도이다.
도 7을 참고하면 OS 핑거프린트 룰을 로딩하고(S3100), 로딩한 OS 링거 프린트 룰을 파싱한다(S3200). 파싱한 OS 핑거프린트 룰과 IP 스캔 결과의 TCP/IP 필드값을 비교하고(S3300), 룰이 매칭되면 OS 핑거프린트를 생성한다(S3400).
만약 룰이 매칭되지 않으면 Unknown 결과를 생성한다(S3450). 다음으로 서비스 스캔 결과로 생성된 로그를 이용하여 배너 정보 및 서비스 정보를 추출하고(S3500), OS 핑거프린트와 배너 및 서비스 정보 데이터를 저장한다(S3600).
이렇게 JOSN 형태로 생성된 룰 기반으로 OS의 핑거프린트를 생성하는 이유는, 버전이 변경되거나 하는 경우 핑거프린트 방식이 바뀌므로 그 때마다 업데이트가 필요한데, 룰 기반으로 수행하면 룰만 추가하면 핑거프린트를 자동으로 생성할 수 있기 때문이다.
또한 IoT 기기 정보 수집 장치(10)의 운영체제에 따라 IoT 기기 정보 수집 장치(10)와 서비스 스캔을 수행한 IP의 운영체제의 응답이 이러한 부분까지 반영해서 TCP/IP의 필드값을 해석하므로 상대방 운영체제의 탐지의 정확도를 높일 수 있다.
TCP/IP의 필드값을 이용하여 운영체제를 탐지하는 방법에 대해서 보다 자세하게 설명하면, OS의 기본 설정에 따라 TCP/IP 통신을 할 때 패킷에 설정된 값들이 다소 차이가 있다. 이 점을 이용하면 TCP/IP 통신 패킷을 보고서 상대방 운영체제를 탐지할 수 있다. TCP/IP의 필드값 중에서 운영체제를 판별할 수 있는 값들을 정리하면 다음의 표 2와 같다.
구분 | 설명 |
Maximum Segment Size (MSS) | OS 에서 한번에 전송할 세그먼트 최대 사이즈를 뜻한다. |
Time To Live (TTL) | 패킷이 몇 개의 라우터를 거칠 때까지 살아있을지를 의미하는 값이다. 네트워크에서 루핑 현상을 막기 위해 사용한다. |
Sliding Window Size | TCP 흐름제어 기법인 슬라이딩 윈도우 의 Size 를 의미한다. |
TCP Options | TCP 플래그 값을 통한 옵션을 의미한다. |
Packet Length | 기본 패킷들의 길이를 의미한다. |
IP ID | IP 패킷에서 식별값을 의미한다. 단편화된 하나의 패킷을 표현할 때 사용한다. |
이러한 TCP/IP 필드값을 이용하여 OS를 판단하는 방법은 다음의 표 3과 같다. 이는 각 OS에서 SYN 패킷을 전송할 때 이 패킷을 TCPDUMP 로 확인하여 정리한 것이다.
OS | Linux | OpenBSD | Solaris7 | AIX 4.3 | Windows 2000 |
MSS | - | - | - | - | - |
TTL | 64 | 64 | 255 | 64 | 128 |
Window | 5840 | 16384 | 8760 | 16384 | 16384 |
TCP Options | Set MSS Timestamps sackOK wscale and 1nop |
Linux 와 동일. wscale and 5nop |
MSS | MSS | MSS sackOK 2nop |
Packet Length | 60 | 64 | 44 | 44 | 48 |
IP ID | - | Random 하게 변화 | 1씩 증가 | 1씩 증가 | 1씩 증가 |
여기서 sackOK는 선택적 승인 옵션을 의미한다. 그리고, wscale은 window scale을 의미하며, 이는 TCP window 가 send, receive 할 능력이 된다는 것을 통보하거나, 수신 윈도우 크기를 협상할 때 사용한다. Nop은 TCP 패킷을 OS 환경에 따라 4바이트(혹은 8바이트)로 맞추기 위해 사용하는 것이고, timestamp는 지연시간 계산을 위해 사용하는 것으로, 양쪽의 타임스탬프 값의 차이를 이용하여 계산한다.
TCP/IP의 필드값을 이용하여 상대방의 운영체제를 탐지하는 방법에 대한 자세한 설명은 http://nmap.org/nmap-fingerprinting-article.txt 사이트에서 확인할 수 있다.
도 8a 내지 도 8b는 본 발명의 일 실시 예에서 사용될 수 있는 IP 스캔 결과와 서비스 스캔 결과의 예시도이다.
도 8a를 참고하면 IP 스캔 결과 파일의 예를 확인할 수 있다. IP 스캔 결과 파일은 지정된 IP 대역 또는 지정된 IP 대역이 없는 경우 IPv4 전대역을 스캔한 후 활성화된 IP에 대해 기록한 결과이다. 결과 파일에는 활성 IP와 TCP/IP의 전체 필드를 기록한다. 파일의 형식은 CSV 파일의 형태로 기록될 수 있다.
도 8b를 참고하면 서비스 스캔 결과 파일의 예를 확인할 수 있다. 서비스 스캔 결과 또한 IP 스캔 결과와 마찬가지로 파일에 기록되면 JSON 포맷을 이용한다. 서비스 스캔 결과는 스캔하고자 하는 포트의 프로토콜에 따라 통신 데이터가 다를 수 있기 때문에 추출되는 필드 및 데이터 또한 다를 수 있다. 도 8b의 예에서는 telnet의 23번 포트에 대한 스캔 결과가 예시되어 있다.
도 9a 내지 도 9b는 본 발명의 일 실시 예에서 활용될 수 있는 OS 핑거프린트와 스캔 결과 레포트를 설명하기 위한 도면이다.
도 9a를 참고하면 룰 기반으로 생성한 OS 핑거프린트의 예를 확인할 수 있다. 핑거프린트 결과는 IP 스캔 결과와 핑거프린트 룰을 매칭한 결과 생성되는 IP 별 OS 핑거프린트이다. JSON 포맷으로 생성되며 레포트 파일에 바로 삽입된다.
도 9b를 참고하면 스캔 결과 레포트는 IP 스캔 결과와 서비스 스캔 결과 및 핑거프린트 생성 데이터를 취합한 형태로 생성된다. 이는 OS 핑거프린트 정보에 서비스 배너 정보 및 타임스탬프가 포함된 형태이다. 레포트는 JSON 포맷으로 생성된다.
도 10a 내지 도 10b는 본 발명의 일 실시 예에 따른 OS 핑거프린트를 생성하기 위한 룰과 그 룰에 의한 핑거프린트 결과를 설명하기 위한 도면이다.
도 10a를 참고하면 JSON 포맷으로 생성된 OS 핑거프린트의 룰을 확인할 수 있다. 예를 들면 IP에서 TTL의 값이 128이고, TCP에서 windows_size가 8192이면 해당 상대방 운영체제는 Windows7으로 판단하는 것이다. 마찬가지로 IP에서 TTL의 값이 128이고, TCP에서 windows_size가 65535이고 MSS의 값이 512이면 FreeBSD로 판단하는 것이다. 다만, 이는 발명의 이해를 돕기 위한 일 예이므로 Windows7을 탐지하기 위한 룰은 다른 값을 가질 수도 있다.
또한, 마찬가지로 어플리케이션을 탐지하기 위한 룰도 JSON 형태로 작성할 수 있다. 예를 들면 Handshake 패킷에 특정 값이 포함되면 HTTP 포트의 80으로 그 중에서도 Apache 2.3 라 판단하는 것이다. 마찬가지로 Handshake 패킷에 특정 값이 포함되면 SIP 포트의 5060으로 그 중에서 OpenSIP 라 판단하는 것이다.
IP 스캔의 결과를 룰 기반으로 확인하여 OS 핑거프린트를 생성하는 것과 마찬가지로 서비스 스캔의 결과를 룰 기반으로 확인하여 서비스 핑거프린트를 생성할 수 있다. 그 결과는 도 10b에서 확인할 수 있다. 도 10b를 참고하면 74.116.246.162의 IP는 FreeBSD를 운영체제로 사용하고 있으며 telnet 포트에서 서비스를 제공하고 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시 예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
Claims (11)
- 기기 정보 수집 장치가, 랜덤으로 생성한 IP로 패킷을 전송하고, 그에 대한 응답으로 syn-ack 패킷을 수신하는 단계;
상기 기기 정보 수집 장치가, 상기 syn-ack 패킷을 파싱하여 TCP/IP 필드를 추출하는 단계;
상기 기기 정보 수집 장치가, 상기 랜덤으로 생성한 IP로 패킷을 전송하는 것을 스케줄링 하는 단계; 및
상기 기기 정보 수집 장치가, 상기 TCP/IP 필드와 JSON 형태의 OS 핑거프린트 룰을 비교하여, 상기 IP의 OS 핑거프린트를 생성하는 단계를 포함하되,
상기 OS 핑거프린트 룰은 운영체제 및 상기 운영체제의 버전에 따른 상기 TCP/IP 필드의 값을 속성과 값의 쌍으로 저장한 것인,
기기 정보 수집 방법. - 제1항에 있어서,
상기 기기 정보 수집 장치가, 상기 IP의 기 설정된 포트로 상기 포트에 따른 프로토콜의 패킷을 전송하고, 그에 대한 응답으로 트래픽을 수신하는 단계;
상기 기기 정보 수집 장치가, 상기 트래픽에서 배너 정보 및 서비스 정보를 추출하는 단계; 및
상기 기기 정보 수집 장치가, 상기 배너 정보 및 서비스 정보와 JSON 형태의 서비스 핑거프린트 룰을 비교하여, 상기 IP의 상기 포트의 서비스 핑거프린트를 생성하는 단계를 더 포함하되,
상기 서비스 핑거프린트 룰은 서비스를 제공하는 어플리케이션 및 상기 어플리케이션 버전에 따른 상기 배너 정보 및 서비스 정보의 값을 속성과 값의 쌍으로 저장한 것인,
기기 정보 수집 방법. - 제2항에 있어서,
상기 포트는,
FTP, SSH, Telnet, SMTP, DNS, HTTP, POP3, IMAP, SIP, RTSP 서비스를 제공하는 포트 중에서 하나인,
기기 정보 수집 방법. - 제2항에 있어서,
상기 기기 정보 수집 장치가, 상기 OS 핑거프린트와 상기 서비스 핑거프린트를 JSON 형태로 제공하는 단계를 더 포함하는,
기기 정보 수집 방법. - 제2항에 있어서,
상기 기기 정보 수집 장치가, 상기 IP의 기 설정된 포트로 상기 포트에 따른 프로토콜의 패킷을 전송하는 것을 스케줄링 하는 단계를 더 포함하는,
기기 정보 수집 방법. - 제1항에 있어서,
상기 랜덤으로 생성한 IP로 패킷을 전송하고, 그에 대한 응답으로 syn-ack 패킷을 수신하는 단계는,
제1 IP 대역에 속하는 상기 IP를 랜덤으로 생성하고, 상기 IP로부터 syn-ack 패킷을 수신한 후에는 제1 IP 대역의 Hit-List에 상기 IP를 추가하는 단계를 포함하는,
기기 정보 수집 방법. - 삭제
- 랜덤으로 생성한 IP로 패킷을 전송하고, 그에 대한 응답으로 syn-ack 패킷을 수신하는 IP 스캔 모듈;
상기 IP의 기 설정된 포트로 상기 포트에 따른 프로토콜의 패킷을 전송하고, 그에 대한 응답으로 트래픽을 수신하는 서비스 스캔 모듈;
상기 syn-ack 패킷을 파싱하여 TCP/IP 필드를 추출하고, 상기 TCP/IP 필드와 JSON 형태의 OS 핑거프린트 룰을 비교하여, 상기 IP의 OS 핑거프린트를 생성하는 핑거프린트 생성 모듈을 포함하되,
상기 OS 핑거프린트 룰은 운영체제 및 상기 운영체제의 버전에 따른 상기 TCP/IP 필드의 값을 속성과 값의 쌍으로 저장한 것이고,
상기 핑거프린트 생성 모듈은,
상기 트래픽에서 배너 정보 및 서비스 정보를 추출하고, 상기 배너 정보 및 서비스 정보와 JSON 형태의 서비스 핑거프린트 룰을 비교하여, 상기 IP의 상기 포트의 서비스 핑거프린트를 생성하고,
상기 서비스 핑거프린트 룰은 서비스를 제공하는 어플리케이션 및 상기 어플리케이션 버전에 따른 상기 배너 정보 및 서비스 정보의 값을 속성과 값의 쌍으로 저장한 것인,
기기 정보 수집 장치. - 삭제
- 제8항에 있어서,
상기 랜덤으로 생성한 IP로 패킷을 전송하는 것과 상기 IP의 기 설정된 포트로 상기 포트에 따른 프로토콜의 패킷을 전송하는 것을 스케줄링 하는 스케줄링 모듈을 더 포함하는,
기기 정보 수집 장치. - 컴퓨터를 이용하여 제1항 내지 제6항 중 어느 한 항의 방법을 실행시키기 위하여 저장매체에 저장된 컴퓨터 프로그램.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160155601A KR101779327B1 (ko) | 2016-11-22 | 2016-11-22 | 룰 기반 핑거프린트 생성 방법 및 그 장치 |
US15/811,048 US10091198B2 (en) | 2016-11-22 | 2017-11-13 | Rule-based fingerprint generation methods and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160155601A KR101779327B1 (ko) | 2016-11-22 | 2016-11-22 | 룰 기반 핑거프린트 생성 방법 및 그 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101779327B1 true KR101779327B1 (ko) | 2017-10-10 |
Family
ID=60190234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160155601A KR101779327B1 (ko) | 2016-11-22 | 2016-11-22 | 룰 기반 핑거프린트 생성 방법 및 그 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10091198B2 (ko) |
KR (1) | KR101779327B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101888831B1 (ko) * | 2017-11-07 | 2018-08-16 | 한국인터넷진흥원 | 디바이스 정보 수집 장치 및 그 방법 |
CN110532756A (zh) * | 2018-05-23 | 2019-12-03 | 中国移动通信集团浙江有限公司 | 一种系统指纹识别方法、装置、电子设备及存储介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10986126B2 (en) * | 2017-07-25 | 2021-04-20 | Palo Alto Networks, Inc. | Intelligent-interaction honeypot for IoT devices |
US10721148B2 (en) * | 2017-10-16 | 2020-07-21 | Radware, Ltd. | System and method for botnet identification |
CN108897804A (zh) * | 2018-06-15 | 2018-11-27 | 东北大学秦皇岛分校 | 一种互联网空间数据的搜索系统及方法 |
US11171976B2 (en) * | 2018-10-03 | 2021-11-09 | Raytheon Technologies Corporation | Cyber monitor segmented processing for control systems |
US11269619B2 (en) * | 2019-06-27 | 2022-03-08 | Phosphorus Cybersecurity Inc. | Firmware management for IoT devices |
US11722577B2 (en) * | 2021-09-07 | 2023-08-08 | Webshare Software Company | Proxying TCP fingerprints |
CN114827309B (zh) * | 2022-04-19 | 2024-02-23 | 深信服科技股份有限公司 | 一种设备指纹生成方法、装置、设备及可读存储介质 |
CN115051977B (zh) * | 2022-06-24 | 2023-09-19 | 绿盟科技集团股份有限公司 | 一种Web机器人的识别方法、装置、设备和介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101679578B1 (ko) * | 2015-05-27 | 2016-11-25 | 주식회사 윈스 | IoT 보안을 위한 제어 서비스 제공 장치 및 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444508B2 (en) | 2003-06-30 | 2008-10-28 | Nokia Corporation | Method of implementing secure access |
JP2007201564A (ja) * | 2006-01-23 | 2007-08-09 | Nec Corp | 推定システム、端末、推定方法、およびプログラム |
US20140257997A1 (en) * | 2013-03-10 | 2014-09-11 | Roddy M. Bullock | System and Method for Promoting Posts |
KR101634295B1 (ko) | 2014-12-16 | 2016-06-30 | 주식회사 윈스 | IoT 보안을 위한 인증 서비스 제공 시스템 및 방법 |
US10142353B2 (en) * | 2015-06-05 | 2018-11-27 | Cisco Technology, Inc. | System for monitoring and managing datacenters |
US10185761B2 (en) * | 2015-08-07 | 2019-01-22 | Cisco Technology, Inc. | Domain classification based on domain name system (DNS) traffic |
-
2016
- 2016-11-22 KR KR1020160155601A patent/KR101779327B1/ko active IP Right Grant
-
2017
- 2017-11-13 US US15/811,048 patent/US10091198B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101679578B1 (ko) * | 2015-05-27 | 2016-11-25 | 주식회사 윈스 | IoT 보안을 위한 제어 서비스 제공 장치 및 방법 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101888831B1 (ko) * | 2017-11-07 | 2018-08-16 | 한국인터넷진흥원 | 디바이스 정보 수집 장치 및 그 방법 |
CN110532756A (zh) * | 2018-05-23 | 2019-12-03 | 中国移动通信集团浙江有限公司 | 一种系统指纹识别方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20180145978A1 (en) | 2018-05-24 |
US10091198B2 (en) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101779327B1 (ko) | 룰 기반 핑거프린트 생성 방법 및 그 장치 | |
KR101888831B1 (ko) | 디바이스 정보 수집 장치 및 그 방법 | |
Hofstede et al. | Towards real-time intrusion detection for NetFlow and IPFIX | |
US10218733B1 (en) | System and method for detecting a malicious activity in a computing environment | |
Casola et al. | A security monitoring system for internet of things | |
US8331234B1 (en) | Network data flow collection and processing | |
CN111800412B (zh) | 高级可持续威胁溯源方法、系统、计算机设备及存储介质 | |
Kristiyanto et al. | Analysis of deauthentication attack on ieee 802.11 connectivity based on iot technology using external penetration test | |
US20160134650A1 (en) | System, method, and appartus for proactive cybersecurity | |
US10263975B2 (en) | Information processing device, method, and medium | |
CN103368978A (zh) | 实现智能移动终端应用漏洞和通信安全检测的系统及方法 | |
Muraleedharan et al. | Behaviour analysis of HTTP based slow denial of service attack | |
Vasques et al. | Amplified reflection ddos attacks over iot mirrors: A saturation analysis | |
Sălăgean et al. | Iot applications based on mqtt protocol | |
van De Wiel et al. | Enabling non-expert analysis of large volumes of intercepted network traffic | |
US20210409981A1 (en) | Adaptive network data collection and composition | |
Samant | Automated penetration testing | |
KR20200044210A (ko) | 무선 IoT장비에 대한 이상행위 패킷탐지 장치 | |
Bukac | Traffic characteristics of common dos tools | |
Idland | Detecting mac spoofing attacks in 802.11 networks through fingerprinting on the mac layer | |
Oliveira et al. | Investigation of amplification-based DDoS attacks on IoT devices | |
Albadri | Development of a network packet sniffing tool for internet protocol generations | |
Ehrlich et al. | Passive flow monitoring of hybrid network connections regarding quality of service parameters for the industrial automation | |
Muraleedharan | Analysis of TCP flow data for traffic anomaly and scan detection | |
KR101545687B1 (ko) | 어플리케이션기반 패킷 분석 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20200213 Year of fee payment: 4 |