1. Perpustakaan
  2. DNS
  3. DNS 보안

Diperbarui 1 bulan yang lalu

인터넷을 쓰면서 자연스럽게 익힌 습관이 있습니다. 주소 표시줄을 확인하고, 자물쇠 아이콘을 찾아보는 것이죠. 그것들이 맞으면 안전하다는 신호입니다.

DNS 하이재킹은 바로 그 습관을 무기로 바꿉니다.

웹사이트 주소를 입력하면 DNS가 그 이름을 실제 목적지로 변환합니다. DNS 하이재킹은 이 변환 과정을 오염시킵니다. 브라우저는 올바른 주소를 보여주고, 자물쇠 아이콘도 나타날 수 있습니다. 하지만 실제로는 사기꾼과 연결된 상태입니다—그토록 믿어온 바로 그것이 지금 당신을 속이고 있는 겁니다.

캐시 포이즈닝이 프로토콜 취약점을 악용하는 것과 달리, 하이재킹은 공격자가 DNS 인프라의 합법적인 부분—라우터, 기기, 리졸버, 혹은 도메인 등록 자체—을 장악한 것을 의미합니다. 공격자는 시스템을 속이지 않습니다. 시스템의 일부가 되어버립니다.

이 공격이 다른 이유

대부분의 공격은 흔적을 남깁니다. 하이재킹은 설계 자체가 보이지 않게 되어 있습니다. 악성 콘텐츠가 로드되는 동안에도 사용자는 주소 표시줄에서 정상적인 도메인을 봅니다. 로그인 정보는 고스란히 공격자 손에 넘어가고, 공격자는 이를 실제 사이트에 다시 사용할 수 있습니다. 악성 파일 다운로드는 믿을 수 있는 출처에서 오는 것처럼 보입니다. 피해자가 그 도메인을 신뢰한다는 사실 자체가 무기가 됩니다.

이 공격이 통하는 이유는 DNS에 응답이 진짜인지 확인하는 기능이 없기 때문입니다. 기기가 "bank.com은 어디 있나요?"라고 물으면, 가장 먼저 도착한 답을 그대로 믿습니다. 그 답이 손상된 라우터나 하이재킹된 네임서버에서 온다면, 공격자가 원하는 곳으로 연결됩니다.

공격 표면

라우터 침해

대부분의 가정용·소규모 사무용 라우터는 초기 설정 그대로 출고됩니다. 펌웨어 업데이트도 거의 받지 못합니다. 공격자들은 이런 장치를 끊임없이 스캔합니다—통계적으로 지금 이 순간 당신의 라우터도 취약할 가능성이 높습니다.

일단 접근하면 설정 하나만 바꿉니다: DNS 서버 주소. 이것만으로 네트워크의 모든 기기—스마트폰, 노트북, 스마트 TV—가 공격자 서버로 DNS 쿼리를 보내게 됩니다. 공격자는 의심을 피하기 위해 대부분의 사이트는 그대로 두면서, 뱅킹 사이트처럼 가치 있는 도메인만 골라 다른 곳으로 연결합니다.

전혀 눈치채지 못합니다. 기기는 평소처럼 작동하고, 웹사이트도 잘 열리고, 주소 표시줄에는 익숙한 도메인이 그대로 보입니다.

기기의 악성 코드

악성 코드는 라우터를 건드릴 필요도 없이 기기를 직접 수정할 수 있습니다. 트로이 목마는 시스템의 DNS 설정을 바꾸거나 hosts 파일—DNS보다 먼저 처리되는 로컬 재정의 파일—을 편집할 수 있습니다.

이 방식은 매우 정밀합니다. 은행, 이메일 서비스, 암호화폐 거래소처럼 가치 있는 대상만 골라 리디렉션하고, 나머지는 정상적으로 동작하게 두어 탐지를 어렵게 만듭니다.

악성 DNS 서버

공용 Wi-Fi는 DHCP를 통해 DNS 서버를 알려줍니다. 악성 핫스팟에 연결하는 순간, 기기는 지시받은 DNS 서버를 자동으로 신뢰합니다. 공격자의 리졸버는 대부분의 쿼리에 완벽하게 응답합니다—Google도 열리고, 소셜 미디어도 열리고, 뉴스도 열립니다. 그런데 은행 잔액을 확인하려는 순간, 당신은 가짜 사이트에 로그인 정보를 입력하고 있는 겁니다.

레지스트라 계정 탈취

이것이 가장 치명적인 방법입니다. 모든 도메인에는 레지스트라에 저장된 네임서버 레코드가 있습니다—해당 도메인의 권한 있는 DNS가 어디에 있는지 인터넷 전체에 알려주는 정보입니다. 레지스트라 계정을 탈취해 그 레코드를 바꾸면, 전 세계 모든 사람에게 해당 도메인을 하이재킹한 것과 같습니다.

