2018.11.09

기고 | RDP 공격을 받았다면, '사용자 잘못'이다

Roger A. Grimes | CSO
필자는 블로그 게시물이나 포럼 스레드에서 마이크로소프트와 원격 데스크톱 프로토콜(Remote Desktop Protocol, RDP)을 비난하는 것을 보았다. 주로 신종 랜섬웨어나 크립토마이너가 RDP를 통해 컴퓨터를 훼손했다고 불평하는 것과 관련된다. 그러면 다른 사람도 덩달아서 마이크로소프트 윈도우를 욕하거나 마이크로소프트의 보안이 엉망이라고 비난하는 것으로 이어지는 게 보통이다.



이는 단지 진부하고 아는 체하는 차원만이 아니다. 괜히 생사람을 잡는 것이다.

설명해 보겠다. 컴퓨터가 RDP 때문에 훼손되었다면, 문제는 이용자 또는 이용자의 조직에 있다. 마이크로소프트나 RDP에게 있는 것이 아니다. RDP를 보호하기 위해 VPN을 설치할 필요는 없다. 기본 네트워크 포트를 변경하거나 어떤 흑마술을 부릴 필요도 없다. 기본 보안 설정을 사용하거나, 이미 사용하고 있을 다른 수많은 보안 방어 기능을 이행하기만 하면 된다. RDP 때문에 해킹을 당했다면, 컴퓨터 보안을 관리자가 당연히 해야 할 일을 하지 않았기 때문이다.

랜섬웨어와 RDP
샘샘(SamSam) 같은 랜섬웨어 프로그램, 크라이시스(Crysis) 같은 크립토마이너가 많이 있다. 이는 접근 가능한 RDP 서비스에 무차별 대입 추측 공격을 시도한다. RDP 서비스가 훼손된 회사가 너무 많아서 FBI와 미국 국토안보부(DHS)가 경고를 발행했을 정도다.

경고는 “당신 회사의 보안이 엉망이다”는 것이어야 한다. 악성코드 프로그램이 패치되지 않는 취약점을 이용해 제로-데이 공격을 감행하는 그런 차원이 아니다. 이들은 그냥 원격 접속 계정상의 추측하기 쉬운 암호를 찾으려는 최소한의 시도를 하고 있을 뿐이다. 그리고 대다수는 관리자 수준의 접근 계정으로 보인다.

마이크로소프트가 배치해둔 기본 설정만 이용해도 이용자는 매우 안전할 것이다. 기본 설정에서 마이크로소프트는 빌트-인 관리자 그룹(RID 501)의 구성원만 RDP를 활성화할 수 있게 해두었고, 이는 단순한 암호 추측 RDP 공격을 중단시키기에 충분한 정도로 길고 복잡한 암호를 요구한다. 게다가 잘못된 추측이 몇 회 이루어지면 계정을 잠그는 계정 차단 정책과 조합되면 거의 철벽 수준이다. RDP 악성코드가 컴퓨터에 침입한다면 이용자 본인이 RDP 유효 계정이 매우 취약한 암호를 가져도 무방하도록 허용했고 계정 잠금 기능을 활성화하지 않았다는 의미다.

필자는 이게 마이크로소프트의 잘못이 아니라고 확신한다.

RDP를 보호하는 모범적인 방법
마이크로소프트가 수십 년 동안 홍보해온 RDP를 보호하는 모범 관행을 따라 한다면 보안은 한층 강화될 것이다. 예를 들어, 마이크로소프트는 오랫동안 기본 관리자 이름을 변경하라고 권장해왔고, 이를 가능케 하는 그룹 정책 옵션을 제공한다. 아울러 ‘대화형 로그온: 마지막 이용자 이름을 표시 안 함’ 선택지(Interactive Logon: Do Not Display the Last User Name option)를 활성화하도록 권장한다. 이게 일단 활성화되면 암호 추측 악성코드 프로그램은 어떤 이용자 이름을 이용해 추측을 시작할 것인지 실마리를 잡을 수 없다. 설령 시작했다고 하더라도, 계정 잠금에 의해 추측은 금방 중단될 것이다.

