보안/보안 개념

BPFDoor(BPF도어)

no-brake 2025. 12. 2. 15:31

SKT해킹에 사용한 방식인 BPFDoor(BPF도어)에 대해 알아보자

 

[BPF]

  • 리눅스 커널에서 네트워크 패킷을 효율적으로 필터링하고 분석하기 위해 개발된 기술로, 사용자가 정의한 코드를 커널 내부 특정 지점에서 안전하게 실행시켜 시스템 성능 분석, 보안 모니터링 등 다양한 작업에 활용되는 강력한 커널 확장 기술
  • 가상 머신처럼 작동하며, 로드-검증-연결의 3단계 과정을 거쳐 특정 이벤트에 반응하는 프로그램을 만들 수 있다.
  • 패킷 필터링 : 특정 조건에 맞는 네트워크 패킷만 선별하여 처리함으로써, 불필요한 데이터 처리를 줄이고 성능을 향상시킵니다.(예: tcpdump)
  • 커널 수준 실행 : 사용자 영역이 아닌 커널 공간에서 코드가 실행되므로 매우 빠르고 효율적입니다. 
  • 안정성 및 보안 : 엄격한 검증(Verifier) 과정을 거쳐 커널 충돌을 방지하고, 안전한 환경에서 코드가 실행되도록 보장합니다 (샌드박스 엔진)
  • 이벤트 기반 프로그래밍 : 시스템 호출, 네트워크 이벤트 등 다양한 커널 이벤트를 후킹하여 프로그램을 실행시킬 수 있습니다.
  • 확장성 (eBPF) : 기존 BPF의 기능을 확장한 eBPF(Extended BPF)는 더 많은 종류의 프로그램을 커널에서 실행할 수 있도록 하여, 추적, 모니터링, 보안 등 활용 범위를 넓혔습니다. 

[BPFDoor(BPF도어)]

  • 리눅스 및 솔라리스 시스템을 대상으로 하는 스텔스형 백도어 악성코드
  • 방화벽을 우회하고 장기간 탐지되지 않은 채 시스템에 남아있도록 설계되어 주로 사이버 첩보 활동에 사용
  • BPF 기술 악용 :  BPF는 원래 네트워크 트래픽에서 필요한 패킷만 효율적으로 필터링하기 위한 커널 레벨 기술입니다. 악성코드는 이 기술을 이용해 특정 "매직 패킷(magic packet)"이 수신될 때만 반응하도록 설정됩니다.
  • 방화벽 우회 : 일반적인 백도어는 특정 포트를 열어두고 통신하므로 방화벽에 의해 탐지될 수 있습니다. 그러나 BPFDoor는 포트를 열 필요 없이 커널 레벨에서 직접 패킷을 검사하므로 방화벽을 효과적으로 우회합니다.
  • 스텔스 및 지속성 : 시스템 프로세스로 위장하고 감시 도구를 회피하며, 감염된 시스템에서 이름을 변경하는 등의 은닉 기술을 사용합니다. 또한 시스템 재부팅 후에도 지속성을 유지합니다.
  • 기능 : 공격자의 명령 및 제어(C&C) 서버와 통신하며, 원격 셸(reverse shell, bind shell)을 실행하여 공격자에게 시스템에 대한 완전한 접근 권한을 부여합니다.