악성코드 분석 18

악성코드의 자주 사용되는 DLL 파일 정리

Kernel32.dll : 메모리 관리, 파일 입/출력, 프로그램 코드/실행 등 기본적인 기능이 내장되어 있다. Windows NT부터는 Kernel32.dll은 트램펄린 역할만을 하며 실제 기능은 ntdll.dll이 가지고 있다. (kernel32.dll ->kernelBase.dll -> ntdll.dll) GDI32.dll : 화면/프린터의 그래픽 출력을 관리한다.(Graphic Device Interface) 그래픽 관련 함수 USER32.dll : 윈도우, 대화 상자, 메뉴 등을 관리한다. ADVAPI32.dll : 서비스 관리자나 레지스트리 같은 추가 핵심 윈도 컴포넌트에 접근 가능, 레지스트리, 시스템 종료와 재시작, 윈도의 서비스의 시작/종료/생성, 계정 관리 등의 기능 지원 SHELL32..

악성코드 분석 2020.01.03

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

Lab01-03.exe 파일을 분석하라. 질문 1. https://www.virustotal.com/에 에 Lab01-03.exe 파일을 업로드하여, 기존 안티바이러스에 정의된 것과 일치하는가? A : 58개 엔진이 발견하였다. 2. 이 파일이 패킹되거나 난독화 된 징후가 있는가? 그렇다면 무엇으로 판단하였는가? A : PEID 도구로 판단하였으며, FSG1.0 -> dulek/xt로 패킹된 흔적을 찾을 수 있었다. FSG로 패킹된 파일을 자동으로 언패킹해주는 도구를 찾을 수 없어서 ollydbg를 사용하여 main 함수를 찾아서 dump를 하는 방식으로 하였다. *FSG Packing특징 : 세번의세 번의 JMP구문을 반복한다는 특징이 있다. 위의 그림과 같이 JNZ, JE, JNZ 세 번의 점프 문 ..

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

Lab01-02.exe 파일을 분석하라. 질문 1. https://virustotal.com/에 Lab01-02.exe 파일을 업로드하여, 기존 안티바이러스에 정의된 것과 일치하는가? A : 67개의 엔진중에 43개 엔진이 파일을 발견하였다 대표적으로 안랩-V3에서 Trojan/win32.StartPage.C26214로 탐지되었다. 2. 이 파일이 패킹되거나 난독화 된 징후가 있는가? 그렇다면 무엇으로 판단하였는가? A : UPX로 패킹되어 있고 , PEID를 이용하여 판단하였다 UPX 도구를 이용하여 Unpacking을 하였다. 3. 임포트를 보고 악성코드의 기능을 알아낼 수 있는가? 그렇다면 무엇으로 판단하였는가? A : ADVAPI32.DLL 및 WINNET.DLL이 임포트 되어 있었다. ADVAP..

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

!! 해당 자료가 저작권상 문제가 있다면 해당 글을 바로 삭제하겠습니다. 실습 목적 1장에서 배운 기술을 연습할 기회를 제공하기 위함이다. 실습 1-1 Lab01-01.exe와 Lab01-01.dll 파일을 사용하여 분석한다. 파일에 관한 정보를 얻으려면 1장에서 사용한 기법과 도구를 사용하고 다음 질문에 대답해보자. 질문 1.http://www.virustotal.com/에 파일을 업로드한 후 보고서를 보자. 기존 안티바이러스 시그니처에 일치하는 파일이 존재하는가? Lab01-01.exe 파일 43/71의 백신에서 탐지하였습니다. 대중적으로 알고 계신 백신은 ALYac, AhnLab-V3 백신에서 탐지한 것을 알 수 있습니다. Lab01-01.dll 파일 31/69개의 백신이 탐지하였습니다. 많은 백신..

[악성코드 분석] 악성코드 분석 방법

악성코드 분석 방법 악성코드를 분석하는 방법에 대하여 설명드리겠습니다. 일반적으로 언급되는 4가지 방법을 기준으로 정의하여 정리하였습니다. 위의 그림에서 보듯이 자동화 분석, 정적 분석, 동적 분석, 상세 분석과 같이 4가지 항목으로 분류 할 수 있습니다. 화살표가 나타내는 난이도란, 분석가의 입장에서 이러한 방법을 사용할 때 필요한 시간, 지식등을 고려해봤을 때에 난이도를 나타낸 것입니다. 이제 한가지씩 집어 가면서 설명드리겠습니다. 자동화 분석 자동화 분석은 악성코드의 급격한 증가로 인해 점차 이에 대하여 많은 시간과 인력이 필요하게 되었다. 하지만 모든 악성코드를 수동으로 분석하기에는 이러한 요소들이 많이 부족하다. 그렇게에 악성코드를 자동으로 분석해주는 방법이 지속적으로 나오고 있고, 현재 이러한..

악성코드 분석 2019.12.20

[악성코드 분석] 리버스 엔지니어링이란?

리버스 엔지니어링(Reverse Engineering) - 소프트웨어의 한 분야로, 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어내는 일을 말합니다. 이것은 시스템을 이해하여 적절히 변경하는 소프트웨어 유지보수 과정의 일부 입니다. 다른 단어로는 역공학이라고도 말하는데요 개발을 예로 들어서 설명드릴게요 개발은 위해서 분석, 설계, 코딩, 테스트, 유지보수 등의 절차를 밟아가며 개발하는 순공학에 반대로 뒤집다라는 뜻에 리버스가 붙은 역공학이라고 부릅니다. 소프트웨어 제품은 판매시 소스는 제공하지 않으나 각종도구를 활용하여 컴파일된 실행 파일과 동작상태를 정밀 분석하면 그 프로개름의 내부동작과 설계 개념을 어느 정도 추척할수 있고, 이러한 정보를 이용하여 크랙, 파일을 수정..

[악성 코드 분석] PE (Portable Executable) 기초

PE포맷 이란? 윈도 운영체제에서 사용되는 실행파일(exe), DLL Object코드, FON 폰트 파일 등을 위한 파일 형식입니다. OE파일은 윈도우 로더가 실행 가능한 코드를 관리하는데 필요한 정보를 캡슐화한 데이터 구조체입니다. PE(Portable Executable) 말 그대로 옮겨다니면서 실행 가능한 파일 MS에서 다른 운영체제와 이식성을 좋게 하게위해 만든 파일 포맷 방식 PE 파일의 종류 실행, 드라이버, 라이브러리, 오브젝트 총 4개의 계열이 있습니다. 실행 계열 : EXE, SCR 드라이버 계열 : SYS, VXD 라이브러리 계열 : DLL, OCX, CPL, DRV 오브젝트 계열 : OBJ PE 파일의 기본 구조 메모리에 적재(loading 또는 mapping) 될 때의 모습 PE F..

기초 동적 분석

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