KR102455142B1 - 컨테이너 환경을 위한 eBPF(extended Berkeley Packet Filter)/XDP(Express Data Path)에 기반한 고속 네트워크 패킷 페이로드 검사 시스템 - Google Patents

컨테이너 환경을 위한 eBPF(extended Berkeley Packet Filter)/XDP(Express Data Path)에 기반한 고속 네트워크 패킷 페이로드 검사 시스템 Download PDF

Info

Publication number
KR102455142B1
KR102455142B1 KR1020220006935A KR20220006935A KR102455142B1 KR 102455142 B1 KR102455142 B1 KR 102455142B1 KR 1020220006935 A KR1020220006935 A KR 1020220006935A KR 20220006935 A KR20220006935 A KR 20220006935A KR 102455142 B1 KR102455142 B1 KR 102455142B1
Authority
KR
South Korea
Prior art keywords
payload
container
pattern
packet
ebpf
Prior art date
Application number
KR1020220006935A
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 KR1020220006935A priority Critical patent/KR102455142B1/ko
Priority to US17/860,333 priority patent/US20230231830A1/en
Application granted granted Critical
Publication of KR102455142B1 publication Critical patent/KR102455142B1/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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0254Stateful filtering
    • 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
    • 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
    • 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/0245Filtering by information in the payload
    • 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/0263Rule management
    • 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
    • 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/1416Event detection, e.g. attack signature detection
    • 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/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 명세서는 단말이 고속 네트워크 패킷 페이로드(payload)를 검사하는 방법에 있어서, 사용자로부터, 컨테이너(Container)와 관련된 L7(Layer 7) 정책(Policy)를 입력받는 단계; 패턴 컴파일러를 통해, 상기 L7 정책에 근거하여 상기 컨테이너 별로 검사할 문자열 패턴들을 추출하는 단계; 상기 패턴 컴파일러를 통해, 상기 추출된 문자열 패턴들에 근거하여, 결정적 유한 오토마톤(Deterministic finite automaton, DFA)을 생성하는 단계; 및 상기 패턴 컴파일러를 통해, 상기 결정적 유한 오토마톤의 상태 전이표를 match-action 테이블로 변환하고, 페이로드 검사 엔진을 위한 eBPF(Extended Berkeley Packet Filter) 맵(map)에 저장하는 단계;를 포함할 수 있다.

Description

