보안 공부 2일차 — Windows는 어떻게 구성되어 있을까?
보안 공부 2일차.
1일차에는 CPU, RAM, SSD, 운영체제, Kernel, Process, PID처럼 컴퓨터가 프로그램을 실행하는 기본 구조를 공부했다.
오늘은 그중에서도 내가 실제로 사용하는 Windows 운영체제의 구조를 조금 더 자세히 살펴보려고 한다.
보안을 공부하다 보면 다음과 같은 표현이 자주 나온다.
- 시스템 파일
- 사용자 계정
- 관리자 권한
- 서비스
- 환경 변수
- Registry
- Program Files
- AppData
처음에는 각각 따로 떨어진 개념처럼 보이지만, 사실 모두 Windows가 프로그램과 사용자를 관리하기 위한 구조다.
오늘의 목표는 Windows를 단순히 "켜서 사용하는 운영체제"가 아니라 파일, 사용자, 권한, 프로그램을 관리하는 시스템으로 보는 것이다.
1. Windows의 기본 폴더 구조
Windows가 설치된 PC에서는 일반적으로 C: 드라이브가 시스템 드라이브로 사용된다.
파일 탐색기에서 C:\를 열면 여러 폴더를 볼 수 있다.
대표적으로 다음 폴더들이 있다.
C:\Windows
C:\Program Files
C:\Program Files (x86)
C:\Users
각 폴더는 서로 다른 역할을 한다.
2. C:\Windows
C:\Windows는 Windows 운영체제와 관련된 파일들이 저장되는 중요한 폴더다.
예를 들면 운영체제가 사용하는 프로그램, 설정, 라이브러리 등이 들어 있다.
C:\Windows
이 폴더 안에는 다시 다양한 하위 폴더가 존재한다.
그중 보안 공부를 하면서 자주 만나게 되는 폴더가 있다.
C:\Windows\System32
System32
System32에는 Windows가 사용하는 중요한 실행 파일과 시스템 구성 요소가 많이 저장되어 있다.
예를 들어 Windows의 여러 기본 명령어도 이곳과 관련되어 있다.
대표적인 파일의 예는 다음과 같다.
cmd.exe
notepad.exe
ipconfig.exe
다만 System32 안에는 Windows 동작에 중요한 파일이 많기 때문에 함부로 파일을 삭제하거나 변경하면 안 된다.
내가 이해한 내용
C:\Windows는 Windows 운영체제 자체와 관련된 파일이 있는 곳이고, 그 안의 System32에는 Windows가 사용하는 중요한 실행 파일과 시스템 구성 요소가 많이 들어 있다.
3. Program Files
Windows에서 프로그램을 설치하면 흔히 다음 위치에 저장된다.
C:\Program Files
또는
C:\Program Files (x86)
일반적으로 다음과 같이 이해할 수 있다.
Program Files
→ 주로 64bit 프로그램
Program Files (x86)
→ 주로 32bit 프로그램
예를 들어 어떤 프로그램을 설치했다면 이런 구조를 볼 수 있다.
C:\Program Files\프로그램이름\
그 안에는 프로그램 실행 파일이나 DLL 같은 파일들이 있을 수 있다.
내가 이해한 내용
Program Files는 설치된 프로그램의 파일이 저장되는 대표적인 위치다. Program Files와 Program Files (x86)는 프로그램의 64bit와 32bit 구분과 관련이 있다.
4. Users 폴더
Windows는 사용자별로 데이터를 따로 관리한다.
대표적인 경로가 다음과 같다.
C:\Users
안으로 들어가 보면 사용자별 폴더가 있다.
예를 들면:
C:\Users\Kim
C:\Users\Admin
C:\Users\User1
각 사용자 폴더 안에는 일반적으로 다음과 같은 폴더가 있다.
Desktop
Documents
Downloads
Pictures
Videos
즉,
C:\Users\사용자이름
은 해당 사용자의 개인 데이터와 설정이 저장되는 중요한 위치다.
내가 이해한 내용
Windows는 사용자마다 별도의 사용자 폴더를 만들고, 바탕화면이나 다운로드, 문서 같은 개인 파일을 사용자별로 관리한다.
5. AppData
사용자 폴더 안에는 중요한 폴더가 하나 더 있다.
AppData
일반적으로 다음 위치에 있다.
C:\Users\사용자이름\AppData
AppData는 기본적으로 숨김 폴더로 설정되어 있을 수 있다.
이곳에는 프로그램이 사용하는 사용자별 설정, 캐시, 임시 데이터 등이 저장된다.
AppData 안에는 대표적으로 다음과 같은 폴더가 있다.
Local
LocalLow
Roaming
오늘은 세 폴더의 정확한 차이까지 외울 필요는 없다.
일단 중요한 것은:
AppData는 프로그램이 사용자별 설정이나 데이터를 저장할 때 자주 사용하는 위치다.
라는 점이다.
보안 공부에서 AppData가 중요한 이유도 있다.
정상 프로그램뿐만 아니라 악성 프로그램 역시 사용자 영역의 특정 폴더에 파일을 저장하려는 경우가 있기 때문이다.
내가 이해한 내용
AppData는 프로그램이 사용자별 설정이나 캐시 같은 데이터를 저장하는 공간이고, 보안 분석에서도 자주 확인하게 되는 위치다.
6. User와 Administrator
Windows에서는 모든 사용자가 같은 권한을 갖는 것은 아니다.
대표적으로 두 가지 개념을 먼저 알아야 한다.
Standard User
Administrator
일반 사용자는 Windows를 사용할 수 있지만 시스템에 큰 영향을 미치는 작업에는 제한이 있을 수 있다.
Administrator는 보다 높은 권한을 가지고 있다.
예를 들어 관리자 권한이 필요한 작업에는 다음과 같은 것이 있을 수 있다.
- 일부 프로그램 설치
- 시스템 설정 변경
- 다른 사용자의 데이터 접근
- 서비스 설정 변경
- 시스템 영역 변경
여기서 보안에서 매우 중요한 개념이 등장한다.
Privilege
Privilege는 쉽게 말하면 어떤 작업을 수행할 수 있는 권한이라고 이해할 수 있다.
7. Permission과 Privilege
처음에는 Permission과 Privilege가 비슷하게 느껴질 수 있다.
아주 간단하게 구분하면 다음처럼 이해해볼 수 있다.
Permission
특정 파일이나 폴더 같은 대상에 대해 무엇을 할 수 있는지를 의미한다.
예를 들면:
읽기
쓰기
수정
실행
Privilege
사용자나 프로세스가 시스템에서 특정 작업을 수행할 수 있는 권한과 관련된 개념이다.
예를 들어:
관리자 수준 작업
시스템 설정 변경
특정 시스템 기능 사용
처음에는 완벽히 구분할 필요는 없지만,
Permission
→ 이 파일을 읽거나 수정할 수 있는가?
Privilege
→ 이 사용자 또는 Process가 이런 시스템 작업을 할 수 있는가?
정도로 이해하면 좋다.
내가 이해한 내용
Permission은 특정 파일이나 폴더에 대해 무엇을 할 수 있는지와 관련되고, Privilege는 사용자나 프로세스가 시스템에서 어떤 수준의 작업을 할 수 있는지와 관련된 개념이다.
8. UAC란?
Windows에서 프로그램을 설치하거나 시스템 설정을 변경할 때 다음과 같은 창을 본 적이 있다.
이 앱이 디바이스를 변경할 수 있도록 허용하시겠어요?
이 기능이 UAC(User Account Control)와 관련되어 있다.
UAC는 프로그램이 높은 권한이 필요한 작업을 시도할 때 사용자의 확인을 요구하는 Windows의 보안 기능이다.
쉽게 생각하면 다음과 같다.
프로그램 실행
↓
높은 권한 필요
↓
UAC 확인
↓
사용자가 허용 / 거부
관리자 계정으로 로그인했다고 해서 모든 프로그램이 항상 아무 제한 없이 관리자 권한을 사용하는 것은 아니다.
필요한 경우 권한 상승 과정을 거치게 된다.
내가 이해한 내용
UAC는 프로그램이 시스템에 영향을 줄 수 있는 높은 권한을 필요로 할 때 사용자에게 한 번 더 확인받는 기능이다.
9. Service란?
Windows에서는 화면에 보이지 않지만 계속 실행되고 있는 프로그램들이 있다.
이런 것 중 대표적인 것이 Windows Service다.
Service는 주로 백그라운드에서 실행된다.
예를 들어 다음과 같은 역할을 하는 서비스가 있을 수 있다.
- 네트워크 기능
- 업데이트
- 프린터
- 보안 프로그램
- 데이터베이스
- 서버 프로그램
Windows에서 다음을 실행하면 서비스를 확인할 수 있다.
services.msc
Win + R을 누른 뒤 입력하면 된다.
services.msc
서비스마다 다음과 같은 상태를 볼 수 있다.
Running
Stopped
또 시작 방식도 설정되어 있다.
Automatic
Manual
Disabled
내가 이해한 내용
Service는 사용자가 직접 창을 열지 않아도 Windows 백그라운드에서 계속 특정 기능을 수행하는 프로그램 또는 기능이다.
10. Registry란?
Registry는 Windows에서 프로그램과 시스템의 다양한 설정 정보를 저장하는 데이터베이스와 비슷한 구조다.
예를 들면 다음과 같은 설정들이 Registry와 관련될 수 있다.
- Windows 설정
- 프로그램 설정
- 사용자 설정
- 실행 관련 설정
Registry를 확인하려면 다음 명령을 사용할 수 있다.
regedit
하지만 Registry는 Windows 동작에 중요한 설정이 들어 있기 때문에 오늘은 보기만 하고 수정하지 않는 것이 좋다.
보안 공부를 하다 보면 나중에 Registry를 통해 자동 실행 설정이나 시스템 변경 흔적 등을 분석하는 경우도 있다.
내가 이해한 내용
Registry는 Windows와 프로그램의 여러 설정 정보를 저장하고 관리하는 중요한 데이터 구조다.
11. Environment Variable
환경 변수, 즉 Environment Variable도 Windows에서 자주 등장한다.
환경 변수는 프로그램이나 운영체제가 참조할 수 있도록 특정 값을 이름으로 저장해두는 방식이다.
대표적인 예가 있다.
TEMP
USERNAME
USERPROFILE
PATH
예를 들어 CMD에서 다음 명령을 입력해볼 수 있다.
echo %USERNAME%
현재 사용자 이름이 출력된다.
또:
echo %USERPROFILE%
을 입력하면 현재 사용자 폴더 경로가 나온다.
예:
C:\Users\Kim
내가 이해한 내용
환경 변수는 Windows나 프로그램이 자주 사용하는 값을 이름으로 저장해놓고 필요할 때 불러올 수 있게 하는 기능이다.
12. PATH란?
환경 변수 중에서도 중요한 것이 PATH다.
CMD에서 다음 명령어를 입력한다고 생각해보자.
notepad
나는 notepad.exe가 어디에 있는지 전체 경로를 적지 않았다.
그런데 Windows는 메모장을 실행한다.
이 과정에서 PATH 환경 변수에 등록된 경로들을 참고해 실행 파일을 찾을 수 있다.
즉 원래는 이런 식의 경로가 필요할 수 있지만:
C:\Windows\System32\프로그램.exe
PATH가 설정되어 있으면:
프로그램.exe
처럼 이름만 입력해서 실행할 수 있다.
내가 이해한 내용
PATH는 Windows가 실행 파일을 찾을 때 확인하는 경로 목록이다. PATH에 등록된 폴더의 프로그램은 전체 경로를 입력하지 않아도 실행할 수 있다.
13. 오늘 직접 해볼 실습
오늘은 단순히 읽는 것보다 내 PC에서 직접 Windows 구조를 확인해본다.
실습 1 — 주요 폴더 확인하기
파일 탐색기에서 다음 경로를 하나씩 열어본다.
C:\Windows
C:\Windows\System32
C:\Program Files
C:\Program Files (x86)
C:\Users
파일을 수정하거나 삭제하지 않고 구조만 확인한다.
확인 결과
내가 직접 확인한 폴더와 눈에 띈 파일 또는 폴더를 기록하기
14. AppData 찾아보기
파일 탐색기 주소창에 직접 다음을 입력한다.
%appdata%
Enter를 누른다.
어떤 위치로 이동하는지 확인한다.
그 다음 주소창에 다음도 입력한다.
%localappdata%
두 경로가 같은지 다른지도 확인한다.
내가 확인한 결과
%appdata% →
%localappdata% →
15. 현재 사용자 확인하기
CMD를 실행한다.
다음 명령을 입력한다.
whoami
현재 로그인되어 있는 사용자를 확인한다.
결과:
내 결과:
이번에는 다음을 입력한다.
echo %USERNAME%
결과:
내 결과:
둘이 어떻게 표시되는지도 비교해본다.
16. 환경 변수 확인하기
CMD에서 다음 명령을 실행한다.
echo %USERPROFILE%
결과:
내 결과:
다음도 확인한다.
echo %TEMP%
결과:
내 결과:
그리고:
echo %PATH%
을 실행한다.
굉장히 긴 경로 목록이 나올 수 있다.
오늘은 하나하나 분석하지 않고 여러 폴더 경로가 등록되어 있다는 것만 확인한다.
17. Service 확인하기
키보드에서:
Win + R
실행창을 연다.
다음 입력:
services.msc
서비스 목록에서 아무 서비스 3개 정도를 골라본다.
Service 이름상태시작 유형
아직 서비스를 중지하거나 설정을 변경하지 않는다.
18. UAC 직접 확인하기
Windows 검색에서:
cmd
를 검색한다.
일반적으로 실행하지 말고 우클릭해서:
관리자 권한으로 실행
을 선택해본다.
UAC 창이 나타나는지 확인한다.
여기서 중요한 것은 CMD 사용 자체가 아니라 일반 실행과 관리자 권한 실행이 다르다는 점을 눈으로 확인하는 것이다.
19. 오늘 배운 내용을 하나로 연결하기
오늘 내용을 전체적으로 연결하면 다음과 같다.
Windows
↓
사용자 계정 관리
↓
User / Administrator
↓
Permission / Privilege
↓
Program 실행
↓
필요하면 UAC로 권한 상승
파일 측면에서는:
C:\Windows
→ 운영체제 관련 파일
C:\Program Files
→ 설치된 프로그램
C:\Users
→ 사용자별 데이터
AppData
→ 사용자별 프로그램 데이터
그리고 Windows 내부에는:
Service
Registry
Environment Variable
PATH
같은 기능들이 프로그램과 시스템을 관리한다.
20. 이게 보안과 어떤 관계가 있을까?
보안 사고를 조사한다고 생각해보자.
수상한 프로그램이 발견됐다.
그러면 다음과 같은 질문을 할 수 있다.
파일은 어디에 있지?
Program Files에 있나?
AppData에 있나?
어떤 사용자가 실행했지?
관리자 권한으로 실행됐나?
자동 실행 설정이 있나?
Service로 등록됐나?
Registry를 변경했나?
PATH를 변경했나?
Day 1에서 배운 질문이:
무슨 Process가 실행되고 있지?
였다면,
Day 2부터는 조금 더 확장된다.
그 Process는 어디에서 왔고,
누구의 권한으로 실행되며,
Windows의 어떤 설정을 사용하고 있는가?
이런 식으로 시스템을 바라보는 것이 보안 공부의 기초가 된다.
Day 2 핵심 정리
C:\Windows
Windows 운영체제와 관련된 주요 시스템 파일이 저장되는 위치다.
System32
Windows가 사용하는 중요한 실행 파일과 시스템 구성 요소가 많이 있는 폴더다.
Program Files
설치된 프로그램의 파일이 주로 저장되는 위치다.
Users
Windows 사용자별 파일과 데이터가 저장되는 위치다.
AppData
프로그램의 사용자별 설정, 캐시, 데이터 등이 저장되는 위치다.
Administrator
일반 사용자보다 높은 수준의 시스템 권한을 가진 사용자 또는 권한과 관련된 개념이다.
Permission
특정 파일이나 폴더 등에 대해 읽기, 쓰기, 실행 등의 작업을 할 수 있는지를 나타낸다.
Privilege
사용자나 Process가 시스템에서 특정 작업을 수행할 수 있는 권한이다.
UAC
프로그램이 높은 권한을 필요로 할 때 사용자의 확인을 요구하는 Windows 보안 기능이다.
Service
Windows 백그라운드에서 특정 기능을 수행하는 프로그램 또는 시스템 구성 요소다.
Registry
Windows와 프로그램의 각종 설정 정보를 저장하는 구조다.
Environment Variable
운영체제와 프로그램이 사용할 값을 이름과 연결해 저장하는 기능이다.
PATH
Windows가 실행 파일을 찾을 때 확인하는 경로 목록이다.
오늘의 최종 질문
자료를 보지 않고 한 번 답해본다.
1. C:\Windows와 C:\Users의 역할 차이는?
2. Program Files는 어떤 폴더인가?
3. AppData에는 어떤 데이터가 저장되는가?
4. 일반 사용자와 Administrator의 차이는?
5. Permission과 Privilege는 어떻게 다른가?
6. UAC는 왜 필요한가?
7. Windows Service란 무엇인가?
8. Registry는 어떤 역할을 하는가?
9. Environment Variable은 무엇인가?
10. PATH가 없다면 프로그램 실행이 왜 불편해질 수 있는가?
Day 2 공부를 마치며
오늘은 Windows에서 파일과 프로그램이 어디에 저장되는지, 그리고 사용자와 권한이 어떻게 관리되는지를 공부했다.
가장 기억하고 싶은 구조는 다음과 같다.
Windows
│
├─ C:\Windows
│ └─ 운영체제
│
├─ C:\Program Files
│ └─ 설치 프로그램
│
└─ C:\Users
└─ 사용자별 데이터
└─ AppData
그리고 Windows에서는 단순히 파일 위치뿐 아니라:
User
Permission
Privilege
UAC
Service
Registry
Environment Variable
PATH
같은 개념을 통해 시스템을 관리하고 있다는 점을 알게 됐다.
보안을 공부할 때는 결국
"무엇이 실행됐는가?"
뿐만 아니라
"어디에서 실행됐고, 어떤 사용자와 권한으로 실행됐으며, 시스템에 무엇을 변경했는가?"
까지 확인해야 한다는 점도 조금씩 이해하기 시작했다.
'쓰윽터디 > 정보 보안' 카테고리의 다른 글
| [IT Security] 정보 보안 공부 하기 Day.01 (0) | 2026.09.26 |
|---|







