DNS 보안

DNS는 보안을 염두에 두고 설계되지 않았으며 DNS 시스템의 취약점을 악용하기 위해 만들어진 많은 유형의 공격이 있습니다.

Share facebook icon linkedin icon twitter icon email icon

DNS 보안

학습 목표

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

  • DNSSEC의 정의 및 작동 방식 이해
  • 가장 일반적인 DNS 공격 숙지
  • DNSSEC와 다른 DNS 보안 솔루션 구분

왜 DNS 보안이 중요합니까?

거의 모든 웹 트래픽에 필요한 표준 DNS 쿼리는 DNS 하이재킹 및 메시지 가로채기(man-in-the-middle attack) 공격과 같은 DNS 악용 기회를 만듭니다. 이러한 공격은 웹사이트의 인바운드 트래픽을 가짜 사이트 복사본으로 리디렉션하여 중요한 사용자 정보를 수집하고 비즈니스를 주요 책임에 노출시킵니다. DNS 위협으로부터 보호하는 가장 잘 알려진 방법 중 하나는 DNSSEC 프로토콜을 채택하는 것입니다.

DNSSEC란 무엇입니까?

많은 인터넷 프로토콜과 마찬가지로 DNS 시스템은 보안을 염두에두고 설계되지 않았으며 몇 가지 설계 제한 사항이 있습니다. 이러한 제한 사항과 기술의 발전으로 인해 공격자는 맬웨어를 배포하거나 개인 정보를 수집할 수 있는 사기성 웹사이트로 사용자를 보내는 등 악의적인 목적으로 DNS 조회를 쉽게 가로챌 수 있습니다. DNS 보안 확장(DNSSSEC)은 이 문제를 완화하기 위해 만들어진 보안 프로토콜입니다. DNSSEC는 데이터의 디지털 서명을 통해 유효성을 보장하는 방식으로 공격으로부터 보호합니다. 안전한 조회를 보장하기 위해서는 DNS 조회 프로세스의 모든 수준에서 서명이 이루어져야 합니다.

많은 인터넷 프로토콜과 마찬가지로 DNS 시스템은 보안을 염두에두고 설계되지 않았으며 몇 가지 설계 제한 사항이 있습니다. 이러한 제한 사항과 기술의 발전으로 인해 공격자는 맬웨어를 배포하거나 개인 정보를 수집할 수 있는 사기성 웹사이트로 사용자를 보내는 등 악의적인 목적으로 DNS 조회를 쉽게 가로챌 수 있습니다.


DNS 보안 확장(DNSSSEC)은 이 문제를 완화하기 위해 만들어진 보안 프로토콜입니다. DNSSEC는 데이터의 디지털 서명을 통해 유효성을 보장하는 방식으로 공격으로부터 보호합니다. 안전한 조회를 보장하기 위해서는 DNS 조회 프로세스의 모든 수준에서 서명이 이루어져야 합니다.


이 서명 프로세스는 누군가가 펜으로 법적 문서에 서명하는 것과 유사합니다. 그 사람은 다른 사람이 만들 수 없는 고유한 서명으로 서명하고 법원 전문가는 그 서명을 보고 해당 사람이 문서에 서명했음을 확인할 수 있습니다. 이러한 디지털 서명은 데이터가 변경되지 않았음을 보장합니다.


DNSSEC는 모든 DNS 계층에 걸쳐 계층적 디지털 서명 정책을 구현합니다. 예를 들어 'google.com' 조회의 경우, 루트 DNS 서버는 .COM 네임서버에 대한 키에 서명하고 .COM 네임서버는 google.com의 권한있는 네임서버에 대한 키에 서명합니다.


향상된 보안이 항상 선호되는 반면, DNSSEC는 기존의 DNS 조회가 추가 보안 없이도 여전히 올바르게 확인할 수 있도록 이전 버전과 호환되도록 설계되었습니다. DNSSEC는 전체 인터넷 보안 전략의 일환으로 SSL/TLS와 같은 다른 보안 수단과 함께 작동합니다.


DNSSEC는 루트 영역으로 이동하는 부모-자식 신뢰 기차를 생성합니다. 이 신뢰 체인은 어떤 DNS 계층에서도 손상될 수 없으며, 그렇지 않으면 요청이 메시지 가로채기(man-in-the-middle attack) 공격에 노출됩니다.


