본문 바로가기

[+] Forensic

File System - Ext (6)

이번 글에서는 파일시스템 마지막 참조 모델인 응용 프로그램 참조 모델에 대해서 알아 보도록 하겠다.

Ext 파일시스템에서는 응용 프로그램 참조 모델에 속하는 기능이 저널링 기능 밖에는 없다.

[저널링]
저널링 기능은 파일시스템의 손상을 대비하여 복구를 위해 파일시스템의 변경사항을 기록 해두는 기능으로 설명을 할 수 있다. Ext에서 저널은 슈퍼블록에서 그 위치를 지정하여 주기 때문에 파일시스템 어느 곳이든 위치 할 수 있지만 보통 inode 8을 사용한다. 
슈퍼 블록에는 저널을 위한 호환 설정 필드가 있는데 이 값을 어떻게 설정 하는가에 따라 로컬 저널 기능의 활성 여부를 결정 할 수 있다. 만약 로컬 저널 기능을 비 활성화로 설정하면 외부 저널을 사용 할 수 있다. 하지만, 이 저널의 데이터는 로컬에 저장되지 않는다.
저널에는 두 가지 동작 모드가 있다. 첫 번째로는 메타데이터의 업데이트만을 기록하는 모드이고 두 번째로는 파일시스템의 모든 업데이트를 기록하는 모드이다. 

 * 참고 : 메타데이터 업데이트만을 기록하는 모드가 default 이다.

Ext3의 저널링은 블록 수준에서 수행 되는데 만약 어떠한 inode가 1비트 변경된다면 해당 inode를 포함하고 있는 블록 모두 저널에 업데이트 된다. 저널의 첫 번째 블록은 슈퍼 블록을 위한 것이며, 전체적인 정보를 저장하는데 사용 된다.
그 뒤로 이어지는 블록들은 저널 엔트리를 위해 사용되고 만약 저널 업데이트가 마지막 블록까지 진행되었다면 다시 처음 블록으로 돌아온다.

 * 참고 : 저널의 블록 크기는 파일시스템 블록의 크기와 동일하다.

업데이트는 하나의 묶음을 기준으로 처리 되는데, 각 묶음은 순서번호를 가지고 있다. 이 순서번호는 같은 블록에 대해서는 동일하다. 각 묶음은 기술자 블록을 시작으로 하며, 기술자 블록은 묶음의 순서 번호와 어떤 파일시스템 블록이 업데이트 되었는지 나타내는 목록을 포함한다. 만약 새로운 블록에서 업데이트가 발생하면 기존에 있던 묶음 뒤 블록에 기록된다.
또, 저널에 기록되었던 파일시스템 블록은 취소가 가능하다. 취소를 할 경우 취소 블록이라는 곳에 그 목록이 순서번호와 함께 저장 된다.


[분석 시 주의 사항]
저널을 분석하게 되면 최근 파일시스템에 어떤 이벤트가 있었는지 확인 할 수 있다. 이러한 정보들을 얻기 위해서는 파일시스템의 슈퍼 블록을 분석하여 로그 위치를 확인한 뒤 저널 슈퍼 블록을 분석하면 된다.
또 유효한 묶음들을 확인 한 뒤 이 유효한 묶음들이 어떤 블록에서 업데이트 되었는지 기술자 블록을 통해 확인하면 된다.
최근이라고 표현 한 것은 이전 묶음들은 새로운 묶음들에게 덮어 씌어졌을 가능성이 많기 때문이다.



 

'[+] Forensic' 카테고리의 다른 글

File System - Ext (8)  (0) 2012.02.23
File System - Ext (7)  (0) 2012.02.23
File System - Ext (5)  (0) 2012.02.22
File System - Ext (4)  (0) 2012.02.21