상세 컨텐츠

본문 제목

윈도우 DNS 서버에 영향을 미치는 치명적인 RCE 취약점 발견

국내외 보안동향

by 알약(Alyac) 2020. 7. 15. 10:18

본문

17-Year-Old Critical 'Wormable' RCE Vulnerability Impacts Windows DNS Servers


사이버 보안 연구원들이 금일 치명적인 “웜” 취약점을 발견했습니다. 이 취약점은 윈도우 서버 2003 ~ 2019에 영향을 미치며 CVSS 심각도 점수 10점 만점에 10점을 기록했습니다.


Check Point의 연구원들은 이 17년 된 원격 코드 실행 취약점(CVE-2020-1350)을 'SigRed'라 명명했습니다. 


이 취약점은 인증되지 않은 원격 공격자가 타깃 서버의 도메인 관리자 권한을 얻어 조직의 IT 인프라 전체를 제어할 수 있도록 허용합니다.


공격자가 특수 제작한 악성 DNS 쿼리를 윈도우 DNS 서버에 전송해 SigRed 취약점을 악용하고 임의 코드를 실행할 경우 사용자의 이메일과 네트워크 트래픽에 인터셉트 및 조작이 가능해 서비스를 중단시키거나 사용자의 크리덴셜을 수집하는 등의 악성 행위를 시도할 수 있습니다.


Check Point의 연구원인 Sagi Tzadik는 이 취약점이 웜의 특성을 가지고 있다고 설명하며 해커가 취약한 컴퓨터에서 공격을 실행할 경우 추후 조작 없이도 자동으로 다른 컴퓨터로 확산될 수 있다고 밝혔습니다.


“단 한 번의 악용으로 취약한 기기에서 또 다른 취약한 기기로 사람의 추가 작업 없이도 자동으로 확산되는 연쇄 공격이 시작될 수 있습니다.”


“이는 해킹된 기기 하나가 ‘슈퍼 전파자’가 되어 해킹당한 지 수 분 만에 조직의 네트워크를 통해 공격이 확산될 수 있다는 것을 의미합니다.”


연구원들은 마이크로소프트에 이 취약점에 대해 제보하였으며 마이크로소프트는 7월 ‘패치 화요일’의 일부로 이 취약점에 대한 패치를 배포할 예정입니다. 7월의 패치 화요일은 다른 취약점 122개에 대한 패치 또한 포함하고 있습니다.


마이크로소프트는 이 버그가 실제 공격에 악용되었다는 증거는 찾지 못했다고 밝히며 사용자에게 즉시 패치를 설치할 것을 권고했습니다.


“Windows DNS Server는 핵심 네트워킹 컴포넌트입니다. 이 취약점이 실제 공격에 사용되었다는 증거는 찾지 못했지만 가능한 한 빨리 패치를 적용해야 합니다.”



악성 DNS 응답 생성하기


Check Point 연구원들은 윈도우 DNS에 집중하고 있으며 특히 DNS 서버가 들어오는 쿼리나 전달된 쿼리에 대한 응답을 파싱하는 방식을 집중적으로 살펴보고 있다고 밝혔습니다.


이 연구의 목적은 인증되지 않은 공격자가 윈도우 도메인 환경을 해킹하도록 허용하는 취약점을 식별하는 것입니다.


전달된 쿼리는 DNS 서버가 주어진 도메인명의 IP 주소를 해석할 수 없을 때 발생하여, 해당 쿼리가 ADNS(Authoritative Domain Name Server)로 전달되는 결과를 낳습니다.


SigRed는 이 아키텍처를 악용하기 위해 도메인 ("deadbeef.fun")의 네임 서버 리소스 기록을 악성 네임 서버 ("ns1.41414141.club")를 가리키도록 수정하고 해당 도메인의 타깃 DNS 서버에 쿼리를 보냅니다. 


해당 네임 서버로부터 발생하는 도메인 또는 서브 도메인과 관련된 모든 후속 쿼리 응답을 파싱하는 것이 목적입니다.


이 설정이 완료되면 공격자는 전달된 쿼리에 대한 들어오는 응답을 파싱하는 기능 ("dns.exe!SigWireRead")에 정수 오버플로우 취약점을 트리거시켜 64KB보다 크고 SIG 리소스를 포함하는 DNS 응답을 전송하고 “약 64KB보다 큰 제어된 힙 기반 버퍼 오버플로우를 작은 할당 버퍼에” 유도할 수 있게 됩니다.


이 취약점은 리소스 레코드 ("RR_AllocateEx")용 메모리를 할당하는 함수를 노려 65,535 바이트보다 큰 결과를 생성합니다. 예측된 것보다 훨씬 적은 양을 할당시켜 정수 오버플로우를 발생시키기 위함입니다.


하지만 연구원들은 UDP에서 512 바이트, TCP에서 65,535 바이트로 단일 DNS 메시지가 제한되어 있기 때문에 SIG가 긴 시그니처만으로는 취약점을 촉발시킬 수 없다는 것을 발견했습니다.


이를 달성하기 위해 공격자는 버퍼 오버플로우를 발생시키기 위해 DNS 응답에서 DNS 이름 압축을 사용했습니다. 이는 앞서 언급한 기술을 사용하여 할당 크기를 크게 늘리기 위함입니다.



취약점 원격 악용


SigRed는 특정 시나리오에서 브라우저를 통해 원격으로 촉발되는 것이 가능합니다. 


따라서 공격자가 윈도우 DNS 서버의 지원을 악용하여 연결을 재사용하고 공격자가 제어하는 웹사이트를 방문했을 때 타깃 DNS 서버를 공격하기 위해 쿼리 파이프라인 기능을 통해 HTTP 요청 페이로드 내 DNS 쿼리를 밀수할 수 있습니다.


또한 이 버그는 DNS 리소스 레코드의 메타데이터를 손상시킴으로써 메모리 주소를 유출시키는데도 악용이 가능합니다. 


심지어 공격자는 write-what-where 권한을 갖게 되어 실행 플로우를 하이잭하여 의도하지 않은 명령을 실행시킬 수 있게 됩니다.


더욱 놀랍게도 DNS 클라이언트 ("dnsapi.dll")는 동일한 버그에 취약하지 않기 때문에 연구원들은 “마이크로소프트가 DNS 서버와 DNS 클라이언트에 대한 완전히 다른 코드 베이스 2개를 관리하고 둘 사이에 버그 패치를 동기화하지 않고 있다”라고 추측했습니다.


이 보안 취약점은 매우 심각하고 악용 가능성이 높기 때문에, 취약한 윈도우 DNS 서버를 가능한 한 빨리 패치할 것을 권장합니다.


임시 해결 방법으로는 TCP를 통한 DNS 메시지의 최대 길이를 "0xFF00"로 설정하여 버퍼 오버플로우 발생 가능성을 제거하는 방법이 있습니다.



reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters" /v "TcpReceivePacketSize" /t REG_DWORD /d 0xFF00 /f


net stop DNS && net start DNS



“마이크로소프트 인프라를 사용하는 모든 조직은 규모에 상관없이 패치를 진행해야 합니다. 그렇지 않을 경우 아주 중대한 보안 위협을 받을 수 있습니다. 이를 통해 기업 네트워크 전체가 해킹당할 수 있습니다.”




출처:

https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/

https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/

https://thehackernews.com/2020/07/windows-dns-server-hacking.html

관련글 더보기

댓글 영역