DNS 필터링은 악의적이거나 금지된 웹 사이트와 애플리케이션을 DNS 수준에서 차단하여 사용자 장치에 로드되지 않도록 하는 것입니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
관련 콘텐츠
인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!
글 링크 복사
DNS 필터링은 도메인 네임 시스템을 이용해 악의적 웹사이트를 차단하고 유해하거나 부적절한 콘텐츠를 걸러내는 과정을 말합니다. 이렇게 함으로써, 회사 데이터가 안전하게 유지되며 회사가 관리하는 네트워크 중 어떤 부분에 직원들이 액세스할 수 있는지 통제할 수 있게 됩니다. DNS 필터링은 대개 광범위한 액세스 제어전략의 일환으로 추진됩니다.
도메인 네임 시스템(DNS)은 cloudflare.com 같은 도메인 이름에 해당하는 IP 주소(예: 192.0.2.24)를 찾는 시스템입니다. 도메인 이름은 숫자로만 된 IP 주소를 외워야 할 필요가 없이 웹 사이트에 액세스할 수 있기 때문에 DNS는 꼭 필요합니다. DNS는 스마트폰에 사람들의 전화번호를 기록하고 전화번호를 외우지 않는 것과 비슷합니다
사용자자 웹 애플리케이션을 열거나 액세스하면, 먼저 사용자의 장치가 정확한 IP 주소를 찾은 후에 콘텐츠를 로딩할 수 있습니다. 웹 사이트를 로딩할 수 있도록 IP 주소를 찾는 과정은 다음과 같습니다.
DNS는 웹 콘텐츠를 액세스하는 데 필수적인 요소이므로 DNS 프로세스가 이뤄지기 전에는 아무런 콘텐츠도 로드할 수 없습니다. 따라서 사용자가 액세스할 수 있는 콘텐츠를 제어하는 데 DNS 필터링이 효과적인 방식이 되는 것입니다.
모든 DNS 쿼리는 DNS 확인자에게 전달됩니다. 특별하게 구성된 DNS 확인자는 차단 목록에서 추적되고 있는 일부 도메인에 대한 쿼리 확인을 거부함으로써 필터링을 수행할 수 있으며, 이를 통해 사용자가 그러한 도메인에 접속하지 못하게 할 수 있습니다. DNS 필터링 서비스에서는 차단 목록 대신 허용 목록(자세한 내용은 아래에 설명)을 이용하기도 합니다.
한 회사의 직원이 피싱이메일을 받고는 속아서 malicious-website.com이라는 사이트로 연결된 링크를 클릭했다고 가정해 보겠습니다. 이 직원의 컴퓨터가 해당 웹 사이트에 연결하려면 먼저 회사의 DNS 확인 서비스에 쿼리를 보내야 하는데, 이 회사의 DNS 확인자가 DNS 필터링을 이용하고 있습니다. 해당 악의적 사이트가 회사의 차단 목록에 들어 있다면 DNS 확인자는 이 요청을 차단할 것입니다. 따라서 malicious-website.com가 로딩되지 않으며 피싱 공격을 물리칠 수 있게 됩니다.
DNS 필터링에서는 도메인 이름이나 IP 주소 중 하나를 이용해 웹 자산을 차단 목록에 포함합니다.
도메인 이름 이용 시: DNS 확인자가 해당 도메인에 대해서는 IP 주소를 확인하지 않습니다.
IP 주소 이용 시: DNS 확인자는 모든 도메인을 확인하려고 시도하지만, 해당 IP 주소가 차단 목록에 있다면 요청한 장치에 이 정보를 보내지 않습니다.
DNS 필터링에서 차단 목록이란 유해한 것으로 알려진 도메인 또는 IP 주소를 말합니다. DNS 필터링 공급자는 사이버 보안 커뮤니티에서 공유되는 차단 목록을 이용하기도 하고 자체적으로 차단 목록을 만들기도 하며 둘 다 수행하기도 합니다. 자체적으로 웹 페이지를 평가하고 자동으로 차단 목록에 추가하는 DNS 필터도 있습니다. 예를 들어, example.com이라는 사이트에서 악의적 JavaScript 코드를 발견했다면, 이를 차단 목록에 포함하는 것입니다.
DNS 필터링에서는 맬웨어나 피싱 공격에 이용되지 않더라도 금지된 콘텐츠나 부적절한 콘텐츠를 호스팅하는 도메인을 차단 목록에 넣을 수도 있습니다. 예를 들어, 회사에 따라서는 성인용 콘텐츠를 호스트하는 웹 사이트를 차단 목록에 넣고자 하기도 합니다.
차단 목록의 반대인 허용 목록은 허용되는 도메인이나 IP 주소의 목록입니다. 허용 목록에 있지 않은 모든 도메인과 IP 주소는 차단됩니다.
DNS 필터링을 통해, 맬웨어나 악의적 소프트웨어가 회사 네트워크와 사용자 장치에 도달하지 못하게 할 수 있습니다. 일부 피싱 공격을 차단하는 데에도 도움이 됩니다.
맬웨어를 호스트하는 웹 사이트는 사용자를 속여 악의적 프로그램을 다운로드하게 하거나 드라이브바이 다운로드(웹 페이지가 로딩될 때 자동으로 실행되는 악의적인 소프트웨어의 다운로드)를 실행합니다. 다른 다양한 공격 방식도 가능합니다. 예를 들어, 웹 페이지에서는 JavaScript 코드를 실행하는 경우가 있는데, JavaScript는 완전한 프로그래밍 언어로서 다양하게 사용자의 장치를 손상시킬 수 있습니다.
DNS 필터링을 이용하게 되면 사용자가 악의적 웹 사이트를 로딩할 수 없도록 차단하기 때문에 이러한 공격이 방지됩니다.
피싱 웹 사이트란 피싱 공격을 통해 로그인 자격 증명을 탈취하려는 가짜 웹 사이트를 말합니다. 공격에 이용하는 도메인은 스푸핑된 도메인이거나 진짜인 것처럼 꾸민 도메인으로, 대부분의 사용자가 의심하지 않습니다. 어떤 방식을 쓰든 이들의 목적은 사용자를 속여 계정 자격 증명을 공격자에게 누설하게 하는 것입니다. 이러한 웹 사이트도 DNS 필터링을 이용해 차단할 수 있습니다.
이러한 기능은 DNS 필터링이 악의적 IP 주소 또는 도메인이 악성이라는 것을 확인할 수 있는 능력에 따릅니다. 따라서 DNS 필터링으로 이 악의적 활동을 차단했다고 해도 공격자가 매우 신속하게 새로운 도메인을 만들게 되면 이러한 도메인 모두를 차단 목록에 넣기는 불가능합니다.
특정한 유형의 콘텐츠에 대한 액세스를 차단하는 방법도 위와 비슷합니다. 금지된 콘텐츠를 호스팅하는 것으로 알려진 IP 주소 또는 도메인 이름을 차단 목록에 넣어 사용자가 액세스하지 못하게 하는 것입니다. 반대로, 회사가 승인한 웹 사이트를 허용 목록에 넣어 DNS 필터링으로 다른 모든 웹 사이트를 차단할 수도 있습니다.
안전한 DNS 서버는 DNS 필터링 서비스의 일환으로 악의적 웹 사이트 또는 금지된 웹 사이트를 차단하는 DNS 확인자를 말합니다. 안전한 DNS 서버 중에는 사용자 데이터를 보호하기 위해 개인 정보 보호 기능을 강화한 것도 있습니다. 에를 들어, Cloudflare에서는 1.1.1.1이라고 하는 DNS 확인 서비스를 제공하는데, 이는 24시간이 지나면 모든 DNS 쿼리 로그를 삭제합니다.
애초에 DNS가 보안을 염두에 두고 설계된 것이 아니기 때문에 DNS 필터링 이외에도 DNS 프로세스의 보안을 높이는 방법이 더 있습니다. DNSSEC 프로토콜을 이용하면 DNS 확인자가 정확한 정보를 제공하면서 공격자에 의해 손상되지 않았는지 확인할 수 있습니다. DOT(DNS over TLS) 및 DoH(DNS over HTTPS) 프로토콜을 이용하면 DNS 쿼리와 그에 대한 응답이 암호화되기 때문에 공격자가 사용자를 DNS 쿼리를 스토킹하여 사용자가 방문하는 웹 사이트를 추적하지 못하게 됩니다.
웹 필터링은 광의의 용어로 웹 트래픽을 관리하는 다양한 방법을 일컫는 것입니다. DNS 필터링은 웹 필터링의 한 가지 유형입니다. 다른 웹 필터링 방식에는 URL 필터링, 키워드 필터링, 콘텐츠 필터링 등이 있습니다.
Cloudflare 권위 있는 DNS 서비스, 공개 DNS 확인자, DNS 필터링 기능(직원의 인터넷 액세스를 제한하려는 회사 대상)을 제공합니다. Cloudflare Gateway는 안전한 웹 게이트웨이로서, DNS 필터링, 브라우저 고립화 등의 기술을 이용해 내부 사용자의 보안을 유지합니다. Cloudflare Gateway 또는 안전한 웹 게이트웨이의 작동 방식을 자세히 알아보세요.