나아가, 마이크로소프트는 RDP를 이용하기 위해 로그온을 시도하는 컴퓨터에 대해 의무적으로 신뢰성 있는 디지털 인증서를 배포하고 이용하도록 권장한다. 원격 기기에 신뢰성 있는 디지털 인증서가 설치되어 있지 않다면 로그온 암호의 추측을 시작할 수조차 없다. 컴퓨터 보안을 가장 능숙하게 관리하는 사람이라면 심지어 멀티-팩터 인증(Multi-Factor Authentication, MFA)을 인증 정보로 요구한다. 마이크로소프트는 10년이 넘는 기간 동안 이러한 모범 관행을 권장하고 지원하고 있다.

RDP가 진짜 문제가 될 때
원격 접근 서비스에 의해 기본 설정 또는 모범 관행으로 방어할 수 없는 취약점이 추가되는 경우가 분명히 있다. 훌륭한 실례는 RDP가 (또는 이에 의존하는 서비스가) 패치되지 않은 알려진 취약점을 가지고 있을 때이다. 이는 일어날 수 있는 일이지만, 매우 희박하다. 사실, 필자가 아는 한, RDP가 존재한 수십 년 동안 불과 2~3차례만 일어났다. 첫 번째 사례는 윈도우 NT 4.0이었다.

RDP의 중대한 취약점은 지난 2012년에 마지막으로 발생했다. 정말 위험했다. 이는 원격으로 악용될 수 있었고, 한 악의적인 접속이 인증에 성공하지 않고도 원격 로그온을 할 수 있었다. 관리자들은 악의적인 사람과 악성코드가 이를 악용하기 전에 매우 신속히 패치하였다. 그 후로는 RDP를 악용할 수 있는 중대한 취약점은 하나도 없었다.

이를 오픈SSH와 비교해보자. 기본적으로 RDP의 오픈소스 경쟁자다. 1999년 이후로 93건의 취약점이 있었고, 여기에는 최근 2년 동안의 9건의 취약점이 포함된다. 필자는 사람들이 오픈SSH 취약점 때문에 리눅스와 BSD를 비난하는 것을 들어본 적이 없다.


RDP를 보호하기 위해 무언가를 더 해야 할까?
VPN을 추가하고, 기본 TCP/IP 포트를 변경하고, 여타 보호 기법을 활용해 공적으로 접근할 수 있는 RDP 접속을 보호하는 것은 나쁠 게 없다. 마이크로소프트가 권장하는 최고의 실무 관행은 디지털 인증서를 요구하는 것이고, 이는 선구적 VPN을 설정하는 것에 해당한다. 그러나 이용자는 이를 할 필요가 없다.

계정 잠금을 활성화하고(설령 암호를 100번쯤 틀려야 계정이 잠기는 조건이라도), 기본적이고 만족스러운 암호 정책을 시행하고 있다면, 추가적인 보호 조치가 필요 없을 것이다. 컴퓨터 세계에는 우려해야 하고 고쳐야 할 것이 많이 있는데, 이미 해결된 문제를 가지고 무언가를 더 할 필요까지는 없는 것이다.

필자는 포트, 심지어 쿨러를 교대로 쓰고 포트 노킹을 이용하며(방화벽이 접속 포트를 열기 전에 마치 번호 자물쇠처럼 사전 정의된 포트들에 핑을 먼저 날려야 함) 여타 일회성 방어책을 이용하는 것을 크게 신뢰했었다. 그런데 전혀 그럴 필요가 없다. 이미 안전한 시스템에 불필요한 복잡성을 추가할 뿐이다.

랜섬웨어나 해커가 RDP 때문에 시스템이나 네트워크를 훼손한다면, 그것은 이용자가 단순히 RDP 차원을 훨씬 넘어 수많은 위험하고 불안전한 행위를 하고 있기 때문이다. 아무 관련도 없는 문제 때문에 마이크로소프트와 RDP를 비난하는 것은 옳지 못하다. 차라리 암호 추측 문제라면 리눅스와 오픈 SSL을 비난하겠다.

* Roger A. Grimes는 2005년부터 집필해온 보안 칼럼니스트다. ciok@idg.co.kr
 



