반응형
1. 의의
누구나 한번씩은 중요한 자료를 실수로 삭제해 곤란해 한적이 있을 것이다. 리눅스 파일시스템의 특성상 일단 삭제한 파일을 복구한다는 건 굉장히 어려운 것으로 알려져 있다. 막상 시스템에서 중요한 파일을 자기도 모르게 삭제했을 때는 당장 쓸 수 있는 방법이 거의 없는 것이 사실이다. 본 문서에서는 이러한 상황에서 쓸 수 있는 방법을 소개하도록 한다.
더 나아가, 누군가 고의로 파일을 삭제한 경우에도 이를 활용하여 해당 파일을 복구해내는 것이 가능하다. 가령 해킹 후 로그파일이 조작된 경우, 이를 조작한 삭제된 스크립트 파일을 복구해내는 것이 가능하다. 즉, 디지털 포렌식의 분야로도 확장 가능한 것이다.
2. 이론
2-1. FILE의 개념
"File"은 파일 시스템이 생각할 수 잇는 가장 최상위의 정보라고 볼 수 있다. 일명 "a sequence of bytes" 라고 한다. 사용자가 보기에는 "연속된 바이트"에 불과한 것이지만, 파일 시스템 입장에서는 "전혀 연속되지 않지만, 그렇게 보이도록" 추상화해 줄 필요가 있다. open, read, write, close 등의 system call은 모두 "file" 을 대상으로 한 일종의 file system API 라 부를 수 있겠다.
사용자가 "a.txt" 라는 파일을 열어서, 내용을 저장했다고 하자. 그러면 사용자가 저장한 내용 "이외의 내용"이 파일 시스템에 의해 추가로 저장된다. 이것이 바로 메타데이터라는 것이다. 파일유형, 퍼미션(Permission), 소유자, MACtime(마지막 수정, 접근, 변경시각), 실제파일의 크기(size), 파일의 위치 등을 포함하고 있다. 이러한 메타데이터들은 파일시스템마다 다르게 디자인되어 있다.
(ext2 같은 경우는 매우 간결하고 고정된 속성들을 담도록 디자인 되어 있고 NTFS같은 경우는 매우 다양한 속성들을 담을 수 잇게 되어 있다.)
실제데이터 영역은 말 그대로 실제 파일의 정보가 저장되는 공간이다. 파일시스템마다 서로 다른 할당단위를 가지고 있으며 기본적으로 블록을 이용한다. 디폴트 값은 4k 등이며, 할당단위로 인해 Internal Fragments 라는 Slack Space (할당되었으나 사용되지 않는 공간)이 발생하게 된다.
반응형
'Digital Forensics > Linux' 카테고리의 다른 글
리눅스(EXT2)에서 삭제된 파일 복구하기 - 6 (1) | 2010.03.02 |
---|---|
리눅스(EXT2)에서 삭제된 파일 복구하기 - 5 (0) | 2010.03.02 |
리눅스(EXT2)에서 삭제된 파일 복구하기 - 4 (0) | 2010.03.02 |
리눅스(EXT2)에서 삭제된 파일 복구하기 - 3 (0) | 2010.02.25 |
리눅스(EXT2)에서 삭제된 파일 복구하기 - 2 (0) | 2010.02.25 |