봇넷(botnet)은 서버, PC, 모바일 기기, IoT 기기 등 인터넷에 연결된 여러 장치가 동일한 악성코드에 감염되어 해커의 통제 아래 놓인 상태를 말합니다. 감염된 시스템은 대부분 사용자가 전혀 눈치채지 못한 사이에 봇넷의 일부가 됩니다. 이렇게 탈취된 기기들은 분산 서비스 거부(DDoS) 공격 수행, 데이터 유출, 스팸 메일 발송, 심지어 피해자의 내부 네트워크 원격 접속 등 다양한 악의적인 목적으로 활용될 수 있습니다.
봇넷이 만들어내는 위협의 규모
대규모 볼류메트릭(volumetric) DDoS 공격은 초당 수십 기가비트에 달하는 트래픽을 만들어낼 수 있습니다. 일반적인 네트워크 환경으로는 이런 트래픽을 감당하기 어렵기 때문에, 결국 서버는 마비되고 정상적인 서비스 제공이 불가능해집니다.
봇넷은 어떻게 구축되는가
공격자는 이메일, 악성 웹사이트, 소셜 미디어 등을 통해 악성코드를 퍼뜨려 해킹된 컴퓨터들의 네트워크, 즉 봇넷을 구축합니다. 감염된 컴퓨터들은 소유자가 모르는 사이 원격으로 조종될 수 있으며, 마치 군대처럼 특정 대상을 향한 공격에 동원됩니다.
클라이언트-서버 방식에서 P2P 방식으로
봇넷의 구조는 시간이 지나면서 보안 시스템의 탐지와 차단을 회피할 수 있도록 끊임없이 진화해 왔습니다. 전통적으로 봇 프로그램은 중앙 서버에 접속하는 클라이언트 형태로 만들어졌습니다. 그러나 최근에는 기존의 P2P(피어 투 피어) 네트워크를 기반으로 통신하는 봇넷도 등장했습니다. 이러한 P2P 봇은 클라이언트-서버 모델의 봇넷과 동일한 기능을 수행하면서도, 중앙 서버 없이 봇들끼리 직접 통신하기 때문에 중심점을 차단하더라도 전체 네트워크가 무너지지 않는다는 강점을 가집니다.
봇넷의 주요 악용 사례
봇넷은 이메일 스팸 유포, 클릭 사기(click fraud) 시도, DDoS 공격 개시 등에 폭넓게 사용됩니다. 흥미로운 점은 봇넷 악성코드가 특정 개인이나 기업을 겨냥하기보다, 인터넷을 스캔하며 보안이 취약한 시스템이나 IoT 기기를 찾아 최대한 많은 기기를 감염시키는 데 집중한다는 것입니다.
봇넷은 어떻게 숨어 있는가
대규모 봇넷은 컴퓨터 소유자에게 들키지 않으면서 자동화된 작업을 수행하기 위해 막대한 연산 자원을 활용합니다. 봇넷은 여러 은닉 기법을 통해 자신의 존재를 감추는데, 대표적인 방법 중 하나는 컴퓨터의 브라우저에 기생(piggyback)하는 것입니다. 기기의 극히 일부 자원만 사용하기 때문에 발생하는 트래픽 증가가 매우 미미하여, 사용자가 이상 신호를 알아차리기 어렵습니다.
DDoS 공격의 작동 단계
DDoS 공격은 인터넷에 연결된 기기들의 네트워크를 통해 수행되며, 일반적으로 다음과 같은 단계로 진행됩니다.
감염 및 봇넷 형성: 컴퓨터와 IoT 기기를 포함한 다양한 기기가 악성코드에 감염되어 공격자의 원격 조종을 받게 됩니다. 이렇게 조종되는 개별 기기를 '봇(bot)' 또는 '좀비(zombie)'라고 부르며, 이 봇들이 모인 집단이 바로 봇넷입니다.
공격 명령 전달: 봇넷이 완성되면 공격자는 각 봇에 원격 명령을 전송하여 공격을 지시합니다. 예를 들어, 서버가 한 번에 처리할 수 있는 양보다 훨씬 많은 연결 요청을 보내도록 할 수 있습니다.
대량 데이터 전송: 공격자는 감염된 컴퓨터들을 통해 피해 대상에게 대량의 무작위 데이터를 전송하여, 대상의 대역폭을 고갈시킵니다.
서비스 마비: 봇넷이 특정 서버나 네트워크를 표적으로 삼으면, 각 봇이 대상의 IP 주소로 요청을 쏟아냅니다. 그 결과 서버나 네트워크가 과부하에 걸려 정상적인 트래픽에 대한 서비스 거부(denial-of-service) 상태에 빠지게 됩니다.