윈도우 이벤트 ID 4625 원인과 계정 잠금 해제

윈도우 이벤트 ID 4625는 로그온 요청이 실패했을 때 기록된다. 상태·하위 상태 코드, 로그온 유형, 워크스테이션 이름과 원본 IP 주소를 통해 클라이언트를 파악할 수 있다. 파워쉘로 로컬 계정의 잠금·활성화 상태를 확인하고 자동 잠금 설정을 임시로 해제하는 절차와 보안상 주의점을 설명한다.

이벤트 ID 4625가 발생하는 이유

윈도우 이벤트 로그를 살펴보면 가끔 다음과 같은 보안 감사 이벤트 로그를 볼 수 있다.

Security-Auditing: 4625: AUDIT_FAILURE 계정을 로그온하지 못했습니다. 주체: 보안 ID: S-1-0-0 계정 이름: – 계정 도메인: – 로그온 ID: 0x0 로그온 유형: 3 로그온을 실패한 계정: 보안 ID: S-1-0-0 계정 이름: —— 계정 도메인: – 오류 정보: 오류 이유: 알 수 없는 사용자 이름 또는 잘못된 암호를 사용했습니다. 상태: 0xC000006D 하위 상태: 0xC000006A 프로세스 정보: 호출자 프로세스 ID: 0x0 호출자 프로세스 이름: – 네트워크 정보: 워크스테이션 이름: —— 원본 네트워크 주소: —.—.—.— 원본 포트: —– 인증 세부 정보: 로그온 프로세스: NtLmSsp 인증 패키지: NTLM 전송된 서비스: – 패키지 이름(NTLM 전용): – 키 길이: 0 이 이벤트는 로그온 요청이 실패할 때 액세스하려고 했던 컴퓨터에 생성됩니다. 주체 필드는 로그온을 요청한 로컬 시스템의 계정을 나타냅니다. 이것은 주로 서버 서비스와 같은 서비스 또는 Winlogon.exe나 Services.exe와 같은 로컬 프로세스입니다. 로그온 유형 필드는 요청한 로그온의 유형을 나타냅니다. 가장 일반적인 유형은 2(대화식)와 3(네트워크)입니다. 프로세스 정보 필드는 시스템에서 로그온을 요청한 계정과 프로세스를 나타냅니다. 네트워크 정보 필드는 원격 로그온 요청이 시작된 위치를 나타냅니다. 워크스테이션 이름은 항상 사용할 수 있는 것은 아니며 어떤 경우에는 비워 둘 수도 있습니다. 인증 정보 필드는 이 특정 로그온 요청에 대한 자세한 정보를 제공합니다. – 전송된 서비스는 이 로그온 요청과 관련된 중간 서비스를 나타냅니다. – 패키지 이름은 NTLM 프로토콜 간에 사용된 하위 프로토콜을 나타냅니다. – 키 길이는 생성된 세션 키의 길이를 나타냅니다. 이 값은 요청된 세션 키가 없으면 0이 됩니다.

윈도우의 이벤트 ID 4625는 근본적으로 시스템에 로그온하는 데 실패한 경우 발생한다. 이래저래 복잡하게 써 놨지만, 로그온 실패의 대표적인 원인은 잘못된 ID와 비밀번호를 입력하는 것이고, 결국 한마디로 줄이면 웬 이상한 놈이 들이대고 있으니 조심해라라는 경고이다.

어떤 경우에 윈도우 로그온이 실패하는가?

사실, 윈도우 로그온에 실패하는 것은 ID와 비밀번호만의 문제는 아니다. 이벤트 ID 4625에 함께 기록된 상태 코드를 확인하면 다음과 같이 구체적인 원인을 파악할 수 있다.

0xC000006ASTATUS_WRONG_PASSWORD
사용자 계정은 확인되었지만 입력한 비밀번호가 올바르지 않다.
0xC000006DSTATUS_LOGON_FAILURE
사용자 이름 또는 인증 정보가 올바르지 않아 로그온에 실패했다. 구체적인 원인은 함께 기록된 하위 상태를 확인해야 한다.
0xC0000070STATUS_INVALID_WORKSTATION
해당 사용자에게 로그온이 허용되지 않은 컴퓨터에서 접근했다.
0xC0000071STATUS_PASSWORD_EXPIRED
사용자 계정의 비밀번호가 만료되었다.
0xC0000072STATUS_ACCOUNT_DISABLED
관리자에 의해 비활성화된 계정으로 로그온을 시도했다.
0xC000015BSTATUS_LOGON_TYPE_NOT_GRANTED
해당 사용자에게 요청한 로그온 유형의 권한이 없다. 로컬 로그온, 네트워크 로그온 또는 서비스 로그온 권한 정책을 확인해야 한다.
0xC0000193STATUS_ACCOUNT_EXPIRED
사용자 계정의 사용 기한이 만료되었다. 비밀번호 만료와는 다른 상태이다.
0xC0000195STATUS_NETWORK_CREDENTIAL_CONFLICT
동일한 서버나 공유 자원에 서로 다른 사용자 이름으로 여러 연결을 시도해 자격 증명이 충돌했다.
0xC0000224STATUS_PASSWORD_MUST_CHANGE
사용자가 처음 로그온하기 전에 비밀번호를 변경해야 한다.
0xC0000234STATUS_ACCOUNT_LOCKED_OUT
허용된 횟수보다 많은 잘못된 로그온 또는 비밀번호 변경 시도로 계정이 잠겼다.
0xC0000413STATUS_AUTHENTICATION_FIREWALL_FAILED
인증 방화벽 또는 인증 정책에 의해 해당 계정이 대상 컴퓨터에 인증할 수 없도록 제한되었다.

