KR101048991B1 - 봇넷 행동 패턴 분석 시스템 및 방법 - Google Patents

봇넷 행동 패턴 분석 시스템 및 방법 Download PDF

Info

Publication number
KR101048991B1
KR101048991B1 KR1020090017303A KR20090017303A KR101048991B1 KR 101048991 B1 KR101048991 B1 KR 101048991B1 KR 1020090017303 A KR1020090017303 A KR 1020090017303A KR 20090017303 A KR20090017303 A KR 20090017303A KR 101048991 B1 KR101048991 B1 KR 101048991B1
Authority
KR
South Korea
Prior art keywords
vector
botnet
value
behavior pattern
pattern analysis
Prior art date
Application number
KR1020090017303A
Other languages
English (en)
Other versions
KR20100098241A (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 KR1020090017303A priority Critical patent/KR101048991B1/ko
Publication of KR20100098241A publication Critical patent/KR20100098241A/ko
Application granted granted Critical
Publication of KR101048991B1 publication Critical patent/KR101048991B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/144Detection or countermeasures against botnets

Landscapes

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

Abstract

본 발명은 봇넷에 대한 행동패턴을 분석하여 봇넷의 행동유형 및 해당 봇넷에 속한 IP를 용이하게 추출할 수 있는 봇넷 행동패턴 분석 시스템 및 방법에 대한 것으로, 더욱 상세히는 메일 로그로부터 공통 요소를 추출하여 봇넷에 속한 IP를 구분하고, 봇넷의 메일 발송 패턴의 다양성과 중복 IP 요소까지 고려하여 특정 봇넷을 용이하게 추출함으로써 해당 특정 봇넷의 행동패턴을 상세하게 분석할 수 있는 봇넷 행동패턴 분석 시스템 및 방법에 대한 것이다. 본 발명에 따르면, 특정 봇넷에서 사용되는 메일의 공통 요소를 추출하고, 타 봇넷과의 행동패턴을 용이하게 구분하여 최종적인 특정 봇넷에 대한 행동패턴을 생성함으로써, 상기 행동패턴을 근거로 해당 특정 봇넷의 초기 행동을 미리 감지하고 선조치를 취하여 봇넷에 의한 피해를 최소화할 수 있는 효과가 있다.
Figure R1020090017303
봇넷(botnet), 행동패턴, 전개패턴

Description

봇넷 행동 패턴 분석 시스템 및 방법{System and method for spamming botnet by analyzing botnet's behavior pattern}
본 발명은 봇넷에 대한 행동패턴을 분석하여 봇넷의 행동유형 및 해당 봇넷에 속한 IP를 용이하게 추출할 수 있는 봇넷 행동패턴 분석 시스템 및 방법에 대한 것으로, 더욱 상세히는 메일 로그로부터 공통 요소를 추출하여 봇넷에 속한 IP를 구분하고, 봇넷의 메일 발송 패턴의 다양성과 중복 IP 요소까지 고려하여 특정 봇넷을 용이하게 추출함으로써 해당 특정 봇넷의 행동패턴을 상세하게 분석할 수 있는 봇넷 행동패턴 분석 시스템 및 방법에 대한 것이다.
봇넷이 컴퓨터 과학 분야에서 전 세계적인 문제로 떠오르고 있다. 악성 코드에 감염된 일반 사용자들의 PC(= compromised PC or Bot)들이 네트워크로 연결되어 하나의 일괄적인 행동을 동시다발적으로 수행하는 것을 봇넷이라고 하는데, 도 1에 도시된 바와 같이 수백 만대의 감염 PC들(bot)이 소수의 조종자(bot-master)에 의해 임의대로 조작되는 것이 대표적인 특징이다. 수백 만대의 PC가 개인의 의지로 조작 가능하므로 악용될 소지가 매우 높고 그 파괴력도 어마어마한 것이 사실이다. 실제로 봇넷은 주로 대량 스팸 메일 발송, 분산된 서비스 거부 공격(DDoS), 악성 코드의 확산을 목적으로 사용되며 전 세계적으로 인터넷이 보편화된 요즘 각종 온라인 서비스에 막대한 피해를 입히고 있다.
봇넷들이 여러 방면에서 악영향을 끼치고 있다고는 하지만 이를 잡아내는 것은 결코 쉬운 일이 아니다. 봇넷의 핵심적인 특성인 "분산성"과 "유저 의존성" 때문이다. 하나 혹은 소수의 PC들이 같은 태스크(task: 악의적 행동)을 반복적으로 수행한다면 이를 찾아내는 일은 크게 어렵지 않다. 하지만 수백 만대의 PC가 같은 태스크를 1~2번씩 수행한다면 이 태스크를 수행하는 주체를 찾아내는 일은 매우 어려울 것이다. 심지어는 그런 악의적 태스크가 수행되고 있는지 조차 모를 수도 있다. 또 하나 고려해야 할 점은 태스크에 동원되는 밧들은 일반 유저들의 개인 PC라는 것이다. 이들은 자발적으로 태스크에 참여하는 것이 아니기 때문에 단순히 조종자가 명령을 내리는 순간에 컴퓨터가 켜져 있을 경우에만 task에 참여하게 된다. 쉽게 말해 각각의 밧들이 언제 켜져 있고(참여), 언제 꺼져(비 참여) 있을지 아무도 예측할 수 없다.
이렇듯 봇넷은 매우 광범위하고 불규칙적이며 예측이 힘든 특징을 가지고 있으면서 인터넷 환경에 미치는 악영향은 매우 크기 때문에 최근 컴퓨터 과학 분야에서 핫 이슈로 떠오르는 분야이다.
봇넷에 관련된 연구는 네트워크, 보안, 데이터 마이닝 등 다양한 분야에서 지금까지도 활발하게 이루어 지고 있다. 하지만 그 연구들이 봇넷의 정확한 크기와 동작 패턴(behavioral pattern), 전개 패턴(evolution pattern) 등을 명확하게 밝혀내지는 못하고 있는 실정이다.
초기의 연구는 대부분 네트워크 패킷 플로우(network packet flow)에 집중되어 있었다. 그 중에는 조종자가 봇넷에게 명령을 내리는 C&C 서버(Command and Control Server)에 직접 들어가 메시지 전송 체계와 봇넷의 규모를 확인했던 IRC 침입 탐지(IRC Infiltration) 방식, 그리고 DNS 룩업 정보(DNS Lookup information)과 같이 외부 추적(external trace)을 이용해 봇넷의 특성을 알아보는 연구가 있었다.
하지만 네트워크 트래픽에 관련된 연구만으로 정확한 봇넷의 행동 패턴을 파악하기엔 부족하였다. 인터넷 시스템 구성상 PC들(즉 bot-master와 bot들)이 주고 받는 패킷의 정확한 내용을 파악하기 힘들기 때문이다. 현실적으로 네트워크 단에서 PC들이 주고 받는 패킷을 모두 열어 확인해 본다는 것은 불가능한 일이다.
최근 봇넷에 대한 연구는 네트워크 트래픽에서 스팸 메일 로그 분석으로 많이 옮겨 오는 추세이다. 메일 로그를 이용한 연구는 메일의 내용을 (네트워크 패킷에 비해) 손쉽게 확인할 수 있고, 메일의 최종 발신자와 메일 수신자를 정확하게 파악할 수 있다. 이로 인해 IP들의 집단적 움직임을 보다 명확하게 파악할 수 있고, 메일 내용의 유사성을 통해 IP들의 특정 봇넷 멤버쉽 여부를 확실하게 잡아낼 수 있다는 장점이 있다.
이메일 로그를 이용한 최초의 연구는 target URL의 일치를 통해 봇넷을 찾아보았던 연구가 있었으나, 특정 포인트의 IP 역할을 밝히지 못하여 결과의 신뢰성이 낮았다. 한편, 스팸 메일의 발송 특징들을 클러스터링해 봇넷을 탐색했던 연구가 있었으나 메일의 내용 확인을 통한 정확한 봇넷 멤버쉽의 구분 없이 IP의 활동 패턴만을 분석하여, IP가 봇넷의 중복 감염이나 2개 이상의 봇넷의 동시 활동에 대해서는 구분이 곤란하였다.
이후 메일 로그를 통한 봇넷 연구는 더욱 활발해지고 발전되었는데, 그 중 하나가 메일 로그 분석에 다이나믹(dynamic) IP의 영향력을 파악하려는 시도가 있었으나, aggressive sampling rate로 제약 받는 데이터 상황으로 한정되어 실용성이 낮았고, 메일의 특정 feature를 뽑아 signature의 개념을 도입하여 봇넷을 탐지하거나, AutoRE라는 스팸 필터링 시스템(spam filtering system)을 제안하기도 하였다. 이 시스템은 유사한 URL 형태를 보이는 메일들을 한데 묶을 수 있는 regular expression을 사용하여 filtering rate를 높였지만 유사 URL에 대한 검색에는 한계가 있었다.
이처럼 메일 로그를 사용한 봇넷 연구들이 활발하게 진행되고 있지만, 전체적으로 세밀한 봇넷의 행동 패턴은 좀처럼 파악하지 못하고 있는 실정이다.
따라서, 본 발명은 봇넷이 대량의 스팸 메일 발송에 동원된다는 점에 착안하여, 대량의 스팸 메일 로그를 통해 봇넷을 찾아내고, 그들의 정확한 행동 패턴을 분석하는 시스템 및 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 대량의 메일 로그 속에서 봇넷에 의해 발송된 스팸 메일을 찾아내고 이들을 발송한 최종 발송자(=bot)들의 유사 발송 행동을 파악해 각각의 봇넷 멤버쉽을 밝혀내는 시스템 및 방법을 제공하는데 그 목적이 있다.
더하여, 본 발명은 상기한 목적을 바탕으로 각 봇넷들의 구체적인 규모와 스팸 발송 패턴을 찾아내고 시간의 흐름에 따라 봇넷 그 자체가 어떤 식으로 얼마나 빠르게 확장, 축소, 변화해 나가는지 전개 패턴(evolution pattern)을 용이하게 분석할 수 있는 시스템 및 방법을 제공하는데 그 목적이 있다.
상기한 과제를 달성하기 위하여 본 발명에 따른 봇넷 행동패턴 분석 시스템은 이메일(e-mail) 로우 데이터에서 로그정보를 추출하는 추출부와, 상기 추출부에서 추출된 로그정보가 일치하는 데이터끼리 묶어 벡터를 생성하는 벡터 생성부와, 기설정된 예외조건에 해당하는 상기 벡터를 필터링하는 필터부와, 상기 벡터의 발송 패턴을 분석하여 유사한 발송패턴을 가지는 벡터끼리 KL_Divergence 값을 이용하여 클러스터링하고, 상기 클러스터링을 통해 생성된 각 클러스터간의 거리가 기 설정된 임계치 이하인 연결링크를 삭제하여 최종 연결된 클러스터 내의 벡터들을 통합하여 통합된 벡터를 생성하는 통합부로 구성될 수 있다.
이때, 상기 로그정보는 메일의 발송 시간, 발송 IP 주소, target URL link 중 적어도 하나인 것을 특징으로 할 수 있으며, 상기 추출부는 상기 로그정보를 해쉬(hash) 값으로 변환하여 제공하며, 상기 벡터 생성부는 상기 해쉬 값이 일치하는 데이터끼리 묶어 벡터를 생성하는 것을 특징으로 할 수 있다.
한편, 상기 예외 조건은 최초 생성된 상기 벡터를 기준으로 특정 벡터 내에 포함된 IP의 개수가 기설정된 임계치 이하인 경우, 상기 벡터의 활동 날짜가 비연속인 경우 또는 상기 벡터에 속한 IP의 분포가 국가나 ISP가 기설정된 숫자 미만인 경우 중 적어도 하나를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 봇넷 행동패턴 분석 시스템은 서로 다른 2개의 벡터 사이에 상관관계를 IP 개수의 분포와, mail의 개수와, IP histogram을 이용하여 상기 KL_Divergence 값을 생성하며, 상기 KL_Divergence 값을 근거로 각 벡터 사이의 거리에 대한 KL_Divergence matrix를 생성하는 클러스터링부를 더 포함하는 것을 특징으로 할 수 있다.
이때, 상기 KL_Divergence 값은
.
Figure 112009012532062-pat00001
에 의해 KL_DFinal 값으로 구해지며,
상기 KL_DIP는 IP 분포를 가지고 구한 KL_Divergence 값이며, 상기 KL_DMAIL은 Mail 분포를 가지고 구한 KL_Divergence 값이며, KL_DIPH는 IP Historgram 값을 가지고 구한 KL_Divergence 값인 것을 특징으로 할 수 있다.
한편, 상기 통합부는 상기 KL_Divergence matrix를 근거로 계층적인 클러스터링을 수행하고, 상기 클러스터링을 통해 생성된 클러스터간의 거리값이 상기 임계치 이하인 연결링크를 삭제하는 것을 특징으로 할 수 있다.
또한, 상기 봇넷 행동패턴 분석 시스템은 상기 통합된 벡터 사이의 중복 IP 비율을 jaccard dissimilarity를 이용하여 계산하여 상기 통합부에 제공하는 패턴 분석부를 더 포함할 수 있다.
이때, 상기 jaccard dissimilarity는 임의의 통합된 벡터 A와 B 사이의 중복 IP 비율을 의미하며,
Figure 112009012532062-pat00002
에 의해 구해질 수 있다.
더하여, 상기 패턴 분석부는 구해진 상기 중복 IP 비율을 상기 통합된 벡터의 수가 m일 경우 m×m matrix를 생성하여 상기 통합부에 제공할 수 있으며, 상기 통합부는 구해진 상이한 통합된 벡터 사이의 상기 중복 IP 비율을 상기 통합된 벡터의 수가 m일 경우 m×m matrix로 생성하고, 상기 m×m matrix를 근거로 상기 각 통합된 벡터 사이의 상기 jaccard dissimilarity 값을 기설정된 임계치를 기준으로 삭제하여, 상기 각 통합된 벡터가 하나의 노드가 되고 상기 노드 사이를 연결하는 연결링크를 jaccard dissimilarity 값으로 하여 시간-IP개수 그래프를 생성하고, 상기 jaccard dissimilarity가 큰 값으로부터 순차적으로 잘라내어 두 개의 컴포넌트(component)로 그래프가 분리되는 순간의 각 컴포넌트 사이의 겹침비율이 기설정된 비율 이상인 경우 각 컴포넌트를 완전히 분리하여 각 컴포넌트에 포함되어 있는 통합된 벡터의 정보를 취합하여 최종 봇넷 정보를 생성할 수 있다.
이때, 상기 IP 중복 비율이 0에서 1 사이일때, 상기 jaccard dissimilarity 값에 대한 상기 기설정된 임계치는 0.90~0.99 사이에서 정해진 것을 특징으로 하며, 상기 기설정된 비율은 상기 그래프의 시간 축을 기준으로 30%인 것을 특징으로 할 수 있다.
한편, 상기 통합부는 상기 기설정된 비율 미만인 경우 분리된 컴포넌트 사이의 발송패턴을 비교하여 상기 컴포넌트의 분리여부를 결정할 수 있다.
본 발명의 실시예에 따른 적어도 하나 이상의 메일 서버로부터 이메일 로그를 수신받아 봇넷의 행동패턴을 분석하는 방법에 있어서, 로우 데이터에서 로그정보를 추출하는 제 1단계와, 추출된 로그정보가 일치하는 데이터끼리 묶어 벡터를 생성하는 제 2단계와, 기설정된 예외조건에 해당하는 상기 벡터를 필터링하는 제 3단계와, 상기 벡터의 발송 패턴을 분석하여 유사한 발송패턴을 가지는 벡터끼리 KL_Divergence 값을 이용하여 클러스터링하는 제 4단계와, 상기 제 4단계의 결과로 생성된 각 클러스터간의 거리를 상기 KL_Divergence 값을 기준으로 기설정된 임계치 이하인 경우 클러스터간의 연결링크를 삭제하고, 최종 연결된 상이한 클러스터 내의 벡터들을 통합하여 통합된 벡터를 생성하는 제 5단계로 구성될 수 있다.
이때, 상기 로그정보는 메일의 발송 시간, 발송 IP 주소, target URL link 중 적어도 하나인 것을 특징으로 할 수 있으며, 상기 제 1단계는 상기 로그정보를 해쉬 값으로 변환하여 제공하는 단계를 더 포함할 수 있다. 또한, 상기 제 2단계는 상기 해쉬 값이 일치하는 데이터끼리 묶어 벡터를 생성할 수 있다.
한편, 상기 예외 조건은 최초 생성된 상기 벡터를 기준으로 특정 벡터 내에 포함된 IP의 개수가 기설정된 임계치 이하인 경우, 상기 벡터의 활동 날짜가 비연속인 경우 또는 상기 벡터에 속한 IP의 분포가 국가나 ISP가 기설정된 숫자 미만인 경우 중 적어도 하나를 포함할 수 있다.
또한, 상기 제 4단계는 서로 다른 2개의 벡터 사이에 상관관계를 IP 개수의 분포, mail의 개수, IP histogram을 이용하여 상기 KL_Divergence 값을 생성하는 단계를 더 포함할 수 있다.
이때, 상기 KL_Divergence 값은
Figure 112009012532062-pat00003
에 의해 KL_DFinal 값으로 구해지며,
상기 KL_DIP는 상기 IP 개수의 분포를 가지고 구한 KL_Divergence 값이며, 상기 KL_DMAIL은 상기 mail의 개수 분포를 가지고 구한 KL_Divergence 값이며, KL_DIPH는 IP Historgram 값을 가지고 구한 KL_Divergence 값인 것을 특징으로 할 수 있다.
더하여, 상기 제 5단계는 상기 KL_Divergence 값을 근거로 각 벡터 사이의 거리에 대한 matrix를 생성하여 상기 matrix를 근거로 계층적인 클러스터링을 수행하고, 상기 클러스터링을 통해 생성된 클러스터간의 거리값이 상기 임계치 이하인 상기 클러스터간의 연결링크를 삭제하는 것을 특징으로 할 수 있다.
한편, 상기 봇넷 행동패턴 분석 방법은 상기 통합된 벡터 사이의 중복 IP 비율을 jaccard dissimilarity를 이용하여 계산하는 제 6단계를 더 포함할 수 있으며, 상기 jaccard dissimilarity는 임의의 통합된 벡터 A와 B 사이의 중복 IP 비율을 의미하며,
Figure 112009012532062-pat00004
에 의해 구해질 수 있다.
또한, 상기 봇넷 행동패턴 분석 방법은 상기 제 6단계의 결과로 구해진 상이한 통합된 벡터 사이의 상기 중복 IP 비율을 상기 통합된 벡터의 수가 m일 경우 m×m matrix로 생성하고, 상기 m×m matrix를 근거로 상기 각 통합된 벡터 사이의 상기 jaccard dissimilarity 값을 기설정된 임계치를 기준으로 삭제하는 제 7단계와, 상기 통합된 벡터 사이를 연결하는 연결링크를 jaccard dissimilarity값으로 하여 시간-IP개수 그래프를 생성하고, 상기 jaccard dissimilarity가 큰 값으로부터 순차적으로 잘라내어 두 개의 컴포넌트(component)로 그래프가 분리되는 순간의 각 컴포넌트 사이의 겹침비율이 기설정된 비율 이상인 경우 각 컴포넌트를 완전히 분리하여 각 컴포넌트에 포함되어 있는 통합된 벡터의 정보를 취합하여 최종 봇넷 정보를 생성하는 제 8단계를 더 포함할 수 있다.
이때, 상기 IP 중복 비율이 0에서 1 사이일때, 상기 jaccard dissimilarity 값에 대한 상기 기설정된 임계치는 0.90~0.99 사이에서 정해진 것을 특징으로 하며, 상기 제 8단계에서 상기 기설정된 비율은 상기 그래프의 시간 축을 기준으로 30%인 것을 특징으로 할 수 있다.
더하여, 상기 제 8단계는 상기 기설정된 비율 미만인 경우 분리된 컴포넌트 사이의 발송패턴을 비교하여 상기 컴포넌트의 분리여부를 결정하는 것을 특징으로 할 수 있다.
본 발명은 특정 봇넷에서 사용되는 메일의 공통 요소를 추출하고, 타 봇넷과의 행동패턴을 용이하게 구분하여 최종적인 특정 봇넷에 대한 행동패턴을 생성함으로써, 상기 행동패턴을 근거로 해당 특정 봇넷의 초기 행동을 미리 감지하여 선조치를 취하여 봇넷에 의한 피해를 최소화할 수 있는 효과가 있다.
또한, 본 발명은 봇넷의 행동 유형에 대한 변형(variation)을 고려하여 유사 행동 패턴들을 군집으로 형성하여 다양한 행동 유형으로 봇넷이 활동하더라도 이를 감지하여 차단할 수 있는 효과가 있다.
더불어, 본 발명은 봇넷에 속한 IP 리스트를 확보할 수 있을 뿐 아니라 복수의 봇넷에 포함되어 활동하는 IP까지 구분하여, 이들이 더 이상 봇으로 활동하지 않을 수 있도록 조치를 취할 수 있을 뿐 아니라, 상기 조치로 인해 봇들을 통제하 게 되면 봇넷의 확산을 저지시키고 악의적 task를 사전에 방지 할 수 있게 되는 효과가 있다.
또한, 본 발명은 전개 패턴에 대한 분석을 통해 알아낸 각 봇넷들의 행동 패턴과 봇의 IP들의 주요 소속 국가 분포를 통해 봇넷 초기 행동을 신속히 감지하여 봇넷의 활동을 사전에 차단할 수 있는 효과가 있다.
본 발명에 따른 봇넷 행동패턴 분석 시스템은 적어도 하나 이상의 서버와 연결되어 송수신되는 이메일(E-mail)의 로그로부터 필요한 로그정보를 추출하고, 추출된 로그정보를 근거로 공통요소를 가지는 로그정보끼리 묶어 벡터를 형성할 수 있다. 또한, 이와 같이 생성된 다수의 벡터를 순차적인 조건에 따라 군집을 형성하고 해체하는 과정을 통해 최소한의 단위 벡터를 생성하여, 봇넷의 행동패턴을 상세히 분석할 수 있도록 한다.
본 발명에 따른 봇넷 행동패턴 분석 시스템은 도 2에 도시된 바와 같이, 이메일(e-mail) 로우 데이터(RAW Data)에서 로그정보를 추출하는 추출부(101)와, 상기 추출부(101)에서 추출된 로그정보 중 일부 정보가 일치하는 데이터끼리 묶어 벡터를 생성하는 벡터 생성부(102)와, 기설정된 예외조건에 해당하는 상기 벡터를 필터링하는 필터부(103)와, 필터링된 상기 벡터의 발송 패턴을 분석하여 유사한 발송패턴을 가지는 벡터끼리 클러스터링하고 최종 생성된 클러스터 내의 벡터들을 통합 하여 통합 벡터를 생성하는 통합부(104)로 구성될 수 있다.
또한, 본 발명에 따른 봇넷 행동패턴 분석 시스템은 상기 클러스터링 과정에서 벡터 사이의 상관관계에 대한 matrix를 제공하여 상기 통합부(104)가 연관성 있는 벡터끼리 묶어 봇넷의 최소한의 활동에 대한 통합 벡터를 생성하도록 지원하는 클러스터링부(105)와, 상기 통합 벡터 사이의 중복 IP 비율에 대한 매트릭스를 제공하여 상기 통합부(104)가 상기 매트릭스로부터 추출되는 컴포넌트끼리 연결하여 그래프를 생성하고 상기 그래프로부터 연결 링크를 순차적으로 끊어 최종적인 하나의 봇넷에 대한 그래프를 획득할 수 있도록 지원하는 패턴 분석부(106)를 더 포함할 수 있다. 상기 클러스터링부(105)와 패턴 분석부(106)에 대한 상세한 설명은 이하에서 하기로 한다.
한편, 상기 추출부는 로우 데이터(RAW Data)에서 분석에 필요한 요소를 뽑아낸다. 사용한 로그는 여러 종류의 스팸 필터링(spam fitering)기술이 포함된 프로그램에서 추출된 것으로써 어떤 종류의 스팸 필터(spam filter)에 걸렸느냐에 따라 각기 다른 로그를 가지고 있다. 이중에 상기 추출부가 사용할 로그는 타겟 URL을 대상으로 한 스팸 필터링 결과로 이는 이미 알려진 스패밍 타겟 URL(spamming target URL)이 메일에 포함되어 있을 때 스팸으로 잡힌 로그만을 사용한다. 필요한 로그를 대상으로 각 메일의 발송 시간, 발송 IP Address, 타겟 URL 링크(target URL link)에 대한 로그정보를 뽑아낸다. 상기 로그정보는 다음과 같이 structured data로서 생성되며, 원활한 관리를 위해 URL을 16진수-32digit 형태의 해쉬(hash) 값으로 변환하여 사용한다.
Structured data = { DT(date+time), IP address, Hash value(target URL)}
이후, 상기 벡터 생성부는 상기 추출부가 상기 로그로부터 뽑아낸 로그정보인 structured data 중 같은 해쉬 값을 가지는 데이터끼리 묶어주게 된다. 같은 타겟 URL을 광고하고 메일들을 발송하는 IP들은 같은 조종자(bot-master)에게 명령을 받아 스팸을 발송하고 있을 가능성이 매우 높다. 비록 각 IP들의 지역대가 다르더라도 봇넷의 기본 성질을 생각해 봤을 때, 전 세계에 널리 퍼져 있는 수 많은 PC들이라도 동일 시간대에 켜져 있다면, 네트워크를 통해 동시에 명령을 받을 수 있고, 그렇게 명령 받은 PC들이 비슷한 내용과 타겟 URL을 골자로 하는 스팸 메일을 발송할 것이다. 따라서, 상기 벡터 생성부는 상기 해쉬 값을 기준으로 IP들을 묶어 다음과 같이 벡터(vector) 형태로 만들어 준다.
Hash vector = {IP1:DT1,1|DT1,2|DT1,3|...|DT1,n|, IP2:DT2,1|DT2,2|DT2,3|...|DT2,n|,...,|IPm:DTm,1|DTm,2|DTm,3|...|DTm,n|}
IPm: 해당 Hash 값을 target URL로 가진 메일을 발송한 m 번째 IP
DTm,n: m 번째 IP가 발송한 n 번째 메일이 발송된 날짜와 시간
같은 해쉬(target URL)를 광고하는 IP는 여러 개가 있을 수 있고, 각각의 IP 역시 스팸을 한 통 이상 발송 할 수 있으므로, 위와 같은 형태의 벡터 형태를 가지게 된다. 이와 같이 생성된 벡터를 사용하면 추후에 각 해쉬 당 IP-셋(IP-set) 유사도 비교와 발송 패턴 분석이 용이해 진다.
한편, 여러 개의 분산된 IP들에서 같은 타겟 URL을 달고 스팸 메일을 전송한다고 해도 그것이 꼭 봇넷에 의한 스팸이라고 볼 수는 없다. 모두 같은 도메인 안에 있거나 같은 서브넷(subnet) 안에 소속된 IP들이 발송한 대량의 스팸 메일은 봇넷이라고 보기 힘들다. 특정 PC가 IP만 바꿔서 발송한 경우일 수도 있고, 같은 망 내의 여러 PC에 같은 스팸 발송 프로그램을 사용한 것일 수도 있다. 이러한 이유 때문에 상기 필터링부를 통해 봇넷의 특징에 맞는 일정한 기준을 세우고 이를 바탕으로 봇넷에 의한 해쉬 벡터를 걸러낼 필요성이 있다.
상기 필터링부는 도 3에 도시된 바와 같이 해쉬 벡터가 발송된 날짜순으로 해당 날짜에 한번 이상 스팸을 발송한 IP의 개수를 파악한 후, IP의 개수가 가장 많이 등장한 날짜를 기준(도 3에서 1일)으로 필터링을 수행할 수 있다. 또한, 예를 들어 3% 이하의 IP 개수가 활동한 날짜(도 3에서 3일과 6일)는 활동기간에서 제외시키는 필터링을 수행할 수도 있다. 이와 같은 필터링은 해당 봇의 시스템 시간 오류로 인해 다른 IP들보다 늦게 발송을 하는 등, 몇몇 이유에 의해 발생하는 예외 상황들을 없애주기 위해서이다.
벡터의 활동 날짜를 구하고 난 다음에는 도 3에 도시된 바와 같이, 상기 필터링부는 활동이 연속적이었던 구간별(그룹 A와 그룹 B)로 나누어줄 수 있다. 이는 봇넷이 활동을 할 때 시간의 연속성을 가지고 활동을 하며 일정 시간 이상 활동이 없다가 다시 활동을 시작하는 경우에는 두 번의 활동이 각기 다른 2번의 명령을 받아 실행되었다고 판단하는 것이다.
상기와 같이 필터링된 벡터들은 이제 봇넷에 의한 최소한의 활동을 나타내게 되었다. 마지막으로 상기 필터부는 각 벡터들에 속한 IP의 분포가 국가 또는 ISP가 기설정된 숫자 미만인 벡터들은 삭제하여 최종 필터링을 수행하여 분석에 용이한 벡터들을 최종적으로 수집하여 봇넷의 행동패턴 분석시 용이함을 제공할 수 있다. 상기 국가는 10개 미만, 상기 ISP는 20개 미만인 것이 바람직하다.
한편, 봇넷들은 URL 필터링을 피하기 위해 같은 광고를 할 때에도, 여러 개의 타겟 URL을 생성해서 발송한다. 특정 타겟 URL을 포함한 메일이 너무 많아 해당 URL이 막혀 버리게 되면 아무리 많은 봇들을 동원해서 메일을 보낸다 한들 전부 막혀 버리게 되기 때문이다. 이를 피하기 위해 여러 개의 타겟 URL을 만들어 web page redirection을 통해 진짜 원하는 웹페이지로 이동시키는데 이것을 URL 변형(variation)으로 볼 수 있다.
상기 URL 변형을 잡기 위해서 각 벡터의 발송 패턴을 이용하게 되는데, 각각의 벡터가 서로 다른 타겟 URL을 가지고 있다고 하더라도, 한 조종자에 의해 조종되고 있는 하나의 URL 변형 묶음이라면 이들의 발송 패턴은 유사할 수 밖에 없다.
도 4에서 확인 할 수 있듯이, 한 묶음의 URL 변형들은 날짜-시간대별 활동 IP의 개수가 거의 일치한다. 이들은 비록 타겟 URL은 다르지만 하나로 묶어 주어야 제대로 된 봇넷 구성 IP와 활동 패턴 및 전개 추적(evolution trace)이 가능해 진 다.
상술한 내용을 근거로 상기 통합부는 필터링된 상기 벡터들을 KL-divergence를 이용하여 상기 벡터들을 묶어 적어도 하나 이상의 서로 다른 군집을 생성시킬 수 있다. 상기 KL-divergence는 서로 다른 2개의 확률분포가 얼마나 비슷한지를 나타내주는 지표가 되며, 다음과 같은 수학식 1에 따라 획득할 수 있다.
Figure 112009012532062-pat00005
상기 수학식 1에 나타난 바와 같이 KL_Divergence 값은 대칭적이지 않다. 그러므로 비대칭한 두 분포의 KL_Divergence 값을 구하기 위해서 D(p||q) + D(q||p)를 사용한다. 이렇게 해서 구한 KL_Divergence 값은 두 확률 분포가 일치하면 0, 서로 다를수록 큰 값을 갖게 된다.
따라서, 보다 정확한 URL 변형을 잡기 위하여 3가지 확률 분포를 이용하여 벡터간의 유사성에 대한 정보를 제공하는 클러스터링부와 연결될 수 있다. 상기 클러스터링부는 상기 3가지 확률분포로서, 첫째는 각각의 벡터에서 단위 시간 동안 스팸을 발송한 IP 개수의 분포이고, 둘째는 mail의 개수, 마지막으로 사용하는 확률 분포는 IP histogram을 확률 분포로 변환하여 사용한다.
IP 분포와 mail 발송 분포는 같은 방법을 사용한다. 각 벡터가 활동을 시작 한 시간부터 끝나는 시간까지 단위시간으로 나누고 각 시간대에서 활동한 IP의 개수를 구한다. 각각의 개수를 매 시간 활동한 전체 IP의 수로 나누어 주면 각 시간대에 활동한 IP 개수의 비율을 구할 수 있다. 이 과정에서 IP를 각 시간대의 IP들이 발송한 mail 통수로 바꾸어 구해주면 mail 발송 분포를 얻을 수 있다. IP histogram 분포는 조금 다른 방법으로 구하게 되는데, 위에서 단위 시간 별로 구한 IP 개수의 도수 분포표를 구한다. 도수 분포표의 구간은 IP 100개 단위로 나누어서 설정하게 되고, 이 도수 분포표의 총 합을 각 구간에 나누어 주어 IP histogram 분포를 완성한다.
벡터는 각각 3개의 확률분포를 가지게 되고, 서로 다른 2개의 벡터 사이에 KL_Divergence를 구하게 되면 각 분포별로 3개의 KL_Divergence 값을 얻을 수 있다. 최종적으로 상기 클러스터링부는 수학식 2에 나타난 바와 같이 상기 3개의 KL_Divergence 값을 square sum 해서 하나의 KL_DFinal 값으로 만들어 사용하도록 한다.
Figure 112009012532062-pat00006
KL_DIP : IP 분포를 가지고 구한 KL_Dviergence 값
KL_DMAIL : Mail 분포를 가지고 구한 KL_Divergence 값
KL_DIPH : IP Histogram 분포를 가지고 구한 KL_Divergence 값
상기 통합부는 하기에 설명하는 바와 같이 상기 수학식 2를 통해 얻은 KL_DFinal 값을 가지고 동일한 시기에 비슷한 IP 규모를 가지고 유사한 패턴으로 메일을 발송한 서로 다른 벡터를 찾을 수 있다.
우선적으로, 상기 통합부는 상기 벡터들 사이에 존재하는 URL 변형을 하나로 묶어 주기 위해 언급한 상기 KL_Divergence 값을 기준으로 도 5(a)에 도시된 바와 같이 distance matrix를 생성하는 별도의 클러스터링부와 연결될 수 있다. 이때, 상기 클러스터링부는 계산상의 부하를 줄이기 위해 별도로 상기 통합부와 연결될 수 있으며, 상기 통합부에서 상기 클러스터링부의 프로세서 과정이 이루어지도록 할 수도 있음은 물론이다.
상기 클러스터링부는 상기 벡터의 총 개수가 n 이라고 했을때 n × n matrix를 생성하며, 상기 통합부는 상기와 같이 KL_Divergence matrix를 가지고 계층적인 클러스터링(hierarchical clustering)을 수행할 수 있다. 즉, 상기 통합부는 도 5(b)에 도시된 바와 같이 서로 다른 벡터들 사이에 상기 KL_Divergence 값이 작은 순서대로 계층적인 클러스터링을 수행하여 벡터들의 집합인 클러스터(cluster)를 생성할 수 있으며, 각 클러스터 안에 포함된 벡터는 다른 클러스터 안에 포함된 클러스터와 상기 KL_Divergence 값을 가진 링크로 연결될 수 있다. 즉, 상기 링크의 거리(distance)값은 상기 KL_Divergence 값일 수 있다.
이후, 상기 통합부는 도 5(b)에 도시된 바와 같이 각 클러스터 간의 거리(distance)가 기설정된 임계치 이하인 곳에서 잘라주게 되는데, 도 5(c)에 도시된 바와 같이 상기 클러스터링 결과로 최종적으로 링크된 각각의 클러스터 안에는 동시에 활동한 각 봇넷의 URL 변형들이 묶여있게 된다. 이후, 상기 통합부는 서로 링크된 각각의 클러스터 안에 들어있는 벡터들을 도 5(d)에 도시된 바와 같이 하나의 통합 벡터(merged vector)로 묶어주면 URL 변형을 제거한 하나의 봇넷 활동 유닛을 얻을 수 있다.
상기한 바와 같이 생성된 상기 통합 벡터는 각 봇넷들의 유닛 활동을 나타낸다. 그렇다고 상기 통합 벡터들이 단 하나의 봇넷에만 속하는 것은 아닐 것이다. 존재하는 봇넷이 하나가 아닐 것이기 때문에 이들을 각각의 봇넷 소속으로 구분하여 각 봇넷들의 전개 자취를 구해볼 필요가 있다. 이와 같은 추적을 통해야만 각각 봇넷의 정확한 활동 패턴과 규모들을 알아낼 수 있다
각각의 봇넷을 구분해 내기 위해서는 각 상기 통합 벡터 사이에 IP 중복 비율(IP-overlapping ratio)를 통해 구한다. 각 봇넷은 활동에 동원할 수 있는 확보된 bot들을 가지고 있을 것이고, 이들이 비록 유저들에 의해 불규칙적인 on/off 패턴(pattern)을 가진다 하더라도, 어느 정도 이상의 IP 들은 중복으로 활동할 것이기 때문이다. 상기 통합부는 계산상의 부하를 줄이기 위해 별도의 패턴 분석부와 연결되어 상기 IP 중복 비율에 대한 매트릭스를 생성시키도록 할 수 있으며, 상기 통합부에서 상기 패턴 분석부의 프로세서 과정이 이루어지도록 할 수도 있음은 물론이다.
상기 패턴분석부는 IP 중복 비율을 구하기 위해 수학식 3에 나타난 바와 같이 jaccard dissimilarity를 이용할 수 있다.
Figure 112009012532062-pat00007
즉, 통합 벡터 A와 통합 벡터 B 간의 IP 중복 비율을 상기 수학식 3을 통해얻은 jaccard dissimilarity는 두 셋이 같으면 0이 되고, 완전히 disjoint set이 되면 1이 된다.
이와 같이, 상기 패턴 분석부는 M 개의 서로 다른 통합 벡터 사이에 m × m jaccard dissimilarity matrix를 생성하여 상기 통합부에 제공함으로써, 서로 비슷한 IP-set을 가지고 활동했던 통합 벡터를 추적하면서 각 봇넷의 전개 패턴을 상기 통합부가 추적하도록 할 수 있다.
상기 통합부는 상기 패턴 분석부로부터 제공된 jaccard dissimilarity matrix를 바탕으로 graph partitioning을 진행한다. 이때, 상기 통합부는 별도의 계층적 클러스터링(hierarchical clustering)을 진행하지 않는데, 그 이유는 각 봇넷마다 IP 중복 비율이 다를 수 있기 때문이다. 예를 들어 A 봇넷은 IP 중복 비율이 20%이고, B 봇넷은 10%라고 하고, 만약 임계값이 15%에서 설정되었다면 A 봇넷은 구별이 가능하지만, B 봇넷은 다른 봇넷과 섞여 정확하게 파악할 수가 없다.
따라서, 상기 통합부는 상기 jaccard dissimilarity의 1차 임계값을 기준으로 도 6(b)에 도시된 바와 같이 rough하게 그래프를 잘라 낸뒤 각각의 연결 컴포넌트(connected component)를 세부적으로 다시 잘라내는 2단계의 과정을 통해 정확한 봇넷을 파악하고자 한다. 상기 1차 임계값은 0.90~0.99 사이에서 정해질수 있으며, 본 실시예에서는 0.95를 사용한다. 이러한, jaccard dissimilarity 0.95 라는 값은 그 자체로 크게 의미를 가지는 값은 아니고 계산 비용(computational cost)을 줄이는 차원에서 전체를 모두 한 덩어리에서 놓고 시작하는 것 보다는 효과적인 것이라는 판단에서 정해진 값이다.
상기 도 6(b)를 통해 잘려진 그래프를 도 6(c)에 도시된 바와 같이 각각의 연결 컴포넌트를 시간-IP개수의 그래프를 통해 분석한다. 그래프에서 각각의 통합 벡터는 하나의 노드가 되고 노드와 노드 사이의 jaccard dissimilarity 값은 해당 link의 weight 값이 된다.
상기 통합부는 하나의 연결 컴포넌트에서 jaccard dissimilarity가 가장 큰 값으로부터 순차적으로 잘라 나가다 보면 도 6(c)에 도시된 바와 같이 컴포넌트가 분리 되는 순간(MV1과 MV2 및 MV3와 MV4가 분리되어 그래프가 두개로 분리되는 순간, MV: 통합 벡터)이 나타나게 되는데, 서로 분리된 컴포넌트 2개가 시간 축을 기준으로 30% 이상 겹치게 되면 상기 통합부는 두개의 컴포넌트로 분리할 수 있다.
즉, IP 중복 비율이 낮은 상태에서 겨우 연결되어 있던 서로 다른 두개의 봇넷이 분리되면서 구분된 것으로 판단하는 것이다. 만약 시간축이 30% 이하로 겹치게 되면 분리된 서로 다른 2 개의 컴포넌트의 발송 패턴을 확인하게 된다.
상술한 바와 같이 분리된 컴포넌트는 봇넷의 유닛 활동인 통합 벡터에서 통합 벡터간의 IP 중복 비율까지 고려하여 최종적으로 생성된 독립적인 단위 봇넷 벡터로 간주할 수 있으며, 정확한 봇넷의 행동패턴을 표시할 수 있다.
한편, 상술한 내용은 이미 설명했던 KL_Divergence와 비슷한 방법을 사용하지만 분포를 만드는데 약간의 차이가 있다. 정확하게 같은 날, 같은 시간에 발송한 벡터들 끼리의 비교였다면, 여기서는 각 통합 벡터의 IP 규모, 단위 시간당 IP 발송 패턴의 히스토그램, 단위 시간당 IP 발송 메일 수의 히스토그램 분포를 가지고 KL_Divergence를 구하게 되고 이 값이 임계값 이하(기준 값보다 비슷하면) link를 끊지 않고 진행한다. 물론 임계값 이상으로 나오면 끊어주게 된다. 상기 방법을 모든 연결 컴포넌트에 적용하고 나면 시간-IP 규모로 연결된 각각의 봇넷을 구분해 낼 수 있다.
도 7은 본 발명에 따른 봇넷 행동패턴 분석 방법에 대한 순서도로서, 우선 적어도 하나 이상의 메일 서버로부터 로우 데이터에서 수신된 이메일 로그에서 필요한 로그정보를 상기 추출부(101)가 추출하여(①), 상기 로그정보를 관리하기 용이한 형태의 해쉬 데이터로 변환할 수 있다.
이후, 상기 벡터 생성부(102)는 상기 추출된 로그정보가 일치하는 데이터끼리 묶어 벡터를 생성하게 되며(②), 상기 필터링부(103)를 통해 상기 벡터가 기설정된 예외조건에 해당하는 경우 해당 벡터를 제거하도록 하여 봇넷에 해당되는 벡터만이 상기 통합부(104)에 제공되도록 할 수 있다(③).
기설정된 예외조건은 앞서 설명한 바와 같이, 최초 생성된 상기 벡터를 기준 으로 특정 벡터 내에 포함된 IP의 개수가 기설정된 임계치 이하인 경우, 상기 벡터의 활동 날짜가 비연속인 경우 또는 상기 벡터에 속한 IP의 분포가 국가 10개 미만이거나 ISP 20개 미만인 경우 중 적어도 하나를 포함할 수 있다.
상술한 바와 같이 상기 필터링부(103)에 의해 필터링된 벡터는 상술한 URL 변형을 고려하여 하나의 벡터와 연관성 있는 벡터를 클러스터링 하기 위해 상기 통합부(104)는 상기 클러스터링부(105)로부터 제공되는 KL_Divergence matrix를 이용하여 IP 개수의 분포, mail 개수의 분포 및 IP histogram를 근거로 연관관계에 있는 벡터를 묶어 상기 벡터의 집합인 클러스터를 형성할 수 있다(④). 또한, 상기 통합부(104)는 최종 링크되어 연관관계에 있는 적어도 하나 이상의 클러스터에 포함된 벡터를 통합하여 통합 벡터를 생성함으로써 봇넷의 유닛 활동에 대한 패턴을 나타낼 수 있다. 이때, 어느 하나의 벡터와 연관관계가 있는 벡터가 존재하지 않을 경우, 벡터 하나로써 통합 벡터를 형성할 수도 있다(⑤).
한편, 상기 통합부(104)는 적어도 하나 이상의 통합 벡터 사이에서 중복되는 IP 비율을 제거하여 최소한의 봇넷 행동패턴인 단위 봇넷 벡터를 생성하기 위하여, 상기 패턴 분석부(106)가 통합 벡터간의 IP 중복 비율을 클러스터링하여 생성된 jaccard dissimilarity matrix를 바탕으로 상기 통합부(104)가 graph partitioning을 진행할 수 있다(⑥). 즉, 상기 통합부(104)는 기설정된 jaccard dissimilarity의 임계치를 기준으로 상기 그래프를 rough하게 그래프를 잘라내어 각각의 통합 벡터가 하나의 노드로 구성되어 노드간 jaccard dissimilarity값을 가진 링크로 연결된 시간-IP개수 그래프를 생성할 수 있다.
최종적으로 상기 통합부(104)는 상기 링크를 상기 jaccard dissimilarity가 큰 값으로부터 순차적으로 링크를 제거하여 서로 다른 컴포넌트의 그래프로 완전히 분리되는 순간에서 중복되는 지점이 기설정된 임계치 이상이면 각 컴포넌트를 완전히 분리하여 각 컴포넌트에 속한 통합벡터를 취합하여 최종적인 봇넷의 활동정보로 획득할 수 있으며, 곧 독립적인 하나의 봇넷에 대한 봇넷정보로 활용될 수 있다(⑦). 만일 기설정된 임계치 이하로 겹치게 되면 각 컴포넌트의 발송 패턴을 확인하도록 한다.
도 1은 봇넷(botnet)의 구성을 도시한 구성도.
도 2는 본 발명에 따른 봇넷 행동패턴 분석 시스템에 대한 구성도.
도 3은 본 발명에 따른 벡터의 예외조건에 대한 필터링 과정을 도시한 도면.
도 4는 본 발명에 따른 벡터의 variation을 고려한 발송 패턴의 분석에 대한 도면.
도 5는 본 발명에 따른 KL_Divergence를 이용한 통합 벡터 형성 과정을 도시한 도면.
도 6은 본 발명에 따른 통합 벡터의 IP 중복 비율을 고려한 graph partioning 과정을 도시한 도면.
도 7은 본 발명에 따른 봇넷 행동패턴 분석 방법에 대한 순서도.
***도면의 주요 부분에 대한 부호의 설명***
101: 추출부 102: 벡터 생성부
103: 필터부 104: 통합부
105: 클러스터링부 106: 패턴 분석부

Claims (29)

  1. 이메일(e-mail) 로우 데이터에서 로그정보를 추출하는 추출부;
    상기 추출부에서 추출된 로그정보가 일치하는 데이터끼리 묶어 벡터를 생성하는 벡터 생성부;
    기설정된 예외조건에 해당하는 상기 벡터를 필터링하는 필터부; 및
    상기 벡터의 발송 패턴을 분석한 후 KL_Divergence 값을 이용하여 클러스터링하고, 상기 클러스터링을 통해 생성된 각 클러스터 간의 거리가 기설정된 임계치 이하인 연결링크를 삭제하여 최종 연결된 클러스터 내의 벡터들을 통합하여 통합된 벡터를 생성하는 통합부
    로 구성되는 봇넷 행동패턴 분석 시스템.
  2. 청구항 1에 있어서,
    상기 로그정보는 메일의 발송 시간, 발송 IP 주소, target URL link 중 적어도 하나인 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  3. 청구항 1에 있어서,
    상기 추출부는 상기 로그정보를 해쉬(hash) 값으로 변환하여 제공하는 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  4. 청구항 3에 있어서,
    상기 벡터 생성부는 상기 해쉬 값이 일치하는 데이터끼리 묶어 벡터를 생성하는 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  5. 청구항 1에 있어서,
    상기 예외 조건은 상기 벡터 내에 포함된 IP의 개수가 기설정된 임계치 이하인 경우, 상기 벡터의 활동 날짜가 비연속인 경우 또는 상기 벡터에 속한 IP의 분포가 국가나 ISP가 기설정된 숫자 미만인 경우 중 적어도 하나를 포함하는 것을 특징으로 봇넷 행동패턴 분석 시스템.
  6. 청구항 1에 있어서,
    서로 다른 2개의 벡터 사이에 상관관계를 IP 분포와, mail 분포와, IP histogram을 이용하여 상기 KL_Divergence 값을 생성하며, 상기 KL_Divergence 값을 근거로 각 벡터 사이의 거리에 대한 KL_Divergence matrix를 생성하는 클러스터링부를 더 포함하는 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  7. 청구항 6에 있어서,
    상기 KL_Divergence 값은
    .
    Figure 112009012532062-pat00008
    에 의해 KL_DFinal 값으로 구해지며,
    상기 KL_DIP는 IP 분포를 가지고 구한 KL_Divergence 값이며, 상기 KL_DMAIL은 Mail 분포를 가지고 구한 KL_Divergence 값이며, KL_DIPH는 IP Historgram 값을 가지고 구한 KL_Divergence 값인 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  8. 청구항 6에 있어서,
    상기 통합부는 상기 KL_Divergence matrix를 근거로 계층적인 클러스터링을 수행하고, 상기 클러스터링을 통해 생성된 클러스터간의 거리값이 상기 임계치 이하인 연결링크를 삭제하는 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  9. 청구항 1에 있어서,
    상기 통합된 벡터 사이의 중복 IP 비율을 jaccard dissimilarity를 이용하여 계산하여 상기 통합부에 제공하는 패턴 분석부를 더 포함하는 봇넷 행동패턴 분석 시스템.
  10. 청구항 9에 있어서,
    상기 jaccard dissimilarity는 임의의 통합된 벡터 A와 B 사이의 중복 IP 비율을 의미하며,
    Figure 112009012532062-pat00009
    에 의해 구해지는 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  11. 청구항 9에 있어서,
    상기 패턴 분석부는 구해진 상기 중복 IP 비율을 상기 통합된 벡터의 수가 m일 경우 m×m matrix를 생성하여 상기 통합부에 제공하는 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  12. 청구항 11에 있어서,
    상기 통합부는 구해진 상이한 통합된 벡터 사이의 상기 중복 IP 비율을 상기 통합된 벡터의 수가 m일 경우 m×m matrix로 생성하고, 상기 m×m matrix를 근거로 상기 각 통합된 벡터 사이의 상기 jaccard dissimilarity 값을 기설정된 임계치를 기준으로 삭제하여, 상기 각 통합된 벡터가 하나의 노드가 되고 상기 노드 사이를 연결하는 연결링크를 jaccard dissimilarity 값으로 하여 시간-IP개수 그래프를 생성하고, 상기 jaccard dissimilarity가 큰 값으로부터 순차적으로 잘라내어 두 개의 컴포넌트(component)로 그래프가 분리되는 순간의 각 컴포넌트 사이의 겹침비율이 기설정된 비율 이상인 경우 각 컴포넌트를 완전히 분리하여 각 컴포넌트에 포함되어 있는 통합된 벡터의 정보를 취합하여 최종 봇넷 정보를 생성하는 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  13. 청구항 12에 있어서,
    상기 IP 중복 비율이 0에서 1 사이일때, 상기 jaccard dissimilarity 값에 대한 상기 기설정된 임계치는 0.90~0.99 사이에서 정해진 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  14. 청구항 12에 있어서,
    상기 기설정된 비율은 상기 그래프의 시간 축을 기준으로 30%인 것을 특징으 로 하는 봇넷 행동패턴 분석 시스템.
  15. 청구항 12에 있어서,
    상기 통합부는 상기 기설정된 비율 미만인 경우 분리된 컴포넌트 사이의 발송패턴을 비교하여 상기 컴포넌트의 분리여부를 결정하는 것을 특징으로 하는 봇넷 행동패턴 분석 시스템.
  16. 적어도 하나 이상의 메일 서버로부터 이메일 로그를 수신받아 봇넷의 행동패턴을 분석하는 방법에 있어서,
    추출부가 로우 데이터에서 로그정보를 추출하는 제 1단계;
    벡터 생성부가 추출된 로그정보가 일치하는 데이터끼리 묶어 벡터를 생성하는 제 2단계;
    필터부가 기설정된 예외조건에 해당하는 상기 벡터를 필터링하는 제 3단계;
    통합부가 상기 벡터의 발송 패턴을 분석한 후 KL_Divergence 값을 이용하여 클러스터링하는 제 4단계; 및
    상기 통합부가 상기 제 4단계의 결과로 생성된 각 클러스터간의 거리를 상기 KL_Divergence 값을 기준으로 기설정된 임계치 이하인 경우 클러스터간의 연결링크를 삭제하고, 최종 연결된 상이한 클러스터 내의 벡터들을 통합하여 통합된 벡터를 생성하는 제 5단계
    로 구성되는 봇넷 행동패턴 분석 방법.
  17. 청구항 16에 있어서,
    상기 로그정보는 메일의 발송 시간, 발송 IP 주소, target URL link 중 적어도 하나인 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
  18. 청구항 16에 있어서,
    상기 제 1단계는 상기 로그정보를 해쉬 값으로 변환하여 제공하는 단계를 더 포함하는 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
  19. 청구항 18에 있어서,
    상기 제 2단계는 상기 해쉬 값이 일치하는 데이터끼리 묶어 벡터를 생성하는 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
  20. 청구항 16에 있어서,
    상기 예외 조건은 상기 벡터 내에 포함된 IP의 개수가 기설정된 임계치 이하인 경우, 상기 벡터의 활동 날짜가 비연속인 경우 또는 상기 벡터에 속한 IP의 분포가 국가나 ISP가 기설정된 숫자 미만인 경우 중 적어도 하나를 포함하는 것을 특징으로 봇넷 행동패턴 분석 방법.
  21. 청구항 16에 있어서,
    상기 제 4단계는 서로 다른 2개의 벡터 사이에 상관관계를 IP 개수의 분포, mail의 개수, IP histogram을 이용하여 상기 KL_Divergence 값을 생성하는 단계를 더 포함하는 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
  22. 청구항 21에 있어서,
    상기 KL_Divergence 값은
    Figure 112009012532062-pat00010
    에 의해 KL_DFinal 값으로 구해지며,
    상기 KL_DIP는 상기 IP 개수의 분포를 가지고 구한 KL_Divergence 값이며, 상기 KL_DMAIL은 상기 mail의 개수 분포를 가지고 구한 KL_Divergence 값이며, KL_DIPH는 IP Historgram 값을 가지고 구한 KL_Divergence 값인 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
  23. 청구항 21에 있어서,
    상기 제 5단계는 상기 KL_Divergence 값을 근거로 각 벡터 사이의 거리에 대한 matrix를 생성하여 상기 matrix를 근거로 계층적인 클러스터링을 수행하고, 상기 클러스터링을 통해 생성된 클러스터간의 거리값이 상기 임계치 이하인 상기 클러스터간의 연결링크를 삭제하는 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
  24. 청구항 16에 있어서,
    상기 통합된 벡터 사이의 중복 IP 비율을 jaccard dissimilarity를 이용하여 계산하는 제 6단계를 더 포함하는 봇넷 행동패턴 분석 방법.
  25. 청구항 24에 있어서,
    상기 jaccard dissimilarity는 임의의 통합된 벡터 A와 B 사이의 중복 IP 비율을 의미하며,
    Figure 112009012532062-pat00011
    에 의해 구해지는 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
  26. 청구항 24에 있어서,
    상기 제 6단계의 결과로 구해진 상이한 통합된 벡터 사이의 상기 중복 IP 비율을 상기 통합된 벡터의 수가 m일 경우 m×m matrix로 생성하고, 상기 m×m matrix를 근거로 상기 각 통합된 벡터 사이의 상기 jaccard dissimilarity 값을 기설정된 임계치를 기준으로 삭제하는 제 7단계; 및
    상기 통합된 벡터 사이를 연결하는 연결링크를 jaccard dissimilarity 값으로 하여 시간-IP개수 그래프를 생성하고, 상기 jaccard dissimilarity가 큰 값으로부터 순차적으로 잘라내어 두 개의 컴포넌트(component)로 그래프가 분리되는 순간의 각 컴포넌트 사이의 겹침비율이 기설정된 비율 이상인 경우 각 컴포넌트를 완전히 분리하여 각 컴포넌트에 포함되어 있는 통합된 벡터의 정보를 취합하여 최종 봇넷 정보를 생성하는 제 8단계
    를 더 포함하는 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
  27. 청구항 26에 있어서,
    상기 IP 중복 비율이 0에서 1 사이일때, 상기 jaccard dissimilarity 값에 대한 상기 기설정된 임계치는 0.90~0.99 사이에서 정해진 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
  28. 청구항 26에 있어서,
    상기 제 8단계에서 상기 기설정된 비율은 상기 그래프의 시간 축을 기준으로 30%인 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
  29. 청구항 26에 있어서,
    상기 제 8단계는 상기 기설정된 비율 미만인 경우 분리된 컴포넌트 사이의 발송패턴을 비교하여 상기 컴포넌트의 분리여부를 결정하는 것을 특징으로 하는 봇넷 행동패턴 분석 방법.
KR1020090017303A 2009-02-27 2009-02-27 봇넷 행동 패턴 분석 시스템 및 방법 KR101048991B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090017303A KR101048991B1 (ko) 2009-02-27 2009-02-27 봇넷 행동 패턴 분석 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090017303A KR101048991B1 (ko) 2009-02-27 2009-02-27 봇넷 행동 패턴 분석 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20100098241A KR20100098241A (ko) 2010-09-06
KR101048991B1 true KR101048991B1 (ko) 2011-07-12

Family

ID=43005249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090017303A KR101048991B1 (ko) 2009-02-27 2009-02-27 봇넷 행동 패턴 분석 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101048991B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101109669B1 (ko) * 2010-04-28 2012-02-08 한국전자통신연구원 좀비 식별을 위한 가상 서버 및 방법과, 가상 서버에 기반하여 좀비 정보를 통합 관리하기 위한 싱크홀 서버 및 방법
KR101224994B1 (ko) * 2010-12-24 2013-01-22 한국인터넷진흥원 봇넷 탐지 정보의 분석 시스템 및 방법
KR101535503B1 (ko) * 2014-02-25 2015-07-09 한국인터넷진흥원 상용 이메일 기반 악성코드 감염단말 탐지 방법
US9749357B2 (en) 2015-09-05 2017-08-29 Nudata Security Inc. Systems and methods for matching and scoring sameness
KR101933712B1 (ko) * 2017-07-19 2019-04-05 주식회사 삼오씨엔에스 개인정보 보안제품 통합관제 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030069240A (ko) * 2002-02-19 2003-08-27 한국전자통신연구원 분산된 침입탐지 에이전트와 관리자 시스템을 이용한네트워크 기반 침입자 역추적 시스템 및 그 방법
US20080307526A1 (en) 2007-06-07 2008-12-11 Mi5 Networks Method to perform botnet detection
KR20090009622A (ko) * 2007-07-20 2009-01-23 한국전자통신연구원 중심점 분할 기법을 이용한 로그 기반의 역추적 시스템 및방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030069240A (ko) * 2002-02-19 2003-08-27 한국전자통신연구원 분산된 침입탐지 에이전트와 관리자 시스템을 이용한네트워크 기반 침입자 역추적 시스템 및 그 방법
US20080307526A1 (en) 2007-06-07 2008-12-11 Mi5 Networks Method to perform botnet detection
KR20090009622A (ko) * 2007-07-20 2009-01-23 한국전자통신연구원 중심점 분할 기법을 이용한 로그 기반의 역추적 시스템 및방법

Also Published As

Publication number Publication date
KR20100098241A (ko) 2010-09-06

Similar Documents

Publication Publication Date Title
Haddadi et al. Benchmarking the effect of flow exporters and protocol filters on botnet traffic classification
CN108183888B (zh) 一种基于随机森林算法的社会工程学入侵攻击路径检测方法
Khamphakdee et al. Improving Intrusion Detection System Based on Snort Rules for Network Probe Attacks Detection with Association Rules Technique of Data Mining.
CN111259204A (zh) 基于图算法的apt检测关联分析方法
Wang et al. Machine learning based cross-site scripting detection in online social network
Khan et al. A hybrid technique to detect botnets, based on P2P traffic similarity
Zhang et al. BotDigger: Detecting DGA Bots in a Single Network.
Krishnaveni et al. Ensemble approach for network threat detection and classification on cloud computing
KR101048991B1 (ko) 봇넷 행동 패턴 분석 시스템 및 방법
Burnap et al. Real-time classification of malicious URLs on Twitter using machine activity data
CN110198303A (zh) 威胁情报的生成方法及装置、存储介质、电子装置
CN106302450A (zh) 一种基于ddos攻击中恶意地址的检测方法及装置
Zhang et al. Toward unsupervised protocol feature word extraction
Esposito et al. Evaluating pattern recognition techniques in intrusion detection systems
CN110188538A (zh) 采用沙箱集群检测数据的方法及装置
Calais et al. A campaign-based characterization of spamming strategies
CN110149318A (zh) 邮件元数据的处理方法及装置、存储介质、电子装置
Abraham et al. Approximate string matching algorithm for phishing detection
Ibrahim et al. Performance comparison of intrusion detection system using three different machine learning algorithms
Bharathula et al. Equitable machine learning algorithms to probe over p2p botnets
EP3379772B1 (en) Analysis method, analysis device, and analysis program
Dwivedi et al. Event correlation for intrusion detection systems
KR101048159B1 (ko) 봇넷 탐지 및 차단 시스템 및 방법
CN110188537A (zh) 数据的分离存储方法及装置、存储介质、电子装置
Wang et al. Flowrank: Ranking netflow records

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
FPAY Annual fee payment

Payment date: 20140625

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150513

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190708

Year of fee payment: 9