976. DNS 스푸핑 (DNS Spoofing) - 도메인 네임 캐시 포이즈닝 조작 해킹 공격 ARP 스푸핑 연계 가짜 IP 유도 보안 취약점 방어 기법 DNSSEC
핵심 인사이트: 내가 브라우저에
naver.com을 쳤다. 컴퓨터는 네이버의 찐짜 전화번호(IP)를 모르니, 114 안내원(DNS 서버)에게 "네이버 IP가 뭐죠?"라고 묻는다. 그때 옆에 몰래 숨어있던 해커가 114 안내원보다 0.01초 더 빨리 내 귀에 대고 "네이버 IP는 6.6.6.6(해커의 피싱 사이트) 이야!"라고 속삭인다(사기극). 내 컴퓨터는 먼저 도착한 목소리만 믿고 6.6.6.6으로 냅다 접속해서 비밀번호를 털린다. 114 전화번호부의 신뢰를 무참히 박살 내어, 피해자가 자기도 모르게 가짜 농협 사이트에 제 발로 걸어가게 만드는 최악의 사기극, DNS 스푸핑이다.
Ⅰ. DNS(도메인 네임 시스템)의 맹목적인 믿음 🌟
- UDP의 맹점: DNS는 통신 속도를 위해 대충 던지고 마는 UDP(53번 포트)를 씁니다.
- 컴퓨터가 "네이버 IP가 뭐야?"라고 질문(Query)을 쏘고 답장을 기다릴 때, 컴퓨터는 "누가 보냈든 간에, 내 질문 번호(Transaction ID)만 맞혀서 나한테 '가장 먼저 1등으로' 도착한 응답 패킷만 정답으로 무조건 믿고, 2등으로 온 진짜 응답은 지각생이라며 쓰레기통에 버리는" 멍청한 습성을 가집니다.
Ⅱ. DNS 스푸핑 (DNS Spoofing)의 동작 3단계 🌟
해커는 이 "1등만 기억하는 더러운 세상"의 취약점을 찌릅니다.
- 스니핑 (엿듣기): 해커는 우리 동네 사내망이나 카페 와이파이에 몰래 들어와, 내 컴퓨터가 114(KT DNS 서버)에게
naver.comIP를 물어보는 질문 패킷(Transaction ID 파악)을 중간에서 몰래 엿듣습니다(ARP 스푸핑 연계 등). - 가짜 응답 폭격 (사기극 발동): 해커가 진짜 KT DNS 서버보다 0.01초 더 빨리 내 컴퓨터로 응답 패킷을 쏩니다. "야! 네이버 IP는 내 해킹 서버 주소인
6.6.6.6이야!" - 피해자의 무덤 (캐시 오염): 내 컴퓨터는 해커의 말이 1등으로 도착했으니 "아 네이버는 6.6.6.6이구나!" 100% 맹신하고 램(DNS Cache)에 저장해 버립니다. 그리고 그 주소로 접속해 아이디와 비밀번호를 치는 순간, 똑같이 생긴 가짜 네이버(피싱 사이트) 화면 뒤에서 해커가 비밀번호를 날름 주워 먹습니다. 나중에 도착한 진짜 KT의 응답은 2등이므로 버려집니다.
Ⅲ. 더 거대한 재앙: DNS 캐시 포이즈닝 (Cache Poisoning) 🌟
내 컴퓨터(개인) 하나를 속이는 게 아니라, KT나 SKT 같은 거대 114(Local DNS 서버) 자체를 뇌사시켜버리는 스케일이 다른 공격입니다.
- 원리: 해커가 KT DNS 서버에게 "야, 구글 IP 뭐야?"라고 질문 수만 개를 던집니다. KT DNS 서버는 정답을 몰라서 윗선(루트 DNS)에 질문을 던지고 답을 기다립니다.
- 이때 해커가 루트 서버인 척 위장하여 KT DNS 서버에게 가짜 답장을 1등으로 미친 듯이 융단폭격합니다.
- 재앙의 결과: KT DNS 서버의 뇌(캐시 메모리)에
구글 = 해커 서버 IP라는 맹독(Poison) 같은 거짓 장부가 각인되어 버립니다. 다음 날 수백만 명의 KT 가입자가 구글을 치면, 오염된 KT 서버가 단체로 사기를 쳐서 수백만 명을 해커 사이트로 싹 다 밀어 넣는 대국민 사기극이 터집니다.
Ⅳ. 방어 기법 (방어는 어떻게 하는가?)
- 공격 1차 저지: 사내망에서는 해커가 내 패킷을 엿듣지 못하도록 958번 VLAN으로 부서를 쪼개서 브로드캐스트 스니핑을 차단합니다.
- 근본적 해결책: DNSSEC (DNS Security Extensions) 🌟 핵심 🌟:
- DNS 응답이 올 때마다 "진짜 네이버 서버가 보낸 거 맞나?" 의심을 합니다.
- 응답 패킷 겉면에 국가 공인 기관이 찍어준 '전자 서명(암호학적 도장)'을 쾅 박아서 보냅니다. 해커가 가짜 답장을 1등으로 보내도 암호 도장이 없기 때문에 브라우저가 "도장 없네? 이 새끼 사기꾼!" 하고 그 가짜 패킷을 찢어버려 스푸핑을 완벽히 방어해 내는 차세대 표준 백신입니다. (935번 RPKI와 원리가 100% 똑같습니다.)
📢 섹션 요약 비유: 인터넷에
농협.com을 치는 것은 콜센터(DNS)에 전화해서 "농협 전화번호 뭐예요?" 묻는 것입니다. 1초 뒤 진짜 안내원이 대답하기 전에, 옆에 숨어있던 보이스피싱 해커가 0.1초 만에 튀어나와 "농협 번호는 010-해커-해커 입니다!"라고 선수를 치는 것이 DNS 스푸핑입니다. 컴퓨터는 무조건 1등으로 말한 놈만 믿기 때문에 해커 번호로 전화를 걸어 계좌번호를 털립니다. 한발 더 나아가, 아예 114 안내원의 전화번호부에 침투해 화이트로 농협 번호를 지우고 자기 번호를 덮어써 버려, 전 국민을 사기 치는 끔찍한 독극물 테러가 DNS 캐시 포이즈닝입니다. 이 사기를 근본적으로 막기 위해 콜센터 직원이 전화번호를 알려줄 때 무조건 '정부 인증 전자 도장(DNSSEC)'을 찍은 공문서만 접수하게 만들어, 해커의 혓바닥을 잘라버리는 것이 현대 인터넷의 방패입니다.