KR20200090084A - 침입 감지 방법 및 장치 - Google Patents

침입 감지 방법 및 장치 Download PDF

Info

Publication number
KR20200090084A
KR20200090084A KR1020190090235A KR20190090235A KR20200090084A KR 20200090084 A KR20200090084 A KR 20200090084A KR 1020190090235 A KR1020190090235 A KR 1020190090235A KR 20190090235 A KR20190090235 A KR 20190090235A KR 20200090084 A KR20200090084 A KR 20200090084A
Authority
KR
South Korea
Prior art keywords
data packet
intrusion
session
data
intrusion detection
Prior art date
Application number
KR1020190090235A
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 KR1020190090235A priority Critical patent/KR20200090084A/ko
Publication of KR20200090084A publication Critical patent/KR20200090084A/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
    • H04L61/2061
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5061Pools of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Landscapes

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

Abstract

세션 기반의 침입 감지 방법 및 장치가 개시된다. 침입 감지 방법은 데이터 패킷을 수신하는 단계; 상기 수신한 데이터 패킷에 침입이 발생하였는지 여부를 감지하는 단계; 상기 침입이 발생한 것으로 감지된 경우, 상기 데이터 패킷의 데이터 플래그에 상기 침입 발생에 대응하는 데이터 플래그 값을 할당하는 단계; 및 상기 침입이 발생한 데이터 패킷의 세션 ID(identification; ID)에 대응되는 데이터 패킷들을 재조합하는 단계를 포함한다.

Description

