Linux 파일 시스템
리눅스 운영체제는 Ext(Extended File System), Ext2, Ext3, Ext4 또는 라이저 파일 시스템을 사용한다. 유닉스는 유닉스 파일 시스템(UFS)를 사용한다. 각 파일 시스템은 약간 다른 방식으로 데이터 매핑과 데이터 저장소의 문제에 접근한다. 그러나 전체적인 처리 과정과 이론은 리눅스 와 유닉스 시스템이 서로 유사하다.
Ext | 리눅스 초기에 사용되던 파일시스템이며 호환성이 없다. |
Ext2 | 호환성, 안정성, 속도가 좋아 리눅스 파일시스템의 대부분을 제공한다. |
Ext3 | 스토리지에 데이터를 저장하기 전에 Journal 영역에 데이터 변경 이력을 저장하는 저널링(Journaling)을 지원하며 현재 리눅스에서 가장 많이 사용된다. |
Ext4 | 파일 접근 속도가 향상되고 단편화를 줄이도록 설계되었다. |
Ext 파일시스템에서는아이노드(i-node)와 슈퍼블록(Super block)이라는 자료 구조를 사용한다. 각 파일 시스템의 루트는 슈퍼블록이다. 마스터 노드로 스스로 파일 시스템에 대한 정보를 보관한다. 크기, 상태, 아이노드와 덴트리 같은 파일 시스템의 다른 객체에 대한 정의는 슈퍼블록에 저장한다.
아이노드(i-node)
아이노드는 인덱스 노드의 줄임말로 객체를 관리하기 위해 파일 시스템이 사용하는 모든 메타데이터를 보관한다. 전화번호부처럼 특정 파일명에 어떤 아이노드 숫자가 할당돼 있는지 구분하기 위한 역할을 한다. 파일 사용자가 볼 수 있는 컨테이너Ext3은 성능을 올리기 위해 최근에 사용한 아이템의 디렉터리 캐시를 유지한다. 아이노드가 저장하고 있는 정보는 아래와 같다.
- 소유자 및 그룹 ID
- 접근 모드(rwx)
- 파일 형태
- 아이노드 번호
- 링크 수
- 마지막 접근 및 수정시간
아이노드를 확인하는 명령어는 ls -i [파일명], stat [파일명] | grep Inode가 있다.
슈퍼블록(Super block)
주요 설정 정보들이 기록되어 있는 영역으로, 블록의 크기와 관계없이 항상 블록 그룹의 첫 번째 블록에 위치한다. 슈퍼블록은 반드시 1KB 크기에 맞춰서 저장된다. 블록의 크기가 4KB라도 슈퍼블록은 1KB만 사용하고 나머지 3KB는 사용하지 않고 비워둔다. 슈퍼블록이 저장하고 있는 정보는 아래와 같다.
- 파일시스템의 크기
- 마운트 정보
- 데이터 블록의 총 개수
- i-node의 총 개수
- 블록 그룹번호
- 블록의 크기
- 그룹당 블록 수
- 슈퍼블록의 변경에 대한 알림
슈퍼블록은 dumpe2fs를 사용해서 확인할 수 있다.
'정보보안 > Forensic' 카테고리의 다른 글
[Forensic] 삭제된 파일 복구 프로그램 리커바(Recuva) (0) | 2021.07.13 |
---|---|
[Forensic] 삭제된 파일 복구 프로그램 디스크 드릴(Disk Drill) (0) | 2021.07.11 |
[Forensic] 모바일(안드로이드) 아키텍처 및 APK 파일 구조 (0) | 2021.06.30 |
[Forensic] 윈도우 응용프로그램 실행 흔적 아티팩트(prefetch, amcache, Jump List) (0) | 2021.06.24 |
[Forensic] Windows 레지스트리 분석 (0) | 2021.06.22 |