R136A1
정적분석, 동적분석 본문
초기분석
따로 실행하지 않고 파일의 외형이나 간단히 들여다 볼 수 있는 정보를 이용하여
악성코드의 동작 방식을 유추한다.
- Virustotal을 이용한 정적 속성 분석
- 패킹 여부 확인
- 언패킹 이후, 문자열 확인
동적분석
악성코드를 분석환경에서 실행시킨 직후부터 순간순간의 시스템 변화를 분석하는 단계
네트워크, 프로세스, 파일시스템, 레지스트리 조작 행위 등
네트워크 행위
외부 시스템과의 통신 여부
[Wireshark, TCPview]
프로세스 행위
추가로 생성하는 프로세스 존재 여부
프로세스 자가 종료 여부
[Process Explorer]
주요 프로세스 확인 → 사용자 관련 프로세스 확인(explorer.exe 하위)
→의심 프로세스 정보 확인(Description, Company Name, Version, TCP/IP, Strings 등)
Boot Logging 확인
프로세스 상관관계,인젝터 존재유무, 은닉 프로세스 확인, 의심 프로세스 행위 분석
(ex. 지속적 DNS Cache 초기화, 특정 폴더 복사 등)
[Process Monitor]
파일 시스템 행위
추가 파일 dropping여부
파일 삭제 및 조작 여부
레지스트리 조작 행위
자동실행 관련 포인트 조작 여부 ~~\Services, Runs, SSODL 등
[레지스트리 편집기]
자동실행 지점 확인
[Autoruns]
일반프로그램
디버깅을 통해 코드 흐름과 메모리 상태 등을 확인: 프로그램 내부 구조와 동작 원리를 관찰
동적 분석은 정적 분석을 통해 알기 힘든 미묘한 결함이나 취약점을 드러낼 수 있다.
또 직관적으로 관찰하여 편하기도 하지만, 실제로 실행되는 코드 부분에서만 결함을 찾는다는 단점이 있다.
정적분석
파일의 겉모습을 관찰하여 분석하는 방법 → 파일을 실행시키지 않고 분석한다
파일의 내용 확인: 파일의 종류, 크기, 헤더(PE)정보, Import/Export API, 내부문자열,
실행 압축여부, 등록정보, 디버깅정보, 디지털인증서, etc
1) 일차원적으로 HxD를 사용하여 ASCII코드로만 관찰
2) 디스어셈블러(Disassembler)를 이용해서 내부 코드와 구조 확인
+ 일반적으로 런타임 환경에서 수행되지 않음
프로그램 코드에서 가능한 모든 런타임 동작을 검사하고 코딩 결함 및 잠재적인 악성 코드를 찾는다
동적 분석에서 나타나지 않을 미래의 오류를 먼저 찾을 수 있다.
Ollydbg, IDA 는 동적분석, 정적분석 모두 가능?
일단 ▶ 안누르고 어셈블리어로 표시만 되는 상태에서 사용하면 Disassembler고
▶ 누르고 메모리, cpu 레지스터 등 변화 관찰하면 Debugger 로도 사용 가능
그리고 확실하지는 않지만 Debugger=동적분석 / Disassembler=정적분석
'Malicious Code' 카테고리의 다른 글
실전 악성코드와 멀웨어 분석 Lab 3-2 (0) | 2021.05.17 |
---|---|
트로이목마(Trojan horse) (0) | 2021.03.01 |
PUP(Potentially Unwanted Program) (0) | 2021.03.01 |
웜(worm) (0) | 2021.03.01 |
바이러스(Virus) (0) | 2021.03.01 |