컨테이너 환경을 위한 eBPF(extended Berkeley Packet Filter)/XDP(Express Data Path)에 기반한 고속 네트워크 패킷 페이로드 검사 시스템 { A HIGH-SPEED NETWORK PACKET PAYLOAD INSPECTION SYSTEM BASED ON EBPF/XDP FOR A CONTAINER ENVIRONMENT }
본 명세서는 컨테이너 환경을 위한 eBPF/XDP에 기반한 고속 네트워크 패킷 페이로드 검사 시스템을 구성하는 방법 및 이를 위한 장치에 관한 것이다.
리눅스 컨테이너이란 OS-level의 가상화 기술로, 시스템의 나머지 부분과 격리된 프로세스 세트(예를 들어, Process, file system, network)를 의미한다. Host kernel은 모든 컨테이너가 공유해서 사용할 수 있으며, 컨테이너는 기존의 hardware-level의 가상화 머신(VM)보다 가벼운 것을 특징으로 한다. 현재 대부분의 클라우드 서비스는 컨테이너 환경에서 동작하고 있다. 예를 들어, 이러한 클라우드 서비스는 micro service architecture 형태로 운영될 수 있으며, 각 micro service가 컨테이너에서 실행될 수 있다.
eBPF는 네트워크 패킷 처리를 위해 개발된 Linux 커널 내의 가상머신이다. eBPF byte code로 작성된 프로그램은 커널영역에서 고속으로 동작할 수 있다.
XDP는 eBPF 프로그램을 등록하여 실행할 수 있는 Linux 커널 내의 네트워크 훅(hook)을 의미한다. 등록된 프로그램은 device driver 수준에서 고속으로 동작할 수 있으며, sk_buff 할당 전에 패킷을 처리할 수 있다. 이를 통해, 커널 네트워크 스택 보다 먼저 패킷 처리가 가능하다.
본 명세서의 목적은, 컨테이너 환경을 위한 eBPF/XDP에 기반한 고속 네트워크 패킷 페이로드 검사 시스템을 구성하는 방법을 제안한다.
본 명세서가 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 명세서의 상세한 설명으로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서의 일 양상은, 단말이 고속 네트워크 패킷 페이로드(payload)를 검사하는 방법에 있어서, 사용자로부터, 컨테이너(Container)와 관련된 L7(Layer 7) 정책(Policy)를 입력받는 단계; 패턴 컴파일러를 통해, 상기 L7 정책에 근거하여 상기 컨테이너 별로 검사할 문자열 패턴들을 추출하는 단계; 상기 패턴 컴파일러를 통해, 상기 추출된 문자열 패턴들에 근거하여, 결정적 유한 오토마톤(Deterministic finite automaton, DFA)을 생성하는 단계; 및 상기 패턴 컴파일러를 통해, 상기 결정적 유한 오토마톤의 상태 전이표를 match-action 테이블로 변환하고, 페이로드 검사 엔진을 위한 eBPF(Extended Berkeley Packet Filter) 맵(map)에 저장하는 단계; 를 포함할 수 있다.
또한, 상기 패턴 컴파일러는 사용자 영역(User Space)에 위치하고, 상기 페이로드 검사 엔진은 커널 영역(Kernel space)에 위치할 수 있다.
또한, 상기 결정적 유한 오토마톤은 상기 추출된 문자열 패턴들을 탐지하기 위한 구조를 갖을 수 있다.
또한, 상기 패턴 컴파일러는 상기 L7 정책의 변화를 감지하기 위해, 상기 컨테이너와 관련된 플랫폼을 모니터링할 수 있다.
또한, 특정 컨테이너로부터 패킷이 전송되는 경우, 상기 페이로드 검사 엔진을 통해 상기 패킷에서 페이로드를 추출하는 단계; 및 상기 페이로드 검사 엔진을 통해, 상기 특정 컨테이너와 관련된 eBPF 맵에서 상태 전이표를 획득하고, 상기 페이로드의 패턴을 검사하는 단계; 를 더 포함할 수 있다.
또한, 상기 상태 전이표에 근거하여, 상기 페이로드의 패턴이 일치하는 경우, 목적 컨테이너로 상기 패킷을 전달하는 단계; 를 더 포함할 수 있다.
또한, 상기 상태 전이표에 근거하여, 상기 페이로드의 패턴이 일치하지 않는 경우, 상기 패킷을 드랍(drop)하는 단계;를 더 포함할 수 있다.
본 명세서의 또 다른 일 양상은 고속 네트워크 패킷 페이로드(payload)를 검사하는 시스템에 있어서, 사용자로부터, 입력받은 컨테이너(Container)와 관련된 L7(Layer 7) 정책(Policy)에 근거하여, 상기 컨테이너 별로 검사할 문자열 패턴들을 추출하고, 상기 추출된 문자열 패턴들에 근거하여, 결정적 유한 오토마톤(Deterministic finite automaton, DFA)을 생성하며, 상기 결정적 유한 오토마톤의 상태 전이표를 match-action 테이블로 변환하는 패턴 컴파일러; 및 상기 패턴 컴파일러부터 상기 match-action 테이블을 수신하고, eBPF(Extended Berkeley Packet Filter) 맵(map)에 저장하는 페이로드 검사 엔진; 을 포함할 수 있다.
또한, 본 명세서의 또 다른 일 양상은 고속 네트워크 패킷 페이로드(payload)를 검사하는 단말은, 통신모듈; 메모리; 및 상기 통신모듈 및 상기 메모리를 기능적으로 제어하기 위한 프로세서; 를 포함하며, 상기 프로세서는 사용자로부터, 컨테이너(Container)와 관련된 L7(Layer 7) 정책(Policy)를 입력받고, 패턴 컴파일러를 통해, 상기 L7 정책에 근거하여 상기 컨테이너 별로 검사할 문자열 패턴들을 추출하며, 상기 패턴 컴파일러를 통해, 상기 추출된 문자열 패턴들에 근거하여, 결정적 유한 오토마톤(Deterministic finite automaton, DFA)을 생성하고, 상기 패턴 컴파일러를 통해, 상기 결정적 유한 오토마톤의 상태 전이표를 match-action 테이블로 변환하고, 페이로드 검사 엔진을 위한 eBPF(Extended Berkeley Packet Filter) 맵(map)에 저장할 수 있다.
본 명세서의 실시예에 따르면, 컨테이너 환경을 위한 eBPF/XDP에 기반한 고속 네트워크 패킷 페이로드 검사 시스템을 구성할 수 있다.
본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 명세서와 관련된 전자 기기를 설명하기 위한 블록도이다.
도 2는 본 명세서에 적용될 수 있는 고속 네트워크 패킷 페이로드 검사 시스템의 예시이다.
도 3은 본 명세서에 적용될 수 있는 패턴 컴파일러의 일 실시예이다.
도 4는 본 명세서가 적용될 수 있는 일 실시예이다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 명세서에 대한 실시예를 제공하고, 상세한 설명과 함께 본 명세서의 기술적 특징을 설명한다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 명세서의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1은 본 명세서와 관련된 전자 기기를 설명하기 위한 블록도이다.
상기 전자 기기(100)는 무선 통신부(110), 입력부(120), 센싱부(140), 출력부(150), 인터페이스부(160), 메모리(170), 제어부(180) 및 전원 공급부(190) 등을 포함할 수 있다. 도 1에 도시된 구성요소들은 전자 기기를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 전자 기기는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
보다 구체적으로, 상기 구성요소들 중 무선 통신부(110)는, 전자 기기(100)와 무선 통신 시스템 사이, 전자 기기(100)와 다른 전자 기기(100) 사이, 또는 전자 기기(100)와 외부서버 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 상기 무선 통신부(110)는, 전자 기기(100)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.
이러한 무선 통신부(110)는, 방송 수신 모듈(111), 이동통신 모듈(112), 무선 인터넷 모듈(113), 근거리 통신 모듈(114), 위치정보 모듈(115) 중 적어도 하나를 포함할 수 있다.
입력부(120)는, 영상 신호 입력을 위한 카메라(121) 또는 영상 입력부, 오디오 신호 입력을 위한 마이크로폰(microphone, 122), 또는 오디오 입력부, 사용자로부터 정보를 입력받기 위한 사용자 입력부(123, 예를 들어, 터치키(touch key), 푸시키(mechanical key) 등)를 포함할 수 있다. 입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어명령으로 처리될 수 있다.
센싱부(140)는 전자 기기 내 정보, 전자 기기를 둘러싼 주변 환경 정보 및 사용자 정보 중 적어도 하나를 센싱하기 위한 하나 이상의 센서를 포함할 수 있다. 예를 들어, 센싱부(140)는 근접센서(141, proximity sensor), 조도 센서(142, illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor, 예를 들어, 카메라(121 참조)), 마이크로폰(microphone, 122 참조), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 본 명세서에 개시된 전자 기기는, 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부(151), 음향 출력부(152), 햅팁 모듈(153), 광 출력부(154) 중 적어도 하나를 포함할 수 있다. 디스플레이부(151)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 전자 기기(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부(123)로써 기능함과 동시에, 전자 기기(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.
인터페이스부(160)는 전자 기기(100)에 연결되는 다양한 종류의 외부 기기와의 통로 역할을 수행한다. 이러한 인터페이스부(160)는, 유/무선 헤드셋 포트(port), 외부 충전기 포트(port), 유/무선 데이터 포트(port), 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트(port), 오디오 I/O(Input/Output) 포트(port), 비디오 I/O(Input/Output) 포트(port), 이어폰 포트(port) 중 적어도 하나를 포함할 수 있다. 전자 기기(100)에서는, 상기 인터페이스부(160)에 외부 기기가 연결되는 것에 대응하여, 연결된 외부 기기와 관련된 적절할 제어를 수행할 수 있다.
또한, 메모리(170)는 전자 기기(100)의 다양한 기능을 지원하는 데이터를 저장한다. 메모리(170)는 전자 기기(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 전자 기기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다. 또한 이러한 응용 프로그램 중 적어도 일부는, 전자 기기(100)의 기본적인 기능(예를 들어, 전화 착신, 발신 기능, 메시지 수신, 발신 기능)을 위하여 출고 당시부터 전자 기기(100)상에 존재할 수 있다. 한편, 응용 프로그램은, 메모리(170)에 저장되고, 전자 기기(100) 상에 설치되어, 제어부(180)에 의하여 상기 전자 기기의 동작(또는 기능)을 수행하도록 구동될 수 있다.
제어부(180)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 전자 기기(100)의 전반적인 동작을 제어한다. 제어부(180)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(170)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.
또한, 제어부(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 도 1과 함께 살펴본 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(180)는 상기 응용 프로그램의 구동을 위하여, 전자 기기(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작시킬 수 있다.
전원공급부(190)는 제어부(180)의 제어 하에서, 외부의 전원, 내부의 전원을 인가받아 전자 기기(100)에 포함된 각 구성요소들에 전원을 공급한다. 이러한 전원공급부(190)는 배터리를 포함하며, 상기 배터리는 내장형 배터리 또는 교체가능한 형태의 배터리가 될 수 있다.
상기 각 구성요소들 중 적어도 일부는, 이하에서 설명되는 다양한 실시 예들에 따른 전자 기기의 동작, 제어, 또는 제어방법을 구현하기 위하여 서로 협력하여 동작할 수 있다. 또한, 상기 전자 기기의 동작, 제어, 또는 제어방법은 상기 메모리(170)에 저장된 적어도 하나의 응용 프로그램의 구동에 의하여 전자 기기 상에서 구현될 수 있다.
본 명세서에서 전자기기(100)는 단말로 통칭될 수 있다.
도 2는 본 명세서에 적용될 수 있는 고속 네트워크 패킷 페이로드 검사 시스템의 예시이다.
컨테이너는 Amazon, Google 등의 주요 클라우드 서비스 제공 업체에서 대규모 마이크로 서비스 구성을 위한 핵심 기술로 사용되고 있다. 이러한 적극적인 도입은 컨테이너로 인한 보안 위협의 증가도 가져왔다. 컨테이너들은 서비스 구성을 위해 가상 네트워크로 서로 연결되어 동작한다. 그 때문에 공격자는 탈취한 컨테이너에서 TCP (Transmission Control Protocol) 세션(session) 하이제킹(Hijacking), DNS(Domain Name System) 스푸핑(Spoofing) 등의 네트워크 공격을 통해 인접한 다른 컨테이너를 공격하거나 전체 시스템을 마비 시킬 수도 있다.
기존에는 이러한 위협을 방지하기 위해, 네트워크 정책에 따라 컨테이너가 전송한 패킷을 필터링하여 컨테이너의 통신을 제한하는 것으로 컨테이너 간에 발생 가능한 네트워크 공격을 예방하였다. 그러나, 이들은 패킷의 페이로드 검사 과정에서 매우 큰 네트워크 성능 저하를 일으킬 수 있다.
예를 들어, 기존 보안 솔루션들은 컨테이너가 전송한 패킷을 고속으로 검사하기 위해 eBPF 프로그램으로 구현된 패킷 검사 프로그램을 사용한다. 이러한 검사 프로그램은 커널 영역에서 고속으로 동작하지만 복잡한 자료구조, 라이브러리 함수 호출, 프로그램 최대 길이가 제한되어 있어 패킷의 페이로드는 효과적으로 검사할 수 없다. 따라서 기존 보안 솔루션들은 페이로드 검사가 필요한 모든 패킷을 유저 영역에서 동작하는 별도의 프록시 서버로 전송해 처리한 뒤 다시 목적지로 전송해야 한다. 컨테이너가 주로 HTTP 등 L7 프로토콜을 사용해 통신함으로 페이로드 검사는 네트워크 보안에 있어 필수적이지만, 기존 솔루션들은 전술한 바와 같이, 페이로드 검사를 활성화하면 컨테이너 간 통신 성능 (예를 들어, 네트워크 지연, 처리량)이 50% 이상 감소할 수 있다. 이러한 현재 솔루션들은 AR/VR 등 네트워크 지연에 민감하고 높은 네트워크 처리량을 요구하는 서비스에는 사실상 적용하기 어렵다.
도 2를 참조하면, 전술한 문제를 해결하기 위해 컨테이너 환경을 위한 고성능 패킷 페이로드 검사 시스템인 BPFilter를 예시한다.
BPFilter는 eBPF 프로그램만을 사용해 컨테이너가 전송한 패킷의 페이로드를 고속으로 검사하는 시스템으로 (1) 패턴 컴파일러 및 (2) 페이로드 검사 엔진을 포함한다.
패턴 컴파일러는 유저 영역에서 동작할 수 있으며, 사용자가 입력한 L7 정책에서 패킷에서 검사할 문자열 패턴을 추출한 뒤 eBPF 프로그램에서 처리 가능한 형태로 변환해 eBPF 맵에 저장할 수 있다.
페이로드 검사 엔진은 eBPF 프로그램으로 Linux 커널 XDP 훅에서 실행되며 패턴 컴파일러가 생성한 eBPF 맵에 따라 고속으로 컨테이너가 전송한 패킷의 페이로드를 검사해 정책에 위배되는 패킷을 폐기하여 컨테이너간의 L7 통신을 제한할 수 있다.
도 3은 본 명세서에 적용될 수 있는 패턴 컴파일러의 일 실시예이다.
도 3을 참조하면, 패턴 컴파일러는 커널 수준에서 페이로드 검사를 구현하기 위해 eBPF 맵을 활용한 오토마톤(Automaton) 기반의 다중 패턴 매칭 알고리즘을 사용할 수 있다. 패턴 컴파일러의 일 실시예는 다음과 같다.
1. 사용자는 컨테이너 별로 검사할 L7 정책을 입력할 수 있다.
2. 패턴 컴파일러는 정책에서 각 컨테이너별로 검사할 문자열 패턴들을 추출할 수 있다.
3. 패턴 컴파일러는 추출한 패턴들을 탐지할 수 있는 결정적 유한 오토마톤을 생성한다.
4. 패턴 컴파일러는 생성된 오토마톤의 상태 전이표를 일반적인 네트워크 패킷 처리에 활용되는 match-action 표 형태로 변환하여 컨테이너 별로 할당된 eBPF 맵에 저장한다.
이를 통해 eBPF 프로그램은 별도의 자료구조 사용이나 알고리즘의 구현 없이 페이로드의 각 바이트를 키를 이용하여 eBPF 맵을 조회함으로써, Aho-Corasick 알고리즘과 유사하게 복수의 패턴을 한 번에 탐지할 수 있다.
예를 들어, 패턴 컴파일러는 Kubernetes 등과 같은 컨테이너 플랫폼을 지속적으로 모니터링하여 네트워크 정책에 변화를 감지할 수 있다. 이를 통해 패턴 컴파일러는 정책의 변화에 따라 패턴을 새로 컴파일한 뒤, eBPF 맵에 저장하여 페이로드 검사 엔진이 사용하는 eBPF 맵을 항상 최신 상태로 유지할 수 있다.
다시 도 2를 참조하면, 페이로드 검사 엔진은 eBPF 프로그램으로 구현된 선형 상태 머신일 수 있다. 페이로드 검사 엔진은 컨테이너가 패킷을 전송할 때 사용하는 네트워크 디바이스의 XDP 훅에 등록되어 해당 컨테이너가 패킷을 전송할 때마다 실행될 수 있다.
페이로드 검사 엔진은 먼저 컨테이너가 전송한 패킷의 헤더를 분석하여 페이로드 부분만 추출할 수 있다. 이후 해당 컨테이너에 할당된 eBPF 맵에서 오토마톤의 상태 전이 표를 가져온 뒤, 이를 바탕으로 페이로드를 바이트 단위로 읽고 오토마톤의 상태를 전이해 패턴들의 등장 여부를 검사할 수 있다.
페이로드 검사 엔진은 패킷의 페이로드에서 완전히 일치하는 패턴을 찾은 경우에만 해당 패킷을 목적지 컨테이너로 전송할 수 있다. 페이로드 검사 엔진은 다른 보안 솔루션(Other Solutions)이 커널 XDP 훅에 등록한 eBPF 프로그램 뒤에서 실행되도록 실행 순서를 조절할 수 있어, 다른 솔루션의 페이로드 검사용 add-on처럼 활용될 수 있다.
도 4는 본 명세서가 적용될 수 있는 일 실시예이다.
도 4를 참조하면, 단말은 전술한 고속 네트워크 패킷 페이로드 검사 시스템을 포함할 수 있다.
단말은 Layer 7(L7) 정책(policy)를 입력받는다(S4000). 예를 들어, 사용자는 컨테이너(Container) 별로 검사되는 L7 정책을 단말로 입력할 수 있다.
단말은 패턴 컴파일러를 통해, L7 정책에 근거하여, 컨테이너 별로 검사할 문자열 패턴(pattern)들을 추출한다(S4100). 예를 들어, 패턴 컴파일러는 유저 영역(User Space)에 포함될 수 있다.
단말은 패턴 컴파일러를 통해, 추출된 문자열 패턴들에 근거하여, 결정적 유한 오토마톤(Deterministic finite automaton, DFA)을 생성한다(S4200). 예를 들어, 결정적 유한 오토마톤은 추출된 패턴들을 탐지하기 위한 구조를 가질 수 있다.
단말은 패턴 컴파일러를 통해, 졀정적 유한 오토마톤의 상태 전이표를 네트워크 패킷 처리를 위한 match-action table 형태로 변환하고, 페이로드(payload) 검사 엔진을 위한 eBPF(Extended Berkeley Packet Filter) 맵(map)에 저장한다(S4300).
예를 들어, 패턴 컴파일러는 L7 정책 변화를 감지하기 위해, 컨테이너 플랫폼을 모니터링할 수 있다. 변화가 감지되면, 패턴 컴파일러는 eBPF 맵을 업데이트 할 수 있다.
단말은 특정 컨테이너로부터 패킷이 전송되는 경우, 페이로드 검사 엔진을 통해, 패킷에서 페이로드를 추출한다(S4400). 예를 들어, 페이로드는 패킷의 헤더(header)를 분석하여 추출될 수 있다.
단말은 페이로드 검사 엔진을 통해, 특정 컨테이너와 관련된 eBPF 맵에서 상태 전이표를 획득하고, 상태 전이표에 근거하여 페이로드에서 상태 전이표와 관련된 패턴을 검사한다(S4500). 예를 들어, 페이로드 검사 엔진은 페이로드 내부에 패턴이 등장하는 지 여부를 검사할 수 있다.
단말은 페이로드 검사 엔진을 통해, 패턴 검사 결과에 근거하여 패킷을 목적 컨테이너로 전달한다(S4600). 예를 들어, 페이로드 검사 엔진은 패턴이 완전히 일치하는 경우, 패킷을 목적 컨테이너로 전달할 수 있다. 만일, 패턴이 일치하지 않는 경우, 페이로드 검사 엔진은 패킷을 드랍(drop)할 수 있다. 만일, L7 정책이 black list와 관련된 경우, 페이로드 검사 엔진은 패턴이 일치하는 경우, 패킷을 드랍할 수 있다.
전술한 본 명세서는, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 명세서의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 명세서의 등가적 범위 내에서의 모든 변경은 본 명세서의 범위에 포함된다.
또한, 이상에서 서비스 및 실시 예들을 중심으로 설명하였으나 이는 단지 예시일 뿐 본 명세서를 한정하는 것이 아니며, 본 명세서가 속하는 분야의 통상의 지식을 가진 자라면 본 서비스 및 실시 예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예들에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부한 청구 범위에서 규정하는 본 명세서의 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (9)

  1. 단말이 고속 네트워크 패킷 페이로드(payload)를 검사하는 방법에 있어서,
    사용자로부터, 컨테이너(Container)와 관련된 L7(Layer 7) 정책(Policy)를 입력받는 단계;
    패턴 컴파일러를 통해, 상기 L7 정책에 근거하여 상기 컨테이너 별로 검사할 문자열 패턴들을 추출하는 단계;
    상기 패턴 컴파일러를 통해, 상기 추출된 문자열 패턴들에 근거하여, 상기 추출된 문자열 패턴들을 검사하기 위한 결정적 유한 오토마톤(Deterministic finite automaton, DFA)을 생성하는 단계; 및
    상기 패턴 컴파일러를 통해, 상기 결정적 유한 오토마톤의 상태 전이표를 match-action 테이블로 변환하고, 페이로드 검사 엔진을 위한 eBPF(Extended Berkeley Packet Filter) 맵(map)에 저장하는 단계;
    를 포함하며,
    상기 패턴 컴파일러는
    사용자 영역(User Space)에 위치하고,
    상기 페이로드 검사 엔진은
    커널 영역(Kernel space)에 위치하는,
    검사 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 패턴 컴파일러는
    상기 L7 정책의 변화를 감지하기 위해, 상기 컨테이너와 관련된 플랫폼을 모니터링하는, 검사 방법.
  4. 제1항에 있어서,
    특정 컨테이너로부터 패킷이 전송되는 경우, 상기 페이로드 검사 엔진을 통해 상기 패킷에서 페이로드를 추출하는 단계; 및
    상기 페이로드 검사 엔진을 통해, 상기 특정 컨테이너와 관련된 eBPF 맵에서 상태 전이표를 획득하고, 상기 페이로드에서 상기 상태 전이표와 관련된 패턴을 검사하는 단계;
    를 더 포함하는 검사 방법.
  5. 제4항에 있어서,
    상기 상태 전이표에 근거하여, 상기 페이로드의 패턴이 일치하는 경우, 목적 컨테이너로 상기 패킷을 전달하는 단계;
    를 더 포함하는 검사 방법.
  6. 제4항에 있어서,
    상기 상태 전이표에 근거하여, 상기 페이로드의 패턴이 일치하지 않는 경우, 상기 패킷을 드랍(drop)하는 단계;
    를 더 포함하는 검사 방법.
  7. 제4항에 있어서,
    상기 상태 전이표가 black list를 위한 것인 경우, 상기 상태 전이표에 근거하여, 상기 페이로드의 패턴이 일치하는 경우, 상기 패킷을 드랍(drop)하는 단계;
    를 더 포함하는 검사 방법.
  8. 고속 네트워크 패킷 페이로드(payload)를 검사하는 시스템에 있어서,
    사용자로부터, 입력받은 컨테이너(Container)와 관련된 L7(Layer 7) 정책(Policy)에 근거하여, 상기 컨테이너 별로 검사할 문자열 패턴들을 추출하고, 상기 추출된 문자열 패턴들에 근거하여, 결정적 유한 오토마톤(Deterministic finite automaton, DFA)을 생성하며, 상기 결정적 유한 오토마톤의 상태 전이표를 match-action 테이블로 변환하는 패턴 컴파일러; 및
    상기 패턴 컴파일러부터 상기 match-action 테이블을 수신하고, eBPF(Extended Berkeley Packet Filter) 맵(map)에 저장하는 페이로드 검사 엔진;
    을 포함하며,
    상기 패턴 컴파일러는
    사용자 영역(User Space)에 위치하고,
    상기 페이로드 검사 엔진은
    커널 영역(Kernel space)에 위치하는,
    검사 시스템.
  9. 고속 네트워크 패킷 페이로드(payload)를 검사하는 단말은,
    통신모듈;
    메모리; 및
    상기 통신모듈 및 상기 메모리를 기능적으로 제어하기 위한 프로세서; 를 포함하며,
    상기 프로세서는
    사용자로부터, 컨테이너(Container)와 관련된 L7(Layer 7) 정책(Policy)를 입력받고, 패턴 컴파일러를 통해, 상기 L7 정책에 근거하여 상기 컨테이너 별로 검사할 문자열 패턴들을 추출하며, 상기 패턴 컴파일러를 통해, 상기 추출된 문자열 패턴들에 근거하여, 결정적 유한 오토마톤(Deterministic finite automaton, DFA)을 생성하고, 상기 패턴 컴파일러를 통해, 상기 결정적 유한 오토마톤의 상태 전이표를 match-action 테이블로 변환하고, 페이로드 검사 엔진을 위한 eBPF(Extended Berkeley Packet Filter) 맵(map)에 저장하며,
    상기 패턴 컴파일러는
    사용자 영역(User Space)에 위치하고,
    상기 페이로드 검사 엔진은
    커널 영역(Kernel space)에 위치하는,
    단말.

KR1020220006935A 2022-01-18 2022-01-18 컨테이너 환경을 위한 eBPF(extended Berkeley Packet Filter)/XDP(Express Data Path)에 기반한 고속 네트워크 패킷 페이로드 검사 시스템 KR102455142B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220006935A KR102455142B1 (ko) 2022-01-18 2022-01-18 컨테이너 환경을 위한 eBPF(extended Berkeley Packet Filter)/XDP(Express Data Path)에 기반한 고속 네트워크 패킷 페이로드 검사 시스템
US17/860,333 US20230231830A1 (en) 2022-01-18 2022-07-08 High-speed network packet payload inspection system based on ebpf (extended berkeley packet filter)/xdp (express data path) for container environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220006935A KR102455142B1 (ko) 2022-01-18 2022-01-18 컨테이너 환경을 위한 eBPF(extended Berkeley Packet Filter)/XDP(Express Data Path)에 기반한 고속 네트워크 패킷 페이로드 검사 시스템

Publications (1)

Publication Number Publication Date
KR102455142B1 true KR102455142B1 (ko) 2022-10-17

Family

ID=83810085

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220006935A KR102455142B1 (ko) 2022-01-18 2022-01-18 컨테이너 환경을 위한 eBPF(extended Berkeley Packet Filter)/XDP(Express Data Path)에 기반한 고속 네트워크 패킷 페이로드 검사 시스템

Country Status (2)

Country Link
US (1) US20230231830A1 (ko)
KR (1) KR102455142B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220147407A1 (en) 2020-11-12 2022-05-12 New Relic, Inc. Automation solutions for event logging and debugging on kubernetes
US11928529B2 (en) * 2021-10-21 2024-03-12 New Relic, Inc. High-throughput BPF map manipulations with uprobes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150100926A (ko) * 2012-12-28 2015-09-02 후아웨이 테크놀러지 컴퍼니 리미티드 트래픽 분배 방법, 장치 및 시스템
KR20180122019A (ko) * 2016-03-23 2018-11-09 포그혼 시스템스 인코포레이티드 실시간 데이터플로우 프로그래밍 언어를 위한 도구 및 방법
US20190173841A1 (en) * 2017-12-06 2019-06-06 Nicira, Inc. Load balancing ipsec tunnel processing with extended berkeley packet filer (ebpf)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
WO2015198316A1 (en) * 2014-06-23 2015-12-30 Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. Method and system for providing deep packet inspection as a service
US20220217120A1 (en) * 2021-01-04 2022-07-07 Fastly Inc. Minimization optimizations for web application firewalls
US11943261B1 (en) * 2021-12-03 2024-03-26 Amazon Technologies, Inc. Cloud-based security service for improved compliance of mainframe workloads

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150100926A (ko) * 2012-12-28 2015-09-02 후아웨이 테크놀러지 컴퍼니 리미티드 트래픽 분배 방법, 장치 및 시스템
KR20180122019A (ko) * 2016-03-23 2018-11-09 포그혼 시스템스 인코포레이티드 실시간 데이터플로우 프로그래밍 언어를 위한 도구 및 방법
US20190173841A1 (en) * 2017-12-06 2019-06-06 Nicira, Inc. Load balancing ipsec tunnel processing with extended berkeley packet filer (ebpf)

Also Published As

Publication number Publication date
US20230231830A1 (en) 2023-07-20

Similar Documents

Publication Publication Date Title
US10110562B2 (en) Method to enable deep packet inspection (DPI) in openflow-based software defined network (SDN)
KR102455142B1 (ko) 컨테이너 환경을 위한 eBPF(extended Berkeley Packet Filter)/XDP(Express Data Path)에 기반한 고속 네트워크 패킷 페이로드 검사 시스템
US8966249B2 (en) Data security and integrity by remote attestation
US8701192B1 (en) Behavior based signatures
CN103051617B (zh) 识别程序的网络行为的方法、装置及系统
KR101089154B1 (ko) 가상환경을 이용한 네트워크 기반 망분리 장치, 시스템 및 방법
US20160006766A1 (en) Method and apparatus for providing analysis service based on behavior in mobile network environment
JP5920169B2 (ja) 不正コネクション検出方法、ネットワーク監視装置及びプログラム
US10091235B1 (en) Method, system, and apparatus for detecting and preventing targeted attacks
CN102387045A (zh) 嵌入式p2p流量监控系统及方法
US9032536B2 (en) System and method for incapacitating a hardware keylogger
CN111209031B (zh) 一种数据获取方法、装置、终端设备及存储介质
US8050266B2 (en) Low impact network debugging
JP5898024B2 (ja) マルウェア検出装置および方法
CN103067360A (zh) 程序网络行为识别方法及系统
CN111031004B (zh) 业务流量处理的方法、业务流量学习的方法、装置及系统
KR102479438B1 (ko) 하드웨어 기반의 신뢰할 수 있는 안전한 컨테이너 네트워크
KR101446280B1 (ko) 인터미디어트 드라이버를 이용한 변종 악성코드 탐지 및 차단 시스템 및 그 방법
KR20190028596A (ko) Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치
CN113297567A (zh) 网络过滤方法、装置、设备和系统
KR102156600B1 (ko) 네트워크에서 수집된 패킷과 엔드포인트 컴퓨팅 장치의 프로세스 간의 연관관계를 생성하는 시스템 및 방법
CN103947158A (zh) 信息包数据提取装置、信息包数据提取装置的控制方法、控制程序、计算机可读取的记录介质
WO2024075871A1 (ko) 이메일에 첨부된 암호를 갖는 압축파일의 처리를 위한 방법 및 이를 위한 장치
CN111597515A (zh) 应用程序签名的获取方法和电子设备
CN116938515A (zh) 基于单线程多蜜罐服务的网络攻击识别方法和装置

Legal Events

Date Code Title Description
GRNT Written decision to grant