KR20240009320A - 전자 장치 및 이에 의한 트래픽의 분석 방법 - Google Patents

전자 장치 및 이에 의한 트래픽의 분석 방법 Download PDF

Info

Publication number
KR20240009320A
KR20240009320A KR1020220153081A KR20220153081A KR20240009320A KR 20240009320 A KR20240009320 A KR 20240009320A KR 1020220153081 A KR1020220153081 A KR 1020220153081A KR 20220153081 A KR20220153081 A KR 20220153081A KR 20240009320 A KR20240009320 A KR 20240009320A
Authority
KR
South Korea
Prior art keywords
information
parsing
sessions
packets
session
Prior art date
Application number
KR1020220153081A
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 주식회사 시큐다임
Publication of KR20240009320A publication Critical patent/KR20240009320A/ko

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

복수의 파싱 모듈에서 복수의 세션(Session)의 패킷들을 파싱(Parsing)하는 단계; 복수의 파싱 모듈의 메모리 사용량이 임계값보다 큰 경우, 일부 세션의 파싱 처리를 종료하는 단계; 종료된 일부 세션의 로그기록 정보를 획득하는 단계;
종료된 일부 세션의 로그기록 정보와 DLP(Data Loss Prevention) 추출 정보의 매칭 여부를 판단하는 단계; 및 매칭 여부의 판단 결과에 따라, 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식(Forensic) 동작 중 적어도 하나의 동작을 처리하는 단계를 포함하는, 일 실시예에 따른 트래픽의 분석 방법이 개시된다.

Description

