[Forensics WRITEUP🟪] Steganography 개념 및 툴 정리
Steganography (스테가노그래피)
사진, 음악, 동영상 등의 파일 안에 데이터를 숨기는 것
(JPG, MP4, MP3, DOC, 폰트에 숨기기 가능함)
steganography 암호화 기술을 해독하려면 사진에서 flag 값을 찾을 수 있어야 할 것이다.
문제를 풀어보기에 앞서 PNG, JPG 파일 구조에 대해서 조금 더 알아보겠다.
PNG의 파일 구조
시그니처 | 89 50 4E 47 0D 0A 1A 0A |
푸터 시그니처 | 49 45 4E 44 AE 42 60 82 |
PNG Chunk
IHDR Chunk, PLTE Chunk, IDAT Chunk, IEND Chunk로 이루어져 있다.
JPEG의 파일 구조
SOI | Start of Image | FF D8 |
APPn | Application-Specific (JFIF/JFXX) | FF E0 ~ |
DQT | Define Quantization Table | FF DB |
SOF | Start of Frame | FF C0 FF C2 |
DHT | Define Huffman Tables | FF C4 |
SOS | Start of Scan | FF DA |
-Scan Data- | Scan Data | |
EOI | End of Image | FF D9 |
- 각 블록은 Marker에 의해 구분된다.
- JFIF APP0 Marker는 무조건 존재한다.
- JFIF extention APP0 Marker는 선택사항이며 APP0 바로 뒤에 온다.
Common Segment (signature) ![]() 사진 출처 : https://en.wikipedia.org/wiki/JPEG#Syntax_and_structure |
-> 파일에는 다음과 같은 부분에 데이터를 삽입할 수 있다. (삽입, 변조의 방법)
💡 1. 이미지 자체를 변조시켜 데이터를 숨기는 방법
LSB 변경
최하위 비트인 LSB를 변조
=> 보기에 똑같은 색인데 LSB가 1씩 차이날 때 의심해볼 수 있음
JPEG, BMP 24비트 이미지 파일에 주로 적용됨 (빨강 8, 초록 8, 파랑 8)
인간의 인식 능력은 프레임, 화소 단위에서 오차가 발생할 수 있음
그 밖에도 다양한 변조가 나타나는데, 직접 파이썬 코딩을 할 수도 있음
💡 2. 파일에 데이터를 숨겨놓는 바이트를 두는 방법
EOI 뒤의 공간
JPG, PNG, GIF등의 이미지 파일에 파일의 끝을 알리는 바이트를 뜻한다.
* EOI 바이트 뒤의 데이터는 무시된다.
JPEG | FF D9 // ~ |
PNG | 49 45 4E 44 AE 42 60 82 // ~ |
헤더 공간
+ JPG에서는 다음과 같은 공간의 데이터도 무시될 수 있다.
APPO/APP15 ~ SOFO 사이의 공간
APPO ~ APP15 | FF EO ~ FF EF (이미지의 세부 사항이 들어가는 곳) |
SOFO | FF DA ( Width, Height 등...) |
🛠️Steganography 툴
변조, 삽입된 데이터를 찾아내는 것에 도움을 주는 tool들을 모아보았다. 사진을 클릭하면 이동한다!!
OPENSTEGO
Image Steganography
bits를 조정해 이미지를 해독해볼 수 있는 사이트다.
StegOnline
Steganography Online
숨겨진 메세지를 확인할 수 있다.
Forensically
🏆Mountains beyond mountains
해당문제에서는 i_like_keroro_sticker라는 png 이미지가 주어진다.
사진을 관찰했는데 윗부분이 조금 이상하다. 윗부분을 툴을 써 해독해볼 수 있지 않을까?
비트 수준이 24라고 적혀있는데 LSB 스테가노그래피가 주로 해당 이미지에 적용된다고 해서 의심해볼 수 있었다. 하지만 관련 비슷한 툴들을 확인해봐도 별다른 내용은 나타나지 않았다.
89 50 4E 47 0D 0A ... 는 png의 헤더파일이 맞다.
010 Editor을 이용한 값에는 별다른 문제가 없는 것 같다고 생각했다. IHDR로 시작해서 IEND로 끝난다. 숨겨진 메세지로 보여지는 것은 없었다.Steganography Online을 통해 숨겨진 메세지를 해독해봤는데 해당 문구가 나타났다.
OPENSTEGO를 이용해서 itsmine.png를 추출하라는..?? 그런 내용인 것 같다. 한번 사용해보겠다.openstego를 이용해 LSB 알고리즘을 이용해 itsmine.png 파일을 생성할 수 있었다.
(이때 최신버전에서는 해독이 되지 않았다. openstego를 이용하는 것은 맞기 때문에 이전 버전으로 설치했다.)추출된 itsmine.png에는 QR코드로 추정되는 사진이 나타난다.
해당 QR코드를 스캔하면 답을 확인할 수 있다.