DNS는 보안을 염두에 두고 설계되지 않았으며 DNS 시스템의 취약점을 악용하기 위해 만들어진 많은 유형의 공격이 있습니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
관련 콘텐츠
인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!
글 링크 복사
DNS 보안은 DNS 인프라를 사이버 공격으로부터 보호하여 빠르고 안정적으로 작동하도록 하는 방법입니다. 효과적인 DNS 보안 전략에는 중복 DNS 서버 설정, DNSSEC와 같은 보안 프로토콜 적용, 엄격한 DNS 로깅 요구 등 여러 중복 방어가 통합됩니다.
많은 인터넷 프로토콜과 마찬가지로 DNS 시스템은 보안을 염두에 두고 설계되지 않았으며 몇 가지 설계 제한 사항이 있습니다.이러한 제한 사항과 기술의 발전으로 인해 DNS 서버는 스푸핑, 증폭, DoS(서비스 거부), 개인 정보 가로채기 등의 광범위한 공격에 취약합니다.DNS는 대부분의 인터넷 요청에서 없어서는 안될 부분이므로 공격의 주요 대상이 될 수 있습니다.
또한 DNS 공격은 실제 대상으로부터 보안 팀의 주의를 분산시키려고 다른 사이버 공격과 함께 배포되는 경우가 많습니다. 조직에서는 DNS 공격을 신속하게 완화하여 공격자가 너무 바빠서 다른 벡터를 통한 동시 공격을 수행할 수 없도록 할 수 있어야 합니다.
공격자는 DNS 서버를 겨냥하고 악용할 수 있는 여러 가지 방법을 찾았습니다. 가장 일반적인 DNS 공격은 다음과 같습니다.
DNS 스푸핑/캐시 악성 침입: 이는 위조된 DNS 데이터가 DNS 확인자의 캐시에 투입되어, 확인자가 도메인의 잘못된 IP 주소를 반환하게 만드는 공격입니다. 이렇게 되면, 트래픽이 올바른 웹사이트로 이동하는 대신, 악의적인 컴퓨터나 공격자가 원하는 다른 곳으로 이동하게 될 수 있습니다. 이러한 위치는 대개 맬웨어 배포 또는 로그인 정보 수집과 같은 악의적인 목적에 사용되는, 원래 사이트의 복제본입니다.
DNS 터널링: 이 공격은 다른 프로토콜을 사용하여 DNS 쿼리 및 응답에 굴을 뚫는 것입니다. 공격자는 SSH, TCP, HTTP를 사용하여 대부분의 방화벽에서 탐지되지 않으면서, 맬웨어나 도난된 정보를 DNS 쿼리에 전달할 수 있습니다.
DNS 하이재킹: DNS 하이재킹에서는 공격자가 쿼리를 다른 도메인 이름 서버로 리디렉션합니다. 이는 맬웨어로 수행되거나 DNS 서버의 무단 수정을 통해 수행될 수 있습니다. 그 결과는 DNS 스푸핑과 비슷하지만, 이 공격은 확인자의 캐시가 아니라 이름 서버에 있는 웹 사이트의 DNS 레코드를 대상으로 하므로 근본적으로 다른 공격입니다.
NXDOMAIN 공격: 이는 공격자가 합법적인 트래픽에 대해 서비스 거부를 유발하기 위해, 존재하지 않는 레코드를 요구하는 요청으로 DNS 서버를 압도하는 일종의 DNS 폭주 공격입니다. 이는 각 요청에 대해 고유한 하위 도메인을 자동 생성할 수 있는 정교한 공격 도구를 사용하여 수행할 수 있습니다. NXDOMAIN 공격은 확인자 캐시를 정크 요청으로 채우는 것을 목표로 하여, 재귀 확인자를 대상으로 삼을 수도 있습니다.
팬텀 도메인 공격: 팬텀 도메인 공격은 DNS 확인자에 대한 NXDOMAIN 공격과 비슷한 결과를 가져옵니다. 공격자는 요청에 매우 느리게 응답하거나 전혀 응답하지 않는 '팬텀' 도메인 서버를 다수 설정합니다. 이러한 도메인에 대한 요청이 쇄도하면, 확인자는 계속 응답을 기다리게 되므로, 성능이 느려지고 서비스 거부가 발생합니다.
무작위 하위 도메인 공격: 이 경우, 공격자가 합법적인 사이트의 존재하지 않는 무작위 하위 도메인 다수에 대해 DNS 쿼리를 보냅니다. 도메인의 권한 있는 이름 서버에 대한 서비스 거부를 생성하여, 이름 서버에서 웹 사이트를 조회할 수 없도록 하는 것이 목적입니다. 재귀 확인자의 캐시에 잘못된 요청이 로드되어, 공격자에게 서비스를 제공하는 ISP도 영향을 받는 부작용도 있을 수 있습니다.
도메인 잠금 공격: 공격자는 다른 합법적인 확인자와 TCP 연결을 생성하도록, 특수 도메인과 확인자를 설정함으로써 이러한 형태의 공격을 조율합니다. 대상이 된 확인자가 요청을 보내면, 이 도메인은 느린 무작의 패킷 스트림을 다시 보내 확인자의 자원을 묶어둡니다.
봇넷 기반 CPE 공격: 이러한 공격은 고객 온프레미스 장비(CPE)를 사용하여 수행됩니다. CPE 기기는 모뎀, 라우터, 케이블 박스 등 고객이 사용하도록 서비스 공급자가 제공한 하드웨어입니다. 공격자가 CPE 장비를 손상시키면, 해당 장비는 봇넷의 일부가 되어, 하나의 사이트나 도메인에 대해 무작위 하위 도메인 공격을 수행하는 데 사용됩니다.
DNS 보안 확장(DNSSSEC)은 이 문제를 완화하기 위해 만들어진 보안 프로토콜입니다. DNSSEC는 데이터의 디지털 서명을 통해 유효성을 보장하는 방식으로 공격으로부터 보호합니다. 안전한 조회를 보장하기 위해서는, DNS 조회 프로세스의 모든 수준에서 서명이 이루어져야 합니다.
이 서명 절차는 사람이 펜으로 법적 문서에 서명하는 것과 유사합니다. 그 사람은 다른 사람이 만들 수 없는 고유한 서명으로 서명하고, 법원 전문가는 그 서명을 봄으로써 해당 사람이 문서에 서명했음을 확인할 수 있습니다. 이러한 디지털 서명은 데이터가 변경되지 않았음을 보장합니다.
DNSSEC는 모든 DNS 계층에 걸쳐 계층적 디지털 서명 정책을 구현합니다. 예를 들어 'google.com' 조회의 경우, 루트 DNS 서버는 .COM 이름 서버에 대한 키에 서명하고 .COM 이름 서버는 google.com의 권한 있는 이름 서버에 대한 키에 서명합니다.
개선된 보안 방식이 항상 선호되기는 하지만, DNSSEC는 추가 보안 없이도 기존의 DNS 조회가 여전히 올바르게 확인할 수 있도록, 이전 버전과 호환되도록 설계되었습니다. DNSSEC는 전체 인터넷 보안 전략의 일환으로 SSL/TLS 등의 다른 보안 수단과 함께 작동합니다.
DNSSEC는 루트 영역으로 이동하는 상위-하위 간의 일련의 신뢰 관계를 생성합니다. 이 신뢰 체인은 어떤 DNS 계층에서도 손상되지 않습니다. 그렇지 않다면, 요청이 온패스(on-path) 공격에 노출될 것입니다.
신뢰 체인을 닫으려면 루트 영역 자체의 유효성을 검사해야 하며(변조 또는 사기가 없음을 입증), 이는 실제로 사람의 개입을 통해 이루어집니다. 흥미롭게도 소위 루트 영역 서명식(Root Zone Signing Ceremony)에서 전 세계에서 선별된 개인들이 만나서 루트 DNSKEY RRset를 공개 및 감사 방식으로 서명합니다.
다음은 DNSSEC 작동 방식에 대한 자세한 설명입니다 >>>
DNS 영역의 운영자는 DNSSEC 외에도 추가 조치를 취하여 서버를 보호할 수 있습니다.인프라를 과도하게 프로비저닝하는 것은 DDoS 공격을 극복하기 위한 간단한 전략 중 하나입니다.간단히 말하자면, 이름 서버가 예상보다 몇 배 더 많은 트래픽을 처리할 수 있으면 볼륨 기반 공격으로 서버를 압도하기가 더 어려워집니다.조직에서는 DNS 서버의 총 트래픽 용량을 늘리고, 여러 중복 DNS 서버를 설정하며, 부하 분산을 사용하여 성능이 저하되기 시작할 때 DNS 요청을 정상 서버로 라우팅하여 이를 달성할 수 있습니다.
또 다른 전략은 역시 DNS 방화벽입니다.
DNS 방화벽은 DNS 서버에 다양한 보안 및 성능 서비스를 제공할 수 있는 도구입니다. DNS 방화벽은 사용자의 재귀 확인자와 도달하려는 웹사이트 또는 서비스의 권한 있는 이름 서버 사이에 배치됩니다. 방화벽은 속도 제한 서비스를 제공하여, 서버를 제압하려고 하는 공격자를 차단할 수 있습니다. 공격 또는 다른 이유로 서버가 작동하지 않게 되면, 방화벽은 캐시에서 DNS 응답을 제공하여, 운영자 사이트 또는 서비스를 유지할 수 있습니다.
DNS 방화벽은 보안 기능 외에도 빠른 DNS 조회 및 DNS 운영자의 대역폭 비용 절감과 같은 성능 솔루션도 제공할 수 있습니다. Cloudflare의 DNS 방화벽에 대해 자세히 알아보세요.
DNS 확인자는 최종 사용자(인터넷을 탐색하는 사람)에게 보안 솔루션을 제공하도록 구성할 수도 있습니다. 일부 DNS 확인자는 맬웨어 및 스팸을 배포하는 것으로 알려진 사이트를 차단할 수 있는 콘텐츠 필터링 기능과 알려진 봇넷과의 통신을 차단하는 봇넷 보호 등의 기능을 제공합니다. 이러한 보안 DNS 확인자 중 다수는 무료로 사용할 수 있으며, 사용자는 로컬 라우터에서 단일 설정을 변경하여 이러한 재귀 DNS 서비스 중 하나로 전환할 수 있습니다. Cloudflare DNS는 보안에 중점을 둡니다.
또 다른 중요한 DNS 보안 문제는 사용자 개인 정보 보호입니다. DNS 쿼리는 암호화되지 않습니다. 사용자가 자신의 활동이 추적되지 않는 1.1.1.1과 같은 DNS 확인자를 사용하더라도, DNS 쿼리는 인터넷을 통해 일반 텍스트로 이동합니다. 이는 쿼리를 가로채는 사람은 누구나 사용자가 방문하는 웹 사이트를 볼 수 있음을 의미합니다.
이러한 개인 정보 보호의 부족은 보안 및 경우에 따라 인권에 영향을 미칩니다. DNS 쿼리가 비공개가 아닌 경우 정부가 인터넷을 검열하고 공격자가 사용자의 온라인 행동을 스토킹하기가 더 쉬워집니다.
TLS를 통한 DNS 및 HTTPS를 통한 DNS는 외부 당사자가 읽을 수 없도록 DNS 쿼리를 암호화하는 두 가지 표준입니다.
Cloudflare의 DNS 서비스에는 DNSSEC, DDoS 완화, 다중 DNS 기능, 부하 분산 등의 다양한 보안 기능이 내장되어 있습니다.