Step 11. 레지스트리 탐구 — 윈도우의 금고 열어보기

Step 11. 레지스트리 탐구 — 윈도우의 금고 열어보기

Level 0 — 컴퓨터 조작과 구조의 이해 | 난이도 ★★★☆☆ | 예상 소요 시간 2~3시간

전제: Step 10 완료. 윈도우 파워쉘에서 진행합니다. 인터넷 연결은 미션의 검색 단계에서만 필요합니다.

  • 준비물: 윈도우 PC, 파워쉘. 레지스트리 편집기(regedit)는 3-4절에서 보기만 합니다.
  • 주의: 오늘 실습은 전부 읽기입니다. 쓰기 명령은 한 번도 나오지 않습니다. 레지스트리를 함부로 바꾸면 부팅이 안 될 수도 있어서, 집 컴퓨터를 대상으로 한 레지스트리 수정 실습은 이 책 어디에도 없습니다. 오늘 실습은 그 조건에서 100% 안전합니다.

컴퓨터 포렌식 드라마에는 이런 대사가 나옵니다. "이 프로그램, 부팅할 때마다 자동 실행되도록 등록되어 있어." 조사관은 그걸 어디서 본 걸까요? 바로 레지스트리(registry) — 윈도우의 모든 설정이 모인 데이터베이스입니다. 그리고 악성코드가 "컴퓨터를 껐다 켜도 살아남기" 위해 가장 많이 손대는 곳이기도 합니다. 오늘 우리는 그 금고를 직접 열어 보고, 침해 조사 매뉴얼의 첫 페이지에 있는 점검을 그대로 해 봅니다.


1. 학습 목표

이 챕터를 끝내면 다음을 할 수 있습니다:

  • 레지스트리를 "키와 값의 트리 구조"로 설명한다
  • HKCU와 HKLM의 차이를 설명하고, 어느 쪽을 봐야 할지 판단한다
  • Get-ChildItemGet-ItemProperty로 레지스트리를 탐색한다
  • Run 키에서 시작프로그램 목록을 조회하고, 각 항목의 정체를 확인하는 절차를 밟는다
  • regedit(GUI)와 파워쉘이 "같은 데이터를 보는 두 개의 창"임을 확인한다

2. 배경 지식 — 오늘의 도구와 개념

오늘의 도구 한눈에 보기

구분 내용
언어·환경 파워쉘 5.1 (윈도우 기본 내장) + 레지스트리 편집기(regedit, GUI)
오늘의 명령어 Get-ChildItem HKCU:\...(키 구조 탐색), Get-ItemProperty "...Run"(값 읽기), regedit(GUI로 보기)
필요한 개념 레지스트리의 트리 구조, 키(key)와 값(value), 하이브(HKCU/HKLM), 지속성(Persistence)

2-1. 레지스트리 — 윈도우의 설정 데이터베이스

레지스트리는 윈도우와 프로그램들의 "기억"이 전부 저장된 곳입니다. 배경 화면 설정, 설치된 프로그램 목록, 자동 실행 명단까지 전부 여기 있습니다. 구조는 파일 탐색기와 정확히 대응됩니다:

파일 탐색기 레지스트리
폴드 키(key) — 가지
파일 값(value) — 잎에 달린 데이터
경로 C:\Users\Lee 경로 HKCU:\Software\Microsoft\...

최상단에는 다섯 개의 큰 줄기(하이브, hive)가 있습니다. 오늘 필요한 건 두 개입니다:

  • HKCU (HKEY_CURRENT_USER) — 현재 로그인한 사용자의 설정
  • HKLM (HKEY_LOCAL_MACHINE) — 컴퓨터 전체의 설정. 읽기조차 관리자 권한이 필요한 구역이 있습니다

내 계정 설정(HKCU)은 내가 자유롭게 볼 수 있지만, 컴퓨터 전체 설정(HKLM)의 민감한 구역은 운영체제가 잠가 둡니다. 3-6절과 벽 4에서 이 잠금을 직접 만나게 됩니다.

