[방어] 분석 — CVE-2020-1350
CVE-2020-1350 is a critical remote code execution flaw in Windows DNS Server that can be exploited without authentication; the highest‑priority immediate action is to block inbound DNS traffic from untrusted networks while applying layered mitigations and patching.
📋 요약
- 심각도 critical · CVSS 10.0 · EPSS 0.91353 · 악용난이도 easy · KEV
🔍 공격 기법
공격자는 UDP·TCP 53 포트로 특수 조작된 DNS 요청(예: ANY, AXFR, IXFR 등)을 전송합니다. Windows DNS Server가 해당 패킷을 파싱할 때 메모리 손상이 발생하고, 이를 통해 커널 수준의 임의 코드를 실행해 SYSTEM 권한을 획득합니다. 인증·사용자 상호작용이 전혀 필요하지 않으며 네트워크 접근만 있으면 언제든 악용이 가능합니다([CVSS 벡터 AV:N/AC:L/PR:N/UI:N]).
악용 가능성: CVSS 벡터 AV:N/AC:L/PR:N/UI:N 은 공격자가 네트워크를 통해 아무 인증 없이 바로 Windows DNS Server에 접근해, 복잡한 사전 작업 없이도 단순히 조작된 DNS 요청만 보내면 된다는 의미이며, 이는 실제 환경에서 “원격·무인·저복잡도” 조건을 그대로 만족합니다. EPSS 값이 0.91353 로 매우 높게 측정되었고, KEV(악용 사례) 에 이미 등재되어 있다는 점은 이 취약점이 이론적 심각도를 넘어 실제 공격자에게 높은 성공 확률과 경제성을 제공한다는 강력한 증거입니다. 공격자는 UDP 또는 TCP 53 포트로 서비스를 제공하는 Windows DNS 서버에, 특수하게 구성된 질의 패킷을 전송함으로써 취약 코드를 트리거할 수 있습니다. 이때 요구되는 트리거 조건은 “특정 형식의 DNS 요청” 하나이며, 별도의 권한 상승이나 사용자 상호작용이 필요하지 않으므로 방어자가 차단하기 전에 빠르게 악용될 위험이 존재합니다. 따라서 공격 표면은 인터넷·내부망을 불문하고 DNS 서비스를 공개하는 모든 Windows 서버가 되며, 특히 재귀 조회(recursion)가 활성화된 경우 노출 범위가 확대됩니다. 결과적으로 이 취약점은 “easy” 등급에 부합하는 낮은 난이도와 높은 악용 가능성을 동시에 갖추고 있어, 방어 입장에서는 즉시 탐지·차단 체계를 강화해야 할 시급한 위협으로 판단됩니다.
💥 영향 분석
- 성공 시 공격자는 Windows DNS 서버에서 SYSTEM 권한을 얻어 레지스트리·시스템 파일을 조작하고 백도어를 설치할 수 있습니다.
- 도메인 컨트롤러 역할을 수행 중인 경우 전체 Active Directory가 탈취될 위험이 있습니다.
- 서비스 거부(DoS) 및 내부 네트워크 전파형 악성코드 배포가 가능해집니다.
🔗 관련 취약점·체이닝
- 메모리 손상을 이용한 RCE는 CWE‑787(버퍼 오버플로)와 유사합니다.
- 조작된 DNS 응답을 통한 내부 침투 후 권한 상승 단계에서 CWE‑269(권한 관리 부실)와 연계될 수 있습니다.
🔎 탐지
로그 소스
- Windows DNS Server Analytic 로그 (
Microsoft-Windows-DNS-Server/Analytic) – EventID 3008(파싱 오류), 3010(비정상 패킷 크기) 등. - System 이벤트 로그.
- 네트워크 IDS/Bro(Zeek) DNS 패킷 캡처.
핵심 필드·패턴
Opcode,QuestionName,QueryType= ANY/AXFR/IXFR.PacketSize> 512 바이트 (특히 1024 바이트 이상).- IDS에서
dns.query.type == "ANY"및udp.length > 1024.
SIEM 쿼리 예시 (Splunk)
1index=wineventlog sourcetype="Microsoft-Windows-DNS-Server/Analytic" 2(EventID=3008 OR EventID=3010) AND PacketSize>1024 3| stats count by host, QuestionName, _time 4| where count > 5ELK 정규식 예시
1.*\b(ANY|AXFR|IXFR)\b.*PacketSize:\s*(1[3-9]\d{2}|[2-9]\d{3,}).*$오탐 튜닝
- 정상적인 내부 재귀 조회는
source_ip가 사내 DNS 서버인 경우 제외. - 대용량 UDP 로그는
application=MicrosoftDNS로 제한 후 임계값을count > 10으로 상향.
🛡️ 완화 방안
-
재귀 조회 비활성화
- PowerShell:
Set-DnsServerRecursionScope -Enable $false - 난이도: 중간, 운영 영향: 내부 DNS 재귀 사용 제한, 검증:
Get-DnsServerRecursionScope결과가Enabled : False
- PowerShell:
-
EDNS0/패킷 크기 제한
- 네트워크 장비에서 UDP 53 최대 페이로드를 512 바이트로 강제 (예: Cisco ACL
deny udp any any eq 53 length > 512) - 난이도: 중간, 운영 영향: 일부 큰 DNS 응답이 잘릴 수 있음, 검증: IDS에서
udp.length>512이벤트가 사라짐
- 네트워크 장비에서 UDP 53 최대 페이로드를 512 바이트로 강제 (예: Cisco ACL
-
보안 업데이트 적용
- WSUS 또는 Windows Update를 통해 Microsoft 제공 KB 4559910(또는 이후 보안 패키지) 설치 후 재부팅
- 난이도: 중간, 운영 영향: 서버 재부팅 필요, 검증: “Installed Updates” 목록에 해당 KB 존재 확인
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=10.0 · KEV · EPSS=0.91353 · exploit=easy · in_scope=None