시팅덕스: 등록기관을 건드리지 않고 도메인을 빼앗다
훔친 비밀번호도 없었고 등록기관 기록도 그대로였다. 그런데도 수만 개 도메인이 넘어갔다 — 누구든 요청만 하면 존을 내주는 DNS 제공자에게 위임해 둔 탓이었다.
프로토콜, 보안 사건, 그리고 인터넷이 실제로 작동하는 방식. 147편.
훔친 비밀번호도 없었고 등록기관 기록도 그대로였다. 그런데도 수만 개 도메인이 넘어갔다 — 누구든 요청만 하면 존을 내주는 DNS 제공자에게 위임해 둔 탓이었다.
.nl 도메인은 60% 안팎이 DNSSEC를 켜는데 .com은 4%쯤이다. 프로토콜 때문이 아니다. 돈을 따라가라 — 채택률은 레지스트리가 등록기관에 서명 값을 치르는지를 따라간다.
example.com을 찾으려면 그 네임서버에 물어봐야 하는데, 그 네임서버는 example.com 안에 산다. 모든 도메인 뿌리에 놓인 순환 의존성이다. 그리고 그걸 푸는 건 대부분 고장 나기 전까진 눈에 띄지도 않는, 작고 깨지기 쉬운 장치 — 글루 레코드다.
DNS는 이름을 알아야 물어볼 수 있게 만든다 — 존 전체를 목록으로 뽑는 명령은 없다. 단 하나, AXFR만 빼고. 이걸 열어 두면 낯선 사람이 네임서버에게 전화번호부 전체를 부쳐 달라고 요청할 수 있다.
2019년 2월 1일, DNS 리졸버들이 고장 난 서버를 감싸주는 걸 그만두기로 했다. 그 감싸주기는 20년째 조용히 돌아가고 있었다.
맨 끝의 점은 도메인 이름을 쓰는 가장 기술적으로 정확한 방식이다 — DNS 루트를 글자로 적어낸 것이니까. 그런데 DNS 위의 모든 계층이 그 의미에 서로 다른 답을 내고, 그 불일치가 계속 보안 버그로 터진다.
국가 방화벽은 검열 대상 DNS 조회를 막지 않는다. 진실보다 먼저 도착하는 위조 응답으로 '답'을 준다. 그 거짓말은 때로 실제 회사의 서버를 가리키고, 때로는 검열자가 의도하지 않은 사람들에게까지 새어 나간다.
8년 동안 서명된 DNS의 보안 전체가 단 한 번도 바뀐 적 없는 키 하나에 매달려 있었다. 2018년 마침내 그 키를 교체했을 때, 무서웠던 건 암호학이 아니라 — 어느 리졸버가 따라올 준비가 됐는지 아무도 볼 수 없다는 사실이었다.
DNS에는 기억이 없다 — 도메인이 무엇을 가리키는지 물으면 오늘의 답만 나오고, 작년의 답은 절대 나오지 않는다. 패시브 DNS는 누가 물었는지는 결코 기록하지 않으면서, 인터넷이 내놓은 모든 답을 기억하는 우연한 감시 데이터베이스다.
2008년, 연구자 한 명이 인터넷의 어떤 도메인이든 몇 초 만에 위조하는 법을 찾아냈다. 해결책은 새 프로토콜이 아니라 25년 된 설계에 덧댄 16비트의 무작위성이었고, 우리는 아직도 거기 기대고 있다.
2016년, 가정용 카메라와 DVR로 만든 봇넷이 인터넷의 한 조각을 마비시켰다. 대단한 취약점을 찌른 게 아니다. 공장 초기 비밀번호로 그냥 로그인했다.
2021년 10월, 페이스북은 해킹당하지도 DDoS를 맞지도 않았다. 명령어 하나를 실행했고, 자사의 안전장치가 페이스북을 인터넷 지도에서 지워버렸다 — 그리고 해결책이 있는 방에서 엔지니어들을 잠가버렸다.