이 창고는 윈도우 95 시절부터 이어진 30년 가까운 시스템이라, 안에는 지워진 프로그램이 남긴 빈 키 같은 "화석"도 섞여 있습니다. 탐색하다 낯선 이름의 키를 만나도 대부분은 무해한 화석입니다. 문제는 악성코드가 이 화석들 사이에 자기 흔적을 섞어 둔다는 것 — 그래서 조사의 기본 질문은 언제나 같습니다. "이걸 내가 아는가? 평소의 모습과 같은가?" 이 질문은 레지스트리를 넘어 프로세스, 네트워크 연결, 로그까지 모든 조사에 통하는 만능 열쇠입니다.

2-2. 키와 값 — 가지와 잎

키(폴드에 해당) 안에는 들이 매달려 있습니다. 값은 이름 = 데이터 쌍입니다:

키: HKCU:\Software\Microsoft\Windows\CurrentVersion\Run
  ├─ OneDrive   = "C:\...\OneDrive.exe" /background
  ├─ KakaoTalk  = "C:\...\KakaoTalk.exe" -bystartup
  └─ ...

이 키의 의미: "로그인할 때 이 목록의 프로그램들을 자동 실행해라." 윈도우의 시작프로그램 명단이 바로 여기 있습니다. 왼쪽이 값의 이름, 오른쪽이 실행될 프로그램의 경로입니다.

2-3. 왜 공격자가 여길 노리는가 — 지속성(Persistence)

악성코드의 생존 전략 첫 번째: 컴퓨터가 꺼졌다 켜져도 다시 실행되어야 합니다. 이걸 보안 용어로 지속성(Persistence)이라 합니다. 가장 고전적인 방법이 Run 키에 자기 경로를 몰래 한 줄 끼워 넣는 것입니다.

수비 쪽의 대응도 정해져 있습니다: Run 키를 보고, 모르는 항목이 있으면 의심한다. 단순하지만 이 점검이 수많은 악성코드를 잡아냅니다. 침해 조사 매뉴얼의 첫 페이지에 있는 질문이 정확히 이것입니다 — "이 키에 모르는 항목이 있는가?" 오늘 그 점검을 직접 합니다.


3. 따라 하기

3-1. 레지스트리 드라이브 — HKCU:\ 탐색

파워쉘은 레지스트리를 드라이브처럼 탐색하게 해 줍니다. C: 드라이브처럼 HKCU:, HKLM: 드라이브가 준비되어 있습니다:

Get-ChildItem HKCU:\
    Hive: HKEY_CURRENT_USER

Name                           Property
----                           --------
AppEvents
Console                        ForceV2         : 1
Control Panel
Environment                    Path             : C:\Users\dlqht\...
Software
System
Uninstall
Volatile Environment           USERNAME         : dlqht
...

(2026-09-09 실측. 일부 항목은 생략했고, 여러분 컴퓨터의 목록은 설치된 프로그램에 따라 다릅니다.)

출력 읽는 법: Step 2에서 Get-ChildItem C:\를 한 것과 같은 모양입니다. 폴드 대신 키가 나열될 뿐입니다. 오른쪽 Property 열은 그 자리에 직접 매달린 값들입니다.

한 단계 더 들어가 봅시다:

Get-ChildItem "HKCU:\Software" | Select-Object -First 12 Name
Name
----
HKEY_CURRENT_USER\Software\01d4acb0-867c-5bbe-9589-216e6e9d5452
HKEY_CURRENT_USER\Software\Android Open Source Project
HKEY_CURRENT_USER\Software\ArcBrowser
HKEY_CURRENT_USER\Software\Autodesk
HKEY_CURRENT_USER\Software\BraveSoftware
HKEY_CURRENT_USER\Software\Canon
HKEY_CURRENT_USER\Software\Canonical
HKEY_CURRENT_USER\Software\Chromium
...

(2026-09-09 실측.)

