LogonShield English

홈 › 가이드

원격 데스크톱(RDP) 무차별 대입 공격 막는 법

원격 데스크톱(RDP) 포트가 인터넷에 열려 있는 Windows 서버라면, 설치한 지 며칠 안에 낯선 IP들이 쉬지 않고 로그인을 시도하는 것을 볼 수 있습니다. administrator, admin, user 같은 흔한 계정 이름에 흔한 비밀번호를 하나씩 넣어 보는 무차별 대입 공격입니다.

공격이 들어오고 있는지 확인하기

로그인에 실패할 때마다 Windows 보안 로그에 이벤트 ID 4625가 남습니다. 이벤트 뷰어의 Windows 로그 > 보안에서 4625로 필터링해 보세요. 짧은 시간에 같은 원본 네트워크 주소에서 여러 계정 이름으로 실패가 반복된다면 공격입니다. 자세한 확인 방법은 이벤트 ID 4625 로그온 실패 기록 보는 법에 정리했습니다.

기본으로 해 둘 일

  • 추측하기 어려운 비밀번호. 공격 도구는 유출된 비밀번호 목록을 그대로 대입합니다. 길고 다른 곳에서 쓰지 않은 비밀번호가 가장 기본적인 방어입니다.
  • 기본 관리자 계정 이름 바꾸기. 공격의 대부분이 administrator를 노립니다. 이름만 바꿔도 맞혀야 할 것이 하나 더 생깁니다.
  • 네트워크 수준 인증(NLA) 켜기. 세션 화면을 띄우기 전에 인증을 먼저 하므로 서버 자원 소모를 줄여 줍니다. 시스템 속성 > 원격에서 "네트워크 수준 인증을 사용하여 원격 데스크톱을 실행하는 컴퓨터에서만 연결 허용"을 켜세요.
  • 계정 잠금 정책. secpol.msc의 계정 정책 > 계정 잠금 정책에서 몇 번 틀리면 잠글지 정할 수 있습니다. 다만 공격자가 일부러 틀려서 정상 사용자 계정을 잠가 버릴 수 있다는 점은 감안해야 합니다.

접속할 수 있는 IP 줄이기

관리자가 접속하는 곳이 정해져 있다면 Windows 방화벽의 원격 데스크톱 규칙 범위에 그 IP만 허용하는 것이 가장 확실합니다. VPN을 거쳐서만 접속하게 하는 방법도 있습니다. 하지만 접속 위치가 자주 바뀌거나 여러 사람이 쓰는 서버라면 이렇게 묶어 두기 어렵습니다.

실패를 반복하는 IP 자동 차단

현실적인 절충은 "몇 번 틀린 IP만 한동안 막는" 방식입니다. 정상 사용자는 비밀번호를 한두 번 틀려도 계속 쓸 수 있고, 수천 번을 시도하는 공격 IP는 몇 번 만에 방화벽에서 막힙니다. 수동으로 하려면 4625 기록을 보고 방화벽 규칙에 IP를 직접 넣어야 하는데, 공격 IP는 하루에도 수십 개씩 바뀌므로 자동화가 필요합니다.

RDP 포트 번호만 바꾸는 것으로는 충분하지 않은 이유는 RDP 포트만 바꾸면 안전할까?에서 다룹니다.

LogonShield로 자동화하기

LogonShield는 이 글에서 설명한 로그인 실패 기록을 실시간으로 읽고, 정해진 횟수를 넘긴 IP를 Windows 방화벽 규칙에 넣었다가 시간이 지나면 저절로 뺍니다. RDP, MS-SQL, FTP, OpenSSH, 메일 서버 등 13개 서비스를 지원합니다.

LogonShield 다운로드