Computer >> 컴퓨터 >  >> 시스템 >> Windows

윈도우 파일 스트림(NTFS 스트림)이란? 개념부터 숨김 데이터 활용법까지

마이크로소프트가 윈도우를 설계할 때 흥미로운 방식을 택했습니다. 파일 생성 날짜 같은 메타데이터를 일반적인 속성 영역에 저장하는 대신, 별도의 숨겨진 공간에 보관하도록 만든 것입니다. 이 숨겨진 공간을 바로 파일 스트림(File Stream)이라고 부릅니다.

이 글에서는 파일 스트림의 개념과 실제 활용 방법을 단계별로 살펴보겠습니다.

파일 스트림의 기본 구조

윈도우 시스템의 모든 파일에는 기본 스트림(default stream)이 하나씩 존재하며, 응용 프로그램은 이 공간에 정보를 저장합니다. 또한 하나의 파일은 여러 개의 스트림, 즉 대체 스트림(alternate stream)을 가질 수 있지만, 실제로 응용 프로그램이 대체 스트림을 적극적으로 활용하는 경우는 드뭅니다.

파일에 텍스트 정보 숨기는 방법

응용 프로그램 입장에서는 데이터를 기본 스트림이 아닌 대체 스트림에 저장하는 것이 좋은 습관입니다. 하지만 대부분의 프로그램은 이를 고려하지 않고 기본 스트림만 사용합니다. 사실 대체 스트림을 만드는 것은 명령 프롬프트에서 file:stream 형식으로 입력하는 것만큼 간단합니다.

파일에 텍스트 정보를 숨기려면 대체 스트림을 생성하고 그 안에 내용을 저장하면 됩니다. 여기서는 예시로 "program.exe"라는 파일을 사용해 보겠습니다.

먼저 명령 프롬프트를 연 뒤 다음과 같이 입력하여 새 스트림을 생성합니다:

notepad "program.exe:hide"

그러면 아래와 같은 확인 창이 나타납니다.

윈도우 파일 스트림(NTFS 스트림)이란? 개념부터 숨김 데이터 활용법까지

메모장은 program.exe 내부에 "hide"라는 이름의 대체 스트림을 생성합니다. '예'를 클릭하면 원하는 텍스트를 자유롭게 저장할 수 있습니다.

윈도우 파일 스트림(NTFS 스트림)이란? 개념부터 숨김 데이터 활용법까지

"program.exe" 파일을 다른 위치로 복사하면 이 스트림도 함께 따라갑니다. 스트림에 접근하려면 정확한 이름('hide')을 알아야 하므로, 제3자가 내용을 발견하고 읽기가 한층 어려워집니다.

파일이 외부 출처에서 왔는지 확인하는 방법

윈도우는 이 기능을 활용해 파일의 출처를 관리합니다. 파일이 어디에서 유래했는지 파악할 수 있다는 점에서 보안 강화에도 큰 도움이 됩니다. 파일이 다른 컴퓨터나 인터넷에서 왔는지 확인하려면 해당 파일을 마우스 오른쪽 버튼으로 클릭한 후 속성(Properties)을 선택하세요.

윈도우 파일 스트림(NTFS 스트림)이란? 개념부터 숨김 데이터 활용법까지

'일반' 탭에서 파일 출처에 대한 정보를 확인할 수 있습니다.

윈도우 파일 스트림(NTFS 스트림)이란? 개념부터 숨김 데이터 활용법까지

파일 스트림 관리 방법

스트림을 만드는 것은 쉽지만, 윈도우에는 어떤 파일에 스트림이 존재하는지 확인하거나 파일과 연결된 스트림 목록을 조회할 수 있는 기본 도구가 없습니다. 이 정보를 확인하려면 "Streams"라는 간단한 유틸리티를 사용해야 합니다. 이 프로그램은 현재 마이크로소프트 직원으로 재직 중인 Mark Russinovich가 오래전에 개발한 도구입니다.

Sysinternals 웹사이트에서 Streams를 무료로 다운로드할 수 있습니다.

이 프로그램을 사용하면 특정 파일에 여러 개의 스트림이 있는지 확인할 수 있으며, 각 스트림의 이름과 크기도 함께 표시됩니다.

아래 이미지를 보면 많은 파일에 'Zone.Identifier:$DATA' 스트림이 포함되어 있는 것을 알 수 있습니다. 이 스트림은 윈도우가 파일의 출처 정보를 저장하기 위해 사용하는 것으로, 파일이 다른 컴퓨터나 인터넷에서 유래한 경우에만 존재합니다.

윈도우 파일 스트림(NTFS 스트림)이란? 개념부터 숨김 데이터 활용법까지

기본적으로 윈도우는 인터넷에서 다운로드한 프로그램의 실행을 차단합니다. 파일의 안전성이 확실하다면 Streams를 사용해 이 데이터를 삭제할 수 있습니다. 그러면 프로그램을 실행할 때마다 차단 해제 여부를 묻는 메시지가 더 이상 나타나지 않아 편리합니다.

스트림을 확인하는 다른 방법

윈도우 비스타나 7을 사용 중이라면 dir 명령어에 /R 옵션을 붙여 스트림을 확인할 수 있습니다. 아래 이미지처럼 /R 옵션을 사용하면 스트림 정보가 함께 출력됩니다.

윈도우 파일 스트림(NTFS 스트림)이란? 개념부터 숨김 데이터 활용법까지

"file.exe"에 두 개의 스트림이 존재하는 것을 확인할 수 있습니다. 하나는 이름이 없는 기본 스트림이고, 다른 하나는 "Zone.Identifier:$DATA"입니다. 외부 컴퓨터나 인터넷에서 유래하지 않은 파일에는 이 스트림이 존재하지 않습니다.

파일 안에 기밀 데이터를 숨길 수 있는 다른 방법을 알고 계신가요? 댓글로 여러분의 팁을 공유해 주세요!