ISC는 2021년 2월 17일, BIND가 사용하는 SPNEGO 구현에서 버퍼 오버플로(buffer overflow) 취약점 CVE-2020-8625를 공개했습니다. 심각도는 High, CVSS 점수는 8.1이며 원격에서 악용할 수 있습니다. 기본 설정에서는 취약한 코드 경로가 노출되지 않지만, GSS-TSIG 기능을 켜 둔 서버는 영향을 받습니다. 해당 서버는 BIND 9.11.28 또는 9.16.12로 업그레이드해야 합니다.
무엇이 발표되었나
GSS-TSIG는 트랜잭션 서명(TSIG) 프로토콜의 확장으로, 네트워크상에서 통신 상대의 진위를 검증할 때 쓰는 키를 안전하게 교환하기 위한 것입니다. SPNEGO(Simple and Protected GSSAPI Negotiation Mechanism)는 GSS-TSIG의 응용 프로그램 인터페이스인 GSSAPI가 사용하는 협상 메커니즘입니다. 이번 취약점은 BIND가 사용하는 SPNEGO 구현에서 발견되었습니다.
ISC에 따르면 악용에 성공했을 때 가장 가능성이 큰 결과는 named 프로세스 중단(crash)입니다. 원격 코드 실행(remote code execution)은 입증되지 않았지만 이론상으로는 가능하다고 밝혔습니다. 공개 시점에 ISC가 파악한 실제 공격 사례는 없습니다.
- CVSS 벡터: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
- 문서 이력: 2021년 2월 9일 사전 통지(Early Notification), 2021년 2월 17일 공개(Public Disclosure)
- 제보: Trend Micro Zero Day Initiative와 협력한 익명의 제보자
영향 범위
영향받는 버전은 다음과 같습니다.
- BIND 9.5.0 ~ 9.11.27
- BIND 9.12.0 ~ 9.16.11
- BIND Supported Preview Edition 9.11.3-S1 ~ 9.11.27-S1, 9.16.8-S1 ~ 9.16.11-S1
- BIND 9.17 개발 브랜치 9.17.0 ~ 9.17.1
이 버전들 가운데서도 GSS-TSIG 기능을 쓰도록 설정한 서버만 취약합니다. 기본 설정에서는 취약한 코드 경로가 노출되지 않습니다. 하지만 tkey-gssapi-keytab이나 tkey-gssapi-credential 옵션에 유효한 값을 지정하면 취약해집니다.
ISC는 기본 설정이 안전하더라도 GSS-TSIG가 실제로는 자주 쓰인다고 짚었습니다. BIND를 Samba와 연동한 네트워크나, BIND 서버와 Active Directory 도메인 컨트롤러를 함께 운영하는 환경이 그 예입니다. 이런 환경에서는 GSS-TSIG로 동적 업데이트(DDNS)에 서명하는 경우가 많습니다.
운영자가 할 일
- 설정 확인:
named.conf에tkey-gssapi-keytab이나tkey-gssapi-credential옵션이 있는지 확인합니다. 두 옵션이 없으면 이 취약점의 영향을 받지 않습니다. - 업그레이드: 현재 버전과 가장 가까운 패치 버전으로 올립니다.
- BIND 9.11.28
- BIND 9.16.12
- Supported Preview Edition: BIND 9.11.28-S1, BIND 9.16.12-S1
- 바로 업그레이드할 수 없을 때(우회 방법)
- 동적 업데이트를 다른 방식으로 인증할 수 있다면 GSS-TSIG 기능을 켜지 않는 것으로 취약점을 피할 수 있습니다.
- 소스에서 직접 빌드한다면 named를 컴파일·링크하기 전에 BIND 소스 최상위 디렉터리에서
./configure를--disable-isc-spnego인수와 함께 실행하는 방법이 있습니다. 이렇게 빌드한 BIND는 어느 플랫폼에서도 취약하지 않습니다. 다만 시스템의 GSSAPI 지원이 부족한 플랫폼에서는 GSS-TSIG 서명 DDNS 업데이트 같은 GSSAPI 기능을 쓰지 못할 수 있습니다.
ISC는 현재 지원 중인 버전에만 패치를 제공합니다. 지원이 끝난 버전을 쓰고 있다면 지원 버전으로 옮기는 것도 함께 검토해야 합니다.
원문을 한국어로 번역·요약한 글입니다. 정확한 내용은 원문을 확인해 주세요. AI의 도움을 받아 작성하고 담당자가 검토했습니다.