KR101940482B1 - Tcp/ip 헤더 및 http 쿠키에 기반한 nat 내부 호스트 식별 장치 및 방법 - Google Patents

Tcp/ip 헤더 및 http 쿠키에 기반한 nat 내부 호스트 식별 장치 및 방법 Download PDF

Info

Publication number
KR101940482B1
KR101940482B1 KR1020170038638A KR20170038638A KR101940482B1 KR 101940482 B1 KR101940482 B1 KR 101940482B1 KR 1020170038638 A KR1020170038638 A KR 1020170038638A KR 20170038638 A KR20170038638 A KR 20170038638A KR 101940482 B1 KR101940482 B1 KR 101940482B1
Authority
KR
South Korea
Prior art keywords
host
packet
list
value
source port
Prior art date
Application number
KR1020170038638A
Other languages
English (en)
Other versions
KR20180109277A (ko
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 KR1020170038638A priority Critical patent/KR101940482B1/ko
Publication of KR20180109277A publication Critical patent/KR20180109277A/ko
Application granted granted Critical
Publication of KR101940482B1 publication Critical patent/KR101940482B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2571NAT traversal for identification, e.g. for authentication or billing 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 실시예들은 NAT 장치로부터 패킷을 획득하고, TTL 필드 값을 이용하여 운영체제 별로 패킷을 분류하고, 윈도우즈 계열은 소스 포트 필드 값을 기반으로 리눅스 계열은 타임스탬프 필드 값을 기반으로 호스트들을 분류하고, 분류된 호스트들에 대하여 쿠키 정보를 기반으로 신규 호스트인지 여부 및 기존 호스트의 전원 상태를 판단함으로써, NAT 내부에 별도의 프로그램을 설치하지 않고 NAT 외부에서 NAT 내부의 호스트 개수를 정확하게 파악할 뿐만 아니라 NAT 내부의 특정 호스트를 식별할 수 있는 NAT 내부 호스트 식별 장치 및 방법을 제공한다.

Description

TCP/IP 헤더 및 HTTP 쿠키에 기반한 NAT 내부 호스트 식별 장치 및 방법 {Method and Apparatus for Identifying NAT Host Based on TCP/IP Header and HTTP Cookie}
본 발명이 속하는 기술 분야는 NAT 내부 호스트 식별 장치 및 방법에 관한 것이다.
NAT(Network Address Translation) 장치는 IP 패킷의 헤더 내의 IP 주소 정보를 변경하고 사설망에 존재하는 호스트 각각의 사설 IP 주소를 하나의 공인 IP 주소로 맵핑시킨다. NAT 장치로 인하여 여러 호스트가 하나의 공인 IP 주소를 이용할 수 있으므로, IPv4(Internet Protocol version 4) 주소가 고갈되는 문제를 해결할 수 있다. NAT 내부의 사설망에 존재하는 호스트들의 사설 IP 주소가 NAT 외부 공인망에 대하여 공개되지 않기 때문에 보안 위협으로부터 벗어날 수 있는 장점이 있다.
하지만, NAT 내부의 특정 호스트가 공인망에 있는 서비스 제공자를 공격한 경우에, 네트워크 관리자가 IP 기반으로 NAT 장치를 차단한다면 NAT 내부의 일반적인 사용자까지 차단을 당하는 문제가 있다.
이러한 문제를 해결하기 위해서 NAT 내부 호스트들의 사설 IP 주소나 호스트 수를 알려주는 별도의 프로그램을 설치할 수 있으나 NAT를 사용하는 사용자가 프로그램을 설치하지 않으면 여전히 내부 호스트를 식별할 수 없는 문제가 있다.
따라서, 별도의 프로그램 설치와 상관없이 NAT 내부 호스트를 식별할 수 있는 방법이 필요하다.
본 발명의 실시예들은 NAT 장치로부터 패킷을 획득하고, TTL 필드 값을 이용하여 운영체제 별로 패킷을 분류하고, 윈도우즈 계열은 소스 포트 필드 값을 기반으로 리눅스 계열은 타임스탬프 필드 값을 기반으로 호스트들을 분류하고, 분류된 호스트들에 대하여 쿠키 정보를 기반으로 신규 호스트인지 여부 및 기존 호스트의 전원 상태를 판단함으로써, NAT 내부에 별도의 프로그램을 설치하지 않고 NAT 외부에서 NAT 내부의 호스트 개수를 정확하게 파악할 뿐만 아니라 NAT 내부의 특정 호스트를 식별하는 데 발명의 주된 목적이 있다.
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.
본 실시예의 일 측면에 의하면, 컴퓨팅 디바이스에 의한 NAT(Network Address Translation) 내부 호스트 식별 방법에 있어서, 복수의 호스트에 연결된 NAT 장치로부터 패킷을 획득하는 단계, 상기 패킷이 TCP 패킷이면, 상기 TCP 패킷의 TCP 헤더에 대응하는 IP 헤더의 TTL(Time to Live)을 이용하여 상기 패킷을 제1 운영체제 패킷 또는 제2 운영체제 패킷으로 분류하는 단계, 상기 제1 운영체제 패킷에 대하여 상기 TCP 헤더의 소스 포트를 기반으로 제1 호스트 리스트를 관리하고 상기 제2 운영체제 패킷에 대하여 상기 TCP 헤더의 타임스탬프의 Tsval(Timestamp Value Field)을 기반으로 제2 호스트 리스트를 관리하여, 상기 복수의 호스트를 분류하는 단계, 및 상기 패킷의 쿠키 정보를 기반으로 상기 제1 호스트 리스트 또는 상기 제2 호스트 리스트를 변경하고, 상기 호스트가 신규 호스트인지 여부 또는 기존 호스트의 전원 상태를 판단하여 상기 복수의 호스트를 식별하는 단계를 포함하는 NAT 내부 호스트 식별 방법을 제공한다.
본 실시예의 다른 측면에 의하면, 복수의 호스트에 연결된 NAT 장치로부터 패킷을 획득하는 패킷 획득부, 상기 패킷이 TCP 패킷이면, 상기 TCP 패킷의 TCP 헤더에 대응하는 IP 헤더의 TTL(Time to Live)을 이용하여 상기 패킷을 제1 운영체제 패킷 또는 제2 운영체제 패킷으로 분류하는 운영체제 분류부, 상기 제1 운영체제 패킷에 대하여 상기 TCP 헤더의 소스 포트를 기반으로 제1 호스트 리스트를 관리하고 상기 제2 운영체제 패킷에 대하여 상기 TCP 헤더의 타임스탬프의 Tsval(Timestamp Value Field)을 기반으로 제2 호스트 리스트를 관리하여, 상기 복수의 호스트를 분류하는 호스트 분류부, 및 상기 패킷의 쿠키 정보를 기반으로 상기 제1 호스트 리스트 또는 상기 제2 호스트 리스트를 변경하고, 상기 호스트가 신규 호스트인지 여부 또는 기존 호스트의 전원 상태를 판단하여 상기 복수의 호스트를 식별하는 호스트 식별부를 포함하는 NAT 내부 호스트 식별 장치를 제공한다.
이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면, NAT 장치로부터 패킷을 획득하고, TTL 필드 값을 이용하여 운영체제 별로 패킷을 분류하고, 윈도우즈 계열은 소스 포트 필드 값을 기반으로 리눅스 계열은 타임스탬프 필드 값을 기반으로 호스트들을 분류하고, 분류된 호스트들에 대하여 쿠키 정보를 기반으로 신규 호스트인지 여부 및 기존 호스트의 전원 상태를 판단함으로써, NAT 내부에 별도의 프로그램을 설치하지 않고 NAT 외부에서 NAT 내부의 호스트 개수를 정확하게 파악할 뿐만 아니라 NAT 내부의 특정 호스트를 식별할 수 있는 효과가 있다. NAT 내부의 공격자를 특정할 수 있어, NAT 내부의 일반 사용자를 제외한 특정 공격자만을 대상으로 적절하게 대응할 수 있는 효과가 있다.
여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급된다.
도 1은 본 발명의 실시예들에 따른 NAT 내부 호스트 식별 시스템을 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치를 예시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치의 전체 동작을 예시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치가 소스 포트 필드 값을 이용하여 윈도우즈 호스트를 분류하는 동작을 예시한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치의 윈도우즈 호스트 리스트를 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치가 타임스탬프 옵션을 이용하여 비-윈도우즈 호스트를 분류하는 동작을 예시한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치의 비-윈도우즈 호스트 리스트를 예시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치가 쿠키 정보를 이용하여 윈도우즈 호스트를 식별하는 동작을 예시한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치의 윈도우즈 호스트 리스트를 예시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치가 쿠키 정보를 이용하여 비-윈도우즈 호스트를 식별하는 동작을 예시한 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치의 비-윈도우즈 호스트 리스트를 예시한 도면이다.
도 12 및 도 13는 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치가 쿠키 정보에 따라 호스트를 식별하는 것을 예시한 것이다.
이하, 본 발명을 설명함에 있어서 관련된 공지기능에 대하여 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하고, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다.
도 1은 본 발명의 실시예들에 따른 NAT 내부 호스트 식별 시스템을 예시한 도면이다. NAT 내부 호스트 식별 시스템은 복수의 호스트(11, 12, 13, 14), NAT 장치(100), 및 NAT 내부 호스트 식별 장치(200)을 포함한다. 도 1에서는 호스트의 개수가 4개로 도시되어 있으나, 본 발명을 구현하는 데 있어서 호스트의 개수가 제한되는 것이 아니다.
NAT 장치(100)는 사설망(10) 및 외부망(300)에 연결된다. 사설망(10) 또는 외부망(40)은 노드(Node), 회선, 간선, 및 위성 등을 포함할 수 있고, 이들은 서로 연결 및 접속된 통신설비의 집합을 의미한다.
NAT 장치(100)는 IP 패킷의 헤더 내의 IP 주소 정보를 변경하고 사설망(10)에 존재하는 호스트(11, 12, 13, 14) 각각의 사설 IP 주소를 하나의 공인 IP 주소로 맵핑시킨다.
NAT 장치(100)로 인하여 사설 IP 주소가 외부망(300)에 대하여 공개되지 않기 때문에, NAT 내부 호스트 식별 장치(200)는 NAT 장치(100)에 연결되어 내부 호스트를 식별한다. NAT 내부 호스트 식별 장치(200)는 NAT 장치(100)로부터 발생하는 패킷을 스니핑하여 패킷의 TCP/IP 헤더 및 HTTP 쿠키 정보를 이용하여 NAT 내부 호스트를 식별한다.
도 2는 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치를 예시한 블록도이다. 도 2에 도시한 바와 같이, NAT 내부 호스트 식별 장치(200)는 패킷 획득부(210), 운영체제 분류부(220), 호스트 분류부(230), 및 호스트 식별부(240)를 포함한다. NAT 내부 호스트 식별 장치(200)는 도 2에서 예시적으로 도시한 다양한 구성요소들 중에서 일부 구성요소를 생략하거나 다른 구성요소를 추가로 포함할 수 있다.
패킷 획득부(210)는 복수의 호스트에 연결된 NAT 장치로부터 패킷을 획득한다.
운영체제 분류부(220)는 패킷이 TCP 패킷이면, TCP 패킷의 TCP 헤더에 대응하는 IP 헤더의 TTL(Time to Live)을 이용하여 패킷을 제1 운영체제 패킷 또는 제2 운영체제 패킷으로 분류한다.
호스트 분류부(230)는 제1 운영체제 패킷에 대하여 TCP 헤더의 소스 포트를 기반으로 제1 호스트 리스트를 관리하고 제2 운영체제 패킷에 대하여 TCP 헤더의 타임스탬프의 Tsval(Timestamp Value Field)을 기반으로 제2 호스트 리스트를 관리하여, 복수의 호스트를 분류한다.
호스트 식별부(240)는 패킷의 쿠키 정보를 기반으로 제1 호스트 리스트 또는 제2 호스트 리스트를 변경하고, 호스트가 신규 호스트인지 여부 또는 기존 호스트의 전원 상태를 판단하여 복수의 호스트를 식별한다.
도 3은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치의 전체 동작을 예시한 흐름도이다.
단계 S310에서 NAT 내부 호스트 식별 장치는 NAT 내부 호스트로부터 생성된 NAT 장치 외부로 전송되는 패킷의 정보를 획득한다. 패킷 중에서 TCP 패킷은 플래그 값에 따라 연결, 종료, 응답 등의 값을 전달한다.
단계 S320에서 NAT 내부 호스트 식별 장치는 TCP 플래그가 SYN 플래그인지 체크한다. NAT 내부 호스트 식별 장치는 쿠키 정보를 이용하여 호스트를 식별하는 데, SYN 패킷에는 쿠키 정보가 포함되어 있지 않고, SYN 패킷이 아닌 패킷 중에서 일부의 패킷에 쿠키 정보가 포함되어 있어, NAT 내부 호스트 식별 장치는 SYN 플래그를 체크한다. 패킷이 TCP 패킷이면 SYN 패킷이면, 호스트 분류부(230)가 복수의 호스트를 분류하고, 패킷이 TCP 패킷이면 SYN 패킷이 아니면, 호스트 식별부(240)가 복수의 호스트를 식별한다.
단계 330에서, NAT 내부 호스트 식별 장치는 패킷을 내부 호스트의 운영체제를 윈도우즈(Windows), 리눅스(Linux)/유닉스(Unix)로 크게 두 가지 유형으로 분류한다. NAT 내부 호스트 식별 장치는 NAT 외부에서 패킷을 수집하고 패킷이 TCP/IP 패킷이라면 TTL 값을 확인한다. 운영체제 분류부(220)는 IP 헤더의 초기 TTL 값이 128이면 호스트의 운영체제를 윈도우즈 계열로 추정하여 패킷을 제1 운영체제 패킷으로 분류한다. 운영체제 분류부(220)는 IP 헤더의 초기 TTL 값이 64이면 호스트의 운영체제를 비-윈도우즈 계열로 추정하여 패킷을 제2 운영체제 패킷으로 분류한다.
단계 340에서, NAT 내부 호스트 식별 장치는 패킷이 윈도우 운영체제로 분류된 패킷일 경우에, IP, TCP 헤더의 소스 포트, IP 헤더의 ID(IDentification)를 비교하여 호스트 별로 패킷을 분류한다. TTL 값을 확인하여 패킷의 호스트가 윈도우 운영체제로 판별되면 소스 포트를 확인하여 패킷이 새로운 호스트로 추정되는지를 판별한다.
단계 350에서, NAT 내부 호스트 식별 장치는 패킷이 리눅스/유닉스 운영체제로 분류된 패킷일 경우에, IP, 현재 시간, TCP 타임스탬프 옵션의 값을 비교하여 호스트 별로 패킷을 분류한다. TTL 값을 확인하여 패킷의 호스트가 패킷의 호스트가 리눅스 운영체제로 판별되면 TCP 타임스탬프 옵션의 Tsval 필드를 확인하여 새로운 호스트로 추정되는지 판별한다.
단계 S360에서, NAT 내부 호스트 식별 장치는 호스트 별로 분류된 패킷들을 HTTP 쿠키를 비교하여 새로운 장치인지의 여부를 확인하고 NAT 내부 호스트를 식별한다. 패킷에서 새로운 호스트의 쿠키가 확인되었다면 새로운 호스트가 이전의 호스트와 동일한지를 쿠키를 통해 확인한다. 쿠키가 동일하다면 같은 호스트라고 판단하여 호스트 아이디를 변경한다. 아니라면 새로운 호스트로 최종 확인한다. 같은 호스트로 판별되더라도 기존의 호스트 리스트에 패킷이 지속적으로 추가된다면 단순히 호스트 추정단계에서 잘못 분류한 것으로 판단하고 기존의 호스트 리스트와 합친다. 기존 호스트 리스트에 패킷이 더 이상 추가되지 않는다면 윈도우 운영체제의 경우 기존 호스트 아이디의 마지막 소스포트가 소스포트 한계값과 가까운지 확인한다. 리눅스/유닉스 운영체제의 경우 기존 호스트 아이디의 마지막 Tsval이 Tsval 한계값과 가까운지 확인한다. 필드의 한계값과 가깝다면 필드의 한계값을 지나 초기화되었기 때문에 잘못 판단한 것으로 판단하고 기존 호스트 아이디와 바뀐 호스트 아이디의 리스트를 합친다. 기존 호스트 리스트의 마지막 필드 값이 필드의 한계값과 가깝지 않을 경우 기기가 껐다 켜졌던 것으로 판단한다.
이하에서는 도 4 내지 도 7을 참조하여 NAT 내부 호스트 식별 장치가 호스트를 분류하는 동작을 설명한다.
NAT 내부 호스트 식별 장치는 운영체제 분류 단계에서 분류된 윈도우즈(Windows) 호스트의 패킷과 비-윈도우(Non-Windows) 호스트의 패킷에 대하여 호스트 분류를 수행한다. 호스트 분류 단계에서는 TCP SYN 패킷 패킷이 사용된다. 호스트 분류 단계에서 각 필드들이 선형적으로 증가하는 현상을 보이므로 LSM(Least Square Method)를 사용하여 다음 필드를 예측하여 호스트 별로 패킷들을 분류한다. 회귀 분석이란 변수 상호 간의 관계를 표본으로부터 추정하는 방식이다.
도 4는 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치가 소스 포트 필드 값을 이용하여 윈도우즈 호스트를 분류하는 동작을 예시한 흐름도이고, 도 5는 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치의 윈도우즈 호스트 리스트를 예시한 도면이다.
호스트 분류부(230)는 TCP 헤더의 소스 포트 값 및 제1 호스트 리스트의 소스 포트 값을 비교하여 제1 호스트 리스트의 항목을 추가, 삭제, 및 변경 중 적어도 하나를 수행한다.
단계 S410 및 S420에서, 윈도우즈 TCP SYN 패킷이 인식될 때 등록된 호스트가 없으면 해당 패킷으로 호스트를 생성한다.
단계 S430 및 S440에서, 해당 호스트에 등록된 TCP 패킷이 하나라면 인식된 TCP SYN 패킷의 소스 포트 필드 값과 등록된 TCP 패킷의 소스 포트 필드 값의 차이 기 설정된 범위 내인지 확인한다. 그 차이가 범위 내라면 해당 호스트에 패킷을 추가하고 아니라면 다음 호스트를 호출한다. 예컨대, 설정된 범위는 -10 내지 32가 될 수 있으나 이는 예시일 뿐이며 이에 한정되는 것은 아니고 구현되는 설계에 따라 적합한 수치가 사용될 수 있음은 물론이다.
단계 S450에서, 호스트 분류부(230)는 제1 호스트 리스트의 동일한 호스트 식별정보에 포함된 두 개 이상의 소스 포트 값을 선형 회귀 분석하고 기울기를 산출하여 상기 획득한 패킷의 소스 포트 값을 예측한다.
단계 S460에서, 호스트 분류부(230)는 예측한 소스 포트 값 및 TCP 헤더의 소스 포트 값 간의 차이가 기 설정된 오차 범위 내에 있다면, 패킷을 동일한 호스트로부터 수신한 패킷으로 판단한다. 그 차이가 범위 내라면 해당 호스트에 패킷을 추가하고 아니라면 다음 호스트를 호출한다. 호출할 호스트가 없을 경우 호스트를 추가한다. LSM의 속도 측면을 고려하여 각 호스트 별 TCP 패킷의 수는 특정 개수로 제한한다. 예컨대, 최대 40개로 제한할 수 있다. 오차를 벗어나는 값이 존재하므로 기 설정된 사이즈만큼의 패킷이 분류한 호스트에 존재해야 호스트라고 분류한다. 기 설정된 사이즈만큼의 패킷이 쌓이기 전까지는 호스트라고 분류하지 않는다. 예컨대, 한 HTTP 시퀀스가 평균 4개의 SYN을 발생시키므로 10번의 시퀀스가 발생하였다면 호스트로 인정하여 40개의 SYN을 한 호스트의 기준으로 할 수 있다. 도면부호 510, 520, 및 530을 참조하면, 이러한 방식에 의해 윈도우 호스트 리스트가 갱신됨을 파악할 수 있다.
도 6은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치가 타임스탬프 옵션을 이용하여 비-윈도우즈 호스트를 분류하는 동작을 예시한 흐름도이고, 도 7은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치의 비-윈도우즈 호스트 리스트를 예시한 도면이다.
호스트 분류부(230)는 TCP 헤더의 타임스탬프의 Tsval 값 및 제2 호스트 리스트의 Tsval 값을 비교하여 제2 호스트 리스트의 항목을 추가, 삭제, 및 변경 중 적어도 하나를 수행한다. TCP 타임스탬프 옵션은 Tsval이라는 32비트 서브 필드를 포함하며, Tsval 필드는 현재 시간에 기반하여 정해진다. Tsval의 값은 부팅시 0으로 초기화될 수 있다.
단계 S610 및 S620에서, 비-윈도우즈 TCP SYN 패킷이 인식될 때 등록된 호스트가 없으면 해당 패킷으로 호스트를 생성한다.
단계 S630 및 S640에서, 해당 호스트에 등록된 TCP 패킷이 하나라면 (i) 해당 호스트에 등록된 세그먼트의 Tsval과 TCP SYN 세그먼트의 Tsval의 차를 (ii) 해당 호스트에 등록된 세그먼트의 패킷 도착 시간과 TCP SYN 세그먼트의 패킷 도착 시간 차로 나눈 값이 기 설정된 범위 내인지 확인한다. 그 차이가 범위 내라면 해당 호스트에 패킷을 추가하고 아니라면 다음 호스트를 호출한다. 예컨대, 설정된 범위는 0 내지 1300이 될 수 있으나 이는 예시일 뿐이며 이에 한정되는 것은 아니고 구현되는 설계에 따라 적합한 수치가 사용될 수 있음은 물론이다.
단계 S650에서, 호스트 분류부(230)는 제1 호스트 리스트의 동일한 호스트 식별정보에 포함된 두 개 이상의 타입스탬프 옵션 값을 선형 회귀 분석하고 기울기를 산출하여 상기 획득한 패킷의 타임스탬프 옵션 값을 예측한다.
단계 S660에서, 호스트 분류부(230)는 예측한 타임스탬프 옵션 값 및 TCP 헤더의 타임스탬프 옵션 값 간의 차이가 기 설정된 오차 범위 내에 있다면, 패킷을 동일한 호스트로부터 수신한 패킷으로 판단한다. 그 차이가 범위 내라면 해당 호스트에 패킷을 추가하고 아니라면 다음 호스트를 호출한다. 예컨대, 설정된 범위는 0 내지 1000이 될 수 있으나 이는 예시일 뿐이며 이에 한정되는 것은 아니고 구현되는 설계에 따라 적합한 수치가 사용될 수 있음은 물론이다.
호출할 호스트가 없을 경우 호스트를 추가한다. LSM의 속도 측면을 고려하여 각 호스트 별 TCP 패킷의 수는 특정 개수로 제한한다. 도면부호 710, 720, 및 730을 참조하면, 이러한 방식에 의해 윈도우 호스트 리스트가 갱신됨을 파악할 수 있다.
이하에서는 도 8 내지 도 11을 참조하여 NAT 내부 호스트 식별 장치가 호스트를 식별하는 동작을 설명한다.
호스트 식별부(240)는 TCP 패킷의 TCP 헤더에 대응하는 IP 헤더의 TTL을 이용하여 호스트의 운영체제를 판단하여, 제1 호스트 리스트 및 제2 호스트 리스트를 선택할 수 있다. 호스트 식별부(240)는 패킷의 쿠키 정보를 기반으로 제1 호스트 리스트 및 제2 호스트 리스트를 변경하고, 호스트가 신규 호스트인지 여부 또는 기존 호스트의 전원 상태를 판단한다.
TCP/IP 헤더 필드의 규칙성을 이용하여 호스트를 추정하는 경우에 기기가 껐다 켜진다면 규칙성은 초기화되어 호스트가 추가된 것으로 판단되는 문제가 있다. 잘못 추정된 것을 바로잡는 방법이 필요하므로, NAT 내부 호스트 식별 장치는 HTTP 쿠키를 이용하여 문제를 해결한다. 쿠키는 세션 쿠키와 영구적 쿠키로 나뉘며, 세션 쿠키가 세션이 종료될 때까지만 남아있는 것과 달리 영구적 쿠키는 사용자가 직접 삭제하지 않거나 업데이트되기 전까지 변하지 않는다.
NAT 내부 호스트 식별 장치는 이를 이용하여 호스트를 식별할 수 있다. 쿠키가 브라우저마다 다르기 때문에 브라우저 정보를 알기 위하여, NAT 내부 호스트 식별 장치는 각 추정된 호스트들에 대하여 User Agent 정보를 저장한다.
NAT 장치는 일반적으로 소스 포트를 변경하지 않는다. 호스트는 인터넷을 사용할 때 Well-Known 포트를 사용하지 않으며 1,024 ~ 65,535까지의 Registered 포트와 Dynamic 포트를 사용한다. 하나의 공통 NAT를 사용하는 사설 네트워크의 호스트들의 소스 포트가 겹칠 수 있으며 NAT는 소스 포트가 겹칠 경우 호스트의 포트를 변경하여 외부로 전송한다. NAT 동작 방식에 따라 포트가 겹칠 때 소스 포트를 변경하는 상황이 다르다. 목적지 주소까지 동일해야 소스 포트를 변경하는 방식과 소스 포트만 겹쳤을 경우에 변경하는 방식이 있다.
소스 포트 번호는 0 ~ 65,535까지이며 Windows OS는 소스 포트를 점점 증가시키는데 증가된 값이 65,535를 벗어난다면 소스 포트 번호를 재배치시킨다. 호스트 기기를 재부팅시킬 경우에도 소스 포트 번호는 재배치된다. Tsval도 한계치가 존재하며 0 ~ 4,294,967,265까지이다. Tsval은 현재 시간에 따라 선형적으로 증가하는데 증가된 값이 4,294,967,265를 넘어선다면 Tsval은 다시 0부터 시작하게 되며 부팅 시에도 0으로 초기화된다.
브라우저마다 다른 영구적 쿠키를 가지지만 사용자 에이전트(User Agent) 정보를 통해 브라우저 및 운영체제를 식별할 수 있기 때문에 영구적 쿠키를 사용하여 호스트를 식별할 수 있다. HTTP User Agent는 접속한 호스트 기기의 디바이스 정보와 사용하고 있는 웹 브라우저에 대한 정보를 담고 있다. 즉, User Agent를 통하여 기기의 운영체제 및 운영체제 버전, 사용 브라우저 및 브라우저 버전까지 알 수 있다. 호스트 리스트에는 호스트마다 운영체제 또는 브라우저를 구분하기 위해 User Agent를 저장되므로, User Agent를 통해 호스트의 운영체제까지 최종 식별할 수 있다.
또한 사이트마다 다른 쿠키 필드를 가지지만 HTTP 호스트를 알고 각 사이트의 어떤 쿠키 필드가 영구적 쿠키인지 안다면 구별이 가능하다. 예컨대, HTTP 쿠키 필드 정보로 Naver는 NNB, Daum은 aid, Tistorysms _ga, Dcinside는 __utma, Nate는 pcid를 사용한다.
도 8은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치가 쿠키 정보를 이용하여 윈도우즈 호스트를 식별하는 동작을 예시한 흐름도이고, 도 9는 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치의 윈도우즈 호스트 리스트를 예시한 도면이다.
단계 S810, S820, 및 S830에서, 호스트 식별부(240)는 패킷의 소스 포트 및 목적지 주소를 제1 호스트 리스트의 소스 포트 및 목적지 주소와 비교하여 패킷에 대응하는 호스트를 판단하여, 제1 호스트 리스트의 쿠키 정보의 쿠키 정보를 갱신한다.
단계 S840, S850, 및 S860에서, 호스트 식별부(240)는 제1 호스트 리스트의 쿠키 정보에 기반하여 제1 호스트 리스트의 호스트 식별정보를 변경한다.
단계 S870, S880, 및 S890에서, 호스트 식별부(240)는 제1 호스트 리스트의 소스 포트 값 및 기 설정된 소스 포트 한계치 간의 차이가 기 설정된 범위 내에 있다면, 동일한 호스트라고 판단하여 제1 호스트 리스트에 포함된 두 개의 동일한 호스트 식별정보에 해당하는 항목들을 통합하고, 제1 호스트 리스트의 소스 포트 값 및 기 설정된 소스 포트 한계치 간의 차이가 상기 기 설정된 범위를 벗어나면, 기존의 호스트가 재부팅된 것으로 판단한다. 도면부호 910, 920, 930, 및 940을 참조하면, 쿠키 정보가 동일하여 윈도우 호스트 리스트가 갱신됨을 파악할 수 있다.
도 10은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치가 쿠키 정보를 이용하여 비-윈도우즈 호스트를 식별하는 동작을 예시한 흐름도이고, 도 11은 본 발명의 일 실시예에 따른 NAT 내부 호스트 식별 장치의 비-윈도우즈 호스트 리스트를 예시한 도면이다.
단계 S1010, S1020, 및 S1030에서, 호스트 식별부(240)는 패킷의 소스 포트 및 목적지 주소를 제2 호스트 리스트의 소스 포트 및 목적지 주소와 비교하여 패킷에 대응하는 호스트를 판단하여, 제2 호스트 리스트의 쿠키 정보를 갱신한다.
단계 S1040, S1050, 및 S1060에서, 호스트 식별부(240)는 제2 호스트 리스트의 쿠키 정보에 기반하여 제2 호스트 리스트의 호스트 식별정보를 변경한다. 쿠키 정보가 동일한지 여부를 비교한다.
단계 S1070, S1080, 및 S1090에서, 호스트 식별부(240)는 제2 호스트 리스트의 Tsval 값 및 기 설정된 Tsval 한계치 간의 차이가 기 설정된 범위 내에 있다면, 동일한 호스트라고 판단하여 제2 호스트 리스트에 포함된 두 개의 동일한 호스트 식별정보에 해당하는 항목들을 통합하고, 제2 호스트 리스트의 소스 포트 값 및 상기 기 설정된 Tsval 한계치 간의 차이가 상기 기 설정된 범위를 벗어나면, 기존의 호스트가 재부팅된 것으로 판단한다. 도면부호 910, 920, 930, 및 940과 달리 도면부호 1110을 참조하면, 쿠키 정보가 상이하여 비-윈도우 호스트 리스트가 유지됨을 파악할 수 있다.
도 12는 쿠키가 동일하지 않은 경우에 NAT 내부 호스트 식별 장치가 쿠키 정보에 따라 호스트를 식별하는 것을 예시한 것이고, 도 13은 쿠키가 동일한 경우에 NAT 내부 호스트 식별 장치가 쿠키 정보에 따라 호스트를 식별하는 것을 예시한 것이다. 도 13에 도시된 바와 같이, 실시예들에 의하면, 기존의 호스트가 재부팅된 것을 파악할 수 있다.
NAT 내부 호스트 식별 장치에 포함된 구성요소들이 도 2에서는 분리되어 도시되어 있으나, 복수의 구성요소들은 상호 결합되어 적어도 하나의 모듈로 구현될 수 있다. 구성요소들은 장치 내부의 소프트웨어적인 모듈 또는 하드웨어적인 모듈을 연결하는 통신 경로에 연결되어 상호 간에 유기적으로 동작한다. 이러한 구성요소들은 하나 이상의 통신 버스 또는 신호선을 이용하여 통신한다.
NAT 내부 호스트 식별 장치는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로 내에서 구현될 수 있고, 범용 또는 특정 목적 컴퓨터를 이용하여 구현될 수도 있다. 장치는 고정배선형(Hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(Field Programmable Gate Array, FPGA), 주문형 반도체(Application Specific Integrated Circuit, ASIC) 등을 이용하여 구현될 수 있다. 또한, 장치는 하나 이상의 프로세서 및 컨트롤러를 포함한 시스템온칩(System on Chip, SoC)으로 구현될 수 있다.
NAT 내부 호스트 식별 장치는 하드웨어적 요소가 마련된 컴퓨팅 디바이스 또는 서버에 소프트웨어, 하드웨어, 또는 이들의 조합하는 형태로 탑재될 수 있다. 컴퓨팅 디바이스 또는 서버는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신장치, 프로그램을 실행하기 위한 데이터를 저장하는 메모리, 프로그램을 실행하여 연산 및 명령하기 위한 마이크로프로세서 등을 전부 또는 일부 포함한 다양한 장치를 의미할 수 있다.
NAT 내부 호스트 식별 방법은 컴퓨팅 디바이스에 의하여 수행될 수 있으며, NAT 내부 호스트 식별 장치와 동일한 방식으로 동작한다.
NAT 내부 호스트 식별 방법은 복수의 호스트에 연결된 NAT 장치로부터 패킷을 획득하는 단계를 포함한다. NAT 내부 호스트 식별 방법은 패킷이 TCP 패킷이면, TCP 패킷의 TCP 헤더에 대응하는 IP 헤더의 TTL(Time to Live)을 이용하여 패킷을 제1 운영체제 패킷 또는 제2 운영체제 패킷으로 분류하는 단계를 포함한다. NAT 내부 호스트 식별 방법은 제1 운영체제 패킷에 대하여 TCP 헤더의 소스 포트를 기반으로 제1 호스트 리스트를 관리하고 제2 운영체제 패킷에 대하여 상기 TCP 헤더의 타임스탬프의 Tsval(Timestamp Value Field)을 기반으로 제2 호스트 리스트를 관리하여, 복수의 호스트를 분류하는 단계를 포함한다. NAT 내부 호스트 식별 방법은 패킷의 쿠키 정보를 기반으로 제1 호스트 리스트 또는 상기 제2 호스트 리스트를 변경하고, 호스트가 신규 호스트인지 여부 또는 기존 호스트의 전원 상태를 판단하여 복수의 호스트를 식별하는 단계를 포함한다.
NAT 내부 호스트 식별 방법은 패킷이 TCP 패킷이고 TCP 패킷이 SYN 패킷이면, 복수의 호스트를 분류하는 단계를 수행하고, 패킷이 TCP 패킷이고, TCP 패킷이 SYN 패킷이 아니면, 복수의 호스트를 식별하는 단계를 수행한다.
TCP 패킷의 TCP 헤더에 대응하는 IP 헤더의 TTL을 이용하여 패킷을 제1 운영체제 패킷 또는 제2 운영체제 패킷으로 분류하는 단계는, IP 헤더의 초기 TTL 값이 128이면 호스트의 운영체제를 윈도우즈 계열로 추정하여 패킷을 제1 운영체제 패킷으로 분류하고, IP 헤더의 초기 TTL 값이 64이면 호스트의 운영체제를 비-윈도우즈 계열로 추정하여 패킷을 제2 운영체제 패킷으로 분류할 수 있다.
제1 운영체제 패킷에 대하여 TCP 헤더의 소스 포트를 기반으로 제1 호스트 리스트를 관리하는 과정은, TCP 헤더의 소스 포트 값 및 제1 호스트 리스트의 소스 포트 값을 비교하여 제1 호스트 리스트의 항목을 추가, 삭제, 및 변경 중 적어도 하나를 수행할 수 있다.
제1 운영체제 패킷에 대하여 TCP 헤더의 소스 포트를 기반으로 제1 호스트 리스트를 관리하는 과정은, 제1 호스트 리스트의 동일한 호스트 식별정보에 포함된 두 개 이상의 소스 포트 값을 선형 회귀 분석하고 기울기를 산출하여 상기 획득한 패킷의 소스 포트 값을 예측할 수 있다. 예측한 소스 포트 값 및 상기 TCP 헤더의 소스 포트 값 간의 차이가 기 설정된 오차 범위 내에 있다면, 패킷을 동일한 호스트로부터 수신한 패킷으로 판단할 수 있다.
제2 운영체제 패킷에 대하여 TCP 헤더의 타임스탬프의 Tsval을 기반으로 제2 호스트 리스트를 관리하는 과정은, TCP 헤더의 타임스탬프의 Tsval 값 및 제2 호스트 리스트의 Tsval 값을 비교하여 제2 호스트 리스트의 항목을 추가, 삭제, 및 변경 중 적어도 하나를 수행할 수 있다.
제2 운영체제 패킷에 대하여 TCP 헤더의 타임스탬프의 Tsval을 기반으로 제2 호스트 리스트를 관리하는 과정은, 제2 호스트 리스트의 동일한 호스트 식별정보에 포함된 두 개 이상의 Tsval 값을 선형 회귀 분석하고 기울기를 산출하여 상기 획득한 패킷의 Tsval 값을 예측할 수 있다. 예측한 Tsval 값 및 TCP 헤더의 Tsval 값 간의 차이가 기 설정된 오차 범위 내에 있다면, 패킷을 동일한 호스트로부터 수신한 패킷으로 판단할 수 있다.
복수의 호스트를 식별하는 단계는, TCP 패킷의 TCP 헤더에 대응하는 IP 헤더의 TTL을 이용하여 호스트의 운영체제를 판단하여, 제1 호스트 리스트 및 제2 호스트 리스트를 선택할 수 있다. 패킷의 쿠키 정보를 기반으로 제1 호스트 리스트 및 제2 호스트 리스트를 변경하고, 호스트가 신규 호스트인지 여부 또는 기존 호스트의 전원 상태를 판단할 수 있다.
패킷의 쿠키 정보를 기반으로 제1 호스트 리스트 또는 제2 호스트 리스트를 변경하는 과정은, 패킷의 소스 포트 및 목적지 주소를 제1 호스트 리스트 또는 제2 호스트 리스트에 저장된 소스 포트 및 목적지 주소와 비교하여 패킷에 대응하는 호스트를 판단하여, 제1 호스트 리스트의 쿠키 정보 또는 제2 호스트 리스트의 쿠키 정보를 갱신할 수 있다. 제1 호스트 리스트의 쿠키 정보에 기반하여 제1 호스트 리스트의 호스트 식별정보를 변경하거나, 제2 호스트 리스트의 쿠키 정보에 기반하여 제2 호스트 리스트의 호스트 식별정보를 변경할 수 있다. 쿠키 정보가 동일한지 여부를 비교한다.
복수의 호스트를 식별하는 단계는, 제1 호스트 리스트의 소스 포트 값 및 기 설정된 소스 포트 한계치 간의 차이가 기 설정된 범위 내에 있다면, 동일한 호스트라고 판단하여 제1 호스트 리스트에 포함된 두 개의 동일한 호스트 식별정보에 해당하는 항목들을 통합하고, 제1 호스트 리스트의 소스 포트 값 및 기 설정된 소스 포트 한계치 간의 차이가 기 설정된 범위를 벗어나면, 기존의 호스트가 재부팅된 것으로 판단할 수 있다.
복수의 호스트를 식별하는 단계는, 제2 호스트 리스트의 Tsval 값 및 기 설정된 Tsval 한계치 간의 차이가 기 설정된 범위 내에 있다면, 동일한 호스트라고 판단하여 제1 호스트 리스트에 포함된 두 개의 동일한 호스트 식별정보에 해당하는 항목들을 통합하고, 제2 호스트 리스트의 소스 포트 값 및 기 설정된 Tsval 한계치 간의 차이가 상기 기 설정된 범위를 벗어나면, 기존의 호스트가 재부팅된 것으로 판단할 수 있다.
본 실시예들에 의하면, NAT 내부에 별도의 프로그램을 설치하지 않고 NAT 외부에서 NAT 내부의 호스트 개수를 정확하게 파악할 뿐만 아니라 NAT 내부의 특정 호스트를 식별할 수 있는 효과가 있다. NAT 내부의 공격자를 특정할 수 있어, NAT 내부의 일반 사용자를 제외한 특정 공격자만을 대상으로 적절하게 대응할 수 있는 효과가 있다.
도 3, 도 4, 도 6, 도 8, 및 도 10에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 3, 도 4, 도 6, 도 8, 및 도 10에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이다.
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는 데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 패킷들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
본 실시예들은 본 실시예의 기술 사상을 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 사설망 11, 12, 13, 14: 호스트
100: NAT 장치 300: 외부망
200: NAT 내부 호스트 식별 장치 210: 패킷 획득부
220: 운영체제 분류부 230: 호스트 분류부
240: 호스트 식별부

Claims (16)

  1. 컴퓨팅 디바이스에 의한 NAT(Network Address Translation) 내부 호스트 식별 방법에 있어서,
    복수의 호스트에 연결된 NAT 장치로부터 패킷을 획득하는 단계;
    상기 패킷이 TCP 패킷이면, 상기 TCP 패킷의 TCP 헤더에 대응하는 IP 헤더의 TTL(Time to Live)을 이용하여 상기 패킷을 제1 운영체제 패킷 또는 제2 운영체제 패킷으로 분류하는 단계;
    상기 제1 운영체제 패킷에 대하여 상기 TCP 헤더의 소스 포트를 기반으로 제1 호스트 리스트를 관리하고 상기 제2 운영체제 패킷에 대하여 상기 TCP 헤더의 타임스탬프의 Tsval(Timestamp Value Field)을 기반으로 제2 호스트 리스트를 관리하여, 상기 복수의 호스트를 분류하는 단계; 및
    상기 패킷의 쿠키 정보를 기반으로 상기 제1 호스트 리스트 또는 상기 제2 호스트 리스트를 변경하고, 상기 호스트가 신규 호스트인지 여부 또는 기존 호스트의 전원 상태를 판단하여 상기 복수의 호스트를 식별하는 단계
    를 포함하는 NAT 내부 호스트 식별 방법.
  2. 제1항에 있어서,
    상기 패킷이 상기 TCP 패킷이고 상기 TCP 패킷이 SYN 패킷이면, 상기 복수의 호스트를 분류하는 단계를 수행하고, 상기 패킷이 상기 TCP 패킷이고 상기 패킷이 상기 SYN 패킷이 아니면, 상기 복수의 호스트를 식별하는 단계를 수행하는 것을 특징으로 하는 NAT 내부 호스트 식별 방법.
  3. 제1항에 있어서,
    상기 TCP 패킷의 TCP 헤더에 대응하는 상기 IP 헤더의 TTL을 이용하여 상기 패킷을 상기 제1 운영체제 패킷 또는 상기 제2 운영체제 패킷으로 분류하는 단계는,
    상기 IP 헤더의 초기 TTL 값이 128이면 상기 호스트의 운영체제를 윈도우즈 계열로 추정하여 상기 패킷을 상기 제1 운영체제 패킷으로 분류하고, 상기 IP 헤더의 초기 TTL 값이 64이면 상기 호스트의 운영체제를 비-윈도우즈 계열로 추정하여 상기 패킷을 상기 제2 운영체제 패킷으로 분류하는 것을 특징으로 하는 NAT 내부 호스트 식별 방법.
  4. 제1항에 있어서,
    상기 제1 운영체제 패킷에 대하여 상기 TCP 헤더의 소스 포트를 기반으로 상기 제1 호스트 리스트를 관리하는 과정은,
    상기 TCP 헤더의 소스 포트 값 및 상기 제1 호스트 리스트의 소스 포트 값을 비교하여 상기 제1 호스트 리스트의 항목을 추가, 삭제, 및 변경 중 적어도 하나를 수행하며,
    상기 제1 호스트 리스트의 동일한 호스트 식별정보에 포함된 두 개 이상의 소스 포트 값을 선형 회귀 분석하고 기울기를 산출하여 상기 획득한 패킷의 소스 포트 값을 예측하고,
    상기 예측한 소스 포트 값 및 상기 TCP 헤더의 소스 포트 값 간의 차이가 기 설정된 오차 범위 내에 있다면, 상기 패킷을 동일한 호스트로부터 수신한 패킷으로 판단하는 것을 특징으로 하는 NAT 내부 호스트 식별 방법.
  5. 제1항에 있어서,
    상기 제2 운영체제 패킷에 대하여 상기 TCP 헤더의 타임스탬프의 Tsval을 기반으로 제2 호스트 리스트를 관리하는 과정은,
    상기 TCP 헤더의 타임스탬프의 Tsval 값 및 상기 제2 호스트 리스트의 Tsval 값을 비교하여 상기 제2 호스트 리스트의 항목을 추가, 삭제, 및 변경 중 적어도 하나를 수행하며,
    상기 제2 호스트 리스트의 동일한 호스트 식별정보에 포함된 두 개 이상의 Tsval 값을 선형 회귀 분석하고 기울기를 산출하여 상기 획득한 패킷의 Tsval 값을 예측하고,
    상기 예측한 Tsval 값 및 상기 TCP 헤더의 Tsval 값 간의 차이가 기 설정된 오차 범위 내에 있다면, 상기 패킷을 동일한 호스트로부터 수신한 패킷으로 판단하는 것을 특징으로 하는 NAT 내부 호스트 식별 방법.
  6. 제1항에 있어서,
    상기 복수의 호스트를 식별하는 단계는,
    상기 TCP 패킷의 TCP 헤더에 대응하는 상기 IP 헤더의 TTL을 이용하여 상기 호스트의 운영체제를 판단하여, 상기 제1 호스트 리스트 및 상기 제2 호스트 리스트를 선택하며,
    상기 패킷의 쿠키 정보를 기반으로 상기 제1 호스트 리스트 및 상기 제2 호스트 리스트를 변경하고, 상기 호스트가 신규 호스트인지 여부 또는 기존 호스트의 전원 상태를 판단하는 것을 특징으로 하는 NAT 내부 호스트 식별 방법.
  7. 제1항에 있어서,
    상기 패킷의 쿠키 정보를 기반으로 상기 제1 호스트 리스트 또는 상기 제2 호스트 리스트를 변경하는 과정은,
    상기 패킷의 소스 포트 및 목적지 주소를 상기 제1 호스트 리스트 또는 상기 제2 호스트 리스트의 소스 포트 및 목적지 주소와 비교하여 상기 패킷에 대응하는 호스트를 판단하여, 상기 제1 호스트 리스트의 쿠키 정보 또는 상기 제2 호스트 리스트의 쿠키 정보를 갱신하고,
    상기 제1 호스트 리스트의 쿠키 정보에 기반하여 상기 제1 호스트 리스트의 호스트 식별정보를 변경하거나, 상기 제2 호스트 리스트의 쿠키 정보에 기반하여 상기 제2 호스트 리스트의 호스트 식별정보를 변경하는 것을 특징으로 하는 NAT 내부 호스트 식별 방법.
  8. 제1항에 있어서,
    상기 복수의 호스트를 식별하는 단계는,
    상기 제1 호스트 리스트의 소스 포트 값 및 기 설정된 소스 포트 한계치 간의 차이가 기 설정된 범위 내에 있다면, 동일한 호스트라고 판단하여 상기 제1 호스트 리스트에 포함된 두 개의 동일한 호스트 식별정보에 해당하는 항목들을 통합하고, 상기 제1 호스트 리스트의 소스 포트 값 및 상기 기 설정된 소스 포트 한계치 간의 차이가 상기 기 설정된 범위를 벗어나면, 기존의 호스트가 재부팅된 것으로 판단하며,
    상기 제2 호스트 리스트의 Tsval 값 및 기 설정된 Tsval 한계치 간의 차이가 기 설정된 범위 내에 있다면, 동일한 호스트라고 판단하여 상기 제2 호스트 리스트에 포함된 두 개의 동일한 호스트 식별정보에 해당하는 항목들을 통합하고, 상기 제2 호스트 리스트의 소스 포트 값 및 상기 기 설정된 Tsval 한계치 간의 차이가 상기 기 설정된 범위를 벗어나면, 기존의 호스트가 재부팅된 것으로 판단하는 것을 특징으로 하는 NAT 내부 호스트 식별 방법.
  9. 복수의 호스트에 연결된 NAT 장치로부터 패킷을 획득하는 패킷 획득부;
    상기 패킷이 TCP 패킷이면, 상기 TCP 패킷의 TCP 헤더에 대응하는 IP 헤더의 TTL(Time to Live)을 이용하여 상기 패킷을 제1 운영체제 패킷 또는 제2 운영체제 패킷으로 분류하는 운영체제 분류부;
    상기 제1 운영체제 패킷에 대하여 상기 TCP 헤더의 소스 포트를 기반으로 제1 호스트 리스트를 관리하고 상기 제2 운영체제 패킷에 대하여 상기 TCP 헤더의 타임스탬프의 Tsval(Timestamp Value Field)을 기반으로 제2 호스트 리스트를 관리하여, 상기 복수의 호스트를 분류하는 호스트 분류부; 및
    상기 패킷의 쿠키 정보를 기반으로 상기 제1 호스트 리스트 또는 상기 제2 호스트 리스트를 변경하고, 상기 호스트가 신규 호스트인지 여부 또는 기존 호스트의 전원 상태를 판단하여 상기 복수의 호스트를 식별하는 호스트 식별부
    를 포함하는 NAT 내부 호스트 식별 장치.
  10. 제9항에 있어서,
    상기 패킷이 상기 TCP 패킷이고 상기 TCP 패킷이 SYN 패킷이면, 상기 호스트 분류부가 상기 복수의 호스트를 분류하고, 상기 패킷이 상기 TCP 패킷이고 상기 TCP 패킷이 상기 SYN 패킷이 아니면, 상기 호스트 식별부가 상기 복수의 호스트를 식별하는 것을 특징으로 하는 NAT 내부 호스트 식별 장치.
  11. 제9항에 있어서,
    상기 운영체제 분류부는,
    상기 IP 헤더의 초기 TTL 값이 128이면 상기 호스트의 운영체제를 윈도우즈 계열로 추정하여 상기 패킷을 상기 제1 운영체제 패킷으로 분류하고, 상기 IP 헤더의 초기 TTL 값이 64이면 상기 호스트의 운영체제를 비-윈도우즈 계열로 추정하여 상기 패킷을 상기 제2 운영체제 패킷으로 분류하는 것을 특징으로 하는 NAT 내부 호스트 식별 장치.
  12. 제9항에 있어서,
    상기 호스트 분류부는,
    상기 TCP 헤더의 소스 포트 값 및 상기 제1 호스트 리스트의 소스 포트 값을 비교하여 상기 제1 호스트 리스트의 항목을 추가, 삭제, 및 변경 중 적어도 하나를 수행하며,
    상기 제1 호스트 리스트의 동일한 호스트 식별정보에 포함된 두 개 이상의 소스 포트 값을 선형 회귀 분석하고 기울기를 산출하여 상기 획득한 패킷의 소스 포트 값을 예측하고,
    상기 예측한 소스 포트 값 및 상기 TCP 헤더의 소스 포트 값 간의 차이가 기 설정된 오차 범위 내에 있다면, 상기 패킷을 동일한 호스트로부터 수신한 패킷으로 판단하는 것을 특징으로 하는 NAT 내부 호스트 식별 장치.
  13. 제9항에 있어서,
    상기 호스트 분류부는,
    상기 TCP 헤더의 타임스탬프의 Tsval 값 및 상기 제2 호스트 리스트의 Tsval 값을 비교하여 상기 제2 호스트 리스트의 항목을 추가, 삭제, 및 변경 중 적어도 하나를 수행하며,
    상기 제2 호스트 리스트의 동일한 호스트 식별정보에 포함된 두 개 이상의 Tsval 값을 선형 회귀 분석하고 기울기를 산출하여 상기 획득한 패킷의 Tsval 값을 예측하고,
    상기 예측한 Tsval 값 및 상기 TCP 헤더의 Tsval 값 간의 차이가 기 설정된 오차 범위 내에 있다면, 상기 패킷을 동일한 호스트로부터 수신한 패킷으로 판단하는 것을 특징으로 하는 NAT 내부 호스트 식별 장치.
  14. 제9항에 있어서,
    상기 호스트 식별부는,
    상기 TCP 패킷의 TCP 헤더에 대응하는 상기 IP 헤더의 TTL을 이용하여 상기 호스트의 운영체제를 판단하여, 상기 제1 호스트 리스트 및 상기 제2 호스트 리스트를 선택하며,
    상기 패킷의 쿠키 정보를 기반으로 상기 제1 호스트 리스트 및 상기 제2 호스트 리스트를 변경하고, 상기 호스트가 신규 호스트인지 여부 또는 기존 호스트의 전원 상태를 판단하는 것을 특징으로 하는 NAT 내부 호스트 식별 장치.
  15. 제9항에 있어서,
    상기 호스트 식별부는,
    상기 패킷의 소스 포트 및 목적지 주소를 상기 제1 호스트 리스트 또는 상기 제2 호스트 리스트의 소스 포트 및 목적지 주소와 비교하여 상기 패킷에 대응하는 호스트를 판단하여, 상기 제1 호스트 리스트의 쿠키 정보 또는 상기 제2 호스트 리스트의 쿠키 정보를 갱신하고,
    상기 제1 호스트 리스트의 쿠키 정보에 기반하여 상기 제1 호스트 리스트의 호스트 식별정보를 변경하거나, 상기 제2 호스트 리스트의 쿠키 정보에 기반하여 상기 제2 호스트 리스트의 호스트 식별정보를 변경하는 것을 특징으로 하는 NAT 내부 호스트 식별 장치.
  16. 제9항에 있어서,
    상기 호스트 식별부는,
    상기 제1 호스트 리스트의 소스 포트 값 및 기 설정된 소스 포트 한계치 간의 차이가 기 설정된 범위 내에 있다면, 동일한 호스트라고 판단하여 상기 제1 호스트 리스트에 포함된 두 개의 동일한 호스트 식별정보에 해당하는 항목들을 통합하고, 상기 제1 호스트 리스트의 소스 포트 값 및 상기 기 설정된 소스 포트 한계치 간의 차이가 상기 기 설정된 범위를 벗어나면, 기존의 호스트가 재부팅된 것으로 판단하며,
    상기 제2 호스트 리스트의 Tsval 값 및 기 설정된 Tsval 한계치 간의 차이가 기 설정된 범위 내에 있다면, 동일한 호스트라고 판단하여 상기 제2 호스트 리스트에 포함된 두 개의 동일한 호스트 식별정보에 해당하는 항목들을 통합하고, 상기 제2 호스트 리스트의 소스 포트 값 및 상기 기 설정된 Tsval 한계치 간의 차이가 상기 기 설정된 범위를 벗어나면, 기존의 호스트가 재부팅된 것으로 판단하는 것을 특징으로 하는 NAT 내부 호스트 식별 장치.
KR1020170038638A 2017-03-27 2017-03-27 Tcp/ip 헤더 및 http 쿠키에 기반한 nat 내부 호스트 식별 장치 및 방법 KR101940482B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170038638A KR101940482B1 (ko) 2017-03-27 2017-03-27 Tcp/ip 헤더 및 http 쿠키에 기반한 nat 내부 호스트 식별 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170038638A KR101940482B1 (ko) 2017-03-27 2017-03-27 Tcp/ip 헤더 및 http 쿠키에 기반한 nat 내부 호스트 식별 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180109277A KR20180109277A (ko) 2018-10-08
KR101940482B1 true KR101940482B1 (ko) 2019-01-21

Family

ID=63864274

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170038638A KR101940482B1 (ko) 2017-03-27 2017-03-27 Tcp/ip 헤더 및 http 쿠키에 기반한 nat 내부 호스트 식별 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101940482B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3790260B8 (en) 2019-09-06 2023-03-29 Rohde & Schwarz GmbH & Co. KG Device and method for identifying network devices in a nat based communication network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101210622B1 (ko) 2010-06-24 2012-12-11 주식회사 케이티 Ip 공유기를 검출하는 방법 및 이를 수행하는 시스템
KR101653805B1 (ko) 2016-03-10 2016-09-05 인터리젠 주식회사 네트워크를 통한 접속 단말의 식별장치 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101674934B1 (ko) * 2009-07-07 2016-11-10 엘지전자 주식회사 오류 보고 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101210622B1 (ko) 2010-06-24 2012-12-11 주식회사 케이티 Ip 공유기를 검출하는 방법 및 이를 수행하는 시스템
KR101653805B1 (ko) 2016-03-10 2016-09-05 인터리젠 주식회사 네트워크를 통한 접속 단말의 식별장치 및 방법

Also Published As

Publication number Publication date
KR20180109277A (ko) 2018-10-08

Similar Documents

Publication Publication Date Title
US9578050B1 (en) Service delivery controller for learning network security services
US11606301B2 (en) Verifying intents in stateful networks using atomic address objects
US9094309B2 (en) Detecting transparent network communication interception appliances
CN105591973B (zh) 应用识别方法及装置
CN108768926B (zh) 受感染主机设备的跟踪和缓解
EP3905622A1 (en) Botnet detection method and system, and storage medium
US10666672B2 (en) Collecting domain name system traffic
US10320833B2 (en) System and method for detecting creation of malicious new user accounts by an attacker
US10484392B2 (en) Isolating containers on a host
US20130346585A1 (en) Network system, and policy route setting method
DK2869495T3 (en) Node de-duplication in a network monitoring system
EP3105697A1 (en) A system and method for integrating legacy flow-monitoring systems with sdn networks
CN108141469B (zh) 负载均衡器中的数据平面操纵
CN110266650B (zh) Conpot工控蜜罐的识别方法
US11936615B2 (en) Mapping internet routing with anycast and utilizing such maps for deploying and operating anycast points of presence (PoPs)
US10855546B2 (en) Systems and methods for non-intrusive network performance monitoring
WO2017217247A1 (ja) 悪性イベント検出装置、悪性イベント検出方法および悪性イベント検出プログラム
KR101940482B1 (ko) Tcp/ip 헤더 및 http 쿠키에 기반한 nat 내부 호스트 식별 장치 및 방법
Wicherski et al. IP agnostic real-time traffic filtering and host identification using TCP timestamps
CN112583827A (zh) 一种数据泄露检测方法及装置
CN114338549B (zh) 数据流识别处理方法、装置、服务器及存储介质
US11736514B2 (en) Suppressing virus propagation in a local area network
CN113890858A (zh) Pmtu的探测方法及装置
KR20200075725A (ko) 복수개의 디바이스 정보 종합 분석을 통한 디바이스 이상 징후 탐지 방법 및 그 장치
CN108475210B (zh) 机架感知

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant