블로그 이전했습니다. https://jeongzero.oopy.io/
파일 시그니처란?
본문 바로가기
보안/Linux

파일 시그니처란?

728x90

악성코드 분석, 디지털 포렌식 등을 할 때 파일의 포맷을 아는 것은 굉장히 중요하다. 


각자 개인 폴더에 있는 사진하나씩을 있을것이다. 대부분의 사진들은 JPG, JPEG, PNG 의 확장자로 되어있다.


포토샵을 자주 다루거나 디자인 쪽 하는 사람들은 많이 들어봤을 텐데 이러한 것들을 확장자라고 한다.


파일 형식이라고도 하는데 각 파일 형식마다 가지고 있는 고유의 특징이 있다. 이러한 특징들은 정해져 있으며 이를 파일 시그니처 또는 파일 매직 넘버라고 한다.



파일 시그니처 = 매직넘버 




손상된 파일을 복구하거나 안에 숨겨진 내용을 파악하는 포렌식같은 경우에 이를 주로 사용한다고 한다.


다음의 사진을 보자.




PNG 이미지 


JPG 이미지 



왼쪽은 PNG 파일이고 오른쪽은 JPG 파일이다. 그림의 이미지는 그냥 아무거나 가져온 것이다. 위에서 말한대로 각 파일 형식마다 고유의 시그니처를 가지고 있다고 했다. 해당 시그니처는 헥사코드 즉 16진수로 구성되어 있으며 이는 HXD 라는 프로그램을 통해서 확인이 가능하다.





파일 시작 부분 

파일 끝 부분



HXD라는 프로그램을 사용해서 왼쪽사진을 돌려본 결과이다. 존나 길게 16진수 값이 나오는데 왼쪽 그림은 파일 시작부분이고 오른쪽 부분은 파일의 끝 부분이다. 


이제 PNG의 시그니처를 확인해보자 


89 50 4E 47 OD OA 1A OA    이렇게 7번째 숫자까지 표시된 부분이 파일의 시그니처(헤더라고도 함)이다. 이 부분을 가지고 이 파일이 어떠한 포맷인지 알수 있는 것이다. 또한 파일 헤더 뿐만 아니라 footer(푸터)라는 것으로도 형식을 알수있다. 


오른쪽 그림에서 보면 49 45 4E 44 AE 42 60 82  이 부분이 푸터 부분이다. 


정리하자면 파일의 헤더와 푸터를 확인하여 해당 파일의 포맷을 확인할 수 가 있다.



아래의 표는 파일 형식이 가지고 있는 헤더와 푸터를 나타내고 있다. 아래의 JPG 형식의 헤더와 푸터를 확인하고 HXD 프로그램을 통하여 위에있는 JPG 파일을 돌려보면 동일한 값이 나온다. 



이러한 점을 응용해서 생각해자면, 만약 어떠한 파일의 헤더는 PNG인데 푸터 부분이 이상하거나 다른 형식, 예를들어 JPG다? 그렇다면 해당 파일은 먼가 문제가 있거나 특정 누군가에 의해 조작된 파일로 의심된다. 두개의 파일이 합쳐졌다던지 .. 등..등..


결론을 말하면 각 파일의 형식마다 정해져 있는 특정 바이트로 파일에 포함되는 바이트들을 시그니처라고 한다.




File Type Header Signature Footer Signature Description
 ICO 00 00 01 00  – Windows Icon Format
 CUR  00 00 02 00  – Windows Cursor Format
 BMP, DIB 42 4D 
 B  M
 – Windows Bitmap Format
 GIF 47 49 46 38 37 61 
 G   I  F   8   7  a
 00 3B
      ;
 Graphics Interchange Format
 GIF 47 49 46 38 39 61
 G   I  F   8   9  a
 00 3B
      ;
 Graphics Interchange Format
 TIF, TIFF 49 49 2A 
  I   I   *
 – Tagged Image File Format (little endian)
 TIF, TIFF 4D 4D 2A 
 M  M  *
 – Tagged Image File Format (big endian)
 PNG 89 50 4E 47 0D 0A 1A 0A
     P  N  G
 49 45 4E 44 AE 42 60 82
  I   E  N  D       B   `
 Portable Network Graphics Format
 JPEG/JFIF FF D8 FF E0 xx xx 
 4A 46 49 46
 FF D9 JPEG/JFIF Format
 JPEG/EXIF FF D8 FF E8 xx xx
 45 78 69 66
 FF D9 JPEG/Exif Format – Digital Camera  
 Exchangeable File Format
 WMF D7 CD C6 9A – Windows Metafile Format
 EMF 01 00 00 00 – Extended(Enhanced) Windows Metafile 
 Format Printer Spool File
 EPS 25 21 50 53 2D 41 64 6F 
 %  !   P  S  –   A  d  o 
 62 65 2D 
  b  e  –
 25 25 54 72 61 69 6C 65 72 
 %  % T   r   a   i   l   e   r
 0A
 (presumption)
 Adobe Encapsulated PostScript File

출처 : http://forensic-proof.com/archives/323

728x90

'보안 > Linux' 카테고리의 다른 글

모스신호 wav 파일 생성하기  (0) 2019.02.23
network recovery  (0) 2019.02.17
스테가노그라피란?  (0) 2019.02.16
비즈네르 암호문  (0) 2019.02.16
모스부호란?  (0) 2019.02.16