레지스트라에 있는 텍스트 레코드 두 개—흔히 비밀번호 하나만으로 보호되는—를 바꾸는 것만으로 수백만 명의 사용자를 정상 사이트에서 공격자 서버로 돌릴 수 있습니다. 인터넷의 신뢰 체계 전체가 보안 수준이 제각각인 수천 개의 레지스트라에 걸쳐 이 레코드들이 정확하게 유지되는 것에 달려 있습니다.

공격자는 자격 증명 탈취, 고객지원 직원을 대상으로 한 사회공학, 또는 레지스트라 시스템의 취약점 악용을 통해 계정에 접근합니다. 일단 들어가면 도메인의 네임서버를 자신의 인프라로 바꾸고, 전 세계 어디서든 해당 도메인의 DNS를 장악합니다.

탐지

행동 징후

평소 잘 접속하던 사이트에서 갑자기 SSL 인증서 경고가 뜬다면 즉시 확인이 필요합니다. 웹사이트 화면이 미묘하게 달라 보이거나, 예상치 못한 로그인 창이 나타나거나, 낯선 페이지로 연결된다면 마찬가지입니다. 브라우저가 가장 먼저 이상을 감지하는 경우가 많습니다.

직접 확인

중요한 도메인을 여러 DNS 서버로 조회해 보세요. 같은 도메인에 대해 Google DNS와 Cloudflare DNS가 다른 IP를 반환한다면, 뭔가 잘못된 겁니다. dig나 온라인 DNS 조회 도구를 쓰면 이 비교가 어렵지 않습니다.

인증서 확인

공격자는 자신이 통제하는 도메인에 대해 유효한 SSL 인증서를 받을 수 있지만, 사칭하려는 도메인의 인증서는 받을 수 없습니다. 인증서에 적힌 도메인 이름을 꼼꼼히 확인하세요—공격자는 yourbank.com 대신 yourbank-secure.com 같은 유사 도메인을 자주 씁니다.

레지스트라 알림 설정

레지스트라가 제공하는 알림은 모두 켜두세요. 네임서버 변경, 연락처 정보 수정, 도메인 이전 시도, 새로운 위치에서의 로그인—모두 즉시 파악해야 합니다. 공격자가 트래픽을 가로채고 있다면, 분 단위로 피해가 늘어납니다.

보호 계층

신뢰할 수 있는 DNS 리졸버 사용

ISP나 네트워크가 자동으로 제공하는 DNS 서버를 그냥 쓰지 마세요. 신뢰할 수 있는 리졸버를 직접 설정하세요:

  • Cloudflare: 1.1.1.1
  • Google: 8.8.8.8
  • Quad9: 9.9.9.9

이 업체들은 대부분의 ISP가 따라오지 못하는 수준의 보안 관행을 유지합니다.

DNS 쿼리 암호화

기존 DNS는 쿼리를 암호화하지 않고 전송합니다. 네트워크 경로상에 있는 누구든 어떤 도메인을 요청하는지 볼 수 있고, 응답을 변조할 수도 있습니다.

DNS-over-HTTPS (DoH)와 DNS-over-TLS (DoT)는 기기와 리졸버 사이의 쿼리를 암호화합니다. 같은 네트워크에 있는 공격자는 DNS 트래픽을 엿볼 수도, 가짜 응답을 삽입할 수도 없습니다. 최신 브라우저와 운영 체제는 이 프로토콜을 지원하므로, 활성화하면 중요한 공격 경로를 차단할 수 있습니다.

DNSSEC 검증 활성화

DNSSEC는 DNS 레코드에 암호화 서명을 추가합니다. 리졸버가 이 서명을 검증하면 위조된 응답을 탐지할 수 있습니다. 도메인의 권한 있는 서버가 레코드에 서명하고, 리졸버는 서명이 일치하는지 확인합니다. 변조가 일어나면 들킬 수밖에 없습니다.

DNSSEC는 도메인(서명)과 리졸버(검증) 양쪽의 지원이 필요합니다. 서명된 도메인이 아직 전부는 아니지만, 양쪽이 모두 참여할 때 보호가 작동합니다.

라우터 보안 강화

기본 비밀번호를 변경하세요. 이 한 가지 행동만으로도 대부분의 라우터 기반 공격을 막을 수 있습니다. 그다음으로:

  • 펌웨어를 정기적으로 업데이트하세요
  • 원격 관리 기능을 비활성화하세요
  • DHCP로 받아오는 기본값 대신 DNS 서버를 직접 설정하세요
  • DNS 설정을 주기적으로 확인하세요—혼자 바뀌는 일은 없어야 합니다

레지스트라 계정 잠금

중요한 도메인이라면 2단계 인증은 선택이 아닌 필수입니다. SMS 방식은 안 됩니다—인증 앱이나 하드웨어 보안 키를 사용하세요. SMS는 SIM 스와핑으로 가로챌 수 있습니다.

도메인 이전을 막기 위해 레지스트라 잠금을 설정하세요. 가치 있는 도메인이라면 레지스트리 잠금도 활성화하세요—이 경우 네임서버 변경이 적용되기 전에 도메인 레지스트리를 통한 수동 확인 절차가 필요합니다. 번거롭더라도 그만한 가치가 있습니다.

