해당 포스팅 내용은 잊어먹지 않기 위해 간략히 작성한 내용이기 때문에 볼 필요는 없을 것 같고, 

http://codeengn.com/archive/Forensic/Volatility%20command%202.1%20%5B%EB%B3%B4%EC%95%88%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8,%20%EC%9D%B4%EC%8A%B9%EC%A4%80%5D.pdf

PDF 파일을 보시면 자세히 알 수 있습니다.
맨 밑에 cuckoo 연동 부분만 보셔도..


1) VB2016 paper: Open source malware lab(http://kkn1220.tistory.com/115)

2) Cuckoo Sandbox (http://kkn1220.tistory.com/116)

3) Thug (http://kkn1220.tistory.com/117)

4) Bro (http://kkn1220.tistory.com/118)


Volatility


1. Volatility  개념

- 포렌직 메모리 분석에서 많이 사용하고 있는 파이썬 기반 오픈소스
- 은닉되어 있는 프로세스 조사
(1)
pslist: 시스템의 프로세스를 열거하기 위함

(2) psscan: 풀 태그 스캐닝을 사용하여 프로세스들을 열거하기 위해 사용되는데 종료된 프로세스들과 루트킷에 의해 숨겨지거나 연결이 끊어진 프로세스들을 찾을 수 있음

(3) psxview: pslistpsscan으로 숨겨진 프로세스를 찾음

(4) ssdt: System Service Descriptor Table(SSDT)에서 후킹된 것을 찾음


psxview 플러그인은 pslistpsscan을 교차하여 숨겨진 프로세스를 찾는 역할

pslist는 각 프로세스가 더블 링크드 리스트로 연결되어 있는 것을 이용해서 프로세스 목록을 출력하지만 psscan은 메모리 이미지의 처음부터 끝까지 스캔을 하여 프로세스 목록을 출력하는 형식
-> 그러므로 psscan에서는 확인이 가능하지만 pslist에서 확인이 안되는 프로세스는 악성 일 가능성이 높음

Psscanpslist와 유사하지만 pool tag 스캔을 통해 프로세스 목록을 생성하기때문에 DKOM을 통해서 프로세스를 은닉하는 경우에도 출력이되는 차이점이 있음

※DKOM(Direct Kernel Object Manipulation) : 자신의 앞 뒤에 존재하는 EPROCESSActiveProcessLinks를 조작하여 자신을 건너뛰고 서로 직접 연결되도록 조작하는 기법 




2. Volatility 분석 (SSDT 후킹 내용 간략 설명)

1) 메모리 덤프

- Dumpit이나 기타 메모리 덤프 할 수 있는 툴을 사용하여 메모리 덤프


2) 이미지 확인 

- profile 확인


3) 프로세스 목록 확인

pslist, psscan, psxview, ssdt를 통해 목록 확인
- volatility -f
덤프파일 --profile=Win7SP1x86 pslist > c:\usb\pslist.txt

- volatility -f 덤프파일 --profile=Win7SP1x86 psscan > c:\usb\psscan.txt

- volatility -f 덤프파일 --profile=Win7SP1x86 psxview > c:\usb\psxview.txt

- volatility -f 덤프파일 --profile=Win7SP1x86 ssdt > c:\usb\ssdt.txt

4) (ex. ssdt 후킹 사례)

ssdt를 확인 결과 ntoskrnl.exe / win32k.sys 이외에 목적지로 설정 되어있다는 가정 (후킹 된 것임)

(꼭 위에 두개로 owned by <ntoskrnl.exe / win32k.sys> 가 있어야됨  (왼쪽은 시스템쪽 api 오른쪽은 gui 관련 api))

5) ssdt 후킹 확인

type ssdt.txt | findstr /i /v ntoskrnl.exe | findstr /i /v win32k.sys


6) 다음 진행 사항들  

-Sleutkit 와 같은 툴을 사용하여 은닉 악성파일 추출


(본 내용은 해당 내용 범위에 벗어나는 내용이기 때문에 다루지 않음

추후 $MFT, UserJnrl, Log File 을 추출하고, 해당 내용을 분석 하는 방법에 대해 포스팅 할 예정)



