콘텐츠로 이동

Tracee - eBPF 런타임 보안 & 포렌식 치트시트

Tracee - eBPF 런타임 보안 & 포렌식 치트시트

Tracee는 Aqua Security의 오픈소스 eBPF 기반 런타임 보안 및 포렌식 도구입니다. eBPF를 사용하여 운영체제 이벤트(시스템콜, 프로세스 및 네트워크 활동, 파일 작업)를 커널 수준에서 추적하며, 행동 서명 라이브러리를 적용하여 런타임에 의심스럽거나 악의적인 활동을 탐지합니다. Linux 호스트, 컨테이너, Kubernetes용으로 구축되었으며, eBPF 런타임 보안 분야에서 Falco 및 Tetragon의 좋은 보완 도구입니다.

요구 사항

  • Linux 커널 ≥ 5.4 (BTF / CO-RE 지원 권장; 대부분의 최신 배포판)
  • Root / 특권 컨테이너 (eBPF에는 높은 권한 필요)

설치

방법명령어
Docker (가장 빠름)docker run --name tracee -it --rm --pid=host --cgroupns=host --privileged -v /etc/os-release:/etc/os-release-host:ro aquasec/tracee:latest
Kubernetes (Helm)helm repo add aqua https://aquasecurity.github.io/helm-charts/ && helm install tracee aqua/tracee -n tracee --create-namespace
BinaryGitHub Releases에서 다운로드하고 sudo ./tracee 실행
확인tracee version

기본 사용법

명령어설명
sudo tracee기본 탐지 서명으로 추적 시작
sudo tracee --output json이벤트를 JSON으로 내보내기
sudo tracee --scope comm=nginx특정 프로세스만 추적
sudo tracee --events execve,open특정 이벤트만 추적
tracee --help전체 옵션 목록

이벤트 선택 (--events)

선택자일치 대상
--events execve프로세스 실행
--events open,openat파일 열기
--events net_packet_dnsDNS 트래픽
--events security_file_openLSM 파일 열기 후크
--events 'fs'전체 이벤트 세트 (파일시스템)
--events 'signatures'서명 탐지만
--events execve.args.pathname=/usr/bin/*인수 값으로 필터링

범위 필터링 (--scope)

선택자일치 대상
--scope comm=bash명령 이름으로
--scope pid=1234PID로
--scope container컨테이너 이벤트만
--scope container=new새로 시작된 컨테이너만
--scope uid=0Root 활동
--scope pid=new새로 생성된 프로세스
--scope not-container호스트 전용 이벤트

탐지 서명

Tracee는 알려진 공격 기법을 감지하는 행동 서명(Go 및 Rego)을 포함합니다.

탐지 예기법
안티 디버깅ptrace를 통한 회피
동적 코드 로딩메모리 기반 페이로드
LD_PRELOAD라이브러리 주입
권한 상승setuid/권한 악용
컨테이너 탈출네임스페이스/호스트 접근
커널 모듈 로딩rootkit 설치
명령어설명
sudo tracee --events signatures탐지 서명만 실행
--rego- 플래그사용자 정의 Rego 서명 로드
--signatures-dir DIR디렉터리에서 서명 로드

출력 & 캡처

옵션설명
--output jsonJSON 이벤트 (SIEM으로 파이프)
--output table인간이 읽을 수 있는 표
--output gotemplate=FILE.tmpl사용자 정의 템플릿 출력
--capture exec실행된 바이너리를 디스크에 캡처
--capture mem메모리 영역 캡처 (포렌식)
--capture net이벤트별 네트워크 트래픽 캡처
--output forward:tcp://host:port이벤트를 수집기로 전달

일반적인 워크플로우

# 컨테이너 활동만 감시, SIEM용 JSON
sudo tracee --scope container --output json | tee tracee-events.json

# 위협 탐지만 (서명), 표 출력
sudo tracee --events signatures --output table

# 특정 프로세스 조사 및 실행된 바이너리 캡처
sudo tracee --scope comm=suspicious --capture exec

# 새 컨테이너가 만든 DNS 발굴 (유출 사냥)
sudo tracee --scope container=new --events net_packet_dns

Tracee vs Falco vs Tetragon

측면TraceeFalcoTetragon
엔진eBPF (Aqua)eBPF (CNCF)eBPF (Cilium)
초점포렌식 + 탐지 + 캡처알림/탐지관찰 + 커널 내 강제
강제탐지 중심탐지예 (kill/override)
포렌식 캡처강함 (exec/mem/net)제한적이벤트 중심
최적 사용위협 포렌식 & 캡처성숙한 규칙 라이브러리방지 + 깊은 가시성

리소스