Windows 로컬 보안 정책 - 이벤트 로그로 계정 보안 정책 로그 찾아보기

eoyan·2026년 9월 19일

보안

목록 보기
1/6
post-thumbnail

윈도우에서는 이벤트 뷰어로 해당 윈도우 계정에서 일어났던 이벤트들을 확인하고 어떤 계정에서 어떤 이벤트가 발생하였는지 추적 확인을 해볼 수 있다. 계정을 생성하고 로그인을 하거나 비밀번호를 잘못 쳐서 로그인에 실패했던 행위까지 하나하나 이벤트 로그에 기록이 된다.

윈도우가 대표적으로 감사하는 항목은 다음과 같다.

  • 로그온 이벤트: 계정의 로그인/로그오프 성공,실패를 한 이력
  • 계정 관리 감사: 계정 생성/삭제/변경을 한 이력
  • 개체 액세스 감사: 파일이나 폴더에 접근을 한 이력
  • 정책 변경 감사: 보안 정책 변경을 한 이력
  • 권한 사용 감사: 특정 권한을 사용한 이력
  • 시스템 이벤트 감사: 시스템 시작/종료 이력

이 중에서 내가 보고싶은 특정 이벤트들만 필터링을 하여 볼 수도 있다.

어떤 정책을 감시할것인지는 로컬 보안 정책에서 정할 수 있다.

실습

계정을 임시로 생성하여 로그인 시도를 한 뒤, 이벤트 뷰어에 해당 내용들이 기록이 되는지 간단히 테스트를 진행 해볼 수 있다.

CMD를 열고 계정 관리 명령을 무심코 실행시키면 "액세스가 거부되었습니다."라는 오류가 발생할 수 있는데 계정을 만들기 위해서는 관리자 권한이 필요하므로 반드시 CMD를 관리자 권한으로 열어주어야 한다.

계정 생성은 net user [계정명] [계정 비밀번호] /add 로 만들어준다.
(생성한 계정을 관리자 그룹에 추가하는 것은 net localgroup administrators [계정명] /add 로 진행한다.)

그런다음 의도적으로 로그인 후 비밀번호를 틀리고, 재로그인하여

Win+R > eventvwr.msc> Windows로그 > 보안 에 들어가 4625 이벤트가 발생하였는지 확인 해볼 수 있다.

참고로 4732을 필터링하면 그룹 추가에 대한 이벤트로그도 확인 할 수 있다.

다음 스크립트는 최근 10회의 로그인 실패 이벤트를 출력한다.

Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    Id = 4625
} -MaxEvents 10 | ForEach-Object {
    $xml = [xml]$_.ToXml()
    $eventData = $xml.Event.EventData.Data

    [PSCustomObject]@{
        TimeCreated = $_.TimeCreated.ToString("yyyy-MM-dd HH:mm:ss")
        TargetUser  = ($eventData | Where-Object { $_.Name -eq 'TargetUserName' }).'#text'
        LogonType   = ($eventData | Where-Object { $_.Name -eq 'LogonType' }).'#text'
        IpAddress   = ($eventData | Where-Object { $_.Name -eq 'IpAddress' }).'#text'
        Status      = ($eventData | Where-Object { $_.Name -eq 'Status' }).'#text'
        SubStatus   = ($eventData | Where-Object { $_.Name -eq 'SubStatus' }).'#text'
    }
} | Format-Table -AutoSize

LogonType 은 '로그인 접근 방식'이다.
(2는 키보드로 직접 입력, 3은 네트워크 파일 공유, 10은 원격 데스크톱)
대부분 2로 표기된다.

0개의 댓글