Otomatisasi analisis malware menggunakan VirusTotal API memungkinkan tim keamanan siber memproses sampel file, memeriksa hash (MD5, SHA-256), dan mengumpulkan Indikator Kompromi (IOC) secara massal tanpa intervensi manual melalui antarmuka web. Dengan memanfaatkan endpoint VirusTotal v3 berbasis Python, proses deteksi ancaman, pemindaian URL, dan pengambilan laporan perilaku dapat diintegrasikan langsung ke dalam SIEM atau sistem SOAR milik organisasi.
Persiapan Awal & Autentikasi API
Sebelum menjalankan skrip otomatisasi, pastikan Anda telah memiliki akun VirusTotal aktif dan mengambil kunci API (API Key) dari panel profil Anda. Batasi penggunaan skrip sesuai kuota rate limit pada tier gratis (biasanya 4 request per menit dan 500 request per hari) atau gunakan akun berbayar untuk produksi skala enterprise.
Tabel Parameter Utama VirusTotal API v3
| Endpoint | Metode HTTP | Fungsi Utama |
|---|---|---|
/api/v3/files/{id} |
GET | Mengambil laporan analisis berdasarkan hash file (SHA-256/MD5). |
/api/v3/files |
POST | Mengunggah sampel file baru untuk dipindai oleh mesin antivirus. |
/api/v3/urls |
POST | Mengirim URL mencurigakan untuk dianalisis sistem keamanan. |
/api/v3/ip_addresses/{ip} |
GET | Menganalisis reputasi alamat IP terkait aktivitas berbahaya. |
Implementasi Skrip Python untuk Cek Hash Malware
Skrip di bawah ini menggunakan pustaka requests untuk memeriksa status hash file terhadap database VirusTotal v3 secara otomatis. Pastikan Anda memasang modul pustaka eksternal dengan perintah pip install requests sebelum mengeksekusi kode.
import requests
import sys
API_KEY = "masukkan_api_key_disini"
HEADER = {
"x-apikey": API_KEY
}
def check_file_hash(file_hash):
url = f"https://www.virustotal.com/api/v3/files/{file_hash}"
response = requests.get(url, headers=HEADER)
if response.status_code == 200:
result = response.json()
stats = result['data']['attributes']['last_analysis_stats']
print(f"[+] Hasil Analisis untuk Hash: {file_hash}")
print(f" - Berbahaya (Malicious): {stats['malicious']}")
print(f" - Mencurigakan (Suspicious): {stats['suspicious']}")
print(f" - Bersih (Undetected): {stats['undetected']}")
elif response.status_code == 404:
print("[-] Hash tidak ditemukan di database VirusTotal.")
else:
print(f"[!] Terjadi kesalahan kode status: {response.status_code}")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Gunakan: python check_vt.py <SHA256_HASH>")
sys.exit(1)
target_hash = sys.argv[1]
check_file_hash(target_hash)
Langkah-Langkah Teknis Eksekusi Otomatisasi
- Simpan kode skrip di atas dengan nama file
check_vt.pydi direktori lokal Anda. - Ganti teks
masukkan_api_key_disinidengan string kunci API valid yang diperoleh dari dasbor akun Anda. - Buka terminal atau command prompt, lalu jalankan skrip dengan menyertakan argumen hash SHA-256 target:
python check_vt.py 44d88612fea8a8f36de82e1278abb02f - Amati output terminal yang menampilkan jumlah mesin antivirus yang mendeteksi file tersebut sebagai ancaman.
Troubleshooting & Penanganan Kendala Lapangan
Kesalahan umum yang sering terjadi saat mengintegrasikan VirusTotal API meliputi:
- HTTP 429 (Too Many Requests): Batas kuota harian atau menit terlampaui. Terapkan jeda waktu (sleep) menggunakan modul
time.sleep(15)di dalam perulangan skrip batch Anda. - HTTP 403 (Forbidden): Kunci API tidak valid, salah salin, atau masa berlaku akun bermasalah. Verifikasi ulang kredensial di dasbor resmi.
- Hash Tidak Ditemukan (404): Sampel file belum pernah diunggah atau dipindai di platform publik VirusTotal. Gunakan metode POST untuk mengunggah file secara langsung melalui API jika diperlukan.