(개념) 리눅스 커널에서 샌드박스된 프로그램을 실행할 수 있게 해주는 혁신적인 기술이다. 커널 소스 코드를 변경하거나 커널 모듈을 로드할 필요 없이 커널의 기능을 안전하고 효율적으로 확장하는 데 사용되는 개념
eBPF 작동 방식

샌드박스 환경
eBPF는 eBPF 가상 머신(eBPF VM)이라는 커널 내 실행 환경에서 격리된 프로그램을 실행한다. 개발자는 프로그램을 작성하고, 컴파일러 도구 모음(예: LLVM)을 사용하여 코드를 중간 바이트 코드로 변환하고, 프로그램을 연결할 시스템 이벤트("후크"라고 함)를 식별한 다음, 사용 가능한 eBPF 라이브러리 중 하나를 사용하여 프로그램을 Linux 커널에 로드한다.
검증 및 JIT 컴파일
커널에 로드되면 프로그램은 검증 엔진을 통해 자동으로 검증되고, 바이트 코드는 JIT(Just-In-Time) 컴파일러를 통해 머신별 명령어 세트로 컴파일된다. 이러한 단계를 통해 eBPF 프로그램은 기본적으로 컴파일된 앱과 동일한 수준의 효율성으로 실행될 수 있다.
후크 및 헬퍼 함수
eBPF 코드는 시스템 호출 또는 네트워크 이벤트와 같은 사전 지정된 후크에 의해 호출될 준비가 된다. eBPF 코드가 트리거되면 테이블에서 키-값 쌍을 검색 및 업데이트하고, 난수를 생성하고, 네트워크 패킷을 리디렉션하는 등 광범위한 작업을 수행할 수 있는 "헬퍼"라는 특수 함수를 호출할 수 있다. 보안 및 안정성상의 이유로 이러한 헬퍼 함수는 커널에서 미리 정의해야 하지만 eBPF에서 사용할 수 있는 헬퍼 호출 목록은 상당히 크다.
eBPF 프로그램 작성
대부분의 경우 bpftrace 또는 Cilium과 같은 프로젝트를 통해 eBPF를 간접적으로 사용할 수 있다. 이러한 프로젝트는 eBPF 위에 추상화를 제공하므로 프로그램을 직접 작성할 필요가 없다. 의도 기반 정의를 지정하면 eBPF가 이를 구현한다. 더 높은 수준의 추상화가 존재하지 않으면 프로그램을 직접 작성해야 한다. Linux 커널에서는 eBPF 프로그램을 바이트 코드 형식으로 로드해야 한다. 바이트 코드로 직접 작성하는 것도 기술적으로 가능하지만 일반적으로 개발자는 LLVM과 같은 컴파일러 도구를 사용하여 의사 C 코드를 eBPF 바이트 코드로 컴파일하는 것을 선호한다.
다양한 활용 분야
eBPF는 네트워킹, 관찰 가능성, 보안, 추적 및 프로파일링 등 광범위한 사용 사례를 지원한다. 현대 데이터 센터 및 클라우드 환경에서 고성능 네트워킹 및 로드 밸런싱을 제공하고, 오버헤드가 낮은 세분화된 보안 관찰 가능성 데이터를 추출하고, 애플리케이션 개발자가 애플리케이션을 추적하도록 지원하고, 성능 문제 해결을 위한 통찰력을 제공하고, 예방적 애플리케이션 및 컨테이너 런타임 보안을 시행하는 데 광범위하게 사용된다.
폭넓은 산업 전반에 걸친 사용
Google, Netflix, Android, S&P Global, Shopify 및 Cloudflare를 포함한 모든 산업의 조직에서 프로덕션 환경에서 eBPF를 사용한다.
.HACK Conference 2025 - 닷핵 컨퍼런스 2025
끊임없이 도전하는 해커들의 사이버 보안 컨퍼런스
dothack.io
https://oo.ai/?q=eBPF&sid=ryfiWvnELtRT78zYjeEK
oo.ai | 가장 빠른 AI 검색
oo.ai는 수 백개의 웹문서를 바탕으로 자세하고 정확한 AI 답변을 만들어요. 가장 빠르고 똑똑한 AI 검색을 지금 무료로 사용해보세요.
oo.ai
'03.Security' 카테고리의 다른 글
개인정보 - 안전성 확보조치 (0) | 2025.04.27 |
---|---|
랜섬웨어 (19) | 2025.04.27 |
네트워크 보안 - NDR(Network Detection and Response) (0) | 2025.04.25 |
LLM - 보안 - 탈옥(Jailbreaking) (0) | 2025.04.25 |
LLM - OWASP LLM 취약점 Top 10 (0) | 2025.04.24 |