파일을 삭제해도 복구가 가능할까? 포렌식, 파일 제거, 복구 원리 - Whitmem
파일을 삭제해도 복구가 가능할까? 포렌식, 파일 제거, 복구 원리
Other
2024-08-28 01:40 게시 50acb88b9f299e97c200

0
0
65
이 페이지는 외부 공간에 무단 복제할 수 없으며 오직 있는 그대로 게시되며 부정확한 내용을 포함할 수 있습니다. 법률이 허용하는 한 가이드 라인에 맞춰 게시 내용을 인용하거나 출처로 표기할 수 있습니다.
This page is not to be distributed to external services; it is provided as is and may contain inaccuracies.
USB 메모리나 하드디스크에서 파일을 제거한 후에도 여전히 복구를 할 수 있기 때문에 주의를 요해야 한다. 특히 과거에 사용하던 HDD (하드 디스크 드라이브)나 이동식 디스크 (USB 저장 메모리) 같은 비휘발성 메모리의 경우 파일을 제거하더라도 여전히 복구할 수 있는 상태로, 그대로 파기하는 경우 개인정보 유출 등 문제가 발생할 수 있다. 이는 삭제를 하는 방식 때문에 발생하는데, 그 완전히 지우기 위해서(Zero-Fill)는 파일을 복사하거나 저장하는 속도와 동일하게 시간이 소요될 수 있다.
파일 삭제 원리
기본적으로 일반 HDD 드라이브나 비휘발성 메모리 디스크에서 파일을 지우게 되면 해당 파티션 정책에 따라 파일이 제거된다. 파티션 정책에 따라 파일을 제거할 때 파일이 존재하는 데이터를 모두 제거하는 것이 아니라, 파일의 데이터를 가르키는 시작 헤더를 날림으로써 파일이 제거된 것 처럼 보이게 하고, 사용 가능한 용량으로 표기하게 된다. 사용자가 계속 해당 드라이브에 파일을 쓰거나 작업하면서 위 공간에 덮어씌워지고, 부분적으로 복구가 불가능한 상태에 이르게 된다. 그렇기 때문에 보통 파일을 실수로 제거했을 때 컴퓨터 사용을 즉시 중단하고 복구 센터에 문의를 해야 그 확률을 높일 수 있다. 전문적인 업체의 경우 보통 작업 중 데이터 손실을 방지하기 위해(소프트웨어적인 방법에서) 안전하게 덤프를 하는 등 다양한 대책하에 진행하기 때문이다.
특정 파티션의 경우 파일은 기본적으로 파일의 상태 정보가 저장되는 헤더부분과 데이터 영역으로 분리되어 보관된다. 즉 파일의 존재 구조가 담겨있는 공간과, 그 내용물을 의미하는 실제 영역은 별도로 관리된다. 사용자가 파일을 실행하거나 로드하게 되면 해당 파일의 구조도를 통해 실제 데이터가 존재하는 오프셋 (포인터 위치)를 찾아가 실제 데이터 영역을 그때서야 읽기 시작한다.
한편, 파일을 제거하게 되면, 파일 목록 구조에서 해당 파일을 제거하지만 Data Region은 쓰레기 값으로 존재하게 된다.
이렇게 쓰레기 값으로 존재하는 Data Region은 언제든지 접근할 수 있는 상태이며, 다시 파일 상태 정보를 살려 해당 영역을 가르키도록 복구할 수 있게 된다. 연결 고리가 없는 쓰레기 Region은 비로소 다른 값들이 공간 차지를 시작할 때 부분적으로 덮어씌워지기 시작한다. 즉 사용자가 자주 사용할 수록 데이터의 원본이 손실되기 시작하는 것 이다.
그렇기 때문에 파일을 제거하는 속도는 복사하는 속도에 비해 말도 안되게 빠르다. 직접 4GB 가량 되는 파일을 제거한다고 하더라도 0.1초도 걸리지 않는다. 이는 실제 데이터 영역을 삭제하는 것이 아니라, 파일 상태 구조를 지워버리고 데이터 영역은 사용하면서 자연스럽게 덮어씌워지길 기다리기 때문이다. 파일을 완전히 제거하기 위해서는 데이터 영역도 쓰레기 값 또는 0 값으로 채워야하며, 파일 복사와 거의 동일한 시간이 소요된다. 우리는 이렇게 데이터 영역을 채워서 지우는 방법을 zero fill 기법이라고 부른다.
실험
한가지 실험을 해 보았다. 먼저 하기와 같은 이미지가 존재한다.
이 파일은 상기와 같은 파일 구조를 나타내고 있으며, PNG 의 고유 플래그인 50 4E 47로 시작한다. 이 파일을 임의 디스크 공간에 복사한다.
그리고 디스크 섹터를 볼 수 있는 소프트웨어로 해당 디스크를 바이너리 모드로 열어본다.
당연하겠지만, 파일의 원본과 같은 데이터가 하드디스크 드라이브 섹터 어디선가 발견된다. 파일의 데이터 영역만 보인다. 파일의 이름 등은 찾아보면 또 다른 섹터에서 발견된다.
파일의 섹터는 MFT Table 영역에서 발견되었다. 해당 파일을 제거해본다.
해당 파일을 제거하면 MRT Table에서 제거된다.
하지만 5544 섹터에는 그대로 데이터 영역이 삭제되지 않고 남아 있다. 이 데이터 영역을 그대로 덤프 띄워서 새로운 파일로 저장해보겠다.
파일을 그대로 덤프를 떠서 새로운 파일 test.png 로 저장한다.
파일이 그대로 복구되었음을 확인할 수 있다.
따라서 파일을 완전하게 제거하기 위해서는 해당 데이터 영역을 모두 지워줘야 한다. 예를 들어 디스크 드라이브에 test.png가 있다고 가정하고, 해당 test.png의 가르키는 실제 Data 영역을 Zero Fill 해 보겠다.
해당 데이터 영역을 모두 선택한 뒤 선택 영역 채우기를 통해 0 바이트로 작성한다.
그리고 다시 파일을 열어본다.
데이터 영역이 0으로 손상되었기 때문에 파일은 열리지 않으며 복구할 수 없게 된다.
파일 에디터로 열어보더라도 빈 데이터뿐이다. 적어도 소프트웨어로 복구할 수 있는 방법은 이제 없다고 보면된다. 이런 경우 포렌식을 진행한다면 파일 그 자체 포렌식은 불가능하며, 물리적인 방법이나 다른 인과 관계 요소를 통해 복구를 시도하게 된다.
포렌식
데이터를 원본 그대로 복구해야하는 경우는 까다롭지만, 포렌식의 경우 보통 원본 그대로 복구하기 보다 그 인과 관계 사실을 복구하거나 흔적을 찾아내는데 의의가 있다. 예를 들어 불법 행위가 진행된 컴퓨터 디바이스에서 파일이 지워지고 덮어씌워졌더라도 해당 파일을 추정할 수 있는 외부 인과 관계는 무수히 많다. 모든 소프트웨어와 파일 포맷, 방식을 직접 만들어서 사용한게 아닌이상 제 3자 개발사가 만든 소프트웨어, 기술을 사용했을 것이며 이러한 소프트웨어들은 기록이나 흔적을 남기기 마련이다. 예를 들어 사진을 삭제했다고 하더라도 열람한 기록이 있다면 그러한 사진을 추정할 수 있는 자료인 썸네일 데이터는 작게나마 시스템 어디엔가 저장될 수 있다. 즉 원본 파일은 없더라도 해상도가 비교적 안 좋은 추정 가능한 썸네일을 찾거나, 열람 시간, 임시 파일들을 포렌식함으로써 데이터를 복구하는 방법도 존재한다. 이는 때때로 나쁜 목적으로 사용될 수도 있으며, 개인정보 등 유출의 경로가 되기도 한다. 그렇기 때문에 보통 시스템을 사용한 뒤 해당 디스크 드라이브를 완전히 정리하고 제로 필을 해주는 것이 낫다.
SSD
공교롭게도 최근 디스크 드라이브인 반도체 드라이브 같은 경우는 사정이 조금 달라졌다. 하드디스크 드라이브의 경우는 파일을 제거하더라도 다시 덮어씌워지기를 기다리는 반면, SSD는 사용자가 파일을 제거하고 특정 시간이 지나면 트림이라는 작업이 수행되어 디스크 드라이브에서 사용되지 않는 영역이 알아서 정리된다. 이런 경우 소프트웨어적인 방법으로는 복구할 수 없으며, 하드웨어적인방법으로도 복구가 어렵거나 불가능하다.
댓글 0개
댓글은 일회용 패스워드가 발급되며 사이트 이용 약관에 동의로 간주됩니다.
확인
Whitmemit 개인 일지 블로그는 개인이 운영하는 정보 공유 공간으로 사용자의 민감한 개인 정보를 직접 요구하거나 요청하지 않습니다. 기본적인 사이트 방문시 처리되는 처리 정보에 대해서는 '사이트 처리 방침'을 참고하십시오. 추가적인 기능의 제공을 위하여 쿠키 정보를 사용하고 있습니다. Whitmemit 에서 처리하는 정보는 식별 용도로 사용되며 기타 글꼴 및 폰트 라이브러리에서 쿠키 정보를 사용할 수 있습니다.
이 자료는 모두 필수 자료로 간주되며, 사이트 이용을 하거나, 탐색하는 경우 동의로 간주합니다.