보안 위협 분석

온라인 문의

원격 데스크톱(RDP) 이벤트 로그 포렌식

보안 기술        2021-08-02

 

  

 

원격 데스크톱(이하 RDP) 무차별 대입 공격으로 인한 침해사고 발생시 다양한 흔적이 남게 된다.

그 중 이벤트 로그에 대해 알아보자. 이벤트 로그는 운영체제 별로 다르기 때문에 본 글에서 다루는 이벤트 로그는 Windows 10 기준으로 작성되었음을 일러둔다. 

 

<그림> RDP Brute Force 도구로 성공시 이벤트 로그 변화

 

 

RDP Brute Force 도구로 RDP에 성공할 경우 이벤트 로그 변화다. RDP 로그인 시도를 하게 되면 성공하든 실패하든 RDP 리스너(event id 261)가 동작한다. 그 다음으로 새로운 계정에 특수 권한(event id 4672)할당을 수행하게 되는데 로컬 시스템 계정의 모든 로그온이 이 이벤트를 트리거하므로 이 이벤트는 여러 번 수행될 수 있다. 다음으로는 계정이 성공적으로 로그온(event id 4624)되었다는 이벤트 로그를 확인할 수 있다. 마지막으로 원격 데스크톱 서비스: 사용자 인증에 성공했습니다.(event id 1149) 라는 이벤트 로그를 확인할 수 있다.

 

※ 모든 RDP Brute Force 도구에 일반화할 수 없으며, 침해대응센터에서 테스트한 도구에 한함

 

 

<그림> RDP 실제 접속 성공시 이벤트 로그 변화

 

 

mstsc 를 통해 실제 RDP 접속 성공한 경우 이벤트 로그 변화다. RDP Brute Force 도구로 성공한 경우와의 차이점은 크게 2가지로 볼 수 있다.

1) RDP 리스너(event id 261)가 2번 수행

2) 원격 데스크톱 서비스: 세션 재연결 성공(event id 25) 이벤트 로그 유무

 

이 차이점이 중요한 이유는 RDP 무차별 대입 공격 침해사고 발생시 최초 침입시간을 추정하는데 활용할 수 있는 판단기준이 되기 때문이다.

 

 

<그림> RDP 재연결 성공 이벤트 로그 변화

 

 

RDP 재연결은 RDP 성공 이후, 네트워크 일시적 장애 등에 따른 끊김이 발생한 이후, 별도의 인위적인 인증절차 없이 재연결된 경우이다. 

 

 

<그림> RDP 로그온 실패 이벤트 로그 변화

 

 

RDP 로그온 실패의 경우, RDP Brute Force 도구 및 실제 원격 데스크톱 연결에 실패한 경우 동일한 이벤트 로그를 보여주었다. 최초 RDP 리스너(evnet id 261)가 동작한 이후 계정에 로그온하지 못했습니다.(event id 4625)로 이어진다. 

 

 

<그림> RDP 세션 끊김 (윈도우 종료) (이유코드 0, 5) 이벤트 로그 변화

 

 

RDP 세션 끊김(windows close)은 RDP 연결 성공 후 상단의 x 버튼을 클릭하여 종료한 경우이다. 이유 코드 0번과 5번을 테스트한 결과 동일한 이벤트 로그 변화를 보여주었다. 이유 코드 종류와 설명은 다음과 같다. 

 

[표] RDS 연결 해제 이유표 

RDS 서버 클라이언트 연결 해제 코드

연결 해제 이유

0x00000001

연결 해제는 다른 세션에 있는 서버의 관리 도구에 의해 시작되었습니다.

0x00000002

연결이 끊긴 이유는 다른 세션에 있는 서버의 관리 도구에 의해 시작된 강제 로그 오프 때문입니다.

0x00000003

서버의 유휴 세션 제한 타이머가 경과했습니다.

0x00000004

서버의 활성 세션 제한 타이머가 경과했습니다.

0x00000005

다른 사용자가 서버에 연결하여 현재 연결을 강제로 끊었습니다.

0x00000006

서버에 사용 가능한 메모리 리소스가 부족합니다.

0x00000007

서버가 연결을 거부했습니다.

0x00000009

액세스 권한이 부족하여 사용자가 서버에 연결할 수 없습니다.

0x0000000A (10)

서버는 저장된 사용자 자격 증명을 수락하지 않으며 사용자가 각 연결에 대해 자격 증명을 입력하도록 요구합니다.

0x0000000B (11)

연결 해제는 사용자가 서버에서 세션 연결을 끊거나 서버의 관리 도구에 의해 시작되었습니다.

0x0000000C (12)

연결 해제는 사용자가 서버에서 자신의 세션을 로그 오프하여 시작되었습니다.

 

 

<그림> RDP 세션 끊김 (시작 > 종료) (이유 코드 11) 이벤트 로그 변화

 

 

RDP 세션 끊김(시작>세션 끊기)은 RDP 연결 성공 후 좌측하단의 시작버튼 클릭 후 세션 끊기 버튼을 클릭하여 종료한 경우이다. 이유 코드로는 11번에 해당한다. 

 

 

<그림> RDP 로그오프 (cmd > logoff) (이유 코드 12) 이벤트 로그 변화

 

 

RDP 로그오프는 RDP 연결 성공 후 logoff 명령어를 통해 세션을 종료한 경우이다. 이유 코드로는 12번에 해당한다.

RDP 로그오프시 한가지 팁은 사용자 PC가 사용자 환경 개선 프로그램이 활성화 되어 있다면 시스템 로그에 로그오프 알림 이벤트 로그(event id 7002)가 남는다는 것이다.

 

아래는 각 이벤트 별 검색 EID 번호를 정리한 CheatSheet 이다.


<그림> RDP 이벤트에 따른 이벤트 ID CheatSheet 

 

침해사고 조사시, 위 표의 EID 이벤트를 조사하고 해당 이벤트가 발생한 시간을 정리하여 타임라인을 작성할 수 있다(파란선 윗부분). 상단의 EID 부터 검색해서 로그인 성공, 실패, 종료 여부를 확인하고, 하단으로 내려가면서 세부 정보를 확인하도록 하자. 파란선 아래 부분은 참고용으로 이벤트로그가 임의 삭제되었을 경우 크로스 체크하거나 트리거로 인해 생성되는 정보로 가치가 상대적으로 낮은 요소이다. 

 

 

 

<그림> EID 별 카테고리 분류표 CheatSheet 

 

 

EID 별 카테고리 분류표를 참고하여 빠르게 이벤트 로그를 검색할 수 있다.

 

 RDP 무차별 대입 공격으로 인한 침해사고 이벤트 로그 조사시, 외부에 알려진 RDP 관련 내용이 실제와는 다른 점이 있어 실제 여러 번 테스트하여 획득한 결과이다.

 

※ 테스트 결과가 실제 동작과 다를 수 있으며, 침해대응센터에서는 새로운 사실이 확인될 경우 꾸준히 본 글을 업데이트 할 예정이다.

 

참고자료

https://social.technet.microsoft.com/wiki/contents/articles/37874.rds-session-host-server-disconnect-codes.aspx

  • 목록