2010년 4월 16일 금요일

DNS 의 Cache Poisoning 취약점

■ DNS 의 Cache Poisoning 취약점

   DNS 프로토콜에 Cache Poisoning 취약점으로 공격자는 취약한 DNS 를 사용하는 시스템에 조

   작된 DNS 쿼리를 전송하여 캐쉬의 정보를 변경, 정상적인 사이트에 접속 시 다른 사이트의 ip로

   변조시키는 방법입니다.

 

■ 대상

   DNS 프로토콜이 적용된 소프트웨어

 

■ 취약점 내용

   공격자는 조작된 DNS 쿼리를 다량으로 전달하여 DNS 캐쉬서버의 내용을 임의로 변경할 수 있습

   니다. 요청한 주소의 원래 주소가 아닌 공격자가 지정한 주소로 변경하여 캐쉬를 변경할 수 있으

   므로 악성코드가 설치된 임의의 주소 등으로 변경이 가능합니다.
  

  이 취약점은 특정 DNS 소프트웨어에 한정되지 않고 DNS 프로토콜을 따르는 모든 소프트웨어에

  영향을 줍니다. DNS(Domain Name System)는 인터넷 인프라의 중요한 요소로 호스트 이름을 IP

  주소로 변경해 주거나 또는 반대의 역할을 수행합니다. 공격자는 조작된 DNS 정보를 전달하여 조

  작된 DNS 정보가 캐쉬 네임서버에 기록될 수 있도록 합니다. 이 공격기법은 Cache Poisoning 으

  로 불리며 다음과 같은 경우에 이번 취약점 영향을 받을 수 있습니다.

 

   DNS 프로토콜은 Transaction ID 라는 16비트의 필드를 가지고 있습니다. 쿼리 요청시 이 ID 번호

  가 임의로 선택되어 지는것을 예측하여 캐쉬 조작이 가능하고, ID 값은 32,768 개의 값이 존재하

  여 추측하기 힘들지만 취약점을 내포한 DNS 의 경우는 이보다 더 작은 번호로 예측하여 공격시도

  가 가능해 집니다.
  

  또한, 요청된 쿼리에 대해 응답되는 쿼리는 같은 소스포트 번호를 사용하여 스푸핑이 더욱 쉽게

  가능해 집니다. 요청한 DNS 쿼리에 대해 응답을 주는경우 출발지와 목적지 포트가 동일하고 트랜

  젝션 ID 까지 같은 경우는, 올바른 것으로 판단되어 캐쉬에 잘못된 정보를 기록할 수 있게 됩니다.

 

  현재 이 취약점의 공격코드가 7/24일(한국시간) 공개되어 각별한 주의가 필요합니다.

 

■ 취약점 확인방법

  - 다음 명령 실행
    $dig @localhost +short porttest.dns-oarc.net TXT 또는 아래와 같이 IP로 조회
    $dig @해당서버IP +short porttest.dns-oarc.net TXT

 

  - 취약한 경우 응답 내용
     porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
     "해당서버IP is POOR: 26 queries in 3.6 seconds from 1 ports with std dev 0"  

  - 취약하지 않은경우 DNS 확인 결과
     z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
     "IP-of-GOOD is GOOD: 26 queries in 2.0 seconds from 26 ports with std dev 17685.51"
 
■ 패치방법

   - 업그레이드

    캐시 DNS 서버로 사용되는 시스템을 운영 중이라면, 패치가 된 버전으로 업그레이드 합니다.
    패치버전: BIND 9.3.5-p1, BIND 9.4.2-p1, BIND 9.5.0-p1

   - 업그레이드 외에 recursive query 제한
    
     $ vi /etc/named.conf

      acl xxx { 127.0.0.1; 해당서버IP; };

      options { version "unknown";
       .
       .
       .
      allow-recursion { xxx; };
      };
 
       acl 리스트에 있는 IP에만 recursive query 허용하도록 설정합니다.


■ windows OS 사용자의 경우 아래 URL을 참조하여 해당 DNS취약점 패치를 업그레이드 하시기

   바랍니다.

   - 마이크로소프트
     http://www.microsoft.com/korea/technet/security/bulletin/ms08-037.mspx
   - ISC BIND
     http://www.isc.org/index.pl?/sw/bind/bind-security.php

 

■ 언급되지 않은 소프트웨어는 사용하는 해당 DNS의 확인 후 취약점 여부를 반드시 확인할 것을

    권고합니다.

 

■ 참고정보

- CVE 정보 : CVE-2008-1447
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-1447
- US-CERT 취약점 노트, VU#800113
http://www.kb.cert.org/vuls/id/800113

댓글 없음:

댓글 쓰기