DNS 증폭 공격

DNS 증폭은 DNS 확인자를 이용해 트래픽으로 피해자를 압도하는 DDoS공격입니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • DNS 증폭 공격의 정의
  • DNS 증폭 공격의 작동 방식 설명
  • DNS 증폭 공격에 대한 몇 가지 완화 전략 이해

글 링크 복사

DNS 증폭 공격이란 무엇입니까?

DDoS 공격은 공격자가 개방된 DNS 확인자의 기능을 활용하여 증폭된 트래픽 양으로 대상 서버 또는 네트워크를 압도하고 서버 및 주변 인프라에 액세스할 수 없도록 하는 반사 기반 DDoS 공격입니다.

DNS 증폭 공격의 작동 방식

모든 증폭 공격은 공격자와 대상 웹 자원 간의 대역폭 비용 차이를 이용합니다. 많은 요청을 통해 이러한 비용의 불일치가 확대되면 이에 따른 트래픽 양으로 네트워크 인프라가 중지될 수 있습니다. 악의적 사용자는 대량의 응답을 요구하는 소량의 쿼리를 보냄으로써 작은 것을 이용해 큰 것을 얻게 됩니다. 또한, 봇넷의 각 이 유사한 요청을 작성하게 하면 이러한 확대 효과가 더욱 커지며 공격자는 감지되지 않으면서 공격 트래픽을 크게 늘릴 수 있습니다.

DNS 증폭에서의 봇은 식당에 전화해 "거기 있는 메뉴를 모두 1인분씩 주문할 테니 내게 전화해서 내가 주문한 걸 다 말해주세요"라고 말하는 악동을 생각하면 됩니다. 식당에서 어디로 전화하냐고 물을 때 목표 피해자의 전화번호를 알려주는 것입니다. 그러면 목표 피해자는 식당으로부터 본인이 요청하지도 않은 엄청난 양의 정보를 받게 됩니다.

각 봇이 목표 피해자의 실제 소스 IP 주소를 가리키도록 스푸핑된 IP 주소를 사용하여 개방된 DNS 확인자에 요청하면, 목표 피해자는 DNS 확인자로부터 응답을 수신합니다. 공격자는 많은 양의 트래픽을 생성하기 위해 DNS 확인자로부터 가능한 한 많은 양의 응답을 생성하는 방식으로 요청을 구성합니다. 결과적으로 피해자는 공격자 초기 트래픽이 증폭된 트래픽을 수신하게 되고 이러한 가짜 트래픽으로 네트워크가 정체되어 서비스 거부가 유발합니다.

NTP 증폭 공격은 다음의 네 단계로 나누어 볼 수 있습니다.

  1. 공격자는 손상된 엔드포인트를 사용하여 UDP 패킷과 스푸핑된 IP 주소와 DNS 재귀자에게 전송합니다. 패킷에 포함된 스푸핑된 주소는 피해자의 실제 IP 주소를 가리킵니다.
  2. 모든 UDP 패킷이 각각 DNS 확인자에 요청을 하며, 대개는 "ANY" 인수를 전달하여 가능한 한 가장 큰 응답을 수신한다.
  3. DNS 확인자는 요청을 수신하면, 응답을 통해 도움을 주고자 하므로 스푸핑된 IP 주소로 많은 양의 응답을 보냅니다.
  4. 목표 피해자의 IP 주소는 이 응답을 수신하게 되고 주변 네트워크 인프라가 이러한 트래픽의 폭주로 인해 압도되어 서비스 거부가 발생하게 됩니다.

소수의 요청으로는 네트워크 인프라를 중단시킬 수 없지만, 다수의 요청과 다수의 DNS 확인자를 이용해 이러한 과정을 증폭시키면, 목표 피해자가 받는 데이터의 양은 막대하게 증폭됩니다. 반사 공격의 기술적 세부 사항 알아보기.

DNS 증폭 공격의 완화 방식

