ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
    반응형
Designed by Tistory.