본문 바로가기

보안

unprivileged_bpf_disabled

최근 리눅스 환경에서 탐지된 고급 백도어인 BPFdoor는, raw socket과 BPF 필터를 이용하여 포트를 열지 않고도 C2 통신을 수행할 수 있는 무포트(backdoor without listening port) 공격 방식으로 알려져 있다. 이와 관련해 리눅스 커널이 제공하는 보안 기능 중 하나인 unprivileged_bpf_disabled 옵션이 주목받고 있다. 


1. unprivileged_bpf_disabled란?

/proc/sys/kernel/unprivileged_bpf_disabled는 **비특권 사용자(unprivileged user)**가 bpf() 시스템 콜을 호출하지 못하도록 제한하는 리눅스 커널 파라미터이다.

(1) 주요 동작 방식

  • 0: 기본값. 비특권 사용자도 BPF 기능 사용 가능
  • 1: 비특권 사용자로부터 BPF syscall 호출을 차단

(2) 설정 방법

# 일시적 설정
echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled

# 영구 설정
echo "kernel.unprivileged_bpf_disabled=1" >> /etc/sysctl.d/99-bpf.conf
sysctl -p

2. BPFdoor 공격에 대한 방어 효과

BPFdoor는 다음과 같은 방식으로 공격을 수행한다:

(1) 비권한 사용자 또는 루트 권한 프로세스가 raw socket 또는 bpf()를 통해 패킷 필터 삽입
(2) 커널의 예측 실행(speculative execution) 또는 race condition 등을 우회하여 민감 정보 수집
(3) 포트리스 통신으로 일반 포트 모니터링, netstat 탐지를 회피

unprivileged_bpf_disabled=1 설정 시 기대되는 효과는 다음과 같다:

  • (1) 루트가 아닌 계정으로 실행된 BPFdoor 실행 차단
  • (2) 다중 사용자 환경에서 공격자 쉘 획득 후 후속 침투 시도 차단
  • (3) 미설정 시, 일반 사용자도 bpf() 시스템 콜로 필터 우회 가능

단, 이미 루트 권한을 획득한 프로세스는 여전히 bpf()를 호출할 수 있으므로 보완적인 보호 수단으로 활용해야 한다.


3. RHEL 및 CentOS, Rocky Linux의 지원 여부

배포판 지원 여부 커널 버전

RHEL 8 / 9 O 4.18+, 5.x 이상
CentOS 8 O RHEL 8 기반 커널 포함
Rocky Linux 8 / 9 O RHEL 완전 호환

확인 명령어

sysctl kernel.unprivileged_bpf_disabled

또는 존재 여부 확인:

ls /proc/sys/kernel/unprivileged_bpf_disabled

4. 서비스 영향 여부 및 고려 사항

(1) 서비스 영향 가능성: 거의 없음

  • 대부분의 서비스 프로세스는 루트 또는 권한 상승된 사용자로 실행되며, bpf()를 직접 호출하는 경우가 드뭄
  • 일반적인 웹서버, DB, 시스템 데몬에는 영향 없음

(2) 예외적 영향 가능성

  • eBPF를 활용하는 일부 성능 모니터링 도구 (예: bcc, bpftrace) 가 비특권 사용자로 실행될 경우 제한될 수 있음
  • 개발 환경에서 사용 중인 BPF 기반 유틸리티는 동작 제한 가능

(3) 안전한 적용 권장 시나리오

  • 운영 환경에선 대부분 unprivileged_bpf_disabled=1 설정이 안전하게 적용 가능
  • 개발 또는 연구 환경에서는 설정 전 관련 도구의 사용 여부 확인 권장

 

unprivileged_bpf_disabled는 BPFdoor와 같은 고급 백도어가 일반 사용자 권한에서 bpf()를 이용해 시스템 우회를 시도하는 시나리오를 차단할 수 있는 효과적인 커널 보안 옵션이다.
RHEL, CentOS, Rocky Linux 등 엔터프라이즈 배포판에서 기본적으로 지원되며, 대부분의 일반 서비스 운영에는 영향을 주지 않기 때문에 보안 기본 설정으로 강력히 권장된다.

다만, 이 설정은 루트 권한을 보유한 공격자에 대해서는 효과가 제한적이므로, SELinux 정책, auditd 감시, microcode 패치, 커널 하드닝 등과 병행하여 다계층 보안을 설계해야 한다.

 

'보안' 카테고리의 다른 글

메일 보안  (0) 2025.04.08
장비 도입 절차 - BMT/PoC/DEMO  (0) 2023.07.18
싱글사인온(SSO) 보호 대책  (0) 2023.06.16
공격이 들어왔는데 kisa아이피..?  (0) 2020.10.22
DoS 에 취약한 서비스들  (0) 2020.08.24