웹 사이트 또는 서비스를 가동하는 개인 또는 회사의 완화 방식은 제한적입니다. 이것은 해당 주체의 서버가 목표가 되는 경우도 있겠지만, 실제 해당 서버는 볼류메트릭 공격의 실제 효과를 느낄 수 없다는 점에 기인합니다. 생성된 트래픽의 양이 많으므로 서버를 둘러싼 인프라는 그 영향을 받게 됩니다. ISP(Internet Service Provider) 등의 업스트림 인프라 제공업체가 압도되지 않은 상태에서 수신 트래픽을 처리하지 못하게 되는 경우도 있습니다. 결과적으로, ISP는 공격 대상 피해자의 IP 주소로 모든 트래픽을 블랙홀처럼 보내 자체 인프라를 보호하면서 목표 피해자를 오프라인으로 만들게 됩니다. Cloudflare DDoS 방어 서비스 같은 외부 서비스를 제외한 완화 전략은 예방적인 인터넷 인프라 솔루션이 대부분입니다.

개방 DNS 확인자 감축

DNS 증폭 공격의 핵심적인 요소에 개방 DNS 확인자가 있습니다. 열악하게 구성된 DNS 확인자를 인터넷에 노출시키게 되면, 공격자는 DNS 확인자를 찾아내기만 하면 이용할 수 있습니다. DNS 확인자는 신뢰할 수 있는 도메인 내에서 시작된 장치에만 서비스를 제공하는 것이 이상적입니다. 반사 기반 공격의 경우에는, 개방 DNS 확인자가 인터넷 상의 모든 곳에서 오는 질의에 응답하므로 악용의 소지가 있는 것입니다. 신뢰할 수 있는 원천으로부터의 쿼리에만 응답하도록 DNS 확인자를 제한한다면, 어떠한 유형의 증폭 공격도 이를 악용하기 어려워집니다.

소스 IP 검증 - 스푸핑된 패킷이 네트워크 바깥으로 나가지 못하게 합니다

공격자의 봇넷에서 전송되는 UDP 요청에는 피해자의 IP 주소로 스푸핑된 소스 IP 주소가 있어야 하기 때문에 UDP 기반 증폭 공격의 효과를 줄이는 핵심 구성요소는 인터넷 서비스 공급자(ISP)가 스푸핑된 IP 주소의 내부 트래픽을 거부하는 것입니다. 패킷이 네트워크 외부에서 시작된 것처럼 보이도록 하는 소스 주소를 사용하여 네트워크 내부에서 해당 패킷을 보내는 경우, 이는 스푸핑된 패킷이므로 삭제할 수 있습니다. Cloudflare는 모든 ISP에게 수신 필터링을 권고하며 경우에 따라 자신도 모르게 DDoS 공격에 가담하는 ISP에게 연락하여 취약성을 깨닫도록 도와드리고 있습니다.

Cloudflare의 DNS 증폭 공격 완화 방식

올바르게 구성된 방화벽 및 충분한 네트워크 용량(Cloudflare 수준의 규모가 아니라면 확보하기 쉽지 않음)을 사용하면 DNS 증폭 공격과 같은 반사 공격을 차단할 수 있습니다. 이 공격은 단일 IP 주소를 대상으로 하지만, Anycast 네트워크는 모든 공격 트래픽을 방해가 되지 않는 지점으로 분산시킵니다. Cloudflare는 규모의 장점을 활용하여 많은 데이터 센터에서 공격의 무게를 분산시키고 서비스가 중단되지 않도록 부하 균형을 유지하므로 공격은 대상 서버의 인프라를 절대 압도할 수 없습니다. 최근 6개월 동안, Cloudflare의 DDoS 모니터링 시스템인 "게이트봇"은 629건(즉, 40분마다 1건)의 단순 반사 공격을 감지했고 이를 모두 완화하는 데 성공했습니다. Cloudflare의 고급 DDoS 방어에 대해 자세히 알아보세요.