악성코드 기초 정적분석이란?

2018. 4. 18. 23:07악성코드 분석




기초 정적분석이란?

- 악성코드 분석시에 가장 먼저 진행

- 프로그램의 기능을 파악하기 위해서 코드 or 프로그램의 구조를 분석한다 

( 프로그램을 실행시키지 않는다 )

악성코드파일에서 사용하는 문자열이나 사용하는 DLL 및 함수를 조사


분석 방법

<1> 악성코드의 지문(Finger Print)확인

악성코드는 해시를 이름으로 사용한다

해시값을 사용하여 악성코드를 식별할 수 있다

=> 해시와 그 특징을 공유한 사이트가 존재한다 ( https://www.virustotal.com )

또는 WinMD5Free Program을 사용해서 MD5해시값을 구할 수 있다


* virustotal 사이트 & 악성파일 매칭 



<2> 악성코드 실행파일이 사용하는 문자열 검색

Strings Program을 사용한다

실행파일이 생성하는 파일의 이름을 지정할 때 사용하는 문자열이나, 외부주소로 연결 시 사용할 IP주소등이 검출된다


* strings.exe프로그램을 통해서 문자열 검색


* 리다이렉션을 활용해 text파일 생성


* 악성파일에서 사용하는 문자열 검색 결과


<3> PE세부 구조 확인

PEview Program을 사용해서 PE내부 구조를 검사한다

=> 언패킹이 되어있는지, 어떤 DLL을 Import하여서 사용하고 있는지 검사한다


* PEiD => 패킹 or 언패킹 여부 확인


* 실행파일의 IAT검사 => 사용하는 프로세스를 확인하여 어떤 작업을 하는지 예측할 수 있다


<4> Resourcer검사

Resource Hacker Program을 사용해서 악성코드 실행파일에 저장된 리소스 파일을 찾거나 추출해내서 분석한다

악성코드를 실행시켜서 또 다른 악성파일을 설치하는 악성코드를 "Dropper" 라고한다