
Bomfather Agent는 eBPF 기반 에이전트다. 커널 공간에서 정책에 따라 프로세스의 동작을 차단하며, 리눅스 커널 5.18 이상과 LSM 활성화가 필요하다.
제작사는 기존 보안 도구가 설정하기 복잡하거나 느리고, 다양한 사용 사례에 필요한 보안성과 유연성이 부족했다며 이 프로젝트를 만들었다고 설명한다. 기본 정책은 접근을 거부하고, 허용 목록에 포함된 프로세스만 제한을 우회하도록 설계했다. 실행 파일을 기준으로 파일, GPU, 네트워크 등 자원 접근을 제어한다는 설명이다. 제작사는 사용자 공간 도구인 strace보다 효율적이라고 주장한다.
사용하려면 에이전트를 설치하고 YAML 정책 파일을 만든 뒤 실행한다. 소스에서 빌드할 경우 go 1.26 or higher make clang llvm llvm-14 protobuf-compiler git이 필요하다. 빠른 시작 명령은 sudo ./agent run --config config.yaml이며, 에이전트 상태 확인 명령은 sudo ./agent status --help다. 상태 명령은 주로 Prometheus 메트릭을 읽는 용도다.
정책 파일은 policies와 attributes 항목으로 구성된다. 전자는 어떤 실행 파일이 보호된 디렉터리나 IP에 접근할 수 있는지 정하고, 후자는 실행 파일의 접근 범위를 제한한다. 예를 들어 제작사가 제시한 정책은 signer 실행 파일만 /secrets/keys를 읽고 AWS KMS 엔드포인트에 접속하도록 설정한다. 정책 작성 방법은 설정 안내와 GPU 사용 사례에서 확인할 수 있다. 시스템에서 LSM을 활성화하는 방법은 사전 조건 안내에 있다.
위반 기록을 Bomfather 서버로 보내려면 API 키를 설정할 수 있지만, 이는 선택 사항이다. 키를 설정하지 않아도 에이전트는 동일하게 동작하며, 이 경우 어떤 데이터도 Bomfather 서버로 전송되지 않는다고 제작사는 밝혔다.
부록: 원문 예시
go 1.26 or higher make clang llvm llvm-14 protobuf-compiler git
apt-get update \ && apt-get install -y --no-install-recommends \ clang \ llvm \ llvm-14 \ protobuf-compiler \ && rm -rf /var/lib/apt/lists/*
policies: - executable: "filepath = [absolute-path]/app/signer" can_access_dirs: - "[absolute-path]/secrets/keys : read" is_allowed_to_access_ip: - "kms.us-east-1.amazonaws.com:443" attributes: - path: "type = executable | filepath = [absolute-path]/app/signer" can_only_access_ips: - "kms.us-east-1.amazonaws.com:443"
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요