1. 개요
- 독일 아테네국립응용사이버보안연구센터에서 DNS 보안 프로토콜 DNSSEC의 설계 결함을 악용한 KeyTrap (CVE-2023-50387) 발견 [1]
- 단일 DNS 패킷을 전송하여 서비스 거부를 유발할 수 있음
> 취약한 DNS의 경우 최소 170초에서 최대 16시간 동안 서비스 거부 발생
2. 주요내용
2.1 DNSSEC(Domain Name System Security Extension) [2][3]
- DNS는 도메인(hxxps://example[.]com)을 IP 주소(1.1.1.1)로 변환하는 역할
> 초기 설계시 보안성을 충분히 고려하지 못해 DNS 정보 위-변조가 가능하다는 문제 존재 Ex. DNS Cache Poisoning
- 기존 DNS 보안성을 강화하기 위해 공개키 암호화 방식의 보안기능을 추가한 DNSSEC(DNS Security Extensions) 도입
> DNS를 대체하는 것이 아님
2.2 KeyTrap(CVE-2023-50387) [4]
- DNSSEC 설계 결함으로 인해 DNS 서버에 서비스 거부를 유발할 수 있는 취약점
> DNSKEY 및 RRSIG 레코드가 여러개일 경우 프로토콜 사양에 따라 모든 조합에 대한 유효성 검사를 수행
- 취약점과 관련된 세 가지 DNSSEC 설계 문제
① 여러 개의 서로 다른 DNS 키가 동일한 키 태그를 가질 수 있어 서명 유효성 검사 프로세스에 계산 부하 발생 가능
② 서명을 성공적으로 검증하는 키를 찾거나 모든 키가 시도될 때까지 모든 키를 시도해야 하므로(가용성 보장 목적) 계산 부하 발생 가능
③ 동일한 레코드에 여러 서명이 있는 경우 유효한 서명을 찾거나 모든 서명이 시도될 때까지 수신된 모든 서명을 검증해야 하므로, 계산 부하 발생 가능
- 영향받는 버전
2.2.1 SigJam (하나의 키 X 다수 서명)
- DNS Resolve가 하나의 DNS 키를 사용하여 DNS 레코드에 존재하는 다수의 유효하지 않은 서명을 검증하도록 유도
> DNS Resolve가 DNSKEY로 검증할 수 있는 서명을 찾을 때까지 모든 서명을 시도하도록 설계 됨
> 공격자는 단일 DNS 응답에 340개의 서명을 작성할 수 있음
> 340개의 서명에 대한 유효성 검증을 수행한 후 DNS Reolve는 클라이언트에 SERVFAIL를 반환
2.2.2 LockCram (다수의 키 X 하나의 서명)
- DNS Resolve가 ZSK DNSSEC키를 사용하여 DNS 레코드를 통해 하나의 서명을 검증하도록 유도
> DNS Resolve가 하나의 키가 검증되거나 모두 시도될 때까지 서명에 사용할 수 있는 모든 키를 시도하도록 설계 됨
> DNS Resolve는 서명을 검증하기 위해 모든 DNSSEC 키를 사용
> 해당 서명이 유효하지 않다고 결론을 내릴 때까지 서명이 참조하는 모든 키를 시도
2.2.3 KeySigTrap (다수의 키 X 다수의 서명)
- SigJam과 LockCram를 결합하여 검증 과정이 2배 증가하는 공격
> 모든 키와 서명 쌍이 검증될 때까지, 가능한 모든 조합에 대해 검증을 시도
Ex. 첫 번째 ZSK를 사용해 N개 서명을 검증한 후, 두 번째 ZSK를 사용해 N개 서명을 검증하여 N번째 ZSK를 사용해 N개 서명을 검증
> 모든 조합 시도 후 레코드를 검증할 수 없다는 결론을 내리고 클라이언트에 SERVFAIL를 반환
2.2.4 HashTrap (다수의 키 X 다수의 해시)
- 다수의 DS 해시 레코드에 대해 충동하는 다수의 DNSKEY를 검증하기 위해 많은 해시를 계산하도록 유도
3. 대응방안
- 벤더사 제공 패치 제공
> 현재까지 나온 패치는 임시 조치
> DNSSEC 설계를 처음부터 다시 해야 문제가 해결될 것
- DNSSEC 기능 비활성화시 취약점이 근본적으로 사라지나 권장하지 않음
> KeyTrap 취약점을 제외하면 DNSSEC로부터 얻는 안전의 이득이 훨씬 많음
4. 참고
[1] https://www.athene-center.de/en/keytrap
[2] https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/resources/dns/dnssecInfo/dnssecInfo.jsp
[3] https://medium.com/iocscan/how-dnssec-works-9c652257be0
[4] https://nvd.nist.gov/vuln/detail/CVE-2023-50387
[5] https://www.boannews.com/media/view.asp?idx=126791
[6] https://www.boannews.com/media/view.asp?idx=126911
'취약점 > Denial of Service' 카테고리의 다른 글
CONTINUATION Flood (0) | 2024.04.07 |
---|---|
Loop DoS (CVE-2024-2169) (0) | 2024.03.23 |
SLP DRDoS (CVE-2023-29552) (0) | 2023.11.13 |
HTTP/2 Rapid Reset DDoS (CVE-2023-44487) (0) | 2023.10.13 |
2009.07.07 DDoS (0) | 2023.07.06 |