보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

멀티미디어 스테가노그래피

2020.08.04

19,338


 

 

 

 

01. 개요

 

스테가노그래피(Steganography)는 이미지나 동영상 등과 같이 눈에 보이는 곳에 비밀을 숨기는 은닉 수법이다. 고대 그리스 때부터 은밀한 메시지를 주고 받는 방식으로 사용해왔으며, 9·11 테러 당시 오사마 빈 라덴이 테러범들과 메시지를 주고받을 때 스테가노그래피가 사용되어 전세계적으로 이슈가 되었다.

 

스테가노그래피는 디지털 세상으로 넘어와 여러 방법으로 진화했다. 특히 해커들은 단순히 비밀 메시지를 전달하는 목적 외에 악성코드를 숨기는 데 스테가노그래피 기법을 사용하고 있다.

 

과거의 스테가노그래피는 사진 속에 데이터를 조작하여 은닉하는 방식을 사용했다. 최근에는 용량이 큰 데이터를 숨기기 위해 영상이나 오디오를 이용하여 데이터를 은닉한다. 더욱이 멀티미디어의 발전에 따라 일반인도 쉽게 초고화질 동영상을 만들 수 있고 동영상 자체의 용량 또한 크기 때문에 스테가노그래피의 최대 약점이었던 겉으로 드러나는 메시지보다 파일 용량이 커지는 문제점을 감출 수 있다.

그러므로 동영상 스테가노그래피는 은닉할 데이터가 용량이 클 경우 가장 알맞은 은닉 장소로 이용된다.

별도의 장비 없이 가상의 볼륨(Volume)을 생성하여 동영상 스테가노그래프 만드는 방법과 이를 유추하는 방식에 대해 정리해 보고자 한다. 

 

동영상 스테가노그래피는 전통적으로 공간을 활용한 방식과 주파수를 활용한 방식이 있었으며, 해당 방식을 수행하기 위해서는 철저하게 준비된 동영상과 시간이 필요하다. 따라서 탐지 될 확률을 적었으나, 전문적인 사용자가 아니면 실질적인 사용은 어려웠다.

 

 

[표 1] 동영상 스테가노그래피 방식

 

02. 멀티미디어 스테가노그래피


1) VeraCrypt

 

암호화된 가상의 볼륨(Volume)을 생성하여 볼륨에 저장된 데이터를 보호하는 암호화 프로그램이다. VeraCrypt로 볼륨에 저장된 데이터를 접근하기 위해서는 VeraCrypt 소프트웨어가 필수로 필요하고 볼륨 생성 당시 만든 비밀번호를 입력하여 마운트한다.

 

VeraCrypt의 기능 중 숨겨진 볼륨(Hidden Volume)은 기존 암호화된 볼륨 외에 추가의 숨겨진 볼륨을 말한다. [그림 4-1]처럼 일반 볼륨(Normal Volume)은 숨겨진 볼륨이 없는 암호화된 볼륨을 의미하고, [그림 4-2]처럼 일반 볼륨 공간에 추가적으로 숨겨진 볼륨이 암호화된 볼륨이다.

숨겨진 볼륨의 장점은 존재여부를 알 수 없으며, 그 이유는 숨겨진 볼륨이 없을 시 그 영역은 무작위 데이터로 채워지고 숨겨진 볼륨과 랜덤 데이터를 구별할 수 없기 때문이다

 

VeraCrypt는 암호를 입력 받아 복호화를 시도하고 만약 암호가 실패하면 숨겨진 볼륨을 복호화 한다. 일반 볼륨은 Decoy로 적당히 어려운 패스워드를 설정하고 숨겨진 볼륨은 패스워드 강도를 높게 하여 데이터를 성공적으로 숨길 수 있다.

 


[그림 1] 일반 볼륨(Normal Volume) 구조

 


[그림 2] 숨겨진 볼륨(Hidden Volume) 구조

 


[그림 3] 일반 볼륨(Normal Volume)  숨겨진 볼륨(Hidden Volume) 마운트

 

2) MP4 파일 스테가노그래피 원리

 

많이 접할 수 있는 MP4의 정식명칭은 MPEG-4 part 14, 미디어 컨테이너 포맷 표준이며, 고화질의 동영상을 높은 압축률로 저장 및 재생하는 기술이다. MP4 파일 포맷은 크게 헤더, 미디어 데이터, 미디어 헤더로 구성되며, 파일 구조는 데이터와 메타데이터 박스 구조로 되어있다.

 


[그림 4] MPEG-4 file 데이터 구조(Boxes/Atoms) 

 

 

[표 2] MPEG-4 file 포맷 헤더

 

3) VeraCrypt 스테가노그래피 

 

MP4 파일 구조 중 미디어 데이터영역을 수정하여 데이터를 은닉한다. VeraCrypt로 만든 컨테이너 파일에서 외부 볼륨헤더와 헤더 백업 영역을 삭제하고 mp4의 미디어 데이터 영역에 삽입한다. 미디어 데이터 영역에 기존 미디어 데이터를 정상적으로 실행하기 위해서 가짜 데이터(fake data)를 숨겨진 볼륨(Hidden Volume) 헤더 앞에 추가한다.

 


[그림 5] MP4 스테가노그래피 (출처 : MP4 Steganograpy:Analyzing and Detecting TCSteg) 

 

 

[그림 6] MP4 스테가노그래피

 

4) VeraCrypt 스테가노그래피 생성

 

