Journey to Security/Windows OS

윈도우 시스템 파일의 구조

Cordilog 2026. 8. 15. 16:45

윈도우 운영체제는 부팅, 인증, 프로세스 관리, 설정 저장 등의 핵심 기능을 특정 디렉터리에 배치된 시스템 파일들에 의존한다.

이 파일들의 위치와 역할을 이해하는 것은 시스템 관리, 침해 대응, 디지털 포렌식의 기초가 된다.

윈도우 시스템 파일이 저장되는 위치와 대표 파일들의 기능을 알아보자.

1. 윈도우 시스템 파일의 기본 배치 원리

윈도우의 시스템 파일은 대부분 운영체제가 설치된 드라이브(일반적으로 C:)의 Windows 디렉터리 하위에 집중되어 있다.

이 디렉터리는 커널, 드라이버, 시스템 라이브러리, 서비스 실행 파일, 설정 데이터를 포함하며, 운영체제 동작의 근간을 이룬다.

1️⃣ 핵심 디렉터리 구조

윈도우 시스템 파일이 위치하는 핵심 디렉터리는 다음 세 가지로 구분된다.

🔵 C:\Windows\System32

커널, 장치 드라이버, 핵심 DLL, 시스템 서비스 실행 파일이 모여 있는 가장 중요한 디렉터리다.

이름에 32가 포함되어 있으나, 64비트 윈도우에서는 64비트 시스템 파일이 이 디렉터리에 저장된다.

이 명명 규칙은 하위 호환성에서 비롯되었으며, 실제 비트 수와 폴더 이름이 일치하지 않는다.

🔵 C:\Windows\SysWOW64

64비트 윈도우 환경에서 32비트 시스템 파일을 저장하는 디렉터리다.

WOW64(Windows 32-bit on Windows 64-bit) 서브시스템이 32비트 애플리케이션을 실행할 때 이 디렉터리의 파일을 참조한다. 명명 규칙이 System32와 반대로 작동하는 점에 유의해야 한다.

🔵 C:\Windows

디렉터리 최상위 계층으로, 부팅과 시스템 설정에 관여하는 파일들이 배치된다.

여기에는 System32, SysWOW64, config 등 여러 하위 디렉터리가 포함된다.

2️⃣ 디렉터리별 파일 배치

 

2. 핵심 시스템 파일과 역할

System32 디렉터리에는 운영체제의 근간을 이루는 실행 파일과 라이브러리가 집중되어 있다.

이들은 크게 커널, 핵심 프로세스, 시스템 라이브러리, 장치 드라이버로 구분된다.

1️⃣ 커널

🔵 ntoskrnl.exe

윈도우 NT 커널(NT OS Kernel)로, 프로세스와 스레드 스케줄링, 메모리 관리, 하드웨어 추상화 계층과의 연동 등 운영체제의 최하위 동작을 담당한다.

시스템의 모든 상위 계층은 궁극적으로 이 커널 위에서 동작한다.

2️⃣ 핵심 시스템 프로세스

로그인, 인증, 세션 관리, 프로세스 관리를 담당하는 프로세스들은 시스템 부팅 과정에서 정해진 순서와 계층에 따라 생성된다.

🔵 주요 프로세스

  • smss.exe — 세션 관리자(Session Manager Subsystem). 부팅 초기에 실행되어 시스템 환경을 초기화하고 세션을 생성한다.
  • csrss.exe — 클라이언트/서버 런타임 서브시스템(Client/Server Runtime Subsystem). 사용자 모드 측의 프로세스·스레드 관리 등을 담당한다.
  • winlogon.exe — 사용자 로그온 및 로그오프 절차를 관리한다.
  • lsass.exe — 로컬 보안 인증 서브시스템(Local Security Authority Subsystem Service). 인증, 보안 정책 적용, 자격 증명 처리를 담당한다.
  • services.exe — 서비스 제어 관리자(Service Control Manager). 윈도우 서비스의 시작, 중지, 상태를 관리한다.

이 프로세스들은 침해 대응과 포렌식에서 특히 중요하다.

정상적인 시스템에서 이들 프로세스는 정해진 부모-자식 관계와 실행 경로를 가지며, 이 관계에서 벗어난 프로세스(예: 비정상 경로에서 실행되는 lsass.exe)는 악성코드나 프로세스 위장을 의심할 근거가 된다.

3️⃣ 핵심 프로세스 생성 계층

부팅 과정에서 핵심 프로세스가 생성되는 부모-자식 관계는 다음과 같다.

이 계층을 이해하면 프로세스 트리 분석 시 정상 여부를 판별할 수 있다.

 
 

