Information Security ˗ˋˏ ♡ ˎˊ˗

Security/Reversing

[악성코드분석] 기초정적분석01 - 설명 및 도구

토오쓰 2020. 4. 17. 04:06

[기초정적분석]

프로그램의 기능을 파악하기 위해 코드나 프로그램의 구조를 분석

악성코드를 실행하지 않고 분석하는 과정

 

 

[기초정적분석 방법]

악성 여부를 판단하는 안티바이러스 도구 사용

악성코드 판별하는 해시 정보 검증

파일의 문자열, 함수, 헤더에서 주요 정보 수집

 

1. 안티바이러스 스캐닝

악성코드 탐지

- 패턴 매칭 분석(주로 많이 사용): file signatures를 검색하여 찾는 방법

- heuristic: 악성코드를 변조시키거나, 신종을 나오게 하는 방법

tool: virustotal site(https://www.virustotal.com/gui/)

 

1.1 실습

[notepad.exe]

[PracticalMalwareAnalysis-Labs.exe]

 

2. 해시 정보 검증

해시: 악성/정상 코드의 고유 값, 주로 악성코드를 보고 악성인지를 판단한다.

파일의 사이즈, 프로그램 개발한 제작사가 고유의 값이 있다는 것(해시)를 알려준다.

해시 값을 검증을 하면 변조가 되었는지 아닌지 알 수 있다.

- type: SHA-1(Secure Hash Algorithm 1), MD5(Message-Digest Algorithm 5)-주소

tool: Md5deep(CUI, http://md5deep.sourceforge.net/), WinMD5(GUI, http://www.winmd5.com/)

 

2.1 실습 WinMD5

 

 

 

3. 문자열 검색

(실행파일을 역으로 돌려서 문자열을 추출한다)

코드내의 문자열 검색 및 추출

문자 표현(문자열을 저장하는 방식)

- ASCII(1byte, 8bit)

- Unicode(2byte, 16bit)

tool: Strings(https://technet.microsoft.com/en-us/sysinternals/bb897439)

- 함수명 접미사: Ex(동일 함수 업데이트), A(ASCII), W(wide character strings)

- API함수도 포함.

 

3.1 실습

[WinMD5.exe] 정상파일인 경우,

 

[PracticalMalwareAnalysis-Labs.exe] 악성파일인 경우,

 

4. 패킹/난독화

악성코드 은폐 목적, 문자열 검색이 안됨.

- LoadLibrary, GetProcAddress 함수 포함

- 두 함수들은 정상적인 프로그램에서는 사용되지 않음.

패킹 파일(판독할 수 없는 파일)

- 패킹을 하게 되면 사이즈가 작아짐.

-  다시 복구해주는 래퍼 프로그램이 있음

- 원본실행파일 → 래퍼프로그램 + 패킹된 실행 파일

tool: PEiD(탐지), UPX(패킹프로그램)

 

4.1 실습 PEiD

[HelloWorld.exe]

UPX를 다운로드하여 정상 프로그램을 패킹

패킹하기 전 PEiD 결과

 

패킹 후 PEiD 결과