개요

  • 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 서버로 내려가면서 검증을 한다.

  1. 사전에 설정된 루트 존의 트러스트 앵커(DNS 또는 DNSKEY)를 신뢰의 기점으로 한다.
  2. 트러스트앵커와 루트 존의 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