Netwrix 1Secure는 데이터와 아이덴티티 전반에 걸쳐 통합된 가시성을 제공합니다 - 14일간 무료로 전체 액세스가 가능합니다.무료 평가판 시작

리소스 센터블로그

WDigest 평문 비밀번호: 해시 그 이상을 훔치기

WDigest 평문 비밀번호: 해시 그 이상을 훔치기

Dec 18, 2024

WDigest란 무엇입니까?

다이제스트 인증(Digest Authentication)은 주로 Windows Server 2003에서 LDAP 및 웹 기반 인증에 사용되던 challenge/response 프로토콜입니다. 인증을 위해 Hypertext Transfer Protocol (HTTP)과 Simple Authentication Security Layer (SASL) 교환을 활용합니다.

큰 그림에서 보면, 클라이언트가 어떤 것에 대한 액세스를 요청하고, 인증 서버가 클라이언트에 챌린지를 제시한 다음, 클라이언트는 비밀번호에서 파생된 키로 응답을 암호화하여 해당 챌린지에 응답합니다. 암호화된 응답은 인증 서버에 저장된 응답과 비교되어 사용자가 올바른 비밀번호를 입력했는지 판단합니다. Microsoft는 WDigest에 대해 훨씬 더 자세한 in-depth explanation of WDigest를 제공합니다.

WDigest는 어떤 보안 위험을 도입하나요?

WDigest는 메모리에 일반 텍스트 비밀번호를 저장합니다. 따라서 엔드포인트에 액세스할 수 있는 공격자가 Mimikatz 같은 도구를 사용해 메모리에 저장된 해시뿐만 아니라 일반 텍스트 비밀번호도 가져올 수 있습니다. 그 결과, 공격자는 Pass-the-Hash 같은 공격에만 국한되지 않고, 사용자 ID와 비밀번호를 입력해야 하는 Exchange, 내부 웹 사이트 및 기타 리소스에도 로그인할 수 있습니다.

예를 들어, 사용자 “TestA”가 원격 데스크톱을 사용해 한 머신에 로그인한 다음 비밀번호를 메모리에 남겨두었다고 가정해 보겠습니다. 아래 스크린샷은 Mimikatz를 사용해 해당 머신의 메모리에서 자격 증명을 덤프할 때 공격자가 보게 되는 내용을 보여줍니다. 보시는 것처럼 공격자는 계정의 NTLM 비밀번호 해시와 함께 일반 텍스트 비밀번호 “Password123”도 모두 얻습니다.

WDigest Clear-Text Passwords 1

이 위험을 완화하기 위해 무엇을 할 수 있나요?

다행히도 Microsoft는 보안 업데이트(KB2871997)를 릴리스했으며, 이를 통해 조직은 레지스트리 설정을 구성해 WDigest가 메모리에 일반 텍스트 비밀번호를 저장하지 못하도록 할 수 있습니다. 하지만 그렇게 하면 WDigest가 동작하지 않게 되므로 Microsoft는 먼저 환경에서 Digest 인증이 사용되는지 확인해 볼 것을 권장합니다. 서버의 이벤트 로그에서 이벤트 ID 4624 를 확인하고, 도메인 컨트롤러 로그에서 이벤트 ID 4776 를 확인해 어떤 사용자가 ‘Authentication Package: WDigest’로 로그인했는지 확인하십시오. 그러한 이벤트가 전혀 없다는 것이 확실해지면, 환경에 영향을 주지 않고 레지스트리 변경을 적용할 수 있습니다.

Windows 7, Windows 8, Windows Server 2008 R2 및 Windows Server 2012

Windows 7, Windows 8, Windows Server 2008 R2 및 Windows Server 2012의 경우, 업데이트 KB2871997 를 설치한 다음, 아래 레지스트리 키를 0으로 설정합니다:

WDigest Clear-Text Passwords 2

가장 쉬운 방법은 Group Policy 를 사용하는 것이지만, 다음 스크립트도 동작합니다:

      reg add
HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v
UseLogonCredential /t REG_DWORD /d 0
      

Windows 및 Windows Server의 이후 버전

Windows 및 Windows Server의 이후 버전에서는 보안 업데이트가 필요하지 않으며, 레지스트리 값은 기본적으로 0으로 설정됩니다. 하지만 다음 스크립트를 사용해 값이 수동으로 변경되지 않았는지 확인해야 합니다:

      reg query
HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v
UseLogonCredential
      

결과

이 레지스트리 값이 0으로 설정되면, 메모리에서 자격 증명을 덤프하려는 공격자는 평문 비밀번호를 얻지 못합니다. 대신, 공격자는 다음을 보게 됩니다:

WDigest Clear-Text Passwords 3

참조 차트

다음 차트를 참고하면 엔드포인트에서 조치를 취해야 하는지 판단하는 데 도움이 됩니다:

WDigest Clear-Text Passwords 4

간단 요약

WDigest는 메모리에 평문 자격 증명을 저장하며, 공격자가 이를 탈취할 수 있습니다. Microsoft의 보안 업데이트 KB2871997 는 레지스트리 값을 설정할 수 있도록 하여 Windows 및 Windows Server의 이전 버전에서 발생하는 문제를 해결하며, 최신 버전에는 기본적으로 적절한 값이 적용되어 있습니다.

자격 증명 탈취는 민감한 정보의 손실로 이어질 수 있으므로, 모든 Windows 엔드포인트에서 이 레지스트리 설정을 확인하는 것이 최우선 과제가 되어야 합니다. 이를 수행하는 방법 중 하나는 모든 호스트에 대해 명령줄 쿼리를 실행하는 것입니다. 더 빠른 방법은 결과를 이해하기 쉬운 보고서 형태로 제공하는 감사(어드먼트) 솔루션으로 프로세스를 자동화하는 것입니다.

Netwrix는 어떻게 도와줄 수 있나요?

Netwrix Access Analyzer 는 Windows 인프라의 보안을 강화하고 데이터 침해 위험을 최소화하는 데 도움이 됩니다. 이를 통해 다음을 수행할 수 있습니다.

  • 공격자가 Windows 시스템을 손상시키고 데이터에 접근하는 데 악용할 수 있는 취약점을 식별합니다.
  • 기준 구성 분석을 통해 보안 및 운영 정책을 강제 적용합니다.
  • 특권 계정을 감사하고 관리합니다.
  • 사전 구축된 리포트와 완전한 시스템 투명성으로 컴플라이언스를 더 쉽게 입증하세요.

Netwrix Access Analyzer

공유하기

더 알아보기

저자 소개

Asset Not Found

Kevin Joyce

제품 관리 책임자

Netwrix의 제품 관리( Product Management ) 책임자입니다. Kevin은 사이버 보안에 대한 열정이 있으며, 특히 공격자들이 조직 환경을 악용하기 위해 사용하는 전술과 기술을 이해하는 데 집중합니다. Active Directory 및 Windows 보안에 초점을 맞춰 제품 관리 분야에서 8년의 경험을 쌓아, 조직이 Identity, 인프라 및 데이터를 보호할 수 있도록 솔루션을 구축하는 데 그 열정을 더했습니다.