데이터 분석가:Applied Data Analytics

VirusTotal API 키 사용법

데이터분석 2025. 5. 4. 09:35
320x100
728x90

트로이 목마 경고 알림으로 파일 검사

VirusTotal 검사 요약

분석 일시 1년 전 (2024-04-06)
탐지 엔진 수 72개
감지 결과 0/72 (악성 코드 없음)
파일 사이즈 2.02 MB
파일 종류 PE32 실행 파일 (Win32 EXE)
컴파일러 Microsoft Visual C++ (2013~2017)
인증 여부 signed (디지털 서명 있음)
 

⇒ 결론: 당시 기준으로는 전 세계 72개의 백신 엔진 모두 ‘악성 코드가 아니다’라고 판단

그러나 주의할 점

1. 1년 전 분석임

  • 현재 탐지된 트로이 목마는 1년 전에는 알려지지 않았던 변종일 수 있습니다.
  • 새로운 악성코드는 시간이 지나서야 탐지되는 경우가 많음.
  • 반드시 "Reanalyze" (재분석) 기능을 눌러 최신 탐지 결과로 다시 검사해야 정확한 판단이 가능.

2. 파일은 디지털 서명됐으나, 위장 가능성 있음

  • 디지털 서명은 정품임을 증명할 수 있지만, 악성코드가 합법 소프트웨어처럼 위장하기 위해 서명을 도용하거나 우회하는 경우도 존재합니다.

3. Malwarebytes가 최근 탐지한 점

  • 1년 전 분석으로는 이상 없었더라도, Malwarebytes가 최근에 실시간 보호 기능에서 탐지했다면,
    • 해당 파일이 동작 시도하면서 의심스러운 행동을 보였을 가능성 높음
    • 예: 외부 서버와 통신, 자동 실행 등록, 임의의 프로세스 실행 등

Malwarebytes 탐지가 "가짜 경고"일 가능성은?

  • 낮음.
  • Malwarebytes는 업계에서 신뢰받는 도구이며, “프리미엄 유도용 가짜 경고”를 띄우지 않습니다.
  • 가짜 경고라면 파일을 악성으로 오인한 게 아니라, 오히려 **“위험하지 않음에도 무조건 유료 버전만 쓸 수 있게 막는 것”**인데,
    • 지금의 경우는 구체적인 파일을 트로이 목마로 실시간 차단한 상황으로 신뢰할 수 있습니다.

최종 권장 조치

  1. VirusTotal에서 꼭 Reanalyze 클릭 후 재검사
    최신 엔진 기준으로 다시 분석하십시오.
  2. Malwarebytes 프리미엄 기간 중 정밀 검사 수행
    Scan → Custom Scan → C:\Program Files (x86)\XTorEngine 포함 전역 검사 추천.
  3. 검사 중 문제가 없다면 조치 보류 가능
    • 하지만 해당 프로그램이 어떤 소프트웨어에 포함된 것인지 명확히 모를 경우, 실행을 자제하거나 제거 고려.
  4. 정체 모를 소프트웨어일 경우 삭제 추천
    • XTorEngine.exe가 어떤 합법 소프트웨어의 일부인지 분명하지 않다면, 설치한 기억이 없는 경우 삭제하는 것이 안전.

  • 재분석 결과 판독
  • Malwarebytes 로그 해석
  • 필요 시 시스템 초기화 전에 데이터 백업 가이드 제공
  • 레지스트리, 자동 실행 항목 분석 가이드 제공

결론

  • 현재 시점만 보면 위험성이 낮아 보이지만, 1년 전 검사 데이터로는 판단 불충분
  • Malwarebytes의 탐지는 신뢰할 수 있으며, 실제로 행동 기반 탐지일 수 있슴.
  • 최신 VirusTotal 재검사Malwarebytes 정밀 검사를 통해 확실하게 판별하는 것이 안전

1. "API 키를 받아 자동화한다"는 의미

VirusTotal은 파일/URL 검사 기능을 자동화할 수 있도록 개발자 API 키를 제공합니다.
이를 통해 사용자는 다음과 같은 작업을 스크립트나 소프트웨어에서 직접 수행할 수 있습니다.

예시: 자동화 가능한 작업들

  1. 로컬에 저장된 여러 파일을 자동으로 VirusTotal에 업로드하여 검사
  2. 특정 해시값(MD5/SHA256 등)에 대한 진단 결과 자동 조회
  3. 악성 코드 유포 의심 URL 목록을 주기적으로 스캔
  4. 회사 내부 보안 시스템과 연동해 자동 진단

2. API 키의 종류

