정적분석은 의심/악성 파일을 실행하지 않고 분석하는 기법으로, 바이너리에서 유용한 정보를 출력하여 어떻게 분류/분석할 지, 이후 분석의 초점을 어디에 둘지를 결정하기 위한 초기 분석 방법이다.
정적인 속성, 코드 정보를 이용해 분석
악성코드 정적 분석 목표
→ 이 기법들을 이요하여 분석 대상 파일에 대한 다양한 정보를 발견할 수 있음 (모든 방법을 따를 필요는 없으며, 상황에 따라 선택할 것)
악성코드 분석 시 가장 먼저 진행(악성코드 연구의 시작 단계)
프로그램의 기능 파악을 위해 코드나 프로그램의 구조를 분석(프로그램 실행X)
파일의 문자열, 헤더 정보, 추가 리소스 등 정적 속성을 분석
기본적인 침해 사고 지표(IOC) 파악에 충분한 방법
분석방법 - 악성여부 1차적 판단(Virustotal 인텔리전스, PE 식별 도구 등)
| PE 헤더 | 프로그램 정보 : 파일 속성, 파일 형식, 아키텍쳐 등 섹션 헤더 정보 : 파일 오프셋 + 메모리 매핑 필요한 기능 : 운영체제에서 빌려와야 하는 기능 | | --- | --- | | PE 섹션 | - 실제 프로그램 내용이 저장되는 블록
파일 시그너처 확인 예
구분 | 시그너처 | 확장자 |
---|---|---|
PE 파일 | MZ (4D 5A) | .exe / .dll / .sys / .drv / .com / .ocx |
zip | PK\x03\x04 | Docx, pptx, xlsx, hwpx, apk, → 사실은 ZIP의 헤더를 가지고 있는 것 |
OLE 파일 | : 16진수, xD0\xCF\x11\xE0 | doc, ppt, xls, hwp (확장자에 x라는 표현이 안들어감) |
RAR 파일 | Rar! | |
7Z 파일 | 7z |