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개 소스 파일)
src/lsm/enforcement- LSM 적용 바이너리src/tracepoint/tracepoint- Tracepoint 바이너리src/raw_tracepoint/raw_tracepoint- Raw tracepoint 바이너리src/*.bpf.c- eBPF 프로그램src/*.c/h- 유저 스페이스 C++ 코드src/include/reflect-cpp/- 리플렉션 라이브러리vmlinux/*.h- 커널 헤더 (x86, arm64, arm, riscv)policy/policy.yaml- 정책 설정Makefile- 빌드 시스템Dockerfile- 컨테이너 환경
먼저 볼 포인트
- LSM + Tracepoint + Raw tracepoint를 함께 다루는 구조
- C++와 libbpf를 같이 쓰는 구현
- 멀티 아키텍처 커널 지원
- 정책 적용과 모니터링을 한 레포에서 같이 설명할 수 있는 점