압축
목차
정의 및 설명[편집]
아카이브 파일은 소스 볼륨과 미디어 정보, 파일 디렉터리 구조, 오류 감지, 복구 정보, 파일 설명을 포함할 수 있는 메타데이터가 포함된 하나 이상의 파일로 이루어진다. 아카이브 파일은 여러 개의 파일을 하나의 파일로 압축하여 저장 및 전송할 수 있다. 아카이브 파일의 종류는 zip, rar, 7Zip, tar 등이 있다.
기술 현황[편집]
압축 파일 내부 구조 분석[편집]
압축 파일 포맷에는 PKZIP, 7Zip, RAR 등이 존재한다.
포맷 종류 | 시그니처 | 확장자 | 포맷 설명 |
---|---|---|---|
PKZIP | 50 4B 03 04 | .zip | PKZIP [1]은 다음과 같은 포맷 구조를 가진다. PKZIP은 크게 Local file header, central directory structure, end of central directory로 나뉜다. Local file header는 각 ZIP item에 대한 정보를 포함하며, 실제 데이터가 압축되어 저장된다. Central directory structure는 각 local file header에 대한 정보를 포함한다. 또한 end of central directory는 ZIP파일 마지막에 위치하며, central directory structure에 대한 정보를 포함한다. |
7Zip | 37 7A BC AF 27 1C | .7z | 7Zip [2] 은 오픈 소스로 배포되고 있는 압축 소프트웨어이다. |
RAR | 52 61 72 21 1A 07 00 | .rar | Winrar [3]은 유진 로셜이 개발한 데이터 압축 및 파일 압축을 위한 파일 포맷이다. |
파일을 압축하는 방법에 따라 다양한 압축 알고리즘이 존재한다. 압축 알고리즘은 DEFLATE, Bzip2, LZMA 등이 있다.
압축 알고리즘 종류 | 설명 |
---|---|
DEFLATE | Deflate [4] 알고리즘은 무손실 압축 알고리즘으로 LZ77과 허프만 인코딩으로 구성된다. |
Bzip2 | bzip2는 버로우즈-휠러 변환을 써서 자주 반복되는 문자열을 같은 문자열로 변환한 다음 MTF 변환, 허프만 부호화를 차례대로 적용하는 구조이다. |
LZ77 | LZ77은 다음 그림처럼 같은 문자열이 다시 나오는 위치(pointer), 일치하는 문자열의 길이, 그리고 일치하는 문자열 다음에 나오는 문자를 저장한다. 일치하는 문자열이 많을수록 데이터의 양을 최대한 줄일 수 있다. LZ77으로 줄어든 문자열을 허프만 인코딩을 이용하여 한 번 더 데이터를 압축한다. |
LZMA | LZMA(Lempel–Ziv–Markov chain algorithm)는 데이터 압축에 쓰이는 알고리즘이다. 1998년 이후로 계속 개발 중이며 7-zip 압축 프로그램의 7z 형식에 쓰인다. 이 알고리즘은 LZ77과 어느 정도 비슷한 사전 압축 계획을 이용하며 일반적으로 bzip2보다 더 높을 만큼의 높은 압축률을 제공하며 최대 4G의 가변 압축 사전 크기를 제공한다. |
압축 프로그램 사용 흔적[편집]
Geoffrey Fellows [5] 는 WinRAR를 사용하였을 때 PC에 남는 흔적을 분석하였다. 특정 파일을 더블클릭한 경우, ‘Extract to’로 압축 푼 경우, drag and drop으로 압축 파일 내의 파일을 추출하였을 경우, WinRAR 파일 내의 실행 파일을 실행한 경우에 각각 어떠한 형태로 임시 파일이 남는지 정리하였다.
임시 파일은 일정한 시간이 지나면 삭제될 수 있지만, EnCase와 같은 복구 도구를 이용하여 복구할 수 있다.
정현지는 Geoffrey Fellows의 연구를 확장시켜 WinRAR뿐만 아니라 우리나라에서 많이 사용되는 빵집, Alzip 등을 사용하였을 때 남는 임시 파일들을 정리하였다.
압축 데이터 블록(파편) 분류[편집]
박보라 [6] 는 비할당 영역에서 삭제된 압축 파일의 파편을 찾는 것에 대해 연구하였다. 비할당 영역에는 압축된 데이터가 비정상적이고, raw 데이터 형태로 남아있기 때문에 signature 기반의 방법으로 어떤 파일의 파편인지 알기 어렵다. 이때 압축된 데이터인지 확인하기 위해서는 NIST에서 제공하는 통계테스트를 이용하여 압축된 데이터를 판별할 수 있다.
실험을 통해 Frequency test, Serial test, Approximate entropy test, Cumulative sum test가 90% 이상의 확률로 압축문을 정확하게 판별해냈다. 4가지 테스트 중에 하나라도 랜덤이라고 판별되면, 해당 파편이 암호화된 데이터라고 판단한다.
삭제된 압축 파일(데이터) 복구[편집]
현재 사용되는 디지털 포렌식 도구(데이터 복구 도구 포함)에서 삭제된 압축 파일을 복구해주는 기능을 지원한다.
손상된 압축 파일(데이터) 복구[편집]
Ralf D. Brown [7] 은 DEFLATE 알고리즘을 사용하는 손상된 아카이브 파일에서 텍스트를 복구하는 것에 대한 연구를 하였다. Ralf D. Brown는 DEFLATE 알고리즘을 사용하는 파일 한 블록의 앞부분이 손상되었다고 가정한다. 한 블록의 앞부분이 손상되더라도, 뒤에서부터 한 비트씩 읽으면 손상된 압축 파일의 데이터를 복구할 수 있다.
관련 도구[편집]
삭제된 압축 파일을 복구해주는 기능을 지원해주는 도구는 Recover My Files [8] , EaseUS Data Recovery [9] 가 있다. 손상된 DEFLATE 파일을 복구하는 도구는 Ralf D. Brown가 개발하였다. 이 도구를 이용하여 텍스트로만 이루어진 손상된 DEFLATE 압축 파일을 복구할 수 있다. 손상된 압축 파일을 복구하는 방법을 통해 복구한 후, 언어 모델에 기반하여 복구율을 높였다.
향후 연구[편집]
최신 버전의 아카이브 파일을 대상으로 아카이브 파일의 사용 흔적을 분석해야 한다. 아카이브 파일의 사용 흔적은 아카이브의 버전에 따라 다를 수 있기 때문이다. 아카이브 파일을 사용했던 흔적을 수집하여 아카이브 종류 별로 보여주는 도구를 개발할 필요가 있다. Ralf D. Brown은 텍스트로만 이루어진 아카이브 파일에서 텍스트를 복구하는 것에 대해 연구하였다. 텍스트가 아닌 바이너리로 이루어진 아카이브 파일이 손상되었을 때, 컨텐츠를 복구하는 것에 대한 연구가 필요하다. 텍스트 보다 바이너리로 이루어진 파일을 압축하는 경우가 많기 때문이다. 그리고 이러한 경우에 복구한 컨텐츠를 추출해주는 도구를 개발할 필요가 있다. 박보라가 연구한 방법으로는 암호화된 파일과 아카이브 파일의 파편을 구분하기 어렵다. 비할당 영역에 존재하는 아카이브 파일의 파편을 찾는것과 이전에 암호화된 파일과 아카이브 파일의 파편을 구분하는 것에 대한 연구가 필요하다. 그리고 암호화된 파일과 아카이브 파일의 파편을 구분하고 아카이브 파일의 파편이라면 컨텐츠를 복구하는 도구를 개발할 필요가 있다.
참고문헌[편집]
- ↑ https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip-printable.html
- ↑ http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7z920.tar.bz2/download?use_mirror=jaist
- ↑ Winrar, http://www.rarlab.com/rar_add.htm
- ↑ Deflate, http://en.wikipedia.org/wiki/DEFLATE
- ↑ http://www.sciencedirect.com/science/article/pii/S1742287610000022
- ↑ http://www.dbpia.co.kr/Journal/ArticleDetail/871353
- ↑ http://www.dfrws.org/2011/proceedings/19-351.pdf
- ↑ Recover my files, http://www.recovermyfiles.com/recover-deleted-zip-files.php
- ↑ EaseUS Data Recovery, http://www.easeus-deletedrecovery.com/recover-deleted-files/recover-deleted-zip-rar-files.html