3. Cuckoo 연동

Cuckoo는 Volatility 연동을 지원을 하는데

- 시간이 엄청 오래 걸림... 사실 샌드박스는 3~5분에 한 파일에 대해 끝내야 되는데 메모리 덤프 및 분석을

위한시간이 많이 소요됨

- Cuckoo가 뭔가 큰 그림을 보는거 같은데 잘 모르겠음..


설정파일 변경

- cuckoo.conf 변경

- memory_dump = on으로 변경


processing.conf 변경

메모리 분석 기능 활성화

- enabled = yes로 변경

memory.conf 변경

모두 yes 로 변경



1) VB2016 paper: Open source malware lab(http://kkn1220.tistory.com/115)

2) Cuckoo Sandbox (http://kkn1220.tistory.com/116)

3) Thug (http://kkn1220.tistory.com/117)

4) Volatility (http://kkn1220.tistory.com/119)


Bro


1. Bro 개념

Bro는 침입탑지 시스템(IDS) 중 하나

- 네트워크 패킷을 읽어 유해한 내용을 탐지하는 솔루션에서 출발-> 탐지 뿐만 아니라 클러스터링과 분석까지 수행

- 분석에는 오프라인 분석과 포렌직까지 수행 (진행 중인데 현재 상황 확인 필요)
- 다양한 응용 프로토콜 지원(DNS, FTP, HTTP, IRC, SMTP, SSH, SSL )
- 포괄적인 IPv6 지원.


2. Bro Architecture


Tap: 감청을 위해 패킷 스트림의 복사본을 만드는 메커니즘

- Frontend: 트래픽을 많은 스트림 또는 플로우들로 나누는 호스트 상의 기술
- Manager: 로그 메시지들을 받아 처리하고, 중복 노티스 제거
- Proxy: 동기화 상태 관리
- Worker: 네트워크 트래픽을 스니핑하고, 프로토콜 분석 수행
            
모든 프로토콜에 대한 파싱과 분석 수행

Bro는 멀티쓰레드가 아님. 그래서, 일단, 싱클 프로세서 코어의 한계가 있고, 현재 이를 위한 선택사항으로 부하를 다수 코어에 분배하는 것을 고려할 수 있음



3. 설치

1) Bro 다운로드

https://www.bro.org/download/index.html

2) 필수 설치 항목 설치

$sudo apt-get install cmake make gcc g++ flex bison libpcap-dev python-dev swig zlibig-dev

3) 컴파일 설정 파일 생성

$ sudo ./configure

4) 컴파일 및 설치

$sudo make


$sudo make install

4. 실행

(자세한 실행은 추후 진행 예정..)



http://www.hakawati.co.kr/215 참고


1) VB2016 paper: Open source malware lab(http://kkn1220.tistory.com/115)

2) Cuckoo Sandbox (http://kkn1220.tistory.com/116)

3) Bro (http://kkn1220.tistory.com/118)

4) Volatility (http://kkn1220.tistory.com/119)


Thug


1. Honeypot개념

허니팟이란 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템

- 이를 통해 공격자를 추적하고 정보를 수집하는 역할 수행

- 공격자를 속이기 위해 마치 정상 시스템에 침투한 것처럼 속임

- 특징으로 사용자 PC 환경과 유사하여야 하며, 해당 시스템에 접근하는 모든 패킷을 감시해야 함

- Client Side Honeypot, Server Side Honeypot


2. Client Side Honeypot 종류 (HoneyClient)


웹 브라우저에 초점을 두기 때문에 웹 서버와의 상호작용에서 악의적인 행위를 탐지하는 부분으로 특화

-> Drive-By Download 형태와 같은 공격에 대한 탐지와 연구에 많은 도움


1) High interaction:
-
실제 브라우저를 통해 웹 서버에 방문 후 발생하는 파일의 변화, 레지스트리 변화 등의 시스템의 변화를 관찰하는 시스템으로 실제 시스템을 구현하여 사용하는 형태

- 장점: Unknown 공격(Zero-day attack) 탐지 가능
- 단점: 구현하기가 쉽지 않고, 시스템 성능에 따라 속도 차이가 심함