winlogon.exe는 로그온 절차에서 lsass.exe를 통해 인증을 수행하며, smss.exe는 각 세션에 대해 csrss.exe와 winlogon.exe를 생성한다.

4️⃣ 시스템 라이브러리

응용 프로그램과 시스템 프로세스는 직접 하드웨어를 제어하지 않고, 계층화된 라이브러리(DLL)를 통해 커널 기능에 접근한다.

🔵 주요 DLL

  • ntdll.dll — 사용자 모드와 커널 모드의 경계에 위치하는 라이브러리. 시스템 콜(system call)을 커널로 전달하는 진입점 역할을 한다.
  • kernel32.dll — 프로세스·스레드 관리, 메모리 할당, 파일 입출력 등 기본 Win32 API를 제공한다. 내부적으로 ntdll.dll을 호출한다.
  • hal.dll — 하드웨어 추상화 계층(Hardware Abstraction Layer). 서로 다른 하드웨어 플랫폼의 차이를 커널로부터 은닉한다.

5️⃣ 라이브러리 호출 계층

응용 프로그램의 API 호출이 커널에 도달하는 경로는 다음과 같은 계층을 거친다.

ntdll.dll을 경계로 사용자 모드와 커널 모드가 나뉘며, 실제 커널 진입은 시스템 콜을 통해 이루어진다.

6️⃣ 장치 드라이버

.sys 확장자를 가진 장치 드라이버 파일들은 대부분 C:\Windows\System32\drivers 디렉터리에 위치한다.

이들은 커널 모드에서 실행되며 하드웨어와 운영체제 간의 인터페이스를 제공한다.

커널 모드에서 동작하는 특성상, 악성 드라이버는 시스템 전체를 장악할 수 있어 보안상 민감한 대상이다.

3. 레지스트리와 하이브 파일

윈도우의 설정 정보는 레지스트리(Registry)라는 계층적 데이터베이스에 저장된다.

레지스트리는 논리적으로는 키(Key)와 값(Value)의 트리 구조로 표현되지만, 물리적으로는 하이브(Hive) 파일이라는 디스크상의 파일로 저장된다.

1️⃣ 하이브 파일의 위치

시스템 수준의 하이브 파일은 C:\Windows\System32\config 디렉터리에 저장된다.

대표적인 하이브 파일은 다음과 같다.

  • SYSTEM — 시스템 부팅과 하드웨어 설정 정보
  • SOFTWARE — 설치된 소프트웨어 설정 정보
  • SAM — 로컬 사용자 계정과 그룹 정보(Security Account Manager)
  • SECURITY — 보안 정책 정보

사용자별 설정을 담는 NTUSER.DAT 하이브는 각 사용자 프로필 디렉터리(C:\Users\<사용자명>)에 별도로 저장된다.

2️⃣ 논리적 뷰와 물리적 파일의 대응

레지스트리 편집기에서 보이는 논리적 루트 키(Hive)와 디스크상의 물리적 하이브 파일은 다음과 같이 대응된다.

이 대응 관계는 포렌식에서 오프라인 하이브 파일을 분석할 때 핵심 근거가 된다.

 

실행 중인 시스템에서 하이브 파일은 커널에 의해 잠겨 있어 직접 복사가 불가능하다.

포렌식에서는 볼륨 섀도 복사본(VSS)이나 오프라인 이미지에서 하이브 파일을 추출해 분석한다.

4. 정리

윈도우 시스템 파일은 C:\Windows 디렉터리를 중심으로 계층적으로 배치된다.

System32는 커널, 핵심 프로세스, 시스템 라이브러리, 드라이버를 담는 가장 중요한 디렉터리이며, 64비트 윈도우에서는 명명 규칙과 달리 64비트 파일을 저장한다. SysWOW64는 반대로 32비트 파일을 담는다.

핵심 프로세스(smss.exe, csrss.exe, winlogon.exe, lsass.exe, services.exe)는 정해진 부모-자식 계층에 따라 생성되며, 이 계층에서 벗어난 프로세스는 침해 지표가 된다.

라이브러리는 kernel32.dllntdll.dll → 커널의 계층을 거쳐 시스템 콜로 커널에 접근한다.

레지스트리 설정은 System32\config하이브 파일(SYSTEM, SOFTWARE, SAM, SECURITY)사용자 프로필NTUSER.DAT에 물리적으로 저장된다.

이러한 파일들의 위치와 역할을 파악하는 것은 시스템 관리, 침해 대응, 디지털 포렌식의 출발점이 된다.