본문 바로가기

Malware Analysis/- Knowledge storage

malwares,virustotal python script

malwares,virustotal python script 

 

먼저, 두 사이트는 모두 API를 제공한다. API란 무엇인가?..

 

API는 Application Programming Interface의 약자이다. 응용 프로그램 개발자들이 애플리케이션을 만들 떄 운영체제에서 동작하는 프로그램을 쉽게 만들 수 있도록 화면 구성이나 프로그램 동작에 필요한 각종 함수를 모아놓은 것을 말한다.

위 그림에서 예를 들면 API는 메뉴판 라이브러리는 주방이라고 볼 수 있다. C언어에서 printf는 메뉴판(API)을 통해

주방(라이브러리)에서 printf()의 완성된 함수 양식을 꺼내어 보여주고, 손님은 그것을 이용할 수 있습니다.

 

그럼 이제 API를 알고 malwares.com부터 알아 보도록하겠습니다.!

 

 

malwares

 

malwares.com으로 접속을하면 다음과 같은 홈페이지를 볼 수 있다.

 

 

우측 상단을 보면 JOIN을 할 수 있고 회원가입 후 우측상단에 NAME이 뜨면 다음과 같이 API KEY를 얻을 수 있다.

 

이제 API KEY를 이용하여 API를 쉽게 이용하기위한 python script를 만들어보자.

malware의 API사용법은 첨부파일에서 참고하여 볼 수 있다.

파이선은 Anaconda를 이용했다.(Anaconda 설치 시 환경변수 설정으로 체크해줘야한다.! 설치 후 cmd창에 conda를 입력하면 conda에대 한 정보가 나오고 나오는 것을 확인 하고 conda install requests를 해준다.) 코드 에디터는 Sublime Text3를 이용했다.

만들어볼 파이선 스크립트는 총 4가지로 API의 다음 4개의 해당하는 부분이다.

 

분석이 필요한 200MB 미만의 파일을 업로드 할 수 있다.

 

malware_upload.py  [File Upload]

API문서에 있는 내용을 함수를 구현해 api_key와 malware_path만 변경하여 이용할 수 있게 만들었다.

(malware_path의 데이터는 아무파일이나 골라잡아 넣은것이다.)

JSON에 대해 모른다면 http://kimhyun2017.tistory.com/127 << 참고

 

 

[실행결과]

upload한 파일의 해쉬코드를 얻을 수 있는데 이를 복사하여 입력하면 해당 파일에대한 정보가 나온다.

 

내 컴퓨터에 있는 아무파일이나 올렷기때문에 당연히 safe가 나왔다! 파일 분석 결과도 별게 없다!

 

 

malware_FileSummary.py [Summary Report]

FileSummary는 위에서 얻은 파일 해쉬코드를 입력해야한다. 마찬가지로 재사용을 위해 함수로 구현했다.

 

분석결과를 다음 result table을 참고하자.

 

 

[malware_FileSummary.py 결과]

 

해당 파일의 내용을 요약하여 볼 수 있다.

 

 

malware_FileBehavior.py [Behavior Report]

 

음.. 5분 있다가 다시시도 하라고한다. ! 계속 같은 화면만 나온다 추후에 다른 파일을 통해 Behavior의 결과를 보도록 하자.!

 

 

malware_FileStatic.py [Static Report]

 

 

malwares script는 여기까지.!


 

 

virustotal

 

virustotal은 전세계의 다양한 바이러스 백신의 엔진을 이용하여 무료로 파일이나 웹사이트(URL) 등을 검사 할 수 있는 사이트다.

virustotal도 malwares와 마찬가지로 APIKEY가 필요하다. 먼저, 회원가입을 하고 사람모양의 아이콘 클릭 후 Settings을 누른다.

그리고 왼쪽에 apikey를 클릭하면 APIKEY를 얻을 수 있다.

 

 

 

 

로그인을 했던 안했던 첫번 째 페이지의 우측하단을 보면 다음과 같이 API문서를 확인할 수 있다.

 

 

 

API 문서를 열고 만들 python script는 다음의 3가지 이다.

 

virustotal_upload.py [/file/scan]

malwares와 마찬가지로 virustotal에서도 해쉬값을 얻을 수 있고 해쉬값을 기반으로 검사를 받을 수 있다. !

해쉬 값을 홈페이지에 입력해보면 다음과 같이 여러 백신 엔진의 검사 결과가 나온다. ! (세계 유명한 의사들이 모두 모여 한 사람만 검사하는 느낌)

 

 

virustotal_behavior.py [/file/behavior]