brunch

브런치북 DDoS 개론 09화

You can make anything
by writing

C.S.Lewis

by 흐르는 강물처럼 Feb 04. 2021

DDoS-9 (L7 레벨의 DDoS 공격 차단 방법)

L7 레벨의 DDoS 공격은 어떻게 막을 수  있나요?

DDoS-9 (L7 레벨의 DDoS 공격 차단 방법)

다음 단계는 본격적으로 애플리케이션 기반 공격을 차단하는 단계입니다. DNS Authentication은 애플리케이션 기반 공격 중에 하나인 DNS flooding 공격을 차단하기 위해 개발된 단계입니다. DNS 서버란 도메인 네임(daum.net naver.com 등)을 브라우저에 입력하면 해당 도메인 네임의 IP주소를 알려주는 서비스로서 인터넷에 공개된 서버를 운영하는 조직은 모두 필수적으로 사용하는 서버입니다.


만약에 DNS 서버가 DDoS 공격을 받아 정상적으로 응답하지 못하게 되면, 해당 조직의 공개 서버는 실제로는 아무 문제없이 작동 중이라도, 외부에서 IP주소를 확인할 수 없기 때문에 접속을 못하게 되는 문제가 발생하게 됩니다. 2013년 6월 25일 대한민국 정부의 DNS 서버가 공격당해 정부 관련 온라인 서비스가 정상적으로 접속되지 못한 일명 625 대란이라는 공격 사례가 있었습니다.


아래 <그림 1>과 같이 DNS 공격에 대해 크게 2가지 방식으로 공격 트래픽을 식별하게 됩니다. 먼저 Passive 방식은 클라이언트에서 DNS 쿼리가 들어오면 TMS장비는 해당 패킷을 차단시킵니다. 설정한 timeout시간(1분) 안에 동일한 출발지 IP에서 DNS 쿼리가 다시 들어올 경우 해당 IP를 정상으로 판단하여 이후 DNS 쿼리는 서버로 전달합니다. 이 방식은 랜덤 하게 출발지 IP를 변조하여 DNS 서버를 공격하는 행위에 대해 효과적인 차단 방식입니다.


두 번째 방식은 Active UDP 방식으로 클라이언트에서 온 쿼리 네임을 가상의 네임으로 변경하여 해당 클라이언트가 DNS 서버로 다시 쿼리 하라고 요청합니다. 이때 가상의 이름으로 다시 쿼리가 들어오면 정상적인 클라이언트로 식별하여 실제 DNS 서버로 전송하는 방식으로 작동합니다.


< 그림 1 >  DNS 기반 공격의 공격 단말 식별 방법


단말 식별 단계를 통과하면 다음으로 DNS Malformed와 DNS Regular Expression, DNS Rate Limiting, DNS NXDomain Rate Limiting 등 다양한 DNS 공격에 대한 차단 단계가 기다리고 있습니다. 먼저 Malformed 탐지 방식은 표준에 위배되는 정상적이지 않거나 비어 있는(내용이 없는) DNS 쿼리를 탐지하여 차단합니다. Rate limiting은 정상적인 다량의 쿼리 요청이 들어올 경우 하나의 출발지 IP에서 초당 100개의 쿼리 까지만 허용하고 100개를 넘으면 해당 IP를 일정 시간 동안 차단시킵니다.


다음으로 NXDomain Rate Limiting은 존재하지 않는 도메인 네임(NoneXistent)을 다량으로 보내 DNS 서버의 CPU를 소모시키는 공격을 차단하기 위해 초당 NXDomain으로 DNS 서버가 클라이언트로 응답하는 것을 모니터링하다가 초당 100개 이상의 NXDomain 응답이 있으면 해당 출발지 IP를 차단합니다.


마지막으로 Regular Expression단계는 관리자가 DNS 트래픽을 모니터링하고 있다가 특정한 패턴을 가지는 패킷이 빈번하게 보일 경우 수동으로 그 패턴을 등록하여 해당 DNS 패킷을 차단할 때 사용 가능한 차단 단계입니다. 아래 <그림 2>의 경우 이런 방식으로 차단된 DNS기반 공격 패킷을 확인할 수 있습니다.


< 그림 2 >  DNS Regular Expression방식으로 차단되는 공격 패킷 현황


현재 가장 광범위하게 사용하는 프로토콜은 HTTP 프로토콜입니다. 그만큼 HTTP 기반 DDoS 공격도 가장 빈번하게 발생되는 있기 때문에 여기에 대응하기 위한 여러 차단 단계가 개발하였습니다. 아래 <그림 3>과 같이 서버와 클라이언트 사이에 TMS가 위치하여, 클라이언트에서 오는 HTTP 트래픽을 가로채서 대신 응답합니다. 우선 최초 URI요청을 임의로 변경하여 재접속 요청을 클라이언트로 보냅니다.


만약 TMS가 변경한 URI로 클라이언트가 연결을 요청하게 되면 정상적인 사용자로 인식하고, TMS가 다시 한번 최초 URI로 다시 재 접속할 것을 클라이언트에 요청합니다. 이후에는 해당 클라이언트의 요청을 서버까지 정상적으로 전달되게 됩니다.


< 그림 3 >  HTTP 기반 공격의 단말 식별 방법


이 식별 단계를 통과하면 HTTP Malformed 단계에서 HTTP 내용이 표준에 위배되거나 비어있는 요청을 확인하여 출발지 IP를 차단시킵니다. 다음으로 HTTP Rate Limiting단계에서 특정한 한 개의 클라이언트가 특정 서버로 HTTP Request(get, put 등)를 초당 100개까지만 허용하고, HTTP object (index.html, /images/front.jpg)의 종류에 관계없이 초당 10개의 object까지만 허용하여 그 이상의 요청이 들어오면 해당 IP를 일정 시간 차단시킵니다.