출력 읽는 법: 익숙한 프로그램 이름들 사이에 01d4acb0-867c-... 같은 무작위 문자열 키가 보입니다. 2-1절의 "화석"입니다 — 어떤 프로그램이 자기 식별번호로 만든 흔적이고, 대부분 무해합니다. 하지만 이것이 좋은 훈련 소재입니다: 정상적인 컴퓨터에도 낯선 이름은 얼마든지 있다. 그래서 조사는 "낯선 것 = 악성"이 아니라 "낯선 것 = 확인 대상"으로 작동합니다.

왜 하는가: 레지스트리를 "무서운 전문 영역"이 아니라 "탐색 가능한 폴드 구조"로 느끼는 것 — 그게 오늘 첫 번째 목표입니다.

3-2. 시작프로그램 명단 — Run 키 읽기

오늘의 본론입니다:

Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
OneDrive                                                 : "C:\Users\dlqht\AppData\Local\Microsoft\OneDrive\OneDrive.exe" /background
KakaoTalk                                                : "C:\Program Files\Kakao\KakaoTalk\KakaoTalk.exe" -bystartup
CodexKeepAwake                                           : powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\ProgramData\CodexKeepAwake\keep-awake.ps1"
GoogleChromeAutoLaunch_B5498C29EBA26FB9960CE41FE2DA9313  : "C:\Program Files\Google\Chrome\Application\chrome.exe" --no-startup-window /prefetch:5
MicrosoftEdgeAutoLaunch_D985833385C246E943C561610E88F5AE : "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --no-startup-window --win-session-start
...

(2026-09-09 실측. 여러분 컴퓨터의 결과는 깔아 둔 프로그램에 따라 다릅니다.)

출력 읽는 법: 왼쪽 열이 값의 이름, 오른쪽이 데이터(실행될 프로그램 경로와 옵션). 로그인할 때마다 이 목록이 자동 실행됩니다. PSPath, PSChildName 등 PS로 시작하는 항목은 파워쉘이 붙이는 부가 정보이니 무시해도 됩니다.

왜 하는가: 이 목록을 평소에 알아 두는 것이 포인트입니다. 지금 여러분 컴퓨터의 목록을 메모해 두세요. 어느 날 여기에 모르는 항목이 끼어 있다면 — 그게 조사의 시작점입니다.

3-3. 키 관점 vs 값 관점 — 두 명령의 차이

같은 장소를 다른 명령으로도 볼 수 있습니다:

Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
(아무 출력도 없습니다 — 2026-09-09 실측)

두 명령의 차이 정리:

명령 보여 주는 것 파일 탐색기 대응
Get-ChildItem 하위 키(가지)의 구조 폴드 안의 폴드 목록
Get-ItemProperty 그 자리에 매달린 값(이름=데이터) 폴더 안의 파일 내용

출력 읽는 법: 방금 아무것도 안 나온 것은 오류가 아닙니다. Run 키에는 하위 키가 없고 값만 있어서, "하위 키를 보여 주는" Get-ChildItem에게는 보여 줄 게 없는 겁니다. "비어 있다"도 구조 정보입니다.

왜 구분하는가: "구조가 궁금할 때"와 "내용이 궁금할 때" 도구가 다릅니다. Software처럼 구조가 깊은 곳은 Get-ChildItem으로 탐색부터 하고, Run처럼 값이 목적인 곳은 Get-ItemProperty가 정답입니다.

3-4. 눈으로 확인 — regedit

같은 것을 GUI로도 봅시다:

regedit

레지스트리 편집기가 열립니다(경고창이 뜨면 읽어 보고 진행 — 오늘은 보기만 합니다). 왼쪽 트리에서 이 경로를 펼쳐 갑니다:

HKEY_CURRENT_USER → Software → Microsoft → Windows → CurrentVersion → Run

Run을 클릭하면 오른쪽 칸에 아까 파워쉘에서 본 것과 같은 목록이 나타납니다.

왜 하는가: 실제 조사 현장에서는 두 도구를 병행합니다 — GUI로 전체 구조를 파악하고, 파워쉘로 검색·기록·자동화합니다. "같은 데이터를 보는 두 개의 창"이라는 감각을 잡아 두세요. 여기서 아무것도 더블클릭하거나 수정하지 마세요. 보고 닫으면 됩니다.

