파일 시스템 미니필터(File System Minifilter, 이하 미니필터)는 Windows 파일 시스템 I/O 스택에 연결되어 파일 I/O 작업을 모니터링, 필터링, 수정 또는 방지할 수 있도록 설계된 커널 모드 드라이버입니다. 기존의 레거시 파일 시스템 필터 드라이버의 복잡성과 문제를 해결하기 위해 Microsoft에서 도입한 모델입니다.
미니필터 개요
1. 필터 관리자 (Filter Manager, FltMgr.sys)
미니필터 모델의 핵심은 시스템에서 제공하는 필터 관리자입니다.
- 역할: 미니필터 드라이버를 대신하여 파일 시스템 스택에 연결하고 I/O 요청을 구조화된 방식으로 등록된 미니필터들에게 분배하는 역할을 수행합니다.
- 장점: 개발자가 직접 I/O 스택 관리의 복잡성을 처리하지 않아도 되므로 개발이 간소화되고 안정성이 향상됩니다. 또한, 레거시 필터 드라이버와 달리 **동적 로드(Load) 및 언로드(Unload)**가 가능해져 시스템 재부팅 없이 드라이버를 관리할 수 있습니다.
2. 고도(Altitude) 시스템
- 정의: 미니필터 드라이버가 필터 스택 내에서 로드되는 상대적인 위치를 결정하는 고유 식별자(숫자 값)입니다.
- 순서 결정: '고도'가 높은 미니필터가 스택의 상단에 위치하며, I/O 요청이 들어올 때 낮은 고도의 필터보다 먼저 요청을 처리합니다. 응답(완료) 처리는 역순으로 진행됩니다.
- 목적: 서로 다른 공급업체의 여러 필터 드라이버 간의 **상호 운용성(Interoperability)**을 보장하고, 로드 순서 충돌 문제를 해결합니다. Microsoft에서 '고도' 값을 할당하고 관리합니다.
미니필터의 동작 방식
1. 콜백 루틴 (Callback Routines)
미니필터는 필터링하려는 특정 I/O 작업(예: 파일 생성, 읽기, 쓰기)에 대해 사전 작업(Pre-operation) 콜백 루틴, 사후 작업(Post-operation) 콜백 루틴 또는 둘 다를 필터 관리자에 등록합니다.
- 사전 작업 (Pre-operation) 콜백:
- I/O 요청이 파일 시스템 드라이버나 하위 필터에 도달하기 전에 호출됩니다.
- 이 단계에서 미니필터는 I/O 요청을 모니터링, 수정하거나, 아예 하위 드라이버로 전달하지 않고 자체적으로 **완료(차단/허용)**할 수 있습니다. (예: 접근 차단)
- 사후 작업 (Post-operation) 콜백:
- I/O 요청이 파일 시스템 드라이버 및 하위 필터의 처리를 마치고 완료된 후 호출됩니다.
- 이 단계에서 미니필터는 작업의 **결과 또는 반환된 데이터(읽기 데이터 등)**를 확인하거나 수정할 수 있습니다. (예: 데이터 복호화)
2. I/O 요청 처리 흐름
- 사용자 모드 애플리케이션에서 파일 I/O 요청 발생 (예: 파일 열기/읽기/쓰기).
- I/O 관리자가 요청을 처리하여 I/O 요청 패킷(IRP)을 생성하고 커널 모드로 전달.
- 필터 관리자가 I/O 요청을 가로채서 등록된 미니필터들에게 분배.
- 등록된 미니필터의 사전 작업 콜백이 고도가 높은 순서대로 호출. (필요시 요청 수정/완료)
- 모든 사전 작업 콜백을 거친 후, 요청은 필터 관리자를 통해 파일 시스템 드라이버( 등)로 전달.
- 파일 시스템 드라이버가 작업을 처리하고 I/O 관리자에게 응답을 반환.
- 필터 관리자는 등록된 미니필터의 사후 작업 콜백을 고도가 낮은 순서대로 호출. (필요시 응답 수정)
- 최종 결과가 I/O 관리자를 거쳐 사용자 모드 애플리케이션으로 반환.
주요 활용 분야
미니필터 드라이버는 커널 수준에서 파일 시스템 작업을 제어할 수 있는 강력한 기능 덕분에 다양한 보안 및 관리 솔루션에 사용됩니다.
- 안티바이러스/맬웨어 방지 (Anti-Virus/Anti-Malware): 파일 생성, 접근 또는 수정 시 파일을 실시간으로 스캔하여 악성 코드를 감지하고 차단합니다.
- 데이터 암호화/복호화 (Encryption/Decryption): 디스크에 기록되거나 읽히는 데이터를 투명하게(사용자 모르게) 암호화 및 복호화합니다.
- 백업 및 복구 (Backup and Recovery): 파일 변경 사항을 모니터링하여 데이터 백업 또는 재해 복구 시스템을 구현합니다.
- 활동 모니터링 및 감사 (Activity Monitoring and Auditing): 모든 파일 시스템 접근 및 변경 이벤트를 기록하여 시스템 활동을 추적하고 감시합니다.
- 계층적 저장소 관리 (Hierarchical Storage Management, HSM): 데이터의 사용 빈도에 따라 고가/저가 저장 매체 간의 마이그레이션을 관리합니다.
'소프트웨어 > Security' 카테고리의 다른 글
| 프린트 출력 시 이미지 Overlay : StartPage, EndPage API (0) | 2025.09.29 |
|---|---|
| MinHook : Windows API Hooking C/C++ Library (0) | 2025.09.29 |