- 종류: Capture-HPC, HoneyClient, Strider HoneyMonkey, Web Exploit Finder, Cuckoo


2) Low interaction

- 실제 시스템을 구현하는 것이 아닌 서버와 상호작용하는 부분만을 구현하여 시뮬레이션

- 장점: 구현하기가 쉽고, 시스템 일부만을 구현하기 때문에 자원소모가 적음

- 단점: 알려진 공격에 대해서만 정보 수집이 가능

- 종류: HoneyC, Monkey-Spider, PhoneyC, SpyBye, Thug, CUJO, Jsand, Dionaea, Glastopf


3) Hybrid Client Honeypots

- 1, 2를 결합한 형태로 알려진 악의적인 행위에 대해서는 낮은 상호작용 허니팟을 통해 빠르게 탐지하고 알려지지 않은 악의적인 행위는 높은 상호작용 허니팟을 통해 탐지하여 탐지 속도 및 미탐에 대한 대응
- 종류: HoneySpider



3. 설치(Ubuntu 16.04 기준)

- Thug의 경우 단순 설치만을 하였기 때문에 Docker로 설치함

$sudo apt-get install docker.io


$sudo docker pull honeynet/thug


4. 실행

$sudo docker run –it honeynet/thug


(Usage)


Test site는 malicious URL 을 참고함

해당 Thug는 자바스크립트 내용 및 크롤링을 통해 분석하는 기능 또한 제공



1) VB2016 paper: Open source malware lab(http://kkn1220.tistory.com/115)

2) Thug (http://kkn1220.tistory.com/117)

3) Bro (http://kkn1220.tistory.com/118)

4) Volatility (http://kkn1220.tistory.com/119)

5) 쿠쿠 샌드박스 설치 내용: Kisa 아카데미 보안 샌드박스 활용 실무 교육 (https://academy.kisa.or.kr)


Cuckoo Sandbox


1. 개념

- Sandboxing* 기술을 적용하여 의심스러운 파일의 자동 분석을 가능하게 하는 오픈소스 소프트웨어

-> 악성코드 분석을 실행할 수 있는 도구!


 Sandboxing?
신뢰하지 못하는 프로그램 또는 파일을 격리 된 환경에서 실행하고 그것이 무엇을 하는지에 대한 정보를 얻음

Malware Sandboxing은 악성 파일을 동적 분석 할 수 있는 실질적인 어플리케이션

          (파일의 정적 분석 뿐만 아니라실행 및 모니터링까지 함)


2. Cuckoo Sandbox 구조

Cuckoo Host

  : Cuckoo Guest가 악성파일을 분석할 수 있도록 명령을 내리며분석 후 나온 결과를 파일로 저장

Analysis Guest

  : Cuckoo Host와 통신을 하며명령을 받아 악성 파일에 대한 분석을 진행

Virtual Network

  : Cuckoo Host의 명령을 받아실제 분석을 진행할 Cuckoo Guest , Virtual Machine을 생성


3. 분석 환경

- 분석 가능 파일

-> 일반적인 윈도우 실행파일, DLL파일, PDF/MS office, HTML, PHP, ZIP 등 대부분 모든 것들

- 분석 가능 환경

-> 윈도우, Mac, Debian 계열의 Linux 등


4. 구성도


1) Auxiliary Module

총 4가지의 엔진으로 구성

a. MITM

       - HTTP 및 HTTPS 트래픽 캡처

       감시할 대상 port를 지정하여 동작

b. Reboot

       악성코드의 완전한 분석을 위한 분석 환경 clear 및 분석이 완료된 파일의 재분석을 진행할 때 사용

c. Services

       기본적으로 사용하는 가상 머신 외에 추가로 구축한 가상머신에서 새로운 분석을 진행하기 위한 기능
        (
기본 제공 환경: KVM, VirtualboxVmwareVsphere )

d. Sniffer

       Tcpdump 모듈을 이용해서 네트워크 트래픽 캡처


2) Machinery Module

- Machinery를 설정하는 cuckoo.conf 파일을 읽고설정 되어 있는 가상 머신의 실행과 종료를 주관


