CVE-2020-16898과 CVE-2020-16899 모두 배드 네이버 취약점과 관련된 것이지만, CVE-2020-16898은 원격 코드 실행에, CVE-2020-16899는 서비스 거부(DoS)에 더 초점을 맞춘다. 이 취약점은 기업과 가정에서 많이 사용하는 최신 윈도우 10과 서버 버전에도 영향을 미치므로 주의가 필요하다. 또한 인터넷에는 이 취약점에 대한 여러 개념 증명(PoC) 익스플로잇이 등장했다.
배드 네이버란
이 취약점에 대한 마이크로소프트의 보안 권고는 다음과 같이 비교적 간단하다.배드 네이버 취약점은 윈도우에서 TCP/IP 스택이 구현된 방식으로 인해 발생하는 버퍼 오버플로우에 기인한다. ICMPv6 프로토콜이 활성화된 경우 재귀 DNS 서버(RDNSS) 역시 활성화돼 있다면 라우터 광고(RA) 패킷이 적절히 처리되지 않는다. 두 조건이 모두 적용되는 경우 RFC 8106에 따라 ICMPv6 RA 패킷은 5개의 필드(형식, 길이, 예약, 수명, IPv6 RDNSS 주소)를 가져야 하고 패킷의 길이는 홀수여야 한다.
이유는 간단하다. 길이 값(3 이상이어야 함)은 8바이트씩 계산된다. 처음 4개 필드는 항상 8바이트다. 마지막 필드(IPv6 RDNSS 주소)가 각각 16바이트인 IPv6 주소를 하나 이상 포함할 수 있음을 고려하면 RA 패킷 하나의 총 크기는 IPv6 주소의 수에 따라 24, 40, 56 등이 된다. 길이가 3이라면 총 패킷 길이가 24바이트이며 하나의 IPv6 주소만 포함하고 있음을 나타낸다. 따라서 길이에 제공된 값은 3, 5, 7 등이어야 한다.
만들어진 패킷에 짝수 길이 값이 포함될 경우 패킷이 실제 포함한 바이트보다 더 적은 바이트를 포함하고 있다고 알리므로 버퍼 오버플로우가 발생할 수 있다. 이렇게 발생한 버퍼 오버플로우는 DoS 조건으로 이어지지만 특정 조건에서는 무단 원격 공격자가 이 결함을 악용해 대상 시스템에서 임의의 코드를 실행할 수도 있다.
마이크로소프트는 CVE-2020-16898에 대한 보안 권고에서, 공격자가 이 취약점을 악용하려면 특별히 제작된 ICMPv6 라우터 광고 패킷을 원격 윈도우 컴퓨터로 전송해야 한다고 설명했다.
배드 네이버가 위험한 이유
영국 국가 의료 서비스(NHS)는 이 결함이 병원을 노리는 데 사용될 가능성을 고려해 배드 네이버에 대한 자체 보안 권고를 게시했다. 디지털웨어(Digitalware)의 CTO 롭 바더스트에 따르면, 배드 네이버는 현재 블루스크린 다운만 일으키므로 사람들은 과장된 위험으로 여기기 쉽다. 그러나 랜섬웨어 공격자가 이 취약점을 공격 벡터로 사용해 악성 키트를 침투시키고 손상된 네트워크에서의 활동 속도를 높일 수 있다.
그는 “특히 유일한 보호 방법이 IPv6를 비활성화하는 것이라는 점도 고려해야 한다. IPv6 비활성화는 불가능에 가까운 방법이다. 즉, 랜섬웨어 그룹이 이 취약점을 무기화하는 데 성공하면 이를 활용해 네트워크로 도달할 수 있는, 영향을 받는 OS를 사용하는 누구든 공격 목표로 삼을 수 있다. 랜섬웨어 키트를 설치하도록 무기화된 버전은 초기 침해 후 감염 속도를 크게 높일 수 있다”라고 말했다.
현재 배드 네이버 취약점에 대한 여러 PoC 익스플로잇이 나와 있으므로 네트워크 관리자는 즉시 이 결함을 수정하는 것을 강력히 권고한다.
배드 네이버 취약점을 억제하는 방법
netsh int ipv6 set int *INTERFACENUMBER* rabaseddnsconfig=disable
마이크로소프트에 따르면, 이 해결 방법은 RA 기반 DNS 구성을 비활성화한다. IPv6 호스트의 주소가 IPv6 무상태 주소 자동 구성을 통해 자동으로 구성되며 DHCPv6 인프라가 없거나 일부 호스트에 DHCPv6 클라이언트가 없는 네트워크에서 대안으로 사용할 수 있다. 윈도우는 여전히 DHCPv6을 지원하며 6101 기반 구성보다 우선한다. 단, 이러한 해결 방법을 적용하기 전에 IT 및 네트워크 관리자에게 문의해 기업 인프라가 RA 기반 DNS 구성에 의존하지 않는지 확인해야 한다.
SOC 전문가의 경우 다음 수리카타(Suricata) IDS 규칙을 사용하면 트래픽에서 배드 네이버 익스플로잇 징후를 모니터링하는 데 도움이 된다. cve-2020-16898.lua 스크립트와 관련 정보는 맥아피 고급 위협 연구팀 깃허브에서 볼 수 있다.
alert icmp any any -> any any (msg:"Potential CVE-2020-16898 Exploit"; lua:cve-2020-16898.lua; sid:202016898; rev:1;)
editor@itworld.co.kr