악성 코드 정적 분석

PE 파일, 프로그램 빠른 정적 분석 – PEiD, String, Virustotal

정적 분석은 말 그대로, 파일을 실행하지 않은 상태에서 분석을 진행하는 것으로 파일 상태 자체를 분석하여, 해당 프로그램이 처리할 내용을 유추하는 과정을 말한다. 실제 분석이 아닌 유추이기 때문에, 분석 결과에 대한 신뢰도는 다소 떨어지게 된다. 따라서 정적 분석은 상세 분석을 진행하기 전의 사전 예측 용도로 이용하면 효과적이다.

프로그램이 어떻게 구성 되어 있는지, 어떠한 기능을 가지고 있는지에 대해 사전에 살펴봄으로써, 분석 방향을 잡을 수 있다.

 

PEiD

PE 파일, 프로그램 빠른 정적 분석

[그림] PEiD로 확인한 Ntsec의 PE Header 구조

 

앞서 설명하였듯이 프로그램의 컴파일 언어와 파일 구조 정보 등 유용한 정보들을 얻을 수 있다.

Strings

Sysinternals의 도구들는 장애와 침해사고 분석에서 빠질 수 없는 도구로 유용하게 이번에도 Sysinternals에서 제공하는 도구로서, 파일 내에 저장된 문자열 값들을 출력해주는 도구이다. 해당 파일이 어떻게 동작되는지 가늠할 수 있다.

[그림] 파일 내에서 사용된 문자열만 표시해준다

Virustotal

바이러스 토탈(https://www.virustotal.com)은 의심되는 파일에 대해 각 백신 업체에서 바이러스 토탈에 공개한 엔진을 통해 검사를 진행하는 도구로써, 현재 파일이 백신 업체에서 어떻게 판단하는지를 확인할 수 있다.

이를 이용해 바이러스 유무를 간편하게 식별해 볼 수 있다(물론 제로 데이 공격(Zero day Attack)의 경우 확인이 불가능하다).

[그림] 최신 바이러스 엔진의 검출 여부를 확인할 수 있는 바이러스 토탈

 

미리 말하지만 정적 분석은 한계가 많다. 실제 동작 값이 아니다 보니, 예측해야 하는 범위가 너무 크다. 따라서 분석 신뢰도 역시 상당히 떨어진다. 이외 HxD와 같은 도구를 통해 바이너리 상태를 보거나 IDA 등을 통해서 확인할 수 있지만, IDA는 보통 동적 분석도구 이기 때문에 동적 분석을 VMware와 같은 가상화 머신에서 안전하게 병행하여 진행하기를 권장한다.

Facebook Comments

Leave A Reply

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.