MP4 파일의 미디어 데이터영역을 수정하여 데이터 삽입한다. 재생이 되는 스테가노그래피 파일을 만들기 위해 현재 공개되어 있는 python 스크립트인 tcsteg2.py를 사용하였다. 

 

 

[그림 7] tcsteg2.py 제작자 및 소스코드 일부 (출처 : keyj.empy.de)

 

VeraCrypt로 생성한 볼륨 10MB 파일을 준비된 동영상에 삽입하여 [그림 4-8]처럼 볼륨의 크기만큼 용량이 증가하였다. 만들어진 동영상은 원본 동영상과 동일하게 재생되며, VeraCrypt로 마운트도 가능하다.

 


[그림 8] 스테가노그래피 작성 및 숨겨진 볼륨 정상 인식

 

5) VeraCrypt 스테가노그래피 분석

 

MP4 Inspector 툴로 MPEG-4 File의 전반적인 비교와 데이터 구조(Boxes/Atoms) 비교하여 분석하였다.

원본 동영상 파일과 스테가노그래피 파일을 비교하면, 두 개의 파일 모두 MP4 형식의 시그니처를 가지고 있고 동일한 재생시간과 화질을 보여준다.

크게 변경된 부분을 살펴보면 앞서 확인한 파일의 크기가 증가하였고, 신규로 free Box가 생성되어 총 Box 수가 1개 증가하였다.

 

 

[그림 9] 원본 동영상 MP4 파일 정보

 

 

[그림 10] 스테가노그래피 MP4 파일 정보

 

구조 중에 mdat box 크기의 증가로 숨긴진 볼륨이 mdat box 추가되어 있는 것을 확인할 수 있다.

 

 

[그림 11] mdat 크기 증가

 

여기서 살펴봐야 할 MPEG-4 file 포맷 중 stco 헤더이다. stco는 청크의 위치 테이블이 들어 있으며, moov(movie box)에 위치한다. 이 헤더는 mdat(미디어 데이터)의 위치를 순차적으로 참조하기 위해 샘플들을 매핑하고 있기 때문에 mdat box가 스테가노그래피로 크기가 증가하였으므로 stco가 참조하는 오프셋 값도 변경되게 된다.

 


[그림 12] 스테가노그래피 stco 값 변경

 

03. 멀티미디어 스테가노그래피 탐지

 

1) MP4 동영상 스테가노그래피 탐지 원리

 

동영상 속에 스테가노그래피를 탐지하는 것은 어려운 일이지만, 분석을 통해 동영상 속에 숨어있는 볼륨을 찾는 방법은 존재한다.

[그림 4-12] 처럼 볼륨이 삽입되면서 mdat box가 변경되고, 동영상을 제대로 재생하기 위해 stco의 Chunk Offset 값이 변경되는 걸 확인 할 수 있다. 

 

정상적인 동영상의 오프셋 시작위치는 65536 에서 172032 사이에 존재하게 되고, [그림 4-13] 처럼 stco의 오프셋 시작 위치가 65536 에서 172032 사이를 벗어나게 된다면 해당 동영상이 스테가노그래피인지 합리적인 의심을 해봐야 한다.

 


[그림 13] 일반 볼륨(Normal Volume)  숨겨진 볼륨(Hidden Volume) 실행

 

2) MP4 동영상 스테가노그래피 탐지

 

동영상 파일 구조 뷰어가 설치되어 있지 않다면, 공개되어 있는 python 스크립트를 이용하여 유연한 분석이 가능하다.

[그림 4-15]는 동영상의 오프셋 시작위치를 찾아 주는 스크립트 결과 화면이다. 사용한 스크립트는 mdat의 시작되는 오프셋 위치를 계산하여 해당 동영상에 스테가노그래피가 사용여부 및 숨겨진 데이터의 크기를 대략적으로 표현한다. 

 

 

[그림 14] python-script-detect-hidden-data 소스코드

 


[그림 15] python-script-detect-hidden-data 결과

 

04. 결론

 

범죄가 다양해 지면서 포렌식에 관한 뉴스를 자주 접할 수 있다. 특히 최근에는 디지털성범죄가  사회적으로 커다란 화제가 되었으며 해마다 늘어나는 추세이다. 이런 디지털범죄가 지능적으로 발전해 가면서 자신에게 불리한 데이터를 지우지 않고 소장하기 위해 스테가노그래피의 관심도 커지고 있다. 

 

스테가노그래피는 고대부터 이어져 온 방식이지만, 현재에는 데이터암호화, 사이버범죄, 악성코드 유포 등 수 많은 분야에서 활용되고 있으며, 오랜 기간 의심 받지 않기 위해 기술도 발전해가고 있다. 

 

지금까지 동영상에 데이터를 직접 은닉해보고, 은닉된 데이터를 찾아보는 방법에 대해 설명하였다. 현재 가지고 있는 동영상이 스테가노그래피 파일 일수도 있는 합리적인 의심도 해보길 바란다.

 

05. 참고자료

 

[1] MP4 Steganography: Analyzing and Detecting TCSteg 

https://dl.acm.org/doi/pdf/10.1145/2978178.2978181

[2] 안티포렌식 분석 - 오디오와 영상에 숨겨진 메시지 분석

[3] Real Steganography with TrueCrypt

https://keyj.emphy.de/real-steganography-with-truecrypt/

[4] PreviewFilesmp4.py

https://www.forensicmag.com/product-release/2012/01/python-script-detect-hidden-data

[5] VeraCrypt - Documentation

https://veracrypt.codeplex.com/documentation