RDP의 역습, 클라이언트가 해킹당할 수도 있다
Reverse RDP Attack
RDP(Remote Desktop Protocol)은 원격 제어, 원격 데스크톱 등으로 불린다. 재택 근무처럼, 멀리 떨어진 PC에 접속해 그 시스템 자원과 파일을 사용해 작업하는 것이다. 이때 회사의 PC는 서버, 직원의 PC는 클라이언트가 된다.RDP는 잘 방어하지 않으면 해킹의 통로가 될 수 있다. 나 몰래 누군가가 내 PC에 접속해서 파일을 훔쳐본다고 생각해 보자, 이런 경우가 전형적인 RDP 해킹의 예이고, 따라서 보안 측면에서도 거의 RDP 서버 쪽에 초점을 맞춰왔다.
그런데 Check Point Research에서 역으로, 악성 RDP 서버에 의해 클라이언트가 해킹 당할 수 있음을 증명했다. 이것을 reverse RDP attack(역 RDP 공격)이라고 불렀다. 예를 들어, 해커가 IT 서비스 직원에게 거짓으로 자신의 PC를 점검해 달라고 요청한 후, 서비스 직원의 PC를 해킹해 악성코드를 심는 경우를 생각해 볼 수 있다.
RDP를 구현하는 프로그램은 많이 있는데, 이번 연구에서는 대표적인 3개를 대상으로 취약점을 분석했다. Windows에 기본 내장된 마이크로소프트의 RDC(Remote Desktop Connection), 오픈소스인 FreeRDP와 rdesktop이다.
FreeRDP와 rdesktop에서는 원격 코드 실행 취약점이 수두룩하게 발견됐다. 사실상 클라이언트를 완전히 제어할 수 있는 치명적인 것이다. 이들의 취약점은 개발자에 보고되어 패치가 나온 상태다.
클립보드 공유 주의
윈도우의 원격 데스크톱 연결은 상당히 견고했다. 이렇다 할 틈을 발견하지 못했지만, 클립보드를 통해 악성코드를 설치할 수 있는 방법을 찾아냈다. 서버의 파일을 복사하여 클라이언트로 가져올 때, 다른 파일을 임의의 경로에 저장할 수 있었다. 예를 들어, 내가 서버에서 good.txt를 복사했는데, 그 틈에 해커가 bad.exe를 내 PC의 시작 프로그램 폴더에 떨굴 수 있다. 이렇게 되면 부팅 시마다 악성코드가 실행된다. 이 점에 대해 마이크로소프트는 취약점의 기준에 미치지 못한다고 밝혔다.또한 기본 설정으로는 클립보드 내용이 서버와 클라이언트에서 공유되므로, 클라이언트의 작업 내용을 서버에서 볼 수 있다. 예컨대 클라이언트에서 암호 같은 민감한 내용을 클립보드에 복사했다면, 악의적인 서버의 사용자가 이를 볼 수 있는 것이다. 이 점 또한 취약점이라기 보단, 정상적인 작동을 악용하는 경우라고 볼 수 있다.
결국 Windows의 RDC는 취약점은 발견되지 않았지만, 클립보드를 통해 악용될 수 있는 여지가 있다. 따라서 클립보드를 공유하지 않도록 설정하는 것이 좋다. 그림에서 표시된 부분은 기본값인데, 이것의 체크를 해제하면 된다.
아무 데나 접속은 금물
RDP 사용 시 클라이언트 쪽에서 주의해야 할 점은, 우선 신뢰할 수 없는 서버에 접속하지 않는 것이 가장 중요하다. 그리고 프로그램을 최신 상태로 유지하여 취약점을 없애야 한다.CVE-2019-0887
클립보드를 악용한 역 RDP 공격의 가능성이 제기되고 나서 한참 후에, MS는 취약점으로 인정하고 패치를 발표했다. 2019.7.9일 정기 보안 업데이트를 통해 제공됐으며, clipboard redirection으로 인한 remote code execution 취약점으로 설명됐다.인증된 공격자(authenticated attacker)는 클립보드 리디렉션을 통해 피해자의 PC에서 임의의 코드를 실행할 수 있다. 보통 백도어가 설치되는데, 이는 결국엔 프로그램 설치, 파일 보기/편집/삭제, 새 계정 생성 등 사용자의 모든 권한을 사용하는 결과로 이어진다.
'인증된 공격자'라는 표현을 사용한 이유는, 역 RDP 공격을 수행하려면 먼저 원격 데스크톱 서비스를 실행하는 PC를 장악하고, 여기에 피해자가 RDP로 접속하기를 기다려야 하기 때문이다.
참고 자료
댓글
댓글 쓰기