| 취약점ID |
19010 |
| 위험도 |
40 |
| 포트 |
53 |
| 프로토콜 |
TCP,UDP |
| 분류 |
DNS |
| 상세설명 |
해당 BIND 서버의 버전에 따르면 다중 버퍼 오버플로우 취약점들에 취약하다. ISC의 BIND (Berkeley Internet Name Domain)는 Unix와 Linux DNS 서버용의 DNS (Domain Name Server) 프로토콜의 구현으로 아주 많이 이용되고 있다. 버전 4.9.10 이하의 BIND 4와 버전 8.3.3 이하의 BIND 8은 다양한 형태의 공격을 가할 수 있는 다중 취약점들에 취약하다. 몇몇 취약점들은 원격지의 공격자들이 named (대개는 root)의 권한이나, 혹은 취약한 클라이언트 어플리케이션들의 권한으로 임의의 명령을 수행할 수 있게 해 줄 수 있다. 다른 취약점들은 원격지의 공격자들이 희생자 서버들에서 가동되는 DNS Name 서비스의 정상적인 작동을 방해할 수 있도록 해 줄 수 있다. 다음은 구체적인 BIND 취약점들이다.
o Cached malformed SIG record 버퍼 오버플로우: - BIND 버전 4.9.5 에서 4.9.10 까지 - BIND 버전 8.1, 8.2 에서 8.2.6 까지, 그리고 8.3.0 에서 8.3.3 까지 CVE : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-1219
o 아주 큰 OPT Record Assertion (assertion, 예기치 않은 에러): - BIND 버전 8.3.0 에서 8.3.3 까지 CVE : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-1220
o ISC BIND 8 내부 데이터베이스에서 잘못된 만료된 시간을 가진 Cache SIG RR 요소들을 적절하게 de-reference(주소에 대한 실제 데이터를 가지고 오는 작업) 해 내지를 못함: - BIND 버전 8.2 에서 8.2.6 까지 - BIND 버전 8.3.0 에서 8.3.3 까지 CVE : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-1221
o 네트워크 Name 또는 주소 Lookup을 통한 버퍼 오버플로우에 취약한 DNS Resolver 라이브러리: - BIND 4.9.2 에서 4.9.10 까지 CVE : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-0029
* 알림: 이 점검항목은 취약점을 점검하기 위해 단지 BIND의 버전 정보만을 확인한다. 따라서 거짓 양성반응(False Positive)를 보일 수 있다.
* 참고 사이트: http://www.cert.org/advisories/CA-2002-31.html
* 영향을 받는 플랫폼: Linux Any version Unix Any version |
| 해결책 |
만약 벤더에서 패치를 제공한다면 벤더로부터 패치를 구하여 설치하여야 한다. 다음 사이트에 있는 Appendix 에는 벤더들에서 제공되는 정보들이 포함되어 있다: http://www.cert.org/advisories/CA-2002-31.html
또한 BIND 관리자들은 BIND 9로의 업그레이드도 고려해야 한다. BIND의 업데이트된 버전들에 대한 정보에 대해서는 다음 ISC 웹사이트를 참조하여야 한다: http://www.isc.org/software/bind
임시 조치방법으로 Recursive DNS 기능을 필요로 하지 않는 DNS 서버들에 대해 BIND 설정파일 내에 있는 Recursion을 다음과 같이 작동중시 시킬 것을 권고한다:
BIND 8, named.conf options { recursion no; }; BIND 4, named.boot options no-recursion
-- 혹은 --
Named에 있는 취약점들이 노출되지 않도록 제한하는 또한가지 임시 조치방법으로 신뢰할 수 없는 시스템들로부터의 DNS 요청들에 대한 네임서버에 한해 Recursion을 작동중지 시키는 것이다. Bind 버전 8을 사용한다면 named.conf 파일의 'options' 섹션에서 'allow-recursive' 명령을 사용할 수 있다. Bind 버전 9를 사용한다면 'allow-recursion' 명령을 사용할 수 있다. 보여 주지 않아도 될 정보가 검색되어 지지 않도록 외부 클라이언트들에게 DNS 서버로부터 서비스되는 정보를 부분적으로 제한할 필요가 있다. 이 정보는 allow-transfer, allow-query, allow-recursive (혹은 allow-recursion) 그리고 version과 같은 옵션들이 해당된다. Global 섹션 (서비스되는 모든 Zone들이 적용됨)이나 per-zone basis 에서 이것을 제한할 수 있다.
예들들어, 서버가 인터넷과 내부 네트웍 (내부 IP가 192.168.1.2)에 연결되어 있고 (기본적으로 Multi-Homed 서버), 내부 호스트들에게만 DNS Lookup을 허용해 주고 인터넷으로는 어떤 서비스도 제공하지 않고자 한다면 /etc/named.conf에 다음 내용을 포함하여 제한할 수 있다:
options { allow-query { 192.168.1/24; } ; allow-transfer { none; } ; allow-recursive { 192.168.1/24; } ; listen-on { 192.168.1.2; } ; forward { only; } ; forwarders { A.B.C.D; } ; }; |
| 관련 URL |
CVE-2002-1219,CVE-2002-1220,CVE-2002-1221,CVE-2002-0029 (CVE) |
| 관련 URL |
6186 (SecurityFocus) |
| 관련 URL |
10304 (ISS) |
|