전자 장치 및 이에 의한 트래픽의 분석 방법{ELECTRONIC APPARATUS AND METHOD FOR ANALYZING TRAFFIC THEREBY}
본 개시는 트래픽 분석에 관한 것이다. 보다 구체적으로, 본 개시는 파싱 모듈에 의한 OOM(Out Of Memory) 현상을 방지하면서, 파싱 모듈의 처리 지연 없이 포렌식(Forensic) 동작을 통한 네트워크 상의 트래픽을 분석하는 장치 및 방법에 관한 것이다.
네트워크 기술이 비약적으로 발달하면서 문서 작업과 같이 주로 오프라인에서 수행되던 서비스들이 온라인에서 이루어지고 있다. 파일의 업로드/다운로드, 이메일, 채팅, 문서 편집 등의 많은 서비스가 온라인에서 이루어지고 있으므로, 효율적인 네트워크 보안이 요구된다.
네트워크 보안은, 패킷의 헤더 정보(IP 프로토콜 정보)만으로 접근 통제를 하는 기존 방식에서 패킷의 페이로드를 검사하는 방식(예를 들어, IDS(Intrusion Detection System)/IPS(Intrusion Preventing System))으로 발전하였고, 더 나아가 웹 방화벽으로 대표되는 HTTP와 같은 L7(layer 7) 프로토콜의 헤더까지 검사하는 방식으로 발전하였다.
최근 들어, 대부분의 네트워크 서비스가 HTTP 기반으로 이루어져 있기 때문에 단순히 HTTP 헤더를 검사하던 웹 방화벽 방식에서 HTTP 페이로드를 검사하는 방식(DLP(Data Loss Prevention) 동작을 통한 네트워크 상의 트래픽의 컨텐츠를 추출)으로 발전하였다.
HTTP와 같은 L7(layer 7) 프로토콜의 파싱 모듈은 복수 개가 병렬적으로 구동될 수 있다. 복수 개의 파싱 모듈이 병렬적으로 구동되는 경우, 메모리 사용량이 커짐에 따라 OOM(Out Of Memory) 현상이 발생할 수 있다. 이러한 현상의 발생을 방지하면서도, 파싱 모듈에 의한 처리 지연을 방지할 필요성이 있다.
일 실시예에 따른 전자 장치 및 이에 의한 트래픽의 분석 방법은 파싱 모듈에 의한 OOM 현상 발생을 차단하는 것을 목적으로 한다.
일 실시예에 따른 전자 장치 및 이에 의한 트래픽의 분석 방법은 메모리 관리 차원에서 종료된 특정 케이스 세션의 로그기록 정보와 DLP 추출 정보의 매칭여부에 따라 파싱 모듈의 처리를 생략함으로써, 파싱 모듈로 인한 처리 지연을 방지하는 것을 목적으로 한다.
또한, 일 실시예에 따른 전자 장치 및 이에 의한 트래픽의 분석 방법은 메모리 관리 차원에서 종료된 특정 케이스 세션의 로그기록 정보와 DLP 추출 정보의 매칭여부에 따라, 선택적으로 패킷 내의 컨텐츠를 추출 및 분석함으로써, 개인 정보 및 기업 정보가 유출되는 것을 방지하는 것을 목적으로 한다.
본 발명의 해결 과제는 이상에서 언급된 것에 한정되지 않으며, 언급되지 아니한 다른 해결 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
일 실시예에 따른 전자 장치에 의한 트래픽의 분석 방법은,
복수의 파싱 모듈에서 복수의 세션(Session)의 패킷들을 파싱(Parsing)하는 단계; 상기 복수의 파싱 모듈의 메모리 사용량이 임계값보다 큰 경우, 일부 세션의 파싱 처리를 종료하는 단계; 상기 종료된 일부 세션의 로그기록 정보를 획득하는 단계; 상기 종료된 일부 세션의 로그기록 정보와 DLP(Data Loss Prevention) 추출 정보의 매칭 여부를 판단하는 단계; 및 상기 매칭 여부의 판단 결과에 따라, 상기 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식(Forensic) 동작 중 적어도 하나의 동작을 처리하는 단계를 포함한다.
일 실시예에서, 상기 매칭 여부를 판단하는 단계는, 상기 로그기록 정보에 포함된 URL(Uniform Resource Locator) 정보, 호스트(host) 정보 및 메쏘드(method) 정보가 상기 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 매칭하는지 여부를 판단하는 단계를 포함할 수 있다.
일 실시예에서, 상기 매칭 여부의 판단 결과에 따라, 상기 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작 중 적어도 하나의 동작을 처리하는 단계는, 상기 판단 결과에 따라, 상기 파싱 모듈의 처리가 필요한 세션을 분류하는 단계; 상기 분류 결과에 따라, 상기 파싱 모듈에서 상기 종료된 일부 세션의 패킷들에 대한 파싱 동작을 재처리하는 단계; 및 상기 재처리된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작을 처리하는 단계를 포함할 수 있다.
일 실시예에서, 상기 매칭 여부의 판단 결과에 따라, 상기 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작 중 적어도 하나의 동작을 처리하는 단계는, 상기 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 상기 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 매칭하는 경우, 상기 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작을 처리하는 단계; 및 상기 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 매칭하지 않는 경우, 상기 일부 세션의 패킷들에 대하여 DLP 동작을 처리하지 않고, 포렌식 동작을 처리하는 단계를 포함할 수 있다.
일 실시예에서, 상기 일부 세션의 파싱 처리를 종료하는 단계는, 상기 복수의 파싱 모듈의 메모리 사용량이 임계값보다 큰 경우, 파싱 모듈의 메모리 사용량이 많은 순으로 세션의 파싱 처리를 종료하는 단계를 포함할 수 있다.
일 실시예에서, 상기 종료된 일부 세션의 로그기록 정보를 획득하는 단계는, 상기 종료된 일부 세션이 소정의 섹션인지를 식별하는 단계; 및 상기 식별된 소정의 섹션에 따라 세션의 로그 기록 정보를 획득하는 단계를 포함할 수 있다.
일 실시예에서, 상기 식별된 소정의 섹션에 따라 세션의 로그 기록 정보를 획득하는 단계는, 상기 식별된 일부 세션이 큰 사이즈의 HTTP 세션인 경우, 컨텐츠와 관련된 HTTP 세션의 특정 패킷의 URL 정보, 호스트 정보 및 메쏘드 정보를 획득하는 단계; 상기 식별된 일부 세션이 작은 사이즈의 HTTP 반복 세션인 경우, HTTP 세션의 임의의 패킷의 URL 정보, 호스트 정보 및 메쏘드 정보를 획득하는 단계; 및 상기 식별된 일부 세션이 큰 사이즈의 FTP 데이터 세션인 경우, 컨텐츠와 관련된 FTP 세션의 특정 패킷의 호스트 정보를 획득하는 단계를 포함할 수 있다.
일 실시예에서, 상기 복수의 파싱 모듈에서 복수의 세션의 패킷들을 파싱하는 단계는, Layer 7 프로토콜의 패킷들의 헤더 정보 및 페이로드 정보를 JSON(JavaScript Object Notation) 포맷으로 출력하는 단계를 포함하고, 상기 Layer 7 프로토콜은 HTTP(HyperText Transfer Protocol), FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol) 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 포렌식 동작은, 상기 패킷들의 헤더 정보로부터 패킷들의 IP 정보, 포트 정보, 및 시간 정보 중 적어도 하나의 정보를 JSON 포맷으로 출력하는 동작을 포함할 수 있다.
일 실시예에서, 상기 세션의 패킷들의 프로토콜이 TCP(Transmission Control Protocol)이며, 상기 세션에 TCP 페이로드가 존재하고, 상기 세션의 패킷들의 L7(Layer 7) 프로토콜이 소정의 프로토콜인 경우, 파싱 처리가 필요한 패킷으로 분류하는 단계; 및 상기 파싱 처리가 필요한 패킷으로 분류되지 않은 패킷은 파싱 처리가 필요하지 않은 패킷으로 분류하는 단계를 더 포함할 수 있다. 상기 소정의 프로토콜은 HTTP, FTP, POP3(Post Office Protocol 3), SMTP 중 적어도 하나이고, 상기 파싱 처리가 필요하지 않은 패킷은 UDP(User Datagram Protocol) 패킷을 포함할 수 있다.
일 실시예에서, 상기 DLP 동작은, 복수의 파싱 툴 중 패킷의 헤더 정보에 대응하는 파싱 툴을 선택하고, 상기 선택된 파싱 툴에 대응하는 파싱 룰에 따라 패킷의 페이로드 정보로부터 컨텐츠를 추출하는 동작을 포함할 수 있다.
일 실시예에서, 상기 패킷은 클라이언트 기기와 서버 사이에서 송수신되는 패킷이며, 상기 방법은 상기 DLP 동작에 의해 추출된 컨텐츠가 유출 방지 컨텐츠에 해당하는 경우, 상기 클라이언트 기기와 서버 사이의 패킷의 송수신 동작을 차단하는 단계를 더 포함할 수 있다.
일 실시예에 따른 전자 장치는 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나의 인스트럭션에 따라 동작하는 프로세서를 포함하되, 상기 프로세서는, 복수의 파싱 모듈에서 복수의 세션(Session)의 패킷들을 파싱(Parsing)하고, 상기 복수의 파싱 모듈의 메모리 사용량이 임계값보다 큰 경우, 일부 세션의 파싱 처리를 종료하고, 상기 종료된 일부 세션의 로그기록 정보를 획득하고, 상기 종료된 일부 세션의 로그기록 정보와 DLP(Data Loss Prevention) 추출 정보의 매칭 여부를 판단하고, 상기 매칭 여부의 판단 결과에 따라, 상기 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식(Forensic) 동작 중 적어도 하나의 동작을 처리한다.
일 실시예에서, 상기 프로세서는, 상기 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 상기 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 매칭하는 경우, 상기 일부 세션의 패킷들에 대하여 상기 파싱 모듈에 의한 파싱 동작의 처리와 함께 DLP 동작 및 포렌식 동작을 처리하고, 상기 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 매칭하지 않는 경우, 상기 일부 세션의 패킷들에 대하여 상기 파싱 모듈에 의한 파싱 동작 및 DLP 동작을 처리하지 않고, 포렌식 동작을 처리할 수 있다.
일 실시예에 따른 전자 장치 및 이에 의한 트래픽의 분석 방법은 파싱 모듈에 의한 Out Of Memory 현상이 발생하는 것을 효과적으로 차단할 수 있다.
일 실시예에 따른 전자 장치 및 이에 의한 트래픽의 분석 방법은 메모리 관리 차원에서 종료된 특정 케이스 세션의 로그기록 정보와 DLP 추출 정보의 매칭여부에 따라 파싱 모듈의 처리를 생략함으로써, 파싱 모듈로 인한 처리 지연을 효과적으로 방지할 수 있다.
또한, 일 실시예에 따른 전자 장치 및 이에 의한 트래픽의 분석 방법은 메모리 관리 차원에서 종료된 특정 케이스 세션의 로그기록 정보와 DLP 추출 정보의 매칭여부에 따라, 선택적으로 패킷 내의 컨텐츠를 추출 및 분석함으로써, 개인 정보 및 기업 정보가 유출되는 것을 효과적으로 방지할 수 있다.
본 발명의 효과는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 클라이언트 기기, 서버, 및 트래픽의 분석을 위한 전자 장치를 도시하는 도면이다.
도 2는 일 실시예에 따른 전자 장치에 의한 HTTP 트래픽의 분석 방법을 나타내는 순서도이다.
도 3는 일 실시예에 따라 전자 장치에 포함된 모듈들의 동작을 설명하기 위한 블록도이다.
도 4는 일 실시예에 따른 전자 장치의 구성을 도시하는 블록도이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
도 1은 일 실시예에 따른 클라이언트 기기(10), 서버(20), 및 트래픽의 분석을 위한 전자 장치(100)를 도시하는 도면이다.
도 1을 참조하면, 클라이언트 기기(10)와 서버(20)는 네트워크를 통해 메시지(30)를 송수신할 수 있다.
일 실시예에서, 클라이언트 기기(10)는 네트워크를 통해 서버(20)와 연결될 수 있는 스마트폰, 데스크탑 PC, 노트북, 태블릿 PC, 서버 등의 다양한 종류의 기기를 포함할 수 있다.
일 실시예에서, 네트워크는 유선 네트워크와 무선 네트워크를 포함할 수 있다. 예를 들어, 네트워크는 근거리 네트워크(LAN: Local Area Network), 도시권 네트워크(MAN: Metropolitan Area Network), 광역 네트워크(WAN: Wide Area Network) 등의 다양한 네트워크를 포함할 수 있다. 또한, 네트워크는 공지의 월드 와이드 웹(WWW: World Wide Web)을 포함할 수도 있다. 그러나, 본 개시의 실시예에 따른 네트워크는 상기 열거된 네트워크에 국한되지 않고, 공지의 무선 데이터 네트워크나 공지의 전화 네트워크, 공지의 유무선 텔레비전 네트워크를 적어도 일부로 포함할 수도 있다.
클라이언트 기기(10)와 서버(20) 사이에서 송수신되는 메시지(30)는 요청(request) 또는 응답(response)일 수 있다. 예를 들어, 클라이언트 기기(10)는 요청을 서버(20)로 전송하고, 서버(20)는 요청에 따라 응답을 생성하여 클라이언트 기기(10)로 전송할 수 있다.
전자 장치(100)는 클라이언트 기기(10)와 서버(20) 사이에서 송수신되는 메시지(30)를 획득하고, 메시지(30)에 대한 파싱 과정을 통해 헤더 정보 및 컨텐츠를 추출할 수 있다.
후술하는 바와 같이, 헤더 정보는 호스트(Host) 정보, URL(Uniform Resource Locator) 정보 및 메쏘드(Method) 정보 중 적어도 하나를 포함할 수 있다. 헤더 정보는 메시지(30)의 헤더에 포함되고, 컨텐츠는 메시지(30)의 바디에 포함될 수 있다.
메시지(30)에 대해 좀더 구체적으로 설명하면, 메시지(30)는 하드웨어 정보를 가지고 있는 Layer 2, IP 정보를 가지고 있는 Layer 3, 포트 정보를 가지고 있는 Layer 4, 및 HTTP 와 같은 프로토콜 정보를 가지고 있는 Layer 7로 구분될 수 있으며, Layer 7 프로토콜의 헤더를 분석하고 나면 비로소 이메일, 채팅, 파일 등의 정보를 가진 컨텐츠의 추출이 가능해진다.
Layer 2 내지 Layer 7까지는 공용으로 사용되는 프로토콜이기 때문에 정보의 추출이 비교적 쉽다.
본 개시의 일 실시예에 따른 전자 장치(100)는 Layer 2 내지 Layer 7 헤더 정보 중 적어도 일부의 헤더 정보를 기초로 포렌식 동작을 수행할 수 있다.
포렌식 동작은 정보 수집을 위한 네트워크 트래픽의 모니터링을 수행하는 동작으로, 네트워크를 통해 지나다니는 모든 트래픽에 대해 모니터링을 할 수 있게 있는 그대로를 보여주도록 하는 동작이다. 일 실시예에 의하면, 포렌식 동작은 패킷에 있는 클라이언트 IP/포트 정보, 서버 IP/포트 정보, 시간(time) 정보 등의 모든 정보를 JSON(JavaScript Object Notation) 형식으로 추출하는 동작일 수 있다.
포렌식 동작은 L7 프로토콜의 파싱 모듈에서 출력된 정보로부터 일부 정보를 출력하는 동작일 수 있으나, 이에 제한되지 않고, L7 프로토콜의 파싱 모듈의 처리없이도 별도의 포렌식 동작을 위한 모듈을 이용하여 패킷으로부터 일부 정보를 출력하는 동작일 수 있다.
한편, 컨텐츠는 서버(20)가 자체적으로 구현한 것이기 때문에 표준 문서가 존재하지 않으며, 따라서 알려진 파싱 툴 또한 존재하지 않는다. 어떤 서버(20)는 json(JavaScript Object Notation)으로, 어떤 서버(20)는 xml(eXtensible Markup Language)로, 어떤 서버(20)는 MIME(Multipurpose Internet Mail Extensions)로 컨텐츠를 표현하기 때문에 다양한 종류의 메시지(30)로부터 컨텐츠를 추출하기는 어렵다.
본 개시의 일 실시예에 따른 전자 장치(100)는 후술하는 필터 룰 및 파싱 룰을 통해 다양한 서버(20)의 메시지(30)로부터 컨텐츠를 추출할 수 있다. 이때, 컨텐츠를 추출하는 동작은 DLP(Data Loss Prevention) 동작에 대응될 수 있다.
DLP 동작은 내부정보 유출을 모니터링 또는 통제하는 동작에 대응될 수 있다. 예를 들어, DLP 동작은 웹메일, 클라우드, 노트 등의 서비스를 통해 내부 정보가 유출되는 것이 있는지를 파악하기 위한 동작으로, DLP 동작을 통해 웹메일과 관련된 트래픽의 경우, 첨부파일, 제목, 본문 등에 대한 정보가 패킷으로부터 추출될 수 있다.
전자 장치(100)는 L7 프로토콜의 파싱 모듈에서 출력된 정보를 입력으로 하여 컨텐츠를 추출할 수 있다. DLP 동작은 포렌식 동작과 달리 L7 프로토콜의 파싱 모듈의 처리가 필수적으로 수행될 수 있다.
일 실시예에 따른 전자 장치(100)의 동작에 대해 도 2 내지 도 4를 참조하여 설명한다.
도 2는 일 실시예에 따른 전자 장치(100)에 의한 트래픽의 분석 방법을 나타내는 순서도이다.
S210 단계에서, 전자 장치(100)는 복수의 파싱 모듈에서 복수의 세션의 패킷들을 파싱할 수 있다. 여기서, 파싱 모듈은 L7 프로토콜에 관한 파싱 모듈로, L7 프로토콜의 패킷의 헤더 및 페이로드 정보로부터 메시지를 획득할 수 있다. 즉, 파싱모듈은 L7 프로토콜의 패킷을 DLP 모듈 및 포렌식 처리 모듈에서 처리하기 위한 데이터 형태로 변환할 수 있다. 복수의 파싱 모듈이 병렬적으로 구동될 수 있으며, 각 파싱 모듈은 적어도 하나의 세션의 패킷을 파싱할 수 있다.
S220 단계에서, 전자 장치(100)는 복수의 파싱 모듈의 메모리 사용량이 임계값보다 큰 경우, 일부 세션의 파싱 처리를 종료할 수 있다. 파싱 처리를 종료하는 이유는 OOM 현상을 방지하기 위함이다. 이때, 전자 장치(100)는 파싱 모듈의 메모리 사용량이 많은 순으로 세션의 파싱 처리를 종료할 수 있다.
S230 단계에서, 전자 장치(100)는 종료된 일부 세션의 로그기록 정보를 획득할 수 있다. 전자 장치(100)는 종료된 세션의 URL(Uniform Resource Locator) 정보, 호스트(host) 정보 및 메쏘드(method) 정보 중 적어도 하나를 획득할 수 있다. 일 실시예에서, 전자 장치(100)는 HTTP 메시지의 헤더로부터 호스트 정보, URL 정보 및 메쏘드 정보 중 적어도 하나를 포함하는 헤더 정보를 추출할 수 있다.
예를 들어, 전자 장치(100)는 세션의 프로토콜이 HTTP인 경우, URL, 호스트 정보 및 메쏘드 정보를 획득할 수 있다. 전자 장치(100)는 세션의 프로토콜이 FTP인 경우, 호스트 정보만을 획득할 수 있다. 호스트는 네트워크에 연결된 장치 또는 서버들에 부여되는 고유한 식별 정보일 수 있다. 또한, URL은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약으로 흔히 웹 주소 또는 인터넷 주소로 참조될 수 있다. 메쏘드는 클라이언트가 서버로 전송하는 요청의 목적이나 종류를 나타낼 수 있다.
전자 장치(100)는 종료된 일부 세션이 소정의 섹션인지를 식별할 수 있고, 식별된 소정의 섹션에 따라 세션의 로그 기록 정보를 획득할 수 있다. 일 실시예에 의하면, 소정의 세션은 OOM 현상을 방지하기 위해 종료된 세션들의 타입을 미리 정의해둔 것일 수 있다. 예를 들어, 소정의 세션은 큰 사이즈의 HTTP 세션일 수 있다. 예를 들어, 소정의 세션은 작은 사이즈의 HTTP 반복 세션일 수 있다. 예를 들어, 소정의 세션은 큰 사이즈의 FTP 데이터 세션일 수 있다.
전자 장치(100)는 식별된 일부 세션이 큰 사이즈의 HTTP 세션인 경우, 컨텐츠와 관련된 HTTP 세션의 특정 패킷(예. 컨텐츠와 관련된 패킷)의 URL 정보, 호스트 정보 및 메쏘드 정보를 획득할 수 있다. 예를 들어, 큰 사이즈의 HTTP 세션은 웹에서 큰 사이즈의 파일을 다운로드하는 세션일 수 있다. 이러한 세션 안 10개의 패킷 중 5번째 패킷이 파일 다운로드 패킷이라면, 5번 패킷은 컨텐츠 추출이 필요한 패킷이라 판단되고, 5번 패킷 외 나머지 패킷은 웹 서버와 통신하는 패킷으로, 컨텐츠 추출이 필요하지 않은 패킷이라 판단될 수 있다. 따라서, 5번째 패킷으로부터 URL 정보, 호스트 정보 및 메쏘드 정보가 획득될 수 있다.
전자 장치(100)는 식별된 일부 세션이 작은 사이즈의 HTTP 반복 세션인 경우, HTTP 세션의 임의의 패킷의 URL 정보, 호스트 정보 및 메쏘드 정보를 획득할 수 있다. 예를 들어, 작은 사이즈의 HTTP 반복 세션은 같은 HTTP 패킷이 반복되어 모인 세션일 수 있다. 이러한 세션 안에 10개의 패킷이 있다면 10개 모두 같은 패킷으로, 10개의 패킷 중 임의의 패킷으로부터 URL 정보, 호스트 정보 및 메쏘드 정보가 획득될 수 있다.
전자 장치(100)는 식별된 일부 세션이 큰 사이즈의 FTP 데이터 세션인 경우, 컨텐츠와 관련된 FTP 세션의 특정 패킷(예. 컨텐츠와 관련된 패킷)의 호스트 정보를 획득할 수 있다. 예를 들어, 큰 사이즈의 FTP 데이터 세션은 FTP_DATA 전송을 위한 FTP 연결 패킷과 실제 데이터 패킷이 있는 세션일 수 있다. 5번째 패킷이 파일 다운로드 패킷이라면, 5번 패킷은 컨텐츠 추출이 필요한 패킷이라 판단되고, 5번 패킷 외 나머지 패킷은 컨텐츠 추출이 필요하지 않은 패킷이라 판단될 수 있다. 따라서, 5번째 패킷으로부터 호스트 정보가 획득될 수 있다.
S240 단계에서, 전자 장치(100)는 종료된 일부 세션의 로그기록 정보와 DLP 추출 정보의 매칭 여부를 판단할 수 있다. 전자 장치(100)는 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보 중 적어도 하나가 상기 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보 중 적어도 하나와 매칭하는지를 판단할 수 있다.
이때, URL 정보, 호스트 정보 및 메쏘드 정보가 각각 비교될 수 있으나, 이에 제한되지 않고, 일부 정보만 비교할 수 있다. 예를 들어, URL 정보 및 호스트 정보가 각각 비교되고, 메쏘드 정보는 비교하지 않을 수 있다.
일 실시예에서, 프로토콜에 따라, 비교하는 정보가 달라질 수 있다. 예를 들어, 프로토콜이 FTP인 경우, 호스트 정보만이 비교될 수 있다.
또는, 프로토콜이 소정의 프로토콜(예. HTTP)인 경우에만 매칭 여부가 판단될 수 있다. 만약, 소정의 프로토콜이 아니라면, 매칭 여부에 관계없이 파싱 모듈의 재처리 및 DLP/포렌식 동작의 처리가 수행될 수 있다.
S240 단계에서, 전자 장치(100)는 매칭 여부의 판단 결과에 따라, 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작 중 적어도 하나의 동작을 처리할 수 있다.
전자 장치(100)는 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 모두 매칭하는 경우, 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작을 처리할 수 있다. 이때, DLP 동작 및 포렌식 동작 전에 해당 세션의 패킷들에 대한 파싱 모듈의 파싱 동작이 처리될 수 있다.
전자 장치(100)는 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 일부 매칭하지 않는 경우, 일부 세션의 패킷들에 대하여 DLP 동작을 처리하지 않고, 포렌식 동작을 처리할 수 있다. 이때, 포렌식 동작 전에 해당 세션의 패킷들에 대한 파싱 모듈의 파싱 동작은 처리되지 않을 수 있다.
일 실시예에서, 전자 장치(100)는 매칭 여부의 결과에 따라 파싱 모듈의 처리가 필요한 세션을 분류할 수 있다. 예를 들어, 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 매칭하는 경우, 전자 장치(100)는 해당 세션을 파싱 모듈의 처리가 필요한 세션으로 분류할 수 있다.
예를 들어, 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 일부 매칭하지 않는 경우, 전자 장치(100)는 해당 세션을 파싱 모듈의 처리가 필요하지 않은 세션으로 분류할 수 있다.
전자 장치(100)는 분류 결과에 따라, 파싱 모듈에서 종료된 일부 세션의 패킷들에 대한 파싱 동작을 재처리할 수 있다. 즉, 전자 장치(100)는 파싱 모듈에서 종료된 일부 세션이 파싱 모듈의 처리가 필요한 세션으로 분류한 경우, 해당 세션의 패킷들에 대한 파싱 동작을 재처리할 수 있다. 전자 장치(100)는 재처리된 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작을 처리할 수 있다.
전자 장치(100)는 분류 결과에 따라, 파싱 모듈에서 종료된 일부 세션의 패킷들에 대한 파싱 동작을 재처리하지 않을 수 있다. 즉, 전자 장치(100)는 파싱 모듈에서 종료된 일부 세션이 파싱 모듈의 처리가 필요한 세션으로 분류하지 않은 경우, 해당 세션의 패킷들에 대한 파싱 동작을 수행하지 않을 수 있다. 전자 장치(100)는 해당 세션의 패킷들에 대하여 포렌식 동작을 처리할 수 있다. 이때, DLP 동작은 처리되지 않을 수 있다.
이하는 DLP 동작에 대하여 구체적으로 설명하기로 한다. DLP 동작은 필터 룰에 따라 복수의 파싱 툴 중 패킷의 헤더 정보에 대응하는 파싱 툴을 선택하고, 상기 선택된 파싱 툴에 대응하는 파싱 룰에 따라 패킷의 페이로드 정보로부터 컨텐츠를 추출하는 동작을 포함한다.
일 실시예에서, 전자 장치(100)는 HTTP 프로토콜 규격에 따른 파싱을 통해 헤더로부터 헤더 정보를 추출할 수 있다. 전자 장치(100)는 HTTP 프로토콜 규격에 따른 파싱을 통해 페이로드로부터 바디 정보를 추출할 수 있다.
일 실시예에서, 전자 장치(100)는 복수의 파싱 툴 중 HTTP 메시지의 헤더로부터 추출된 헤더 정보에 대응하는 파싱 툴을 선택한다.
일 실시예에서, 복수의 파싱 툴은, JSON(JavaScript Object Notation), MIME(Multipurpose Internet Mail Extensions), XML(eXtensible Markup Language), HTTP_Header 및 HTTP_FORM_Encoded를 포함할 수 있다. 그러나, 이는 하나의 예시일 뿐, 전자 장치(100)는 공지된 다양한 종류의 파싱 툴들을 이용할 수 있다.
상기 예시된 파싱 툴들에 대해 간략히 설명하면, JSON은 {key:value}와 같은 형식으로 컨텐츠를 표현하고, MIME은 ---boundary로 멀티 데이터를 전송하고, key:value;와 같은 형식으로 컨텐츠를 표현하며, newline 을 구분자로 쓴다.
또한, XML은 <key>value</key> 같은 형식으로 컨텐츠를 표현하고, HTTP_Header는 key:value 와 같은 형식으로 컨텐츠를 표현하고, newline을 구분자로 쓴다. 또한, HTTP_FORM_Encoded은 key=value 와 같은 형식으로 컨텐츠를 표현하고, &을 구분자로 쓴다.
전자 장치(100)는 여러 헤더 정보와 여러 파싱 툴 사이의 대응 관계를 미리 저장하고 있을 수 있다. 전자 장치(100)는 HTTP 메시지로부터 추출된 헤더 정보에 대응하는 파싱 툴을 미리 저장된 대응 관계에 기반하여 선택할 수 있다.
호스트가 "www.abc.com"이고, URL이 "/translatev3"이고, 메쏘드가 "post"라면, HTTP 요청에 대해 HTTP_FORM_Encoded가 선택되고, HTTP 응답에 대해 JSON이 선택될 수 있다. 즉, 일 실시예에서, 특정의 헤더 정보에 따라 HTTP 요청 내 컨텐츠를 추출하기 위한 파싱 툴과 HTTP 응답 내 컨텐츠를 추출하기 위한 파싱 툴이 서로 다르게 선택될 수 있다.
다음으로, 호스트가 "www.aab.com"이고, URL이 "/v2/mails"이고, 메쏘드가 "post"인 경우, HTTP 요청 및 HTTP 응답을 위해 MIME가 선택될 수 있다. 또한, 호스트가 "www.aab.com"이고, URL이 "/v2/mails"이고, 메쏘드가 "delete"인 경우, HTTP 요청 및 HTTP 응답을 위해 XML이 선택될 수 있다. 즉, 어느 하나의 HTTP 메시지의 헤더로부터 추출된 헤더 정보와 다른 하나의 HTTP 메시지의 헤더로부터 추출된 헤더 정보에서, 호스트와 URL이 동일하더라도 메쏘드가 상이한 경우, 어느 하나의 HTTP 메시지와 다른 하나의 HTTP 메시지를 위해 서로 다른 파싱 툴이 선택될 수 있다.
마찬가지로, 어느 하나의 HTTP 메시지의 헤더로부터 추출된 헤더 정보와 다른 하나의 HTTP 메시지의 헤더로부터 추출된 헤더 정보에서, 호스트와 메쏘드가 동일하더라도 URL이 상이한 경우, 어느 하나의 HTTP 메시지와 다른 하나의 HTTP 메시지를 위해 서로 다른 파싱 툴이 선택될 수 있다.
전자 장치(100)는 선택된 파싱 툴에 대응하는 파싱 룰에 따라 HTTP 메시지의 바디로부터 컨텐츠를 추출한다.
전자 장치(100)가 이용할 수 있는 복수의 파싱 툴 각각에 대해 서로 다른 파싱 룰이 설정될 수 있다. 파싱 룰은 HTTP 메시지의 바디로부터 컨텐츠를 추출할 때, 추출하고자 하는 컨텐츠의 키(key), 처리 옵션 등을 파싱 툴의 문법에 따라 규정한 규칙으로 참조할 수 있다. 즉, 전자 장치(100)는 파싱 룰에 정의되어 있는 키 및 파싱 툴의 문법에 따라 HTTP 메시지의 바디로부터 컨텐츠를 추출할 수 있다.
일 실시예에서, 복수의 파싱 툴 중 어느 하나의 파싱 툴을 선택하기 위한 규칙을 필터 룰로 참조할 수 있고, 필터 룰에 따라 선택된 파싱 툴에 따라 HTTP 메시지의 바디로부터 컨텐츠를 추출하기 위한 규칙을 파싱 룰로 참조할 수 있다. 즉, 일 실시예에 따른 전자 장치(100)는 필터 룰과 파싱 룰에 기반하여 다양한 서비스의 HTTP 메시지를 효과적으로 파싱할 수 있다.
전자 장치(100)는 컨텐츠를 추출하기 위한 파싱 툴을 선택하기 위해 필터 룰에 따라 헤더로부터 헤더 정보를 추출할 수 있다.
예를 들어, "http_host"에 대한 밸류(value)인 "www.bing.com"이 호스트로 추출되고, "http_path"에 대한 밸류인 "/ttranslatev3?"가 URL로 추출될 수 있다. 그리고, "http_method"에 대한 밸류인 "POST"가 메쏘드로 추출될 수 있다. 전술한 바와 같이, 전자 장치(100)는 복수의 파싱 툴 중 "www.bing.com", "/ttranslatev3?" 및 "POST"에 대응하는 파싱 툴을 선택할 수 있다.
또는, 예를 들어, 일 실시예에 의하면, "http_host"에 대한 밸류인 "cmail.kakao.com"이 호스트로 추출되고, "http_path"에 대한 밸류인 "/v2/mails/send"가 URL로 추출될 수 있다. 그리고, "http_method"에 대한 밸류인 "POST"가 메쏘드로 추출될 수 있다. 전술한 바와 같이, 전자 장치(100)는 복수의 파싱 툴 중 "cmail.kakao.com", "/v2/mails/send" 및 "POST"에 대응하는 파싱 툴을 선택할 수 있다.
HTTP 메시지의 헤더로부터 추출된 헤더 정보에 대응하는 파싱 툴이 선택되면, 선택된 파싱 툴에 대응하는 파싱 룰이 식별될 수 있다. 전자 장치(100)는 파싱 룰에 따라 HTTP 메시지의 바디로부터 컨텐츠를 추출할 수 있다.
파싱 룰은 해당 파싱 룰이 HTTP 요청에 대한 것임을 나타내는 정보, 해당 파싱 룰이 form_data 파싱 툴에 대해 설정된 것임을 나타내는 정보를 포함할 수 있다.
또한, 파싱 룰에는 HTTP 메시지의 바디로부터 추출되어야 할 컨텐츠를 나타내는 하나 이상의 키, 및 키에 대응하는 밸류의 처리 옵션을 포함할 수 있다.
구체적으로, 파싱 룰에는 키로서, "text"와 "to"가 포함될 수 있다. "text"는 번역 전의 원문 텍스트를 추출하기 위한 키이고, "to"는 번역 후의 언어가 어느 나라의 언어인지를 나타내는 정보를 추출하기 위한 키일 수 있다.
또한, 파싱 룰에는 "text"에 대응하는 밸류의 처리 옵션으로 "key_only"가 설정되어 있고, "to"에 대응하는 밸류의 처리 옵션으로 "country_type"이 설정되어 있다.
키에 대응하는 밸류는 처리 옵션에 따라 처리될 수 있다. 예를 들어, 처리 옵션은 밸류를 출력하는 옵션, 밸류가 특정의 문자열이면, 이를 지정된 다른 문자열로 변환하여 출력하는 옵션, 밸류를 구분자로 분할하고, 분할된 밸류들을 어레이 형식으로 저장하는 옵션, 또는 밸류를 regex(regular expression) 문법을 통해 추출하는 옵션 등을 포함할 수 있다.
파싱 룰에 "text"와 "to"가 키로 포함되어 있는 경우, 전자 장치(100)는 HTTP 메시지의 바디에서 "text"와 "to"에 대응하는 텍스트를 식별하고, 식별된 텍스트의 밸류를 HTTP 메시지의 컨텐츠로 획득할 수 있다.
일 실시에에 의하면, HTTP 메시지의 바디에서 "text"에 대응하는 밸류는 인코딩되어 있으므로, 전자 장치(100)는 해당 밸류를 디코딩하여 원래의 밸류를 획득할 수 있다.
도 3는 일 실시예에 따라 전자 장치(100)에 포함된 모듈들의 동작을 설명하기 위한 블록도이다.
세션분류 모듈(310)는 세션이 L7 프로토콜의 파싱 처리가 필요한 세션(target)인지 또는 파싱 처리가 필요하지 않은 세션(non-target 세션)인지를 분류할 수 있다. 예를 들어, 세션분류 모듈(310)는 세션의 패킷들의 프로토콜이 TCP(Transmission Control Protocol)이며, 세션에 TCP 페이로드가 존재하고, 세션의 패킷들의 L7(Layer 7) 프로토콜이 소정의 프로토콜인 경우, 파싱 처리가 필요한 패킷으로 분류할 수 있다. 이때, 소정의 프로토콜은 HTTP, FTP, POP3, SMTP 중 적어도 하나일 수 있다.
세션분류 모듈(310)은 파싱 처리가 필요한 패킷으로 분류되지 않은 패킷은 파싱 처리가 필요하지 않은 패킷으로 분류할 수 있다. 파싱 처리가 필요하지 않은 패킷의 일 예로, UDP(User Datagram Protocol) 패킷을 포함할 수 있다.
파싱 모듈(320)는 L7 프로토콜의 파싱 동작을 처리할 수 있다. L7 프로토콜은 HTTP, FTP, POP3, SMTP를 포함할 수 있다. 파싱 모듈(320)은 패킷들을 DLP/포렌식 처리 모듈(325)에서 처리하기 위해 필요한 데이터 형태로 변환하는 동작을 수행할 수 있다. 예를 들어, 파싱 모듈(320)은 패킷들을 JSON 포맷의 데이터로 출력할 수 있다. 예를 들어, 파싱 모듈(320)은 wireshark라고 불리는 자유 및 오픈 소스 패킷 분석 프로그램 모듈을 포함할 수 있다. 파싱 모듈(320)은 복수 개를 포함할 수 있고, 병렬적으로 구동될 수 있다. 하나의 파싱모듈(320)은 적어도 하나의 세션의 파싱 처리를 수행할 수 있다. 파싱모듈(320)에 의해 파싱 처리가 정상적으로 수행되면, 출력된 데이터는 DLP/포렌식 모듈(325)로 입력되어, DLP/포렌식 모듈(325)은 DLP 동작 및 포렌식 동작을 수행할 수 있다.
파싱모듈(320)의 메모리 사용량이 임계치보다 높은 경우, 메모리 사용량이 높은 순으로 일부 파싱모듈(320)의 파싱 처리가 종료되고, 종료된 세션은 강제종료세션 처리 모듈(330)에 의해 처리될 수 있다.
강제종료세션 처리 모듈(330)은 파싱 강제 종료세션 로그기록 모듈(340) 및 DLP 추출정보 및 로그기록정보 비교모듈(350)을 포함할 수 있다.
파싱 강제 종료세션 로그기록 모듈(340)은 강제 종료된 세션의 로그기록 정보를 획득할 수 있다. 파싱 강제종료세션 로그기록 모듈(340)은 파싱 강제종료세션이 미리 분류된 특이 CASE 세션에 대응되는지를 식별하고, 식별된 특이 CASE 섹션에 따라, 패킷으로부터 로그기록 정보를 획득할 수 있다. 로그기록 정보를 획득하는 동작은 전술한 바 있으므로, 설명을 생략하기로 한다.
DLP 추출정보 및 로그기록 정보 비교 모듈(350)은 로그기록정보에 포함된 호스트, URL, 메쏘드 정보 중 적어도 하나를 DLP 추출정보에 포함된 호스트, URL, 메쏘드 정보 중 적어도 하나와 비교하여 비교 결과를 출력할 수 있다. 여기서 DLP 추출정보는 전술한 필터 룰에 대응될 수 있고, 이는 미리 정해진 정보일 수 있다. DLP 추출정보 및 로그기록 정보 비교 모듈(350)의 출력 결과는 세션분류모듈(310)로 입력될 수 있다.
세션분류모듈(310)은 DLP 추출정보 및 로그기록 정보를 비교한 결과를 기초로 해당 세션을 분류할 수 있다. 예를 들어, 세션분류모듈(310)는 비교 결과가 DLP 추출정보가 로그기록 정보와 매칭함을 나타내는 경우, 파싱처리가 필요한 세션(target session)으로 분류할 수 있다
세션분류모듈(310)는 비교 결과가 DLP 추출정보가 로그기록 정보와 매칭하지 않음을 나타내는 경우, 파싱처리가 필요하지 않은 세션(non-target session)으로 분류할 수 있다.
DLP/포렌식 모듈(360)은 해당 세션이 target session인 경우, 파싱 모듈(320)에서 처리된 데이터를 입력으로 하여 DLP 동작 및 포렌식 동작을 수행할 수 있다.
DLP/포렌식 모듈(325)은 해당 세션이 non-target session인 경우, 파싱 모듈(320)의 처리없이 세션 모듈(310)에서 출력된 세션의 패킷들에 대한 포렌식 동작을 수행할 수 있다. 파싱모듈(320)의 파싱 처리가 수행되지 않으므로, DLP 동작은 처리되지 않을 수 있다.
강제종료세션 처리 모듈(330)은 파싱 강제 종료세션 로그기록 모듈(340) 및 DLP 추출정보 및 로그기록 정보 비교 모듈(350)을 포함하는 것에 제한되지 않고, 세션분류모듈(310) 및 파싱 모듈(320) 중 적어도 하나를 더 포함할 수 있다. 이 때 포함되는 세션분류모듈 및 파싱 모듈은 세션분류모듈(310) 및 파싱 모듈(320)과 별개의 모듈일 수 있으나, 이에 제한되지 않고, 세션분류모듈(310) 및 파싱 모듈(320) 중 일부일 수 있다.
도 4는 일 실시예에 따른 전자 장치(100)의 구성을 도시하는 블록도이다.
도 4를 참조하면, 전자 장치(100)는 메모리(410), 제어부(430), 통신부(470) 및 디스플레이(450)를 포함할 수 있다.
메모리(410)는 하나 이상의 인스트럭션을 저장할 수 있다. 일 실시예에서, 메모리(410)는 메시지의 파싱을 위한 필터 룰 및 파싱 룰을 저장할 수 있다.
제어부(430)는 메모리(410)에 저장된 하나 이상의 인스트럭션에 따라 동작할 수 있다. 일 실시예에서, 제어부(430)는 프로세서로 구현될 수 있다.
일 실시예에서, 제어부(430)는 복수의 파싱 모듈에서 복수의 세션(Session)의 패킷들을 파싱(Parsing)할 수 있다. 제어부(430)는 Layer 7 프로토콜의 패킷들의 헤더 정보 및 페이로드 정보를 JSON(JavaScript Object Notation) 포맷으로 출력할 수 있다. Layer 7 프로토콜은 HTTP(HyperText Transfer Protocol), FTP(File Transfer Protocol), POP3 및 SMTP(Simple Mail Transfer Protocol) 중 적어도 하나를 포함할 수 있다.
제어부(430)는 복수의 파싱 모듈의 메모리 사용량이 임계값보다 큰 경우, 일부 세션의 파싱 처리를 종료할 수 있다. 제어부(430)는 파싱 모듈의 메모리 사용량이 많은 순으로 세션의 파싱 처리를 종료할 수 있다.
제어부(430)는 종료된 일부 세션의 로그기록 정보를 획득할 수 있다.
제어부(430)는 종료된 일부 세션이 소정의 섹션인지를 식별할 수 있다. 제어부(430)는 식별된 소정의 섹션에 따라 세션의 로그 기록 정보를 획득할 수 있다. 제어부(430)는 식별된 일부 세션이 큰 사이즈의 HTTP 세션인 경우, 컨텐츠와 관련된 HTTP 세션의 특정 패킷의 URL 정보, 호스트 정보 및 메쏘드 정보를 획득할 수 있다.
제어부(430)는 식별된 일부 세션이 작은 사이즈의 HTTP 반복 세션인 경우, HTTP 세션의 임의의 패킷의 URL 정보, 호스트 정보 및 메쏘드 정보를 획득할 수 있다.
제어부(430)는 식별된 일부 세션이 큰 사이즈의 FTP 데이터 세션인 경우, 컨텐츠와 관련된 FTP 세션의 특정 패킷의 호스트 정보를 획득할 수 있다.
제어부(430)는 종료된 일부 세션의 로그기록 정보와 DLP(Data Loss Prevention) 추출 정보의 매칭 여부를 판단할 수 있다.
제어부(430)는 로그기록 정보에 포함된 URL(Uniform Resource Locator) 정보, 호스트(host) 정보 및 메쏘드(method) 정보 중 적어도 하나가 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보 중 적어도 하나와 매칭하는지 여부를 판단할 수 있다.
제어부(430)는 매칭 여부의 판단 결과에 따라, 상기 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식(Forensic) 동작 중 적어도 하나의 동작을 처리할 수 있다.
제어부(430)는 판단 결과에 따라, 상기 파싱 모듈의 처리가 필요한 세션을 분류할 수 있다. 제어부(430)는 분류 결과에 따라, 파싱 모듈에서 상기 종료된 일부 세션의 패킷들에 대한 파싱 동작을 재처리할 수 있다. 제어부(430)는 재처리된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작을 처리할 수 있다.
제어부(430)는 세션의 패킷들의 프로토콜이 TCP(Transmission Control Protocol)이며, 상기 세션에 TCP 페이로드가 존재하고, 상기 세션의 패킷들의 L7(Layer 7) 프로토콜이 소정의 프로토콜인 경우, 파싱 처리가 필요한 패킷으로 분류할 수 있다. 이때, 소정의 프로토콜은 HTTP, FTP, POP3(Post Office Protocol 3), SMTP 중 적어도 하나일 수 있다.
제어부(430)는 파싱 처리가 필요한 패킷으로 분류되지 않은 패킷은 파싱 처리가 필요하지 않은 패킷으로 분류할 수 있다. 이때, 파싱 처리가 필요하지 않은 패킷은 UDP(User Datagram Protocol) 패킷을 포함할 수 있다.
제어부(430)는 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 상기 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 매칭하는 경우, 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작을 처리할 수 있다. 포렌식 동작은 패킷들의 헤더 정보로부터 패킷들의 IP 정보, 포트 정보, 및 시간 정보 중 적어도 하나의 정보를 JSON 포맷으로 출력하는 동작을 포함할 수 있다. DLP 동작은 필터 룰에 따라 복수의 파싱 툴 중 패킷의 헤더 정보에 대응하는 파싱 툴을 선택하고, 상기 선택된 파싱 툴에 대응하는 파싱 룰에 따라 패킷의 페이로드 정보로부터 컨텐츠를 추출하는 동작을 포함할 수 있다.
제어부(430)는 상기 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 매칭하지 않는 경우, 상기 일부 세션의 패킷들에 대하여 DLP 동작을 처리하지 않고, 포렌식 동작을 처리할 수 있다.
통신부(470)는 클라이언트 기기(10)와 서버(20) 사이에서 송수신되는 패킷을 수신할 수 있다. 통신부(470)는 수신된 패킷을 제어부(430)로 전달할 수 있다.
디스플레이(450)는 제어부(430)에 의해 추출된 컨텐츠를 출력할 수 있다. 디스플레이(450)는 파싱 룰에 포함된 처리 옵션에 따라 컨텐츠를 출력할 수도 있다.
일 실시예에서, 제어부(430)는 메시지로부터 추출된 컨텐츠가 미리 지정된 유출 방지 컨텐츠에 해당하면, 클라이언트 기기(10)와 서버(20) 사이에서 송수신되는 메시지를 차단함으로써 보안 정보가 유출되는 것을 방지할 수 있다.
다른 실시예에서, 제어부(430)는 HTTP 메시지로부터 추출된 컨텐츠가 미리 지정된 유출 방지 컨텐츠에 해당하면, 통신부(470)를 통해 관리자 단말로 보안 정보가 유출되었음을 알릴 수도 있다.
본 발명의 다양한 실시예에 의하면, 파싱 모듈에 의한 Out Of Memory 현상이 발생하는 것을 효과적으로 차단할 수 다. 또한, 메모리 관리 차원에서 종료된 특정 케이스 세션의 로그기록 정보와 DLP 추출 정보의 매칭여부에 따라 파싱 모듈의 처리를 생략함으로써, 파싱 모듈로 인한 처리 지연을 효과적으로 방지할 수 있다. 또한, 메모리 관리 차원에서 종료된 특정 케이스 세션의 로그기록 정보와 DLP 추출 정보의 매칭여부에 따라, 선택적으로 패킷 내의 컨텐츠를 추출 및 분석함으로써, 개인 정보 및 기업 정보가 유출되는 것을 효과적으로 방지할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 매체에 저장될 수 있다.
상기 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함할 수 있으나, 이에 한정되는 것은 아니다.
이상, 구체적인 실시예에 관해서 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 당해 분야에서 통상의 지식을 가진 자에게 있어서 자명하다 할 것이다.

