Multimedia Forensic #67 (어딘가에 숨겨진 메시지가 있을 것이다.)

 

멀티미디어 포렌식 67번 문제

 

문제 파일로 png 파일이 주어진다.

 

파일명만 보면 마치 스테가노그래피와 관련된 문제인 것 같다.

 

우선 파일을 실행해서 그림을 확인해보자.

 

[그림 1] 문제 파일 확인

 

png 파일을 실행해보면 이쁜 우주 그림을 볼 수 있다.

 

이번 문제를 풀기 위해 어떠한 방법을 사용해봐도 문제가 절대 풀리지 않았다.

 

그래서 관련된 내용을 책을 통해 확인해보면, 책에는 본 문제에 대한 힌트가 나오지만 본 문제에는 힌트와 관련된 내용은 전혀 나오지 않았다...

 

그렇기 때문에 문제를 매우 어렵게 접근하게 되어 Solve 수도 매우 적은 것 같았다.

 

책에서 나온 힌트는 다음과 같다.

 

Hint : bpp. 그건 믿을 수 없다.. 2bpp. 2X3 매트릭스 임베딩. Jessica Fridrich는 이 문제를 쉽게 해결할 것

 

 

문제에 대한 힌트를 해석해보면 다음과 같다.

 

먼저 bpp는 bit per pixel로 일정한 범위의 가짓수만큼 색을 표현하기 위해 사용되는 비트 개수를 부르는 단위이다.

 

그리고 2bpp는 2비트를 사용해서 픽셀 당 2비트를 사용한다는 의미이다.

 

힌트의 2x3 매트릭스 임베딩은 스테가노그래피에 사용되는 코딩 기법인데 힌트에서 언급된 Jessica Fridrich라는 교수가 2006년 Matrix embedding for large payloads라는 논문을 발표했었다.

 

 

모든 것을 종합해서 정리해보면 본 문제는 LSB 스테가노그래피와 매우 관련 깊은 문제이다.

 

LSB는 픽셀을 구성하는 비트 중 가장 오른쪽에 있는 1비트를 칭하지만 힌트로 2bpp가 주어졌기 때문에 픽셀 당 2비트의 데이터를 숨겼을 것으로 추측할 수 있다.

 

따라서 LSB에 대한 Python 코드를 작성하여 본 문제 해결이 가능하다.

 

[그림 2] Python 코드

 

코드를 작성한 후에 다음과 같은 명령을 입력하여 문제 파일의 결과에 대한 파일을 출력해보자.

 

[그림 3] 명령 실행

 

코드의 이름을 lsb-stego로 해주고, 문제 파일 그리고 결과 파일 이름을 result로 지정해준 명령이다.

 

코드 실행이 종료되면 결과에 대한 result 파일을 file 명령어를 통해 파일 유형을 확인할 수 있다.

 

[그림 4] 결과 파일 유형 확인

 

확인해보면 저장된 파일은 png 확장자를 갖는 그림 파일이다.

 

파일이 저장된 위치로 가서 결과를 확인해보면 다음과 같다.

 

[그림 4] result 파일 > 플래그 확인

 

파일을 실행해보면 문제에 대한 플래그를 확인할 수 있다.

 

위 방법을 통해 본 문제 해결이 가능하다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

+ Recent posts