시스템의 일시적인 오류나 사용자의 실수인 경우도 있지만, 대부분의 경우는 접근하는 방법이나 접근에 필요한 정보가 잘못된 경우인 것을 알 수 있다.

잘못된 접근 시도 주체의 파악

먼저 해야 하는 일은, 잘못된 계정 정보로 계속해서 들이대는 불청객이 누구인가 파악하는 일이다. 이벤트 메시지의 로그온을 실패한 계정, 로그온 유형, 워크스테이션 이름, 원본 네트워크 주소호출자 프로세스 등을 이용해 이 불청객의 정체를 파악해야 한다.

로그온을 실패한 계정
접근 과정에서 실제로 입력되거나 저장된 계정 이름과 계정 도메인이 표시된다.
로그온 유형

어떤 방법으로 로그온을 시도했는지를 나타낸다. 주요 로그온 유형은 다음과 같다.

  • 2 — 해당 PC의 콘솔에서 사용자 로그온이 시도된 경우이다.
  • 3SMB를 이용한 공유 폴더·공유 프린터 또는 NAS 접근 등이 해당한다.
  • 5 — 서비스 로그온으로, Windows 서비스가 지정된 계정으로 실행을 시도한 경우이다.
  • 10 — 원격 데스크톱이나 터미널 서비스를 통한 접근이 해당한다.
워크스테이션 이름
네트워크를 통해 로그온을 시도한 장치의 호스트 이름이 표시된다. 비어 있거나 표시되지 않을 수도 있다.
원본 네트워크 주소
접근을 시도한 장치의 IP 주소가 표시된다. 127.0.0.1이나 ::1이면 해당 컴퓨터 내부에서 발생한 요청이다. 인증 방식에 따라 비어 있을 수 있다.
호출자 프로세스
해당 컴퓨터에서 로그온을 요청한 프로그램의 프로세스 ID와 실행 파일 이름이 표시된다. 원본 네트워크 주소가 없거나 로컬 요청으로 나타난 경우에는 이 정보를 통해 서비스, 예약 작업 또는 다른 프로그램이 이전 계정 정보를 계속 사용하고 있는지 확인할 수 있다.

이러한 정보를 바탕으로 들어와도 되는 놈인지 아닌지를 판단해야 한다. 들어와도 되는 놈이라면 잘못 저장된 계정 정보나 접근 방법을 바로잡으면 되겠지만, 불청객이라면 더 이상 장난질을 치지 못하도록 조치해야 할 것이다.

윈도우 계정 자동 잠금 상태 확인

윈도우 입장에서는 잘못된 접속 정보를 들이대는 이놈이 착한 놈인지 나쁜 놈인지 알 방법이 없다. 그래서 계정을 보호하기 위해 로그온 오류가 일정 횟수 이상 반복되면 해당 계정을 일시적으로 잠가 버린다. 계정이 잠긴 뒤에는 제대로 된 접속 정보를 가져오더라도 접속할 수 없다.

문제는 같은 계정을 다른 장치나 사용자도 사용하고 있다면 정상적인 사용자까지 모두 접속이 불가능해진다는 것이다. ID와 암호를 맞게 입력해도 접속이 되지 않으니 클라이언트에서는 환장할 노릇이다.

일반적인 상황에서는, 보통 10여 분을 기다리고 나면 잠겼던 계정이 다시 풀린다. 하지만, 제대로 된 접속 정보를 준 상태에서도 뭔가 꼬인 클라이언트를 바로잡지 않는다면 풀린 계정은 다시 잠겨 버린다.

