디스크 증거 수집 단계 중 스테가노그래피 파일 분석은 중요한 과정이다. 스테가노그래피 파일들은 겉으로 보이는 것 이상의 정보를 담고 있어 올바른 스테가노그래피 파일 선별과 분석 방법을 알아야 한다. 본 글은 다양한 스테가노그래피 기법 중 파일의 시작과 끝을 나타내는 헤더와 푸터 시그니처를 사용하여, 파일 끝에 다른 파일을 이어 숨기는 스테가노그래피 방법을 분석 내용이다.
실습 예로, 블로그의 로고 이미지인 'Logo_Image(Original).png' 파일 아래에 'Steganography.txt' 파일이 압축된 'Steganography.zip' 파일을 숨기고, 이렇게 만들어진 스테가노그래피 파일은 'Logo_Image.png'로 저장하였다. 'Logo_Image.png' 파일의 크기는 숨겨진 'Steganography.zip' 파일과 원본 'Logo_Image(Original).png' 파일의 크기를 합한 것과 같다. 즉, 스테가노그래피 파일의 크기는 원본 파일 크기와 숨김 파일 크기의 합이다. 이러한 이유로 디스크 분석 과정에서 파일 크기가 상대적으로 크면 스테가노그래피 파일을 의심해 보아야 한다.
아래는 실습을 위해 생성한 파일을 포함한 디스크를 Autopsy로 확인 한 모습이다. 'Logo_Image(Original).png' 파일의 크기는 136,500이고, 'Steganography.zip' 파일의 크기는 145이다. 'Logo_Image.png' 파일은 두 파일의 데이터를 모두 포함하고 있어, 파일의 크기가 136,645 임을 확인할 수 있다. 은닉된 파일의 추출을 위해 먼저 'Logo_Image.png' 파일을 추출한다.
'Logo_Image.png' 파일을 HxD로 열어 은닉된 파일을 추출한다. 확장자인 png와 동일한 헤더시그니처가 정상적으로 있으므로 푸터 시그니처를 검색하여 파일의 끝 영역에 접근한다. 이때 파일의 푸터 시그니처와 우연히 일치하는 파일 데이터가 존재할 수 있으므로 올바른 푸터시그니처가 맞는지 판별해야 한다. 검색된 푸터 시그니처 이후의 데이터가 흔히 알려진 파일의 헤더 시그니처와 일치하는 값이 없다면, 이는 일반적인 파일 데이터로 추측해 볼 필요가 있다.
아래와 같이 검색된 푸터 시그니처 이후에 알려진 파일의 헤더 시그니처 값인 '50 4B 03 04'가 나타나게 된다면 스테가노그래피 파일일 확률이 매우 커진다. 이때 파일의 헤더 시그니처부터 푸터 시그니처까지 복사하여 추출했을 때, 정상적으로 파일이 열린다면 이는 스테가노 그래피 파일로 확정 지을 수 있다.
추가적으로 '50 4B 03 04'는 zip 파일 혹은 오피스 파일의 헤더시그니처이다. 해당 파일의 푸터 시그니처 값인 '50 4B 05 06'을 검색하여 파일의 끝 지점을 파악하여 해당 영역까지 복사하여 파일을 추출한다. 이때 압축 파일의 구조를 알고 있다면 아래의 사진에서 선택한 영역까지가 전체 파일 데이터임을 알 수 있다.
추출한 데이터를 'Steganography_1.zip'을 이름으로 하여 새로운 파일로 저장하고 내부를 열어본 내용이다. 사실 '50 4B 03 04'는 압축 파일과 오피스 파일이 모두 될 수 있다. 즉 확장자를 '.docx', '.xlsx', 'pptx', 'hwpx' 등을 모두 시도해보아야 하지만 Hex값을 보면 이는 내부에 'Steganography.txt' 파일이 존재하고 파일의 내용이 'Steganography'임을 확인할 수 있다.