과도한 관리자 권한으로부터 윈도우 네트워크를 보호하는 방법

CSO
보통은 윈도우 사용자가 자신의 컴퓨터의 로컬 관리자다. 소프트웨어를 실행하려면 개발자 권한이 필요한 것이 주요 이유였다. 이 때문에 윈도우 7에 UAC(User Account Control)가 도입됐을 때 큰 주목을 받았다. UAC는 개발자가 관리자 권한 없이 소프트웨어를 실행하는 장기 프로그램이었지만 매우 불편했다. 이후 사람들이 더는 관리자 권한으로 컴퓨터를 실행하면 안 된다고 깨닫기까지 오랜 시간이 걸렸다.
 
© Getty Images Bank

윈도우 컴퓨터를 관리자 권한으로 구동하면 안 되는 이유를 여전히 잘 모르겠다면, 션 멧칼프의 최근 트위터 게시물을 참고하면 된다.
 
  1. 공격자가 관리자 계정을 훼손하는 것만으로 시스템에 쉽게 공격 거점을 마련할 수 있다. 공격자는 이제 로컬 관리자 권한을 가지며 LSASS(Local Security authority Subsystem Service)와 로컬 SMA(Service Management Automation)를 덤프해 더 많은 자격 증명을 탈취할 수 있다.
  2. 로깅이 더 복잡해진다. 모든 사용자가 관리자 권한이 있는 것이 아니라면, ‘로컬 관리자로 인증됨’ 이벤트 4672를 이용해 의심스러운 권한 엑세스 활동을 모니터링할 수 있지만, 모든 사용자가 관리자라면 이 이벤트 및 관련 이벤트에 대한 모니터링은 무용지물이 된다.
  3. 사용자에게 로컬 관리자 권한이 있으면, 랜섬웨어는 시스템을 완전히 망가뜨리는 데 필요한 모든 권한을 갖는다.
  4. 모든 워크스테이션이 똑같은 로컬 관리자 비밀번호를 공유하면, 단 하나의 사용자 계정이 노출돼도 모든 워크스테이션이 공격받게 된다. 이런 공격은 불과 몇 분 만에 완료된다. 이 문제를 해결하려면 LAPS 로컬 관리자 비밀번호 솔루션(Local Administrator Password Solution, LAPS) 등을 설치하면 된다.
 

UAC 보안 문제

윈도우 7과 윈도우 10의 경우 UAC를 사용하는 것만으로는 충분하지 않다. 공격자가 UACMe같은 툴을 사용해 시스템에 액세스할 수 있기 때문이다. UACMe는 내장된 윈도우 오토엘리베이트(Windows AutoElevate) 백도어를 악용한다. 레이몬드 첸이 지적한 것처럼, UAC는 보안 기능이 아니라 소프트웨어 개발자가 일관되게 작업하도록 강제하는 역할을 하는 편리한 기능이다. UAC는 시스템에서 관리자 역할을 요구하는 것에게서 벗어나는 과정으로 도입됐다. 따라서 현실에 안주하지 말고 공격자가 UAC의 약점에 대해 더 많이 알고 있음을 인식해야 한다.

애저 역시 관리자를 제어하고 보호할 필요가 있다. 워크스테이션의 로컬 관리자 대신 글로벌 관리자를 사용하고 보호 상황을 모니터해야 한다. 마이크로소프트에 따르면, 2019년 8월 기준으로 글로벌 관리자 계정 중 8%만이 다중 인증(Multi-Factor Authentication, MFA)으로 보호된다. MFA를 설정하지 않으면 공격자가 사용자 계정 이름과 많이 사용되는 소수 암호를 결합해 온라인 계정을 뚫는 패스워드 스프레이(Password Spray) 공격으로 글로벌 관리자 역할을 탈취할 수 있다.

오피스 365 글로벌 관리자의 권한 상승도 공격에 악용될 수 있다. 맷칼프가 블로그에 썼듯이, 오피스 365의 글로벌 관리자 계정이 노출되면, 공격자가 ‘애저 리소스에 대한 액세스 관리’를 활성화할 수 있다. 관리자 콘솔에서 이 액세스를 켜면 테넌트의 모든 구독을 제어하는 루트 범위에서 애저 RBAC의 사용자 액세스 관리자 역할에 계정이 추가된다.