본 필자의 경우 리눅스 기반의 QNAP NAS에서 Samba를 이용해 윈도우 시스템을 정기적으로 백업하고 있었다. 윈도우 시스템의 암호를 변경하고 NAS의 접속 정보를 수정했지만 수정한 정보가 제대로 적용되지 않았다. 결국 이전 정보를 가지고 계속 접근을 시도했고 이놈 때문에 계정이 잠겨 다른 클라이언트들도 데이터를 읽어오지 못하는 사태가 벌어졌다.

파워쉘을 실행하고 Get-CimInstance -ClassName Win32_UserAccount -Filter "LocalAccount=True" | Select-Object Name, Disabled, Lockout라고 입력하면 아래와 같이 윈도우 시스템에 등록된 계정 목록과 상태를 확인할 수 있다.

PS C:\Decteng> Get-CimInstance -ClassName Win32_UserAccount -Filter "LocalAccount=True" | Select-Object Name, Disabled, Lockout

Name                Disabled Lockout
----                -------- -------
Administrator           True   False
CodexSandboxOffline    False   False
CodexSandboxOnline     False   False
DefaultAccount          True   False
DectENG                False    True
Guest                   True   False
WDAGUtilityAccount      True   False

PS C:\Decteng>

위의 예에서 DectENG 계정의 Lockout 값이 True로 표시되어 계정이 잠긴 것을 확인할 수 있다.

여기까지 확인했다면 문제를 일으키는 클라이언트를 찾아내고 조치하는 데 필요한 기본 정보는 모두 수집한 셈이다. 그러나 원인을 해결하는 동안에도 다른 클라이언트가 서버에 당장 접근해야 하는 상황이 생길 수 있다.

윈도우 시스템의 공유 데이터가 다른 작업을 계속하는 데 반드시 필요하다면? 혹은 실제로 나쁜 놈이 두드려 대는 상황이지만, 이 서버에 북한이 발사한 핵미사일의 취소 코드가 들어 있다면? 이런 긴급한 경우에는 계정 자동 잠금 기능을 일시적으로 해제해 주어야 한다. (즉, 웬만하면 하지 말란 소리다.)

윈도우 계정 자동 잠금 기능 해제 방법

아래 방법은 잠긴 특정 계정 하나만 풀어 주는 것이 아니라, 해당 컴퓨터의 계정 자동 잠금 정책 자체를 사용하지 않도록 변경하는 방법이다. 잘못된 암호를 아무리 반복해서 입력해도 계정이 잠기지 않게 되므로, 문제를 해결하는 동안에만 임시로 적용해야 한다.

  1. Windows + R을 눌러 실행 창을 띄운다. gpedit.msc를 입력하고 Enter를 눌러 로컬 그룹 정책 편집기를 실행한다.
  2. 로컬 컴퓨터 정책 → 컴퓨터 구성 → Windows 설정 → 보안 설정 → 계정 정책 → 계정 잠금 정책으로 이동한다.
    로컬 그룹 정책 편집기에 계정 잠금 기간 10분, 임계값 10회와 잠금 수 초기화 시간 10분이 표시된 화면
    계정 잠금 정책
  3. 계정 잠금 임계값을 열고 값을 0으로 수정한다.
    계정 잠금 임계값 속성에서 잘못된 로그온 시도 횟수가 0으로 설정된 화면
    계정 잠금 임계값 속성
  4. 적용을 누른 뒤 계정 잠금 기간과 잠금 수 초기화 시간 등 관련 항목이 더 이상 적용되지 않는 상태로 변경되었는지 확인한다.
  5. 확인을 눌러 설정을 저장하고 로컬 그룹 정책 편집기를 닫는다.

계정 잠금 임계값을 0으로 설정하면 로그온 오류가 계속 발생하더라도 계정이 자동으로 잠기지 않는다. 시스템 재부팅은 하지 않아도 적용되지만 도메인에서 계정 잠금 정책을 관리하는 환경에서는 로컬 설정이 도메인 정책에 의해 다시 변경될 수 있다.

이렇게 변경하고 나면 문제의 원인을 찾아 조치하는 동안 계정이 계속해서 다시 잠기는 상황은 막을 수 있다. 일단 시간을 번 것이다. 아무리 나쁜 놈이 들이댄다 하더라도 해당 계정은 잠기지 않는다. 언제까지? 뚫고 들어와서 다 털어 갈 때까지!

계정 자동 잠금 기능을 임시로 해제한 후에는 반드시 최대한 빠르게 문제의 원인을 찾아 해결하고, 계정 잠금 임계값과 관련 설정을 원래 값으로 복구해야 한다.

FAQ