Claims (15)

  1. 전자 장치에 의한 트래픽의 분석 방법에 있어서,
    복수의 파싱 모듈에서 복수의 세션(Session)의 패킷들을 파싱(Parsing)하는 단계;
    상기 복수의 파싱 모듈의 메모리 사용량이 임계값보다 큰 경우, 일부 세션의 파싱 처리를 종료하는 단계;
    상기 종료된 일부 세션의 로그기록 정보를 획득하는 단계;
    상기 종료된 일부 세션의 로그기록 정보와 DLP(Data Loss Prevention) 추출 정보의 매칭 여부를 판단하는 단계; 및
    상기 매칭 여부의 판단 결과에 따라, 상기 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식(Forensic) 동작 중 적어도 하나의 동작을 처리하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 매칭 여부를 판단하는 단계는,
    상기 로그기록 정보에 포함된 URL(Uniform Resource Locator) 정보, 호스트(host) 정보 및 메쏘드(method) 정보가 상기 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 매칭하는지 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 매칭 여부의 판단 결과에 따라, 상기 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작 중 적어도 하나의 동작을 처리하는 단계는,
    상기 판단 결과에 따라, 상기 파싱 모듈의 처리가 필요한 세션을 분류하는 단계;
    상기 분류 결과에 따라, 상기 파싱 모듈에서 상기 종료된 일부 세션의 패킷들에 대한 파싱 동작을 재처리하는 단계; 및
    상기 재처리된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작을 처리하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 2 항에 있어서,
    상기 매칭 여부의 판단 결과에 따라, 상기 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작 중 적어도 하나의 동작을 처리하는 단계는,
    상기 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 상기 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 매칭하는 경우, 상기 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식 동작을 처리하는 단계; 및
    상기 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 매칭하지 않는 경우, 상기 일부 세션의 패킷들에 대하여 DLP 동작을 처리하지 않고, 포렌식 동작을 처리하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 일부 세션의 파싱 처리를 종료하는 단계는,
    상기 복수의 파싱 모듈의 메모리 사용량이 임계값보다 큰 경우, 파싱 모듈의 메모리 사용량이 많은 순으로 세션의 파싱 처리를 종료하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서,
    상기 종료된 일부 세션의 로그기록 정보를 획득하는 단계는,
    상기 종료된 일부 세션이 소정의 섹션인지를 식별하는 단계; 및
    상기 식별된 소정의 섹션에 따라 세션의 로그 기록 정보를 획득하는 단계를 포함하고,
    상기 식별된 소정의 섹션에 따라 세션의 로그 기록 정보를 획득하는 단계는,
    상기 식별된 일부 세션이 큰 사이즈의 HTTP 세션인 경우, 컨텐츠와 관련된 HTTP 세션의 특정 패킷의 URL 정보, 호스트 정보 및 메쏘드 정보를 획득하는 단계;
    상기 식별된 일부 세션이 작은 사이즈의 HTTP 반복 세션인 경우, HTTP 세션의 임의의 패킷의 URL 정보, 호스트 정보 및 메쏘드 정보를 획득하는 단계; 및
    상기 식별된 일부 세션이 큰 사이즈의 FTP 데이터 세션인 경우, 컨텐츠와 관련된 FTP 세션의 특정 패킷의 호스트 정보를 획득하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서,
    상기 복수의 파싱 모듈에서 복수의 세션의 패킷들을 파싱하는 단계는,
    Layer 7 프로토콜의 패킷들의 헤더 정보 및 페이로드 정보를 JSON(JavaScript Object Notation) 포맷으로 출력하는 단계를 포함하고,
    상기 Layer 7 프로토콜은 HTTP(HyperText Transfer Protocol), FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol) 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서,
    상기 포렌식 동작은
    상기 패킷들의 헤더 정보로부터 패킷들의 IP 정보, 포트 정보, 및 시간 정보 중 적어도 하나의 정보를 JSON 포맷으로 출력하는 동작을 포함하는 것을 특징으로 하는 방법.
  9. 제 1 항에 있어서,
    상기 세션의 패킷들의 프로토콜이 TCP(Transmission Control Protocol)이며, 상기 세션에 TCP 페이로드가 존재하고, 상기 세션의 패킷들의 L7(Layer 7) 프로토콜이 소정의 프로토콜인 경우, 파싱 처리가 필요한 패킷으로 분류하는 단계; 및
    상기 파싱 처리가 필요한 패킷으로 분류되지 않은 패킷은 파싱 처리가 필요하지 않은 패킷으로 분류하는 단계를 더 포함하고,
    상기 소정의 프로토콜은 HTTP, FTP, POP3(Post Office Protocol 3), SMTP 중 적어도 하나이고,
    상기 파싱 처리가 필요하지 않은 패킷은 UDP(User Datagram Protocol) 패킷을 포함하는 것을 특징으로 하는 방법.
  10. 제 1 항에 있어서,
    상기 DLP 동작은,
    필터 룰에 따라 복수의 파싱 툴 중 패킷의 헤더 정보에 대응하는 파싱 툴을 선택하고, 상기 선택된 파싱 툴에 대응하는 파싱 룰에 따라 패킷의 페이로드 정보로부터 컨텐츠를 추출하는 동작을 포함하는 것을 특징으로 하는 방법.
  11. 제 1 항에 있어서,
    상기 패킷은 클라이언트 기기와 서버 사이에서 송수신되는 패킷이며,
    상기 DLP 동작에 의해 추출된 컨텐츠가 유출 방지 컨텐츠에 해당하는 경우, 상기 클라이언트 기기와 서버 사이의 패킷의 송수신 동작을 차단하는 단계를 더 포함하는 방법.
  12. 하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 하나의 인스트럭션에 따라 동작하는 프로세서를 포함하되,
    상기 프로세서는,
    복수의 파싱 모듈에서 복수의 세션(Session)의 패킷들을 파싱(Parsing)하고,
    상기 복수의 파싱 모듈의 메모리 사용량이 임계값보다 큰 경우, 일부 세션의 파싱 처리를 종료하고,
    상기 종료된 일부 세션의 로그기록 정보를 획득하고,
    상기 종료된 일부 세션의 로그기록 정보와 DLP(Data Loss Prevention) 추출 정보의 매칭 여부를 판단하고,
    상기 매칭 여부의 판단 결과에 따라, 상기 종료된 일부 세션의 패킷들에 대하여 DLP 동작 및 포렌식(Forensic) 동작 중 적어도 하나의 동작을 처리하는, 전자 장치.
  13. 제 12 항에 있어서,
    상기 프로세서는,
    상기 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 상기 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 매칭하는 경우, 상기 일부 세션의 패킷들에 대하여 상기 파싱 모듈에 의한 파싱 동작의 처리와 함께 DLP 동작 및 포렌식 동작을 처리하고,
    상기 로그기록 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보와 DLP 추출 정보에 포함된 URL 정보, 호스트 정보 및 메쏘드 정보가 매칭하지 않는 경우, 상기 일부 세션의 패킷들에 대하여 상기 파싱 모듈에 의한 파싱 동작 및 DLP 동작을 처리하지 않고, 포렌식 동작을 처리하는 것을 특징으로 하는 전자 장치.
  14. 제 12 항에 있어서,
    상기 프로세서는,
    상기 종료된 일부 세션의 로그기록 정보를 획득할 때,
    상기 종료된 일부 세션이 소정의 섹션인지를 식별하고, 상기 식별된 소정의 섹션에 따라 세션의 로그 기록 정보를 획득하고,
    상기 프로세서는, 상기 식별된 소정의 섹션에 따라 세션의 로그 기록 정보를 획득할 때,
    상기 식별된 일부 세션이 큰 사이즈의 HTTP 세션인 경우, 컨텐츠와 관련된 HTTP 세션의 특정 패킷의 URL 정보, 호스트 정보 및 메쏘드 정보를 획득하고,
    상기 식별된 일부 세션이 작은 사이즈의 HTTP 반복 세션인 경우, HTTP 세션의 임의의 패킷의 URL 정보, 호스트 정보 및 메쏘드 정보를 획득하고,
    상기 식별된 일부 세션이 큰 사이즈의 FTP 데이터 세션인 경우, 컨텐츠와 관련된 FTP 세션의 특정 패킷의 호스트 정보를 획득하는 것을 특징으로 하는 전자 장치.
  15. 하드웨어와 결합하여 제 1 항 내지 제 11 항 중 어느 하나의 항의 방법을 실행하기 위하여 저장된 프로그램.
