Malwares Analysis API 는 수많은 분석 결과를 요청하고 조회하는 프로그래밍 인터페이스입니다. silab.hoseo.ac.kr/search 의 정보를 웹 기반의 API를 통해 다양한 곳에 연동하여 사용할 수 있습니다.
악성코드와 관련된 수많은 정보를 훨씬 빠르게 효율적으로 받아볼 수 있습니다. 자동으로 분석된 데이터 결과를 받을 수 있고, 많은 수의 데이터도 편리하게 처리할 수 있습니다.
-
File Upload API (POST)
- 보유하고 있는 파일을 업로드 할 수 있습니다.
-
File Trans Report (GET)
- 분석된 파일에 대한 변종 파일리스트 확인할 수 있는 API입니다.
-
File Result Report (GET)
- 분석된 파일에 대한 결과를 확인할 수 있는 API입니다.
-
Request File Upload
- 사용자가 보유한 파일을 분석 요청할 때 사용하는 API로 HTTP POST 방식을 이용합니다.
- API 요청은 아래와 같은 방식을 통해 이루어집니다.
URL : http://210.125.72.97:5000/api/file METHOD : POST Parameter id (필수) : 분석 요청자 id hash (옵션) : 분석 대상 파일 hash
- 업로드한 파일은 요청 순서대로 분석을 합니다. 서버 상황 및 분석 대기 상황에 따라 분석이 지연될 수 있습니다.
- API 요청이 제대로 전달된 경우에는 JSON 형태의 응답을 받을 수 있습니다.
-
File Upload 응답 JSON
{ "result_msg" : "결과 메시지 (String)", "date" : "응답 시간 (String)", "md5" : "파일의 MD5 해시 값 (String)", "sha256" : "파일의 SHA256 해시 값 (String)", "sha1" : "파일의 SHA1 해시 값 (String)" }
- 요청 예제
import requests params = {"file": "myfile.exe"} files = {"file": ("myfile.exe", open("myfile.exe", "rb"))} response = requests.post("http://silab.hoseo.ac.kr:5000/api/file", files=files, data=params) json_response = response.json
- 응답 예제
{ "result_msg" : "success", "date" : "2019-01-01", "md5" : "1d6a3fbfc24f40e2368d6899c5906d2e", "sha1" : "ccde4ac404816ea4f2f5b35e499f370c5794dd30", "sha256" : "c71649b7915381c6380ef3f56969ba20bc7eb96eb7a7de837cae3a7c580db024 " }
-
File Trans Report
- 분석된 파일에 대한 변종 파일들의 정보를 확인 할 때 사용하는 API로 HTTP GET 방식을 이용합니다.
- API 요청은 아래와 같은 방식을 통해 이루어집니다.
URL : http://210.125.72.97:5000/api/trans METHOD : GET Parameter hash (필수) : 분석 대상 파일 hash
- hash는 MD5, SHA1, SHA256을 지원합니다.
- API 요청이 제대로 전달된 경우에는 JSON 형태의 응답을 받을 수 있습니다.
-
File Upload 응답 JSON
{ "transfile1" : "변종 파일1 (String)", "transfile2" : "변종 파일2 (String)", "transfile3" : "변종 파일3 (String)", "transfile4" : "변종 파일4 (String)", "transfile5" : "변종 파일5 (String)" }
-
변종파일의 수는 해당 파일의 hash값에 따라 다릅니다.
-
요청 예제
import requests import json params = {"sha256": "sha256"} response = requests.get(http://silab.hoseo.ac.kr:5000/api/trans, params=params) response.status_code result = response.text parsed_json = json.loads(result) json_response = response.json
- 응답 예제
{ "transfile1" : "56f6dcb3f95fdd11c48832c7a4e3b4f75e42a94532bdcd41dd6ea75374946341", "transfile2" : "1e18bc2d11f874a852cfbe49e4ac541b1898c298cbe1a0114a70e5463dbe3c87", "transfile3" : "84d54bf6edd6bd6614e93da3b18d48db1667f1cba6d189a04509e425dd338317", "transfile4" : "8f709a6e5064b5e0122e06849af57a2af083be8ec7dbfcb4ff3a49066dc5647f", "transfile5" : "02cd7c2bdf2d141d4577f7cd6d2fe29768d5fa62bafc48fec95e4b6171ff07b3" }
-
-
File Result Report
- 분석된 파일에 대한 요약 정보를 확인 할 때 사용하는 API로 HTTP GET 방식을 이용합니다.
- API 요청은 아래와 같은 방식을 통해 이루어집니다.
URL : http://210.125.72.97:5000/api/result METHOD : GET Parameter hash (필수) : 분석 대상 파일 hash
- hash는 MD5, SHA1, SHA256을 지원합니다.
- API 요청이 제대로 전달된 경우에는 JSON 형태의 응답을 받을 수 있습니다.
-
File Upload 응답 JSON
{ "msh_t_result" : "파일의 msh_t_result 결과 (Number)", "ssdeep_result" : "파일의 ssdeep_result 결과 (Number)", "tlsh_result" : "파일의 tlsh_result 결과 (Number)", "msh2_result" : "파일의 msh2_result 결과 (Number)", "ml_result" : "파일의 ml 결과 (Number)", "structured_result" : "파일의 structured 결과 (Number)" }
- 요청 예제
import requests import json params = {"sha256": "sha256"} response = requests.get(http://silab.hoseo.ac.kr:5000/api/result, params=params) response.status_code result = response.text parsed_json = json.loads(result)
- 응답 예제
{ "msh_t_result" : "-", "ssdeep_result" : "null", "tlsh_result" : "0", "msh2_result" : "null", "ml_result" : "null", "structured_result" : "null" }
File Upload API ❌
File Trans Report ❌
File Result Report ❌