Steganography
데이터 은폐 기술 중 하나이며, 데이터를 다른 데이터에 삽입하는 기술 혹은 그 연구를 가리킨다. 크립토그래피 (cryptography)가 메시지의 내용을 읽을 수 없게 하는 수단인 반면, 스테가노그라피는 존재 자체를 숨긴다.
라고 위키백과에 정의되어 있다.
그리스어의 합성어이며 stegano(감추어져있다) + graphos(쓰다, 그리다) 로 존재 자체를 숨긴다는 정의를 용어만으로도 알 수 있다.
실제로 비밀 메세지를 전달하기 위해서도 쓰이지만 악성코드를 감추는 용도로도 쓰인다. 사용에 따라서 텍스트, 동영상, 이미지 심지어 오디오 데이터까지 숨길 수 있는 기술이다.
크립토그래피, 워터마킹과 더불어 현재까지도 유용한 기술 중 하나로 알려져 있다.
원리 및 기법
steganography의 핵심은 원본의 변화를 최소화하면서 유의미한 정보를 넣는 것이다.
자주 사용되는 기법으로 Bit Plane, 파일 뒤에 원하는 내용 삽입 등이 있다.
1. Bit Plane
MSB (Most Significant Bit), LSB (Least Significant Bit) 의 개념을 먼저 알고 들어가야 된다.
사진에서 볼 수 있 듯이 가장 왼쪽의 비트가 MSB -> 영향력이 큰 bit / 가장 오른쪽이 LSB -> 영향력이 작은 bit
이 둘을 활용하여 적절하게 연산하여 정보를 숨긴다.
JPEG 파일에서 LSB를 사용하여 숨기는 기법이 하나의 예시이다. 실제로 LSB 비트를 몇 비트정도 바꿔서 은닉하게 되면 사용자의 입장에선 LSB bit가 1~2 비트정도 바뀌어도 차이를 인식하지 못하기 때문에 유용한 기술이다.
이러한 위의 방식은 쉽게 추출이 가능하다. LSB의 비트를 전부 채운 뒤 본래의 이미지와 비교하면 LSB가 쓰였는지, 그렇게 쓰인 정보들을 모아서 어떤 정보가 은닉되어 있는지를 알 수 있다.
위의 이유때문에 LSB만 바꿨을 시에 정보 추출이 용이하다. 이것을 해결하고 더 나아간 방식이 Bit Plane 분산 삽입 방식이다. LSB와 MSB를 적절하게 사용하여 LSB에만 숨기지 않고, MSB를 제외한 하위 bit에서 랜덤하게 정보를 숨겨서 삽입하는 방식이다. (MSB를 피하는 이유는 주로 색상을 결정하는 가장 중요한 비트이기 때문)
2. 파일 뒤에 원하는 내용 삽입
해당 방식은 파일의 마지막에 파일의 종료 시점을 알리는 파일 시그니쳐가 등장하게 되면 그 이후의 정보들은 무시한다는 특성을 활용하는 방식이다.
PNG를 예시로 들자면 밑의 사진에서 마지막을 나타내는 IEND 시그니쳐가 등장하게 되면, 그 이후에는 어떤 정보들이 있던 무시된다는 것이 그 특징이다.
따라서 이 이후에 원하는 정보를 넣음으로써 Steganography 기법을 실현할 수 있다.
TOOL
[openstego] -> 스테고그래피 툴
다운 링크 -> https://github.com/syvaidya/openstego/releases
(사용하기 위해선 jre 필요 -> https://www.oracle.com/java/technologies/downloads/#java8-windows)
* 오라클 아이디가 없으신 분은 만들어야 함.
Hide Data : 숨기는 옵션
Extract Data : 스테가노그래피가 된 파일에서 추출하는 옵션
Message File : 숨기고싶은 파일을 추가
Cover File : 덮어씌울 파일
Output Stego File : Cover File을 내보낼 파일의 이름을 설정, 비밀번호 설정을 하고 파일을 숨기면 된다.
1. HIDE
예시를 들어보겠다.
위의 텍스트를 openstego 실행 화면 캡쳐 이미지에 숨길 것이다.
위 사진과 같이 해당되는 곳에 파일을 적어놓고 원하는 비밀번호를 입력한 후 Hide data를 클릭하면 된다.
위와 같이 파일이 정상적으로 저장되고 실행되는 모습을 볼 수 있다.
2. Extract
그럼 추출하는 과정은 어떻게 하는지 알아보겠다.
Extract data 부분에서 Input Stego file에 숨겨져 있던 파일, Output에 추출할 곳과 이름을 적고 password를 입력하면 된다.
정상적으로 설정했던 경로에 txt 파일이 추출 된 것을 알 수 있다.
참고
개념
https://blog.naver.com/happymaru11/222430188107
http://isweb.joongbu.ac.kr/~jbuis/2009/report-2009-3.pdf
https://blog.naver.com/sknbiz070/223070314195
Tools
https://tutto-forensic.tistory.com/3
'Forensic' 카테고리의 다른 글
[Forensic] FAT32 / NTFS / exFAT 파일시스템 정리 (2) | 2024.07.25 |
---|---|
[Forensic] zipper (3) | 2024.07.24 |
[Forensic] steganography - Mountains beyond mountains (0) | 2024.07.24 |
[Forensic] zip 파일 구조 정리 (2) | 2024.07.24 |
[Forensic] broken-png (Dreamhack) (2) | 2024.07.23 |