권한 상승(Privilege escalation)은 오늘날 거의 모든 사이버 공격에 존재하는 일반적인 전술입니다. 악의적인 내부자, 랜섬웨어 갱단 및 기타 위협 행위자는 종종 이를 횡적 이동(lateral movement)과 결합해 피해자의 네트워크를 탐색함으로써 민감한 IT 리소스에 대한 무단 액세스를 얻는 데 사용합니다. 상승된 액세스 권한은 민감한 데이터 절도, 업무 운영 방해, 공격의 향후 단계에 사용할 백도어 생성 등 악의적 행위에 매우 중요합니다. Active Directory 사용이 광범위하기 때문에 리눅스 권한 탈취 공격보다 윈도우 권한 상승 공격이 더 흔하지만, 둘 다 실제 환경에서 관찰됩니다.
무료 가이드 다운로드:
공격자에게 권한 상승이 중요한 이유
권한 상승은 위협 행위자들이 시스템 구성, 데이터 권한, 보안 제어를 변경하는 데 필요한 ‘왕국의 열쇠’입니다. 공격자는 보통 손상된 일반 사용자 계정을 사용해 네트워크에 접근합니다. 권한 상승은 시스템 관리자 또는 고수준 서비스 계정의 자격 증명을 탈취함으로써 이루어지며, 이를 통해 중요 서버, 네트워크 장비, 데이터 저장소 및 백업 시스템에 접근할 수 있습니다.
안타깝게도 권한을 상승시키는 능력은 많은 조직이 적절한 보안 조치를 갖추지 못해, 수준이 높지 않은 해커에게도 종종 손쉽습니다. 실제로 접근 제어는 너무나 자주 편의성을 염두에 두고 구성되며, 최소 권한의 원칙을 강제하는 데 초점을 맞추지 않는 경우가 많습니다.
수평 vs 수직 권한 상승
사이버 공격은 대개 패치되지 않은 시스템, 부적절한 구성 또는 프로그래밍 오류 같은 어떤 형태의 취약점을 악용하는 것을 포함합니다. 시스템이 손상되면 공격자는 정찰을 수행해, 공격 대상이 될 권한 있는 사용자와, 이미 자신이 통제하고 있는 계정의 접근 권한을 높일 방법을 파악합니다.
위협 행위자가 사용하는 권한 상승에는 두 가지 유형이 있습니다:
- 수평적 권한 상승 — 공격자가 계정을 손상시킨 다음, 다른 시스템의 다른 사용자 또는 애플리케이션과 동일한 수준의 권한이나 허가에 접근합니다. 예를 들어, 한 인터넷 뱅킹 사용자의 계정을 손상시킨 뒤에는 공격자가 해당 사용자의 ID와 비밀번호를 알아내 다른 사용자의 계정에 접근할 수 있습니다.
- 수직적 권한 상승(= 권한 상승 또는 EoP) — 악의적인 사용자가 하위 수준의 계정에 접근한 뒤, 시스템의 취약점을 악용하여 리소스 또는 시스템에 대한 관리자 권한 또는 루트 권한에 도달합니다. 수직적 권한 상승은 수평적 권한 상승보다 더 정교한 공격 기법을 필요로 하며, 예를 들어 공격자가 시스템과 데이터에 대한 더 높은 권한에 접근할 수 있도록 돕는 해킹 도구와 같은 기법이 이에 해당합니다.
권한 상승은 어떻게 발생하나요?
무단으로 작업을 수행하려는 공격자는 종종 권한 상승 익스플로잇을 사용합니다. 이러한 익스플로잇은 운영 체제, 소프트웨어 구성 요소 또는 보안 설정 오류와 관련된 알려진 취약점이나 새로 발견된 취약점을 이용합니다. 공격은 보통 다음의 5단계 프로세스를 포함합니다:
- 취약점을 찾으십시오.
- 관련 권한 상승 익스플로잇을 생성합니다.
- 시스템에 익스플로잇을 사용합니다.
- 시스템을 성공적으로 익스플로잇하는지 확인합니다.
- 필요한 경우 추가 권한을 얻습니다.
가장 대표적인 권한 상승(Privilege Escalation) 기술은 무엇인가요?
공격자는 다양한 권한 상승(Privilege Escalation) 기법을 사용합니다. 그중 가장 흔한 3가지는 다음과 같습니다:
- 액세스 토큰 조작
- 사용자 계정 제어(User Account Control) 우회
- 유효한 계정 사용
기법 1: 액세스 토큰 조작
액세스 토큰 조작은 Windows가 관리자 권한을 관리하는 방식을 악용합니다. 액세스 토큰은 사용자가 로그인하는 시점에 Windows 시스템이 생성합니다. 공격자가 액세스 토큰을 수정하면 시스템을 속여, 시스템 작업을 수행하거나 또는 관리자 권한이 필요한 실행 중인 프로세스나 서비스에 접근할 수 있도록 허용하게 만들 수 있습니다.
공격자는 액세스 토큰을 다음 세 가지 방법 중 하나로 활용할 수 있습니다.
- 토큰을 가장하거나 탈취하기 — 공격자는 DuplicateToken(Ex) 함수를 사용해 기존 토큰을 중복(복제)하는 새 액세스 토큰을 생성할 수 있습니다. 그런 다음 해당 토큰을 ImpersonateLoggedOnUserfunction과 함께 사용하여 호출 스레드가 로그인된 사용자의 보안 컨텍스트를 가장(impersonate)하도록 하거나, SetThreadToken 함수와 함께 사용하여 가장된 토큰을 스레드에 할당할 수 있습니다.
- 토큰으로 프로세스를 생성하기 — 공격자가 DuplicateToken(Ex) 함수로 새 액세스 토큰을 만든 다음, CreateProcessWithTokenW 함수와 함께 사용하여 가장(impersonate)된 사용자의 보안 컨텍스트에서 실행되는 새 프로세스를 생성할 때 이 현상이 발생합니다. 이는 다른 사용자의 보안 컨텍스트에서 새 프로세스를 생성하는 데 유용할 수 있습니다.
- 토큰 가장(impersonation) — 여기서 공격자는 사용자 이름과 비밀번호를 가지고 있지만, 해당 사용자는 시스템에 로그인되어 있지 않습니다. 공격자는 LogonUser 의 도움을 받아 사용자에 대한 로그온 세션을 생성할 수 있습니다. 이 함수는 새 세션의 액세스 토큰 사본을 반환하며, 공격자는 SetThreadToken 을 사용해 그 토큰을 스레드에 할당할 수 있습니다.
이 위협을 완화하는 방법
액세스 토큰은 Windows 보안 시스템의 필수 구성 요소이며 끌 수 없습니다. 하지만 공격자가 이 기법을 충분히 활용하려면 이미 관리자 수준의 액세스 권한이 있어야 합니다. 따라서 최소 권한 원칙에 따라 액세스 권한을 부여하고, 모든 액세스 권한이 정기적으로 검토되도록 해야 합니다. 또한 특권 계정을 면밀히 모니터링하고, 해당 계정에서 수행되는 의심스러운 활동의 징후가 나타나면 즉시 대응해야 합니다. 이상적으로는 대부분의 상시(standing) 관리자 계정을 just-in-time access로 교체할 수 있습니다.
기법 2: 사용자 계정 컨트롤(User Account Control) 우회
Windows 사용자 계정 컨트롤(User Account Control, UAC) 기능은 일반 사용자와 관리자 권한이 있는 계정 사이의 관문 역할을 합니다. 관리자에서 권한 상승을 승인하기 전까지 애플리케이션 소프트웨어가 표준 사용자 권한으로만 제한되도록 합니다. 또한 프롬프트를 통과하려면 관리자가 자신의 자격 증명을 입력해야 합니다. 이렇게 함으로써 사용자가 신뢰하는 애플리케이션만 관리 권한을 받을 수 있어, 악성코드가 운영 체제를 손상시키는 것을 방지합니다.
하지만 이 메커니즘은 완벽하지 않습니다. 컴퓨터의 UAC 보호 수준이 가장 높은 수준이 아닌 값으로 설정되어 있으면, 일부 Windows 프로그램은 사용자에게 먼저 알리지 않고도 권한을 상승시키거나 상승된 권한으로 실행되는 Component Object Model (COM) 개체를 실행할 수 있습니다.
이 위협을 완화하는 방법
정기적으로 IT 환경에서 일반적인 UAC 우회 약점을 점검하고, 필요에 따라 위험을 적절히 대응해야 합니다. 또한 모든 Windows 시스템에서 로컬 관리자 그룹에 포함된 계정이 무엇인지 정기적으로 검토하고, 일반 사용자를 이러한 그룹에서 제거하는 것도 좋은 방법입니다. 이는 Group Policy 또는 Intune을 사용하여 수행할 수 있습니다.
기법 3: 유효한 계정 사용
공격자는 자격 증명 탈취 기법으로서 크리덴셜 스터핑(credential stuffing), 계정 조작(account manipulation), 또는 사회공학(social engineering)을 사용해 합법적인 사용자의 자격 증명을 손상시킬 수 있습니다. 또한 VPN이나 원격 데스크톱 연결을 사용해 원격 시스템과 서비스에 접근할 수도 있습니다. 여기서 가장 큰 우려 중 하나는 네트워크 전반에 걸쳐 자격 증명과 권한이 중복된다는 점입니다. 공격자는 계정과 시스템 간을 전환하여 Domain Admin 또는 Enterprise Admin과 같은 더 높은 수준의 권한에 도달할 수 있기 때문입니다.
이 위협을 완화하는 방법
이 위협을 완화하는 가장 효과적인 방법 중 하나는 모든 계정에 대해 강력한password policy를 적용해 비밀번호 길이 및 복잡성 요구사항을 포함시키는 것입니다. 또한 모든 관리 계정의 비밀번호를 정기적으로 변경하고, 각 시스템의 로컬 관리자 계정에는 고유한 비밀번호를 사용하여 단 하나의 로컬 관리자 계정을 침해당했더라도 공격자가 네트워크 전반으로 마음대로 가로이동(lateral movement)하는 것을 방지해야 합니다.
또한 진행 중인 위협을 시사할 수 있는 의심스러운 사용자 행동이 있는지 IT 환경을 모니터링하는 것도 중요합니다. 조기 탐지는 필수입니다.
권한 상승을 방어하는 방법
해커나 권한을 상승시키려는 악의적인 내부자에 대해 환경을 완전히 보안하는 방법은 없지만, 엔드포인트 운영 체제와 소프트웨어의 공격 표면을 강화하고principle of least privilege를 모든 리소스에 대해 적용하면 권한 상승의 위험을 줄일 수 있습니다. 또한 시도하려는 활동과 관련된 위험에 따라, 상황에 맞게 더 나은 보안을 제공하기 위해 다중 인증(MFA)을 요구해야 합니다. 정기적으로 위험 평가를 수행하여 민감한 파일에 대한 위험을 탐지하고 평가한 다음, 데이터의 가치에 맞춰 데이터를 보호하기 위한 조치를 취하십시오.
많은 기업은 어떤 형태든 privileged access management (PAM) solution 을 사용합니다. Netwrix Privileged Access Management Solution 는 모든 시스템과 애플리케이션 전반에서 권한을 가시성 있게 확인할 수 있도록 해줍니다. 새 권한 계정이 생성되거나 수정될 때 알림을 제공하며, 자신도 모르는 사이에 존재할 수 있는 권한 계정을 찾아냅니다. 간단히 말해, IT 환경 전반에 걸친 권한 관리의 주도권을 여러분에게 맡겨줍니다.
PAM 솔루션에 보안 모범 사례를 준수하는 전략을 결합하면, 권한 상승과 가로 이동(lateral movement)을 차단하여 데이터 손실, 업무 중단, 컴플라이언스(규정 준수) 위반에 따른 불이익을 예방하는 데 도움이 됩니다.
공유하기
더 알아보기
저자 소개
Dirk Schrader
보안 연구 부문 VP
Dirk Schrader는 Netwrix의 레지던트 CISO(EMEA)이며 보안 연구 부문 VP입니다. CISSP (ISC²) 및 CISM (ISACA) 자격증을 보유한 IT 보안 분야 25년 경력의 베테랑으로, 사이버 위협에 대응하는 현대적 접근 방식으로서 사이버 복원력을 발전시키기 위해 노력하고 있습니다. Dirk는 커리어 초기에 기술 및 지원 역할에서 시작해, 이후 대규모 다국적 기업과 소규모 스타트업 모두에서 영업, 마케팅, 제품 관리 직무로 자리를 옮기며 전 세계의 사이버보안 프로젝트에 참여해 왔습니다. 그는 사이버 복원력을 달성하기 위해 변화 관리와 취약점 관리의 필요성을 다룬 수많은 글을 게재해 왔습니다.