카민스키 버그: DNS가 무너질 뻔한 날
2008년, 연구자 한 명이 인터넷의 어떤 도메인이든 몇 초 만에 위조하는 법을 찾아냈다. 해결책은 새 프로토콜이 아니라 25년 된 설계에 덧댄 16비트의 무작위성이었고, 우리는 아직도 거기 기대고 있다.
프로토콜, 보안 사건, 그리고 인터넷이 실제로 작동하는 방식. 147편.
2008년, 연구자 한 명이 인터넷의 어떤 도메인이든 몇 초 만에 위조하는 법을 찾아냈다. 해결책은 새 프로토콜이 아니라 25년 된 설계에 덧댄 16비트의 무작위성이었고, 우리는 아직도 거기 기대고 있다.
2016년, 가정용 카메라와 DVR로 만든 봇넷이 인터넷의 한 조각을 마비시켰다. 대단한 취약점을 찌른 게 아니다. 공장 초기 비밀번호로 그냥 로그인했다.
2021년 10월, 페이스북은 해킹당하지도 DDoS를 맞지도 않았다. 명령어 하나를 실행했고, 자사의 안전장치가 페이스북을 인터넷 지도에서 지워버렸다 — 그리고 해결책이 있는 방에서 엔지니어들을 잠가버렸다.
최근 몇 년간 가장 정교했던 공급망 공격은 스캐너도, SBOM도, 보안팀도 잡지 못했다. SSH 로그인이 0.5초쯤 느린 게 거슬렸던 엔지니어 한 명이 잡았다.
아주 많은 도메인이 SPF 레코드를 ~all로 끝낸다. 실패한 메일을 받아들이라는 뜻이다. SPF 혼자서는 스푸핑을 막을 수 없게 만드는, 안전해 보이는 기본값이다.
2025년 4월, no-reply@google.com에서 유효한 Google DKIM 서명과 DMARC 통과를 달고 피싱 메일이 도착했다. 아무것도 위조되지 않았다. 그게 바로 DKIM의 문제다.
이름이 존재하지 않음을 증명하는 DNSSEC의 장치가, 존재하는 이름 목록을 통째로 흘린다. NSEC3는 이름을 해시해 zone walking을 막으려 했지만 — 오프라인 크래킹이 그대로 뚫었다. RFC 9276이 왜 iterations를 0으로 두라고 하는지, 그리고 실제로 통하는 게 뭔지.
ICANN이 2024년 7월 드디어 .internal을 사내망 전용으로 예약했다. .corp·.home을 괴롭히던 name collision 위험은 없앴지만, special-use domain이 아니라 그냥 '예약'이라 쿼리 유출은 여전히 당신 몫이다.
받은편지함의 로고는 매년 네 자릿수 비용이 든다 — 프로토콜이 비싸서가 아니라, 두 메일 사업자가 당신과 그림 한 장 사이에 인증기관을 세우기로 결정했기 때문이다.
레지스트리가 끝나고 누군가의 웹사이트가 시작되는 지점을 DNS는 알려 주지 않는다. 그래서 웹 전체가 손으로 관리되는 텍스트 파일 하나에 그 경계를 맡긴다 — 쿠키, 인증서, 그리고 누가 누구를 사칭할 수 있는가까지.
크롬은 오랫동안 OS가 신뢰하는 것을 그대로 신뢰했다. 2022년 9월 크롬은 그 질문을 멈추기 시작했고, 2024년 11월 윈도우가 여전히 신뢰하던 CA 하나를 잘라냈다.
2020년 Let's Encrypt는 인증서 300만 장을 폐기해야 할 처지였지만, 그 서버들에 '갱신하라'고 알릴 방법이 없었다. 이제 RFC 9773이 된 ACME Renewal Information이 당신 스케줄에 CA의 다이얼을 달았다.