글로벌 관리자 계정을 보호하려면, 애저 AD 글로벌 관리자 역할이 변경됐는지 모니터하고 글로벌 관리자 역할이 있는 모든 계정에서 MFA를 시행하는 것이 좋다. 또한 적합한 라이선스가 있는지 확인한다. 애저 AD PIM(Privileged Identity Management)을 추가하려면 애저 AD 프리미엄 2 라이선스가 필요하다. 또는, E5 라이선스로 PIM 액세스 권한을 얻을 수 있다.
 

PIM 활성화

PIM은 글로벌 관리자 계정에 다음과 같은 PAM(Privileged Access Management) 보호를 추가한다:
 
  • 애저 AD와 애저 리소스에 대한 JIT(Just-In-Time) 권한 있는 액세스를 제공한다.
  • 시작 및 종료일을 정해 리소스에 시간제한 액세스를 할당한다.
  • 권한 있는 역할을 활성화할 때 승인을 요구한다.
  • 어떤 역할이든 활성화하려면 MFA를 실행해야 한다.
  • 사용자가 활성화된 이유를 이해하기 위해 근거를 사용한다.
  • 권한 있는 역할이 활성화되면 알림을 보여준다.
  • 액세스를 검토해 사용자가 아직 역할이 필요한지 확인한다.
  • 내/외부 감사를 위해 감사 기록을 다운로드한다.

마이크로소프트의 설명에 따르면, PAM은 테넌트의 테스크 기반 활동에 대한 JIT 액세스를 지정하는 정책을 구성해 실행한다. 공격자가 기존 권한 있는 관리자 계정을 사용해 민감한 데이터에 대한 상시 액세스나 중요한 구성 설정에 액세스하지 못 하도록 기업을 보호할 수 있다. 예를 들어, 테넌트의 조직 메일함 설정에 액세스하고 변경하려면 명시적 승인이 필요한 PAM 정책을 구성할 수 있다. PIM을 활성화하는 방법은 다음과 같다.
 
  1. 애저 포털을 실행한다.
  2. Privileged Identity Management 항목으로 이동한다.
  3. Azure AD Directory Roles – Overview 항목으로 이동 후 ‘Wizard’를 클릭하면 프로세스가 진행된다.

PIM을 자동 승인 프로세스로 생각하고, 시스템에서 프로세스에 액세스해야 하는 사람만 액세스하도록 한다. 그러면 프로세스의 각 하위 관리자는 승인 프로세스를 통해 액세스 권한을 얻도록 의무화된다. JIT 관리 승인 프로세스를 설정할 때, 액세스 활성화가 유지되는 시간을 검토해야 한다. 이 시간을 길지 않게 유지하되, 관리자가 작업 완료를 서두를 정도로 짧으면 안 된다. PIM을 사용하면 애저 AD와 오피스 365, 마이크로소프트 인튠에서 관리자를 추적할 수 있다.
 
PIM에서 역할 설정하기 © SUSAN BRADLEY
 

오피스 365 사용자에 대한 MFA 설정하기

마지막으로, 관리자 혹은 글로벌 관리자 권한이 있는지에 관계없이 모든 오피스/마이크로소프트 365 사용자에 대해 MFA를 사용하는 것이 좋다. 물리적 전자 열쇠 키팝(Keyfob)이나 토큰, SMS 메시징, 사무실 전화번호 콜백, 또는 인증 애플리케이션 등을 사용해 2단계 인증을 구현할 수 있다. 가상 토큰을 선호한다면 마이크로소프트나 구글의 인증 앱을 사용하면 된다.

MFA의 중요성은 아무리 강조해도 지나치지 않다. MFA를 사용하면 계정이 침해될 가능성이 99.9% 이상 줄어든다. 보호에 실패할 염려가 전혀 없는 것은 아니지만 어떤 형태든 MFA를 수행하면 대부분 공격을 피할 수 있다. editor@itworld.co.kr