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]
'Malware Analysis > - Knowledge storage' 카테고리의 다른 글
해시(hash) vs 암호화(encryption) (0) | 2018.02.26 |
---|---|
adc, sbb, carry flag, overflow flag 이해하기(+cmp) (0) | 2018.02.01 |
JSON?? (0) | 2018.01.30 |
assembly div, idiv, cdq (1) | 2018.01.23 |
EFLAGS - 제어 플래그, 상태 플래그 (0) | 2018.01.22 |