brunch

브런치북 DDoS 개론 04화

You can make anything
by writing

C.S.Lewis

by 흐르는 강물처럼 Jan 28. 2021

DDoS-4 (DDoS 공격 탐지방법-1)

DDoS 공격을 어떻게 탐지할 수 있을까요?

DDoS 공격으로 대용량의 트래픽이 들어올 때, 이것이 공격으로 발생된 트래픽인지 아니면 정상적인 사용자가 짧은 시간 내에 폭주해서 발생된 트래픽인지 구분하기가 쉽지 않습니다. 필자의 경우 2008년 한 신문사의 온라인 시스템의 방화벽을 관리하고 있을 때, 갑자기 방화벽의 CPU 사용량이 70% 이상 넘어가고, 방화벽이 모니터링하는 세션수가 장비의 한계치까지 사용 중이라는 연락을 받고 장비를 점검한 적이 있었습니다. 해당 고객사의 방화벽은 평상시 1~2만 개의 세션만 사용하고 있었는데 방화벽이 관리 가능한 50만 개의 세션수를 이미 사용하고 있어서 신규로 세션을 생성할 수 없어 사용자들이 신문기사를 읽을 수 없는 상황이 되었죠.


방화벽이 관리하는 50만 개의 세션을 강제로 삭제하였더니 10초가 지나면 다시 세션이 Full이 차는 증상이 반복되었고, 이런 현상은 2시간이 지나서야 해소되었습니다. 나중에 안 사실이지만, 그때 한 연예인의 자살 기사가 해당 신문사의 온라인 기사로 올라왔고, 우연히 해당 기사가 포털 사이트의 메인화면에 노출되면서 많은 사용자들이 호기심에 해당 기사를 클릭하면서 발생된 해프닝이었던 것으로 기억됩니다.


돌이켜보면, 이런 현상은 정상적인 단말이 특정한 이벤트가 발생되면서 트래픽이 폭주한 상황입니다. DDoS 공격은 아니지만, 결국은 DDoS 공격과 동일하게 서비스가 불가능하게 된 것으로 이런 증상이 반복된다면, 방화벽의 용량과 서버의 용량을 증설하는 것이 최선의 방법이고 지금이라면 클라우드를 통해 짧은 시간 안에 대응이 가능할 것입니다. 그럼 만약 그 당시에 DDoS 방어 장비가 있었더라면, 이 현상을 공격으로 탐지했을까요, 아니면 정상적인 트래픽으로 판단했을까요.


DDoS 방어 장비 운영자의 딜레마가 여기에 있습니다. 보통 공격 탐지는 임계치 이상이면 공격으로 탐지하고, 이하이면 정상적인 트래픽으로 판단합니다. 만약에 임계치를 너무 낮게 설정한다면, 정상적인 경우에도 공격 탐지로 인식되어 알람이 빈번하게 일어날 것입니다. 반대로 임계치를 너무 높게 설정하면 공격이 일어난 경우에도 정상 상황으로 인식하여 공격을 탐지하지 못할 확률이 높습니다. 정리하면 임계치(Threshold)를 어느 레벨로 설정하느냐가 공격 탐지의 정확도와 직결된다고 볼 수 있습니다.


지난 글에서 DDoS 장비에는 인라인과 아웃 오브 패스 방식 2가지가 있다고 설명드렸습니다. 인라인 장비는 탐지와 차단을 하나의 장비에서 수행하고, 아웃 오프 패스 장비는 탐지와 차단이 2개의 전용 장비에서 각각 수행됩니다. 이번 글에서는 아웃 오프 패스 방식의 탐지장비에서 공격을 어떻게 탐지하는지 설명하겠습니다. 이후 설명에서 아웃 오브 패스 장비는 아우트라인 장비로 호칭하도록 하겠습니다.


아우트라인 장비의 특징은 트래픽이 흐르는 회선을 직접 모니터링하지 않기 때문에 동시에 여러 개의 회선을 동시에 모니터링할 수 있는 장점이 있다고 설명드렸습니다. 이런 동작이 가능한 이유는 트래픽을 처리하는 라우터, 스위치에서 트래픽 정보를 수집하기 때문에 가능한 기능입니다. 라우터가 패킷(큰 데이터를 잘게 쪼갠 단위)을 받아서 처리할 때 전송한 패킷의 여러 정보를 확인할 수 있습니다.