신뢰 체인을 닫으려면 루트 영역 자체의 유효성을 검사해야 하며(변조 또는 사기가 없음을 입증), 이는 실제로 사람의 개입을 통해 이루어집니다. 흥미롭게도 일명 루트 영역 서명식(Root Zone Signing Ceremony)에서 전 세계에서 선별된 개인들이 만나서 루트 DNSKEY RRset을 공개 및 감사 방식으로 서명합니다.

다음은 DNSSEC 작동 방식에 대한 자세한 설명입니다 >>>

DNS와 관련된 일반적인 공격은 무엇입니까?

DNSSEC는 강력한 보안 프로토콜이지만 불행히도 현재 보편적으로 채택되지는 않았습니다. DNS가 대부분의 인터넷 요청에서 없어서는 안될 부분이라는 사실에 비추어 볼 때 다른 잠재적 취약점과 결합된 이러한 채택의 부족은 DNS를 악의적인 공격의 주요 대상으로 만듭니다. 공격자는 DNS 서버를 타겟으로 삼고 악용할 수 있는 여러 가지 방법을 찾았으며, 가장 일반적인 방법은 다음과 같습니다.

DNS 스푸핑/캐시 중독: 이는 위조된 DNS 데이터가 DNS 확인자의 캐시에 도입되어 확인자가 도메인의 잘못된 IP 주소를 반환하는 공격입니다. 트래픽이 올바른 웹사이트로 이동하는 대신 악의적인 컴퓨터나 공격자가 원하는 다른 곳으로 우회될 수 있습니다. 이것은 대개 맬웨어 배포 또는 로그인 정보 수집과 같은 악의적인 목적으로 사용되는 원래 사이트의 복제본입니다.

DNS 터널링: 이 공격은 다른 프로토콜을 사용하여 DNS 쿼리 및 응답을 통해 터널링합니다. 공격자는 SSH, TCP 또는 HTTP를 사용하여 대부분의 방화벽에서 탐지되지 않는 맬웨어나 도난된 정보를 DNS 쿼리에 전달할 수 있습니다.

DNS 하이재킹: DNS 하이재킹에서 공격자는 쿼리를 다른 도메인 이름 서버로 리디렉션합니다. 이는 맬웨어 또는 DNS 서버의 무단 수정으로 수행될 수 있습니다. 결과는 DNS 스푸핑의 그것과 비슷하지만 이 공격은 확인자의 캐시가 아니라 네임서버에 있는 웹사이트의 DNS 레코드를 타겟으로 하기 때문에 근본적으로 다른 공격입니다.

DNS Hijacking

NXDOMAIN 공격: 이는 공격자가 합법적인 트래픽에 대해 서비스 거부를 유발하기 위해 존재하지 않는 레코드를 요구하는 요청으로 DNS 서버를 침수시키는 일종의 DNS 플러드 공격입니다. 각 요청에 대해 고유한 하위 도메인을 자동 생성할 수 있는 정교한 공격 도구를 사용하여 수행할 수 있습니다. NXDOMAIN 공격은 확인자 캐시를 정크 요청으로 채우는 것을 목표로 재귀 확인자를 타겟으로 삼을 수도 있습니다.

팬텀 도메인 공격: 팬텀 도메인 공격은 DNS 확인자에 대한 NXDOMAIN 공격과 비슷한 결과를 가져옵니다. 공격자는 요청에 매우 느리게 응답하거나 전혀 응답하지 않는 다수의 '팬텀' 도메인 서버를 설정합니다. 그러면 이러한 도메인에 대한 요청이 쇄도하여 확인자가 응답을 기다리다 지치게 되어 성능이 느려지고 서비스 거부가 발생합니다.

무작위 하위 도메인 공격: 이 경우 공격자는 하나의 합법적인 사이트의 여러 존재하지 않는 무작위 하위 도메인에 대해 DNS 쿼리를 보냅니다. 목표는 도메인의 권한있는 네임서버에 대한 서비스 거부를 생성하여 네임서버에서 웹사이트를 조회할 수 없도록 하는 것입니다. 부작용으로, 재귀 확인자의 캐시에 잘못된 요청이 로드되어 공격자에게 서비스를 제공하는 ISP도 영향을 받을 수 있습니다.

