파일 생성·수정·접근 기록은 파일 속성이나 명령어로 확인할 수 있지만, 각각 의미가 다릅니다. 특히 접근 시간은 성능 설정에 따라 갱신이 늦거나 생략될 수 있으므로 파일의 실제 열람 여부를 판단할 때는 보조 자료와 함께 분석해야 합니다.
📌 핵심 5줄 요약
1. 파일 생성 시간은 현재 저장된 볼륨이나 파일시스템에 파일이 만들어진 시점을 뜻하며, 원본 문서의 최초 작성 시점과 항상 같지는 않습니다.
2. 파일 수정 시간은 일반적으로 파일 내용이 마지막으로 변경된 시점입니다.
3. 파일 접근 시간은 읽기나 실행 등 파일 데이터에 접근한 시점이지만, 운영체제 설정에 따라 정확히 갱신되지 않을 수 있습니다.
4. 리눅스의 ctime은 파일 내용의 생성 시간이 아니라 권한·소유자·링크 수 등 inode 상태가 마지막으로 바뀐 시점입니다.
5. 메타데이터만으로 사용자·프로그램·행위를 확정할 수 없으므로** 로그, 이벤트 기록, 파일 내용의 내부 메타데이터와 함께 비교해야 합니다.
📌 목차
01 | 파일시스템 메타데이터란
02 | 생성·수정·접근 기록의 차이
03 | Windows에서 확인하는 방법
04 | PowerShell로 여러 파일 분석하기
05 | Linux에서 stat 명령어 사용하기
06 | macOS에서 파일 정보를 확인하는 방법
07 | atime·mtime·ctime·btime 이해하기
08 | 파일시스템별 기록 차이
09 | 접근 시간이 정확하지 않은 이유
10 | 복사·이동·이름 변경의 영향
11 | 문서·사진 내부 메타데이터와 비교
12 | 시간정보를 분석하는 절차
13 | 보안·디지털 포렌식에서의 한계
01 | 파일시스템 메타데이터란
파일시스템 메타데이터는 파일 이름, 경로, 크기, 권한, 소유자, 파일 종류, 시간정보처럼 파일 내용 외부에 저장되는 관리 정보입니다. 운영체제는 이 정보를 이용해 파일을 검색하고, 접근 권한을 확인하며, 변경 여부를 관리합니다.
따라서 같은 문서라도 파일시스템 메타데이터와 문서 내부 속성은 서로 다를 수 있습니다. 예를 들어 문서 파일의 내부 작성자 정보는 오래된 상태로 남아 있어도, 해당 파일을 현재 컴퓨터에 복사한 날짜는 새로 기록될 수 있습니다.
02 | 생성·수정·접근 기록의 차이
| 항목 | 의미 |
|---|---|
| 생성 시간 | 현재 파일시스템 또는 저장 위치에 파일 항목이 생성된 시점 |
| 수정 시간 | 파일 데이터가 마지막으로 변경된 시점 |
| 접근 시간 | 파일 데이터가 읽히거나 실행된 마지막 시점 |
| 상태 변경 시간 | 권한·소유자·링크 등 파일시스템 상태가 바뀐 시점 |
Windows는 일반적으로 생성 시간, 마지막 접근 시간, 마지막 쓰기 시간을 제공하며, NTFS는 파일 시간을 UTC 기준으로 저장합니다. 파일시스템에 따라 생성 시간이나 접근 시간을 지원하지 않거나 정밀도가 낮을 수 있습니다.
03 | Windows에서 확인하는 방법
Windows 파일 탐색기에서 파일을 마우스 오른쪽 버튼으로 클릭한 뒤 속성을 선택하면 생성한 날짜, 수정한 날짜, 액세스한 날짜를 확인할 수 있습니다. 표시되는 항목은 파일 종류와 운영체제 버전에 따라 조금 다를 수 있습니다.
명령 프롬프트에서는 다음 명령으로 파일 목록과 기본 시간정보를 확인할 수 있습니다.
dir /T:C는 생성 시간 기준, dir /T:W는 수정 시간 기준, dir /T:A는 접근 시간 기준으로 목록을 표시하는 데 활용할 수 있습니다. 다만 표시된 시간이 실제 행위 발생 시점과 완전히 일치한다고 단정해서는 안 됩니다.
04 | PowerShell로 여러 파일 분석하기
여러 파일의 시간정보를 한 번에 확인하려면 PowerShell의 Get-Item과 Get-ChildItem을 사용할 수 있습니다.
Get-Item "C:\경로\파일명.ext" | Select-Object Name,CreationTime,LastWriteTime,LastAccessTime
폴더 안의 파일을 함께 확인하려면 Get-ChildItem "C:\경로" -File 뒤에 필요한 속성을 선택하면 됩니다. 분석 결과를 보관해야 한다면 출력 내용을 CSV로 저장해 원본 파일과 별도로 관리하는 것이 좋습니다.
Windows API는 생성·접근·쓰기 시간뿐 아니라 파일 상태 변경 시간도 다룰 수 있습니다. 또한 파일 시간은 프로그램이나 운영체제가 변경할 수 있으므로, 시간값 자체의 존재와 그 값이 신뢰할 만한지는 별도로 판단해야 합니다.
05 | Linux에서 stat 명령어 사용하기
Linux에서는 터미널에서 stat 파일명을 실행하면 파일 크기, 권한, inode, 접근 시간, 수정 시간, 상태 변경 시간 등을 확인할 수 있습니다.
예를 들어 stat report.txt를 실행하면 Access, Modify, Change 항목이 표시됩니다. 일부 파일시스템과 도구에서는 Birth 또는 생성 시간도 표시되지만, 모든 Linux 파일시스템이 생성 시간을 지원하는 것은 아닙니다.
디렉터리의 수정 시간은 파일 내용 수정과 다르게 해석해야 합니다. 디렉터리 안에서 파일이 생성되거나 삭제되면 디렉터리의 mtime이 바뀔 수 있지만, 내부 파일의 내용이 수정되었다고 해서 디렉터리 mtime이 반드시 바뀌는 것은 아닙니다.
06 | macOS에서 파일 정보를 확인하는 방법
macOS에서는 Finder에서 파일을 선택하고 정보 가져오기를 열어 기본 속성과 생성일·수정일을 확인할 수 있습니다. 터미널에서는 stat 파일명 명령어를 사용해 파일시스템 정보를 조회할 수 있습니다.
사진이나 문서처럼 내부 메타데이터가 있는 파일은 Finder의 기본 정보만으로 충분하지 않을 수 있습니다. 파일시스템 시간과 파일 내부의 촬영일·작성일·저장 프로그램 정보가 서로 다른지 비교하면 파일의 이동·복사·재저장 여부를 파악하는 데 도움이 됩니다.
07 | atime·mtime·ctime·btime 이해하기
| 용어 | 분석할 때의 의미 |
|---|---|
| atime | 파일 데이터에 마지막으로 접근한 시간 |
| mtime | 파일 내용이 마지막으로 수정된 시간 |
| ctime | inode 상태가 마지막으로 변경된 시간 |
| btime | 파일 생성 시간으로, 지원 여부는 파일시스템마다 다름 |
Linux의 ctime은 creation time의 약자가 아닙니다. 권한이나 소유자 변경, 링크 수 변화, 파일 내용 수정 등 inode 상태 변화가 반영되는 상태 변경 시간입니다. Linux 문서에서는 btime을 별도의 파일 생성 시간으로 설명하지만, 역사적으로 많은 Unix 계열 파일시스템에서 생성 시간 지원이 제한적이라고 안내합니다.
08 | 파일시스템별 기록 차이
NTFS, ReFS, FAT 계열, ext4, XFS, APFS 등은 저장하는 시간의 종류와 정밀도, 갱신 조건이 서로 다릅니다. 같은 파일을 다른 저장장치로 복사하면 원본의 일부 시간정보가 유지되거나 새로 만들어질 수 있습니다.
Windows 공식 문서에 따르면 NTFS는 파일 시간을 UTC로 저장하지만 FAT 계열은 로컬 시간 기반으로 처리될 수 있으며, FAT에서는 접근 시간의 정밀도가 날짜 단위로 제한될 수 있습니다. 따라서 외장 저장장치나 오래된 파일시스템에서 확보한 시간은 시간대와 정밀도를 먼저 확인해야 합니다.
09 | 접근 시간이 정확하지 않은 이유
접근 시간은 파일을 읽었다는 단서를 제공하지만, 모든 읽기 작업이 즉시 저장되는 것은 아닙니다. 운영체제는 디스크 쓰기 횟수를 줄이기 위해 접근 시간 갱신을 늦추거나, atime 갱신을 제한하는 마운트 옵션을 사용할 수 있습니다.
Linux에서는 noatime, nodiratime, relatime 같은 설정에 따라 접근 시간이 갱신되지 않거나 조건부로 갱신될 수 있습니다. Windows NTFS도 마지막 접근 시간 갱신을 지연할 수 있으므로, 접근 시간이 오래되었다는 이유만으로 파일이 열리지 않았다고 결론 내리면 안 됩니다.
10 | 복사·이동·이름 변경의 영향
파일을 복사하면 대상 위치에 새로운 파일 항목이 만들어지므로 대상 파일의 생성 시간은 복사 시점에 가까운 값이 될 수 있습니다. 반면 수정 시간은 복사 프로그램이나 운영체제의 처리 방식에 따라 원본 값이 유지되거나 새로 기록될 수 있습니다.
같은 파일시스템 안에서 이름만 변경하는 경우에는 파일 내용 자체가 바뀌지 않으므로 수정 시간이 그대로일 수 있습니다. 그러나 디렉터리의 상태나 파일시스템 내부 정보는 변할 수 있습니다. 이동·복사·동기화 프로그램을 거친 파일은 작업 방식과 옵션을 함께 확인해야 합니다.
11 | 문서·사진 내부 메타데이터와 비교
파일시스템 메타데이터와 파일 내부 메타데이터는 분석 대상이 다릅니다. JPEG 사진에는 촬영일, 카메라 모델, 위치정보 등이 들어갈 수 있고, 문서에는 작성자·마지막 저장자·프로그램 정보가 남을 수 있습니다.
내부 메타데이터 확인에는 파일 형식에 맞는 도구가 필요합니다. 예를 들어 ExifTool은 사진과 문서 등 여러 파일의 메타데이터를 추출할 수 있지만, 모든 파일에서 동일한 항목을 제공하는 것은 아닙니다. 내부 정보도 편집·삭제·재저장될 수 있으므로 파일시스템 시간과 일치하는지 비교 자료로 활용해야 합니다.
12 | 시간정보를 분석하는 절차
첫째, 원본 파일을 직접 열거나 수정하지 말고 사본을 만들어 분석합니다. 둘째, 파일 경로·크기·해시값·파일시스템 종류를 기록합니다. 셋째, 생성·수정·접근·상태 변경 시간을 같은 시간대 기준으로 정리합니다.
넷째, 파일 복사나 압축 해제, 클라우드 동기화, 백업 복원 같은 중간 작업이 있었는지 확인합니다. 다섯째, 파일 내부 메타데이터와 운영체제 로그를 비교합니다. 마지막으로 각 시간정보가 무엇을 보여주고 무엇을 보여주지 않는지 구분해 결론을 작성합니다.
13 | 보안·디지털 포렌식에서의 한계
파일 시간은 삭제·변경·복사·동기화 과정을 추적하는 데 유용하지만, 그 자체가 사용자 신원이나 의도를 증명하지는 않습니다. 자동 백업, 바이러스 백신 검사, 검색 색인, 미리보기 생성, 클라우드 프로그램 같은 백그라운드 작업도 파일에 접근할 수 있습니다.
또한 권한이 있는 프로그램은 파일 시간을 직접 변경할 수 있습니다. 중요한 분쟁이나 사고 조사에서는 원본 저장매체 보존, 해시값 기록, 시스템 이벤트 로그, 계정 로그, 애플리케이션 로그를 함께 확보해야 하며, 단순히 파일 속성 화면만 캡처한 자료는 해석 범위가 제한적입니다.
☑ 체크리스트
- 원본 파일을 열거나 저장하지 않고 분석용 사본을 만들었는가
- 파일이 저장된 파일시스템과 운영체제를 확인했는가
- 생성·수정·접근·상태 변경 시간을 구분했는가
- 표시 시간의 시간대와 서머타임 적용 여부를 확인했는가
- 접근 시간 갱신 제한이나 지연 가능성을 검토했는가
- 복사·이동·압축 해제·동기화 이력을 확인했는가
- 파일 내부 메타데이터와 시스템 로그를 함께 비교했는가
📖 자주하는 질문 Q&A
파일 생성 시간이 원본 파일을 처음 만든 시간인가요?
반드시 그렇지는 않습니다. 현재 저장장치에 파일 항목이 생성된 시간일 수 있으므로, 다른 컴퓨터에서 복사하거나 백업에서 복원한 파일은 원본 작성 시점과 다를 수 있습니다.
파일 접근 시간이 바뀌지 않았다면 파일을 열지 않은 것인가요?
그렇게 단정할 수 없습니다. 접근 시간 갱신이 지연되거나 비활성화되었을 수 있고, 캐시나 프로그램 동작에 따라 기록 방식도 달라질 수 있습니다.
Linux의 ctime은 파일 생성 시간인가요?
아닙니다. ctime은 inode 상태 변경 시간입니다. 생성 시간은 일부 환경에서 btime으로 제공되지만, 파일시스템과 도구에 따라 지원되지 않을 수 있습니다.
파일 시간정보를 변경할 수 있나요?
운영체제와 권한에 따라 파일 시간정보를 변경할 수 있습니다. 따라서 시간값은 중요한 단서이지만, 해시값·로그·내부 메타데이터와 함께 검토해야 신뢰도를 높일 수 있습니다.
📝 마무리
파일시스템 메타데이터 분석의 핵심은 생성·수정·접근 시간을 서로 다른 정보로 구분하는 것입니다. 시간값 하나만으로 파일의 작성자나 실제 행위를 확정하지 말고, 파일시스템 종류와 갱신 조건을 확인한 뒤 내부 메타데이터와 로그를 함께 비교해야 합니다.
