최신 Windows 원격 데스크톱의 NLA, 잠금 화면 우회 취약점

CVE-2019-9510 인증 우회 취약점

최근 구형 윈도우의 RDS(원격 데스크톱 서비스)에서 심각한 해킹 취약점이 발견됐다. 쉽게 악용될 수 있고 파급력도 크기 때문에, 마이크로소프트는 거듭 패치를 권장하는 등 긴장하고 있다. 그리고 NLA(Network Level Authentication)는 이를 막을 수 있는 효과적인 수단으로 추천됐다(관1).

NLA는 RDP(Remote Desktop Protocol, RDS에 연결하는 수단)에 접근하기 전에, 네트워크 수준에서 자격증명(credential)을 요구하는 것이다. 그런데 Windows 10 1803 버전 이상, Windows Server 2019 등 최신 윈도우에서 NLA 사용 시, 잠금 화면(lock screen)을 우회할 수 있는 취약점이 발견됐다. 이들 버전부터 NLA의 작동 방식을 변경했기 때문이다. 윈도우의 인증 방식 자체와 관련된 것이기 때문에, 2단계 인증 등 추가 보안 조치도 소용 없다.

RDP의 세션은 local 세션과 마찬가지로 잠글 수 있다. RDP session이 잠기면 잠금 화면이 표시되며, 다시 이용하려면 암호를 입력해야 한다. RDP 연결이 비정상적으로 끊기면 자동으로 이전 세션이 복구된다. 즉 다시 연결된다. 이때 취약한 버전에서는 잠금이 풀린 상태로 복구된다. 끊기기 전에 RDP 세션을 잠근 경우에도 말이다. 예를 들면 다음과 같다.

혜린이 취약한 버전을 구동하는 원격 PC(서버)에 RDP로 접속한다. 사용을 마치고 무단 접속을 방지하려고, RDP 세션을 잠궈서 잠금 화면이 표시됐다. 그리고 자신의 PC(클라이언트)를 그대로 두고 자리를 비운다.

그 틈에 근처에 있던 해커가 네트워크 연결을 비정상적으로 끊는다. 랜 케이블을 뽑든가 공유기를 끄든가 해서 말이다. 그리고 다시 네트워크를 연결한 후 혜린의 PC를 사용한다. 그러면 RDP 세션의 잠금 화면이 풀린 채로(암호를 묻지 않고) 이전 세션이 복구된다.

암호 없이 자동 재연결

MS는 이에 대해 보안 취약점이 아니라는 입장이다. RDP보다 상위의 네트워크 수준에서 인증을 거쳤기 때문에, 자격증명을 임시로 저장하고 자동으로 재연결을 하도록 해도 문제가 없다는 것이다.

이 문제를 지적한 CERT는 다음과 같은 대응책을 제시했다.

RDP 클라이언트를 보호하라. 네트워크에 연결된 PC는 다른 PC에 접속할 수가 있기 때문에, 아무나 사용할 수 없도록 해야 한다. 위의 예에서, 혜린은 자리를 비우기 전에 자신의 PC 자체(로컬 세션)를 잠궜어야 한다.

사용 후에는 RDP 세션의 연결을 끊어라. RDP 세션 잠금은 사실상 효과가 없다. RDP 연결을 정상적으로 끊으면 자동으로 재연결되지 않는다.


관련 자료
  1. 구식 윈도우의 원격 데스크톱 위험하다

참고 자료
  1. Microsoft Windows RDP Network Level Authentication can bypass the Windows lock screen 

댓글

이 블로그의 인기 게시물

엑셀 필터 상태에서 복사와 잘라내기

가정에서도 망 분리를 해보자

잉크젯 프린터 전원은 항상 켜 놓아야 좋다