본문 바로가기

3-6. 보안

ISC BIND9 Dynamic Update 요청을 통한 원격 서비스 거부 취약점

◈ 제목
ISC BIND 9 "Dynamic Update" 요청을 통한 원격 서비스 거부 취약점

◈ 개요
ISC BIND 9 일부 버전에서 조작된 Dynamic Update 요청을 통해 서비스가 크래쉬될 수 있는 서비스 거부(Denial-of-Service) 취약점이 발견되었다.

◈ 공격유형
서비스 거부

◈ 해당시스템
  • BIND 9.4.3-P3, 9.5.1-P3, 9.6.1-P3 이전 버전들

    ◈ 영향
    공격자는 해당 취약점을 이용하여 서비스 거부 공격을 수행할 수 있다.

    ◈ 설명
    ISC BIND 9 일부 버전에서 조작된 Dynamic Update 요청을 통해 서비스가 크래쉬될 수 있는 서비스 거부(Denial-of-Service) 취약점이 발견되었다.
    Dynamic Update 기능은 BIND 8 버전 이후로 지원되며, Zone 파일의 레코드를 동적으로 갱신할 수 있는 기능이다.

    Dynamic Update 요청은 다음과 같은 구조를 갖는다.

    +---------------------------------------------------------+
    | Header | Zone | Prerequisite | Update | Additional Data |
    +---------------------------------------------------------+

    특히, 해당 취약점은 다음 공격 Dynamic Update 요청처럼 prerequisite 섹션에 "ANY" type 레코드를 갖고 적어도 하나 이상의 해당 FQDN의 RRset이 존재하는 경우에 발생한다.

    -------------------------------------------------------
    공격 Dynamic Update 요청
    -------------------------------------------------------
    ;; HEADER SECTION
    ;; id = 31081
    ;; qr = 0 opcode = UPDATE rcode = NOERROR
    ;; zocount = 0 prcount = 1 upcount = 0 adcount = 0

    ;; ZONE SECTION (1 record)
    ;; example.com. IN SOA

    ;; PREREQUISITE SECTION (1 record)
    www.example.com. 0 IN ANY ; no data
    ------------------------------------------------------

    해당 공격이 성공하는 경우, BIND 데몬이 크래쉬되어 도메인 요청에 대한 정상적인 서비스를 지원할 수 없게된다.

    해당 취약점은 Dynamic update 기능의 disable/enable에 상관없이 영향을 받기 때문에 매우 위험하다.

  • BIND Dynamic Update DoS(CVE-2009-0696)


  • ◈ 해결책
    해당 취약점은 Dynamic Update 기능에 상관없이 영향을 주기 때문에 다음과 같이 취약점이 존재하지 않는 상위버전으로 조속히 업그레이드하여야 한다.

    bind-9.6.1-P1
    http://ftp.isc.org/isc/bind9/9.6.1-P1/bind-9.6.1-P1.tar.gz
    bind-9.5.1-P3
    http://ftp.isc.org/isc/bind9/9.5.1-P3/bind-9.5.1-P3.tar.gz
    bind-9.4.3-P3
    http://ftp.isc.org/isc/bind9/9.4.3-P3/bind-9.4.3-P3.tar.gz


    ◈운영체제별 업데이트 정보

    다음은 운영체제별로 업데이트 하기 위한 방법을 기술한 것으로,
    운영하고 있는 OS 종류에 따라 관리자는 적절한 방법을 선택하면 된다.
    여기서는 일반적인 방법만을 언급하고 있으므로, 시스템별 세부적인 사항은 각 운영체제의 벤더 홈페이지를 참고하기 바란다.


    1) 데비안/우분투 리눅스
    # apt-get update
    # apt-get upgrade
    # /etc/init.d/bind9 restart

    2) 레드헷/페도라/CentOS 리눅스
    # yum update

    3) NetBSD
    # cd src
    # cvs update -d -P external/bsd/bind/dist
    # cd external/bsd/bind/bin/named
    # make USETOOLS=no cleandir dependall
    # make USETOOLS=no install

    4) OpenBSD

    # cd /usr/src
    # cvs -d anoncvs@anoncvs.ca.openbsd.org:/cvs -q up -Pd
    # cd /usr/src/sbin/bind
    # make -f Makefile.bsd-wrapper obj
    # make -f Makefile.bsd-wrapper depend
    # make -f Makefile.bsd-wrapper
    # make -f Makefile.bsd-wrapper install

    5) Solaris

    http://sunsolve.sun.com/search/document.do?assetkey=1-66-264828-1


    ◈ 참고사이트
    실시간 보안위협정보는 ASEC블로그를 통해 빠르게 확인하실 수 있습니다
    - ASEC Threat Research : http://blog.ahnlab.com/asec

    -------------------------------------------------------------------
    NO WARRANTY
    이 권고문은 ㈜안철수연구소의 ASEC에서 국내 인터넷 보안의 발전을 위하여 발표하는 보안 권고문이다.

    ASEC Contact Information
    Copyright 2002-2009 ASEC(Ahnlab Security E-response Center).
    All Rights Reserved.