-
악성코드 분석 - 2 정적 분석 (파일 유형 식별편)리버싱/악성코드 2023. 4. 28. 16:31
1. 파일 유형 파악
분석할 때 의심스러운 바이너리의 파일 유형을 구분하는 것은 악성코드의 목표 운영 시스템(윈도우, 리눅스) 아키텍처(32비트 or 63비트)를 식별하는 데 도움이 된다.
예를들어서 의심스러운 바이너리가 윈도우 실행파일 (exe dll sys 등) 포맷인 PE 파일 유형이라면 윈도우 운영체재를 대상으로 디자인 됬다는 사실을 알 수 있음
근데 생각해보면 의심스러운 exe파일을 그냥 무턱대고 실행하는 사람들이 얼마나 있을까 그렇기때문에 공격자는 파일 확장자를 수정해 파일을 숨기거나 피해자가 실행하도록 속이고자 외형등을 바꾼다
그래서 파일 확장자로 파일 유형을 구분하기보다는 파일 시그니쳐를 통해 파일 유형을 구분할 수 있다
<파일시그니처>
- 파일 시그니처는 파일 헤더에 작성되는 바이트의 독특한 배열순서다 다른 파일은 다른 시그니처를 가지므로 이를 파일 유형을 식별하는데 사용할 수 있다
- 윈도우 실행(PE)파일들은 파일의 첫 바이트에 M2 또는 HEX문자 4D 5A라는 파일 시그니처를 가진다
1.수작업을 통한 파일 유형 식별
Hex 에디터 등의 분석프로그램으로 파일 시그니처를 찾는 방법이다, 리버싱 공부 하신분들은 뭔지 아실 듯
이건 그냥 내 컴퓨터에있는 아무 exe 파일을 hxd에서 열어본 것 이다
위에서 말했 듯이 맨 첫번째 바이트에 4D 5A, MZ 가 보인다
리눅스 에서는 xxd명령어를 통해서 파일의 헥사 덤프를 생성할 수 있다
예) xxd -g 1 파일.exe | more 뭐이런식으로 쓴댄다
2. 도구를 이용한 파일 유형 식별
리눅스에서는 file 명령어를 통해 파일을 식별하다칸다 이 명령어는 확장자가없어도 이 파일이 어떤 파일인지 알려준다함
그냥 파일 아무거나 쳐봤더니 대충 저런식으로 나온다 exe 파일은 찾기가 귀찮으니 본인들이 직접해보세요
3. 파이썬을 이용한 파일 구분
파이썬에서 python-magic 모듈을 이용해서 파일을 구분할 수 있다
뭐 대충 요런식으로 한답니다, 위에서 본거랑 똑같이 나왔죠
윈도우에서는 CFF explorer 라는 분석 도구로 파일 유형을 탐지할 수 있습니다
실행해서 exe 파일 열어보면 대충 요런식으로 나와요
'리버싱 > 악성코드' 카테고리의 다른 글
기초 정적분석 (0) 2023.07.06 악성코드 분석 - 1 악성코드의 정의 및 종류, 분석 방법 (0) 2023.04.27