3) Processing Module

 23개의 모듈을 통해 가상 환경에서 생성된 결과를 분석하고이후 진행될 Signature, Reporting 모듈에서 사용되는 데이터 정의


4) Signatures Module

안드로이드윈도우리눅스 등의 OS에 대한 시그니처를 제공하며총 약 360개의 행위 패턴 제공

- Processing Module에서 분석한 내용을 기반으로 행위 패턴 매칭 수행

5) Reporting Module

- Processing, Signatures module들을 거쳐 나온 데이터를 사용자가 보기 쉽도록 가공하는 기능 수행


5. 설치(Ubuntu 16.04 기준)


1) Python 기본 모듈 설치

$ sudo apt install python python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg-dev mongodb git

$sudo apt install build-essential libffi-dev python python-dev python-pip automake autoconf libtool

$sudo BUILD_LIB=1 pip install ssdeep     //ssdeep  A,B라는 악성코드가 있을 때 연관성 확인

$sudo apt install libfuzzy-dev

$sudo pip install pydeep    //$pip list  설치된 항목 보기


2) TCP dump 모듈 설치

$sudo apt install libcap2-bin

$sudo apt install tcpdump

$sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

$getcap /usr/sbin/tcpdump


3) Yara 설치

$sudo apt install automake libtool make gcc

$wget https://github.com/VirusTotal/yara/archive/v3.5.0.tar.gz

$tar -zxf v3.5.0.tar.gz

$cd yara-3.5.0

$./bootstrap.sh

$./configure

$make

$sudo make install

$cd ~

$sudo pip install yara-python


4) Cuckoo 설치 (시간이 좀 걸림)

$git clone https://github.com/cuckoosandbox/cuckoo.gitndbox/cuckoo.git

$cd cuckoo

$sudo pip install -r requirements.txt

$cd ~


5) Virtualbox 설치 (무료니깐~)

$wget http://security.ubuntu.com/ubuntu/pool/main/libv/libvpx/libvpx1_1.0.0-1_amd64.deb

$sudo dpkg -i libvpx1_1.0.0-1_amd64.deb       //14.04에서는 안됨일단 무시

$wget http://download.virtualbox.org/virtualbox/5.1.10/virtualbox-5.1_5.1.10-112026~Ubuntu~trusty_amd64.deb

$sudo apt-get install libsdl1.2debian

$sudo dpkg -i virtualbox-5.1_5.1.10-112026~Ubuntu~trusty_amd64.deb

$sudo wget http://download.virtualbox.org/virtualbox/5.1.10/Oracle_VM_VirtualBox_Extension_Pack-5.1.10-112026.vbox-extpack

$VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.10-112026.vbox-extpack

$sudo /sbin/vboxconfig

가상머신 네트워크설정

$vboxmanage hostonlyif create

$vboxmanage hostonlyif ipconfig vboxnet0 -ip 192.168.56.1

$ifconfig   //vboxnet0이 실제로 설정되어있는지 호스트(ubuntu)에서 확인해주면됨 (중요)

$virtualbox  //virtualbox가 실행됨


6) Guest 만들기

cuckoo1로 하고 디폴트 설치(win 32bit)


- 설정 저장소 시디 비어있음에 광학디스크 이미지 추가

네트워크를 nat에서 호스트전용으로 바꿔주기 (이전 고정 ip지정해둔  vboxnet0)

오디오 사용하기 해제 (물리적공간 낭비 해소 및 실제로 오디오 쓰지도 않아서)

공유폴더 설정하기

- ubuntu에서 $mkdir ~/backup 

- 위의 경로 폴더로 공유폴더 설정하기(virtualbox- auto mount 설정, read-only는 해제)

가상머신에 PIL파일과 python설치파일이 필요하기 때문에 백업폴더를 생성한 것임

윈도우 설치하기

- 이름은 cuckoo1,  암호는 설정안함, 자동보호 없앰

PIL, agent.py, python2.7 설치파일 backup으로 복사

가상 윈도우에서 공유폴더는 게스트확장을 사용할 수 없음으로 되어있음.

 VBoxWindowsAdditions-x86 설치. (공유폴더 위해)


제어판-사용자계정 및 가족보호- 사용자 계정- 사용자계정컨트롤설정변경-bar를 가장 아래로 설정 -> reboot

