SlideShare a Scribd company logo
1 of 50
Download to read offline
Viper 1.2
OpenSource Management
Application for Malware
㈜한국정보보호교육센터 F-NGS Lab
선임연구원 최우석
00. Who am I?
Agenda 01. What is Viper?
02. How to use operator?
03. How to use modules?
Chapter 1 What is Viper?
• What is viper?
• How to install?
01. What is Viper?
What is viper?
 바이퍼(Viper)는 독사를 의미함
 바이퍼 : 바이너리 분석과 관리할 수 있는 프레임워크
 파이썬으로 제작됨
 BSD 라이선스를 가짐
01. What is Viper?
What is viper?
 PrettyTable 모듈을 이용하여 CLI 환경을 제공
01. What is Viper?
What is viper?
 현재는 Bottle 모듈로 API 기능으로 확장과 Web 인터페이스로 GUI 환경을 제공
01. What is Viper?
What is viper?
 http://viper.malwareconfig.com/
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 함수를 사용할 수 있게 지원하는 패키지
01. What is Viper?
How to install?
 바이퍼 다운로드
$ git clone https://github.com/botherder/viper.git
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 파이썬 파서
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의 다양한 암호화 기능을 사용하기 위한 라이브러리
01. What is Viper?
How to install?
 업데이트
$ python update.py
Chapter 2 How to use operators?
• Command operations
02. How to use operators?
Command operations
 바이퍼 실행 및 도움말
$ python viper.py
02. How to use operators?
Command operations
 프로젝트 생성 - 1
$ python viper.py –p fngs1
02. How to use operators?
Command operations
 프로젝트 생성 - 2
Viper > projects -s fngs2
02. How to use operators?
Command operations
 커맨드
Viper > help
02. How to use operators?
Command operations
 커맨드 - store
Viper > store -h
02. How to use operators?
Command operations
 커맨드 - find
Viper > find -h
02. How to use operators?
Command operations
 커맨드 - open
Viper > open -h
Chapter 3 How to use modules?
• Modules
03. How to use modules?
Modules
 바이퍼 모듈 리스트
Viper > help
03. How to use modules?
Modules
 바이퍼 모듈 리스트
Viper > help
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
03. How to use modules?
Modules
 바이퍼 모듈 – apk (androguard) - 실습
Viper > apk
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
03. How to use modules?
Modules
 바이퍼 모듈 – clamav
Viper > clamav
03. How to use modules?
Modules
 바이퍼 모듈 – cuckoo
03. How to use modules?
Modules
 바이퍼 모듈 – Dedup 모듈
 Description Backup 의 약자로 McAfee의 안티바이러스 제품에 의해 생성되는 파일
 McAfee 안티바이러스 제품에 의해 탐지된 악성코드는 검역소에 .bup 확장자로 저장
 저장된 파일은 실행되지 않도록 원본파일에 XOR 106을 연산하여 격리
 Bup 확장자를 가진 파일을 바이퍼 프로젝트에 저장하고 오픈하여 이 모듈을 사용
 이 모듈을 사용하면 다시 XOR 106 연산하여 정상적으로 실행 가능한 악성코드로 변
환하고, 분석을 진행 가능
03. How to use modules?
Modules
 바이퍼 모듈 – Editdistance 모듈 (1/2)
 Edit Distance 알고리즘을 파일을 분류하는 방법으로 사용
 Edit Distance 알고리즘은 두 문자를 비교하는데, A 라는 문자를 B 라는 문자로 변환
하기 위해 요구되는 연산의 수를 의미
 변환하는데 들어가는 연산은 다음 세 가지를 사용하며, 연산이 진행된 횟수가 Edit
Distance의 값을 의미
 변환(change), 삽입 (insertion), 삭제 (deletion)
 비교한 두 문자의 거리가 짧을수록 유사도가 높다는 의미를 가짐
 문자 필터링, 검색엔진 등에 사용
악성코드에서 사용하는 Edit Distance는 문자열 사이의 거리를 평균값으로 수치화하
여 유사도를 측정하는데 사용
 바이퍼 모듈 – Editdistance 모듈 (2/2)
03. How to use modules?
Modules
 바이퍼 모듈 – elf 모듈
03. How to use modules?
Modules
 바이퍼 모듈 – email 모듈
03. How to use modules?
개요
03. How to use modules?
Modules
 바이퍼 모듈 – exif 모듈
