[기초정적분석]
프로그램의 기능을 파악하기 위해 코드나 프로그램의 구조를 분석
악성코드를 실행하지 않고 분석하는 과정
[기초정적분석 방법]
악성 여부를 판단하는 안티바이러스 도구 사용
악성코드 판별하는 해시 정보 검증
파일의 문자열, 함수, 헤더에서 주요 정보 수집
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 결과
'Security > Reversing' 카테고리의 다른 글
[악성코드정적분석] PracticalMalwareAnalysis-Lab01-01 분석 (0) | 2020.04.17 |
---|---|
[악성코드분석] 기초정적분석02 - PE파일 포맷 (0) | 2020.04.17 |
[PE 파일] 분석 - PEtest.exe (with PEview) (1) | 2020.04.10 |
[PE 파일] 분석 - calc.exe (with PEview) (1) | 2020.04.09 |
[PE 파일] 구조(4) - PE 파일 섹션(Section_Header .text) (2) | 2020.04.09 |