KR20110140063A - Ip 공유기를 검출하는 방법 및 이를 수행하는 시스템 - Google Patents

Ip 공유기를 검출하는 방법 및 이를 수행하는 시스템 Download PDF

Info

Publication number
KR20110140063A
KR20110140063A KR1020100060259A KR20100060259A KR20110140063A KR 20110140063 A KR20110140063 A KR 20110140063A KR 1020100060259 A KR1020100060259 A KR 1020100060259A KR 20100060259 A KR20100060259 A KR 20100060259A KR 20110140063 A KR20110140063 A KR 20110140063A
Authority
KR
South Korea
Prior art keywords
source port
port numbers
router
user
web service
Prior art date
Application number
KR1020100060259A
Other languages
English (en)
Other versions
KR101210622B1 (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 KR1020100060259A priority Critical patent/KR101210622B1/ko
Publication of KR20110140063A publication Critical patent/KR20110140063A/ko
Application granted granted Critical
Publication of KR101210622B1 publication Critical patent/KR101210622B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • 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/2517Translation of Internet protocol [IP] addresses using port numbers

Landscapes

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

Abstract

본 발명의 실시예에 따르면, 하나의 공인 IP로 복수의 사용자 단말에게 인터넷 서비스를 제공하는 IP 공유기를 검출한다. 이때, IP 공유기 검출 시스템은 IP 네트워크를 통해 수신한 복수의 웹 서비스 요청 메시지로부터 소스 IP 주소 및 유저 에이전트 필드가 일치하는 웹 서비스 요청 메시지의 소스 포트 번호를 복수의 웹 서비스 요청 메시지를 수신한 시간 순서에 따라 추출한다. 그리고 추출된 복수의 소스 포트 번호를 시간 순서에 따라 변화하는 패턴을 분석하여 하나 이상의 그룹으로 분류한다.
이때, 분류된 그룹의 수에 기초하여 IP 공유기를 사용하는 사용자 단말의 수를 계산한다.

Description

IP 공유기를 검출하는 방법 및 이를 수행하는 시스템{METHOD FOR DETECTING IP SHARED ROUTER AND SYSTEM THEREOF}
본 발명은 IP 공유기를 검출하는 방법 및 이를 수행하는 시스템에 관한 것으로서, 더욱 상세하게는 IP 공유기의 사용 여부 및 IP 공유기에 연결된 사용자 단말의 수를 검출하는 방법 및 그 시스템에 관한 것이다.
컴퓨터 등의 기기들은 인터넷 서비스 제공자(Internet Service Provider: 이하, ISP)로부터 공인 IP 주소(Internet Protocol Address)라는 고유 식별번호를 할당받아 인터넷 기반의 통신을 수행한다.
현재 이러한 공인 IP 주소의 효율적이고 개인적인 사용을 위해 IP 공유기를 사용한다. IP 공유기는 인터넷 사용자가 단일의 공인 IP 주소로 여러 사용자 단말들이 동시에 인터넷 이용을 가능하게 한다. 예를 들어, NAT(Network Address Translation) 장치를 이용하여 사설 네트워크를 구성하는 것이다.
그런데 이러한 IP 공유기가 증가함에 따라 유무선 네트워크 환경에서 사용 가능한 대역폭의 양이 줄어들고 있으며, 가입자가 저렴한 비용으로 네트워크를 사용하기 위해서 IP 공유기를 사용하는 경우가 매우 빈번하게 발생하고 있다.
이로 인해 네트워크 트래픽 증가가 심각한 문제를 야기하고 있다. 게다가 최근 네트워크의 불안전성과 클라이언트 PC의 응용프로그램 취약점 등을 이용하여 ID, 패스워드 등 귀중한 정보를 훔치는 피싱, 인터넷 뱅킹 사이트로 둔갑하여 불법적으로 거래 자금을 획득하는 금융보안사건, 주요 포탈 사이트 및 보안 사이트들을 DDoS(Distributed Denial of Service)공격하는 사건 등이 자주 발생하고 있다. 만일, 이러한 공격을 하는 PC가 사설 네트워크 내에 존재한다면 이를 차단할 필요성이 매우 크다.
종래에 이러한 문제점을 해결하기 위해서 IP 공유기의 사용 유무를 검출하기 위한 다양한 방안이 제시되고 있으며, 크게 다음과 같은 세가지로 분류할 수 있다.
먼저, TCP/IP(Transmission Control Protocol/Internet Protocol) 패킷을 분석하는 방법인데, 쿠키 정보를 이용하는 방법과 TCP 헤더의 ISN(Initial Sequence Number)를 이용하는 방법이 있다.
그런데, 쿠키 정보를 활용하는 것은 상향 트래픽 뿐만 아니라 하향 트래픽의 감시도 필요하기 때문에 작업량이 증가되는 문제점이 존재한다.
또한, TCP 헤더의 ISN을 이용하는 경우, ISN은 초기 시퀀스 번호로 TCP 연결 요청이 발생할 경우 생성되는 번호이다. 초기값은 1이고, 타임 카운터에 의해 매 4ms마다 1씩 증가하는 원리로 생성된다. 따라서, ISN 번호가 시간 동기화 과정을 거친 후 시간에 따라 순차적으로 증가됨으로써, ISN 번호 추측이 용이하다.
그런데 이와 같이 ISN이 순차적으로 증가하게 되면, 보안사고 발생의 소지가 다분하다. 왜냐하면, TCP/IP프로토콜에서 사용하는 3-way handshaking 인증 방식이 ISN와 AN(Acknowledgement Number)을 이용하기 때문이다. 예를 들어, 공격자가 IP를 변조 후, 원래의 클라이언트(IP:1.1.1.1)보다 먼저 서버(IP:2.2.2.2)에 ACK를 전송하면 공격자와 서버(IP:2.2.2.2) 간의 신뢰성 있는 연결을 생성되고 서버(IP:2.2.2.2)로의 악의적인 공격이 가능해진다.
따라서, 최근 들어 ISN 생성 프레임 워크는 각 장치마다 랜덤 번호로써 ISN을 생성하도록 변경되어 결과적으로 ISN을 쉽게 추측하지 못하도록 한다.
이와 같이, 각 운영 체제마다 보안을 위해 랜덤 생성기를 이용하여 ISN이 만들어지기 때문에 동일한 클라이언트의 ISN을 추측하기가 어려우므로, ISN을 이용하여 IP 공유기를 검출하고자 할 경우, 검출률이 떨어질 수 밖에 없다.
두번째는 클라이언트 단말에 에이전트(agent)를 설치하는 것으로, 자바 애플릿(JAVA applet)을 설치하는 방법과 ActiveX를 설치하는 방법이 있다. 그런데 클라이언트 단말에 별도의 프로그램을 설치하는 것은 인터넷 사용자가 이것을 인지하고 설치 여부를 거부할 수 있다는 문제의 소지가 있다.
마지막으로, 유저 에이전트(User-agent) 필드를 이용하여 동일 사용자 여부를 구분하여 유저 에이전트(User-agent) 필드가 복수개 발견될 경우, IP 공유기를 검출한다.
그런데 현재 2의 32제곱에 해당하는 공인 IP 주소가 존재하는데 반해 알려진 유저 에이전트(User-agent) 필드의 수는 공인 IP 주소만큼에 훨씬 미치지 못한다. 즉, 동일한 유저 에이전트(User-agent) 필드를 가진 서로 다른 사용자가 존재할 수 있다는 의미다. 따라서, 유저 에이전트(User-agent)필드 만으로 사용자를 분류시 다음과 같은 오류가 발생할 수 있다.
먼저, IP 공유기를 사용하지 않음에도 IP 공유기를 사용한다고 판단하는 오류가 발생한다. 즉 IP 공유기를 사용하지 않는 단일의 클라이언트 단말이 두 개 이상의 웹 프로그램 예를 들어, 익스플로러, 파이어폭스, 오페라 등을 이용하여 인터넷을 하는 경우 유저 에이전트(User-agent) 필드가 두 개 이상 발생하지만, 사용자는 동일하다. 그럼에도 유저 에이전트(User-agent) 필드만으로 사용자를 분류시 서로 다른 클라이언트 단말인 것으로 오인하게 되는 것이다.
또한, IP 공유기를 사용함에도 IP 공유기를 사용하지 않는다고 판단하는 오류가 발생한다. 즉 유저 에이전트(User-agent) 필드만으로 사용자를 분류시 IP 공유기를 사용하는 서로 다른 클라이언트 단말들이 동일한 유저 에이전트(User-agent) 필드를 갖는 경우, 유저 에이전트(User-agent) 필드가 동일하다는 이유로 동일한 클라이언트 단말로 판단하여 IP 공유기를 사용함에도 IP 공유기를 사용하지 않는다고 판단하게 되는 것이다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 HTTP 요청 메시지 분석과 통계학적 모델링이라는 2단계 분류 기법을 활용하여 IP 공유기를 검출하는 방법 및 이를 수행하는 시스템을 제공하는 것이다.
본 발명의 한 특징에 따르면 IP 공유기 검출 방법이 제공된다. 이 방법은, IP 네트워크를 통해 수신한 복수의 웹 서비스 요청 메시지로부터 소스 IP 주소 및 유저 에이전트 필드-여기서 유저 에이전트 필드는 상기 웹 서비스 요청 메시지를 송신한 사용자에 관한 정보가 수록됨-가 일치하는 웹 서비스 요청 메시지의 소스 포트 번호를 상기 복수의 웹 서비스 요청 메시지를 수신한 시간 순서에 따라 추출하는 단계; 추출된 복수의 소스 포트 번호를 상기 시간 순서에 따라 변화하는 패턴을 분석하여 하나 이상의 그룹으로 분류하는 단계; 및 분류된 그룹의 수에 기초하여 상기 IP 공유기를 사용하는 사용자 단말의 수를 계산하는 단계를 포함한다.
본 발명의 다른 특징에 따르면 IP 공유기 검출 시스템이 제공된다. 이 시스템은, IP 네트워크를 통해 수신한 복수의 웹 서비스 요청 메시지로부터 소스 IP 주소 및 유저 에이전트 필드-여기서 유저 에이전트 필드는 상기 웹 서비스 요청 메시지를 송신한 사용자에 관한 정보가 수록됨-가 일치하는 웹 서비스 요청 메시지의 소스 포트 번호를 상기 복수의 웹 서비스 요청 메시지를 수신한 시간 순서에 따라 추출하는 추출부; 추출된 복수의 소스 포트 번호를 상기 시간 순서에 따라 변화하는 패턴을 분석하여 하나 이상의 그룹으로 분류하는 분류부; 및 분류된 그룹의 수에 기초하여 상기 IP 공유기를 사용하는 사용자 단말의 수를 계산하는 검출부를 포함한다.
본 발명의 실시예에 따르면, HTTP 요청 메시지로부터 유저 에이전트(User-agent) 필드를 추출하고, 시간대 별로 소스 포트 번호가 선형적으로 증가한다는 사실을 활용하여 IP 공유기를 검출함으로써, 복잡도를 줄이고 IP 공유기 검출의 정확도를 향상시킬 수 있다.
따라서, 종래에 단순히 공인 IP 주소 당 검출된 유저 에이전트(User-agent) 필드 만을 이용하여 IP 공유기를 검출하는 경우, 하나의 클라이언트 PC에서 두 개 이상의 웹 프로그램을 사용할 경우 유저 에이전트(User-agent) 필드는 다르나 동일한 사용자인데 IP 공유기 사용자로 탐지하는 에러(false positive error)와 서로 다른 클라이언트 PC로부터 검출한 User-Agent값이 동일하여 IP 공유기라고 탐지하지 못하는 경우(false negative error)의 문제점을 해결할 수 있다.
도 1은 본 발명의 실시예에 따른 IP 공유기 검출 시스템이 적용된 네트워크 구성도이다.
도 2는 본 발명의 실시예에 따른 IP 공유기 검출 시스템의 세부적인 구성을 나타낸 블록도이다.
도 3 및 도 4는 본 발명의 실시예에 따른 HTTP 요청 메시지의 구조를 나타낸다.
도 5는 본 발명의 실시예에 따른 유저 에이전트(User-agent) 필드의 구조를 나타낸다.
도 6은 본 발명의 실시예에 따른 시간대별 소스 포트 번호의 차이를 나타낸 히스토그램이다.
도 7은 도 6의 히스토그램에 대하여 가우시안 혼합 모델(GMM)을 적용한 결과를 나타낸 그래프이다.
도 8은 본 발명의 실시예에 따른 IP 공유기 검출 방법을 나타낸 순서도이다.
도 9는 본 발명의 실시예에 따른 임계치 설정 방법을 나타낸 순서도이다.
도 10은 본 발명의 실시예에 따른 시간대별 서로 다른 유저 에이전트(User-agent) 필드를 갖는 HTTP 요청 메시지들의 소스 포트 번호를 나타내는 그래프이다.
도 11은 본 발명의 실시예에 따른 IP 공유기 검출예를 나타낸 그래프이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조로 하여 본 발명의 실시예에 따른 IP 공유기를 검출하는 방법 및 이를 수행하는 시스템에 대하여 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 IP 공유기 검출 시스템이 적용된 네트워크 구성도이다.
도 1을 참조하면, 클라이언트 1 단말(100), 클라이언트 2 단말(200) 및 클라이언트 3 단말(300)은 모두 IP 공유기(400)에 연결된다.
이러한 IP 공유기(400)는 하나의 공인 IP 주소를 이와 대응되는 하나 이상의 사설 IP 주소로 변환하거나, 하나 이상의 사설 IP 주소를 하나의 공인 IP 주소로 변환한다.
이때, IP 공유기(400)는 세 개의 사설 IP 주소 즉 192.168.0.2, 192.168.0.3, 192.168.0.4가 하나의 공인 IP 주소 125.0.0.1와 매핑된 라우팅 테이블을 구비한다.
IP 공유기(400)는 클라이언트 1 단말(100), 클라이언트 2 단말(200) 및 클라이언트 3 단말(300) 각각에게 192.168.0.2, 192.168.0.3, 192.168.0.4을 각각 할당한다. 그러면, 클라이언트 1 단말(100), 클라이언트 2 단말(200) 및 클라이언트 3 단말(300)은 할당받은 각각의 사설 IP 주소를 이용하여 IP 공유기(400)에 접속하고, 이와 매핑된 하나의 공인 IP 주소 125.0.0.1를 이용하여 서비스 서버(500)에 접속하여 트래픽을 송수신한다.
이때, 서비스 서버(500)로 향하는 상향 트래픽은 IP 공유기 검출 시스템(600)으로 인입된다. IP 공유기 검출 시스템(600)은 인입된 상향 트래픽을 분석하여 IP 공유기(400)를 검출하고 IP 공유기(400)에 연결된 클라이언트 단말의 수를 탐지한다.
특히, 종래에 TCP/IP(Transmission Control Protocol/Internet Protocol) 패킷 전체를 분석하는 것과 달리 IP 공유기 검출 시스템(600)은 상향 트래픽 중에서도 웹 서비스 요청 메시지인 HTTP(HyperText Transfer Protocol) 요청 메시지만을 분석한다. 이렇게 하면, TCP/IP 100개의 패킷 중에 HTTP 요청 메시지가 포함된 패킷은 10개이므로, TCP/IP 패킷을 이용할 경우에 비해 시스템에 부가되는 부하 가중의 부담이 적다.
클라이언트 1 단말(100), 클라이언트 2 단말(200) 및 클라이언트 3 단말(300)은 IP 공유기(400)로부터 부여 받은 사설 IP 주소인 192.169.0.2, 192.168.0.3, 192.168.0.4를 각각의 소스 IP 주소로 설정한 HTTP 요청 메시지를 전송한다. 그러면, IP 공유기(400)는 수신된 HTTP 요청 메시지의 소스 IP 주소를 공인 IP 주소(125.0.0.1)로 변환하여 서비스 서버(500)로 전송한다.
이때, IP 공유기 검출 시스템(600)이 트래픽 경로 상의 HTTP 요청 메시지를 수집하여 유저 에이전트(User-Agent) 필드를 추출하여 사용자를 1차 분류한다. 그런데 유저 에이전트(User-agent) 필드 외에 다른 필드에는 클라이언트 단말들(100, 200, 300)을 유니크하게 분류할 수 있는 정보가 없지만, 그렇다고 해서 유저 에이전트(User-agent) 필드가 사용자마다 고유하다고 할 수는 없다.
따라서, 추출부(603)는 유저 에이전트(User-agent) 필드가 동일한 HTTP 요청 메시지로부터 소스 포트 번호도 추출한다. 추출된 복수의 소스 포트 번호를 HTTP 요청 메시지의 수신 시간 순서에 따라 변화하는 패턴을 분석하여 하나 이상의 그룹으로 분류하여 사용자를 2차 분류하게 된다.
이와 같이 분류된 그룹의 수에 기초하여 IP 공유기를 사용하는 사용자 단말의 수를 계산한다.
이때, 소스 포트 번호의 선형성을 통계학적 모델을 기반으로 분석하고 그 결과로부터 얻은 선형 방정식을 이용하여 IP 공유기(400) 및 IP 공유기(400)에 연결된 클라이언트 단말의 수를 탐지한다.
이러한 IP 공유기 검출 시스템(600)은 네트워크 보안 측면에서 바이러스에 감염된 클라이언트 단말들(100, 200, 300)의 공지 체제 구축을 위해 활용될 수 있다. 또한, 망은 크게 중앙 서버 장치들과 지역 노드에 설치되어 있는 지역 서버 장치로 구성될 수 있는데, IP 공유기 검출 시스템(600)은 지역 서버 장치의 형태로 구현될 수 있다.
그러면, 이러한 IP 공유기 검출 시스템(600)의 구성에 대해 좀 더 상세히 살펴보기로 한다.
도 2는 본 발명의 실시예에 따른 IP 공유기 검출 시스템의 세부적인 구성을 나타낸 블록도이고, 도 3 및 도 4는 본 발명의 실시예에 따른 HTTP 요청 메시지의 구조를 나타내며, 도 5는 본 발명의 실시예에 따른 유저 에이전트(User-agent) 필드의 구조를 나타내고, 도 6은 본 발명의 실시예에 따른 시간대별 소스 포트 번호의 차이를 나타낸 히스토그램이며, 도 7은 도 6의 히스토그램에 대하여 가우시안 혼합 모델(GMM)을 적용한 결과를 나타낸 그래프이다.
먼저, 도 2를 참조하면, 수집부(601), 추출부(603), 분류부(605), 저장부(607), 설정부(609), 분석부(611) 및 검출부(613)를 포함한다.
수집부(601)는 클라이언트 단말들(100, 200, 300)에서 서비스 서버(500)로 향하는 상향 트래픽을 상시 감시한다. 그리고 상향 트래픽 중에서 유저 에이전트(User-agent) 필드 및 소스 IP 주소가 동일한 복수의 웹 서비스 요청 메시지들을 시간대 별로 수집한다.
여기서, 웹 서비스 요청 메시지는 클라이언트 단말이 인터넷 서비스를 이용하기 위해 서비스 서버(500)로 전송하는 메시지로서, 본 발명의 실시예에서는 HTTP 요청 메시지가 사용된다.
도 3을 참조하면, HTTP 요청 메시지(700)는 ETH(Ethernet Header)(710), IPH(Internet Protocol Header)(720), TCPH(Transmission Control Protocol Header)(730), HTTPH(HTTP Header)(740) 및 HTTP Body(750)를 포함한다.
여기서, 유저 에이전트(User-agent) 필드는 HTTPH(740)에 포함되고, 소스 포트 번호는 TCPH(730)의 소스 포트 번호 필드(731)에 저장되어 있다.
클라이언트 단말들(100, 200, 300)에서 인터넷을 이용하기 위해 HTTP 요청 메시지를 서비스 서버(500)로 전송하는데, 최초 연결 요청시 새로운 소스 포트 번호가 랜덤으로 부여되고 세션이 생성된다.
HTTPH(HTTP Header)(740) 및 HTTP Body(750)의 구조를 상세히 나타낸 도 4를 참조하면, HTTP 요청 메시지(700)는 요청 라인(741), 3개의 헤더 정보(742, 743, 744) 및 실제의 데이터가 포함된 바디(750)로 구성된다.
이때, 3개의 헤더 정보(742, 743, 744)는 일반 헤더(742), 요청 헤더(743) 및 항목 헤더(744)로 구성된다. 이 중에서 요청 헤더(743)는 HTTP 요청 메시지(700)에만 존재한다.
요청 헤더(743)는 클라이언트 단말들(100, 200, 300)의 구성과 클라이언트 단말들(100, 200, 300)이 선호하는 문서 형식 등을 지정한다. 요청 헤더(743)는 총 14개의 세부 정보로 이루어지며, 송신자의 다양한 정보가 수록된다. 이 중에서도 유저 에이전트(User-agent) 필드(745)는 클라이언트 단말들(100, 200, 300)이 사용하는 웹 브라우저에 대한 식별 가능한 정보를 제공한다.
이때, 유저 에이전트(User-agent) 필드(745)는 도 5와 같이 구성된다.
도 5를 참조하면, 유저 에이전트(User-agent) 필드(745)는 클라이언트 단말들(100, 200, 300)의 트래픽에 포함되어 있는 OS 정보, 웹브라우저 정보, 유저정보 또는 클라이언트 단말들(100, 200, 300)의 상세 정보를 포함한다.
유저 에이전트(User-agent) 필드(745)는 운영체제의 종류와 버젼, 웹 프로그램(브라우져)의 종류와 버전 및 응용 프로그램(749)에 따라 필드값(747)이 다르게 나타난다.
즉 유저 에이전트(User-agent) 필드(745)는 설치된 운영 체제 및 웹 브라우져, 그리고 응용 프로그램(749)에 따라 다양한 필드값(747)을 가질 수 있다.
각 브라우저의 세부 정보는 조금씩 다를 수 있으며 이것은 브라우저의 종류와 버젼, 운영 체제, 설치된 소프트웨어 등에 따라 달라진다. 예를 들면, Windows XP Professional SP3의 운영 체제와 Internet Explorer 6를 사용했을 때의 유저 에이전트(User-agent) 필드(745)의 필드값(747)은"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1"이 된다.
한편, 추출부(603)는 수집부(601)가 수집한 HTTP 요청 메시지 중에서 소스 IP 주소 및 유저 에이전트(User-agent) 필드가 일치하는 HTTP 요청 메시지의 소스 포트 번호를 HTTP 요청 메시지를 수신한 시간 순서에 따라 복수개 추출한다.
이때, 추출부(603)는 도 3의 TCPH(730)의 TCP 플래그(Flag)가 0x18(PSH|ACK가 모두 1)로 설정된 소스 포트 번호를 소스 포트 번호 필드(731)에서 추출한다.
분류부(605)는 추출된 복수의 소스 포트 번호를 HTTP 요청 메시지를 수신한 시간 순서에 따라 변화하는 패턴에 따른 하나 이상의 그룹으로 분류한다.
이때, 복수의 소스 포트 번호에 대해 이전 시간의 소스 포트 번호와 현재 시간의 소스 포트 간의 차이가 기 정의된 선형성을 갖는 복수의 소스 포트 번호로 구성된 하나 이상의 그룹으로 분류한다. 그리고 그룹핑된 하나 이상의 그룹을 유저 에이전트(User-agent) 필드 별로 매핑한 테이블로 구성하여 저장부(607)에 저장한다.
저장부(607)는 분류부(605)에 의해 그룹핑된 하나 이상의 그룹이 각각의 유저 에이전트 필드와 매핑된 테이블을 저장한다.
설정부(609)는 수집부(601)를 통하여 기 정의된 일정 시간 동안 수집한 복수의 HTTP 요청 메시지들로부터 추출한 유저 에이전트(User-agent) 필드 및 복수의 소스 포트 번호에 가우시안 혼합 모델을 적용하여 도출한 임계치를 설정한다.
즉 동일한 유저 에이전트(User-agent) 필드를 갖는 HTTP 요청 메시지로부터 추출된 소스 포트 번호가 시간이 지남에 따라 선형적으로 증가한다는 사실을 복합 가우시안 모델을 통해 증명하고 이를 통해서 임계치를 도출한다.
도 6을 참조하면, 기 정의된 일정 시간 동안 수집된 HTTP 요청 메시지로부터 현재 시간(T1)에 추출된 소스 포트 번호와 이전 시간(T0)에 추출된 소스 포트 번호의 차이값 히스토그램을 나타낸 것이다. 도 6에 나와 있듯이 대부분의 차이값이 {-1, 0, 1}에 분포함을 알 수 있다. 게다가 특히, 차이값 '1'에서 가장 많은 값이 분포함을 알 수 있다. 이로부터 소스 포트 번호가 시간의 흐름에 따라 선형적으로 증가 또는 감소함을 알 수 있다.
도 6을 일반화하기 위하여 대부분의 IP 공유기를 사용하는 클라이언트 단말들(100, 200, 300)의 소스 포트 번호를 현재 시간과 이전 시간과의 차이값을 기준으로 확률 분포 모델을 정의할 수 있으며, 도 7과 같다.
여기서, 확률 분포 모델은 가우시안 혼합 모델(Gaussian Mixture Model)을 이용한다. 가우시안 혼합 모델(GMM)은 데이터의 확률분포를 추정하여 패턴을 분류하는 방법 중 하나로서, 다양한 형태의 확률분포의 모양을 표현할 수 있도록 확장된 확률 모델로서 다음의 수학식 1로 정의될 수 있다.
Figure pat00001
여기서, -Yi(x)는 단일의 가우시안 분포를 의미한다. μi와 σi는 각각 해당 분포의 평균과 분산을 의미한다.
설정부(609)는 수학식 1에 정의된 변수들을 분석하여 수학식 2와 같이 임계치를 도출한다.
Figure pat00002
한편, 분석부(611)는 분류부(605)로부터 전달받은 복수의 소스 포트 번호에 대한 선형성을 판단하여 그 결과를 알려준다.
이때, 선형성 판단은 다음과 같이 수행된다. 즉 분류부(605)로부터 전달받은 복수의 소스 포트 번호에 대해 이전 시간의 소스 포트 번호와 현재 시간의 소스 포트 간의 차이를 계산하여 수학식 3을 판단한다.
Figure pat00003
여기서, Current_Src_Port는 추출부(603)가 추출한 현재 시간의 소스 포트를 의미한다. Previous_Src_Port는 이전 시간의 소스 포트 번호를 의미한다.
이때, 수학식 3의 판단 결과가'참'이면 선형성을 만족하는 경우로 판단하고,'거짓'이면 비선형성으로 판단한다.
검출부(613)는 복수의 소스 포트 번호가 시간에 비례하여 선형적으로 증가하는 서로 다른 그룹이 2개 이상 발견되면, IP 공유기가 사용되는 경우로 검출한다. 그리고 그룹의 개수만큼 IP 공유기를 사용하는 사용자 단말의 수를 계산한다.
이제, 이상 설명한 내용을 토대로 IP 공유기를 검출하는 방법에 대해 설명한다. 이때, 도 1 내지 도 7에서 설명한 구성 요소의 동작에 대한 설명에서는 동일한 도면 부호를 사용한다.
도 8은 본 발명의 실시예에 따른 IP 공유기를 검출하는 방법을 나타낸 순서도로서, 도 2의 IP 공유기 검출 시스템(600)의 동작에 대한 설명이다.
도 8을 참조하면, 수집부(601)가 도 1의 상향 트래픽 경로 상에서 소스 IP 주소가 동일한 HTTP 요청 메시지를 수집한다(S101).
그러면, 추출부(603)는 수집부(601)가 수집한 HTTP 요청 메시지로부터 유저 에이전트(User-agent) 필드 및 소스 포트 번호를 추출한다(S103, S015).
분류부(605)는 S103 단계에서 추출한 유저 에이전트(User-agent) 필드가 테이블에 저장되어 있는지를 판단한다(S107).
이때, 저장되지 않은 경우, S103 단계 및 S105 단계에서 추출한 유저 에이전트(User-agent) 필드 및 현재 시간의 소스 포트 번호를 매핑하여 테이블에 저장(S109)한 후, S101 단계부터 다시 시작한다.
이와 같이, 테이블에 유저 에이전트(User-agent) 필드 별로 매핑된 소스 포트 번호는 도 8과 같은 그래프로 표현된다.
그러나 S107 단계에서 저장된 경우로 판단되면, 분석부(611)는 테이블에 저장된 이전 시간의 소스 포트 번호와 S105 단계에서 추출한 현재 시간의 소스 포트 번호의 차이를 계산한다(S111). 그리고 계산된 소스 포트 번호의 차이가 설정부(609)가 설정한 기 정의된 임계치 이하인지를 판단한다(S113).
이때, 임계치를 초과하는 경우로 판단되면, 분석부(611)는 비선형으로 판단(S115)한다.
하지만, 임계치 이하인 경우, 분석부(611)는 선형성을 만족하는 경우로 판단(S117)하고, 분류부(605)는 테이블에 저장된 이전 소스 포트 번호를 삭제하고 S105 단계에서 추출된 현재 시간의 소스 포트 번호로 갱신한다(S119).
그러면, 검출부(613)는 도 9에 보인 것처럼, 시간대 별 소스 포트 번호의 선형 곡선을 생성한다(S121).
검출부(613)는 S121 단계에서 생성되는 선형 곡선이 2개 이상 발생하는지를 판단한다(S123).
이때, 2개 이상 발생하지 않는 경우, S101 단계를 다시 시작한다. 하지만, 2개 이상 발생하는 경우, IP 공유기가 사용되는 경우로 검출한다(S125). 그리고 선형 곡선의 개수만큼 IP 공유기의 사용자 단말 수를 계산한다(S127). 예를 들어, 서로 다른 선형 곡선이 4개가 발생되었다면, 4개의 IP 공유기를 공유하는 사용자 단말이 있는 것으로 계산하는 것이다.
도 9는 본 발명의 실시예에 따른 임계치 설정 방법을 나타낸 순서도로서, 도 9의 S113 단계에서 사용되는 임계치를 사전에 설정하는 방법을 나타낸다.
도 9를 참조하면, 수집부(601)가 기 정의된 일정 시간 동안 공인 IP가 동일한 복수의 HTTP 요청 메시지들을 수집한다(S201).
추출부(603)는 소스 IP 주소가 일치하는 복수의 HTTP 요청 메시지에서 유저 에이전트(User-agent) 필드를 추출한다(S203). 그리고 유저 에이전트(User-agent) 필드가 일치하는 HTTP 요청 메시지의 소스 포트 번호를 HTTP 요청 메시지를 수신한 시간 순서에 따라 추출한다(S205).
설정부(609)는 S205 단계에서 추출된 복수의 소스 포트 번호를 이전 시간대의 소스 포트 번호와 현재 시간대의 소스 포트 번호 간의 차이를 계산한다(S207). 그리고 이러한 소스 포트 번호 간의 차이를 계산한 결과에 가우시안 혼합 모델을 적용(S209)하여 임계치를 도출한다(S211).
한편, 도 10 및 도 11은 이상 설명한 IP 공유기 검출 방법을 적용한 시뮬레이션 결과를 나타낸다.
도 10은 본 발명의 실시예에 따른 시간대별 서로 다른 유저 에이전트(User-agent) 필드를 갖는 HTTP 요청 메시지들의 소스 포트 번호를 나타내는 그래프이고, 도 11은 본 발명의 실시예에 따른 IP 공유기 검출예를 나타낸 그래프이다.
이때, 시뮬레이션에 사용된 IP 공유기는 ipTIME 계열의 4개의 UTP(User Datagram Protocol) 포트를 갖는다. 그리고 총 3대의 클라이언트 PC(클라이언트 1 PC, 클라이언트 2 PC, 클라이언트 3 PC)를 이용하여 사설 네트워크를 구성한다.
이 중에서, 클라이언트 1 PC는 1차 분류 기법의 오탐지율을 보여주기 위하여 2개의 웹 프로그램을 이용하여 인터넷을 하였고, 나머지 클라이언트 2 PC, 클라이언트 3 PC는 하나의 웹 프로그램만을 이용하였다.
도 10을 참조하면, 클라이언트 별로 소스 포트 번호가 다르게 증가함을 알 수 있다. 이는 최초 HTTP 요청시 소스 포트 번호 부여는 범위 안에서 랜덤하게 생성되지만, 이후의 추가적인 HTTP 요청에 대해서는 소스 포트 번호가 선형적으로 증가하기 때문에 클라이언트 별로 소스 포트 번호가 다르게 증가하기 때문이다.
도 11은 이러한 도 10의 복수의 소스 포트 번호들에 대해 임계치를 이용하여 시간대 별 소스 포트 번호의 선형 곡선을 생성한 결과를 나타낸다.
여기서, 굵은 실선은 클라이언트 별 소스 포트 번호들의 선형 곡선에 해당된다.
도 11을 참조하면, 선형 곡선이 2개 이상 검출되므로, 단일 공인 IP 주소를 사용하는 IP 공유기가 사용되고 있음을 알 수 있다. 또한, 서로 다른 선형 곡선이 3개가 검출되므로, 시뮬레이션에 이용된 총 3대의 클라이언트 PC(클라이언트 1 PC, 클라이언트 2 PC, 클라이언트 3 PC)가 검출됨을 알 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100, 200, 300: 클라이언트 단말 400: IP 공유기
500: 서비스 서버 600: IP 공유기 검출 시스템
601: 수집부 603: 추출부
605: 분류부 607: 저장부
609: 설정부 611: 분석부
613: 검출부

Claims (11)

  1. IP 네트워크를 통해 수신한 복수의 웹 서비스 요청 메시지로부터 소스 IP 주소 및 유저 에이전트 필드-여기서 유저 에이전트 필드는 상기 웹 서비스 요청 메시지를 송신한 사용자에 관한 정보가 수록됨-가 일치하는 웹 서비스 요청 메시지의 소스 포트 번호를 상기 복수의 웹 서비스 요청 메시지를 수신한 시간 순서에 따라 추출하는 단계;
    추출된 복수의 소스 포트 번호를 상기 시간 순서에 따라 변화하는 패턴을 분석하여 하나 이상의 그룹으로 분류하는 단계; 및
    분류된 그룹의 수에 기초하여 상기 IP 공유기를 사용하는 사용자 단말의 수를 계산하는 단계
    를 포함하는 IP 공유기 검출 방법.
  2. 제1항에 있어서,
    상기 분류하는 단계는,
    상기 추출된 복수의 소스 포트 번호에 대해 이전 시간의 소스 포트 번호와 현재 시간의 소스 포트 간의 차이를 계산하는 단계; 및
    상기 소스 포트 번호 간의 차이가 기 정의된 선형성을 갖는 복수의 소스 포트 번호로 구성된 하나 이상의 그룹으로 분류하는 단계
    를 포함하는 IP 공유기 검출 방법.
  3. 제2항에 있어서,
    상기 복수의 소스 포트 번호로 구성된 하나 이상의 그룹으로 분류하는 단계는,
    상기 소스 포트 번호 간의 차이가 기 설정된 임계치 이하를 갖는 경우, 선형성을 갖는 경우로 판단하고, 상기 기 설정된 임계치 이하의 차이를 갖는 복수의 소스 포트 번호로 구성된 하나 이상의 그룹으로 분류하는 IP 공유기 검출 방법.
  4. 제3항에 있어서,
    상기 추출하는 단계 이전에,
    기 정의된 일정 시간 동안 수집한 상기 복수의 웹 서비스 요청 메시지로부터 추출한 유저 에이전트 필드 및 복수의 소스 포트 번호에 가우시안 혼합 모델을 용하여 상기 임계치를 설정하는 단계
    를 더 포함하는 IP 공유기 검출 방법.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 계산하는 단계는,
    상기 하나 이상의 그룹을 유저 에이전트 필드와 매핑시킨 테이블을 생성하는 단계;
    상기 테이블에 저장된 유저 에이전트 필드 별로 매핑된 상기 하나 이상의 그룹에 포함된 복수의 소스 포트 번호를 이용하여 시간에 따라 복수의 소스 포트 번호가 선형적으로 증가하는 선형 곡선을 생성하는 단계; 및
    서로 다른 선형 곡선이 2개 이상 발생하는 경우, 상기 IP 공유기 사용을 검출하고, 상기 서로 다른 선형 곡선의 개수를 이용하여 상기 사용자 단말의 수를 계산하는 단계
    를 포함하는 IP 공유기 검출 방법.
  6. 제5항에 있어서,
    상기 웹 서비스 요청 메시지는,
    헤더 정보에 상기 유저 에이전트 필드 및 상기 소스 포트 번호가 수록된 HTTP(HyperText Transfer Protocol) 요청 메시지인 것을 특징으로 하는 IP 공유기 검출 방법.
  7. IP 네트워크를 통해 수신한 복수의 웹 서비스 요청 메시지로부터 소스 IP 주소 및 유저 에이전트 필드-여기서 유저 에이전트 필드는 상기 웹 서비스 요청 메시지를 송신한 사용자에 관한 정보가 수록됨-가 일치하는 웹 서비스 요청 메시지의 소스 포트 번호를 상기 복수의 웹 서비스 요청 메시지를 수신한 시간 순서에 따라 추출하는 추출부;
    추출된 복수의 소스 포트 번호를 상기 시간 순서에 따라 변화하는 패턴을 분석하여 하나 이상의 그룹으로 분류하는 분류부; 및
    분류된 그룹의 수에 기초하여 상기 IP 공유기를 사용하는 사용자 단말의 수를 계산하는 검출부
    를 포함하는 IP 공유기 검출 시스템.
  8. 제7항에 있어서,
    상기 추출된 복수의 소스 포트 번호 중에서 이전 시간의 소스 포트 번호와 현재 시간의 소스 포트 간의 차이가 기 정의된 선형성을 만족하는지를 판단하는 분석부를 더 포함하고,
    상기 분류부는,
    상기 추출된 복수의 소스 포트 번호를 상기 소스 포트 번호 간의 차이가 기 정의된 선형성을 갖는 복수의 소스 포트 번호로 구성된 하나 이상의 그룹으로 분류하는 IP 공유기 검출 시스템.
  9. 제8항에 있어서,
    상기 분석부는,
    기 정의된 일정 시간 동안 수집한 상기 복수의 웹 서비스 요청 메시지로부터 추출한 유저 에이전트 필드 및 복수의 소스 포트 번호에 가우시안 혼합 모델을 적용하여 임계치를 설정한 후, 상기 소스 포트 번호 간의 차이가 기 설정된 임계치 이하를 갖는 경우, 선형성을 갖는 경우로 판단하는 IP 공유기 검출 시스템.
  10. 제8항 또는 제9항에 있어서,
    상기 검출부는,
    상기 하나 이상의 그룹을 유저 에이전트 필드와 매핑시킨 테이블을 생성한 후, 상기 테이블에 저장된 유저 에이전트 필드 별로 매핑된 상기 하나 이상의 그룹에 포함된 복수의 소스 포트 번호를 이용하여 시간에 따라 복수의 소스 포트 번호가 선형적으로 증가하는 선형 곡선을 생성하고, 서로 다른 선형 곡선이 2개 이상 발생하는 경우, 상기 IP 공유기 사용을 검출하고, 상기 서로 다른 선형 곡선의 개수를 이용하여 상기 사용자 단말의 수를 계산하는 IP 공유기 검출 시스템.
  11. 제10항에 있어서,
    상향 트래픽을 상시 감시하여 상기 상향 트래픽으로부터 헤더 정보에 상기 유저 에이전트 필드 및 상기 소스 포트 번호가 수록된 HTTP(HyperText Transfer Protocol) 요청 메시지를 수집하여 상기 추출부로 전달하는 수집부
    를 더 포함하는 IP 공유기 검출 시스템.
KR1020100060259A 2010-06-24 2010-06-24 Ip 공유기를 검출하는 방법 및 이를 수행하는 시스템 KR101210622B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100060259A KR101210622B1 (ko) 2010-06-24 2010-06-24 Ip 공유기를 검출하는 방법 및 이를 수행하는 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100060259A KR101210622B1 (ko) 2010-06-24 2010-06-24 Ip 공유기를 검출하는 방법 및 이를 수행하는 시스템

Publications (2)

Publication Number Publication Date
KR20110140063A true KR20110140063A (ko) 2011-12-30
KR101210622B1 KR101210622B1 (ko) 2012-12-11

Family

ID=45505345

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100060259A KR101210622B1 (ko) 2010-06-24 2010-06-24 Ip 공유기를 검출하는 방법 및 이를 수행하는 시스템

Country Status (1)

Country Link
KR (1) KR101210622B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101528611B1 (ko) * 2014-03-27 2015-06-12 플러스기술주식회사 서버 인터넷 주소를 이용한 공유 단말 검출 방법 및 그 장치
WO2015160176A1 (ko) * 2014-04-17 2015-10-22 플러스기술주식회사 인터넷 주소 제공 장치 및 그 방법과, 이를 이용한 단말 구분 장치 및 그 방법
WO2015167146A1 (ko) * 2014-04-30 2015-11-05 플러스기술주식회사 브라우저 종류를 이용한 공유 단말 검출 방법 및 그 장치
CN105991767A (zh) * 2015-03-23 2016-10-05 郭正坤 线路共享终端识别装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101480438B1 (ko) * 2013-08-23 2015-01-13 (주)넷맨 아이피 공유기 검출 시스템
KR101940482B1 (ko) * 2017-03-27 2019-01-21 아주대학교산학협력단 Tcp/ip 헤더 및 http 쿠키에 기반한 nat 내부 호스트 식별 장치 및 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101528611B1 (ko) * 2014-03-27 2015-06-12 플러스기술주식회사 서버 인터넷 주소를 이용한 공유 단말 검출 방법 및 그 장치
WO2015160176A1 (ko) * 2014-04-17 2015-10-22 플러스기술주식회사 인터넷 주소 제공 장치 및 그 방법과, 이를 이용한 단말 구분 장치 및 그 방법
WO2015167146A1 (ko) * 2014-04-30 2015-11-05 플러스기술주식회사 브라우저 종류를 이용한 공유 단말 검출 방법 및 그 장치
CN105991767A (zh) * 2015-03-23 2016-10-05 郭正坤 线路共享终端识别装置
CN105991767B (zh) * 2015-03-23 2020-12-29 郭正坤 线路共享终端识别装置

Also Published As

Publication number Publication date
KR101210622B1 (ko) 2012-12-11

Similar Documents

Publication Publication Date Title
CN109951500B (zh) 网络攻击检测方法及装置
CN109600363B (zh) 一种物联网终端网络画像及异常网络访问行为检测方法
US11399288B2 (en) Method for HTTP-based access point fingerprint and classification using machine learning
Lu et al. Clustering botnet communication traffic based on n-gram feature selection
Phan et al. OpenFlowSIA: An optimized protection scheme for software-defined networks from flooding attacks
Jeya et al. Efficient classifier for R2L and U2R attacks
Al-Hammadi et al. DCA for bot detection
Aiello et al. DNS tunneling detection through statistical fingerprints of protocol messages and machine learning
Bojović et al. A practical approach to detection of distributed denial-of-service attacks using a hybrid detection method
US20160366159A1 (en) Traffic feature information extraction method, traffic feature information extraction device, and traffic feature information extraction program
KR102088299B1 (ko) 분산 반사 서비스 거부 공격 탐지 장치 및 방법
KR101210622B1 (ko) Ip 공유기를 검출하는 방법 및 이를 수행하는 시스템
TW202019127A (zh) 異常流量偵測裝置及其異常流量偵測方法
Lu et al. BotCop: An online botnet traffic classifier
Gokcen et al. Can we identify NAT behavior by analyzing Traffic Flows?
US20220263823A1 (en) Packet Processing Method and Apparatus, Device, and Computer-Readable Storage Medium
KR101250899B1 (ko) 응용계층 분산 서비스 거부 공격 탐지 및 차단 장치 및 그 방법
Gajewski et al. Two-tier anomaly detection based on traffic profiling of the home automation system
KR101980901B1 (ko) SVM-SOM 결합 기반 DDoS 탐지 시스템 및 방법
Osanaiye et al. TCP/IP header classification for detecting spoofed DDoS attack in Cloud environment
Fraunholz et al. YAAS-On the Attribution of Honeypot Data.
CN102130920A (zh) 一种僵尸网络的发现方法及其系统
KR20200109875A (ko) 유해 ip 판단 방법
Stevanovic et al. Detecting bots using multi-level traffic analysis.
Catak Two-layer malicious network flow detection system with sparse linear model based feature selection

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