-
DNS cache poisoning/ DNS hijacking 비교> Information Security/Telecommunication 2017. 2. 21. 07:08
1. DNS(Domain Name Service)란
DNS는 우리가 원하는 웹사이트에 접속하도록 텍스트로 된 URL을 IP주소와 매칭한다.
웹사이트에 접속할 때, 텍스트 형태의 주소(URL)을 숫자로 이루어진 주소(IP)와 매칭하여 기 쉽게 제공하는 '도메인 네임 서비스'이기 때문이다.
DNS가 없다면 우리는 웹브라우저 URL 입력란에 'www.naver.com' 대신 ‘202.179.177.21:80'로 입력해야 할 것이다.
[그림 1.1 도메인 URL 없이 네이버에 접속한 모습]
2. URL로 웹사이트를 접속하기 위해 우리의 PC는 어떤 동작을 할까
먼저 기존에 접속한 이력이 있는지 ①PC의 DNS Cache Table을 확인한다.
DNS Cache Table은 한 번 접속한 웹사이트에서 받아온 DNS정보를 일정기간 Cache 형태로 테이블에 저장한 것을 말한다. 다음 번에도 접속할 때 DNS 요청/응답을 받아올 필요가 없이 Cache가 남아있는 동안은 빠르게 연결하기 위함이다.
▶ Windows 환경에서 DNS Cache Table 확인방법
# ipconfig /displaydns
두번째로 ②Hosts 파일을 확인한다. Hosts파일은 특정 URL과 IP를 지정하여 관리하는 파일이다.
▶ Windows
C:\Windows\System32\drivers\etc\hosts
▶ Unix
/etc/hosts
만일 DNS Cache Table과 Hosts파일에 등록되지 않았다면, DNS서버에 '이 URL을 지닌 사이트로 연결시켜줘’라는 ③DNS Query(UDP 53 port)를 요청한다.
3. DNS Query(요청과 응답)
우리가 '네이버'라는 웹사이트에 접속하기 위해선 ISP(인터넷 서비스 제공자)를 통해 네이버의 DNS서버 정보를 요청하고 응답을 받는다.
[그림 3.1 - 네이버에 접속하기 위해 DNS서버에 요청과 응답을 받는 과정]
※ 168.126.63.2는 KT(ISP)의 DNS IP 이다.
'www.naver.com'에 접속하기 위해 DNS 정보를 요청하는 DNS Request 패킷을 살펴보자.
[그림 3.1 - KT DNS서버에 네이버의 DNS를 요청하는 패킷]
DNS 프로토콜로 UDP 53을 통해 www.naver.com에 대한 DNS 쿼리를 전송하고 있다. 이 패킷의 응답 패킷은 '50번' 패킷에서 확인할 수 있음을 Wireshark는 친절하게 보여준다.
이제 네이버 DNS 서버에서 수신된 Response 패킷을 살펴보자.
[그림 3.2 - 네이버 웹사이트 정보가 담긴 응답 패킷]
네이버의 IP가 '202.179.177.22, 125.209.222.141' 라는 정보를 확인할 수 있다.
이 정보는 nslookup을 통해서도 확인할 수 있다.
# cmd > nslookup www.naver.com
4. DNS Hijacking(또는 Redirection/Spoofing)이란
웹사이트의 IP로 접속하려고 하는 도중에 가로채어 가짜 IP주소로 변경해서 전혀 다른 사이트로 접속(리다이렉트)하게 하는 공격이 DNS Hijacking이다.
한 때 '파밍'이라고 불리던 악성코드가 PC에서 DNS를 변경시키는 방식이 여기에 해당한다.
hosts파일에서 특정 URL의 DNS정보를 가짜 IP로 변경하고, 공격자가 의도한 악성사이트에 접속하게 한다.
[그림 5.1 악성코드로 인한 DNS Hijacking(Redirect)]
여기에서 DNS Hijacking이 모든 '파밍'을 의미하진 않는다.
중간에서 패킷을 변조(Spoofing)해서 엉뚱한 웹 사이트로 접속하게 할 수도 있고, 환경과 가능성에 따라 형태는 여러가지로 존재할 수 있다.
5. DNS Cache Poisoning
로컬 DNS 캐시에 가짜 값을 덮어써서 악성 사이트로 접속하도록 리다이렉트 시키는 공격이다.
예를 들어 'thewindowsclub.com'으로 접속을 할 때 (A.B.C.D)라는 IP주소로 DNS 캐시에 저장되어 있을 것이다. 이 때 DNS Cache Poisoning은 ‘thewindowsclub.com’과 가짜 IP(X.Y.Z.Z)가 담긴 대량의 응답(response)를 보낸다.
[그림 5.2 DNS Cache Poisoning]
진짜 DNS 서버가 진짜IP를 보내더라도, 당신의 컴퓨터가 가짜IP(X.Y.Z.Z)를 진짜로 믿게 한다.
▶ Windows 환경에서 DNS Cache를 삭제하는 방법
# ipconfig /flushdns
728x90반응형'> Information Security > Telecommunication' 카테고리의 다른 글
GNS환경에서의 라우터 설정 (0) 2014.01.27 VMware에서의 네트워크 설정 (6) 2014.01.17 VPN(가상사설망), L2TP, PPTP, IPSEC, SSH, SSL (1) 2013.01.25