공유폴더 설정하기

-ubuntu에 설치된 cuckoo 폴더 내 agent.py share폴더로 복사 

($cp ~/cuckoo/agent/agent.py <share_folder_path>

- PIL, python은 인터넷에서 다운로드..


파이썬이랑, PIL(Python Image Library) 설치 
  (default 설치파이썬의 경우 설치과정에서 path설정해두면 별도 설정 필요x)

파이썬 폴더안에 agent.py 복사(c:\Python27)

- Agent 실행 (방화벽 나오면 허용)

스냅샷찍기(핵심)

cuckoo1  반드시 통일시켜줘야됨  (변경시 config파일 설정 필요)

- Machine tab에 take snapshot



7) Cuckoo 환경설정 (ubuntu에서 설정)

$cd ~/cuckoo/conf/

$sudo vi cuckoo.conf

  version_check=off로 변경

$sudo vi vurtualbox.conf

   cuckoo1으로 머신이 매칭 된 것 확인 가능 (3개가 같은지 확인하면 됨)

resultserver_ip 주석 해제resultserver_port  주석 해제

- $vi reporting.conf

  mongodb enable


8) Signature Download


$cd ~/cuckoo

$./utils/community.py waf  //약 350개정도의 패턴을 다운받을 수 있음   //모듈폴더-시그니쳐안에 존재함


9) 실행

$cd ~/cuckoo

$./cuckoo.py  (윈도우 종료되는게 정상 행동)

- $cd ~/cuckoo/web

- $./manage.py runserver 0.0.0.0:8000

- Web브라우저 실행 후 localhost:8000 입력 (아래와 같이 열리면 정상적으로 설치 완료)


- File upload


- 분석 내용 확인



제목: VB2016 paper: Open source malware lab

https://www.virusbulletin.com/virusbulletin/2017/01/vb2016-paper-open-source-malware-lab/

virus bulletin 2016에서 발표한 페이퍼 내용을 정리하고자 한다.


이 페이퍼에서는 http://kkn1220.tistory.com/113 에서 언급한 Fully-automated/ Static properties Analysis에 초점을 두고 있다.

이들이 언급하는 것은 총 4개로 구성되어 있다.

1) Cuckoo Sandbox (http://kkn1220.tistory.com/116)

2) Thug (http://kkn1220.tistory.com/117)

3) Bro (http://kkn1220.tistory.com/118)

4) Volatility (http://kkn1220.tistory.com/119)



요약을 하자면 Malware 분석 주요 포인트 대상을 파일, URL, Network Traffic, Memory Image로 보고 있다.

Cuckoo Sandbox에서 파일 분석

Thug에서 잠재적 악성 URL 분석

Bro에서 네트워크 분석

Volatility에서 메모리 이미지 분석
위 4가지를 자동화를 통해 Malware 탐지 및 분석





참고: https://zeltser.com/mastering-4-stages-of-malware-analysis/


악성파일 분석 정리


- 악성파일 분석에 있어 아래와 같이 분석 기술에 따라 단계별로 구분할 수 있다.

- 피라미드 형식으로 상위로 갈수록 많은 노력이 필요하다.



1. Fully-automated Analysis

악성 파일 여부를 판별하는 가장 쉬운 방법으로 전체 프로세스가 자동화 된 툴 등을 이용하여 분석

- 인간이 수동적으로 처리해야 할 부분을 대신 처리해줌으로, 신속 처리 가능

- 일반적으로 악성 프로그램에 의해 사용 되는 레지스트리, 파일 행위, 네트워크 트래픽 같은 결과값 출력

(Toolkits for Automating Malware Analysis 도구), (Automated Malware Analysis Services 도구)


2. Static properties analysis

의심스러운 파일에 대해, 파일을 실행하지 않고 정적 속성 값에 대해 분석

정적 속성에는 파일에 포함 된 문자열, 헤더정보, 해시값, 포함 된 리소스, 패커, 시그니처, 생성 날짜와 같은 메타 데이터가 포함

- Virustotal은 정적 속성 분석에 우수한 예


3. Interactive Behavior Analysis

- 자동화 도구 사용하 파일의 정적 속성 값 검사 이후 면밀한 검사를 실시 할 때 사용되는 분석

- 행위 분석에는 레지스트리, 파일시스템, 프로세스 및 네트워크 활동을 이해
(파일을 수동적으로 관찰하기 보다는 악의적 행위를 보는 관점)


4. Manual code reversing

- Decoding encrypted data stored or transferred by the sample
- Determining the logic of the malicious program’s domain generation algorithm

- ollydbgida pro와 같이 코드를 역공학하여 분석 하는 것으로 보면 됨


'기타 > 악성코드 분석' 카테고리의 다른 글

Bro 개념 및 설치  (4) 2017.03.27
Thug 개념 및 설치  (0) 2017.03.27
Cuckoo sanbox 개념 및 설치  (5) 2017.03.27
Open source malware lab 정리  (0) 2017.03.27
악성코드란(목적, 분류, 분석 방법)  (0) 2017.03.13


참고: http://kali-km/tistory.com/entry/악성코드-분류    -악성코드 분류



악성코드란?

악성 행위를 위해 개발된 디바이스 상에서 동작하는 모든 실행 가능한 형태

보통 악성코드라 하면 EXE와 같은 실행파일을 생각할 수 있으나, JS와 같은 스크립트 등의 형태도 존재


악성코드의 목적

사회 기반 시설에서부터 산업 기밀 자료를 탈취하기 위한 특수적 목적

기업 대상 개인 정보 수집변조 및 신분 절도 등을 위한 목적

사회적 이슈인 랜섬웨어와 같은 금전 요구 목적

광고 노출 및 홍보를 위한 목적 등


악성코드 분류

1) 동작에 의한 분류

