2020.10.30

윈도우 '배드 네이버' 취약점의 이해와 대응 방법

Ax Sharma | CSO
최근 마이크로소프트는 치명적인 네트워크 버그 CVE-2020-16898 및 CVE-2020-16899를 포함한 일련의 취약점을 패치했다. '배드 네이버(Bad Neighbor)' 또는 '핑 오브 데스 리덕스(Ping of Death Redux)'라는 별명으로 알려진 이 취약점은 윈도우의 TCP/IP 네트워킹에 숨어들어 특정 조건에서 수신 ICMPv6 패킷이 처리되는 방식을 변조한다.
 
© Getty Images Bank

CVE-2020-16898과 CVE-2020-16899 모두 배드 네이버 취약점과 관련된 것이지만, CVE-2020-16898은 원격 코드 실행에, CVE-2020-16899는 서비스 거부(DoS)에 더 초점을 맞춘다. 이 취약점은 기업과 가정에서 많이 사용하는 최신 윈도우 10과 서버 버전에도 영향을 미치므로 주의가 필요하다. 또한 인터넷에는 이 취약점에 대한 여러 개념 증명(PoC) 익스플로잇이 등장했다.
 

배드 네이버란

이 취약점에 대한 마이크로소프트의 보안 권고는 다음과 같이 비교적 간단하다.
 
원격 코드 실행 취약점은 윈도우 TCP/IP 스택이 ICMPv6 라우터 광고(Router Advertisement) 패킷을 부적절하게 처리할 때 발생한다. 이 취약점을 악용하면 대상 서버 또는 클라이언트에서 코드를 실행할 권한을 획득할 수 있다.

배드 네이버 취약점은 윈도우에서 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 등이어야 한다.
 
RDNSS 옵션을 활성화한 ICMPv6 패킷 구조 © INTERNET ENGINEERING TASK FORCE

만들어진 패킷에 짝수 길이 값이 포함될 경우 패킷이 실제 포함한 바이트보다 더 적은 바이트를 포함하고 있다고 알리므로 버퍼 오버플로우가 발생할 수 있다. 이렇게 발생한 버퍼 오버플로우는 DoS 조건으로 이어지지만 특정 조건에서는 무단 원격 공격자가 이 결함을 악용해 대상 시스템에서 임의의 코드를 실행할 수도 있다.

마이크로소프트는 CVE-2020-16898에 대한 보안 권고에서, 공격자가 이 취약점을 악용하려면 특별히 제작된 ICMPv6 라우터 광고 패킷을 원격 윈도우 컴퓨터로 전송해야 한다고 설명했다.
 

배드 네이버가 위험한 이유

윈도우와 윈도우 서버는 의료 기관을 포함한 기업 환경에서 가장 널리 사용되는 운영체제다. 랜섬웨어 공격자는 다양한 방식으로 병원과 보건 시설을 노리고 있으며 실제로 랜섬웨어 공격이 환자 사망으로 이어진 사례도 있다.

영국 국가 의료 서비스(NHS)는 이 결함이 병원을 노리는 데 사용될 가능성을 고려해 배드 네이버에 대한 자체 보안 권고를 게시했다. 디지털웨어(Digitalware)의 CTO 롭 바더스트에 따르면, 배드 네이버는 현재 블루스크린 다운만 일으키므로 사람들은 과장된 위험으로 여기기 쉽다. 그러나 랜섬웨어 공격자가 이 취약점을 공격 벡터로 사용해 악성 키트를 침투시키고 손상된 네트워크에서의 활동 속도를 높일 수 있다.

그는 “특히 유일한 보호 방법이 IPv6를 비활성화하는 것이라는 점도 고려해야 한다. IPv6 비활성화는 불가능에 가까운 방법이다. 즉, 랜섬웨어 그룹이 이 취약점을 무기화하는 데 성공하면 이를 활용해 네트워크로 도달할 수 있는, 영향을 받는 OS를 사용하는 누구든 공격 목표로 삼을 수 있다. 랜섬웨어 키트를 설치하도록 무기화된 버전은 초기 침해 후 감염 속도를 크게 높일 수 있다”라고 말했다.

현재 배드 네이버 취약점에 대한 여러 PoC 익스플로잇이 나와 있으므로 네트워크 관리자는 즉시 이 결함을 수정하는 것을 강력히 권고한다.
 

배드 네이버 취약점을 억제하는 방법

마이크로소프트는 최신 보안 업데이트를 적용해 배드 네이버 취약점을 패치할 것을 권고한다. 업데이트가 불가능하다면 윈도우 10 버전 1709 이상을 실행하는 시스템용으로 나온 해결 방법을 사용하면 된다. 간단한 다음 파워셸 명령을 실행해서 ICMPv6 RDNSS 옵션을 비활성화하면 된다. 시스템을 재시작하지 않아도 변경이 적용된다.

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