침입 감지 방법 및 장치{METHOD AND APPARATUS FOR DETECTING INTRUSION}
아래 실시예들은 침입 감지 기술에 관한 것이다.
인터넷 서비스에서 침입 감지 시스템은 유입되는 데이터 패킷을 검사하여 해당 데이터 패킷에 대한 침입 또는 공격이 발생된 것을 확인하는 경우, 해당 데이터 패킷을 폐기하거나, 해당 데이터 패킷에 대한 정보를 데이터베이스화함으로써 추후 분석을 위한 데이터를 확보할 수 있다.
만약 공격 또는 침입을 위한 데이터 코드의 길이가 긴 경우, 이전 방식을 토대로 한다면, 공격을 받은 데이터 패킷에 드러나는 일부 데이터 코드만을 분석할 수 있고, 해당 데이터 패킷 이전 또는 이후의 데이터 패킷에 대한 분석을 진행할 수 없어 공격을 위한 데이터 코드에 대한 정확한 분석이 제한될 수 있다.
일 실시예에 따른 세션 기반의 침입 감지 방법은 데이터 패킷을 수신하는 단계; 상기 수신한 데이터 패킷에 침입이 발생하였는지 여부를 감지하는 단계; 상기 침입이 발생한 것으로 감지된 경우, 상기 데이터 패킷의 데이터 플래그에 상기 침입 발생에 대응하는 데이터 플래그 값을 할당하는 단계; 및 상기 침입이 발생한 데이터 패킷의 세션 ID(identification; ID)에 대응되는 데이터 패킷들을 재조합하는 단계를 포함할 수 있다.
일 실시예에 따른 세션 기반의 침입 감지 방법은 상기 데이터 패킷을 전처리하는 단계를 더 포함하고, 상기 데이터 패킷을 전처리하는 단계는 상기 데이터 패킷에 대한 세션 ID를 생성하는 단계; 상기 세션 ID가 세션 풀(session pool)에 존재하는지 여부를 결정하는 단계; 및 상기 세션 ID가 상기 세션 풀에 존재하는 것으로 결정된 경우, 상기 데이터 패킷 및 상기 세션 ID의 관계에 기초하여, 상기 세션 풀 상의 상기 세션 ID에 대한 정보를 업데이트하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 세션 ID를 생성하는 단계는 상기 데이터 패킷에 대한 해쉬 값을 생성하는 단계; 및 상기 해쉬 값에 기초하여 상기 세션 ID를 생성하는 단계를 포함할 수 있다.
일 실시예에 따른 세션 기반의 침입 감지 방법에서 상기 세션 ID가 상기 세션 풀에 존재하지 않는 것으로 결정된 경우, 상기 세션 ID를 상기 세션 풀에 등록하는 단계를 더 포함할 수 있다.
일 실시예에 따른 상기 감지하는 단계는 미리 정의된 시그니처가 상기 데이터 패킷의 페이로드와 매칭되는지 여부를 결정하는 단계; 및 상기 시그니처가 상기 데이터 패킷의 페이로드에 매칭되는 것으로 결정된 경우, 매칭 결과에 기초하여 상기 데이터 패킷의 데이터 플래그에 상기 침입 발생에 대응하는 데이터 플래그 값을 할당하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 재조합하는 단계는 상기 세션 ID에 대응되는 데이터 패킷들을 검색하는 단계; 상기 검색된 데이터 패킷의 데이터 플래그 값들에 기초하여 누적 값을 산출하는 단계; 및 상기 누적 값이 미리 설정된 조건을 만족하는 경우, 상기 세션 ID에 대응되는 데이터 패킷들을 재조합하는 단계를 포함할 수 있다.
일 실시예에 따른 세션 기반의 침입 감지 방법은 데이터 패킷을 수신하는 단계; 상기 데이터 패킷에 침입이 발생하였는지 여부를 감지하는 단계; 및 상기 침입이 발생한 것으로 감지된 경우, 상기 데이터 패킷 및 상기 데이터 패킷과 동일한 세션에 대응되는 다른 데이터 패킷들을 데이터베이스에 저장하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 저장하는 단계는 상기 데이터 패킷 및 상기 다른 데이터 패킷들을 재조합하는 단계; 및 상기 재조합된 데이터 패킷들을 상기 데이터베이스에 저장하는 단계를 포함할 수 있다.
일 실시예에 따른 침입 감지 방법에서 상기 침입이 발생한 것으로 감지된 경우, 상기 데이터 패킷에 포함된 데이터 플래그에 상기 침입에 대응하는 데이터 플래그 값을 할당하는 단계를 더 포함할 수 있다.
일 실시예에 따른 세션 기반으로 데이터 패킷에 침입을 감지하는 침입 감지 장치는 메모리 및 프로세서를 포함하고, 상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들(instructions)을 저장하고, 상기 프로세서는 데이터 패킷을 수신하고, 상기 수신된 데이터 패킷에 침입이 발생하였는지 여부를 감지하고, 상기 침입이 발생한 것으로 감지된 경우, 상기 데이터 패킷의 데이터 플래그에 상기 침입의 발생에 대응하는 데이터 플래그 값을 할당하고, 상기 침입이 발생한 데이터 패킷의 세션 ID(identification; ID)에 대응되는 데이터 패킷들을 재조합할 수 있다.
상기 프로세서는, 상기 데이터 패킷에 대한 해쉬 값을 생성하고, 상기 해쉬 값에 기초하여 상기 세션 ID를 생성할 수 있다.
상기 프로세서는, 상기 데이터 패킷에 대한 세션 ID를 생성하고, 상기 데이터 패킷을 패킷 풀(packet pool)에 등록하고, 상기 세션 ID가 세션 풀(session pool)에 존재하는지 여부를 결정하고, 상기 세션 ID가 상기 세션 풀에 존재하는 것으로 결정된 경우, 상기 데이터 패킷 및 상기 세션 ID의 관계에 기초하여, 상기 세션 풀 상의 상기 세션 ID에 대한 정보를 업데이트할 수 있다.
상기 프로세서는, 미리 정의된 시그니처가 상기 데이터 패킷의 페이로드와 매칭되는지 여부를 결정하고, 상기 시그니처가 상기 데이터 패킷의 페이로드에 매칭되는 것으로 결정된 경우, 매칭 결과에 기초하여 상기 데이터 패킷의 데이터 플래그에 상기 매칭 결과에 대응하는 데이터 플래그 값을 상기 데이터 패킷의 데이터 플래그에 할당할 수 있다.
상기 프로세서는, 상기 침입이 발생한 것으로 감지된 경우, 상기 세션 ID에 대응되는 데이터 패킷들을 재조합하고, 상기 재조합된 데이터 패킷들을 데이터베이스에 저장할 수 있다.
상기 프로세서는, 상기 세션 ID에 대응되는 데이터 패킷들을 검색하고, 상기 검색된 데이터 패킷의 데이터 플래그 값들에 기초하여 누적 값을 산출하고, 상기 누적 값이 미리 설정된 조건을 만족하는 경우, 상기 세션 ID에 대응되는 데이터 패킷들을 재조합할 수 있다.
일 실시예에 따른 세션 기반의 침입 감지 장치는 메모리 및 프로세서를 포함하고, 상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들(instructions)을 저장하고, 상기 프로세서는 데이터 패킷을 수신하고, 상기 데이터 패킷에 침입이 발생하였는지 여부를 감지하고, 상기 침입이 발생한 것으로 감지된 경우, 상기 데이터 패킷 및 상기 데이터 패킷과 동일한 세션에 대응되는 다른 데이터 패킷들을 데이터베이스에 저장할 수 있다.
상기 프로세서는, 상기 데이터 패킷 및 상기 다른 데이터 패킷들을 재조합하고, 상기 재조합된 데이터 패킷들을 상기 데이터베이스에 저장할 수 있다.
상기 프로세서는, 상기 침입이 발생한 것으로 감지된 경우, 상기 데이터 패킷의 데이터 플래그 값을 변경할 수 있다.
도 1은 일 실시예에 침입 감지 시스템의 동작을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 침입 감지 장치에서 사용되는 데이터 패킷의 구조를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 침입 감지 장치가 수행하는 침입 감지 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 침입 감지 장치가 수신한 데이터 패킷에 대한 전처리를 수행하는 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따른 침입 감지 장치가 데이터 패킷에 대한 침입 발생 여부를 감지하는 방식을 설명하기 위한 흐름도이다.
도 6은 일 실시예에 따른 침입 감지 장치가 데이터 패킷에 대한 후처리를 수행하는 방식을 설명하기 위한 흐름도이다.
도 7은 일 실시예에 따른 침입 감지 장치가 침입이 발생한 데이터 패킷을 감지하는 방식을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 침입 감지 장치의 전체적인 구성을 도시하는 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 침입 감지 시스템의 동작을 설명하기 위한 도면이다.
침입 감지 시스템은 네트워크를 통해 수집되는 데이터 패킷을 모니터링하여, 각각의 데이터 패킷에 외부의 침입(예를 들어, 악성 코드 등을 통한 공격)이 발생하였는지 여부를 감지하는 시스템을 의미할 수 있다. 침입 감지 시스템은 사전에 알려진 시그니처(signature)와 데이터 패킷의 페이 로드가 매칭되는지 여부에 기초하여 데이터 패킷에 침입이 발생하였는지 여부를 감지할 수 있다.
침입 감지 시스템은 데이터 패킷에 침입이 감지되는 경우, 해당 데이터 패킷을 데이터베이스에 저장할 수 있다.
(a)에 도시된 기존의 침입 감지 시스템(110)은 유입되는 데이터 패킷들(111)을 미리 정의된 시그니처에 매칭함으로써 침입이 발생된 데이터 패킷(112)을 감지하고, 침입이 감지된 데이터 패킷(112)을 데이터베이스에 저장할 수 있다.
침입 감지 시스템(110)은 침입이 감지된 데이터 패킷(112)을 기준으로 데이터 처리를 수행하고, 침입이 감지된 데이터 패킷(112)만을 데이터베이스에 저장한다. 침입 감지 시스템(110)은 데이터 패킷(112)이 수신되지 직전에 수신된 데이터 패킷 또는 직후에 수신된 데이터 패킷은 고려하지 않으므로, 침입 감지 시스템(110)을 통해 저장된 데이터를 통한 침입에 대한 분석은 제한이 따를 수 있다. 왜냐하면, 침입이 발생된 데이터 패킷(112)만을 분석하는 경우, 침입 과정에서 사용된 데이터 코드의 일부분 만을 확인할 수 있기 때문이다.
일 실시예에 따른 침입 감지 시스템(120)은 유입되는 데이터 패킷들(121) 중 침입이 감지된 데이터 패킷(122)과 더불어 데이터 패킷(122)과 유사한 시기에 유입된 데이터 패킷들(123, 124, 125)에 대한 데이터를 데이터베이스에 저장할 수 있다. 침임 감지 시스템(120)을 통해 저장된 데이터를 통해 침입에 대한 분석은 보다 상세하게 이루어질 수 있다.
일 실시예에 따른 침입 감지 시스템(120)은 세션(session) 단위로 수신한 데이터 패킷을 처리할 수 있다. 예를 들어, 침입 감지 시스템(120)은 미리 설정된 시간 동안에 수신되는 데이터 패킷을 동일한 세션에 대응되는 데이터 패킷으로 결정할 수 있다.
침입 감지 시스템(120)은 특정 세션에 대응되는 기간 동안 수신되는 데이터 패킷들(122, 123, 124, 125)을 메모리에 저장하고, 각각의 데이터 패킷들(122, 123, 124, 125)에 대한 침입 감지를 수행할 수 있다.
침입 감지 시스템(120)은 동일한 세션에 대응되는 데이터 패킷들(122, 123, 124, 125) 중 적어도 하나의 데이터 패킷(122)에 침입이 감지된 경우, 해당 세션에 대응되는 모든 데이터 패킷들을 데이터베이스에 저장할 수 있다.
침입 감지 시스템(120)은 세션에 대응되는 기간 동안 수집된 데이터 패킷들(122, 123, 124, 125) 모두에 대해 침입이 감지되지 않은 경우, 해당 세션에 대응하여 메모리에 저장된 데이터 패킷들(122, 123, 124, 125)을 폐기할 수 있다.
침입 감지 시스템(120)은 침입이 감지된 데이터 패킷(122)뿐만 아니라 데이터 패킷(122)이 수신되는 시점의 이전 또는 이후에 수신한 데이터 패킷들(123, 124, 125)에 대한 정보를 제공함으로써 데이터 패킷에 대한 침입을 보다 용이하게 분석할 수 있는 수단을 제공할 수 있다.
도 2는 일 실시예에 따른 침입 감지 장치에서 사용되는 데이터 패킷의 구조를 설명하기 위한 도면이다.
일 실시예에 따른 침입 감지 장치는 수신되는 데이터 패킷(211, 212, 213, 214, 215, 216, 217)을 세션(210) 단위로 식별할 수 있고, 세션 단위로 식별된 데이터 패킷(211, 212, 213, 214, 215, 216, 217)에 기초하여 데이터 처리를 수행할 수 있다. 침입 감지 장치는 수신한 데이터 패킷(211, 212, 213, 214, 215, 216, 217)을 메모리에 저장하고, 저장된 데이터 패킷(211, 212, 213, 214, 215, 216, 217) 각각에 대한 침입을 감지할 수 있다. 침입 감지 장치는 세션(210) 동안 수신된 데이터 패킷(211, 212, 213, 214, 215, 216, 217) 모두에 대해 침입이 감지되지 않은 경우 메모리에 저장된 데이터 패킷(211, 212, 213, 214, 215, 216, 217)을 폐기할 수 있다.
일 실시예에 따르면, 세션(210)은 세션 ID(Session ID; SSID)에 기초하여 식별될 수 있다. 세션 ID는 세션(210)에 포함되는 데이터 패킷(211, 212, 213, 214, 215, 216, 217)에 포함된 데이터에 기초하여 생성될 수 있다. 예를 들어, 침입 감지 장치는 각각의 데이터 패킷(211, 212, 213, 214, 215, 216, 217) 각각의 5-tuple 정보에 기초하여 해쉬 값을 생성하고, 생성된 해쉬 값에 기초하여 데이터 패킷(211, 212, 213, 214, 215, 216, 217) 각각에 대응되는 세션 ID를 생성할 수 있다.
일 실시예에 따르면, 각각의 데이터 패킷(211, 212, 213, 214, 215, 216, 217)은 침입이 감지되었는지 여부와 관련한 정보를 나타내는 데이터 플래그를 포함할 수 있다. 데이터 플래그 값은 미리 정의된 시그니처와 데이터 패킷의 페이로드 사이의 패턴 매칭에 기초하여 할당될 수 있다. 예를 들어, 데이터 패킷의 페이로드와 미리 정의된 1개의 시그니처가 매칭되는 경우, 데이터 플래그 값은 '1'로 할당될 수 있고, 데이터 패킷의 페이로드와 매칭되는 시그니처가 존재하지 않는 경우, '0'에 해당하는 기본 값으로 데이터 플래그 값이 할당될 수 있다.
세션(210)에 대응되는 데이터 패킷(211, 212, 213, 214, 215, 216, 217) 중 적어도 하나의 데이터 패킷(214)에 대해 침입이 감지된 경우, 침입 감지 장치는 세션(210)에 대응하는 모든 데이터 패킷(211, 212, 213, 214, 215, 216, 217)을 데이터베이스에 저장할 수 있다. 침입 감지 장치는 데이터 패킷(211, 212, 213, 214, 215, 216)을 저장하는 과정에서 데이터 패킷에 대한 후처리를 수행할 수 있고, 구체적인 후처리 방식은 이후 첨부되는 도면을 통해 보다 상세히 설명된다.
도 3은 일 실시예에 따른 침입 감지 장치가 수행하는 침입 감지 방법을 설명하기 위한 흐름도이다.
일 실시예에 따르면, 침입 감지 장치는 단계(310)에서 데이터 패킷을 수신할 수 있다. 침입 감지 장치는 단계(310)를 통해 수신한 데이터 패킷에 대한 전처리를 수행할 수 있다. 데이터 패킷에 대한 전처리는 데이터 패킷에 대응되는 세션 ID를 생성하고, 세션 ID에 대한 정보를 업데이트하는 과정으로, 구체적인 동작은 도 4를 통해 보다 상세하게 설명된다.
침입 감지 장치는 단계(330)에서 수신한 데이터 패킷에 침입이 발생하였는지 여부를 감지할 수 있다. 예를 들어, 침입 감지 장치는 미리 정의된 시그니처와 데이터 패킷의 페이로드 사이의 패턴 매칭을 통해 데이터 패킷에 침입이 발생되었는지 여부를 결정할 수 있다.
단계(350)에서의 침입 감지 장치는 단계(330)의 감지 결과에 기초하여 데이터 패킷에 포함된 데이터 플래그에 감지 결과에 대응되는 데이터 플래그 값을 할당할 수 있다. 예를 들어, 침입 감지 장치는 데이터 패킷에 침입이 발생되지 않은 것으로 감지된 경우, 데이터 패킷의 데이터 플래그 값을 '0'으로 할당할 수 있다. 침입 감지 장치는 1개의 시그니처에 데이터 패킷이 매칭되는 경우, 데이터 패킷의 데이터 플래그 값에 '1'을 할당할 수 있다.
단계(370)에서 침입 감지 장치는 데이터 플래그 값이 할당된 데이터 패킷에 대한 후처리를 수행할 수 있다.
구체적으로, 침입 감지 장치는 수신한 데이터 패킷에 침입이 발생한 것으로 감지된 경우, 데이터 패킷의 세션 ID에 대응되는 데이터 패킷들을 재조합하고, 재조합된 데이터 패킷들을 데이터베이스에 저장할 수 있다. 데이터베이스에 저장된 재조합된 데이터 패킷들은 이후 침입에 대한 분석을 수행하는 과정에서 제공될 수 있다. 침입 감지 장치가 제공하는 침입이 발생한 것으로 감지된 데이터 패킷 및 해당 데이터 패킷 전후 시점에 수신된 데이터 패킷을 통해 보다 효과적인 침입 분석이 수행될 수 있다. 데이터 패킷들을 재조합하는 방식은 도 6을 통해 보다 상세하게 설명된다.
또한, 침입 감지 장치는 일 세션 동안 수집되어 동일한 세션 ID에 대응되는 모든 데이터 패킷에서 침입이 감지되지 않은 경우, 해당 세션 ID에 대응되는 데이터 패킷을 데이터베이스에 저장하지 않고 폐기할 수 있다. 이를 통해 침입 감지 장치는 메모리 리소스를 보다 효율적으로 사용할 수 있다.
도 4는 일 실시예에 따른 침입 감지 장치가 수신한 데이터 패킷에 대한 전처리를 수행하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따르면, 침입 감지 장치는 단계(320)를 통해 수신한 데이터 패킷에 대한 전처리를 수행할 수 있다. 구체적으로, 침입 감지 장치는 단계(321)에서 침입 감지 장치는 수신한 데이터 패킷에 대한 세션 ID를 생성할 수 있다. 침입 감지 장치는 데이터 패킷에 포함된 정보를 통해 해쉬 값을 생성하고, 생성된 해쉬 값을 해당 데이터 패킷의 세션 ID로 설정할 수 있다. 예를 들어, 침입 감지 장치는 데이터 패킷의 5 튜플(tuple) 정보에 기초하여 해쉬 값을 생성할 수 있다.
단계(322)에서 침입 감지 장치는 데이터 패킷을 패킷 풀(packet pool)에 등록할 수 있다. 패킷 풀은 수신되는 데이터 패킷을 등록하기 위해 메모리 또는 데이터베이스에 미리 설정된 영역일 수 있다.
단계(323)에서 침입 감지 장치는 생성된 세션 ID가 세션 풀(Session Pool)에 존재하는지 여부를 결정할 수 있다. 세션 풀은 세션 ID를 등록하기 위해 메모리 또는 데이터베이스에 설정된 영역일 수 있다.
단계(323)에서 생성된 세션 ID가 세션 풀에 존재하지 않는 경우, 침입 감지 장치는 단계(324)를 통해 데이터 패킷에 대해 생성된 세션 ID를 세션 풀에 등록할 수 있다. 침입 감지 장치는 세션 ID를 세션 풀에 등록한 후, 단계(325)를 통해 세션 상태를 업데이트할 수 있다. 세션 상태는 세션 ID에 대응되는 데이터 패킷에 대한 정보에 기초하여 결정될 수 있다. 또한, 세션 상태는 TCP Flag 값에 기초하여 결정되고, TCP flag 값은 RFC(Request For Comments; RFC) 규약에 따라 정의될 수 있다.
단계(323)에서 생성된 세션 ID가 세션 풀에 존재하는 경우, 침입 감지 장치는 단계(325)를 통해 세션 상태를 업데이트할 수 있다. 예를 들어, 침입 감지 장치는 단계(322)를 통해 등록된 데이터 패킷이 세션 풀에 미리 저장된 세션 ID에 대응되도록 세션 상태를 업데이트할 수 있다.
도 5는 일 실시예에 따른 침입 감지 장치가 수신한 데이터 패킷에 대한 침입 발생 여부를 감지하는 방식을 설명하기 위한 흐름도이다.
도 5를 참조하면, 침입 감지 장치는 단계(331)를 통해 미리 정의된 시그니처와 데이터 패킷의 페이로드 사이의 패턴 매칭을 수행할 수 있다.
단계(331)에서의 매칭 결과에 기초하여, 단계(333)에서 침입 감지 장치는 데이터 패킷에 침입 발생 여부를 감지할 수 있다. 예를 들어, 침입 감지 장치는 시그니처를 통해 미리 정의된 패턴(예를 들어 유해 공격과 관련된 패턴)이 패킷의 페이로드에 포함되어 있는지 여부를 바이트 단위로 비교하고, 시그니처를 통해 미리 정의된 패턴이 데이터 패킷의 페이로드에 포함되어 있는 경우, 해당 데이터 패킷에 침입이 발생한 것으로 감지할 수 있다.
도 6은 일 실시예에 따른 침입 감지 장치가 데이터 패킷에 대한 후처리를 수행하는 방식을 설명하기 위한 흐름도이다.
일 실시예에 따르면, 침입 감지 장치는 데이터 패킷에 침입이 발생한 것으로 감지된 경우, 세션 ID에 대응되는 데이터 패킷들을 재조합하고, 재조합된 데이터 패킷들을 데이터베이스에 저장할 수 있다.
일 실시예에 따르면, 침입 감지 장치는 단계(371)에서 침입이 감지된 데이터 패킷의 세션 ID에 대응되는 세션이 미리 설정된 조건을 만족하는지 여부를 결정할 수 있다. 예를 들어, 미리 결정된 조건은 세션의 상태가 Fin(Finish) Flag인 것일 수 있다. Fin Flag는 세션이 종료된 상태임을 나타내는 정보일 수 있다.
단계(371)에서 세션이 미리 설정된 조건을 만족하는 경우, 침입 감지 장치는 단계(372)를 통해 해당 세션 ID에 대응되는 데이터 패킷들을 검색할 수 있다.
침입 감지 장치는 단계(373)를 통해 검색된 패킷들에 대한 데이터 플래그의 누적 값을 산출할 수 있다. 예를 들어, 침입 감지 장치는 'A'에 해당하는 세션 ID에 대응되는 데이터 패킷이 6개 존재하고, 그 중, 두 개의 데이터 패킷의 데이터 플래그 값이 '1'이고, 나머지에 해당하는 데이터 플래그 값은 '0'인 경우, A 세션 ID에 대한 누적 값은 '2'에 해당하는 것으로 산출할 수 있다.
침입 감지 장치는 단계(374)를 통해 산출된 누적 값이 0을 초과하는지 여부를 결정하고, 산출된 누적 값이 0을 초과하는 경우, 단계(375)를 통해 세션 ID에 대응되는 데이터 패킷들을 재조합하고, 재조합된 데이터 패킷들에 대한 데이터를 데이터베이스에 저장할 수 있다. 예를 들어, 침입 감지 장치는 'A'에 대응하는 세션 ID의 누적 값이 '2'에 해당하여, 누적 값이 '0'보다 크므로, 'A'에 대응하는 세션 ID에 대응되는 6개의 데이터 패킷을 재조합할 수 있고, 재조합된 데이터 패킷들을 데이터베이스에 저장할 수 있다. 침입 감지 장치는 수신되는 순서에 따라 나열되는 데이터 패킷의 순서를 다시 조합함으로써, 데이터 패킷에 대한 재조합을 수행할 수 있다.
침입 감지 장치는 재조합이 수행된 데이터 패킷들을 Pcap(Packet capture) 파일의 형태로 데이터베이스에 저장할 수 있다.
단계(374)에서 누적 값이 '0'을 초과하지 않는 것으로 결정된 경우, 침입 감지 장치는 해당 세션에 대응되는 데이터 패킷을 폐기할 수 있다.
단계(371)에서 세션의 상태가 미리 설정된 조건을 만족하지 않는 경우(예를 들어 세션의 상태가 Fin Flag가 아닌 경우), 침입 감지 장치는 세션의 상태가 미리 설정된 조건을 만족할 때까지 추가적인 동작을 수행하지 않고 대기할 수 있다.
도 7은 일 실시예에 따른 침입 감지 장치가 침입이 발생한 데이터 패킷을 감지하는 방식을 설명하기 위한 도면이다.
도 7을 참조하면, 침입 감지 장치는 단계(710)를 통해 데이터 패킷을 수신할 수 있다. 수신한 데이터 패킷은 도 4에서 설명된 방식과 동일하게 등록되고, 데이터 패킷에 대응되는 세션 ID가 결정될 수 있다.
단계(720)에서 침입 감지 장치는 데이터 패킷에 침입이 발생하였는지 여부를 감지할 수 있다. 데이터 패킷에 침입이 발생하였는지 여부를 감지하는 방식은 도 5를 통해 설명된 방식과 동일하다.
단계(730)에서 침입 감지 장치는 데이터 패킷에 침입이 발생한 것으로 감지된 경우 데이터 패킷 및 데이터 패킷과 동일한 세션에 대응되는 다른 데이터 패킷들에 대한 데이터를 데이터베이스에 저장할 수 있다. 구체적으로, 침입 감지 장치는 도 6에서 설명된 방식으로 재조합될 수 있고, 재조합된 데이터 패킷들은 데이터베이스에 저장될 수 있다. 침입이 감지된 데이터 패킷은 대응되는 세션이 동일한 데이터 패킷들(수집 시점이 유사한 데이터 패킷들)과 함께 데이터베이스에 저장됨으로써, 침입 감지 장치는 추후 침입을 분석하는 과정에서 침입이 발생된 데이터 패킷 뿐만 아니라 유사한 시점에 수신된 데이터 패킷들에 대한 데이터를 제공할 수 있다.
침입 감지 장치는 데이터 패킷에 침입이 발생한 것으로 감지된 경우, 데이터 패킷에 포함된 데이터 플래그에 침입에 대응되는 데이터 플래그 값을 할당할 수 있다. 예를 들어, 침입 감지 장치는 침입이 감지된 횟수에 비례하는 데이터 플래그 값을 데이터 패킷에 할당할 수 있다.
또한, 세션은 세션에 대응되는 데이터 패킷에 포함된 정보에 기초하여 생성되는 해쉬 값을 통해 생성되는 세션 ID에 기초하여 식별될 수 있다.
도 8은 일 실시예에 따른 침입 감지 장치의 전체적인 구성을 도시하는 도면이다.
도 8을 참조하면, 침입 감지 장치(800)는 프로세서(810), 메모리(820) 및 통신 인터페이스(830)를 포함할 수 있다. 실시예에 따라, 침입 감지 장치(800)는 데이터베이스(840)를 더 포함할 수도 있다. 침입 감지 장치(800)는 본 명세서에서 설명된 침입 감지 장치에 대응할 수 있다.
메모리(820)는 프로세서(810)에 연결되고, 프로세서(80)에 의해 실행가능한 인스트럭션들, 프로세서(810)가 연산할 데이터 또는 프로세서(810)에 의해 처리된 데이터를 저장할 수 있다. 메모리(820)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 장치, 플래쉬 메모리 장치, 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.
통신 인터페이스(830)는 외부 장치와 통신하기 위한 인터페이스를 제공한다. 통신 인터페이스(830)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다.
데이터베이스(840)는 침입 감지 장치(800)가 동작하는데 필요한 정보 및 데이터를 저장할 수 있다. 예를 들어, 데이터베이스(840)는 미리 정의된 시그니처에 대한 정보를 저장하거나, 침입 발생에 대한 감지 결과에 기초하여 앞서 설명된 방식으로 재조합된 데이터 패킷들을 저장할 수 있다.
프로세서(810)는 데이터 패킷을 수신하고, 수신한 데이터 패킷에 침입이 발생하였는지 여부를 감지하고, 데이터 패킷에 침입이 발생한 것으로 감지된 경우, 데이터 패킷의 데이터 플래그에 침입에 대응되는 데이터 플래그 값을 할당할 수 있다. 또한, 프로세서(810)는 침입이 발생한 데이터 패킷과, 해당 데이터 패킷과 동일한 세션에 대응되는 다른 데이터 패킷들을 재조합하고, 재조합된 데이터 패킷들을 데이터베이스에 저장할 수 있다.
또한, 프로세서(810)는 데이터 패킷을 수신하고, 데이터 패킷에 침입이 발생하였는지 여부를 감지하고, 침입이 발생한 것으로 감지된 경우, 데이터 패킷 및 데이터 패킷과 동일한 세션에 대응되는 다른 데이터 패킷들에 대한 데이터를 데이터베이스에 저장할 수 있다.
프로세서(810)는 도 1 내지 도 7에서 설명된 세션 기반의 침입 감지 방법과 관련된 하나 이상의 동작을 수행할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (1)

  1. 세션 기반의 침입 감지 방법에 있어서,
    데이터 패킷을 수신하는 단계;
    상기 수신한 데이터 패킷에 침입이 발생하였는지 여부를 감지하는 단계;
    상기 침입이 발생한 것으로 감지된 경우, 상기 데이터 패킷의 데이터 플래그에 상기 침입 발생에 대응하는 데이터 플래그 값을 할당하는 단계; 및
    상기 침입이 발생한 데이터 패킷의 세션 ID(identification; ID)에 대응되는 데이터 패킷들을 재조합하는 단계
    를 포함하는,
    세션 기반의 침입 감지 방법.
