보안프로젝트 세미나 viper-v1.2

50
Viper 1.2 OpenSource Management Application for Malware ㈜한국정보보호교육센터 F-NGS Lab 선임연구원 최우석

Upload: jason-choi

Post on 21-Jul-2015

869 views

Category:

Engineering


6 download

TRANSCRIPT

Page 1: 보안프로젝트 세미나 Viper-v1.2

Viper 1.2 OpenSource Management

Application for Malware ㈜한국정보보호교육센터 F-NGS Lab

선임연구원 최우석

Page 2: 보안프로젝트 세미나 Viper-v1.2

00. Who am I?

Page 3: 보안프로젝트 세미나 Viper-v1.2

Agenda 01. What is Viper?

02. How to use operator?

03. How to use modules?

Page 4: 보안프로젝트 세미나 Viper-v1.2

Chapter 1 What is Viper? • What is viper?

• How to install?

Page 5: 보안프로젝트 세미나 Viper-v1.2

01. What is Viper? What is viper?

바이퍼(Viper)는 독사를 의미함

바이퍼 : 바이너리 분석과 관리할 수 있는 프레임워크

파이썬으로 제작됨

BSD 라이선스를 가짐

Page 6: 보안프로젝트 세미나 Viper-v1.2

01. What is Viper? What is viper?

PrettyTable 모듈을 이용하여 CLI 환경을 제공

Page 7: 보안프로젝트 세미나 Viper-v1.2

01. What is Viper? What is viper?

현재는 Bottle 모듈로 API 기능으로 확장과 Web 인터페이스로 GUI 환경을 제공

Page 8: 보안프로젝트 세미나 Viper-v1.2

01. What is Viper? What is viper?

http://viper.malwareconfig.com/

Page 9: 보안프로젝트 세미나 Viper-v1.2

01. What is Viper? How to install?

선행 설치

$ sudo apt-get install git libfuzzy-dev curl python-pip python-socksipy torsocks python-dev swig

No Package Name Description

1 Git Github를 이용하여 Viper를 다운로드

2 Libfuzzy-dev Ssdeep을 사용하기 위해 설치하는 라이브러리

3 Curl Api.py와 통신하기 위해 사용하는 HTTP 프로토콜 이용 도구

4 Python-pip 파이썬 전용 저장소를 이용하여 파이썬 라이브러리를 설치하기 위해 설치

5 Python-socksipy Viper가 Tor 네트워크를 사용하기 위해 설치하는 라이브러리

6 Torsocks Tor 네트워크를 이용하기 위해 설치

7 Python-dev 파이썬 인터프리터 기능 확장을 위해 설치

8 Swig 파이썬에 C 함수를 사용할 수 있게 지원하는 패키지

Page 10: 보안프로젝트 세미나 Viper-v1.2

01. What is Viper? How to install?

바이퍼 다운로드

$ git clone https://github.com/botherder/viper.git

Page 11: 보안프로젝트 세미나 Viper-v1.2

01. What is Viper? How to install?

필수 라이브러리 설치 - 1

$ sudo pip install -r requirements.txt

No Package Name Description

1 python-magic 파일 타입을 선별해주는 파이썬 라이브러리

2 pefile PE 구조에 대한 분석을 지원하는 파이썬 라이브러리

3 PrettyTable ASCII 형태로 만든 테이블로 데이터를 표현하는 라이브러리

4 pydeep Ssdeep 해시를 사용할 수 있는 파이썬 라이브러리

5 requests http 파이썬 라이브러리

6 SQLAlchemy 파이썬 sql 툴킷

7 pycrypto 파이썬 암호화 모듈

8 OleFileIO_PL MS OLE2 파일 분석 파이썬 모듈

9 BeautifulSoup4 HTML, XML 파이썬 파서

Page 12: 보안프로젝트 세미나 Viper-v1.2

01. What is Viper? How to install?

필수 라이브러리 설치 - 2

$ sudo pip install -r requirements.txt

No Package Name Description

10 bottle 파이썬을 위한 빠르고, 간단하고, 가벼운 웹 프레임워크

11 pylzma 압축 해제를 위한 파이썬 LZMA 라이브러리

12 pyelftools ELF 파일 분석을 위한 파이썬 라이브러리

13 bitstring 이진 데이터 구조, 분석 수정을 위한 파이썬 라이브러리

14 dnspython DNS 조회를 위한 파이썬 라이브러리

15 pyexiftool exif 메타데이터를 이용하기 위한 파이썬 라이브러리

16 pyasn1 ASN.1 형태와 코드를 실행하기 위한 파이썬 라이브러리

17 M2Crypto OpenSSL의 다양한 암호화 기능을 사용하기 위한 라이브러리

Page 13: 보안프로젝트 세미나 Viper-v1.2

01. What is Viper? How to install?

업데이트

$ python update.py

Page 14: 보안프로젝트 세미나 Viper-v1.2

Chapter 2 How to use operators? • Command operations

Page 15: 보안프로젝트 세미나 Viper-v1.2

02. How to use operators? Command operations

바이퍼 실행 및 도움말

$ python viper.py

Page 16: 보안프로젝트 세미나 Viper-v1.2

02. How to use operators? Command operations

프로젝트 생성 - 1

$ python viper.py –p fngs1

Page 17: 보안프로젝트 세미나 Viper-v1.2

02. How to use operators? Command operations

프로젝트 생성 - 2

Viper > projects -s fngs2

Page 18: 보안프로젝트 세미나 Viper-v1.2

02. How to use operators? Command operations

커맨드

Viper > help

Page 19: 보안프로젝트 세미나 Viper-v1.2

02. How to use operators? Command operations

커맨드 - store

