Inti VirusTotal Graph API
VirusTotal Graph API adalah antarmuka pemrograman yang memungkinkan pengguna untuk berinteraksi dengan mesin visualisasi hubungan (graph) VirusTotal secara terprogram. API ini digunakan untuk memetakan hubungan antara entitas seperti file, domain, alamat IP, dan URL dalam bentuk node dan edge, yang sangat krusial untuk analisis forensik digital dan intelijen ancaman (threat intelligence).
Prasyarat Teknis
Untuk mengakses API ini, Anda memerlukan API Key yang valid dari akun VirusTotal. Penggunaan API ini tunduk pada batasan kuota (quota) berdasarkan paket langganan Anda (Public API vs Premium API). Pastikan Anda telah membaca dokumentasi resmi di developers.virustotal.com.
Endpoint Utama dan Struktur Data
Interaksi utama dilakukan melalui metode POST untuk membuat grafik baru atau GET untuk mengambil data grafik yang sudah ada. Berikut adalah tabel ringkasan endpoint utama:
| Metode | Endpoint | Deskripsi |
|---|---|---|
| POST | /graphs | Membuat grafik baru dari entitas awal |
| GET | /graphs/{id} | Mengambil data grafik berdasarkan ID |
| POST | /graphs/{id}/nodes | Menambahkan node ke grafik yang ada |
Contoh Implementasi Python
Berikut adalah contoh skrip dasar untuk membuat grafik baru menggunakan pustaka requests:
import requests
url = "https://www.virustotal.com/api/v3/graphs"
headers = {
"x-apikey": "YOUR_API_KEY_HERE",
"Content-Type": "application/json"
}
payload = {
"data": {
"type": "graph",
"attributes": {
"name": "Analisis Malware",
"root_node": "file_hash_anda_disini"
}
}
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())Langkah Integrasi
- Autentikasi: Selalu sertakan
x-apikeydalam header setiap permintaan HTTP. - Definisi Root Node: Tentukan entitas awal (hash file, domain, atau IP) yang akan menjadi pusat visualisasi.
- Ekstraksi Data: API akan mengembalikan objek JSON yang berisi daftar
nodesdanedges. Gunakan pustaka sepertiNetworkXatauD3.jsjika Anda ingin memvisualisasikan data tersebut di aplikasi kustom Anda. - Manajemen Kuota: Pantau penggunaan API melalui dashboard akun Anda untuk menghindari pemblokiran akibat melebihi batas permintaan per menit (RPM).
Tips Troubleshooting
- Error 403: Periksa kembali API Key Anda. Pastikan key tersebut memiliki izin akses ke fitur Graph.
- Error 429: Anda telah melampaui batas kuota. Implementasikan exponential backoff pada skrip Anda.
- Data Kosong: Pastikan entitas yang Anda masukkan memiliki data hubungan yang cukup di database VirusTotal.