$ sudo apt-get install libimage-exiftool-perl
03. How to use modules?
Modules
 바이퍼 모듈 – fuzzy 모듈
악성코드의 유사도 산출기법
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
03. How to use modules?
Modules
 바이퍼 모듈 – idx
03. How to use modules?
Modules
 바이퍼 모듈 – image
03. How to use modules?
Modules
 바이퍼 모듈 – jar
03. How to use modules?
Modules
 바이퍼 모듈 – office
03. How to use modules?
Modules
 바이퍼 모듈 – pdf
03. How to use modules?
Modules
 바이퍼 모듈 – pe
03. How to use modules?
Modules
 바이퍼 모듈 – Radare2 모듈
$ sudo apt-get install radare2
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
03. How to use modules?
Modules
 바이퍼 모듈 – rat 모듈
03. How to use modules?
Modules
 바이퍼 모듈 – reports
03. How to use modules?
Modules
 바이퍼 모듈 – reports
Thank you

More Related Content

What's hot

(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라INSIGHT FORENSIC
 
클라우드 서비스를 이용한 APT 대응
클라우드 서비스를 이용한 APT 대응클라우드 서비스를 이용한 APT 대응
클라우드 서비스를 이용한 APT 대응Youngjun Chang
 
악성 코드와 보안 위협 동향
악성 코드와 보안 위협 동향악성 코드와 보안 위협 동향
악성 코드와 보안 위협 동향Youngjun Chang
 
호이대학교병원 파이널 프로젝트
호이대학교병원 파이널 프로젝트호이대학교병원 파이널 프로젝트
호이대학교병원 파이널 프로젝트ssuserfe55c7
 
호두마루와 체리마루
호두마루와 체리마루호두마루와 체리마루
호두마루와 체리마루apxA
 
(FICON2015) #3 어떻게 들어왔는가?
(FICON2015) #3 어떻게 들어왔는가?(FICON2015) #3 어떻게 들어왔는가?
(FICON2015) #3 어떻게 들어왔는가?plainbit
 
Memory forensics with volatility
Memory forensics with volatilityMemory forensics with volatility
Memory forensics with volatilityYoungjun Chang
 
1.악성코드 최신 동향과 기법
1.악성코드 최신 동향과 기법1.악성코드 최신 동향과 기법
1.악성코드 최신 동향과 기법Youngjun Chang
 
랜섬웨어 vs 윈도우 10
랜섬웨어 vs 윈도우 10랜섬웨어 vs 윈도우 10
랜섬웨어 vs 윈도우 10Sik Kim
 
(Ficon2016) #3 분석가와 관리자가 바라본 랜섬웨어
(Ficon2016) #3 분석가와 관리자가 바라본 랜섬웨어(Ficon2016) #3 분석가와 관리자가 바라본 랜섬웨어
(Ficon2016) #3 분석가와 관리자가 바라본 랜섬웨어INSIGHT FORENSIC
 
(FICON2015) #4 어떻게 가져갔는가?
(FICON2015) #4 어떻게 가져갔는가?(FICON2015) #4 어떻게 가져갔는가?
(FICON2015) #4 어떻게 가져갔는가?plainbit
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법Youngjun Chang
 
Windows Vista Security
Windows Vista SecurityWindows Vista Security
Windows Vista SecurityYoungjun Chang
 
Azure IaaS 기본 아키텍처 실습 (Deck)
Azure IaaS 기본 아키텍처 실습 (Deck)Azure IaaS 기본 아키텍처 실습 (Deck)
Azure IaaS 기본 아키텍처 실습 (Deck)Taeyoung Kim
 
악성코드 개념 및 대응 기술 (사이버 게놈 기술)
악성코드 개념 및 대응 기술 (사이버 게놈 기술)악성코드 개념 및 대응 기술 (사이버 게놈 기술)
악성코드 개념 및 대응 기술 (사이버 게놈 기술)seungdols
 
악성코드와 기업의 악성코드 대응
악성코드와 기업의 악성코드 대응악성코드와 기업의 악성코드 대응
악성코드와 기업의 악성코드 대응Youngjun Chang
 
악성코드 동향 및 대응 방안
악성코드 동향 및 대응 방안악성코드 동향 및 대응 방안
악성코드 동향 및 대응 방안Youngjun Chang
 
악성코드 최신 동향과 기법
악성코드 최신 동향과 기법악성코드 최신 동향과 기법
악성코드 최신 동향과 기법Youngjun Chang
 
(Fios#03) 4. 파워셸 포렌식 조사 기법
(Fios#03) 4. 파워셸 포렌식 조사 기법(Fios#03) 4. 파워셸 포렌식 조사 기법
(Fios#03) 4. 파워셸 포렌식 조사 기법INSIGHT FORENSIC
 

What's hot (20)

(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
 
클라우드 서비스를 이용한 APT 대응
클라우드 서비스를 이용한 APT 대응클라우드 서비스를 이용한 APT 대응
클라우드 서비스를 이용한 APT 대응
 
악성 코드와 보안 위협 동향
악성 코드와 보안 위협 동향악성 코드와 보안 위협 동향
악성 코드와 보안 위협 동향
 
APT Case Study
APT Case StudyAPT Case Study
APT Case Study
 
호이대학교병원 파이널 프로젝트
호이대학교병원 파이널 프로젝트호이대학교병원 파이널 프로젝트
호이대학교병원 파이널 프로젝트
 
호두마루와 체리마루
호두마루와 체리마루호두마루와 체리마루
호두마루와 체리마루
 
(FICON2015) #3 어떻게 들어왔는가?
(FICON2015) #3 어떻게 들어왔는가?(FICON2015) #3 어떻게 들어왔는가?
(FICON2015) #3 어떻게 들어왔는가?
 
Memory forensics with volatility
Memory forensics with volatilityMemory forensics with volatility
Memory forensics with volatility
 
1.악성코드 최신 동향과 기법
1.악성코드 최신 동향과 기법1.악성코드 최신 동향과 기법
1.악성코드 최신 동향과 기법
 
랜섬웨어 vs 윈도우 10
랜섬웨어 vs 윈도우 10랜섬웨어 vs 윈도우 10
랜섬웨어 vs 윈도우 10
 
(Ficon2016) #3 분석가와 관리자가 바라본 랜섬웨어
(Ficon2016) #3 분석가와 관리자가 바라본 랜섬웨어(Ficon2016) #3 분석가와 관리자가 바라본 랜섬웨어
(Ficon2016) #3 분석가와 관리자가 바라본 랜섬웨어
 
(FICON2015) #4 어떻게 가져갔는가?
(FICON2015) #4 어떻게 가져갔는가?(FICON2015) #4 어떻게 가져갔는가?
(FICON2015) #4 어떻게 가져갔는가?
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
 
Windows Vista Security
Windows Vista SecurityWindows Vista Security
Windows Vista Security
 
Azure IaaS 기본 아키텍처 실습 (Deck)
Azure IaaS 기본 아키텍처 실습 (Deck)Azure IaaS 기본 아키텍처 실습 (Deck)
Azure IaaS 기본 아키텍처 실습 (Deck)
 
악성코드 개념 및 대응 기술 (사이버 게놈 기술)
악성코드 개념 및 대응 기술 (사이버 게놈 기술)악성코드 개념 및 대응 기술 (사이버 게놈 기술)
악성코드 개념 및 대응 기술 (사이버 게놈 기술)
 
악성코드와 기업의 악성코드 대응
악성코드와 기업의 악성코드 대응악성코드와 기업의 악성코드 대응
악성코드와 기업의 악성코드 대응
 
악성코드 동향 및 대응 방안
악성코드 동향 및 대응 방안악성코드 동향 및 대응 방안
악성코드 동향 및 대응 방안
 
악성코드 최신 동향과 기법
악성코드 최신 동향과 기법악성코드 최신 동향과 기법
악성코드 최신 동향과 기법
 
(Fios#03) 4. 파워셸 포렌식 조사 기법
(Fios#03) 4. 파워셸 포렌식 조사 기법(Fios#03) 4. 파워셸 포렌식 조사 기법
(Fios#03) 4. 파워셸 포렌식 조사 기법
 

Viewers also liked

Pros adm
Pros admPros adm
Pros admLE96
 
DOES CHEMICAL & PETROCHEMICAL CATALOGUE
DOES CHEMICAL & PETROCHEMICAL CATALOGUEDOES CHEMICAL & PETROCHEMICAL CATALOGUE
DOES CHEMICAL & PETROCHEMICAL CATALOGUEVaishakh Nair
 
Luis gonzalez(iut)18154157
Luis gonzalez(iut)18154157Luis gonzalez(iut)18154157
Luis gonzalez(iut)18154157Luis Gonzalez
 
Manual dos amplificadores Warwick WA300 600 BC300 (PORTUGUÊS)
Manual dos amplificadores Warwick WA300 600 BC300 (PORTUGUÊS)Manual dos amplificadores Warwick WA300 600 BC300 (PORTUGUÊS)
Manual dos amplificadores Warwick WA300 600 BC300 (PORTUGUÊS)Habro Group
 
Leonardo time to breedge
Leonardo time to breedgeLeonardo time to breedge
Leonardo time to breedgeEuclidNetwork2
 
Tirthesh Prajapati Baba TEP come Gujju
Tirthesh Prajapati Baba TEP come GujjuTirthesh Prajapati Baba TEP come Gujju
Tirthesh Prajapati Baba TEP come Gujjucalculator1
 
CORAL, NETSL 2014 Spring
CORAL, NETSL 2014 SpringCORAL, NETSL 2014 Spring
CORAL, NETSL 2014 SpringChenweiZhao
 
Image Now Interact For Share Point
Image Now Interact For Share PointImage Now Interact For Share Point
Image Now Interact For Share PointMarcus Hinterseer
 
Dossier: declaraciones en medios gráficos ante reiteradas inundaciones en La ...
Dossier: declaraciones en medios gráficos ante reiteradas inundaciones en La ...Dossier: declaraciones en medios gráficos ante reiteradas inundaciones en La ...
Dossier: declaraciones en medios gráficos ante reiteradas inundaciones en La ...Oscar Negrelli
 
Programa de Voluntariado de la Fundación Santa Marta Sin Limites
Programa de Voluntariado de la Fundación Santa Marta Sin LimitesPrograma de Voluntariado de la Fundación Santa Marta Sin Limites
Programa de Voluntariado de la Fundación Santa Marta Sin LimitesFundación Santa Marta Sin Limites
 
Apresentação bolt energias
Apresentação bolt energiasApresentação bolt energias
Apresentação bolt energiasFlaviohiraide
 
Manual energia solar
Manual energia solarManual energia solar
Manual energia solarMarvin Mendez
 
(FICON2015) #5 보안담당자가 겪는 실무적 이슈와 법률적 검토
(FICON2015) #5 보안담당자가 겪는 실무적 이슈와 법률적 검토(FICON2015) #5 보안담당자가 겪는 실무적 이슈와 법률적 검토
(FICON2015) #5 보안담당자가 겪는 실무적 이슈와 법률적 검토plainbit
 
(FICON2015) #2 어떻게 조사할 것인가?
(FICON2015) #2 어떻게 조사할 것인가?(FICON2015) #2 어떻게 조사할 것인가?
(FICON2015) #2 어떻게 조사할 것인가?plainbit
 
(FICON2015) #1 어떻게 대응할 것인가?
(FICON2015) #1 어떻게 대응할 것인가?(FICON2015) #1 어떻게 대응할 것인가?
(FICON2015) #1 어떻게 대응할 것인가?plainbit
 

Viewers also liked (20)

Pros adm
Pros admPros adm
Pros adm
 
DOES CHEMICAL & PETROCHEMICAL CATALOGUE
DOES CHEMICAL & PETROCHEMICAL CATALOGUEDOES CHEMICAL & PETROCHEMICAL CATALOGUE
DOES CHEMICAL & PETROCHEMICAL CATALOGUE
 
Luis gonzalez(iut)18154157
Luis gonzalez(iut)18154157Luis gonzalez(iut)18154157
Luis gonzalez(iut)18154157
 
Manual dos amplificadores Warwick WA300 600 BC300 (PORTUGUÊS)
Manual dos amplificadores Warwick WA300 600 BC300 (PORTUGUÊS)Manual dos amplificadores Warwick WA300 600 BC300 (PORTUGUÊS)
Manual dos amplificadores Warwick WA300 600 BC300 (PORTUGUÊS)
 
Leonardo time to breedge
Leonardo time to breedgeLeonardo time to breedge
Leonardo time to breedge
 
LA CRÓNICA 575
LA CRÓNICA 575LA CRÓNICA 575
LA CRÓNICA 575
 
Tirthesh Prajapati Baba TEP come Gujju
Tirthesh Prajapati Baba TEP come GujjuTirthesh Prajapati Baba TEP come Gujju
Tirthesh Prajapati Baba TEP come Gujju
 
CORAL, NETSL 2014 Spring
CORAL, NETSL 2014 SpringCORAL, NETSL 2014 Spring
CORAL, NETSL 2014 Spring
 
decreto 1014
decreto 1014decreto 1014
decreto 1014
 
Image Now Interact For Share Point
Image Now Interact For Share PointImage Now Interact For Share Point
Image Now Interact For Share Point
 
Bondia.cat 02/05/2013
Bondia.cat 02/05/2013Bondia.cat 02/05/2013
Bondia.cat 02/05/2013
 
Händlerliste.pdf
Händlerliste.pdfHändlerliste.pdf
Händlerliste.pdf
 
Dossier: declaraciones en medios gráficos ante reiteradas inundaciones en La ...
Dossier: declaraciones en medios gráficos ante reiteradas inundaciones en La ...Dossier: declaraciones en medios gráficos ante reiteradas inundaciones en La ...
Dossier: declaraciones en medios gráficos ante reiteradas inundaciones en La ...
 
Programa de Voluntariado de la Fundación Santa Marta Sin Limites
Programa de Voluntariado de la Fundación Santa Marta Sin LimitesPrograma de Voluntariado de la Fundación Santa Marta Sin Limites
Programa de Voluntariado de la Fundación Santa Marta Sin Limites
 
Apresentação bolt energias
Apresentação bolt energiasApresentação bolt energias
Apresentação bolt energias
 
Menganal Nanoteknologi
Menganal NanoteknologiMenganal Nanoteknologi
Menganal Nanoteknologi
 
Manual energia solar
Manual energia solarManual energia solar
Manual energia solar
 
(FICON2015) #5 보안담당자가 겪는 실무적 이슈와 법률적 검토
(FICON2015) #5 보안담당자가 겪는 실무적 이슈와 법률적 검토(FICON2015) #5 보안담당자가 겪는 실무적 이슈와 법률적 검토
(FICON2015) #5 보안담당자가 겪는 실무적 이슈와 법률적 검토
 
(FICON2015) #2 어떻게 조사할 것인가?
(FICON2015) #2 어떻게 조사할 것인가?(FICON2015) #2 어떻게 조사할 것인가?
(FICON2015) #2 어떻게 조사할 것인가?
 
(FICON2015) #1 어떻게 대응할 것인가?
(FICON2015) #1 어떻게 대응할 것인가?(FICON2015) #1 어떻게 대응할 것인가?
(FICON2015) #1 어떻게 대응할 것인가?
 

Similar to 보안프로젝트 세미나 Viper-v1.2

Python packaging
Python packagingPython packaging
Python packagingJi Hun Kim
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱NAVER D2
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1Booseol Shin
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼mangonamu
 
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Dongil Yeom
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축I Goo Lee
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment SettingKwangyoun Jung
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기Chanwoong Kim
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명Peter YoungSik Yun
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨KwangSeob Jeong
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXpressEngine
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...MaRoKim4
 
Nutch Homepage Search Engine
Nutch Homepage Search EngineNutch Homepage Search Engine
Nutch Homepage Search EngineKay Kim
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 

Similar to 보안프로젝트 세미나 Viper-v1.2 (20)

Python packaging
Python packagingPython packaging
Python packaging
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
 
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment Setting
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
Internship backend
Internship backendInternship backend
Internship backend
 
JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
 
Nutch Homepage Search Engine
Nutch Homepage Search EngineNutch Homepage Search Engine
Nutch Homepage Search Engine
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 

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

  • 1. Viper 1.2 OpenSource Management Application for Malware ㈜한국정보보호교육센터 F-NGS Lab 선임연구원 최우석
  • 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
  • 22. Chapter 3 How to use modules? • Modules
  • 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
  • 43. 03. How to use modules? Modules  바이퍼 모듈 – pe
  • 44. 03. How to use modules? Modules  바이퍼 모듈 – Radare2 모듈 $ sudo apt-get install radare2
  • 45. 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
  • 46. 03. How to use modules? Modules  바이퍼 모듈 – rat 모듈
  • 47. 03. How to use modules? Modules  바이퍼 모듈 – reports
  • 48. 03. How to use modules? Modules  바이퍼 모듈 – reports
  • 49.