Viper > store -h

Page 20: 보안프로젝트 세미나 Viper-v1.2

02. How to use operators? Command operations

커맨드 - find

Viper > find -h

Page 21: 보안프로젝트 세미나 Viper-v1.2

02. How to use operators? Command operations

커맨드 - open

Viper > open -h

Page 22: 보안프로젝트 세미나 Viper-v1.2

Chapter 3 How to use modules? • Modules

Page 23: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 리스트

Viper > help

Page 24: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 리스트

Viper > help

Page 25: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – apk (androguard) - 설치

$ sudo apt-get install subversion python-dev libbz2-dev liblzma-dev libc6-dev g++ libsnappy-dev $ svn checkout http://muparser.googlecode.com/svn/trunk/ muparser $ cd muparser /muparser$ sudo ./configure && make && sudo make install /muparser$ cd .. $ svn checkout http://sparsehash.googlecode.com/svn/trunk/ sparsehash $ cd sparsehash /sparsehash$ sudo ./configure && sudo make && sudo make install /sparsehash$ cd .. $ wget https://androguard.googlecode.com/files/androguard-1.9.tar.gz $ tar xfz androgard-1.9.tar.gz $ cd androgard-1.9 /androguard-1.9$ make /androguard-1.9$ python setup.py build /androguard-1.9$ sudo python setup.py install

Page 26: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – apk (androguard) - 실습

Viper > apk

Page 27: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – clamav - 설치

$ sudo apt-get install clamav clamav-freshclam clamav-daemon libclamav-dev $ sudo pip install pyclamd $ sudo freshclam $ sudo chown [user]:[user] -R /etc/clamav/ $ sudo chown [user]:[user] -R /var/run/clamav/ $ sudo chown [user]:[user] -R /var/lib/clamav/ $ sudo chown [user]:[user] -R /var/log/clamav/ $ sudo chmod 644 /etc/clamav/freshclam.conf $ sudo vi /etc/clamav/clamd.conf >> 6번, 10번 라인 변경 $ sudo vi /etc/clamav/freshclam.conf >> 4번 라인 변경 $ sudo freshclam $ sudo service clamav-daemon restart

Page 28: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – clamav

Viper > clamav

Page 29: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – cuckoo

Page 30: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – Dedup 모듈

Description Backup 의 약자로 McAfee의 안티바이러스 제품에 의해 생성되는 파일

McAfee 안티바이러스 제품에 의해 탐지된 악성코드는 검역소에 .bup 확장자로 저장

저장된 파일은 실행되지 않도록 원본파일에 XOR 106을 연산하여 격리

Bup 확장자를 가진 파일을 바이퍼 프로젝트에 저장하고 오픈하여 이 모듈을 사용

이 모듈을 사용하면 다시 XOR 106 연산하여 정상적으로 실행 가능한 악성코드로 변환하고, 분석을 진행 가능

Page 31: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – Editdistance 모듈 (1/2)

Edit Distance 알고리즘을 파일을 분류하는 방법으로 사용

Edit Distance 알고리즘은 두 문자를 비교하는데, A 라는 문자를 B 라는 문자로 변환하기 위해 요구되는 연산의 수를 의미

변환하는데 들어가는 연산은 다음 세 가지를 사용하며, 연산이 진행된 횟수가 Edit Distance의 값을 의미

변환(change), 삽입 (insertion), 삭제 (deletion)

비교한 두 문자의 거리가 짧을수록 유사도가 높다는 의미를 가짐

문자 필터링, 검색엔진 등에 사용

악성코드에서 사용하는 Edit Distance는 문자열 사이의 거리를 평균값으로 수치화하여 유사도를 측정하는데 사용

Page 32: 보안프로젝트 세미나 Viper-v1.2

바이퍼 모듈 – Editdistance 모듈 (2/2)

03. How to use modules? Modules

Page 33: 보안프로젝트 세미나 Viper-v1.2

바이퍼 모듈 – elf 모듈

03. How to use modules? Modules

Page 34: 보안프로젝트 세미나 Viper-v1.2

바이퍼 모듈 – email 모듈

03. How to use modules? 개요

Page 35: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – exif 모듈

$ sudo apt-get install libimage-exiftool-perl

Page 36: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – fuzzy 모듈

악성코드의 유사도 산출기법

Page 37: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – IDA 모듈

$ wget http://out7.hex-rays.com/files/idademo66_linux.tgz $ sudo apt-get install libXext6:i386 lib32stdc++6 libglib2.0-0:i386 libfreetype6:i386 libSM6:i386 libXrender1:i386 libfontconfig1:i386 $ export PATH=$PATH:/home/[user]/tools/idademo66

Page 38: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – idx

Page 39: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – image

Page 40: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – jar

Page 41: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – office

Page 42: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – pdf

Page 43: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – pe

Page 44: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – Radare2 모듈

$ sudo apt-get install radare2

Page 45: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – rat 모듈

$ sudo apt-get update $ sudo apt-get install git autoconf libtool flex python-dev $ git clone https://github.com/plusvic/yara $ cd yara /yara$ sudo chmod +x build.sh /yara $./build.sh /yara $ make /yara $ sudo make install /yara/yara-python$ cd yara-python /yara/yara-python $ python setup.py build /yara/yara-python $ sudo python setup.py install /yara/yara-python $ sudo ldconfig

Page 46: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – rat 모듈

Page 47: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – reports

Page 48: 보안프로젝트 세미나 Viper-v1.2

03. How to use modules? Modules

바이퍼 모듈 – reports

Page 49: 보안프로젝트 세미나 Viper-v1.2
Page 50: 보안프로젝트 세미나 Viper-v1.2

Thank you