3-5. 조사관 놀이 — 의심 항목 찾는 법

이제 수비자의 눈으로 3-2의 목록을 다시 봅시다. 각 항목에 이렇게 질문합니다:

  1. 이 프로그램을 내가 아는가? (모르는 이름이 최우선 조사 대상)
  2. 경로가 평범한가? (Program Files, Windows 아래는 대체로 정상. Temp 같은 임시 폴드는 의심)
  3. 실행 방식이 어색한가? (알파벳 나열 같은 무작위 파일명, 숨김 창 실행 등)

실측 컴퓨터의 목록으로 이걸 그대로 해 보겠습니다. OneDrive, KakaoTalk, 크롬/엣지 자동 실행은 정체가 명확합니다. 그런데 이 항목은 어떻습니까?

CodexKeepAwake : powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\ProgramData\CodexKeepAwake\keep-awake.ps1"

모르는 이름(1번 위반), 실행되는 게 파워쉘 스크립트이고(3번) 숨김 창(-WindowStyle Hidden)정책 우회(-ExecutionPolicy Bypass)까지 붙어 있습니다. Step 9에서 배운 바로 그 우회 옵션입니다. 이 항목 하나에 의심 신호가 세 개 — 실제 조사라면 최우선 확인 대상입니다.

확인 절차는 단순합니다: 이름을 검색 엔진에 검색하고, 해당 폴드(C:\ProgramData\CodexKeepAwake\)를 열어 파일의 정체를 봅니다. 이 경우는 개발 도구가 설치한 "절전 방지" 스크립트로 정체가 설명됐습니다 — 수상해 보이지만 설명 가능한 경우입니다. 만약 검색해도 안 나오고, 파일 위치도 이상하고, 언제 생겼는지 기억에 없다면? 그때는 설명 불가능한 경우가 되고, 실제 대응(삭제보다 먼저 기록·격리·조사)이 시작됩니다.

지금 여러분 목록의 각 항목을 이 세 질문으로 검토해 보세요. 이 검토가 10초면 끝나는 이유는 평소 목록을 알기 때문입니다.

3-6. 컴퓨터 전체의 명단 — HKLM Run 키

HKCU가 "내 계정의 시작프로그램"이라면, HKLM에는 "이 컴퓨터의 모든 사용자에게 적용되는 시작프로그램"이 따로 있습니다:

Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"
SecurityHealth              : C:\WINDOWS\system32\SecurityHealthSystray.exe
MaximAudioSvc               : C:\Windows\System32\MaximAudioService64.exe
RtkAudUService              : "C:\WINDOWS\System32\DriverStore\...\RtkAudUService64.exe" -background
Autodesk Access             : "C:\Program Files\Autodesk\...\AdskAccessCore.exe" --minimizedUi --autoLaunch
ALNotify                    : "C:\Program Files (x86)\ESTsoft\ALToolsManager\alnotify.exe"
wizvera-veraport-x64        : "C:\Program Files\Wizvera\Veraport20\veraport-x64.exe" wizvera-veraport://...
Logitech Download Assistant : C:\Windows\system32\rundll32.exe C:\Windows\System32\LogiLDA.dll,LogiFetch
...

(2026-09-09 실측.)

출력 읽는 법: 윈도우 보안 아이콘(SecurityHealth), 오디오 드라이버(Maxim, Realtek), 설치한 프로그램의 도우미(Autodesk, 알툴즈, 로지텍)가 보입니다. 한국 PC답게 은행·관공서 접속용 보안 프로그램(위즈베라)도 있습니다. 전부 "시스템과 함께 떠야 하는" 것들 — 그래서 컴퓨터 전체 영역에 등록된 겁니다.

왜 구분하는가: 악성코드는 관리자 권한을 얻으면 이쪽(HKLM)을 더 선호합니다. 모든 사용자에게 적용되고 일반 사용자가 지우기도 어려우니까요. 그래서 감사할 때는 둘 다 봅니다. 조사 질문은 같습니다 — "이걸 내가 아는가?"


