Panduan Integrasi VirusTotal File Scan API: Tutorial & Implementasi

Mekanisme VirusTotal File Scan API

VirusTotal File Scan API memungkinkan pengembang untuk mengirimkan file secara terprogram ke platform VirusTotal guna dianalisis oleh lebih dari 70 antivirus dan pemindai keamanan. Proses ini melibatkan dua tahap utama: pengiriman file (upload) untuk mendapatkan id pemindaian, dan pengambilan laporan (report) menggunakan id tersebut.

Langkah Teknis Integrasi

Untuk menggunakan API ini, Anda memerlukan API Key yang didapatkan dari profil akun VirusTotal Anda. Berikut adalah alur kerja standar menggunakan Python dengan pustaka requests:

import requests

# Konfigurasi
API_KEY = 'YOUR_API_KEY_HERE'
FILE_PATH = 'path/to/your/file.exe'
URL_UPLOAD = 'https://www.virustotal.com/api/v3/files'

# 1. Upload File
headers = {'x-apikey': API_KEY}
with open(FILE_PATH, 'rb') as f:
    files = {'file': (FILE_PATH, f)}
    response = requests.post(URL_UPLOAD, headers=headers, files=files)

scan_id = response.json()['data']['id']
print(f'Scan ID: {scan_id}')

# 2. Ambil Laporan
URL_REPORT = f'https://www.virustotal.com/api/v3/analyses/{scan_id}'
report = requests.get(URL_REPORT, headers=headers)
print(report.json())

Tabel Spesifikasi & Limitasi API

FiturSpesifikasi
Endpoint UploadPOST /api/v3/files
Endpoint ReportGET /api/v3/analyses/{id}
Format DataJSON
AutentikasiHeader x-apikey
Limit Gratis4 request/menit, 500 request/hari
Ukuran File Maks32 MB (via API standar)

Poin Penting Implementasi

  • Asinkronitas: Proses pemindaian tidak instan. Setelah melakukan POST, Anda mungkin perlu melakukan polling pada endpoint /analyses/{id} hingga status berubah menjadi completed.
  • Keamanan API Key: Jangan pernah melakukan hardcode API Key pada repositori publik. Gunakan environment variables (.env).
  • Error Handling: Selalu periksa kode status HTTP. Kode 429 menandakan Anda telah mencapai limit kuota (rate limit).
  • Privasi: File yang diunggah melalui API publik akan dibagikan kepada komunitas keamanan siber. Jangan mengunggah file yang mengandung data sensitif atau rahasia perusahaan.