2018.11.09

기고 | RDP 공격을 받았다면, '사용자 잘못'이다

Roger A. Grimes | CSO
필자는 블로그 게시물이나 포럼 스레드에서 마이크로소프트와 원격 데스크톱 프로토콜(Remote Desktop Protocol, RDP)을 비난하는 것을 보았다. 주로 신종 랜섬웨어나 크립토마이너가 RDP를 통해 컴퓨터를 훼손했다고 불평하는 것과 관련된다. 그러면 다른 사람도 덩달아서 마이크로소프트 윈도우를 욕하거나 마이크로소프트의 보안이 엉망이라고 비난하는 것으로 이어지는 게 보통이다.



이는 단지 진부하고 아는 체하는 차원만이 아니다. 괜히 생사람을 잡는 것이다.

설명해 보겠다. 컴퓨터가 RDP 때문에 훼손되었다면, 문제는 이용자 또는 이용자의 조직에 있다. 마이크로소프트나 RDP에게 있는 것이 아니다. RDP를 보호하기 위해 VPN을 설치할 필요는 없다. 기본 네트워크 포트를 변경하거나 어떤 흑마술을 부릴 필요도 없다. 기본 보안 설정을 사용하거나, 이미 사용하고 있을 다른 수많은 보안 방어 기능을 이행하기만 하면 된다. RDP 때문에 해킹을 당했다면, 컴퓨터 보안을 관리자가 당연히 해야 할 일을 하지 않았기 때문이다.

랜섬웨어와 RDP
샘샘(SamSam) 같은 랜섬웨어 프로그램, 크라이시스(Crysis) 같은 크립토마이너가 많이 있다. 이는 접근 가능한 RDP 서비스에 무차별 대입 추측 공격을 시도한다. RDP 서비스가 훼손된 회사가 너무 많아서 FBI와 미국 국토안보부(DHS)가 경고를 발행했을 정도다.

경고는 “당신 회사의 보안이 엉망이다”는 것이어야 한다. 악성코드 프로그램이 패치되지 않는 취약점을 이용해 제로-데이 공격을 감행하는 그런 차원이 아니다. 이들은 그냥 원격 접속 계정상의 추측하기 쉬운 암호를 찾으려는 최소한의 시도를 하고 있을 뿐이다. 그리고 대다수는 관리자 수준의 접근 계정으로 보인다.

마이크로소프트가 배치해둔 기본 설정만 이용해도 이용자는 매우 안전할 것이다. 기본 설정에서 마이크로소프트는 빌트-인 관리자 그룹(RID 501)의 구성원만 RDP를 활성화할 수 있게 해두었고, 이는 단순한 암호 추측 RDP 공격을 중단시키기에 충분한 정도로 길고 복잡한 암호를 요구한다. 게다가 잘못된 추측이 몇 회 이루어지면 계정을 잠그는 계정 차단 정책과 조합되면 거의 철벽 수준이다. RDP 악성코드가 컴퓨터에 침입한다면 이용자 본인이 RDP 유효 계정이 매우 취약한 암호를 가져도 무방하도록 허용했고 계정 잠금 기능을 활성화하지 않았다는 의미다.

필자는 이게 마이크로소프트의 잘못이 아니라고 확신한다.

RDP를 보호하는 모범적인 방법
마이크로소프트가 수십 년 동안 홍보해온 RDP를 보호하는 모범 관행을 따라 한다면 보안은 한층 강화될 것이다. 예를 들어, 마이크로소프트는 오랫동안 기본 관리자 이름을 변경하라고 권장해왔고, 이를 가능케 하는 그룹 정책 옵션을 제공한다. 아울러 ‘대화형 로그온: 마지막 이용자 이름을 표시 안 함’ 선택지(Interactive Logon: Do Not Display the Last User Name option)를 활성화하도록 권장한다. 이게 일단 활성화되면 암호 추측 악성코드 프로그램은 어떤 이용자 이름을 이용해 추측을 시작할 것인지 실마리를 잡을 수 없다. 설령 시작했다고 하더라도, 계정 잠금에 의해 추측은 금방 중단될 것이다.

