KR20200061699A - 멀티레이어로 구성된 os 핑거프린트 룰에 기반한 운영체제 식별 방법 및 그 장치 - Google Patents

멀티레이어로 구성된 os 핑거프린트 룰에 기반한 운영체제 식별 방법 및 그 장치 Download PDF

Info

Publication number
KR20200061699A
KR20200061699A KR1020180147302A KR20180147302A KR20200061699A KR 20200061699 A KR20200061699 A KR 20200061699A KR 1020180147302 A KR1020180147302 A KR 1020180147302A KR 20180147302 A KR20180147302 A KR 20180147302A KR 20200061699 A KR20200061699 A KR 20200061699A
Authority
KR
South Korea
Prior art keywords
operating system
identified
rule
header
fingerprint
Prior art date
Application number
KR1020180147302A
Other languages
English (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 KR1020180147302A priority Critical patent/KR20200061699A/ko
Publication of KR20200061699A publication Critical patent/KR20200061699A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

멀티레이어로 구성된 OS 핑거프린트 룰에 기반한 식별 대상 디바이스의 운영체제 식별 방법이 제공 된다. 본 발명의 일 실시예에 따른 식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더 및 IP 헤더를 추출하는 단계, 상기 식별 대상 디바이스의 운영체제 카테고리가 식별되는 제1 레이어, 상기 식별 대상 디바이스의 운영체제 종류가 식별되는 제2 레이어 및 상기 식별 대상 디바이스의 운영체제 버전이 식별되는 제3 레이어를 포함하는 OS 핑거프린트 룰을 얻는 단계, 상기 TCP 헤더 및 상기 IP 헤더의 정보와 상기 OS 핑거프린트 룰을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함하는, 운영체제 식별 방법을 포함한다.

Description

멀티레이어로 구성된 OS 핑거프린트 룰에 기반한 운영체제 식별 방법 및 그 장치{METHOD AND APPARATUS FOR IDENTIFYING OPERATING SYSTEM BASED ON MULTI LAYER OPERATING SYSTEM FINGERPRINT RULE}
본 발명은 멀티레이어로 구성된 OS 핑거프린트 룰에 기반한 운영체제 식별 방법 및 그 장치에 관한 것이다.
사물인터넷(IoT, Internet of Things) 환경에서 발생되는 데이터는 개인 정보 등 민감한 데이터를 포함하고 있는 경우가 많다.
이에 따라, 사물인터넷 디바이스에서 발생되는 데이터가 해킹되어 개인 정보 유출이 빈번하게 발생하고 있고, 상기 민감한 데이터가 외부에 유출되는 경우 그 파급효과가 막대하므로, 사물인터넷 환경에서 보안에 대한 중요성이 커지고 있다.
따라서 사물인터넷 기기의 보안 취약점을 끊임없이 모니터링하고 분석해야 하는데, 상기 사물인터넷 기기의 보안 취약점을 검색하고 분석하기 위해서는 사전에 사물인터넷 기기의 정보가 수집 되어 있어야 한다. 특히, 사물인터넷 기기에 존재하는 보안 취약점은 운영체제별로 상이하므로 식별 대상 기기의 운영체제에 대한 정보를 정확히 식별할 수 있는 방법의 제공이 요구된다.
한국공개특허 제2018-0120451호
본 발명이 해결하고자 하는 기술적 과제는, 복수개의 레이어로 구성된 룰을 통해 디바이스의 운영체제를 정확하게 식별하는 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 운영 체제 식별 방법은 식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더 및 IP 헤더를 추출하는 단계, 상기 식별 대상 디바이스의 운영체제 카테고리가 식별되는 제1 레이어, 상기 식별 대상 디바이스의 운영체제 종류가 식별되는 제2 레이어 및 상기 식별 대상 디바이스의 운영체제 버전이 식별되는 제3 레이어를 포함하는 OS 핑거프린트 룰을 얻는 단계, 상기 TCP 헤더 및 상기 IP 헤더의 정보와 상기 OS 핑거프린트 룰을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더 및 IP 헤더를 추출하는 단계는,syn_ack 패킷을 파싱(parsing)하여 상기 syn_ack패킷의 TCP헤더 및 IP 헤더를 추출하는 단계, 상기 TCP 헤더로부터 MSS(Maximum Segment Size) 및 윈도우 사이즈 수치중 어느 하나 이상을 추출하는 단계, 상기 IP 헤더로부터 TTL(Time To Live), PID 및 DF 플래그(don’t_fragment flag) 수치중 어느 하나 이상을 추출하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 식별 대상 디바이스의 운영체제 카테고리가 식별되는 제1 레이어, 상기 식별 대상 디바이스의 운영체제 종류가 식별되는 제2 레이어 및 상기 식별 대상 디바이스의 운영체제 버전이 식별되는 제3 레이어를 포함하는 OS 핑거프린트 룰을 얻는 단계는, TTL(Time To Live), MSS(Maximum Segment Size), 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나를 기준으로 분기를 나누는 룰을 포함하는 OS 핑거프린트 룰을 얻는 단계를 더 포함할 수 있다.
일 실시예에 따른 상기 TTL(Time To Live), MSS(Maximum Segment Size), 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나를 기준으로 분기를 나누는 룰을 포함하는 OS 핑거프린트 룰을 얻는 단계는, 상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 작거나 같은 경우 제1 분기로 나누는 제1 룰 및 상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 큰 경우 제2 분기로 나누는 제2 룰을 포함하는 OS 핑거프린트 룰을 얻는 단계를 포함할 수 있다.
일 실시예에 따른 상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 작거나 같은 경우 제1 분기로 나누는 제1 룰 및 상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 큰 경우는 제2 분기로 나누는 제2 룰을 포함하는 OS 핑거프린트 룰을 얻는 단계는, 상기 제 1분기를 상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 작거나 같은 경우 제3 분기로 나누는 제 3룰 및 상기 제1 분기를 상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 큰 경우 제4 분기로 나누는 제4 룰을 포함하는 OS 핑거프린트 룰을 얻는 단계를 포함할 수 있다.
일 실시예에 따른 상기 TCP 헤더 및 상기 IP 헤더의 정보와 상기 OS 핑거프린트 룰을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계는, 상기 제1 레이어에 의해 상기 식별 대상 디바이스의 운영체제 카테고리를 window, unix 및 linux중 어느 하나로 식별하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 TCP 헤더 및 상기 IP 헤더의 정보와 상기 OS 핑거프린트 룰을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계는, 상기 OS 핑거프린트 룰을 JSON 형태로 변환하는 단계, 상기 TCP 헤더 및 상기 IP 헤더의 정보와 상기 JSON 형태의 OS 핑거프린트 룰을 이용하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 운영 체제 식별 방법은 식별 대상 디바이스로부터 수신한 네트워크 패킷의 IP 헤더를 추출하는 단계, 상기 IP헤더에서 추출된 TTL(Time To Live) 수치를 81과 비교하는 최상단 노드(root node)를 포함하는 결정트리(decision tree)를 이용하여 상기 식별 대상 디바이스의 운영체제 카테고리를 식별하는 OS 핑거프린트 룰을 얻는 단계, 상기 OS 핑거프린트 룰과 상기 네트워크 패킷을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 IP헤더에서 추출된 TTL(Time To Live) 수치를 81과 비교하는 최상단 노드(root node)를 포함하는 결정트리(decision tree)를 이용하여 상기 식별 대상 디바이스의 운영체제 카테고리를 식별하는 OS 핑거프린트 룰을 얻는 단계는, 상기 식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더를 추출하는 단계, 상기 TCP 헤더에서 추출된 윈도우 사이즈 수치를 비교하는 상기 최상단 노드의 자식노드(child node)를 포함하는 결정트리를 이용하여 상기 식별 대상 디바이스의 운영체제 카테고리를 식별하는 OS 핑거프린트 룰을 얻는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 운영 체제 식별 방법은 식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더를 추출하는 단계, 상기 TCP헤더에서 추출된 윈도우 사이즈 수치를 17920과 비교하는 최상단 노드(root node)를 포함하는 결정트리(decision tree)를 이용하여 운영체제 카테고리가 linux인 상기 식별 대상 디바이스의 운영체제 종류를 식별하는 OS 핑거프린트 룰을 얻는 단계, 상기 OS 핑거프린트 룰과 상기 네트워크 패킷을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 또 다른 실시예에 따른 운영 체제 식별 방법은 식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더를 추출하는 단계, 상기 TCP헤더에서 추출된 윈도우 사이즈 수치를 29200과 비교하는 최상단 노드(root node)를 포함하는 결정트리(decision tree)를 이용하여 운영체제 카테고리가 unix인 상기 식별 대상 디바이스의 운영체제 종류를 식별하는 OS 핑거프린트 룰을 얻는 단계, 상기 OS 핑거프린트 룰과 상기 네트워크 패킷을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른 식별 대상 디바이스 운영체제 식별 시스템에 대한 구성 및 동작을 설명하기 위한 도면이다.
도 2는 본 발명의 다른 실시예에 따른 식별 대상 디바이스 운영체제 식별 장치의 구성 및 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 또 다른 실시예에 따른 식별 대상 디바이스 운영체제 식별 방법의 순서도이다.
도 4는 도 3의 일부 동작을 자세히 설명하기 위한 순서도이다.
도 5는 본 발명의 또 다른 실시예에 따른 OS 핑거프린트 룰에 의해 식별 대상 디바이스의 운영체제가 식별되는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 또 다른 실시예에 따른 식별 대상 디바이스의 운영체제의 카테고리가 식별되는 과정의 일 실시예를 설명하기 위한 도면이다.
도 7은 본 발명의 또 다른 실시예에 따른 식별 대상 디바이스로부터 수신한 패킷 정보와 상기 식별 대상 디바이스의 운영체제 카테고리를 식별하는 레이어에 해당하는 OS 핑거프린트 룰이 매칭된 결과를 설명하기 위한 도면이다.
도 8은 본 발명의 또 다른 실시예에 따른 운영체제 카테고리가 unix인 식별 대상 디바이스로부터 수신한 패킷 정보와 상기 식별 대상 디바이스의 운영체제 종류를 식별하는 레이어에 해당하는 OS 핑거프린트 룰이 매칭된 결과를 설명하기 위한 도면이다.
도 9은 본 발명의 또 다른 실시예에 따른 운영체제 카테고리가 linux인 식별 대상 디바이스로부터 수신한 패킷 정보와 상기 식별 대상 디바이스의 운영체제 종류를 식별하는 레이어에 해당하는 OS 핑거프린트 룰이 매칭된 결과를 설명하기 위한 도면이다.
도 10은 본 발명의 또 다른 실시예에 따른 식별 대상 디바이스의 운영체제 식별 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
본 발명의 일 실시 예에 따른 IoT 디바이스의 운영체제를 식별하는 시스템의 구성 및 동작을 도 1을 참조하여 설명한다. 본 명세서에서는 운영체제가 식별되는 대상을 IoT 디바이스로 예시를 들었으나, 상기 운영체제 식별 대상은 IoT 환경에서 작동되는 디바이스에 제한되지 않음을 유의한다. 즉, 본 실시예 및 다른 몇몇 실시예들에서, 운영체제 식별 대상은 네트워크에 연결되는 모든 형태의 컴퓨팅 디바이스인 것으로 이해될 수 있을 것이다. 상기 컴퓨팅 디바이스는 운영체제가 설치된 것이다.
도 1을 참고하면 IoT 디바이스 운영체제 식별 장치(100)는 인터넷에 연결된 다양한 종류의 IoT 디바이스(11, 12, 13, 14, 15, 16, 17, 18)의 정보를 수집한다. IoT 디바이스는 냉장고(11), 세탁기(12), 게임기(13), 컴퓨터(14), 스마트폰(15), 스마트 워치(16), 전등(17), 난방기(18)중 어느 하나를 포함할 수 있다. 또한 도 1에 예시된 IoT 디바이스 외에도 다양한 종류의 IoT 디바이스가 더 있을 수 있다. 예를 들어 도어락(door-lock)이나, 창문, 인덕터, 에어컨, 텔레비전, 스마트 밴드 등 최근 들어 인터넷에 연결되고 있는 다양한 디바이스들이 본 발명의 몇몇 실시예들에서의 운영체제 식별 대상이 될 수 있을 것이다. 도 1의 11 내지 18은 발명의 이해를 돕기 위한 IoT 디바이스의 예시에 불과하다.
도 1의 IoT 디바이스 운영체제 식별 장치(100)는 인터넷을 통하여 IoT 디바이스에서 수신한 네트워크 패킷을 분석하여 상기 IoT 디바이스의 운영체제를 식별 할 수 있다.
상기 IoT 디바이스의 운영체제는 다양한 레이어로 이루어진 OS 핑거프린트 룰을 이용하여 식별될 수 있다. 다양한 레이어로 이루어진 OS 핑거프린트 룰을 사용함으로써 상기 IoT 디바이스(11, 12, 13, 14, 15, 16, 17, 18)의 운영체제의 카테고리, 종류 및 버전이 구체적으로 식별 될 수 있다. 예를 들어 상기 OS 핑거프린트 룰은 식별 대상 운영체제의 카테고리가 식별될 수 있는 제1 레이어, 상기 식별 대상 운영체제의 종류가 식별될 수 있는 제2 레이어 및 상기 식별 대상 운영체제의 버전이 식별될 수 있는 제3 레이어를 포함할 수 있다.
본 발명의 다른 실시예에 따른 디바이스의 운영체제 식별장치의 구성과 동작을 도 2를 참조하여 설명한다. 도 2에 도시된 바와 같이, 디바이스 운영체제 식별 장치(100)는 OS 핑거프린트 룰 파서(110), 네트워크 패킷에 존재하는 TCP 헤더 및 IP 헤더 룰 매칭기(120) 및 식별 대상 디바이스 운영체제 식별기(130)중 어느 하나를 포함할 수 있다.
디바이스 운영체제 식별 장치(100)는 OS 핑거프린트 룰 파일(10)과 디바이스로부터 수신한 네트워크 패킷 분석 결과 파일(20)을 입력 받아 상기 식별 대상 디바이스의 운영체제를 식별할 수 있다.
OS 핑거프린트 룰 파일(10)은 멀티레이어(multi-layer)로 구성된 OS 핑거프린트 룰에 관한 데이터를 포함할 수 있다. 상기 멀티레이어는 3단계의 레이어로 구성될 수 있다. 제1 레이어에 의해 상기 식별 대상 디바이스 운영체제 카테고리가 식별 될 수 있다. 제2 레이어에 의해 상기 식별 대상 디바이스 운영체제 종류가 식별 될 수 있다. 제3 레이어에 의해 상기 식별 대상 디바이스 버전이 식별 될 수 있다. 또한, 본 발명의 몇몇 실시예에 따르면 상기 식별 대상 디바이스의 운영체제를 더욱 상세히 식별하기 위해 OS 핑거프린트 룰을 구성하는 레이어가 더 추가될 수도 있다.
또한, OS 핑거프린트 룰 파일(10)은 JSON(JavaScript Object Notation) 형태로 제공될 수 있다. 여기서, JSON이란, 속성-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신(AJAJ)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다. 다만 JSON 형태의 텍스트 파일로 제공되는 OS 핑거프린트 룰 파일은 예시일 뿐 본 발명의 몇몇 실시예에 따른 OS 핑거프린트 룰 파일은 이에 한정되지 않고 다양한 형태일 수 있음에 유의한다.
패킷 분석 결과 파일(20)은 디바이스 운영체제 식별 장치(100)가 IoT 디바이스로부터 수신한 네트워크 패킷을 분석한 결과 파일일 수 있다. 예를 들어 패킷 분석 결과 파일은 txt형태의 텍스트 문서일 수 있다. 상기 네트워크 패킷은 TCP 헤더와 IP 헤더를 포함할 수 있다.
IoT 디바이스는 인터넷에 연결되어 서비스를 제공하고 있으므로 필수적으로 IP를 가지고 있다. 그러므로 특정 IP에 존재하는 IoT 디바이스에서 수신한 네트워크 패킷을 분석하여 IoT 디바이스에 대한 정보를 수집할 수 있다.
상기 IP를 스캔하는 방법은 예를 들어 IPv4를 기준으로 0.0.0.0부터 127.255.255.255 대역의 IP에 대하여 순차적으로 조사할 수도 있으나, 순차적으로 IP를 스캔하면 단위 네트워크에 스캔 트래픽으로 인한 병목 현상이 발생할 수 있다. 이 경우 상대방 보안 장비에서 DDoS 공격으로 인식하고 디바이스 운영체제 식별 장치(100)의 접근을 차단할 수 있다.
OS 핑거프린트 룰 파서(110)는 OS 핑거프린트 룰 파일을 파싱(parsing)하고, TCP 헤더 및 IP 헤더 룰 매칭기(120)는 패킷 분석 결과 파일(20)을 이용하여 식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더 와 IP 헤더의 정보를 OS 핑거프린트 룰과 매칭시킬 수 있다.
예를 들어 OS 핑거프린트 룰 파일이 JSON형식으로 제공되는 경우, OS 핑거프린트 룰 파서(110)는 상기 JSON 형식을 파싱하여 결정트리를 의미하는 텍스트 파일을 생성할 수 있다. 다만 결정트리 구조는 본 발명의 몇몇 실시예의 이해를 용이하게 하기위한 예시일 뿐 OS 핑거프린트 룰은 다양한 자료구조 형태일 수 있다.
식별 대상 디바이스 운영체제 식별기(130)는 상기 TCP 헤더 및 IP 헤더 룰 매칭기(120)의 매칭 결과 데이터를 생성할 수 있다. 즉, 식별 대상 디바이스 운영체제 식별기(130)에 의해 생성된 상기 매칭 결과 데이터는 상기 식별 대상 디바이스의 운영체제의 카테고리, 운영체제의 종류 및 운영체제의 버전에 대한 정보를 모두 포함할 수 있다. 이하 상세한 설명은 도 5 및 도 6에서 설명한다.
이하, 본 발명의 또 다른 실시예에 따른 디바이스 운영체제 식별 방법을 도 3을 참조하여 설명한다. 도 3을 참조하여 식별 대상 디바이스의 운영체제를 식별하는 방법을 상세히 설명한다. 상기 식별 대상 디바이스와 디바이스 운영체제 식별 장치는 예를 들어 프로토콜 기반의 handshake 방식으로 통신 될 수 있다. 다만 본 발명의 몇몇 실시예에 따른 상기 식별 대상 디바이스와 상기 디바이스 운영체제 식별장치간 통신방법은 이에 한하지 않음에 유의한다.
단계 S110에서 IP 스캔을 통해 획득한 식별 대상 디바이스의 IP 주소에 네트워크 패킷이 송신될 수 있다.
단계 S120에서 상기 단계 S110에서 송신된 패킷에 대한 응답으로 식별 대상 디바이스로부터 syn_ack 패킷이 수신될 수 있다. 상기 syn_ack 패킷이 수신된 경우 식별 대상 디바이스와 성공적으로 통신된 것 이므로, 상기 syn_ack 패킷을 분석하여 상기 식별 대상 디바이스의 운영체제가 식별될 수 있다.
단계 S130에서 상기 식별 대상 디바이스로부터 수신한 패킷의 TCP 헤더와 IP 헤더가 추출될 수 있다. 먼저 TCP 헤더로부터 MSS(Maximum Segment Size) 및 윈도우 사이즈 수치중 적어도 하나가 추출될 수 있다. 또한 IP 헤더로부터 TTL(Time To Live), PID(Packet IDentifier) 및 DF 플래그(don’t_fragment flag) 수치중 적어도 하나가 추출될 수 있다.
단계 S140에서 상기 추출된 TTL, MSS, 윈도우 사이즈, PID 및 DF플래그 수치 중 적어도 하나와 OS 핑거프린트 룰이 매칭되어 상기 식별 대상 디바이스의 운영체제가 식별될 수 있다. 상세한 설명은 이하 도 6에서 한다.
다만, 상기 단계 S140에서 식별 대상 디바이스의 운영체제의 카테고리만 파악되는 경우, 상기 식별 대상 디바이스의 운영체제의 세부 종류 및 버전에 따라 달라지는 취약점까지 대응하기 어렵다는 문제점이 존재한다. 따라서 본 발명의 몇몇 실시예에서는 상기 식별 대상 디바이스의 운영체제의 카테고리뿐 아니라 운영체제의 종류 및 버전에 대한 정보도 식별될 수 있다. 이하 도 4를 참조하여 설명한다.
도 4는 도 3을 참조할 때, 멀티레이어 OS 핑거프린트 룰 기반으로 식별 대상 디바이스의 운영체제를 구체적으로 식별하는 방법에 대한 순서도이다. 도 4를 참조할 때, 멀티레이어 OS 핑거프린트 룰은 운영체제를 더 상세히 비교하기 위한 다중 레이어로 구성될 수 있다.
단계 S141에서 식별 대상 디바이스의 운영체제의 카테고리가 식별될 수 있다. 운영체제의 카테고리는 싱글태스킹(single-tasking)인지 멀티태스킹(multi-tasking)인지 여부, 단일 사용자인지 다중 사용자인지 여부, 분산 운영체제인지 여부, 판형 운영체제인지 여부, 임베디드 운영체제인지 또는 실시간 운영체제인지 여부에 따라 다양한 운영체제가 존재한다. 예를 들어 현대의 PC 운영체제의 카테고리의 종류는 window, linux 또는 unix 등을 포함할 수 있다.
단계 S142에서 식별 대상 디바이스의 운영체제 종류가 식별될 수 있다. 동일한 카테고리의 운영체제도 해당 운영체제의 용도 및 출시순서 등에 따라 다양한 종류의 운영체제가 있을 수 있다. 운영체제 종류는 예를 들어 window의 경우 window XP, window 10, window 7, window 서버 2018등이 있을 수 있다. 또한 linux의 경우 우분투, Gentoo, 레드햇(Redhat)등이 있을 수 있다. unix의 경우 AIX, FreeBDS, OpenBSD등이 있을 수 있다.
단계 S143에서 식별 대상 디바이스의 운영체제의 세부 버전이 식별될 수 있다. 동일한 카테고리 및 종류의 운영체제도 출시시기 및 해당 버전에 대한 지원 기간 등에 따라 다양한 버전의 운영체제가 있을 수 있다. 예를 들어 window10의 경우 sp1 버전 및 sp2 버전 등이 있을 수 있다. OpenBSD의 경우 5.9 버전 및 6.3 버전 등이 있을 수 있다. 또한 우분투의 경우 16.04버전 및 18.04 버전 등이 있을 수 있다.
도 5를 참조하여 독립적인 룰을 갖는 복수개의 레이어로 구성된 일종의 룰셋(rule set)인 OS 핑거프린트 룰에 의해 식별 대상 디바이스의 운영체제가 매칭되는 과정을 설명한다.
멀티레이어 OS 핑거프린트 룰과 상기 식별 대상 디바이스의 운영체제가 매칭되는 과정은 3단계로 이루어 질 수 있다. 먼저 식별 대상 디바이스의 운영체제 카테고리가 식별 될 수 있다(200). 식별 되는 운영체제의 카테고리는 예를 들어 window, linux 또는 unix중 어느 하나일 수 있다. 다만, 본 발명의 몇몇 실시예에 따른 운영체제 카테고리는 이에 한정되지 않고 솔라리스, 맥킨토시등 다양한 카테고리를 모두 포함할 수 있음에 유의한다.
다음 단계에서 식별 대상 디바이스의 운영체제의 종류가 식별될 수 있다(210). 도 5에서는 unix 계열의 운영체제 카테고리로 식별된 식별 대상 디바이스의 운영체제에 대하여 어떤 종류의 운영체제인지 더 식별될 수 있다. 운영체제의 종류는 예를 들어 FreeBSD 또는 OpenBSD 일 수 있다.
또한, 그 다음 단계에서 상기 운영체제의 세부 버전이 더 식별될 수 있다(220). 예를 들어 상기 식별 대상 디바이스의 운영체제의 종류가 OpenBSD인 경우, OpenBSD 5.9 또는 OpenBSD 6.3중 어느 하나로 식별될 수 있다.
이하, 도 6 내지 도 8은 식별 대상 디바이스의 운영체제 카테고리를 식별하는 OS 핑거프린트 룰을 결정트리(Decision Tree)형태로 표현한 일 실시예이다. 결정트리의 각 노드에서 비교되는 기준값 및 수치는 실험에 의해 가장 정확도가 높은 형태로 만들어 졌다. 아래 표1은 상기 결정트리의 정확도를 다른 테스트케이스의 트리와 비교한 표이다.
Decision Tree Test case #1
(Decision Strump)
Test case #2
(Hoeffding)
정확도(%) 96.9733 64.44 93.6733
테스트 케이스 1번의 decision stump 트리는 TTL값이 83보다 작거나 같은 패킷을 전송하면 unix 계열의 운영체제를 갖는 디바이스, TTL값이 83보다 큰 패킷을 전송하면 window 계열의 운영체제를 갖는 디바이스, TTL값이 없는 경우 linux 계열의 운영체제를 갖는 디바이스로 분류한다. 상기 decision stump 트리에 의해 식별된 운영체제의 카테고리와 실제 식별 대상 디바이스의 운영체제 카테고리간 일치하는 비율은 64.44%이다.테스트 케이스 2번의 Hoedffding 트리는 루트노드(root node)에서 윈도우 사이즈 수치가 29788.636보다 작거나 같은 경우 또는 윈도우 사이즈 수치가 29788.636보다 큰 경우로 나누는 분기를 포함하는 형태로, 정확도는 93.6733이다.
따라서 상기 테스트 케이스 1번 및 2번과 비교할 때 루트노드에서 TTL 수치를 81기준으로 분기하는 상기 결정트리가 운영체제의 카테고리 식별에 있어 가장 정확도가 높다는 점을 알 수 있다. 본 발명은 식별 대상 디바이스의 운영체제 식별 정확도가 가장 높은 상기 결정트리를 각 레이어마다 사용함으로써 각 레이어에서 운영체제를 더 정확히 식별해 낼 수 있다. 이하 상기 결정트리를 사용하여 운영체제 식별 과정을 설명한다.
도 6은 OS 핑거프린트 룰 과 매칭하여 식별 대상 디바이스의 운영체제 카테고리가 식별되는 과정의 일 실시예이다. 유사한 방법으로 식별 대상 디바이스의 운영체제 종류 및 버전도 식별될 수 있다. 다만 본 명세서에서는 중복 설명을 피하기 위해 식별 대상 디바이스의 운영체제의 카테고리가 식별되는 과정에 대한 구체적인 실시예만 제시한다.
이하, OS 핑거프린트 룰을 이용하여 식별 대상 디바이스의 운영체제가 식별되는 과정을 설명하기 위해 결정트리(decision tree)가 사용될 수 있다. 상기 결정트리의 노드는 TTL, MSS, 윈도우 사이즈, PID 및 DF플래그 수치중 어느 하나일 수 있고, 식별 대상 디바이스로부터 수신한 패킷의 TTL, MSS, 윈도우 사이즈, PID 및 DF플래그 수치중 어느 하나가 기준 수치보다 작은 경우 왼쪽 분기(left child)로, 상기 수치중 어느 하나가 기준 수치보다 큰 경우 오른쪽 분기(right child)로 나뉠 수 있다.
MSS는 OS에서 한번에 전송할 세그먼트 최대 사이즈를 의미한다. 본 명세서에서 윈도우 사이즈는 슬라이딩 윈도우 사이즈(sliding window size)로 TCP 흐름제어 기법인 슬라이딩 위도우의 크기를 의미한다. TTL은 패킷이 몇 개의 라우터를 거칠 때까지 살아있을지를 의미하는 값이다. 네트워크에서 루핑(looping) 현상을 막기 위해 사용한다. PID는 Packet Identifier로 네트워크 패킷의 식별자를 의미한다. 단편화된 하나의 패킷을 표현할 때 사용한다. DF 플래그는 상기 플래그의 비트값이 설정됨으로써 해당 패킷을 자르지 못한다는 의미이다.
또한, 본 발명의 몇몇 실시예에 따르면 TTL, MSS, 윈도우 사이즈, PID 및 DF플래그 수치중 어느 하나에 의해 운영체제 식별을 위한 결정트리가 분기 된 후, 다시 TTL, MSS, 윈도우 사이즈, PID 및 DF플래그 수치중 어느 하나를 이용하여 결정트리가 다시 분기 될 수 있다. 즉, 운영체제의 식별을 위해 한번 이용된 수치도 다시 결정트리에 이용되어 분기의 기준이 될 수 있다.
특히, 본 발명의 몇몇 실시예에 따르면 최상단 노드에서 TTL 수치를 비교하는 결정트리를 이용하여 의해 상기 식별 대상 디바이스의 운영체제 카테고리가 식별될 수 있다. 예를 들어, 식별 대상 디바이스로부터 수신한 네트워크 패킷의 IP헤더에 저장된 TTL 수치가 81보다 작거나 같은 경우 왼쪽 분기(left child)로, TTL 수치가 81보다 큰 경우 오른쪽 분기(right child)로 나뉠 수 있다.
또한, 본 발명의 다른 실시예에 따르면 TTL 수치 비교 연산 이후 윈도우 사이즈 비교 연산을 수행하는 알고리즘에 의해 상기 식별 대상 디바이스의 운영체제 카테고리가 식별될 수 있다. 예를 들어 식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP헤더에 저장된 슬라이딩 윈도우 사이즈 수치가 65392보다 작거나 같은 경우 왼쪽 분기로 나뉠 수 있고, 슬라이딩 윈도우 사이즈 수치가 65392보다 큰 경우 오른쪽 분기로 나뉠 수 있다.
도 6을 참조할 때, 식별 대상 디바이스로부터 수신한 패킷의 IP헤더의 TTL값이 81보다 작거나 같고, TCP헤더의 윈도우 사이즈(window size)가 65392보다 크면 상기 식별 대상 디바이스의 운영체제 카테고리는 unix일 수 있다.
다른 식별 대상 디바이스로부터 수신한 패킷의 IP헤더의 TTL값이 81보다 작거나 같고, TCP헤더의 윈도우 사이즈가 65392보다 작거나 같고, IP헤더의 PID값이 197보다 작거나 같으며, TCP헤더의 윈도우 사이즈가 160000보다 작거나 같으면 상기 식별 대상 디바이스의 운영체제의 카테고리는 linux 일 수 있다.
즉, 식별 대상 디바이스의 운영체제 카테고리를 식별하기 위해 윈도우 사이즈를 기준으로 연산이 이루어진 후에도, 다시 윈도우 사이즈를 기준으로 도 6의 결정트리가 분기될 수 있다. 또한, 윈도우 사이즈뿐 아니라 TTL, MSS, PID 및 DF플래그 수치중 어느 하나도 상기 식별 대상 디바이스의 운영체제 식별 과정에서 여러 번 사용될 수 있음에 유의하여야 한다.
도 7a 및 도 7b를 참조하여 식별 대상 디바이스 운영체제의 카테고리가 OS 핑거프린트 룰과 매칭된 결과의 예시를 설명한다.
도 7a의 201a 및 201b는 식별 대상 디바이스에서 송신한 패킷의 TTL 수치가 81보다 작거나 같은 경우 OS 핑거프린트 룰에 매칭 된 운영체제 카테고리에 관한 정보이다. 예를 들어 'TTL <= 81'조건을 만족하고 'window <= 65392'조건을 만족하지 못하며, 'PID > 197'조건, 'window_size <= 14600'조건 및 'MSS <= 536'조건을 만족하는 패킷을 송신한 디바이스의 운영체제 카테고리는 unix 계열일 수 있다.
도 7b의 202a 및 202b는 상기 TTL이 81보다 큰 경우 OS 핑거프린트 룰에 매칭된 운영체제의 카테고리에 대한 정보이다. 예를 들어 'TTL > 81'조건 및 'window_size > 8190'조건을 만족하지 못하고, 'window_size >65392'조건, 'MSS <=1456'조건 및 'dont_fragment <= 0'을 만족하는 패킷을 송신한 디바이스의 운영체제 카테고리는 linux 계열일 수 있다.
상기 결정트리와 같은 방법으로 식별 대상 디바이스의 운영체제 카테고리가 식별 된 후, 식별된 운영체제의 카테고리중 상기 식별 대상 디바이스의 운영체제 종류가 무엇인지 더 식별 될 수 있다.
도 8을 참조하여, 상기 식별 대상 디바이스의 운영체제 카테고리가 unix인 경우 운영체제의 종류가 OS 핑거프린트 룰과 매칭된 결과의 예시를 설명한다.
도 8의 211은 식별 대상 디바이스에서 송신한 패킷의 윈도우 사이즈 수치가 29200보다 작거나 같은 경우 OS 핑거프린트 룰에 매칭 된 운영체제 종류에 관한 정보이다. 예를 들어 'window_size <= 29200'조건 및 'window_size <= 16060'조건을 만족하고, 'PID <= 99'조건을 만족하지 못하는 패킷을 송신한 디바이스의 운영체제 종류는 freebsd 이다.
상기 설명한 바와 같이 실험에 따라 운영체제 카테고리가 unix인 식별 대상 디바이스의 운영체제 종류를 식별하기 위한 결정트리의 최상위 노드에서 윈도우 사이즈 수치를 29200를 기준으로 함에 따라, 운영체제 종류 식별의 정확도가 더 향상될 수 있다.
도 9을 참조하여, 상기 식별 대상 디바이스의 운영체제 카테고리가 linux인 경우 운영체제의 종류가 OS 핑거프린트 룰과 매칭된 결과의 예시를 설명한다.
도 9의 212a는 식별 대상 디바이스에서 송신한 패킷의 윈도우 사이즈 수치가 17920보다 작거나 같은 경우 OS 핑거프린트 룰에 매칭 된 운영체제의 종류에 관한 정보이다. 또한, 212b는 식별 대상 디바이스에서 송신한 패킷의 윈도우 사이즈 수치가 17920보다 큰 경우 OS 핑거프린트 룰에 매칭 된 운영체제의 종류에 관한 정보이다. 예를 들어 'window_size <= 17920'조건을 만족하지 못하고, 'MSS <= 1350'조건,'MSS <= 1349'조건 및 'window_size <= 23892'조건을 만족하는 패킷을 송신한 디바이스의 운영체제 종류는 ubuntu이다.
상기 설명한 바와 같이 실험에 따라 운영체제 카테고리가 linux인 식별 대상 디바이스의 운영체제 종류를 식별하기 위한 결정트리의 최상위 노드에서 윈도우 사이즈 수치를 17920를 기준으로 함에 따라, 운영체제 종류 식별의 정확도가 더 향상될 수 있다.
도 10에 도시된 바와 같이, 본 실시예에 따른 디바이스 운영체제 식별 방법을 수행하는 컴퓨팅 장치(100)는 프로세서(140) 및 메모리(150)를 포함하고, 몇몇 실시예들에서 스토리지(170), 네트워크 인터페이스(160) 및 시스템 버스 중 적어도 하나를 더 포함할 수 있다.
메모리(150)에 로드 되어 저장되는 하나 이상의 인스트럭션(151, 152)은 프로세서(140)를 통하여 실행된다. 본 실시예에 따른 디바이스 운영체제 식별 방법을 수행하는 컴퓨팅 장치(100)는 별도의 설명이 없더라도 도 1 및 도 2를 참조하여 설명한 디바이스 운영체제 식별 방법을 수행할 수 있는 점을 유의한다.
네트워크 인터페이스(160)는 식별 대상 디바이스로 패킷을 송신하거나, 식별 대상 디바이스로부터 패킷을 수신할 수 있다. 상기 수신된 패킷에 대한 정보는 스토리지(170)에 저장되도록 할 수 있다.
스토리지(170)는 식별 대상 디바이스의 패킷에 관한 정보(172) 및 OS 핑거프린트 룰에 관한 정보(171)를 저장할 수 있다.
상기 하나 이상의 인스트럭션은, 상기 식별 대상 디바이스로부터 수신한 네트워크 패킷에서 정보를 추출하는 패킷 정보 추출 인스트럭션(151) 및 OS 핑거프린트 룰과 상기 식별 대상 디바이스의 패킷 정보를 매칭하는 OS 핑거프린트 룰 매칭 인스트럭션(152)을 포함할 수 있다.
일 실시예에서, 패킷 정보 추출 인스트럭션(151)은 식별 대상 디바이스로부터 수신한 네트워크 패킷에서 TCP 헤더 및 IP 헤더를 추출할 수 있다. 또한, TCP 헤더로부터 MSS 및 윈도우 사이즈에 관한 정보를 추출하고 IP 헤더로부터 TTL, PID 및 DF 플래그에 관한 정보를 추출할 수 있다.
일 실시예에서, OS 핑거프린트 룰 매칭 인스트럭션(152)은 상기 추출된 MSS, 윈도우 사이즈, TTL, PID 및 DF 플래그에 관한 정보를 이용하여 식별 대상 디바이스의 운영체제 카테고리 종류 및 버전까지 식별할 수 있다.
지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.
상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (11)

  1. 컴퓨팅장치에 의해 수행되는 방법에 있어서,
    식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더 및 IP 헤더를 추출하는 단계;
    상기 식별 대상 디바이스의 운영체제 카테고리가 식별되는 제1 레이어, 상기 식별 대상 디바이스의 운영체제 종류가 식별되는 제2 레이어 및 상기 식별 대상 디바이스의 운영체제 버전이 식별되는 제3 레이어를 포함하는 OS 핑거프린트 룰을 얻는 단계; 및
    상기 TCP 헤더 및 상기 IP 헤더의 정보와 상기 OS 핑거프린트 룰을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함하는,
    운영체제 식별 방법.
  2. 제 1항에 있어서,
    상기 식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더 및 IP 헤더를 추출하는 단계는,
    syn_ack 패킷을 파싱(parsing)하여 상기 syn_ack 패킷의 TCP헤더 및 IP 헤더를 추출하는 단계;
    상기 TCP 헤더로부터 MSS(Maximum Segment Size) 및 윈도우 사이즈 수치중 어느 하나 이상을 추출하는 단계; 및
    상기 IP 헤더로부터 TTL(Time To Live), PID(Packet Identifier) 및 DF 플래그(don’t_fragment flag) 수치중 어느 하나 이상을 추출하는 단계를 포함하는,
    운영체제 식별 방법.
  3. 제 1항에 있어서,
    상기 식별 대상 디바이스의 운영체제 카테고리가 식별되는 제1 레이어, 상기 식별 대상 디바이스의 운영체제 종류가 식별되는 제2 레이어 및 상기 식별 대상 디바이스의 운영체제 버전이 식별되는 제3 레이어를 포함하는 OS 핑거프린트 룰을 얻는 단계는,
    TTL(Time To Live), MSS(Maximum Segment Size), 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나를 기준으로 분기를 나누는 룰을 포함하는 OS 핑거프린트 룰을 얻는 단계를 포함하는,
    운영체제 식별 방법.
  4. 제 3항에 있어서,
    상기 TTL(Time To Live), MSS(Maximum Segment Size), 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나를 기준으로 분기를 나누는 룰을 포함하는 OS 핑거프린트 룰을 얻는 단계는,
    상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 작거나 같은 경우 제1 분기로 나누는 제1 룰 및 상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 큰 경우 제2 분기로 나누는 제2 룰을 포함하는 OS 핑거프린트 룰을 얻는 단계를 포함하는,
    운영체제 식별 방법.
  5. 제 4항에 있어서,
    상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 작거나 같은 경우 제1 분기로 나누는 제1 룰 및 상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 큰 경우는 제2 분기로 나누는 제2 룰을 포함하는 OS 핑거프린트 룰을 얻는 단계는,
    상기 제 1분기를 상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 작거나 같은 경우 제3 분기로 나누는 제 3룰 및 상기 제1 분기를 상기 TTL, MSS, 윈도우 사이즈, PID 및 DF 플래그 수치중 어느 하나가 기준치보다 큰 경우 제4 분기로 나누는 제4 룰을 포함하는 OS 핑거프린트 룰을 얻는 단계를 포함하는,
    운영체제 식별 방법.
  6. 제 1항에 있어서,
    상기 TCP 헤더 및 상기 IP 헤더의 정보와 상기 OS 핑거프린트 룰을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계는,
    상기 제1 레이어에 의해 상기 식별 대상 디바이스의 운영체제 카테고리를 window, unix 및 linux중 어느 하나로 식별하는 단계를 포함하는,
    운영체제 식별 방법.
  7. 제 1항에 있어서,
    상기 TCP 헤더 및 상기 IP 헤더의 정보와 상기 OS 핑거프린트 룰을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계는,
    상기 OS 핑거프린트 룰을 JSON 형태로 변환하는 단계; 및
    상기 TCP 헤더 및 상기 IP 헤더의 정보와 상기 JSON 형태의 OS 핑거프린트 룰을 이용하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함하는,
    운영체제 식별 방법.
  8. 컴퓨팅장치에 의해 수행되는 방법에 있어서,
    식별 대상 디바이스로부터 수신한 네트워크 패킷의 IP 헤더를 추출하는 단계;
    상기 IP 헤더에서 추출된 TTL(Time To Live) 수치를 81과 비교하는 최상단 노드(root node)를 포함하는 결정트리(decision tree)를 이용하여 상기 식별 대상 디바이스의 운영체제 카테고리를 식별하는 OS 핑거프린트 룰을 얻는 단계; 및
    상기 OS 핑거프린트 룰과 상기 네트워크 패킷을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함하는,
    운영체제 식별 방법.
  9. 제 8항에 있어서,
    상기 IP 헤더에서 추출된 TTL(Time To Live) 수치를 81과 비교하는 최상단 노드(root node)를 포함하는 결정트리(decision tree)를 이용하여 상기 식별 대상 디바이스의 운영체제 카테고리를 식별하는 OS 핑거프린트 룰을 얻는 단계는,
    상기 식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더를 추출하는 단계; 및
    상기 TCP 헤더에서 추출된 윈도우 사이즈 수치를 비교하는 상기 최상단 노드의 자식노드(child node)를 포함하는 결정트리를 이용하여 상기 식별 대상 디바이스의 운영체제 카테고리를 식별하는 OS 핑거프린트 룰을 얻는 단계를 포함하는,
    운영체제 식별 방법.
  10. 컴퓨팅장치에 의해 수행되는 방법에 있어서,
    식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더를 추출하는 단계;
    상기 TCP 헤더에서 추출된 윈도우 사이즈 수치를 17920과 비교하는 최상단 노드(root node)를 포함하는 결정트리(decision tree)를 이용하여 운영체제 카테고리가 linux인 상기 식별 대상 디바이스의 운영체제 종류를 식별하는 OS 핑거프린트 룰을 얻는 단계; 및
    상기 OS 핑거프린트 룰과 상기 네트워크 패킷을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함하는,
    운영체제 식별 방법.
  11. 컴퓨팅장치에 의해 수행되는 방법에 있어서,
    식별 대상 디바이스로부터 수신한 네트워크 패킷의 TCP 헤더를 추출하는 단계;
    상기 TCP헤더에서 추출된 윈도우 사이즈 수치를 29200과 비교하는 최상단 노드(root node)를 포함하는 결정트리(decision tree)를 이용하여 운영체제 카테고리가 unix인 상기 식별 대상 디바이스의 운영체제 종류를 식별하는 OS 핑거프린트 룰을 얻는 단계; 및
    상기 OS 핑거프린트 룰과 상기 네트워크 패킷을 매칭하여 상기 식별 대상 디바이스의 운영체제를 식별하는 단계를 포함하는,
    운영체제 식별 방법.
KR1020180147302A 2018-11-26 2018-11-26 멀티레이어로 구성된 os 핑거프린트 룰에 기반한 운영체제 식별 방법 및 그 장치 KR20200061699A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180147302A KR20200061699A (ko) 2018-11-26 2018-11-26 멀티레이어로 구성된 os 핑거프린트 룰에 기반한 운영체제 식별 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180147302A KR20200061699A (ko) 2018-11-26 2018-11-26 멀티레이어로 구성된 os 핑거프린트 룰에 기반한 운영체제 식별 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20200061699A true KR20200061699A (ko) 2020-06-03

Family

ID=71087707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180147302A KR20200061699A (ko) 2018-11-26 2018-11-26 멀티레이어로 구성된 os 핑거프린트 룰에 기반한 운영체제 식별 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR20200061699A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259208A (zh) * 2021-07-13 2021-08-13 中国人民解放军国防科技大学 基于smb协议的操作系统指纹信息安全检测方法与装置
CN114095235A (zh) * 2021-11-17 2022-02-25 恒安嘉新(北京)科技股份公司 系统识别方法、装置、计算机设备及介质
CN117056912A (zh) * 2023-08-15 2023-11-14 浙江齐安信息科技有限公司 基于canvas指纹的操作系统识别方法、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180120451A (ko) 2017-04-27 2018-11-06 한국전자통신연구원 사물인터넷 환경에서의 접근제어정책 분산 관리 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180120451A (ko) 2017-04-27 2018-11-06 한국전자통신연구원 사물인터넷 환경에서의 접근제어정책 분산 관리 장치 및 그 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259208A (zh) * 2021-07-13 2021-08-13 中国人民解放军国防科技大学 基于smb协议的操作系统指纹信息安全检测方法与装置
CN114095235A (zh) * 2021-11-17 2022-02-25 恒安嘉新(北京)科技股份公司 系统识别方法、装置、计算机设备及介质
CN114095235B (zh) * 2021-11-17 2024-03-19 恒安嘉新(北京)科技股份公司 系统识别方法、装置、计算机设备及介质
CN117056912A (zh) * 2023-08-15 2023-11-14 浙江齐安信息科技有限公司 基于canvas指纹的操作系统识别方法、设备及介质
CN117056912B (zh) * 2023-08-15 2024-06-11 浙江齐安信息科技有限公司 基于canvas指纹的操作系统识别方法、设备及介质

Similar Documents

Publication Publication Date Title
Cui et al. Discoverer: Automatic Protocol Reverse Engineering from Network Traces.
US20160226893A1 (en) Methods for optimizing an automated determination in real-time of a risk rating of cyber-attack and devices thereof
US7865955B2 (en) Apparatus and method for extracting signature candidates of attacking packets
KR20200061699A (ko) 멀티레이어로 구성된 os 핑거프린트 룰에 기반한 운영체제 식별 방법 및 그 장치
CN106126383B (zh) 一种日志处理方法和装置
WO2017217163A1 (ja) アクセス分類装置、アクセス分類方法及びアクセス分類プログラム
WO2017018377A1 (ja) 分析方法、分析装置、および分析プログラム
US10873618B1 (en) System and method to dynamically generate a set of API endpoints
KR101859562B1 (ko) 취약점 정보 분석 방법 및 장치
US10339319B2 (en) Method and apparatus for identifying vulnerability information using keyword analysis for banner of open port
US10462168B2 (en) Access classifying device, access classifying method, and access classifying program
US11888874B2 (en) Label guided unsupervised learning based network-level application signature generation
US20170070520A1 (en) Website information extraction device, system, website information extraction method, and website information extraction program
US10984111B2 (en) Data driven parser selection for parsing event logs to detect security threats in an enterprise system
EP3242240A1 (en) Malicious communication pattern extraction device, malicious communication pattern extraction system, malicious communication pattern extraction method and malicious communication pattern extraction program
CN113194058A (zh) Web攻击检测方法、设备、网站应用层防火墙及介质
CN111953552A (zh) 数据流的分类方法和报文转发设备
US20180332056A1 (en) Identification of a dns packet as malicious based on a value
US20190370476A1 (en) Determination apparatus, determination method, and determination program
CN107786529B (zh) 网站的检测方法、装置及系统
US10419351B1 (en) System and method for extracting signatures from controlled execution of applications and application codes retrieved from an application source
CN114205146B (zh) 一种多源异构安全日志的处理方法及装置
CN115392238A (zh) 一种设备识别方法、装置、设备及可读存储介质
CN112583827B (zh) 一种数据泄露检测方法及装置
CN115225328A (zh) 页面访问数据的处理方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
E601 Decision to refuse application