Steganography

Kail-KM
|2015. 9. 16. 17:21
Steganography


스테가노그래피란 이미지 파일이나 mp3 같은 파일에 중요하거나 기밀적인 파일을 넣어 그 존재를 숨기려 하는 것이라고 간략하게 말할 수가 있다. 예를 들어 드라마 유령을 봤다면 한번쯤은 스테가노그래피에 대해 들어보았을 것이다. 사진에 특정한 파일을 숨겨놓고, 제 3자로부터 해당 파일을 은닉시키려는 방법 중에 하나이자, 일상이나 평범한 사진 안에 파일을 넣는다면 인지하기 조차 힘든 방법이다. 

대략적인 구성은 위와 같다. 커버 파일과 은닉시키고자하는 파일이 있으며 스테고어플리케이션을 통해 스테고파일을 생성할 수가 있다. 이름에서와 같이 스테고파일은 커버 파일과 같은 모양이지만 그 안에 은닉하고자했던 데이터가 숨겨져있다. 이제 밑에서 직접 실습을 통해 어떠한 방식으로 진행되는지 알아보자



Practice - Input


이를 실습하기 위해선 간단한 툴이 있으면 된다. 여기서 사용할 도구는 OpenStego로 조작 또한 간단하며 자체적으로 압축을 해주는 것 같다. 스테가노그래피에 대하여 공부를 하던 중 은닉하고자 하는 파일의 데이터가 그대로 노출되기에 HxD같이 바이너리를 보아 시그니처를 찾을 수도 있으며 문자열 또한 그대로 나타난다고 되어있었다(이미지 파일인데 문자열이 존재한다는 것 자체가 의심을 받기에 충분하다). 하지만 아래에서 보겠지만, 이 툴을 사용하였을땐 시그니처나 문자열이 그대로 나타나지 않아 은닉에 더욱 도움이 되는 것 같다. 해당 툴은 http://www.openstego.com/ 여기서 다운을 받으면 된다.

해당 툴을 열어 넣고자 하는 파일을 Message File에 경로를 설정해주고 Cover File로는 보여지고자 하는 파일을 설정해 준다. 그리고 Otput Stego File에는 파일을 은닉시킨후 저장하고자 하는 경로와 이름을 설정해주면 된다.


비밀번호 또한 설정을 할 수가 있는데 여기선 임의로 "1234"로 진행하였다. 모든 설정을 끝마치고 Hide Data를 누르면 아래와 같이 성공 메세지박스를 확인할 수가 있으며, 이제 Output Stego File의 경로로 지정한 곳에 간다면 해당 파일이 존재하는 것을 확인할 수가 있을 것이다.


아래는 해당 파일의 결과이다. 왼쪽의 사진을 보면 결산 보고서의 양식인 것을 알 수가 있으며, 이는 회사원이라면 한번쯤은 볼 수가 있다. 만약 해당 회사에서 이러한 양식이 아닐 경우 의심 받을 수는 있지만, 여기선 일반적인 실습이므로 예외 사항은 제외시키고 시나리오를 이어나간다. 결과 파일과 커버 파일의 그림이 일치하는 것을 볼 수가 있다. 하지만 이미 오른쪽 사진의 .png 파일에는 은닉하고자 했던 데이터가 들어가 있다.

하지만 HxD로 열어서 확인을 했을 때는 전혀 다른 결과를 발견할 수가 있다(물론 Hash 값도 상이하다). 파일의 시그니처는 둘다 같게 시작하지만 이후의 데이터 부분에서는 서로 다른 내용인 것을 확인할 수가 있으며, 여기서 삽입했던 readme.txt의 내용은 "Hello World!" 이지만 해당 문자열을 검색해도 발견되지가 않았으며, 이후에 추가적으로 Cover File 안에 다른 .png를 새로 넣어봤지만 .png의 시그니처인 "PNG"가 발견되지가 않았다는 것을 통해 해당 툴이 자체적으로 인코딩하여 데이터 은닉에 도움을 주는 것 같다.


Practice - Output


은닉했던 데이터를 다시 산출하는 방법 또한 간단하다. Input Stego File에 위에서 결과로 나왔던 파일을 지정해주고, Output Folder for Message File의 부분에는 산출된 파일을 저장할 경로를 지정해주면 된다. 그리고 위에서 걸었던 패스워드인 "1234"를 입력해주고 Extract Data를 눌러준다.


과정이 완료되면 성공 메세지 박스가 뜨게되며 지정했던 경로에 은닉되었던 데이터가 나오는 것을 확인할 수가 있다. 숨겨놓았던 데이터 그대로 readme.txt라는 이름부터 시작하여 "Hello World!" 라는 문자열까지 그대로 나타나는 것을 확인할 수가 있다. 이를 통해 은닉데이터의 손실이 없음을 알 수가 있다.


Conclusion


스테가노그래피에 대해서 알아보았는데, 이 기술 또한 이전에 비하여 발전이 된 것임에는 틀림없다. 예전에 작성된 글들을 보면 압축이나 암호화 되지 않아 바이너리를 확인하면 해당 시그니처를 쉽게 확인할 수가 있었지만, 이제는 툴에 의해 자체적으로 압축(혹은 암호화)이 되어 시그니처나 헤더, 문자열 등을 확인하여 은닉데이터의 존재여부를 확인하기가 어렵다. 

이러한 스테가노그래피는 물론 악용의 소지가 크다고 볼 수가 있다. 기업의 중요 문서를 유출한다던지 개인정보를 유출할때 이러한 방법을 통해 범행 사실을 확인하는데 곤란을 겪기 때문이다. 하지만 이를 반대로 개인의 데이터를 숨기는데 사용할 수도 있다. 중요한 문서의 경우 이러한 기법을 통해 원격으로 접속한 해커로부터 아무렇지 않은 파일인척 그 데이터를 숨겨 놓을 수 있기 때문이다.

결론은 이 역시 쓰기 나름이다. 그렇다고 막상 이러한 기법을 통해 개인 정보를 보관하기에는 귀찮기도 하다. 그 정도의 꼼꼼함이 존재하지 않기에 그냥 본인의 컴퓨터는 본인이 잘 관리하는 것이 최고인 것 같다.

'Forensic > Theory' 카테고리의 다른 글

Covert TimeStamp  (0) 2015.09.18
ADS (Alternate Data Stream)  (0) 2015.09.17
Icon Forensic ( ICON 분석)  (2) 2015.09.13
Thumbnail Forensics (썸네일 분석)  (0) 2015.09.13
File Recovery  (2) 2015.09.12