패킷의 출발지, 목적지 IP 주소, Port 넘버, 프로토콜 종류 및 세부 정보, 패킷의 개수 및 바이트 양, 처리시간, 패킷이 들어오고 나간 인터페이스 정보 등 다양한 정보를 확인하여 상세한 트래픽 모니터링에 활용 가능합니다. 아래 <그림 1>과 같이 NetFlow가 지원되는 네트워크 장비에서는 패킷을 처리할 때 생성한 정보를 분석 서버로 전송이 가능합니다.


< 그림 1 >  NetFlow 생성 방식 및 보유 정보 (출처 : CISCO SYSTEMS


아우트라인타입의 탐지 장비는 모니터링 대상인 라우터가 보내주는 Netflow정보를 수신하여, 라우터의 여러 인터페이스를 통해 들어오는 트래픽을 분석하여 DDoS 공격을 모니터링하게 됩니다. 장비 관리자가 먼저 해야 할 일은 DDoS 공격으로부터 방어할 서버들의 IP주소를 지정하는 것입니다. 탐지 장비가 수집하는 Netflow정보의 출발지, 목적지 IP 정보와 모니터링 대상 IP주소를 매칭 해서 방어 대상 서버의 트래픽을 모니터링할 수 있기 때문입니다.


실제로 탐지장비가 하는 일은 보호 대상 서버 IP주소를 기준으로 들어오고 나가는 트래픽 정보를 모니터링하다가 관리자가 설정한 임계치를 넘으면 경보를 보내고 해당 서버로 가는 트래픽을 차단 장비로 우회시키는 일입니다.


그럼 탐지장비가 세부적으로 어떻게 공격으로 판단하는지 알아보도록 하죠. 탐지장비는 모니터링 대상 서버 IP가 설정되면, 해당 IP주소를 기준으로 별도의 DB 테이블을 생성합니다. 생성 이후 수신되는 Netflow정보 중에서 해당 서버의 IP 정보가 출발지 혹은 목적지에 있으면 Netflow가 가지고 있는 다양한 정보를 선별적으로 DB에 기록하고 모니터링합니다. 먼저 모니터링 대상이 목적지가 되는 정보는 해당 서버로 들어오는 트래픽을 모니터링하는 것이고, 출발지가 되는 정보는 서버가 외부로 보내는 트래픽을 모니터링하게 되는 것입니다.

 

일반적인 서버는 인터넷을 통해 불특정 다수의 클라이언트가 서버로 접속하기 때문에 모니터링되는 출발지 IP가 매우 많은 것이 보통입니다. 탐지장비는 서버에 접속한 클라이언트가 1000개라고 하면 각각의 클라이언트가 서버로 보내는 트래픽을 각각 모니터링하고 있다가 특정한 클라이언트가 임계치 이상의 트래픽을 보내게 되면 해당 클라이언트를 공격자로 판단하게 됩니다.


즉 1000개의 연결을 동시에 모니터링하면서 트리 픽 양이 설정한 임계치를 넘는지 확인하는 것입니다. 임계치는 아래 <그림 2>와 같이 다양한 프로토콜과 조건에 해당하는 트래픽에 대해 1,2차 임계치로 분리하여 설정합니다. 먼저 Total Traffic은 각각의 출발지 IP 기준으로 모든 트래픽에 대한 임계치를 설정하는 것이고 그 외에 DNS, ICMP, TCP SYN, UDP 등 다양한 프로토콜 별 항목에 대해 개별적으로 1,2차 임계치를 설정합니다. 얼마나 모니터링하는 서버의 특성에 맞게 임계치를 최적화에서 설정하느냐에 따라 탐지의 정확성이 높아질 수도 있고 낮아질 수도 있습니다.


< 그림 2 >  모니터링 대상에 대한 세부적인 임계치 설정 화면


이전 03화 DDoS-3 (DDoS 공격 방어 장비)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari