Panduan Integrasi VirusTotal API v3 dengan Python

Integrasi VirusTotal API v3

VirusTotal API v3 adalah antarmuka pemrograman aplikasi berbasis REST yang memungkinkan pengembang untuk berinteraksi dengan database ancaman VirusTotal. Untuk menggunakan API ini dengan Python, pustaka resmi yang direkomendasikan adalah vt-py. Pustaka ini dirancang untuk menangani autentikasi, penanganan error, dan komunikasi HTTP secara otomatis.

Prasyarat Instalasi

Pastikan Anda telah memiliki Python 3.7 atau lebih baru. Instal pustaka resmi melalui pip:

pip install vt-py

Konfigurasi Autentikasi

Anda memerlukan API Key yang dapat diperoleh melalui profil akun VirusTotal Anda. Simpan kunci ini dengan aman dan jangan pernah melakukan hardcode pada repositori publik.

import vt

# Inisialisasi client
client = vt.Client("YOUR_API_KEY_HERE")

# Contoh mengambil informasi file berdasarkan hash
file_hash = "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
file = client.get_object(f"/files/{file_hash}")
print(file.last_analysis_stats)

client.close()

Tabel Perbandingan Metode API

MetodeEndpointFungsi
GET/files/{id}Mengambil laporan analisis file
POST/filesMengunggah file untuk dianalisis
GET/urls/{id}Mengambil laporan analisis URL
POST/urlsMengirim URL untuk dianalisis

Langkah Teknis Pemindaian File

  1. Inisialisasi Client: Gunakan vt.Client dengan API Key Anda.
  2. Upload File: Gunakan metode client.scan_file() untuk mengirim file ke server VirusTotal.
  3. Polling Hasil: Gunakan client.get_object() untuk memeriksa status analisis secara berkala.
  4. Parsing Data: Akses atribut last_analysis_stats untuk mendapatkan ringkasan deteksi dari berbagai vendor antivirus.

Tips Troubleshooting

  • Rate Limiting: API publik memiliki batasan 4 permintaan per menit. Gunakan time.sleep() jika Anda menerima error 429.
  • Keamanan: Gunakan variabel lingkungan (environment variables) untuk menyimpan API Key guna mencegah kebocoran data.
  • Dokumentasi Resmi: Selalu rujuk ke https://docs.virustotal.com/reference/overview untuk perubahan skema API terbaru.