나아가, 마이크로소프트는 RDP를 이용하기 위해 로그온을 시도하는 컴퓨터에 대해 의무적으로 신뢰성 있는 디지털 인증서를 배포하고 이용하도록 권장한다. 원격 기기에 신뢰성 있는 디지털 인증서가 설치되어 있지 않다면 로그온 암호의 추측을 시작할 수조차 없다. 컴퓨터 보안을 가장 능숙하게 관리하는 사람이라면 심지어 멀티-팩터 인증(Multi-Factor Authentication, MFA)을 인증 정보로 요구한다. 마이크로소프트는 10년이 넘는 기간 동안 이러한 모범 관행을 권장하고 지원하고 있다.

RDP가 진짜 문제가 될 때
원격 접근 서비스에 의해 기본 설정 또는 모범 관행으로 방어할 수 없는 취약점이 추가되는 경우가 분명히 있다. 훌륭한 실례는 RDP가 (또는 이에 의존하는 서비스가) 패치되지 않은 알려진 취약점을 가지고 있을 때이다. 이는 일어날 수 있는 일이지만, 매우 희박하다. 사실, 필자가 아는 한, RDP가 존재한 수십 년 동안 불과 2~3차례만 일어났다. 첫 번째 사례는 윈도우 NT 4.0이었다.

RDP의 중대한 취약점은 지난 2012년에 마지막으로 발생했다. 정말 위험했다. 이는 원격으로 악용될 수 있었고, 한 악의적인 접속이 인증에 성공하지 않고도 원격 로그온을 할 수 있었다. 관리자들은 악의적인 사람과 악성코드가 이를 악용하기 전에 매우 신속히 패치하였다. 그 후로는 RDP를 악용할 수 있는 중대한 취약점은 하나도 없었다.

이를 오픈SSH와 비교해보자. 기본적으로 RDP의 오픈소스 경쟁자다. 1999년 이후로 93건의 취약점이 있었고, 여기에는 최근 2년 동안의 9건의 취약점이 포함된다. 필자는 사람들이 오픈SSH 취약점 때문에 리눅스와 BSD를 비난하는 것을 들어본 적이 없다.


RDP를 보호하기 위해 무언가를 더 해야 할까?
VPN을 추가하고, 기본 TCP/IP 포트를 변경하고, 여타 보호 기법을 활용해 공적으로 접근할 수 있는 RDP 접속을 보호하는 것은 나쁠 게 없다. 마이크로소프트가 권장하는 최고의 실무 관행은 디지털 인증서를 요구하는 것이고, 이는 선구적 VPN을 설정하는 것에 해당한다. 그러나 이용자는 이를 할 필요가 없다.

계정 잠금을 활성화하고(설령 암호를 100번쯤 틀려야 계정이 잠기는 조건이라도), 기본적이고 만족스러운 암호 정책을 시행하고 있다면, 추가적인 보호 조치가 필요 없을 것이다. 컴퓨터 세계에는 우려해야 하고 고쳐야 할 것이 많이 있는데, 이미 해결된 문제를 가지고 무언가를 더 할 필요까지는 없는 것이다.

필자는 포트, 심지어 쿨러를 교대로 쓰고 포트 노킹을 이용하며(방화벽이 접속 포트를 열기 전에 마치 번호 자물쇠처럼 사전 정의된 포트들에 핑을 먼저 날려야 함) 여타 일회성 방어책을 이용하는 것을 크게 신뢰했었다. 그런데 전혀 그럴 필요가 없다. 이미 안전한 시스템에 불필요한 복잡성을 추가할 뿐이다.

랜섬웨어나 해커가 RDP 때문에 시스템이나 네트워크를 훼손한다면, 그것은 이용자가 단순히 RDP 차원을 훨씬 넘어 수많은 위험하고 불안전한 행위를 하고 있기 때문이다. 아무 관련도 없는 문제 때문에 마이크로소프트와 RDP를 비난하는 것은 옳지 못하다. 차라리 암호 추측 문제라면 리눅스와 오픈 SSL을 비난하겠다.

* Roger A. Grimes는 2005년부터 집필해온 보안 칼럼니스트다. ciok@idg.co.kr
 

X