3. Agenda 01. What is Viper?
02. How to use operator?
03. How to use modules?
4. Chapter 1 What is Viper?
• What is viper?
• How to install?
5. 01. What is Viper?
What is viper?
바이퍼(Viper)는 독사를 의미함
바이퍼 : 바이너리 분석과 관리할 수 있는 프레임워크
파이썬으로 제작됨
BSD 라이선스를 가짐
6. 01. What is Viper?
What is viper?
PrettyTable 모듈을 이용하여 CLI 환경을 제공
7. 01. What is Viper?
What is viper?
현재는 Bottle 모듈로 API 기능으로 확장과 Web 인터페이스로 GUI 환경을 제공
8. 01. What is Viper?
What is viper?
http://viper.malwareconfig.com/
9. 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 함수를 사용할 수 있게 지원하는 패키지
10. 01. What is Viper?
How to install?
바이퍼 다운로드
$ git clone https://github.com/botherder/viper.git
11. 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 파이썬 파서
12. 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의 다양한 암호화 기능을 사용하기 위한 라이브러리
13. 01. What is Viper?
How to install?
업데이트
$ python update.py
14. Chapter 2 How to use operators?
• Command operations
15. 02. How to use operators?
Command operations
바이퍼 실행 및 도움말
$ python viper.py
16. 02. How to use operators?
Command operations
프로젝트 생성 - 1
$ python viper.py –p fngs1
17. 02. How to use operators?
Command operations
프로젝트 생성 - 2
Viper > projects -s fngs2
18. 02. How to use operators?
Command operations
커맨드
Viper > help
19. 02. How to use operators?
Command operations
커맨드 - store
Viper > store -h
20. 02. How to use operators?
Command operations
커맨드 - find
Viper > find -h
21. 02. How to use operators?
Command operations
커맨드 - open
Viper > open -h
23. 03. How to use modules?
Modules
바이퍼 모듈 리스트
Viper > help
24. 03. How to use modules?
Modules
바이퍼 모듈 리스트
Viper > help
25. 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
26. 03. How to use modules?
Modules
바이퍼 모듈 – apk (androguard) - 실습
Viper > apk
27. 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
28. 03. How to use modules?
Modules
바이퍼 모듈 – clamav
Viper > clamav
29. 03. How to use modules?
Modules
바이퍼 모듈 – cuckoo
30. 03. How to use modules?
Modules
바이퍼 모듈 – Dedup 모듈
Description Backup 의 약자로 McAfee의 안티바이러스 제품에 의해 생성되는 파일
McAfee 안티바이러스 제품에 의해 탐지된 악성코드는 검역소에 .bup 확장자로 저장
저장된 파일은 실행되지 않도록 원본파일에 XOR 106을 연산하여 격리
Bup 확장자를 가진 파일을 바이퍼 프로젝트에 저장하고 오픈하여 이 모듈을 사용
이 모듈을 사용하면 다시 XOR 106 연산하여 정상적으로 실행 가능한 악성코드로 변
환하고, 분석을 진행 가능
31. 03. How to use modules?
Modules
바이퍼 모듈 – Editdistance 모듈 (1/2)
Edit Distance 알고리즘을 파일을 분류하는 방법으로 사용
Edit Distance 알고리즘은 두 문자를 비교하는데, A 라는 문자를 B 라는 문자로 변환
하기 위해 요구되는 연산의 수를 의미
변환하는데 들어가는 연산은 다음 세 가지를 사용하며, 연산이 진행된 횟수가 Edit
Distance의 값을 의미
변환(change), 삽입 (insertion), 삭제 (deletion)
비교한 두 문자의 거리가 짧을수록 유사도가 높다는 의미를 가짐
문자 필터링, 검색엔진 등에 사용
악성코드에서 사용하는 Edit Distance는 문자열 사이의 거리를 평균값으로 수치화하
여 유사도를 측정하는데 사용
32. 바이퍼 모듈 – Editdistance 모듈 (2/2)
03. How to use modules?
Modules
33. 바이퍼 모듈 – elf 모듈
03. How to use modules?
Modules
34. 바이퍼 모듈 – email 모듈
03. How to use modules?
개요
35. 03. How to use modules?
Modules
바이퍼 모듈 – exif 모듈
$ sudo apt-get install libimage-exiftool-perl
36. 03. How to use modules?
Modules
바이퍼 모듈 – fuzzy 모듈
악성코드의 유사도 산출기법
37. 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
38. 03. How to use modules?
Modules
바이퍼 모듈 – idx
39. 03. How to use modules?
Modules
바이퍼 모듈 – image
40. 03. How to use modules?
Modules
바이퍼 모듈 – jar
41. 03. How to use modules?
Modules
바이퍼 모듈 – office
42. 03. How to use modules?
Modules
바이퍼 모듈 – pdf