KR1020190090235A 2019-07-25 2019-07-25 침입 감지 방법 및 장치 KR20200090084A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190090235A KR20200090084A (ko) 2019-07-25 2019-07-25 침입 감지 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190090235A KR20200090084A (ko) 2019-07-25 2019-07-25 침입 감지 방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020190006548A Division KR102006475B1 (ko) 2019-01-18 2019-01-18 침입 감지 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20200090084A true KR20200090084A (ko) 2020-07-28

Family

ID=71831749

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190090235A KR20200090084A (ko) 2019-07-25 2019-07-25 침입 감지 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20200090084A (ko)

Similar Documents

Publication Publication Date Title
US10659478B2 (en) Identifying stealth packets in network communications through use of packet headers
CN107968791B (zh) 一种攻击报文的检测方法及装置
US9491190B2 (en) Dynamic selection of network traffic for file extraction shellcode detection
CN108293039B (zh) 处理网络威胁的计算设备、方法和存储介质
US11956264B2 (en) Method and system for verifying validity of detection result
WO2018191089A1 (en) System and method for detecting creation of malicious new user accounts by an attacker
US20190081970A1 (en) Specifying system, specifying device, and specifying method
EP3242240B1 (en) Malicious communication pattern extraction device, malicious communication pattern extraction system, malicious communication pattern extraction method and malicious communication pattern extraction program
CN112073437A (zh) 多维度的安全威胁事件分析方法、装置、设备及存储介质
CN108011850B (zh) 数据包的重组方法及装置、计算机设备及可读介质
JPWO2016076334A1 (ja) マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
KR20160093791A (ko) 내부망에서 효율적인 침입탐지 방법 및 장치
KR102040371B1 (ko) 네트워크 공격 패턴 분석 및 방법
CN114785567A (zh) 一种流量识别方法、装置、设备及介质
KR102006475B1 (ko) 침입 감지 방법 및 장치
KR101880705B1 (ko) 인터넷을 이용하여 장치정보를 수집하는 시스템 및 그 방법
JP6592196B2 (ja) 悪性イベント検出装置、悪性イベント検出方法および悪性イベント検出プログラム
KR102382889B1 (ko) 프로세스 정보를 사용하여 웹쉘을 탐지하는 방법 및 시스템
KR102204290B1 (ko) 통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법
KR20200090084A (ko) 침입 감지 방법 및 장치
CN114281547B (zh) 一种数据报文处理方法、装置、电子设备及存储介质
US10257093B2 (en) Information processing device, method, and medium
KR101410233B1 (ko) 네트워크 세션 행위 패턴 모델링 탐지방법 및 모델링탐지시스템
JPWO2021130933A5 (ja) 分析装置、分析方法及び分析プログラム
KR20200075725A (ko) 복수개의 디바이스 정보 종합 분석을 통한 디바이스 이상 징후 탐지 방법 및 그 장치