2020.10.30

윈도우 '배드 네이버' 취약점의 이해와 대응 방법

Ax Sharma | CSO
최근 마이크로소프트는 치명적인 네트워크 버그 CVE-2020-16898 및 CVE-2020-16899를 포함한 일련의 취약점을 패치했다. '배드 네이버(Bad Neighbor)' 또는 '핑 오브 데스 리덕스(Ping of Death Redux)'라는 별명으로 알려진 이 취약점은 윈도우의 TCP/IP 네트워킹에 숨어들어 특정 조건에서 수신 ICMPv6 패킷이 처리되는 방식을 변조한다.
 
© Getty Images Bank

CVE-2020-16898과 CVE-2020-16899 모두 배드 네이버 취약점과 관련된 것이지만, CVE-2020-16898은 원격 코드 실행에, CVE-2020-16899는 서비스 거부(DoS)에 더 초점을 맞춘다. 이 취약점은 기업과 가정에서 많이 사용하는 최신 윈도우 10과 서버 버전에도 영향을 미치므로 주의가 필요하다. 또한 인터넷에는 이 취약점에 대한 여러 개념 증명(PoC) 익스플로잇이 등장했다.
 

배드 네이버란

이 취약점에 대한 마이크로소프트의 보안 권고는 다음과 같이 비교적 간단하다.
 
원격 코드 실행 취약점은 윈도우 TCP/IP 스택이 ICMPv6 라우터 광고(Router Advertisement) 패킷을 부적절하게 처리할 때 발생한다. 이 취약점을 악용하면 대상 서버 또는 클라이언트에서 코드를 실행할 권한을 획득할 수 있다.

배드 네이버 취약점은 윈도우에서 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 등이어야 한다.
 
RDNSS 옵션을 활성화한 ICMPv6 패킷 구조 © INTERNET ENGINEERING TASK FORCE

만들어진 패킷에 짝수 길이 값이 포함될 경우 패킷이 실제 포함한 바이트보다 더 적은 바이트를 포함하고 있다고 알리므로 버퍼 오버플로우가 발생할 수 있다. 이렇게 발생한 버퍼 오버플로우는 DoS 조건으로 이어지지만 특정 조건에서는 무단 원격 공격자가 이 결함을 악용해 대상 시스템에서 임의의 코드를 실행할 수도 있다.

마이크로소프트는 CVE-2020-16898에 대한 보안 권고에서, 공격자가 이 취약점을 악용하려면 특별히 제작된 ICMPv6 라우터 광고 패킷을 원격 윈도우 컴퓨터로 전송해야 한다고 설명했다.
 

배드 네이버가 위험한 이유

윈도우와 윈도우 서버는 의료 기관을 포함한 기업 환경에서 가장 널리 사용되는 운영체제다. 랜섬웨어 공격자는 다양한 방식으로 병원과 보건 시설을 노리고 있으며 실제로 랜섬웨어 공격이 환자 사망으로 이어진 사례도 있다.

영국 국가 의료 서비스(NHS)는 이 결함이 병원을 노리는 데 사용될 가능성을 고려해 배드 네이버에 대한 자체 보안 권고를 게시했다. 디지털웨어(Digitalware)의 CTO 롭 바더스트에 따르면, 배드 네이버는 현재 블루스크린 다운만 일으키므로 사람들은 과장된 위험으로 여기기 쉽다. 그러나 랜섬웨어 공격자가 이 취약점을 공격 벡터로 사용해 악성 키트를 침투시키고 손상된 네트워크에서의 활동 속도를 높일 수 있다.

그는 “특히 유일한 보호 방법이 IPv6를 비활성화하는 것이라는 점도 고려해야 한다. IPv6 비활성화는 불가능에 가까운 방법이다. 즉, 랜섬웨어 그룹이 이 취약점을 무기화하는 데 성공하면 이를 활용해 네트워크로 도달할 수 있는, 영향을 받는 OS를 사용하는 누구든 공격 목표로 삼을 수 있다. 랜섬웨어 키트를 설치하도록 무기화된 버전은 초기 침해 후 감염 속도를 크게 높일 수 있다”라고 말했다.

현재 배드 네이버 취약점에 대한 여러 PoC 익스플로잇이 나와 있으므로 네트워크 관리자는 즉시 이 결함을 수정하는 것을 강력히 권고한다.
 

배드 네이버 취약점을 억제하는 방법

마이크로소프트는 최신 보안 업데이트를 적용해 배드 네이버 취약점을 패치할 것을 권고한다. 업데이트가 불가능하다면 윈도우 10 버전 1709 이상을 실행하는 시스템용으로 나온 해결 방법을 사용하면 된다. 간단한 다음 파워셸 명령을 실행해서 ICMPv6 RDNSS 옵션을 비활성화하면 된다. 시스템을 재시작하지 않아도 변경이 적용된다.

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


X