Belangrijkste concepten
NSEC3 기반 증명 부재 기능을 악용하여 DNS 리졸버의 CPU 자원을 고갈시킬 수 있다.
Samenvatting
이 논문은 NSEC3 기반 증명 부재 기능을 악용하여 DNS 리졸버의 CPU 자원을 고갈시킬 수 있는 공격을 분석하고 평가합니다.
주요 내용은 다음과 같습니다:
-
NSEC3 기반 증명 부재 기능의 취약점을 설명하고, 이를 악용하여 DNS 리졸버의 CPU 자원을 고갈시킬 수 있는 NSEC3-encloser 공격을 제안합니다.
-
공격을 자동화하고 다양한 NSEC3 파라미터 설정을 통해 공격의 영향을 최대화하는 방법을 설명합니다. 특히 해시 반복 횟수와 솔트 길이가 공격 효과에 미치는 영향을 분석합니다.
-
5개의 주요 DNS 리졸버 구현체에 대해 공격을 평가하고, 리졸버 간 차이점을 분석합니다. 일부 리졸버는 RFC 권장 사항을 준수하지 않아 더 큰 취약점을 보였습니다.
-
공격으로 인한 정상 클라이언트 요청 손실률을 측정하였으며, 완전한 서비스 거부(DoS)는 어려운 것으로 나타났습니다.
이 연구는 NSEC3 기반 증명 부재 기능의 취약점을 체계적으로 분석하고 평가하여, DNS 리졸버 구현체의 개선을 위한 중요한 정보를 제공합니다.
Statistieken
공격 쿼리 속도 150/s에서 Bind9.18.12 리졸버의 정상 클라이언트 요청 손실률은 7.01%였습니다.
공격 쿼리 속도 110/s에서 Bind9.18.12 리졸버의 정상 클라이언트 요청 손실률은 22.99%였습니다.
공격 쿼리 속도 150/s에서 Unbound 리졸버의 정상 클라이언트 요청 손실률은 34.66%였습니다.
공격 쿼리 속도 150/s에서 PowerDNS 리졸버의 정상 클라이언트 요청 손실률은 2.76%였습니다.
공격 쿼리 속도 120/s에서 PowerDNS 리졸버의 정상 클라이언트 요청 손실률은 7.87%였습니다.
공격 쿼리 속도 150/s에서 Knot 리졸버의 정상 클라이언트 요청 손실률은 18.01%였습니다.
Citaten
"NSEC3 is a proof of non-existence in DNSSEC, which provides an authenticated assertion that a queried resource does not exist in the target domain."
"Concerns about the load created by the computation of NSEC3 records on the DNS resolvers were already considered in the NSEC3 specifications RFC5155 and RFC9276."
"We find that the NSEC3-encloser attack can still create a 72x increase in CPU instruction count, despite the victim resolver following RFC5155 recommendations in limiting hash iteration counts."