많은 악성코드가 존재하지만, 동작하는지에 따라 크게 네 가지로 분류 가능


1. Virus

- 프로그램을 통해 감염되는 악성코드

- 바이러스 실행 시 새로운 매개체(파일)를 찾고, 바이러스는 대상의 PE* 구조를 변경하거나 코드를 삽입하는 등의 방식으로 자신이 가지고 있는 악의적인 행위를 다른 파일 또한 하도록 조작

- 일반적 파일들만 감염시키는 것이 아닌 플로피 디스크와 하드디스크 파티션의 VBR, MBR 등을 감염

2. Worm

- 컴퓨터의 취약점을 찾아 네트워크를 통해 스스로 감염되는 악성코드

- 바이러스와 달리 스스로 전달 가능하며, 컴퓨터의 파일만을 손상시키는 바이러스와 달리 네트워크를 손상시키고 대역폭 잠식

3. PUP(Potentially Unwanted Program)

- 대개 악성코드는 사용자가 동의하지 않고 설치되지만, PUP의 경우 사용자의 동의가 포함됨

- 로그인할 때마다 광고하고자 하는 웹 사이트의 바로가기를 바탕화면에 생성하거나, 웹 브라우저의 기본 페이지 변경, 광고 노출 등

4. Trojan

- 트로이 목마도 마찬가지로 공격자가 의도하는 바를 위하여 대상을 속인 다음 실행되었을 경우 숨겨져 있던 기능을 수행

- 바이러스와 같이 다른 파일을 변조하지 않고, 웜과 같이 네트워크를 통한 전파나 자가 복제가 이루어지지 않으며, 마지막으로 PUP와 같이 사용자의 동의가 이루어지지 않았을 때 'Trojan'으로 분류 (네 가지중 가장 많이 사용)


PE*: Portable Executable은 윈도우 운영체제에서 사용되는 실행파일, DLL 등을 위한 파일 형식. PE 포맷은 윈도우 로더가 실행 가능한 코드를 관리하는데 필요한 정보를 캡슐화한 데이터 구조


2) 목적에 의한 분류

1. Downloader

- 다운로드 기능이 있는 프로그램 자체가 악의적인 것이 아님. 악성코드 제작자들은 안티바이러스 제품이 다운로드 기능을 막는 것이 아닌 것을 알기 때문에 이를 이용하는 것으로, 차단되지 않고 존재하고 있는 프로그램을 사용자가 실행하였을 경우 외부로부터 추가적인 악성코드를 받기 때문에 이후의 동작을 위한 목적이라 볼 수 있음

