티스토리 뷰

바이러스 토탈을 통해 할 수 있는 기능은 크게 세 가지의 기능을 가지고 있습니다.

 


 

파일을 업로드하여 해당 파일의 백신 진단 여부 파악(50개 이상의 백신 제품 사용)

해쉬 값을 이용하여 기존에 분석된 파일 레포트 보기

의심 URL에 대해 백신 진단 여부 파악(50개 이상의 백신 제품 사용)

 


 

이번 포스팅에서는 '해쉬 값을 이용하여 기존에 분석된 파일 레포트 보기' 작업을 파이썬을 이용해 자동 스크립트를 만드는 방법에 대해 작성 해보겠습니다!! +_+

Public API Key

바이러스 토탈에서는 사용자들에서 API를 제공해 주기 때문에 손쉽게 사용자 프로그램을 작성할 수 있습니다. 해당 API를 사용하기 위해서는 API Key가 필요하며, API Key는 유료 사용자들을 위한 Private API Key와 무료 사용자들을 위한 Public API Key가 있습니다. Public API Key는 바이러스 토탈 홈페이지에 무료가입 이후에 'My API Key'페이지에서 확인 가능합니다.

 

 

API를 이용해 웹 요청을 할때 Parameter로 API Key값이 꼭 필요합니다! Public API Key를 이용해 바이러스 토탈에 쿼리를 보낼때는 1분에 4번 보낼수 있습니다. 초로 계산한다면 15초에 한 번씩 쿼리를 보낼 수 있고 하루로 계산하면 5760번 쿼리를 보낼 수 있습니다.

 

 

Public API Key를 이용해 바이러스 토탈 서버와 통신하는 방법은 여기에 설명이 나와있습니다. 해당 페이지에서 'Retrieving file scan reports'항목을 기반으로 '해쉬 값을 이용하여 기존에 분석된 파일 레포트 보기'를 구현하는 방법을 설명하겠습니다.

 

Retrieving file scan reports

분석된 파일 레포트를 보기 위해서는 'https://www.virustotal.com/vtapi/v2/file/report'주소에 HTTP POST형식으로 쿼리를 요청하면 됩니다.

 

동작 방식은 위 URL에 POST형식 파라미터로 'resource'와 'apikey'를 전송해 주면 바이러스 토탈에서는 json형태로 결과값을 보내주며, 'resource'에 해당하는 해쉬 값의 종류는 'md5/sha1/sha256'의 형태로 가능합니다.

 

아래는 바이러스 토탈에서 제시해주는 방법입니다.

 

 

그리고 제가 구현한 방법은 5개의 Public API Key를 이용해 3초에 한 번씩 쿼리는 보내며, 지정한 폴더내에 있는 모든 파일에 대해 MD5해시 값을 이용해 파일 분석 결과를 요청하는 방법입니다.

 

 

저같은 경우는 'Retrieving file scan reports'기능만 필요하기 때문에 그에 대한 기능만 구현되어 있습니다....^^; 만약 Private API Key를 사용하거나 다른 기능들을 사용하시고 싶은 분들은 GitHub에서 다양한 프로젝트를 이용하실 수 있습니다.^_^

 

https://github.com/Xen0ph0n/VirusTotal_API_Tool

https://github.com/Gawen/virustotal

https://github.com/jwalker/Virustotal-Module

https://github.com/botherder/virustotal/blob/master/vt.py

https://github.com/Erethon/vta.py

https://github.com/subbyte/virustotal

https://github.com/Phillipmartin/virustotal2

https://github.com/Lookingglass/Maltego/blob/master/VTtransforms.py

https://github.com/blacktop/virustotal-api

 

위 프로젝트는 Python으로 제작된 프로젝트이며 다른 언어들은 의 'Scripts to interact with the public API'에서 확인할 수 있으며 제공되는 언어의 종류는 아래와 같습니다.

 


댓글