도메인이 탈취당하지 않게 지키려고 보통 무엇을 신경 쓰는지 떠올려 보자. 등록기관 로그인. 그 계정의 2단계 인증. 이전을 막는 등록기관 잠금(registrar lock). 복구용 이메일 주소. 대부분의 사람에게 이 목록이 곧 도메인 보안이고, 그 전제는 하나다: 도메인을 훔치려면 공격자는 도메인이 사는 곳으로 들어와야 한다.

시팅덕스(Sitting Ducks) 공격은 그중 어느 것도 거치지 않는다. 당신의 등록기관에 로그인하지 않고, 네임서버 레코드를 바꾸지 않고, 계정을 건드리지도 않는다. 공격이 끝난 뒤에도 등록기관 화면은 어제와 똑같다 — 같은 소유자, 같은 네임서버, 잠금도 그대로. 그런데 공격자는 당신 도메인에 대해 자기가 원하는 DNS 레코드를 전 세계에 응답하고 있다.

내 것이 아닌 도메인을 가져가는 법

도메인의 네임서버(NS) 레코드는 등록기관에서 누가 이 이름의 DNS 질문에 답하는가를 가리킨다. 답을 담고 있는 게 아니라, 답을 쥔 제공자를 지목할 뿐이다. 그래서 example.com의 NS 레코드가 어떤 관리형 DNS 제공자 — ns1.somednsprovider.net 같은 — 를 가리키면, 실제 A 레코드와 MX 레코드가 든 존(zone)은 그 제공자가 쥐고 있다.

이 위임에는 이름 붙은 실패 모드가 있다. 레임 위임(lame delegation) 이다. 도메인에 적힌 네임서버가 정작 그 존을 가지고 있지 않은 상태다. NS 레코드는 “이 제공자에게 물어봐”라고 하는데, 물어보면 제공자는 어깨를 으쓱한다 — 그 이름에 대한 설정이 아예 없으니까. 이 일은 지루할 만큼 자주 벌어진다. 누군가 무료 체험으로 DNS 호스팅을 띄워 도메인을 거기로 가리켰다가, 체험이 끝나 존이 삭제됐는데 등록기관의 NS 레코드는 여전히 그 제공자를 향해 있다. 혹은 회사가 DNS를 옮기면서 옛 존을 지웠지만 위임을 갱신하는 걸 잊었다. 도메인은 반쯤 되거나 조용히 멈추고, 아무도 티켓을 올리지 않고, 그 포인터는 허공을 가리킨 채 남는다.

여기에 두 번째 재료를 더한다. 어떤 DNS 제공자는 소유권을 증명하지 않아도 아무 도메인 이름으로나 새 계정에서 존을 만들게 해 준다. 가입하고, example.com이라고 입력하면, 서비스는 기꺼이 그 도메인의 DNS를 응답하기 시작한다 — 제공자 입장에서 당신은 존을 설정하는 또 한 명의 고객일 뿐이니까. 바깥세상의 NS 레코드가 정말 자기네를 가리키는지, 당신이 그 이름을 등록한 사람이 맞는지, 묻지 않는다.

이 둘을 합치면 공격은 저절로 써진다. 공격자는 NS 레코드가 ‘악용 가능한 제공자’를 가리키면서도 그 제공자에 존이 더는 존재하지 않는 도메인을 찾는다. 그 제공자에 계정을 열고, 존을 차지하고, 내용을 채운다. 등록기관의 NS 레코드는 꿈쩍도 하지 않는다 — 원래부터 이 제공자를 가리키고 있었으니까. 제공자는 몇 년 전 이 도메인에 응답하라는 지시를 받았고 멈춘 적이 없다. 공격자는 그저 답을 공급했을 뿐이다. 그 순간부터 이름이 어디로 해석될지, 웹 트래픽이 어느 서버로 갈지, 메일이 어디로 갈지를 공격자가 쥔다.

굳이 ‘우아하다’고 부를 수 있다면 그 우아함은 이것이다. 피해자가 들여다보는 어느 곳에서도 아무것도 바뀌지 않는다. 등록기관은 멀쩡하다. WHOIS/RDAP 기록도 멀쩡하다. 로그인도, 이전도, 비밀번호 재설정 메일도 없었다. 바뀐 건 오직, 소유자가 아직 위임돼 있다는 사실조차 잊은 제3자에 있는 존의 내용뿐이다.

이 버그는 많은 사람의 경력보다 오래됐다

불편한 대목은 이게 교묘하다는 게 아니다. 오래됐다는 것이다. 이 공격 유형은 보안 연구자 매튜 브라이언트(Matthew Bryant)가 2016년에 “고아가 된 인터넷(The Orphaned Internet)“이라 이름 붙여 처음 정리했다. 그는 주요 클라우드·DNS 제공자에 적절한 계정을 등록하는 것만으로 약 12만 개 도메인을 가져갈 수 있음을 보였다. 조용한 제보가 아니었다. 제공자를 실명으로 지목했고, 숫자까지 계산해 냈다.

