4월 중순경 우리나라 3대 통신사중 하나인 SKT가 해킹을 당해 온나라가 떠들석한데요. 이번 시간에는 이번 SK 텔레콤 해킹에 사용된 핵심 악성코드인 BPFDoor가 무엇인지? 또한, 사전에 악성코드를 점검할수 있는 방법들에 대해서 상세하게 알아보도록 하겠습니다.
BPFDoor 악성코드란 무엇인가?
BPFDoor는 리눅스 시스템을 노리는 은밀한 백도어 악성코드로, 처음 보고된 건 2021년이었습니다. 최근에는 SK텔레콤 해킹 사건과 관련이 있는 것으로 밝혀져 큰 논란을 일으키고 있습니다. 그럼, BPFDoor의 작동 방식을 더욱 자세히 살펴보겠습니다.
BPFDoor는 BPF(Berkeley Packet Filter)를 악용합니다. 원래 BPF는 네트워크 트래픽을 필터링하고 캡처하도록 설계된 리눅스 커널 기능인데, BPFDoor는 이를 이용해 특정 “매직 패킷”을 감지합니다. 일반적인 백도어가 특정 포트를 열어두고 통신을 유지하는 것과 달리, BPFDoor는 포트를 열지 않고도 커뮤니케이션이 가능해 탐지가 더욱 까다롭습니다.
또한, 이 악성코드는 파일리스(Fileless) 방식으로 실행됩니다. 즉, 디스크에 흔적을 남기지 않고 메모리에서만 작동하기 때문에 파일 기반 탐지 도구에 포착되지 않습니다.
은닉성은 BPFDoor의 또 다른 강력한 특징입니다. 실행 시에는 systemd나 dbus-daemon 같은 정상 프로세스 이름으로 위장하여 관리자들이 쉽게 악성 프로세스를 찾지 못하게 합니다. 더불어, PID 파일을 조작해 /var/run 디렉토리에 정상적인 PID 파일을 생성해놓은 것처럼 보입니다. 심지어 파일의 타임스탬프까지 조작하여 최근에 변동이 없던 것으로 보여줍니다.
통신 또한 암호화되어 보안 분석을 어렵게 합니다. C2 서버와의 커뮤니케이션에는 RC4 암호화를 활용하고 있으며, 감염된 시스템의 iptables 규칙을 변경하여 공격자의 IP주소로 트래픽을 리디렉션합니다. 시스템에 침투하면 루트 권한까지 획득해 전체 제어권을 확보하며, 다양한 은닉 기법으로 재부팅 후에도 지속성을 유지합니다.
BPFDoor는 감염 과정을 은폐하는 능력도 가지고 있습니다. 특정 취약점을 이용해 시스템에 침투하면, BPF 필터를 설정하고 매직 패킷을 대기합니다. 이후 공격자가 매직 패킷을 전송하면 BPFDoor는 명령을 수신 및 해독하여 공격자가 원하는 시스템 제어를 수행합니다.
BPFDoor 사전 점검 & 모니터링 방법
BPFDoor는 리눅스 시스템에서 네트워크 트래픽을 몰래 가로채고 백도어 기능을 수행하는 고도로 은밀한 악성코드입니다. 사용자 수준에서 탐지하기가 매우 어려워, 주로 시스템의 심층 분석을 통해서만 발각됩니다.
1. 시스템(서버) 분석
– 의심스러운 프로세스 및 네트워크 연결 확인: ps, netstat, ss 등의 명령어로 실행 중인 프로세스와 네트워크 상태를 조사합니다. BPFDoor는 눈에 띄는 프로세스를 생성하지 않지만, 비정상적인 네트워크 연결이 발견될 수 있습니다.
– eBPF 관련 파일 및 디렉토리 검사: 특정 디렉토리에 저장될 가능성이 있는 BPFDoor의 eBPF 프로그램이나 맵 파일을 찾아, 확장자가 .o인 파일 등 이상한 파일의 생성 시간과 접근 권한을 확인합니다.
– 커널 모듈 검사: BPFDoor가 루트킷으로 커널 모듈 형태로 존재할 수 있으므로 lsmod 명령어로 로드된 커널 모듈을 확인하고, 의심되는 모듈이 있는지 조사합니다.
– 메모리 분석: Volatility 같은 메모리 포렌식 도구로 시스템 메모리를 덤프하고 분석하여 BPFDoor의 흔적을 조사합니다.
– 파일 시스템 무결성 검사: AIDE나 Tripwire 같은 도구를 통해 시스템 파일의 변경 여부를 점검하여 BPFDoor에 의한 변조 가능성을 탐색합니다.
– 로그 분석: /var/log/auth.log, /var/log/syslog 등의 시스템 로그에서 비정상적인 로그인 시도나 권한 상승 시도 같은 의심스러운 활동을 확인합니다
2. 네트워크 트래픽 분석
– 비정상적인 네트워크 활동 감시: 낯선 IP 주소나 포트로의 아웃바운드 연결 및 C2 서버와의 주기적인 통신을 유심히 관찰합니다.
– 특정 프로토콜 및 패턴 분석: BPFDoor는 TCP 프로토콜을 사용하여 특정 패턴의 패킷으로 명령을 주고받습니다. tcpdump나 Wireshark 같은 도구로 패킷을 분석해 비정상적 패턴이 있는지 확인합니다.
– BPF 필터 규칙 검사: eBPF 기능을 활용하여 네트워크 트래픽을 걸러내고 가로채는 BPFDoor를 탐지하기 위해 bpftool 같은 도구를 사용해 활성화된 BPF 필터 규칙을 점검하고 의심스러운 필터를 찾아야 합니다. 특히 특정 포트나 IP 주소를 목표로 하는 필터는 면밀히 검토해야 합니다.
3. 보안 도구 활용
– 침입 탐지 시스템(IDS) / 침입 방지 시스템(IPS): 네트워크 기반 및 호스트 기반 IDS/IPS 솔루션으로 BPFDoor의 악성 활동이나 시스템 변화를 탐지할 수 있으며, 최신 시그니처 업데이트 유지가 중요합니다.
– 엔드포인트 탐지 및 대응(EDR) 솔루션: 엔드포인트에서 다양한 활동을 모니터링하고 분석하여 BPFDoor와 같은 위협을 발견하고 대응할 수 있습니다.
– 악성코드 분석 도구: 의심스러운 파일이나 네트워크 트래픽을 샌드박스 환경에서 실행하여 BPFDoor의 행동을 분석할 수 있습니다.
BPFDoor는 탐지가 어려울 만큼 은밀하게 동작하기에 단일 방법으로는 충분하지 않을 수 있습니다. 제시된 방법들을 종합적으로 활용하여 분석이 필요합니다. BPFDoor는 지속적으로 발전하며 새로운 탐지 기법을 피하기 위해 업데이트될 가능성이 있기에 최신 보안 정보를 항상 학습하고, 보안 도구들을 최신으로 유지하는 것이 필수적입니다. 시스템 분석은 고도의 전문 지식을 요구할 수 있기에, 탐지가 어렵거나 확신이 서지 않는 경우에는 보안 전문가의 도움을 받는 것이 좋습니다. BPFDoor 탐지는 전문 지식이 필요한 작업이며, 숙련된 보안 전문가의 지원이 필요할 수 있습니다. 제시된 방법들을 바탕으로 시스템을 철저히 모니터링하고 분석하는 것이 중요합니다.
BPFDoor 악성코드는 탐지가 어렵고 장기간에 걸쳐 있을 수 있으며, 중요한 정보를 탈취하거나 더 큰 공격의 기초가 될 수 있습니다. 따라서 시스템 관리자와 보안 담당자들은 BPFDoor를 정확하게 이해하고, 이에 대한 대응 전략을 마련해야 할 것입니다.