<aside>
<img src="/icons/reorder_green.svg" alt="/icons/reorder_green.svg" width="40px" /> **Home • Posts
• About Me • Pages • Contact Me**
</aside>
최근 보안 커뮤니티에서 주목 받는 있는 BPFDoor 악성코드는 매우 은밀하고 탐지하기 어려운 백도어로, 리눅스 시스템을 타깃으로 정교하게 설계되었습니다.
이 악성코드의 핵심적인 특징 중 하나는 바로 BPF(Berkeley Packet Filter) 기술을 악용한다는 점인데요.
BPFdoor가 어떻게 동작하는지를 이해하기 위해선, 먼저 ‘BPF’라는 기술이 무엇인지 알아볼 필요가 있습니다.
BPF는 원래 합법적인 네트워크 필터링 기술로, 리눅스 시스템에서 트래픽을 모니터링하고 분석하는 데 널리 사용됩니다. 하지만, 공격자들은 이 기능을 역으로 이용해 백도어 트리거 신호를 감지하고 보안 솔루션을 우회하는 데 활용하고 있는 것이죠.
이번 글에서는 본격적으로 BPFDoor 악성코드의 분석에 들어가기 전에, 우선 BPF와 iptables의 개념과 원리, 그리고 왜 이 기술이 보안 위협의 도구가 될 수 있는지 살펴보겠습니다.
BPF(Berkeley Packet Filter) : 네트워크 패킷을 필터링하고 분석하는 데 사용되는 리눅스 커널 기능으로 사용자 공간에서 패킷을 모니터링하고, 특정 유형의 패킷만 선택적으로 전달 또는 커널 내부에서 특정 동작을 수행하도록 제어할 수 있습니다.
BPF는 1990년대 초반부터 개발된 기술로, 유저 모드 프로그램이 커널 레벨에서 네트워크 패킷을 빠르게 캡처하고 필터링할 수 있게 해줍니다. 이 기술이 가진 효율적인 필터링 기능은 공격자들이 악용할 경우 보안 시스템을 우회하는데 사용될 수 있습니다.
프로그램 실행 과정
iptables는 리눅스 시스템의 방화벽 설정 도구로 커널의 넷필터(Netfilter) 기능을 이용해, 시스템으로 들어오거나(INPUT), 시스템에서 나가거나(OUTPUT), 시스템을 거쳐 전달되는(FORWARD) 네트워크 패킷에 대한 규칙을 정의하여 제어합니다.
주요 기능
BPFDoor의 경우 정상 트래픽으로 위장한 매직 패킷을 이용해 내부 BPF 필터를 작동시키고, 이를 통해 iptables규칙을 임시로 변경하여 공격자가 방화벽을 우회해 직접 접속할 수 있는 통로(바인드 쉘)를 만드는 방식으로 동작합니다.