8년 뒤인 2024년 7월 말, Infoblox와 Eclypsium이 공동 분석을 발표하며 결국 굳어진 이름을 붙였다. 시팅덕스. 그들의 숫자는 두 번 읽게 되는 종류다. 언제든 악용 가능한 등록 도메인이 100만 개 넘을 것으로 추정되고, 2019년 이후 이미 수만 개가 탈취됐다. 2024년 11월 후속 보고에서 Infoblox는 석 달 동안 취약한 도메인 약 80만 개를 찾았고, 그중 약 9퍼센트 — 약 7만 개 — 가 이후 실제로 탈취됐다고 밝혔다. 그리고 그 탈취는 새것이 아니었다. Infoblox에 따르면 범죄자들은 2018년부터 이 방법을 써 왔다.

2016년과 2024년 사이, 고치는 법은 알려져 있었고 취약한 제공자는 실명으로 지목됐는데도, 공격 가능한 모수는 줄지 않았다 — 2024년에는 100만 개 안팎으로 추정됐다. 바로 그 간극이 진짜 이야기다. 익스플로잇 코드가 필요 없고, 100만 개 이름에 영향을 주고, 8년째 방치된 취약점은 더 이상 기술 문제가 아니다. 유인(誘因)의 문제다. 도메인 소유자는 자기가 노출돼 있는 줄 모른다. DNS 제공자는 털리는 당사자가 아니다. 등록기관 기록은 멀쩡해 보인다. 모두의 대시보드가 초록불이고, 오리는 여전히 거기 앉아 있다.

누가, 무엇을 위해 써 왔나

이 탈취들은 보고서 속에서 먼지 쌓이는 이론이 아니다. Infoblox는 이 기법으로 먹고사는 행위자 명단을 추적한다. Vacant Viper는 2019년 12월부터 매년 약 2,500개 도메인을 탈취해, 스팸을 밀고 DarkGate·AsyncRAT 같은 악성코드 계열을 뿌리고 원격 접속 트로이목마의 명령·제어(C2)를 세우는 트래픽 분배 시스템에 쏟아 넣는다. Horrid Hawk는 수십 개 언어로 짧게 뜨고 사라지는 광고를 통해 투자 사기를 돌린다. Hasty Hawk는 200개 넘는 도메인을 가로채 배송 알림을 사칭하는 피싱 페이지와 가짜 기부 사이트를 운영했다.

탈취된 도메인이 이들에게 그토록 값진 이유는, 이 공격이 잡기 어려운 이유와 같다. 거기엔 평판이 딸려 온다. 몇 년째 등록돼 있고, 메일 필터와 URL 스캐너가 멀쩡하게 행동하는 걸 봐 온 도메인은, 갓 등록한 유사 도메인보다 피싱에 훨씬 쓸모 있다. 시팅덕스는 공격자가 실제로 소유하는 서류 절차 없이도, 나이 들고 신뢰받는 — 보고된 사례에서는 유명 브랜드·비영리단체·정부기관에 속한 — 이름을 물려받게 해 준다.

오리가 되지 않는 법

방어는 ‘단단히 조이기’보다 ‘장전된 포인터를 널어 두지 않기’에 가깝다. 도메인을 탈취 가능하게 만드는 조건은 구체적이고, 구체적이라는 건 곧 확인할 수 있다는 뜻이다.

찾아야 할 것은 ‘빈 곳을 가리키는 위임’이다. 도메인의 NS 레코드에 적힌 모든 네임서버는 실제로 당신 도메인에 대해 권위 있게 응답해야 한다 — 각 네임서버에 직접 질의해, 리퍼럴이나 빈 답이 아니라 당신의 존을 권위 응답 비트(AA)와 함께 돌려주는지 확인하라. 위임된 네임서버 중 하나라도 당신 도메인을 모른다면, 그게 레임 위임이고 그게 열린 문이다. 범인은 늘 뻔하다. 해지한 호스팅 계정, 떠나온 DNS 제공자, 만료된 무료 체험 — 존 비용은 끊었는데 등록기관의 NS 레코드는 거기 맞춰 바꾸지 않은 모든 경우.

그래서 규칙은 지루하지만 통한다. DNS를 어느 제공자에서 옮길 때는, 옛 존을 허물기 전에 위임부터 갱신하라. 그리고 활성 상태로 설정된 존이 더는 없는 제공자에 도메인을 가리킨 채 두지 마라. 관리형 DNS 제공자를 고른다면, 존을 응답하기 전에 당신이 그 도메인을 통제하는지 검증하는 쪽을 택하라 — 그 한 번의 검증이 제공자를 ‘악용 가능’에서 ‘불가능’으로 바꾸는 것이고, 가입 전에 물어볼 가치가 있다.

이 중 어느 것도 난해하지 않다. 그냥 ‘재고 관리’다. 이렇게 넘어가는 도메인은 거의 언제나 아무도 보고 있지 않은 것들이다 — 잊힌 프로젝트, 옛 캠페인 사이트, 더는 안 쓰는 벤더에게서 받은 서브도메인. 이 공격이 8년을 살아남은 건 정교해서가 아니라, 관심은 희소하고 포인터는 영원하기 때문이다. 당신 자신의 NS 레코드부터 읽어 보라. 그다음, 그것이 가리키는 곳에 물어보라 — 정말 당신을 위해 응답해 줄 것인지, 그리고 곱게 부탁하는 다른 누구에게도 응답해 줄 것인지.