R136A1

정적분석, 동적분석 본문

Malicious Code

정적분석, 동적분석

r136a1x27 2021. 3. 1. 06:07

초기분석

따로 실행하지 않고 파일의 외형이나 간단히 들여다 볼 수 있는 정보를 이용하여

악성코드의 동작 방식을 유추한다.

 

- 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=정적분석

 

kkn1220.tistory.com/114

'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
Comments