Tetragon 구조 분석

조성열·2026년 6월 11일

eBPF

목록 보기
7/10
post-thumbnail

들어가며

CNCF 졸업 프로젝트인 Cilium에서 파생된 프로젝트인 Tetragon의 내부 구조에 대해서 알아보려고 한다. 탐지 규칙을 작성, 정의한 규칙들이 어떻게 적용되어 동작하는지를 중점적으로 정리 해보겠다.

Tetragon Architecture

출처

Her, Jin, et al. "An In-Depth Analysis of eBPF-Based System Security Tools in Cloud-Native Environments." IEEE Access (2025).

다른 eBPF 기반 도구들과 마찬가지로 User Space와 Kernel Space를 분리하여 생각해야한다. 실질적인 이벤트를 수집하는 역할은 eBPF Program 즉,Kernel Space에서 이루어지고 탐지 규칙 적용 및 관리는 User Space에서 이루어진다고 생각하면 된다.

User Space

먼저 User Space에 Observer, SensorManager, Informer 세 가지 구성 요소로 이루어져 있다.

  • Observer
    Observer는 SensorManager를 관리하고 eBPF Program에 의해 생성된 Perf 이벤트를 수신 및 처리하는 역할을 한다.
  • Informer
    Tracingpolicy로 불리는 탐지 정책의 배포를 감지하고, SensorManager가 생성한 채널을 통해 정책 정보를 전송하는 역할을 한다.
  • SensorManager
    Informer로부터 Signal을 받기 위한 채널을 구축한다. Signal이 수신되면 정의된 정책에 따라 eBPF ProgrameBPF Map을 구성하여 커널의 로드하는 역할을 한다.

Kernel Space

Kernel Space에는 eBPF Program, eBPF Map이 존재한다.

  • eBPF Program
    탐지 정책에서 정의한 Hook Point에 붙어 이벤트를 수집하는 실질적인 역할을 한다.
  • eBPF Map
    eBPF Program이 수집한 데이터를 저장하고, User Level의 어플리케이션이 접근하는 공유 저장소 역할을 한다.

특징 및 메커니즘

일반적으로 다른 eBPF 기반 도구들은 고정된 Hook Point를 사용하는 매커니즘을 갖지만, Tetragon은 SensorManager가 eBPF Program을 로드할 때 Hook Point를 동적으로 결정할 수 있어 유연성이 있다. 하지만 이러한 특성으로 eBPF Program 부착 단계에서 추가적인 오버헤드가 있다.

TracingPolicy 배포

앞서 언급한 TracingPolicy는 사용자가 정의한 탐지 정책 파일을 말한다. yaml 형식으로 작성되고, 이 정책 파일에 부착할 Hook Point, 함수, 매개변수 등을 and or 조건을 통해 정의한다. 정책이 배포되는 워크플로우는 다음과 같다.

  1. 정책 전송
    TracingPolicy가 배포되면 Tetragon 내부 InformerSensorManger에 의해 구축된 채널을 통해 정책 정보를 전송한다.
  2. 정책 분류
    SensorManager는 정책 해들러를 사용해 해당 정책을 Kprobe, Tracepoint, LSM 등 Hook을 분류한다.
  3. 빌드 및 배포
    Builder를 통해 eBPF Program이 구축되고 배포된다.

또한 사용자는 정책 적용시에 kubectl apply 명령으로 쉽게 정책을 수정 및 적용할 수 있다. 이때 정책 수정으로 인한 다운타임이 발생하지 않는다는 것이 장점 중 하나이다.

profile
Blue Team

0개의 댓글