요약
CVE-2021-42278은 잠재적인 공격자가 컴퓨터 계정 sAMAccountName 스푸핑을 사용하여 도메인 컨트롤러를 가장할 수 있는 보안 우회 취약성을 해결합니다.
이 문서에서는 CVE-2021-42278에설명된 2021년 11월 9일 이후의 업데이트에서 변경한 변경 내용을 SAM(Active Directory Security Accounts Manager Windows)에 대한 추가 세부 정보 및 자주 묻는 질문 섹션을 제공합니다.
Active Directory 유효성 검사
CVE-2021-42278을설치한 후 Active Directory는 컴퓨터 계정에 대한 관리자 권한이 없는 사용자가 만들거나 수정한 컴퓨터 계정의 sAMAccountName 및 UserAccountControl 특성에 아래에 나열된 유효성 검사 검사를 수행합니다.
-
사용자 및 컴퓨터 계정에 대한 sAMAccountType 유효성 검사
-
ObjectClass=Computer(또는 컴퓨터의 하위클래스) 계정에는 사용자AccountControl 플래그가 UF_WORKSTATION_TRUST_ACCOUNT UF_SERVER_TRUST_ACCOUNT
-
ObjectClass=User에는 UAC 플래그가 UF_NORMAL_ACCOUNT UF_INTERDOMAIN_TRUST_ACCOUNT
-
-
컴퓨터 계정에 대한 sAMAccountName 유효성 검사
UserAccountControl 특성이 포함된 컴퓨터 계정의 sAMAccountName에 UF_WORKSTATION_TRUST_ACCOUNT 플래그는 1달러 기호($)로 종료해야 합니다. 이러한 조건이 충족되지 않을 경우 Active Directory는 오류 코드를 0x523 ERROR_INVALID_ACCOUNTNAME. 실패한 유효성 검사는 System 이벤트 로그에 Directory-Services-SAM 이벤트 ID 16991에 기록됩니다.
이러한 조건이 충족되지 않을 경우 Active Directory는 오류 코드를 ACCESS_DENIED. 실패한 유효성 검사는 System 이벤트 로그에 Directory-Services-SAM 이벤트 ID 16990에 기록됩니다.
이벤트 감사
개체 클래스 및 UserAccountControl 유효성 검사 실패
개체 클래스 및 UserAccountControl 유효성 검사가 실패하면 다음 이벤트가 시스템 로그에 기록됩니다.
이벤트 로그 |
시스템 |
이벤트 유형 |
오류 |
이벤트 원본 |
Directory-Services-SAM |
이벤트 ID |
16990 |
이벤트 텍스트 |
보안 계정 관리자는 비 관리자가 불일치된 objectClass 및 userAccountControl 계정 형식 플래그를 통해 이 도메인에서 Active Directory 계정을 만들지 않습니다. 세부 정보: 계정 이름: %1%n 계정 개체Class: %2%n userAccountControl: %3%n 발신자 주소: %4%n 호출자 SID: %5%n%n%n |
SAM 계정 이름 유효성 검사 실패
SAM 계정 이름 유효성 검사가 실패하면 다음 이벤트가 시스템 로그에 기록됩니다.
이벤트 로그 |
시스템 |
이벤트 유형 |
오류 |
이벤트 원본 |
Directory-Services-SAM |
이벤트 ID |
16991 |
이벤트 텍스트 |
보안 계정 관리자는 관리자가 잘못된 sAMAccountName을 사용하여 컴퓨터 계정을 만들거나 이름을 변경하지 않습니다. 컴퓨터 계정의 sAMAccountName은 단일 후행 $ 기호로 끝내야 합니다. 시도된 sAMAccountName: %1 권장 sAMAccountName: %1$ |
성공적인 컴퓨터 계정 생성 감사 이벤트
다음 기존 감사 이벤트는 성공적인 컴퓨터 계정 만들기에 사용할 수 있습니다.
자세한 내용은 컴퓨터 계정 관리 감사를 참조하세요.
자주 묻는 질문
Q1. 이 업데이트는 Active Directory의 기존 개체에 어떤 영향을 미치나요?
A1. 기존 개체의 경우 관리자 권한이 없는 사용자가 sAMAccountName 또는 UserAccountControl 특성을 수정하는 경우 유효성 검사가 발생합니다.
Q2. sAMAccountName이란?
A2. sAMAccountName은 Active Directory의 모든 보안 주체에 대한 고유한 특성으로 사용자, 그룹 및 컴퓨터를 포함합니다. sAMAccountName의 이름 제약 조건은 업데이트 시작에 대한 3.1.1.6특성 제약 조건에 설명되어 있습니다.
Q3. sAMAccountType이란?
A3. 자세한 내용은 다음 문서를 읽어 주세요.
다음과 같이 가능한 4개의 UserAccountcontrol 플래그에 해당하는 세 가지 sAMAccountType 값이 있습니다.
userAccountControl |
sAMAccountType |
---|---|
UF_NORMAL_ACCOUNT |
SAM_USER_OBJECT |
UF_INTERDOMAIN_TRUST_ACCOUNT |
SAM_TRUST_ACCOUNT |
UF_WORKSTATION_TRUST_ACCOUNT |
SAM_MACHINE_ACCOUNT |
UF_SERVER_TRUST_ACCOUNT |
SAM_MACHINE_ACCOUNT |
Q4. UserAccountControl에 대한 가능한 값은 무엇입니까?
A4. 자세한 내용은 다음 문서를 읽어 주세요.
Q5. 내 환경에 이미 있는 비준수 개체를 어떻게 찾을 수 있나요?
A5. 관리자는 아래 예제와 같은 PowerShell 스크립트를 사용하여 기존 비준수 계정에 대한 디렉터리를 검색할 수 있습니다.
비준수 sAMAccountName이있는 컴퓨터 계정을 찾으면 다음을 실행합니다.
Get-ADComputer -LDAPFilter "(samAccountName=*)" |? SamAccountName -NotLike "*$" | select DNSHostName, Name, SamAccountName |
비준수 UserAccountControl sAMAccountType이 있는 컴퓨터 계정을 찾으면 다음을 실행합니다.
Get-ADComputer -LDAPFilter "UserAccountControl:1.2.840.113556.1.4.803:=512” |