2024-03-28 23:10 (목)
DNS 서버에 대한 DDoS 공격대응 솔루션 8가지
상태바
DNS 서버에 대한 DDoS 공격대응 솔루션 8가지
  • 홍석범
  • 승인 2011.07.26 10:11
이 기사를 공유합니다

DNS에 대한 DDoS 공격, Anycast등 기법 활용한 분산대응이 효과적
앞에서는 DNS가 왜 DDoS 공격에 취약한지 그래서 결국은 공격 대상이 될 수 밖에 없는지에 대해 살펴보았다.(관련기사: www.dailysecu.com
그렇다면, 각각의 공격 방식에 대해 대응 가능한 방안을 하나씩 살펴보도록 하자.
 
살펴보기에 앞서 먼저 도메인의 DNS 서버에 대한 정보 확인을 해 보도록 하자.
http://ipwhois.nic.or.kr/ 에서 domain.net등 대상 도메인을 질의하면, 아래와 같이 DNS 서버목록이 보이는데, 이 목록이 바로 domain.net 도메인에 대한 위임권한을 가진, 즉 도메인에 대한 IP 주소를 응답해 주는 DNS 서버이며 이 서버가 다운되면 IP 응답을 할 수 없으므로 결국 서비스 장애가 유발될 것이다.
 
Domain servers in listed order:
      NS1.DOMAIN.NET
      NS2.DOMAIN.NET
 
다시 본문으로 돌아와서, 구체적인 대응방안을 살펴보도록 하자.
 
첫째, 도메인에 대한 위임권한을 가지고 있는 1차, 2차 DNS는 반드시 분리된 네트워크로 운영하여야 한다. 흔히 1차와 2차 DNS를 관리 편의상의 이유로 방화벽이나 IPS등 동일 장비의 하단에 또는 동일 네트워크에 두는 경우가 있는데, 이러한 경우 네트워크 장비의 장애 또는 대량의 트래픽 유입으로 장애가 발생하였을 경우 1,2차가 동시에 영향을 받게 되어 결국 모든 서비스 장애가 유발될 수 있다. 따라서 가능한 네트워크는 분리하여 이의 Risk를 줄일 필요가 있다. 이의 확인은 단순히 도메인에 대해 whois를 질의, 1차, 2차 DNS IP의 netmask가 같은지 체크하는 것만으로도 간단히 확인 가능하다.
 
둘째, DNS 서버를 외부에 아웃소싱 하거나 분리하는 방법도 고민할 수 있다. 한국은 전통적으로 DNS는 자체적으로 관리하여야 한다는 의식이 강하지만, 미국 등 해외는 전문 서비스업체에 아웃소싱하는 것이 일반적이다. 따라서 UltraDNS 등과 같이 전문 DNS 서비스업체도 많은 편인데, 한국은 무료로 제공되는 DNSever등이 유일한 것 같다. 굳이 도메인 전체를 위임할 필요가 없이 일부 레코드만 NS나 CNAME으로 위임하거나 1,2차는 자체적으로 구축 및 운영하고 3차, 4차는 아웃소싱 하는 등 다중화하는 것도 고민해 볼 수 있을 것이다. DNS 서버는 최소한 4개, 5개 정도 등록하여 다중화하는 것이 좋다. Whois로 도메인을 질의해 보면 흔히 1차와 2차 DNS로 단순하게 운영되는 것이 일반적인데, 이론적으로는 최대 13개까지 등록이 가능하다. 물론 도메인 등록기관인 레지스트라(registrar)에서는 최대 4-5개까지의 필드만 제공하는 것이 일반적이기는 하지만, 만약의 장애에 대비하여 최대한 분산하는 것이 좋다.
 
세째, 수평적인 분산 외에, LVS나 L4스위치등을 이용하여 내부적인 분산도 좋은 방법이다. 앞에서 대량의 DNS질의를 보내어 서비스를 마비시킬 수 있는 QPS 공격에 대해 언급한 바 있는데, 한 좀비PC에서 최소한 2,000QPS를 생성할 수 있고, 좀비가 1,000 대라고 가정하면 최대 200만 QPS를 생성할 수 있다는 계산이 된다. 통상 DNS서버 한 대에 최대 5만QPS를 처리 가능하니 이론적으로 40대 이상이 있어야 서비스 장애를 피할 수 있다는 논리가 될 것이다.
 
네째, 기존의 1G 기반 네트워크가 아닌 10G 기반의 DNS 서버를 구축하는 방안이 있다.
DNS 서비스에 있어 사실상 가장 위협적인 공격 중 하나는 대역폭을 가득 채우는 Bandwidth consuming 형태의 공격이다. DNS는 UDP를 이용하기 때문에 백본 스위치에서 ACL로 차단이 불가능하고, 한 좀비가 최소 30Mbps의 UDP 트래픽을 생성할 수 있으니 이론적으로 33대의 좀비만 있으면 1Gbps의 공격 트래픽이 DNS 서버까지 그대로 전송될 수 있다는 계산이 된다. 따라서 아예 스위치에서 DNS서버로 10Gbps 연결을 하면 만약의 수Gbps 트래픽이 유입되어도 어느 정도 견딜 수 있을 것이다. 물론 10G 보안 장비를 설치해도 되지만, 아예 10G DNS 서버를 구축하는 것이 더욱 비용 효과적일 것이다.
 
다섯째, 가능한 비정상 패킷은 필터링하는 것이다. HTTP 공격의 경우에도 Cache-Control이나 비정상적인 공격 패킷에 대해 패턴을 잡아 특정 문자열(string)로 차단한 것처럼 패킷의 비정상 헤더, 사이즈, 문자열등 특정 패턴으로 차단하는 방법도 생각할 수 있다. 그러나, DNS 트래픽은 HTTP에 비해 워낙 단순하고 연결성이 없기 때문에 비정상 트래픽으로 판단하기가 용이하지 않다라는 한계가 있다. 또한 Bind와 같은 DNS SW 자체는 필터링 기능이 없으므로 IPS등과 같은 별도의 L7 장비가 필요할 것이다.
 
여섯째, WhiteList 기반으로 필터링하는 방법을 고민해 볼 수 있다. 즉, 일정기간 동안 DNS 접속요청을 하는 IP 목록을 축적해 놓았다가 만약의 공격 상황 발생시 그 동안 축적해 놓은 IP만 허용하고 나머지는 차단하는 것으로, 이는 DNS 서버에 요청하는 IP도 결국 DNS 서버이므로, 이는 어느 정도 정해져 있다는 원리를 이용하는 것이다. 그러나 이 방법은 오탐의 가능성도 적지 않게 있고, 공격자가 소스IP를 마치 168.126.63.1과 같이 이미 알려진 DNS 서버인 것처럼 위조하여 공격하면 차단이 불가하다는 한계가 있다.
 
일곱째, 비율 기반으로 필터링하는 방법이다. 이를테면, 한 IP당 허용할 질의의 세션수를 제한하여 그 이상 초과하면 차단하는 방법인데, 이 역시 오탐의 가능성이 있고 실제 공격시 IP를 위조하여 질의하면 역시 효과가 없는 차단 방법이 될 수 있다. 
 
마지막으로, Anycast 기반의 분산 대응을 하는 방법이다.
앞에서 언급한 방법과 유사하지만, 앞의 방법들이 일반적인 Unicast 기반의 수평적인 분산이라면 Anycast는 한 IP라 하더라도 여러 네트워크에 분산함으로써 각 좀비가 한 IP로 대량의 트래픽을 보내어도 실제로는 여러 국가/네트워크로 분산되어 전송되는 방법으로, 좀비의 공격을 특정 DNS서버에 몰리지 않도록 분산할 수 있는 획기적인 방법이라고 할 수 있다. 즉, BGP를 운영하는 환경에서 동일한 IP 대역을 여러 네트워크에서 동시에 광고(announce)함으로써 서로 다른 ISP/국가에 있는 클라이언트들이 가장 가까운 라우팅 경로를 찾아가도록 하는 라우팅 기법인데, 응답 속도를 개선하기 위한 CDN서비스나 한국에 루트서버 복사본이 있다고 알려진 f.root-servers.net 이 가장 대표적인 예이다. 즉, f.root-servers.net 의 IP는 192.5.5.241 이지만 이 IP를 가진 서버는 한국을 포함, 전세계에 수십여개가 존재하면서 가장 가까운(라우팅 경로가 짧은) 서버로 찾아가게 되는 것이다. 즉, 동일하게 한 IP를 찾아가지만 한국에서 접속할 때와 미국에서 접속할 때 각각 다른 서버로 접속하게 된다는 것이다.

이를, DDoS 공격에 접목하면, 만약 KT/LGU+/SKB등에 각각 1.2.3.0/24 대역으로 Anycast 를 구성한 후 이 중 DNS서버의 IP를 1.2.3.4 로 설정하였다고 가정하였을 때, 정상적인 트래픽을 포함하여 각 ISP에 존재하는 좀비들이 일제히 1.2.3.4 로 DDoS 공격을 한다 하더라도 실제로는 특정 서버 또는 특정 네트워크로 몰리지 않고 KT유저들은 KT에 있는 서버로, SKB는 SKB에 있는 서버 등으로 트래픽이 분산처리된다는 것이다. 이는 단순히 트래픽을 분산하는 효과뿐만 아니라 각 ISP내의 대형 공격 트래픽이 다른 ISP의 연동망을 거치지 않도록 하고, 자가망에 묶어놓을 수 있어 연동망에 대형 공격 트래픽이 유발됨으로써 Null 라우팅 등 발생될 수 있는 많은 이슈들을 해소할 수 있다는 장점도 있다. 물론 이는 한국내에서뿐만 아니라 Global 하게도 확장하여 동일하게 구성할 수 있으며, 또한 만약의 네트워크 장애시 근접한 다른 네트워크로 자동 Failover 되어 서비스의 가용성 확보에도 도움이 된다는 특징이 있다. 그러나 Anycast를 구성하려면, 자체적으로 AS 번호를 확보하여야 하고 BGP를 운영하여야 하는 등의 이유로 대형 네트워크 서비스 업체만 가능하다는 단점이 있다.
 
지금까지 여러 가지 대응 방법에 대해 살펴보았는데, 한마디로 요약하여 이야기한다면 답은 “분산 대응” 이라고 할 수 있다. 즉, 궁극적으로 DDoS 공격은 공격자와 막는자 사이의 “가용성” 싸움이라고 할 수 있는데, 여러 가지 방법을 활용하여 최대한 자원(DNS서버)을 분산함으로써 공격자보다 우위의 가용성을 확보, 서비스의 장애를 줄이도록 하는 것이다. 물론 어느 한 가지 방법만으로 대응하기보다는 여러 방법을 혼합하여 구성하는 것이 보다 효과적인 대응 솔루션이 될 수 있을 것이다.
참고로, 본 기사에서 좀비 IP를 적극적으로 차단하는 이전의 anti-ddos 대응 방식과 다른 형태의 분산 대응 솔루션을 제시한 것은 UDP를 사용하는 DNS 서비스의 태생적인 한계 때문인데, 이는
(1) 상단 백본에서 ACL로 공격 트래픽 차단이 불가능함
(2) 소스IP를 쉽게 위조할 수 있으며 위조여부를 확인이 불가능함
(3) 어떤 차단 방법을 써도 오탐(false positive)의 위험성이 있기 때문이다.
[홍석범 씨디네트웍스시스템팀 팀장 antihong@gmail.com]
■ 보안 사건사고 제보 하기

▷ 이메일 : mkgil@dailysecu.com

▷ 제보 내용 : 보안 관련 어떤 내용이든 제보를 기다립니다!

▷ 광고문의 : jywoo@dailysecu.com

★정보보안 대표 미디어 데일리시큐 / Dailysecu, Korea's leading security media!★