
eBPF 기반의 런타임 커널 보안 모니터로, Linux 시스템에서 제어 흐름 무결성(wCFI)과 권한 상승 탐지(PSD)를 통해 익스플로잇 및 루트킷을 탐지합니다.
VED (Vault Exploit Defense)-eBPF는 eBPF(extended Berkeley Packet Filter)를 활용하여 Linux 시스템을 위한 런타임 커널 보안 모니터링 및 익스플로잇 탐지를 구현합니다.
eBPF는 커널 소스 자체를 수정하지 않고도 커널 내에서 코드 실행을 허용하는 인커널 가상 머신입니다. eBPF 프로그램은 tracepoints, kprobes 및 기타 커널 이벤트에 연결되어 실행을 효율적으로 분석하고 데이터를 수집할 수 있습니다.
VED-eBPF는 eBPF를 사용하여 보안에 민감한 커널 동작을 추적하고 익스플로잇 또는 루트킷을 나타낼 수 있는 이상 징후를 탐지합니다. 두 가지 주요 탐지를 제공합니다:
wCFI (Control Flow Integrity)는 커널 호출 스택을 추적하여 제어 흐름 하이재킹 공격을 탐지합니다. 유효한 호출 사이트의 비트맵을 생성하고 각 반환 주소가 알려진 호출 사이트와 일치하는지 검증하는 방식으로 작동합니다.
PSD (Privilege Escalation Detection)는 커널의 크리덴셜 구조체 변경을 추적하여 권한 없는 권한 상승을 탐지합니다.
VED-eBPF는 eBPF 프로그램을 커널 함수에 연결하여 실행 흐름을 추적하고 보안 이벤트를 추출합니다. eBPF 프로그램은 이러한 이벤트를 perf 버퍼를 통해 사용자 공간으로 전송하여 분석합니다.
wCFI는 명령줄에 지정된 함수에 연결하여 호출 스택을 추적합니다. 각 호출 시 스택을 덤프하고, 스택 ID를 할당하며, objdump 및 /proc/kallsyms에서 생성된 유효한 호출 사이트의 사전 계산된 비트맵에 대해 반환 주소를 검증합니다.
잘못된 반환 주소가 감지되어 스택이 손상되었음을 나타내면 다음을 포함하는 wcfi_stack_event를 생성합니다:
* 스택 추적
* 스택 ID
* 잘못된 반환 주소
이 보안 이벤트는 perf 버퍼를 통해 사용자 공간으로 전송됩니다.
wCFI eBPF 프로그램은 또한 스택 포인터와 커널 텍스트 영역의 변경 사항을 추적하여 검증을 최신 상태로 유지합니다.
PSD는 commit_creds 및 prepare_kernel_cred와 같은 함수에 연결하여 크리덴셜 구조체 수정을 추적합니다. 각 호출 시 다음과 같은 정보를 추출합니다:
* 현재 프로세스 크리덴셜
* 크리덴셜 및 사용자 네임스페이스의 해시
* 호출 스택
호출 전후의 크리덴셜을 비교하여 승인되지 않은 변경을 탐지합니다. 불법적인 권한 상승이 감지되면 크리덴셜 필드를 포함하는 psd_event를 생성하고 perf 버퍼를 통해 전송합니다.
VED-eBPF 필요 사항:
VED-eBPF는 현재 eBPF 기반 커널 익스플로잇 및 루트킷 탐지의 잠재력을 보여주는 개념 증명(proof-of-concept)입니다. 진행 중인 작업은 다음과 같습니다:
VED-eBPF는 커널 수정 없이 효율적이고 오버헤드가 낮은 커널 보안 모니터링을 구축하기 위한 eBPF의 가능성을 보여줍니다. eBPF 트레이싱과 perf 버퍼를 활용하여 중요한 보안 이벤트를 실시간으로 추출하고 분석하여 클라우드 네이티브 환경에서 새로운 커널 위협을 식별할 수 있습니다.