Public API Key 무료 가입자용, 하루 요청 수 제한 (예: 500개/일, 매우 느림)
Premium API Key 유료 고객용, 대량 요청 가능, 빠른 응답 및 고급 기능 제공
 

→ 일반 사용자는 가입 시 기본 Public API Key를 무료로 받게 됩니다.


3. 블로그에 API 키를 삽입하면 추적 가능한가?

아니요, 기본적으로 VirusTotal API 키는 추적용이 아닙니다.

다음 사항은 주의

  1. API 키는 개인 고유 식별자입니다.
    • 특정 사용자가 어떤 파일을 언제 조회했는지를 VirusTotal 서버는 알 수 있습니다.
    • 이 정보는 사용자 인증과 쿼터 관리를 위한 것이지, 사용자 감시나 외부 추적을 위한 것이 아닙니다.
  2. 블로그나 웹사이트에 API 키를 실수로 노출하면:
    • 제3자가 악용하여 악성 파일을 탐지 우회하거나 요청 남용 가능.
    • VirusTotal은 이를 탐지해 해당 키를 정지시킬 수 있음.

실제 사용 예 (Python)

import requests

API_KEY = "your_own_api_key"
file_path = "sample.exe"

with open(file_path, "rb") as f:
    files = {'file': (file_path, f)}
    headers = {"x-apikey": API_KEY}
    response = requests.post("https://www.virustotal.com/api/v3/files", files=files, headers=headers)

print(response.json())

 

5. 요약 정리


API 키 목적 파일 검사 자동화, 보안 시스템 연동
악용 가능성 외부 노출 시 제3자가 사용할 수 있음 (주의 필요)
추적 가능 여부 사용자가 직접 사용하는 경우 식별 가능 (내부 로깅용)
블로그에 사용 시 주의 공개 금지, 내부 테스트나 서버 코드에만 사용해야 안전
 

import requests

API_KEY = '여기에_복사한_API_키_붙여넣기'
analysis_id = '파일 업로드 후 받은 ID'

url = f'https://www.virustotal.com/api/v3/analyses/{analysis_id}'
headers = {'x-apikey': API_KEY}

response = requests.get(url, headers=headers)
print(response.json())


VirusTotal API 키 사용법

초보자용, Python 중심

1. [회원 가입 및 API 키 받기]

  1. https://www.virustotal.com/gui/join-us 로 이동
  2. 이메일과 비밀번호로 가입
  3. 가입 후 오른쪽 상단의 프로필 아이콘 → "API Key" 클릭
  4. 나의 공개 API 키(Public API Key) 복사

→ 예: ab12345cde67890fgh... 이런 형식

2. [Python 환경 준비]

Python이 설치되어 있어야 하고, 다음과 같은 라이브러리가 필요합니다.

pip install requests

3. [파일 검사 예제 코드]

import requests

API_KEY = '여기에_복사한_API_키_붙여넣기'
file_path = 'sample.exe'  # 검사할 파일 경로

with open(file_path, 'rb') as f:
    files = {'file': (file_path, f)}
    headers = {'x-apikey': API_KEY}
    response = requests.post('https://www.virustotal.com/api/v3/files', files=files, headers=headers)

# 결과 출력
print(response.status_code)
print(response.json())

실행 결과:

  • 파일이 업로드되고 분석됨
  • response.json()에서 분석 결과 ID 반환

4. [업로드 후 분석 결과 조회]

분석 ID로 진단 결과를 다시 확인하려면:

 

5. [해시값으로 바로 검사도 가능]

이미 VirusTotal에 등록된 파일이라면, SHA256 해시만으로도 검사 가능:

import requests

API_KEY = '여기에_복사한_API_키_붙여넣기'
sha256 = '파일의_SHA256_해시'

url = f'https://www.virustotal.com/api/v3/files/{sha256}'
headers = {'x-apikey': API_KEY}

response = requests.get(url, headers=headers)
print(response.json())

6. [주의사항]

무료 API 사용 제한 하루 약 500 요청 제한, 속도 느림
공개 사용 금지 블로그, 깃허브, 외부에 절대 공개하지 말 것
민감 파일 검사 주의 개인/회사 내부 정보가 담긴 파일은 주의 (공개되지 않지만, 분석은 저장됨)
 

7. [활용 예시]


블로그 댓글 링크 악성 여부 자동 검사 URL을 받아 자동으로 검사 요청
기업 내부 파일 자동 점검 파일 저장 후 자동 분석 스크립트 실행
스팸 메일 첨부파일 분석 첨부파일 다운로드 후 자동 VirusTotal 검사
 

8. 요약

회원가입 후 API 키 확보

Python 코드에 키 입력

requests 모듈로 파일 업로드 및 결과 조회 자동화

키는 절대 외부에 공개하지 말 것