youmuu 개요

메인 인덱스 | bob-yamong | 레포 노트 | GitHub

이 문서는 제가 youmuu를 빠르게 설명할 때 먼저 다루는 개요 노트입니다. 심층 노트로 내려가기 전에 레포의 목적과 기술 구성을 먼저 확인할 수 있게 정리했습니다.

레포지토리 정보

이름: youmuu
주요 목적: Youmuu’s Ghostblade - LSM 적용, tracepoint 모니터링, 그리고 C++를 사용한 정책 관리를 포함한 eBPF 기반 컨테이너 런타임 엔진입니다.

주요 기술 스택

  • 언어: C++
  • eBPF 프레임워크: libbpf
  • 커널 인터페이스: LSM hooks, Tracepoints, Raw tracepoints
  • 빌드 시스템: Makefile
  • 라이브러리:
    • reflect-cpp (리플렉션 라이브러리)
    • libyaml (YAML 파싱)
    • libcurl (HTTP 클라이언트)
    • nlohmann-json (JSON 처리)
    • PostgreSQL (libpq)

아키텍처

  • 타입: 컨테이너 런타임 보안 엔진
  • 구성 요소:
    • LSM 적용 프로그램 (eBPF)
    • Tracepoint 모니터링
    • Raw tracepoint 핸들러
    • 정책 엔진 (YAML 기반)
    • 데이터베이스 통합
    • 멀티 아키텍처 지원

주요 파일 (84개 소스 파일)

  1. src/lsm/enforcement - LSM 적용 바이너리
  2. src/tracepoint/tracepoint - Tracepoint 바이너리
  3. src/raw_tracepoint/raw_tracepoint - Raw tracepoint 바이너리
  4. src/*.bpf.c - eBPF 프로그램
  5. src/*.c/h - 유저 스페이스 C++ 코드
  6. src/include/reflect-cpp/ - 리플렉션 라이브러리
  7. vmlinux/*.h - 커널 헤더 (x86, arm64, arm, riscv)
  8. policy/policy.yaml - 정책 설정
  9. Makefile - 빌드 시스템
  10. Dockerfile - 컨테이너 환경

먼저 볼 포인트

  • LSM + Tracepoint + Raw tracepoint를 함께 다루는 구조
  • C++와 libbpf를 같이 쓰는 구현
  • 멀티 아키텍처 커널 지원
  • 정책 적용과 모니터링을 한 레포에서 같이 설명할 수 있는 점