사용자 모드와 커널 모드
윈도우 서버 보안 첫 장. CPU가 코드를 실행할 때 두 가지 권한 등급으로 나눠 돌린다 - 하드웨어가 강제하는 구분이라 소프트웨어가 마음대로 못 넘는다.
| 사용자 모드 (User Mode) | 커널 모드 (Kernel Mode) | |
|---|---|---|
| 누가 도나 | 일반 응용프로그램 (크롬, 한글, 게임) | OS 핵심, 디바이스 드라이버 |
| 권한 | 제한적 - 자기 메모리 공간에 갇힘 | 특권 - 모든 메모리·하드웨어 무제한 |
| 오류 나면 | 그 프로그램 하나만 죽음 | 시스템 전체가 신뢰 불가 → 블루스크린 |
오류가 났을 때 결과가 다르다
- 사용자 모드에서 오류: 그 프로그램 하나만 죽는다. 크롬이 뻗어도 윈도우는 멀쩡하다 - 권한이 제한돼 있으니 피해가 그 프로세스 안에 갇힌다. “응답 없음 → 강제 종료”로 끝.
- 커널 모드에서 오류: 커널은 모든 메모리를 건드릴 수 있으니, 여기서 잘못되면 어디까지 망가졌는지 알 수 없다. 그래서 윈도우는 더 진행하지 않고 멈춘 뒤, 메모리 내용을 덤프 파일로 저장(원인 분석용)하고 재부팅한다. 이게 블루스크린(BSOD) - 화면 밑에서 퍼센트 올라가는 게 “덤프하고 재시작” 과정이다.
보안 관점에서 중요한 이유
드라이버는 커널 모드에서 돈다. 그래서 악성 드라이버나 커널 루트킷이 심어지면 시스템 전체를 장악당하고, 백신조차 탐지가 어렵다 - 루트킷이 무서운 이유. 반대로 응용프로그램 수준 악성코드는 사용자 모드에 갇혀 있어서 상대적으로 대응이 쉽다.
시험 포인트 2개
- 커널 모드 = 특권/무제한 접근, 사용자 모드 = 제한적 접근 구분.
- 사용자 모드 프로그램이 하드웨어를 쓰려면 **시스템 콜(System Call)**로 커널에 요청해야 한다 - 직접 못 하고 반드시 문을 통과해야 한다는 게 핵심. 이 “문”이 있어서 커널이 검사할 수 있고, 그게 곧 참조 모니터 개념으로 이어진다.
다음: LSA·SAM·SRM - 검문소·명부·집행관 비유로 노트에 정리했다.