도메인 잠금 공격: 악의적인 공격자는 다른 합법적인 확인자와 TCP 연결을 생성하도록 특수 도메인과 확인자를 설정함으로써 이러한 형태의 공격을 조율합니다. 타겟 확인자가 요청을 보내면 이 도메인은 느린 무작의 패킷 스트림을 다시 보내 확인자의 리소스를 묶어둡니다.

봇넷 기반 CPE 공격: 이러한 공격은 CPE(Customer Premise Equipment) 기기를 사용하여 수행됩니다. CPE 기기는 모뎀, 라우터, 케이블 박스 등 고객이 사용하도록 서비스 공급자가 제공한 하드웨어입니다. 공격자는 CPE를 손상시키고 기기는 봇넷의 일부가 되어 하나의 사이트나 도메인에 대해 무작위 하위 도메인 공격을 수행하는 데 사용됩니다.

DNS 기반 공격으로부터 보호하는 가장 좋은 방법은 무엇입니까?

DNSSEC 외에도 DNS 영역 운영자는 서버를 보호하기 위해 추가 조치를 취할 수 있습니다. 오버프로비저닝 인프라는 DDoS 공격을 극복하기 위한 간단한 전략 중 하나입니다. 간단히 말해, 네임서버가 예상보다 여러 배 이상의 트래픽을 처리할 수 있다면 볼륨 기반 공격이 서버를 압도하기가 더 어렵습니다.


Anycast 라우팅은 DDoS 공격을 방해할 수 있는 또 다른 편리한 도구입니다. Anycast를 사용하면 여러 서버가 단일 IP 주소를 공유할 수 있으므로 한 DNS 서버가 종료되더라도 다른 서버가 계속 작동합니다 DNS 서버 보안을 위한 또 다른 일반적인 전략은 DNS 방화벽입니다.

DNS 방화벽이란 무엇입니까?

DNS 방화벽은 DNS 서버에 다양한 보안 및 성능 서비스를 제공할 수 있는 도구입니다. DNS 방화벽은 사용자의 재귀 확인자와 도달하려는 웹사이트 또는 서비스의 권한있는 네임서버 사이에 배치됩니다. 방화벽은 Rate Limiting 서비스를 제공하여 서버를 제압하려고 하는 공격자를 차단할 수 있습니다. 공격 또는 다른 이유로 서버가 다운타임을 경험하는 경우, DNS 방화벽은 캐시에서 DNS 응답을 제공하여 운영자 사이트 또는 서비스를 유지할 수 있습니다. DNS 방화벽은 보안 기능 외에도 빠른 DNS 조회 및 DNS 운영자의 대역폭 비용 절감과 같은 성능 솔루션을 제공할 수 있습니다. Cloudflare의 DNS 방화벽에 대해 자세히 알아보십시오.

DNS 방화벽은 DNS 서버에 다양한 보안 및 성능 서비스를 제공할 수 있는 도구입니다. DNS 방화벽은 사용자의 재귀 확인자와 도달하려는 웹사이트 또는 서비스의 권한있는 네임서버 사이에 배치됩니다. 방화벽은 Rate Limiting 서비스를 제공하여 서버를 제압하려고 하는 공격자를 차단할 수 있습니다.


공격 또는 다른 이유로 서버가 다운타임을 경험하는 경우, DNS 방화벽은 캐시에서 DNS 응답을 제공하여 운영자 사이트 또는 서비스를 유지할 수 있습니다. DNS 방화벽은 보안 기능 외에도 빠른 DNS 조회 및 DNS 운영자의 대역폭 비용 절감과 같은 성능 솔루션을 제공할 수 있습니다. Cloudflare의 DNS 방화벽에 대해 자세히 알아보십시오.

보안 도구로서의 DNS

최종 사용자(인터넷을 탐색하는 사람)에게 보안 솔루션을 제공하도록 DNS 확인자를 구성할 수도 있습니다. 일부 DNS 확인자는 맬웨어 및 스팸을 배포하는 것으로 알려진 사이트를 차단할 수 있는 콘텐츠 필터링 및 알려진 봇넷과의 통신을 차단하는 봇넷 보호와 같은 기능을 제공합니다. 이러한 보안 DNS 확인자 중 다수는 무료로 사용할 수 있으며 사용자는 로컬 라우터에서 단일 설정을 변경하여 이러한 재귀 DNS 서비스 중 하나로 전환할 수 있습니다. Cloudflare DNS는 보안에 중점을 둡니다.