본문 바로가기
AhnLab 보안in

[안철수연구소 ASEC 권고문]DNS 의 Cache Poisoning 취약점

by 보안세상 2020. 4. 5.

2008.07.25

 

ASEC Advisory SA-2008-006
최초 작성일 : 2008/07/24
마지막 개정 : 2008/07/24 15:30:00
위험 수준 : 위험


◈ 제목
DNS 의 Cache Poisoning 취약점

◈ 개요
DNS 프로토콜에 Cache Poisoning 취약점이 존재한다. 이 취약점을 이용하여 공격자는 취약한 DNS 를 사용하는 시스템에 조작된 DNS 쿼리를 전송하여 캐쉬의 정보를 변경할 수 있다.

◈ 공격유형
Cache Poisoning 취약점

◈ 해당시스템
DNS 프로토콜이 적용된 소프트웨어


◈ 영향
공격자는 조작된 DNS 쿼리를 다량으로 전달하여 DNS 캐쉬서버의 내용을 임의로 변경할 수 있다. 요청한 주소의 원래 주소가 아닌 공격자가 지정한 주소로 변경하여 캐쉬를 변경할 수 있으므로 악성코드가 설치된 임의의 주소 등으로 변경이 가능하다.

◈ 설명
이 취약점은 특정 DNS 소프트웨어에 한정되지 않고 DNS 프로토콜을 따르는 모든 소프트웨어에 영향을 줄 수 있다. DNS(Domain Name System)는 인터넷 인프라의 중요한 요소로 호스트 이름을 IP 주소로 변경해 주거나 또는 반대의 역할을 수행한다. 공격자는 조작된 DNS 정보를 전달하여 조작된 DNS 정보가 캐쉬 네임서버에 기록될 수 있도록 한다. 이 공격기법은 Cache Poisoning 으로 불리며 다음과 같은 경우에 이번 취약점 영향을 받을 수 있다.

- 트랜젝션 ID 예측 및 고정된 소스 포트
DNS 프로토콜은 Transaction ID 라는 16비트의 필드를 가지고 있다. 쿼리 요청시 이 ID 번호가 임의로 선택되어 지는것을 예측하여 캐쉬 조작이 가능해 진다. ID 값은 32,768 개의 값이 존재하여 추측하기 힘들지만 취약점을 내포한 DNS 의 경우는 이보다 더 작은 번호로 예측하여 공격시도가 가능해 진다. 또한, 요청된 쿼리에 대해 응답되는 쿼리는 같은 소스포트 번호를 사용하여 스푸핑이 더욱 쉽게 가능해 진다.

요청한 DNS 쿼리에 대해 응답을 주는경우 출발지와 목적지 포트가 동일하고 트랜젝션 ID 까지 같은 경우는, 올바른 것으로 판단되어 캐쉬에 잘못된 정보를 기록할 수 있게 된다.

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

◈ 해결책
사용하는 각 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

-------------------------------------------------------------------
NO WARRANTY
이 권고문은 ㈜안철수연구소의 ASEC에서 국내 인터넷 보안의 발전을 위하
여 발표하는 보안 권고문이다. ㈜안철수연구소는 이 권고문에 포함되어 있
는 내용 및 기타 어떠한 결과에 대해서도 보장을 하지 못하며, 책임을 지지 않는다.

ASEC Contact Information
Email: asec@ahnlab.com
Copyright 2002-2008 ASEC(Ahnlab Security E-response Center).