개요
- DNSSEC에도 취약점이 발생했다는 정보를 입수했기 때문에 정리해준다.
- 이 취약점은
CVE-2023-50387
로 발표되었고 별칭KeyTrap
으로 명명된 것으로 보인다. - 2024년 2월13일 프랑스 국립연구기관 ATHENE이 발표했다.
- 하나의 DNS 패킷으로도 DNS 프로바이더를 DOS상태로 만들수 있다.
DNSSEC 개요
- DNSSEC 에 대한 내용을 복습한다.
- DNSSEC 은 DNS 캐시 포이즈닝 (DNS spoofing)공격에 대한 대책이다.
- DNSSEC을 사용하면 DNS의 보안확장방식으로 DNS 응답 서버가 자신의 비밀키를 이용해 디지털 서명을 추가하고 수신측 서버는 송신측 DNS 서버의 공개키를 이용해 디지털 서명을 검증할 수 있다. (DNS정보의 위변조가 불가능해진다)
DNSSEC 의 인증 흐름
DNS 캐시 서버 (풀 리졸버)가 상위 DNS 서버부터 검증을 시작해, 하나씩 하위 DNS 서버로 내려가면서 검증을 한다.
- 사전에 설정된 루트 존의 트러스트 앵커(DNS 또는 DNSKEY)를 신뢰의 기점으로 한다.
- 트러스트앵커와 루트 존의 DNSKEY 리소스 레코드 세트를 대조하여 확인, 일치하는 DNSKEY 리소스레코드(루트 존의 KSK(Key Signing Key)공개키) 를 신뢰한다.
CVE-2023-50387(KeyTrap) 취약점 상세
- DNSSEC의 표준 규격에 따르면 리졸버가 이용가능한 모든 DNSSEC 키와 서명의 조합을 시험해야 한다.
- 이 때문에, 공격자가 동일한 key-tag를 사용하는 많은 키와, 그 key-tag를 참조하는 많은 서명을 가지는 악의적인 도메인을 설정하게 되면, 리졸버의 CPU리소스에 부담을 주어 Dos상태를 만들 수 있다.
- 인터넷 표준에 유래하는 취약점이기 때문에 DNSSEC 표준을 구현하는 주요 벤더를 포함한 모든 리졸버가 영향을 받는다.
- BIND9의 DNS구현에서는 하나의 패킷에 16시간 정지할 가능성이 있다고 지적되었다.
- 검증수의 최대한도치를 정하는 완화 패치가 각 주요벤더에 의해 공개되어 있다. 각 DNS서비스 벤더는 이 패치를 설치하는 것이 요구되고 있다.
참고
- https://www.athene-center.de/fileadmin/content/PDF/Keytrap_2401.pdf