KR1020220153081A 2022-07-13 2022-11-15 전자 장치 및 이에 의한 트래픽의 분석 방법 KR20240009320A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220086444 2022-07-13
KR20220086444 2022-07-13

Publications (1)

Publication Number Publication Date
KR20240009320A true KR20240009320A (ko) 2024-01-22

Family

ID=89716462

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220153081A KR20240009320A (ko) 2022-07-13 2022-11-15 전자 장치 및 이에 의한 트래픽의 분석 방법

Country Status (1)

Country Link
KR (1) KR20240009320A (ko)

Similar Documents

Publication Publication Date Title
Narayan et al. A survey of automatic protocol reverse engineering tools
US10721244B2 (en) Traffic feature information extraction method, traffic feature information extraction device, and traffic feature information extraction program
US10447560B2 (en) Data leakage protection in cloud applications
US8010685B2 (en) Method and apparatus for content classification
US8474043B2 (en) Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing
CN109194680B (zh) 一种网络攻击识别方法、装置及设备
Erlacher et al. On high-speed flow-based intrusion detection using snort-compatible signatures
CN106936791B (zh) 拦截恶意网址访问的方法和装置
CN114157502B (zh) 一种终端识别方法、装置、电子设备及存储介质
CN102724317A (zh) 一种网络数据流量分类方法和装置
US8799714B1 (en) Generating test scenarios from application-layer messages
Munea et al. Network protocol fuzz testing for information systems and applications: a survey and taxonomy
CN110581780B (zh) 针对web服务器资产的自动识别方法
WO2019043804A1 (ja) ログ分析装置、ログ分析方法及びコンピュータ読み取り可能記録媒体
US9584549B2 (en) Image monitoring framework
CN115865525B (zh) 日志数据处理方法、装置、电子设备和存储介质
KR20240009320A (ko) 전자 장치 및 이에 의한 트래픽의 분석 방법
CN114760216B (zh) 一种扫描探测事件确定方法、装置及电子设备
CN114553546A (zh) 基于网络应用的报文抓取的方法和装置
KR102663914B1 (ko) 전자 장치 및 이에 의한 http 트래픽의 분석 방법
CN113835981A (zh) 日志格式适配方法、系统、装置及计算机可读存储介质
CN114301802A (zh) 密评检测方法、装置和电子设备
WO2017110100A1 (ja) 情報処理装置、情報処理方法及びプログラム
Xiao et al. Automatic network protocol message format analysis
JP2021529470A (ja) データストリームのプロトコルの識別

Legal Events

Date Code Title Description
E902 Notification of reason for refusal