지속적인 모니터링

자동화된 모니터링 서비스는 DNS 해석 결과, SSL 인증서, 등록 정보를 추적하며 내가 하지 않은 변경이 생기면 즉시 알려줍니다. 중요한 도메인은 여러 지역에서 동시에 모니터링하세요—일부 공격은 특정 지역만 대상으로 합니다.

하이재킹이 발생했을 때

얼마나 빨리 대응하느냐가 피해 규모를 결정합니다. 필요하기 전에 대응 계획을 세워두세요.

로컬 공격(라우터 또는 기기 침해)의 경우: 즉시 DNS를 신뢰할 수 있는 리졸버로 변경하세요. 악성 코드 검사를 실행하세요. 라우터를 공장 초기화한 뒤 안전한 설정으로 다시 구성하세요.

레지스트라 공격의 경우: 즉시 레지스트라 보안팀에 연락하세요. 대부분의 레지스트라는 도메인 하이재킹에 대한 긴급 처리 절차를 갖추고 있습니다. 무엇이 바뀌었는지, 언제 발견했는지, 무단으로 변경된 설정이 무엇인지 모두 기록해두세요. 이 기록은 복구 과정과 법적 조치에 도움이 됩니다.

복구 후: 공격자가 어떻게 들어왔는지 반드시 파악하세요. 취약한 비밀번호였나요? 2단계 인증이 없었나요? 자격 증명을 빼앗긴 피싱 이메일이었나요? 같은 방법으로 다시 당하기 전에 구멍을 막아야 합니다.

신뢰의 기반

DNS 하이재킹이 통하는 이유는 우리가 도메인 이름이 제대로 연결될 것이라고 믿기 때문입니다. 그 신뢰가 인터넷의 기반이자 취약점입니다.

보호 계층을 하나씩 쌓아갈수록 하이재킹은 점점 어려워집니다. 암호화된 쿼리는 로컬 도청을 막고, DNSSEC는 응답 위조를 막고, 라우터 보안은 네트워크 수준 리디렉션을 막고, 레지스트라 잠금은 도메인 탈취를 막습니다.

어느 하나만으로는 완전하지 않습니다. 하지만 층층이 쌓이면, DNS는 맹목적으로 신뢰하는 시스템에서 속임수를 감지하고 예방을 현실화할 수 있는 시스템으로 바뀝니다.

주소 표시줄은 거짓말을 해서는 안 됩니다. 이 보호 조치들이 그걸 가능하게 합니다.

DNS 하이재킹에 관해 자주 묻는 질문

DNS가 하이재킹되었는지 어떻게 알 수 있나요?

여러 곳에서 DNS 조회 결과를 비교해보세요. 현재 DNS 서버로 조회한 결과와 1.1.1.1이나 8.8.8.8 같이 신뢰할 수 있는 서버로 조회한 결과를 비교하세요. 지역에 따라 달라지지 않아야 할 도메인의 IP가 서로 다르게 나타난다면 즉시 확인이 필요합니다. 평소 잘 쓰던 사이트에서 갑작스러운 SSL 인증서 경고가 뜨는 것도 강력한 신호입니다.

DNS 하이재킹과 DNS 포이즈닝은 어떻게 다른가요?

DNS 포이즈닝은 프로토콜 취약점을 악용해 리졸버 캐시에 잘못된 레코드를 심습니다—시스템을 속이는 것입니다. DNS 하이재킹은 공격자가 라우터, 기기, 도메인 등록 정보 등 실제 DNS 구성 요소를 직접 장악한 것입니다. 하이재킹이 더 심각한 이유는 공격자가 인프라를 단순히 이용하는 것이 아니라 통제하기 때문입니다.

HTTPS를 쓰면 DNS 하이재킹으로부터 보호받을 수 있나요?

부분적으로만 그렇습니다. HTTPS는 통신을 암호화하지만, DNS 하이재킹은 처음부터 엉뚱한 서버로 연결시킵니다. 공격자가 유사 도메인 인증서를 내세워 자신의 서버로 유인한다면 HTTPS는 무용지물입니다. 다만, 공격자는 사칭하려는 실제 도메인의 인증서는 받을 수 없으므로, 인증서를 꼼꼼히 확인하면 속임수를 잡아낼 수 있습니다.

ISP의 DNS 서버를 써야 하나요?

보통은 그렇지 않습니다. Cloudflare, Google, Quad9 같은 주요 공개 DNS 제공업체는 더 나은 보안 관행, 빠른 응답 속도, 그리고 많은 ISP가 지원하지 않는 암호화 DNS 프로토콜을 제공합니다. 일부 ISP는 광고를 끼워 넣거나 조회 실패 시 다른 곳으로 연결하는데, 이것도 기술적으로는 DNS 조작의 한 형태입니다.

Apakah halaman ini membantu?

😔
🤨
😃