악성코드 분석/동적 분석 6

실전 악성코드와 멀웨어 분석 실습 - 6 -2

1. main 함수가 첫 번째 서브루틴은 무슨 오퍼레이션을 수행하는가? 아래와 같이 첫 번째 서브루틴 함수는 0x401000 인 것을 알 수 있었고, 401000 함수에 들어가 보면 2번째 사진과 같은 기능을 수행하는 것을 알 수 있었다. 인터넷 활성화 여부를 확인하는 InternetGetConnectedState 함수를 확인 가능하며, if구문으로 인터넷 상태를 확인하는 것으로 보인다. 2. 0x40117F에 위치한 서브루틴은 무엇인가? 6 - 1과 똑같은 구조이므로 printf는 0x40117F 위치에 있는 서브루틴이다. 3. main 함수가 호출하는 두 번째 서브루틴은 무엇인가? main이 호출하는 두 번째 함수는 0x401040에 위치해 있다. http://www.practicalmalwarean..

실전 악성코드와 멀웨어 분석 실습 - 6 - 1

기초 동적 분석 Import 함수 정보 KERNEL32 와 WININET 2개가 존재합니다. WININET은 HTTP 프로토콜과 상호작용을 할 수 있게 해주는 것이며, 임포트하고 있는 InternetGetConnectedState는 로컬 시스템에 인터넷 연결 상태를 확인하는 API입니다. (LAN, Modem, proxy 등 무엇을 사용하여 인터넷을 이용하는지 확인할 수도 있다.) 1. main이 호출하는 서브루틴만으로 발견한 주요 코드 구조는 무엇인가? main 함수에서 첫번째 등장하는 서브루틴 0x401000의 위치한 if구문으로 인터넷 상태를 체크하기 위해서 비교하는 구문이 존재 한다. 위 그림을 보면 if구문이 사용되었느지 가독성이 떨어진다. 확실히 확인 하기 위해서 그래프모드로 확인한 결과 if..

실전 악성코드와 멀웨어 분석 실습 - 03-03

질문 1. Process Explorer로 이 악성코드를 모니터링했을 때 무엇을 알아냈는가? Lab03-03.exe를 실행했을 경우 ProcEx로 확인해 보았을 때 svchost.exe 프로세스로 교체되는 것을 확인할 수 있었으며, scvhost.exe. 가 고아 프로그램으로 동작하고 있다. 전형적으로 svchost.exe는 svchost.exe로 안에서 자식 프로세스로 작동되어야 하는데 고아 프로그램으로 작동되고 것을 확인할 수 있었다. 2. 실시간 메모리 변조를 확인 할 수 있는가? 위의 사진은 디스크 이미지 이며 아래 사진은 메모리 이미지 사진이다. svchost.exe 디스크 이미지와 메모리 이미지는 동일하지 않으며, 메모리 이미지의 Practicalmalwareanalysis.log와 [Ente..

실전 악성코드와 멀웨어 분석 실습 - 03-02

기초 동적 분석 도구를 이용해 Lab03-02.exe 파일에서 발견된 악성코드를 분석하라. 질문 1. 악성코드 자체가 어떻게 설치됐는가? A : 먼저 악성코드가 실행파일이 아닌 DLL파일이다. DLL을 설치하려면 rundll32.exe을 사용해서 설치를 진행 해야 하는 것 으로 보인다. 그래서 임포트 함수를 확인하기 위해서 Dependency Walker를 이용하여 Lab03-02.dll를 확인하였다. 익스포트 함수로는 InstallA 와 ServiceMain를 찾을 수 있었다. 악성코드를 서비스로 설치하려면 rundll32.exe 실행 파일을 통해 악성코드의 익스포트 installA 함수를 rundll32.exe Lab03-02.dll, installA 형태로 실행할 수 있다. Strings를 이용하여..

실전 악성코드와 멀웨어 분석 - 실습 03-01

기초 동석 분석 도구를 이용해 Lab03-01.. exe 파일에서 발견된 악성코드를 분석하라 기초 동적 분석 VirusTotal의 Lab03-01에 업로드 결과 70개 안티바이러스 엔진 중 67개 엔진이 발견하였다. 결과를 본 후에 Backdoor임을 짐작할 수 있었다. 컴파일 시간 결과 2008/01/06 14:51:31 UTC를 확인할 수 있었다. 패킹과 난독화 징 후가 있는 PEiD로 확인 결과 PEncryt 3.1 Final -> junkcode로 패킹된 것을 확인할 수 있었다. junkcode라는 말이 나왔으므로 코드 분석을 어렵게 하기 위해서 중간중간 불 필요한 코드를 삽입한 것으로 보인다. 질문 1. 악성코드의 임포트 함수와 문자열은 무엇인가? 패킹이 되어 있기 때문에 ExitProcess에..

기초 동적 분석

동적 분석 은 악성코드를 실행한 후 수행하는 점검 과정이다. 동적 분석 기법은 악성 코드 분석 과정의 두번째 과정.... 동적 분석을 하는 이유 1) 난독화나 패킹됐을 경우 2) 분석가가 정적 분석 기법으로 한계에 이르렀을 경우 악성코드가 실행되는 시점을 모니터링하거나 악성코드가 수행된 이후 시스템 변화를 살펴본다. 예) 악성코드에 키로깅 기능이 있다면 동적 분석을 통해 시스템 내에서 키로거의 로그 파일 위치 파악과 어떤 종류가 기록 되는지, 그리고 그 정보가 어디로 보내지느지를 해독할 수 있다. (기초 정적 분석 기법만으로는 알아내기 어럽다.) 동적 기법은 네트워크와 시스템이 악성코드에 감염되기 떄문에 기초 정적 분석을 완료한 후 수행해야 한다. 샌드박스(sandbox)는 '실제' 시스템의 감염부담 없..