4. 미션과 연습문제

미션 — 내 컴퓨터 시작프로그램 감사 보고서

오늘 배운 것으로 간단한 감사 보고서를 만드세요:

  1. HKCU Run 키의 결과를 파일로 저장하세요 (Step 4의 Out-File 기술)
  2. HKLM Run 키도 같은 방법으로 저장하세요
  3. 저장된 목록의 각 항목 옆에(메모장으로) "정체"를 주석처럼 적어 보세요
  4. 모르는 항목이 하나라도 있으면, 그 이름을 검색 엔진에 검색해 정체를 확인하세요 — 이게 실제 조사 절차입니다
  5. 파일을 보관해 두고, 한 달 뒤에 새로 저장한 목록과 비교할 계획을 세우세요 — 새로 생긴 항목이 있나요?

연습문제

문제 1. Get-ChildItemGet-ItemProperty의 차이를 설명하고, 각각 어떤 상황에서 쓰는지 말해 보세요.

문제 2. HKCU의 Run 키와 HKLM의 Run 키는 무엇이 다를까요? 관리자 권한을 얻은 악성코드가 어느 쪽을 더 선호할지, 이유와 함께 답해 보세요.

문제 3. Run 키에 Get-ChildItem을 쳤더니 아무 출력도 나오지 않았습니다. 오류일까요? 무엇을 의미할까요?

문제 4. Run 키 목록에서 C:\Users\Lee\AppData\Local\Temp\updt.exe라는 경로를 발견했습니다. 왜 의심해야 할까요?


5. 모범 답안과 완료 기준

미션 모범 답안

Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" | Out-File startup-audit.txt
Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" | Out-File startup-audit.txt -Append

메모장으로 startup-audit.txt를 열어 각 항목에 정체를 적습니다. 실측 컴퓨터의 예:

OneDrive        — MS 클라우드 동기화. 내가 씀
KakaoTalk       — 내가 쓰는 메신저. 로그인 시 자동 실행 동의함
CodexKeepAwake  — 개발 도구가 설치한 절전 방지 스크립트. 검색·폴드 확인으로 정체 확인
SecurityHealth  — 윈도우 보안 센터 아이콘. 시스템 기본 구성
wizvera-veraport-x64 — 은행 접속용 보안 프로그램. 내가 설치 동의함
ALNotify        — 알툴즈 업데이트 알림. 내가 설치한 프로그램의 부속

검증하는 법: 저장한 파일을 notepad startup-audit.txt로 열어 목록이 들어 있는지 확인합니다. 모든 항목에 주석이 달렸고, "모르는 항목"이 0개가 되면(전부 정체를 확인했으면) 완료입니다. 모르는 항목이 남아 있다면 그 항목의 경로 폴드를 직접 열어 보고 검색해 보세요 — 정체가 확인될 때까지가 이 미션의 전부입니다.

심화: 자동 실행 위치는 Run 키 하나가 아니라 수십 군데(서비스, 작업 스케줄러, 다른 레지스트리 위치들)입니다. 마이크로소프트 공식 무료 도구 Autoruns가 그 전부를 한 화면에 모아 보여 줍니다. 실제 악성코드 조사의 필수품이니, 지금은 존재만 알아 두세요. 원리는 전부 오늘과 같습니다 — "재부팅해도 살아남기 위해 등록하는 곳".

연습문제 해답

문제 1 해답. Get-ChildItem은 그 위치의 하위 키(구조, 가지)를 보여 주고, Get-ItemProperty는 그 위치에 매달린 (이름=데이터, 잎)을 보여 줍니다. Software처럼 어떤 키들이 있는지 탐색할 때는 전자를, Run 키의 시작프로그램 목록처럼 내용이 목적일 때는 후자를 씁니다.