이 단계를 통과한 이후에도 HTTP 기반 DDoS 공격이 차단되지 않는다면 다음으로 HTTP/URL Regular Expression을 통해 HTTP Header를 검사하여 특정 값이 포함된 패킷을 차단하거나 인터넷에 공개된 공격 툴이 발생시키는 공격 패킷의 특성을 패턴으로 등록하여 패턴에 매칭 되는 패킷을 차단하고 해당 출발지 IP를 차단시킵니다. 아래 <그림 4>는 벤더에서 제공하고 있는 다양한 공격 툴의 트래픽 패턴을 등록하여, 차단하기 위한 설정 내역과 모니터링 화면을 보여줍니다.


< 그림 4 >  다양한 공격 툴에 대한 패턴 리스트 및 공격 탐지 상태


최근 사무실에서 사용하는 전화기 라인이 UTP라인으로 연결되어 있다면 기존의 전통적인 전화기가 아니고 IP주소를 사용하는 VoIP 전화기라고 볼 수 있습니다. 이런 단말은 전화음성 혹은 화상회의 영상을 전달하기 위해 프로토콜(통신규약)이 필요한데 이때 가장 많이 사용되고 있는 것이 SIP(Session Initiation Protocol)입니다.


이 프로토콜이 광범위하게 사용되면서 이 프로토콜도 DDoS 공격에 노출되어 있어, SIP 기반 DDoS 공격이 발생되면 전화는 물론 화상회의 등을 사용할 때 음성이나 화면이 끊어지거나 사용할 수 없게 됩니다. 이 공격도 HTTP, DNS와 동일한 방식으로 식별 차단이 가능합니다. SIP Malformed 단계에서 표준에 위배되거나 비어있는 SIP 메시지를 식별하여 차단하게 되고, 다음으로 하나의 IP가 초당 100개의 과도한 SIP 메시지를 보낼 경우 공격으로 식별되어 차단이 가능합니다.


이제 위의 모든 단계를 이용하여 차단을 수행하고 있는 상황에서도 서버로 트래픽이 과도하게 유입되고 있다면 마지막 수단으로 쉐이핑(shaping)을 사용할 수 있습니다. 이 단계는 보호 대상 서버가 감당할 수 있는 레벨의 트래픽 양만 전송하여 서버가 정상적인 응답이 가능하게 만들어 줍니다. 이 단계에서는 정상/비정상 트래픽을 구분하지 않고, 패킷을 랜덤 하게 차단하여 서버로 가는 트래픽의 양을 설정값 이하로 강제로 낮추게 됩니다.


즉, 정상적인 트래픽도 차단이 되기 때문에 최후의 수단으로 사용할 수 있습니다. 아래 <그림 5>와 같이 최대 10개의 조건을 이용하여 트래픽 양을 줄일 수 있습니다. 첫 번째 필터의 의미는 목적지 IP가 1.1.1.1이고 서비스 포트가 TCP80인 트래픽은 10 bps 혹은 10 pps까지의 양만 허용하고 그 이상의 트래픽은 차단하는 설정입니다.


< 그림 5 >  쉐이핑(Shaping) 설정 화면


쉐이핑의 두 번째 옵션은 나라 단위로 트래픽의 양을 제한할 수 있는 기능입니다. 아래 <그림 6>과 같이 중국에서 오는 트래픽은 모두 차단하고 나머지 국가에서 오는 트랙만 통과시키거나 혹은 중국에서 오는 트래픽은 100 Mbps 혹은 100 kpps와 같이 특정 양 이하로 트래픽 양을 제한할 수 있습니다. 중국 이외에도 북한이나 혹은 아프리카, 남미, 유럽의 나라처럼 각 조직에서 서비스하는 대상이 아닌 국가에서 오는 트래픽을 차단할 수 있는 옵션을 적용할 수 있습니다.


< 그림 6 >  나라별로 트래픽을 모두 차단하거나 일정량으로 제한하는 설정 화면


이상으로 DDoS의 마지막 글로 공격 차단에 대해 설명해 드렸습니다. DDoS 공격이 다양화되면서 효과적인 하나의 방법으로 공격을 식별하고 차단하는 것은 불가능하게 되었습니다. 각각의 공격 특성에 효과적인 차단 방식을 개발하여 순차적으로 적용하여, 차근차근 공격 트래픽을 걸러 나가는 것이 효과적인 전략 중의 하나이기 때문에 이런 방법을 사용하는 것이지, 이 차단 방식이 완벽한 방법이라고는 말할 수는 없습니다.


앞에서 설명드린 여러 기능은 특정 벤더의 제품을 예로 들어 설명한 것으로, 모든 DDoS 방어 장비가 동일한 방식으로 공격을 차단하는 것은 아닙니다. 몇몇 기능은 공격 방어에 효과적이라 공통적으로 많이 사용하는 단계가 있을 것이고, 또 다른 기능들은 특정 벤더에서만 고유하게 개발한 단계로 해당 벤더의 강점으로 내세우는 기능들도 있을 것입니다.


모든 차단 단계를 설명하기에는 한계가 있어서 여기서 줄이며, 다음 글에서는 DDoS 이후에 새로운 공격 패러다임으로 자리 잡고 있는 APT(Advanced Persistent Threat: 지능형 지속 공격)에 대해 알아보도록 하겠습니다.

이전 08화 DDoS-8 (L3/L4레벨의 DDoS 공격 차단 방법
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari