eBPF for Windows
·
DevSec
eBPF for WindowseBPF for Windows: Linux 환경에서 사용되던 eBPF 생태계의 Toolchain 과 API 를 Windows 위에서 사용할 수 있도록 만든 프로젝트기존 eBPF 는 주로 Linux Kernel 에서 사용되었지만, eBPF for Windows 는 Windows Kernel 에서도 eBPF Program 을 로드하고 실행할 수 있도록 중간 계층을 제공한다.즉, 개발자는 기존처럼 C 로 eBPF Program 을 작성하고 Clang 으로 eBPF Bytecode 를 생성할 수 있다.그 후 Windows 환경에서는 해당 Bytecode 를 검증하고, Windows Kernel 에서 실행 가능한 형태로 변환하거나 로드해서 사용한다.eBPF for Windows 는 W..
eBPF
·
DevSec
eBPFeBPF(extended Berkeley Packet Filter): Linux Kernel 내부에서 안전하게 실행되는 작은 프로그램을 이용해서 커널의 동작을 확장하는 기술eBPF 는 커널 소스코드를 직접 수정하거나 Kernel Module 을 새로 로드하지 않고도 Kernel 내부의 특정 지점에 프로그램을 붙여서 실행할 수 있게 해준다.예를 들어 시스템 콜, 네트워크 패킷 처리 지점, 파일 접근 지점, 프로세스 실행 지점, 커널 함수 호출 지점 등에 eBPF Program 을 연결하면 해당 이벤트가 발생했을 때 eBPF Program 이 실행된다.eBPF 는 단순히 패킷 필터링만을 위한 기술이 아니라, 현대 Linux 환경에서 Observability, Networking, Security, T..
BPF
·
DevSec
BPFBPF(Berkeley Packet Filter): Kernel space 에서 packet 을 효율적으로 필터링하기 위한사한 뒤 필터링하면 성능적으로 비효율적이다.패킷은 매우 빠른 속도로 들어오고, 대부분의 경우 사용자가 보고 싶은 패킷은 전체 패킷 중 일부이다.그래서 BPF 는 User space 로 패킷을 넘기기 전에 Kernel space 에서 먼저 필터링을 수행한다.BPF 는 작은 필터 프로그램을 커널 안에서 실행하고, 그 결과에 따라 해당 패킷을 User space 로 전달할지 결정한다.현재는 기존 BPF 를 eBPF 와 구분하기 위해 Classic BPF 또는 cBPF 라고 부르기도 한다.BPF 가 필요한 이유패킷 캡쳐 도구는 네트워크 인터페이스로 들어오는 패킷을 확인해야 한다.예를 들..
eBPF VM
·
DevSec
eBPF에도 JAVA의 jvm같은 eBPF VM이 있다. 대략적인 전체 아키텍처를 claude가 다이어그램으로 그려줬다.eBPF VM도 JVM과 유사한 샌드박스 실행 환경이지만 eBPF VM은 커널 내부에서 돌아간다는 차이점이 있다. eBPF VM이란?커널 안에 내장된 RISC 스타일의 가상 머신이다. JVM이 OS 위에서 바이트코드를 안전하게 실행하는 것 처럼 eBPF VM은 커널 위에서 사용자 프로그램을 안전하게 실행할 수 있도록 한다.eBPF의 핵심 구성 요소eBPF 프로그램 실행 구조: 사용자 공간에서 작성된 코드가 커널 내부로 로드되어 실행되는 방식사용자가 고수준 언어(C, Rust 등)로 작성한 eBPF 프로그램은 Clang/LLVM 컴파일러에 의해 eBPF 바이트코드로 컴파일된다. 그 후 커..