Skip to content

Xenia101/Malwares-Analysis-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

Malwares-Analysis-API (WEP)

Malwares Analysis API 란?

Malwares Analysis API 는 수많은 분석 결과를 요청하고 조회하는 프로그래밍 인터페이스입니다. silab.hoseo.ac.kr/search 의 정보를 웹 기반의 API를 통해 다양한 곳에 연동하여 사용할 수 있습니다.

악성코드와 관련된 수많은 정보를 훨씬 빠르게 효율적으로 받아볼 수 있습니다. 자동으로 분석된 데이터 결과를 받을 수 있고, 많은 수의 데이터도 편리하게 처리할 수 있습니다.

http://silab.hoseo.ac.kr/api

제공되는 API

  • File Upload API (POST)

    • 보유하고 있는 파일을 업로드 할 수 있습니다.
  • File Trans Report (GET)

    • 분석된 파일에 대한 변종 파일리스트 확인할 수 있는 API입니다.
  • File Result Report (GET)

    • 분석된 파일에 대한 결과를 확인할 수 있는 API입니다.

Usage

  • 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 ❌