2.  Dropper

- 다운로더가 외부에서 파일을 다운받는 것에 반해 드롭퍼의 경우 자기 자신 안에 존재하고 있는 데이터들을 통해 새로운 파일 생성

3.  Launcher

- 1.2 번이 새로운 파일을 생성하였다 하더라도, 추가적인 악성 행위를 하기 위해선 새로운 파일 또한 실행 되어야함. 그렇기에 이들을 실행하기 위한 기능을 수행

4.5.6.7. Adware, Spyware, Ransomware, Scareware

- Adware는 광고를 이용, Spyware는 패스워드 스틸러나 키로거와 같이 세분화 될 수 있음. Ransomware는 요새 가장 핫한 파일 암호화를 통한 몸값 지불 방식(비트코인 사용), Scareware는 겁주기 위한 목적

8. Backdoor

- '뒷문'의 뜻으로 공급 단계에서나, 시스템 침투 이후 '몰래' 시스템에 들어오기 위한 파일을 심어둠

9. Rootkit

- 루트킷은 컴퓨터에 접근하거나 일반적으로 허용되지 않는 영역에 접근할 수 있도록 설계. 일반적으로 악성코드가 시스템에 설치된 후, 들키지 않고 계속 남아 악의적인 기능을 수행


그 외 봇넷, 익스플로잇 등이 있음....


악성코드의 분석

1.초기 분석

- 수집된 악성코드를 처음으로 분석하는 방법. 따로 실행하지 않고, 그 외형을 보고 분석을 하는 단계


- Virustotal을 이용한 정적 속성 분석


- 패킹 여부 확인


- 언패킹을 통한 문자열 확인


좌측은 UPX로 패킹이 되어 문자열이 전부 보이지 않지만, 오른쪽의 경우 언패킹을 하여 확인 결과, 더 많은 API 문자열을 확인할 수 있다.


위와 같이 악성코드 파일을 실행하지 않고, 파일의 외형이나 간단히 들여다 볼 수 있는 정보들을 이용하여 악성코드의 동작 방식을 유추할 수 있는 단계를 초기 분석이라고 한다.





2.동적 분석

악성코드를 분석환경에서 실행시킨 직후부터 순간순간 시스템의 변화를 분석하는 단계

(네트워크/프로세스/파일시스템/레지스트리 조작 행위들에 대한 분석)



1) 네트워크 행위 확인

  (외부 시스템과의 통신 여부 확인)


Wireshark를 통한 네트워크 행위 확인


TCPView를 통한 행위 확인




2) 프로세스 행위

  (추가로 생성하는 프로세스 존재 여부)

  (프로세스 자가 종료 여부)


Process Explorer를 통한 비정상 프로세스 확인

   -주요 프로세스 확인

   -사용자 관련 프로세스 확인

    (explorer.exe 프로세스 하위에 동작하는 프로세스 확인)

   -의심 프로세스 정보 확인

    (Description, Company Name, Version, TCP/IP, Strings )



Process Monitor를 통한 boot logging 확인

   - 프로세스 상관관계 분석

   - 인젝터 존재유무 확인

   - 은닉 프로세스 확인

   - 의심 프로세스 행위 분석

    (e.g. 지속적인 DNS Cache DATA 초기화, 특정 폴더 복사 등)


3) 파일시스템 행위 (위 내용들을 통해 해결 가능)

- 추가 파일 dropping 여부 확인

- 파일 삭제 및 조작 여부 확인



4) 레지스트리* 조작 행위
   (
레지스트리*: 시스템, 애플리케이션과 사용자와 관련된 환경설정 정보 및 각종 프로파일링 정보를 담고있는 일종의 데이터베이스)

- 레지스트리의 자동실행 관련 포인트 조작 여부 (~~\Services\, ~~\Runs, ~~\SSODL )


Autoruns를 통한 자동실행 지점 확인







3.정적 분석

정적 분석은 악성코드 파일을 디스어셈블하여 세부적인 동작을 분석하는 단계


ollydbg를 통한 메모리 분석


ida를 통한 정적 분석



+ Recent posts