Microsoft의 기본 제공 암호 순환 메커니즘은 머신 계정과 같은 온프레미스 비인간 신원(NHI)을 보호하도록 설계되었습니다. Active Directory (광고). 표면적으로는 자동화되고, 예약되고, 체계적으로 구성되어 보안 위험을 최소화하는 강력한 방어 체계처럼 보입니다. 그러나 이러한 안전 장치가 무력화되어 공격자가 지속적인 발판을 마련할 수 있습니다.
공격자는 중간자 공격(MITM)을 통해 전체 환경 또는 특정 머신 계정의 순환 프로세스를 조작할 수 있습니다. 또한, 공격자는 머신 계정의 비밀번호를 탈취하고 직접 변경하여 순환 프로세스를 완전히 우회할 수 있으며, 이를 통해 네트워크 트래픽을 방해하지 않고 순환 메커니즘을 하이재킹할 수 있습니다.
공격자는 시간 동기화를 조작하거나 비밀번호를 직접 수정하여 방해하거나 비밀번호 순환 프로세스를 제어하세요시간 조작은 예정된 회전을 방지하고, 직접 수정은 특정 계정에 대한 제어권을 부여합니다. 두 가지 모두 장기적인 지속성을 가능하게 하고 탐지를 회피합니다.
온프레미스 NHI의 보안 제어
서비스 계정 온프레미스 AD 환경에서 애플리케이션, 서비스 및 자동화된 작업을 실행하는 데 사용되는 비인간적인 신원입니다. 이러한 계정은 종종 변경되지 않는 정적 비밀번호를 사용하여 심각한 보안 위험을 초래합니다. 공격자는 이러한 자격 증명을 다음과 같은 용도로 사용할 수 있습니다.
- 도난 및 측면 운동: 계정의 권한을 활용해 측면 이동합니다.
- 권한 에스컬레이션: 상승된 권한을 통해 관리 액세스 권한을 얻습니다.
- 장기 지속성: 감지나 만료 없이 액세스를 유지합니다.
이러한 위험을 완화하기 위해 비밀번호 순환을 통해 계정 자격 증명이 주기적으로 변경됩니다. 비밀번호 순환을 구현하는 계정에는 두 가지 주요 유형이 있습니다.
- 머신 계정: 도메인에 가입된 컴퓨터를 나타냅니다. 암호 변경은 로컬 운영 체제에서 관리합니다.
- 관리 서비스 계정(MSA): 서비스 및 애플리케이션을 위해 설계되었으며, 암호 순환은 도메인 컨트롤러(DC)에서 시행됩니다.
| 계정 유형 | 목적 | 로테이션을 관리하는 사람은 누구인가요? |
| 기계 계정 | 컴퓨터 인증 도메인 내에서 | 로컬 운영 시스템 |
| 독립형 MSA | 단일 서버 애플리케이션 인증 | 도메인 컨트롤러(DC) |
| 그룹 MSA(gMSA) | 여러 대의 컴퓨터에서 공유됨 | 도메인 컨트롤러(DC) |
| 위임된 MSA | 위임된 관리자 제어를 통한 gMSA 확장 | 도메인 컨트롤러(DC) |
공격자는 계정 유형별로 회전 메커니즘을 다르게 악용하므로 이러한 차이점을 이해하는 것이 중요합니다. 예를 들어, 머신 계정은 MS-SAMR과 같은 RPC 방식을 통해 탈취될 수 있는 반면, MSA는 DC 회전 프로세스를 조작해야 합니다.
공격 벡터 1: 머신 계정 비밀번호 순환 비활성화
In Active Directory머신 계정 암호 교체는 일반적으로 도메인에 가입된 Windows 호스트인 클라이언트 시스템에서 담당합니다. 로컬 운영 체제는 기본적으로 30일마다 머신 계정 암호를 자동으로 교체합니다. 이를 위해 RPC를 통해 MS-SAMR(Security Account Manager Remote Protocol)을 사용하여 도메인 컨트롤러(DC)와 원격으로 통신합니다.
이 프로토콜은 사용자 및 컴퓨터 계정을 관리하기 위한 일련의 관리 작업을 제공합니다. Active Directory클라이언트가 원격 암호 업데이트를 수행하는 데 사용하는 주요 기능 중 하나는 hSamrUnicodeChangePasswordUser2입니다. 이 기능을 통해 인증된 클라이언트는 디렉토리에 있는 해당 컴퓨터 계정과 연결된 암호를 변경할 수 있습니다.
공격의 메커니즘
하지만 이 메커니즘은 해킹될 수 있습니다. 공격자가 컴퓨터 계정에 접근하면 MS-SAMR을 사용하고 hSamrUnicodeChangePasswordUser2를 특별히 호출하여 계정 비밀번호를 직접 수정할 수 있습니다. Active Directory원래 클라이언트에 알리거나 개입하지 않고도 발생합니다. 이로 인해 도메인에 가입된 컴퓨터와 DC 간의 동기화가 끊어지고, 공격자가 자격 증명을 제어하고 합법적인 호스트가 차단되는 일방적인 신뢰 관계가 형성됩니다.
이로 인해 머신과 DC 간의 신뢰가 손상됩니다. 각 서버는 비밀번호 사본을 저장하며, 무단 수정 시 불일치가 발생합니다. AD 객체는 무기한 유효 상태를 유지하여 지속적인 액세스를 보장합니다.
회전이 비활성화되면 더 이상 비밀번호를 변경하지 않더라도 계정은 유효 상태로 유지됩니다. 신뢰 관계가 깨지면 손상된 컴퓨터를 사용할 수 없게 됩니다.
시간 공격을 이용한 비밀번호 순환 조작
서비스 자격 증명 보안을 강화하기 위해 Microsoft는 Windows Server 2008 R2에 독립형 MSA를 도입했습니다. MSA는 암호 관리를 위해 DC에 의존하지만, 이러한 중앙 집중화는 새로운 공격 경로를 야기합니다.
공격자는 DC 또는 서비스 호스트의 시스템 시간을 조작하여 예약된 비밀번호 변경을 지연시킬 수 있습니다. AD는 타임스탬프를 사용하므로, 시간을 거꾸로 돌리면 변경이 지연되고 접근 권한이 유지됩니다.
시간이 비밀번호 순환에 미치는 영향
Active Directory PwdLastSet 속성을 사용하여 계정의 자격 증명이 마지막으로 교체된 시점을 확인합니다. 이 타임스탬프는 비밀번호 만료 정책을 적용하는 데 중요합니다. 정확한 시간 동기화는 비밀번호 정책을 포함한 AD 작업에 필수적입니다. Kerberos 입증.
시간 동기화에서 NTP의 역할
기업은 일반적으로 시간 정확도를 위해 외부 NTP에 의존합니다. Windows는 기본적으로 NTP 버전 3을 사용하는데, 이 버전에는 메시지 무결성 보호 기능이 없습니다.
Windows 시간 동기화(w32tm) 개요
Windows 시간 서비스(w32tm)는 도메인 시간을 동기화합니다. 이 경우 도메인 컨트롤러는 두 가지 역할을 합니다.
- 도메인 구성원에게 시간을 분배하는 시간 서버 역할을 합니다.
- 시간 클라이언트로서 외부 NTP 서버와 동기화합니다.
주요 보안 매개변수는 다음과 같습니다.
- MaxPosPhaseCorrection 및 MaxAllowedPhaseOffset: 동기화당 허용되는 최대 시간 조정 횟수입니다.
- 보안 시간 시딩(STS): 변조 감지를 위해 TLS 타임스탬프를 사용하지만, 특히 TLS 1.3 이후 버전에서는 제한적입니다.
도메인 시간 조작을 통한 비밀번호 순환 방해
DC와 NTP 소스 간의 MITM 공격은 감지되지 않고 DC의 시간을 점차적으로 변경할 수 있습니다. w32tm은 동기화당 최대 48시간의 수정을 허용하며, 64초마다 업데이트됩니다.
공격 벡터 2: MSA 비밀번호 순환의 시간 조작
공격자는 먼저 DC의 시계를 조작한 후 다음 방법 중 하나를 통해 비밀번호 순환을 트리거합니다.
- 직접 요청: 관리 서비스 계정에 대한 권한이 있는 사용자 또는 서비스입니다.
- 내추럴 트리거: 관리 서비스 계정이 자연스럽게 재인증되도록 허용합니다.
시스템 시간이 인위적으로 앞당겨진 상태에서 자격 증명이 순환되면 PwdLastSet에 해당 미래 타임스탬프가 반영됩니다. 시계를 되돌리면 다음 예정된 순환이 지연되어 강제 적용이 필요 없게 됩니다.
주요 장점
모든 도메인 구성원은 DC와 동기화되어 Kerberos 인증을 유지하고 탐지를 최소화합니다. 이러한 동기화는 엔드포인트 시스템의 시간 조작을 차단하여 은폐성과 서비스 연속성을 보장합니다.
공격의 결과
이러한 공격은 타임스탬프 조작을 통해 만료 제어를 우회하여 환경 내에서 장기간 지속될 수 있습니다. 공격자가 시간 설정이 변경된 자격 증명을 교체하면, 후속 롤백을 통해 추가 교체가 차단되어 보안 적용이 사실상 무효화됩니다. 손상된 계정 유효한 토큰을 사용하여 감지되지 않고 계속 작동합니다.
이러한 시간 기반 조작은 지속성 외에도 암호 정책을 우회하고 잠재적인 권한 상승을 가능하게 합니다. 시스템 클럭 롤백은 간헐적인 서비스 장애 및 인증 문제를 야기하여 운영 중단을 유발하고 탐지를 더욱 어렵게 만들 수 있습니다.
완화 전략
조직에서는 메시지 무결성과 인증을 지원하는 NTPv4와 같은 인증된 NTP 프로토콜을 사용하여 안전한 시간 동기화를 구현해야 합니다. 중요한 이벤트 로그를 모니터링하면 비정상적인 동작을 감지하는 데에도 도움이 될 수 있습니다.: 이벤트 ID 4616(시간 변경을 나타냄)과 이벤트 ID 4742(컴퓨터 계정의 비밀번호 변경을 나타냄)가 특히 관련이 있습니다.
또한, 서비스 및 머신 계정 전반에 걸쳐 비정상적인 PwdLastSet 패턴에 대한 모니터링을 구현하십시오. 이러한 지표는 순환 일정을 조작하거나 은밀한 접근을 유지하려는 시도를 파악할 수 있습니다. 이러한 조치를 통해 시간 기반 은밀 공격의 위험을 크게 줄일 수 있습니다.