문제 2 해답. HKCU Run은 현재 로그인한 사용자에게만, HKLM Run은 이 컴퓨터의 모든 사용자에게 적용됩니다. 관리자 권한을 얻은 악성코드는 HKLM을 선호합니다 — 모든 사용자에게 실행되고, 일반 사용자 권한으로는 제거하기 어렵기 때문입니다. 그래서 감사할 때는 둘 다 조회해야 합니다.

문제 3 해답. 오류가 아닙니다. Run 키에는 하위 키가 없고 값만 있어서, 하위 키를 보여 주는 Get-ChildItem은 보여 줄 것이 없는 것입니다. "비어 있다"도 구조 정보입니다. 값을 보려면 Get-ItemProperty를 쓰면 됩니다.

문제 4 해답. 임시 폴드(Temp)는 말 그대로 "임시" 파일이 오가는 곳이라, 정상 프로그램이 매번 실행될 본거지로 삼는 곳이 아닙니다. 다운로드된 파일이 잠시 머무는 곳이기도 해서, 악성코드가 실행 직후 자기를 등록하는 경로로 자주 쓰입니다. updt.exe처럼 "update인 척"하는 이름도 단골 수법입니다. 정체 확인이 필요한 최우선 의심 대상입니다.

완료 기준 체크리스트

  • [ ] 레지스트리를 "키와 값의 트리"로 설명할 수 있다
  • [ ] HKCU와 HKLM의 차이를 설명할 수 있다
  • [ ] Get-ChildItem HKCU:\...로 키 구조를 탐색할 수 있다
  • [ ] Get-ItemProperty로 Run 키의 시작프로그램 목록을 조회할 수 있다
  • [ ] 두 명령(키 보기/값 보기)의 차이를 안다
  • [ ] regedit에서 같은 위치를 찾아 볼 수 있다 (보기만)
  • [ ] 세 질문(아는가/경로가 평범한가/실행 방식이 어색한가)으로 항목을 검토할 수 있다
  • [ ] 미션: startup-audit.txt를 완성했다

6. 흔한 실수와 해결

벽 1. HKCU와 HKLM을 헷갈린다

증상: 분명 등록된 프로그램이 목록에 안 보입니다.
원인: HKCU(현재 사용자)와 HKLM(컴퓨터 전체)은 별개 공간입니다. 내 계정의 시작프로그램과 시스템 전체의 시작프로그램이 따로 있습니다.
해결: 둘 다 조회하는 습관을 들이세요. 3-2절과 3-6절을 번갈아 보면 됩니다.

벽 2. Get-ChildItem을 쳤는데 원하는 정보가 안 나온다

증상: Run 키에서 아무것도 안 나옵니다.
원인: 값은 Get-ItemProperty로 봐야 합니다. Get-ChildItem은 하위 "키"를 보여 주고, Run 키에는 하위 키가 없습니다(2026-09-09 실측 확인).
해결: 3-3절의 표를 기억하세요 — 구조는 ChildItem, 내용은 ItemProperty. 둘을 번갈아 쳐 보면 감이 옵니다.

벽 3. 경로를 치니 "찾을 수 없다"는 오류

증상: 빨간 오류가 뜹니다 (2026-09-09 실측):

Get-ItemProperty : 'HKCU:\Software\Microsoft\Windows\CurrentVersoin\Run' 경로는 존재하지 않으므로 찾을 수 없습니다.
    + CategoryInfo          : ObjectNotFound: (HKCU:\Software\...rentVersoin\Run:String) [Get-ItemProperty], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand

원인: 99%는 오타입니다. 레지스트리 경로는 길고 철자가 까다롭습니다 — 위 예시도 CurrentVersionCurrentVersoin으로 친 것입니다.
해결: 오타와 싸우지 말고 트리를 타고 내려가세요. Get-ChildItem HKCU:\Software → 다음 단계 이름 확인 → 점진적으로. 탭 키 자동 완성도 레지스트리 경로에서 작동합니다.

벽 4. HKLM 조회에서 접근 거부 오류

증상: 빨간 오류가 뜹니다 (2026-09-09 실측, Get-ChildItem "HKLM:\SAM"):

