악성 BPF 필터 분석, 이제 몇 초 만에!

by DD
1개월 전
조회수 12

BPF(Berkeley Packet Filter) 기반 악성코드는 특정 "매직" 패킷 수신 시 동작하며, 은밀한 백도어(Stealthy Backdoor) 구현에 활용됨

Z3 정리 증명기(Theorem Prover)를 활용하여 악성 BPF 필터(Malicious Filter)를 분석하고, 트리거(Trigger) 패킷을 자동 생성하는 도구 개발

BPFDoor 백도어(Backdoor) 분석 사례를 통해 도구의 실용성을 입증하고, 분석 시간(Analysis Time)을 획기적으로 단축

BPF 프로그램의 복잡성 증가에 따른 수동 분석의 어려움을 해결하고, 자동화된 분석(Automated Analysis)을 통해 효율성 증대

오픈 소스(Open Source) 도구 Filterforge를 공개하여 보안 연구 커뮤니티(Security Research Community)의 악성코드 분석 역량 강화에 기여

BPF(Berkeley Packet Filter)의 동작 원리

본문에서 설명하는 BPF(Berkeley Packet Filter)는 리눅스 커널(Linux Kernel) 내에서 네트워크 트래픽(Network Traffic)을 처리하는 데 사용되는 가상 머신(Virtual Machine)이다. 특정 바이트코드(Bytecode) 명령 집합을 실행하여 패킷을 필터링하며, 커널 공간(Kernel Space)에서 실행되므로 사용자 공간 도구(User-space Tools)에 탐지되지 않는 은밀한 동작이 가능하다.

BPF는 두 개의 레지스터(Register)와 간단한 명령어(Instruction) 세트를 사용하며, 고속 처리를 위해 설계됨

악성코드 제작자는 BPF를 활용하여 백도어(Backdoor)를 은밀하게 설치하고, 특정 매직 패킷(Magic Packet) 수신 시 악성 행위를 수행

이러한 특성 때문에 BPF는 보안 연구(Security Research)에서 중요한 분석 대상이 된다.

Z3 정리 증명기를 활용한 자동화된 패킷 생성

글에 따르면 악성 BPF 필터(Malicious Filter)를 분석하기 위해 Z3 정리 증명기(Theorem Prover)를 활용하여 자동화된 패킷 생성 도구를 개발했다. Z3는 코드(Code)를 일련의 제약 조건(Constraints)으로 취급하여, 역방향으로 분석(Reverse Engineering)하여 트리거 패킷(Trigger Packet)을 생성한다.

Z3는 BPF 명령어(Instruction)를 분석하여 조건(Condition)을 추출하고, 이를 기반으로 패킷의 구조적 제약 조건(Structural Constraints)을 정의

최단 경로(Shortest Path) 계산 알고리즘을 통해, 가장 적은 조건(Condition)을 만족하는 패킷을 생성

생성된 패킷은 Scapy를 사용하여 실제 네트워크 패킷(Network Packet)으로 변환되어, 악성코드(Malware)의 동작을 검증

이러한 자동화는 분석 시간(Analysis Time)을 획기적으로 단축시키고, 보안 연구(Security Research)의 효율성을 높인다.

BPFDoor 백도어(Backdoor) 분석 사례

본문에서는 BPFDoor 백도어(Backdoor)의 BPF 필터(Filter)를 분석하는 구체적인 사례를 제시한다. BPFDoor는 중국 기반 위협 행위자(Threat Actor)가 사용하는 정교한 백도어로, 통신, 교육, 정부 기관(Government Sector)을 타겟으로 한다.

BPFDoor는 특정 포트(Port)를 열지 않고도 모든 수신 트래픽(Incoming Traffic)을 감시하며, 은밀한 통신 채널(Stealthy Communication Channel)을 구축

분석 도구는 BPF 명령어(Instruction)를 해석하고, 조건(Condition)을 만족하는 패킷(Packet)을 생성하여 BPFDoor의 동작을 트리거(Trigger)

분석 결과, IPv6, UDP, DNS 프로토콜(Protocol)을 사용하는 패킷을 식별하고, 특정 오프셋(Offset)과 값을 갖는 바이트(Byte)를 찾아냄

이러한 분석을 통해, 연구자는 BPFDoor의 동작 방식을 이해하고, 탐지 및 대응 전략을 수립할 수 있다.

자동화 도구 Filterforge의 기술적 특징

필자에 따르면 Filterforge는 BPF 필터(Filter) 분석을 자동화하기 위해 개발된 도구로, 오픈 소스(Open Source)로 공개되어 있다.

최단 경로(Shortest Path) 계산 알고리즘을 사용하여, BPF 명령어(Instruction)의 조건(Condition)을 분석하고, 트리거 패킷(Trigger Packet)을 생성

Scapy를 활용하여 생성된 패킷을 실제 네트워크 패킷(Network Packet)으로 변환

분석 결과, 패킷의 구조와 값을 시각적으로 표현하여, 분석의 편의성(Analysis Convenience)을 높임

Filterforge는 보안 연구 커뮤니티(Security Research Community)에 기여하며, 악성코드 분석(Malware Analysis)의 효율성을 향상시킨다.

BPF(Berkeley Packet Filter) 기반 악성코드 분석의 중요성

글의 내용에 따르면 BPF(Berkeley Packet Filter)는 악성코드 제작자(Malware Author)가 은밀한 백도어(Backdoor)를 구축하는 데 널리 사용되고 있으며, 지속적인 위협(Persistent Threat)으로 간주된다.

BPF는 커널 공간(Kernel Space)에서 실행되므로, 탐지가 어렵고 우회(Evasion)가 용이

자동화된 분석 도구(Automated Analysis Tool)는 BPF 기반 악성코드(Malware)의 분석 시간을 단축하고, 대응(Response) 속도를 향상

오픈 소스(Open Source) 도구 공개를 통해, 보안 연구 커뮤니티(Security Research Community)의 악성코드 분석 역량(Malware Analysis Capability) 강화에 기여

결론적으로, BPF 기반 악성코드 분석은 사이버 보안(Cybersecurity) 분야에서 매우 중요한 과제이며, 자동화된 분석 도구의 개발과 공유는 필수적이다.

From bytecode to bytes: automated magic packet generation