윈도우 시스템 이벤트 ID 4625는 왜 발생하는가?
사용자 또는 프로그램의 윈도우 로그온 요청이 실패했을 때 발생한다. 잘못된 사용자 이름이나 암호가 대표적인 원인이지만, 계정 잠금·비활성화·만료 또는 허용되지 않은 로그온 유형 등으로도 발생할 수 있다. 정확한 원인은 이벤트에 기록된 상태와 하위 상태 코드를 확인해야 한다.
이벤트 ID 4625가 발생하면 외부 공격을 받고 있다는 뜻인가?
반드시 외부 공격이라는 뜻은 아니다. 사용자의 입력 실수뿐만 아니라 NAS, 네트워크 드라이브, 윈도우 자격 증명 관리자, 예약 작업 또는 서비스 등에 이전 암호가 저장되어 있어 반복적으로 발생할 수도 있다. 출처를 알 수 없는 로그온 오류가 짧은 시간 동안 반복된다면 외부 공격 가능성도 함께 조사해야 한다.
로그온을 시도한 클라이언트는 어떻게 찾는가?
이벤트 ID 4625에 기록된 로그온 유형, 워크스테이션 이름과 원본 네트워크 주소를 확인한다. 로그온 유형은 접근 방법을 나타내며, 워크스테이션 이름과 원본 네트워크 주소는 접근을 시도한 장치의 호스트 이름과 IP 주소를 파악하는 데 도움이 된다. 다만 인증 방식과 접속 경로에 따라 일부 항목이 비어 있을 수도 있다.
윈도우 계정이 자동으로 잠기는 이유는?
무차별 대입 공격으로부터 계정을 보호하기 위해서다. 계정 잠금 임계값에 지정된 횟수만큼 잘못된 로그온 시도가 발생하면 윈도우가 해당 계정을 일시적으로 잠근다. 이후 올바른 암호를 입력하더라도 잠금 시간이 끝나거나 관리자가 직접 해제할 때까지 로그온할 수 없다.
파워쉘에서 윈도우 계정의 잠금 상태와 활성화 상태를 확인하는 방법은?
파워쉘(PowerShell, 파워셀·파워셸)에서 Get-CimInstance -ClassName Win32_UserAccount -Filter "LocalAccount=True" | Select-Object Name, Disabled, Lockout을 실행한다. LockoutTrue이면 계정이 잠긴 상태이고, DisabledTrue이면 계정 자체가 비활성화된 상태이다. 활성화된 계정도 별도로 잠길 수 있으므로 두 값을 구분해서 확인해야 한다.
윈도우 계정이 잠겼을 때 즉시 해제하는 방법은?
로컬 계정은 관리자 권한으로 lusrmgr.msc를 실행한 뒤 해당 사용자의 속성에서 ‘계정이 잠겨 있음’을 해제한다.
윈도우 계정이 자동으로 잠겼을 경우 풀리는 시간은?
기본 설정에서는 보통 10분 후 자동으로 풀리지만, 실제 잠금 시간은 해당 컴퓨터나 도메인에 적용된 계정 잠금 기간 정책에 따라 달라질 수 있다. 계정 잠금 기간이 0이면 관리자가 직접 해제할 때까지 잠금이 유지된다. 이는 계정 잠금 임계값을 0으로 설정해 자동 잠금 기능을 사용하지 않는 것과는 다른 설정이다.
윈도우 계정의 자동 잠금 설정을 해제하는 방법은?
gpedit.msc를 실행하고 로컬 컴퓨터 정책 → 컴퓨터 구성 → Windows 설정 → 보안 설정 → 계정 정책 → 계정 잠금 정책으로 이동한다. 여기에서 계정 잠금 임계값을 0으로 설정하면 잘못된 로그온 시도가 반복되어도 계정이 자동으로 잠기지 않는다. 이 설정은 특정 계정 하나가 아니라 해당 정책의 적용을 받는 모든 계정에 영향을 주므로 임시로만 사용해야 한다.
gpedit.msc를 입력해도 실행되지 않는 이유는?
로컬 그룹 정책 편집기는 Windows Pro·Enterprise·Education과 Windows Server에서 제공되며 Windows Home에는 기본적으로 포함되지 않는다. 또한 도메인 그룹 정책으로 설정을 관리하는 컴퓨터에서는 로컬 그룹 정책을 변경하더라도 도메인 정책에 의해 무시되거나 다시 변경될 수 있다.
윈도우 계정 자동 잠금 기능을 해제하면 안 되는 이유는?
계정 자동 잠금은 무차별 대입 공격을 지연시키는 중요한 방어 수단이다. 계정 잠금 임계값을 0으로 설정하면 공격자가 암호를 알아낼 때까지 로그온을 계속 시도할 수 있으므로 시스템 탈취 위험이 커진다. 긴급한 상황에서만 임시로 사용하고, 문제의 원인을 해결한 뒤 최대한 빠르게 원래 설정으로 복구해야 한다.

갱신 내역

  • 최초 게시
  • 수정
  • 예시 수정 및 주소 이전 (https://www.EQMaker.kr/)