Get-ChildItem : 요청한 레지스트리에 액세스할 수 없습니다.
    + CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACHINE\SAM\SAM:String) [Get-ChildItem], SecurityException

원인: HKLM 일부 구역은 관리자 권한(어떤 곳은 시스템 권한)이 있어야 읽힙니다. 방금 예시의 SAM은 윈도우 계정 암호 데이터베이스라 운영체제가 굳게 잠가 둔 곳입니다 — 잠긴 이유가 있는 잠금입니다.
해결: 읽기가 꼭 필요한 곳이라면 관리자 파워쉘(시작 버튼 우클릭 → "터미널(관리자)")에서 다시 시도하세요. 다만 권한으로 열 수 있게 됐다고 해서 쓰기를 해도 된다는 뜻은 아닙니다 — 오늘의 "보기만" 규칙은 그대로입니다. 그리고 SAM 같은 곳은 애초에 들여다볼 이유가 없는 게 정상입니다.

벽 5. regedit에서 뭔가 잘못 클릭한 것 같아 불안하다

증상: 값을 더블클릭했더니 편집 창이 열렸습니다.
원인: 값을 더블클릭하면 "수정" 창이 열립니다 — 아직 아무것도 바뀐 게 아닙니다.
해결: 취소를 누르면 됩니다. 변경은 "확인"을 눌러야만 저장됩니다. 불안하면 regedit를 그냥 닫으세요 — 확인을 누르지 않은 변경은 존재하지 않습니다.


7. 정리

오늘의 개념

개념 한 줄 설명
레지스트리 윈도우 설정 전부가 저장된 트리 구조 데이터베이스
키(key) / 값(value) 폴드 / 파일에 대응 — 값은 이름 = 데이터
하이브 (HKCU / HKLM) 현재 사용자 영역 / 컴퓨터 전체 영역
Run 키 로그인 시 자동 실행 명단 — 악성코드 지속성의 단골 소재
지속성(Persistence) 재부팅해도 살아남기 위한 등록 — 공격의 목적이자 조사의 단서

오늘의 명령어

명령 하는 일
Get-ChildItem HKCU:\... 키 구조(하위 키) 탐색
Get-ItemProperty "HKCU:\...\Run" 값(시작프로그램 목록) 읽기
Get-ItemProperty "HKLM:\...\Run" 컴퓨터 전체 시작프로그램 읽기
... | Out-File 파일.txt 결과를 파일로 저장 (Step 4 복습)
regedit GUI로 같은 것 보기 (보기만!)

명령어보다 중요한 감각

악성코드가 재부팅을 살아남으려면 어딘가에 등록해야 하고, 그 최고 인기 장소가 오늘 본 Run 키입니다. "이 키에 모르는 항목이 있나?"라는 단 한 줄의 질문이 실제 침해 조사의 첫 페이지에 있고, 오늘부터 여러분은 그 질문을 스스로 던질 수 있습니다.

그리고 하나 더. 조사의 기준은 "낯선 것 = 악성"이 아니라 "낯선 것 = 확인 대상"입니다. 오늘 실측에서 봤듯 정상 컴퓨터에도 낯선 이름은 많고, 수상해 보이는 항목도 정체를 확인하면 설명되는 경우가 대부분입니다. 확인 절차 없이 지우는 것도, 확인 없이 내버려 두는 것도 조사가 아닙니다 — 기록하고, 확인하고, 판단하는 것. 이 순서가 모든 보안 조사의 뼈대입니다.

마지막으로, 언젠가 랩 환경에서 레지스트리를 수정할 일이 생기면 철칙이 하나 있습니다: 수정 전에 해당 키를보내기(백업)하기. regedit에서 키 우클릭 → "보내기"로 .reg 파일을 저장해 두면, 문제가 생겼을 때 더블클릭 한 번으로 되돌릴 수 있습니다. "되돌릴 수단을 먼저 마련하고 변경한다" — Step 10의 -WhatIf와 정확히 같은 철학이고, 모든 시스템 변경에 통하는 원칙입니다.


전부 체크되면 Step 11 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.