Mengenali ancaman terhadap model ML: data poisoning, adversarial examples, dan membership inference, lalu strategi mitigasi melalui sanitasi data, adversarial training, monitoring, dan validasi input agar sistem berbasis model aman di produksi.

Selama 15 episode, kita fokus membuat model bekerja baik. Episode ini bertanya hal yang berbeda: apa yang terjadi jika model kita diserang? Di 2026, model ML bukan lagi eksperimen lab — ia berhadapan langsung dengan pelanggan, memproses uang, dan mengambil keputusan. Dan di mana ada nilai, di situ ada pihak yang ingin mengelabui sistem.
Mengapa security model itu topik tersendiri, bukan sekadar tambahan? Karena sifat ML berbeda dari software biasa. Di software tradisional, kalian bisa tahu semua aturannya. Di ML, model belajar dari data — dan data bisa dimanipulasi, input bisa direkayasa, dan bahkan keberadaan model bisa disalahgunakan. Ini area yang disebut Adversarial ML.
Data poisoning terjadi ketika penyerang menyusupkan data berbahaya ke dalam dataset training. Karena model belajar dari data, data yang terkontaminasi membuat model belajar perilaku yang salah.
Skema paling halus: backdoor poisoning — menyisipkan pola tak terlihat (misal satu piksel tertentu di gambar) yang dipetakan ke label salah. Model tetap akurat pada data normal, tetapi langsung salah ketika pola pemicunya muncul.
Adversarial example adalah input yang sengaja direkayasa — diubah sangat halus, nyaris tak terlihat manusia — sehingga model salah klasifikasi dengan percaya diri tinggi. Sebuah stiker kecil di tanda berhenti membuat model mobil otonom membaca "batas kecepatan 80". Seekor panda dengan noise halus diklasifikasi sebagai gibbon.
import numpy as np
def fgsm_attack(model, x, y_true, eps=0.05):
# Fast Gradient Sign Method: tambahkan noise searah gradien error
x = x.astype("float32")
grad = model.loss_gradient(x, y_true)
x_adv = x + eps * np.sign(grad)
return x_adv
x_adv = fgsm_attack(model, x_benign, y_true)
print(f"asli: {model.predict(x_benign)}")
print(f"jurus: {model.predict(x_adv)}")Serangan ini memanfaatkan fakta bahwa model bekerja di ruang berdimensi tinggi — pergeseran mikro di tiap dimensi, meski totalnya kecil, bisa melewati batas keputusan model. Adversarial attack adalah threat model nyata untuk sistem seperti autentikasi wajah dan spam filter.
Membership inference bertanya: "Bisakah seseorang tahu bahwa data tertentu ikut dipakai untuk training model kita?" Jika ya, privasi bocor.
Contoh konkret: model dilatih untuk memprediksi penyakit. Jika penyerang bisa menyimpulkan bahwa data rekam medis seseorang ada di training set, mereka bisa menyimpulkan orang itu menderita penyakit tersebut — meski model tidak pernah mengeluarkan datanya.
Cara kerja: model cenderung lebih "percaya diri" pada data yang pernah dilihatnya. Penyerang mengukur perbedaan confidence antara sampel yang diduga ada di training vs tidak — gap-nya menjadi petunjuk.
Tidak ada satu tembok yang menyelesaikan semuanya — pertahanan berlapis seperti pada keamanan software:
| Lapisan | Contoh tindakan |
|---|---|
| Data | Sanitasi, dedup, anomaly detection pada input |
| Model | Adversarial training, defensive distillation |
| Serving | Rate limiting, validasi input, log lengkap |
| Monitoring | Pantau distribusi input & pola serangan |
Pertahanan terakhir dan sering terlupakan: monitoring. Serangan meninggalkan jejak — pola input aneh, volume spike, distribusi prediksi berubah. Dengan memantau metrik berikut, kalian mendeteksi serangan lebih awal:
import numpy as np
def monitor_input(X_batch):
return {
"n_samples": len(X_batch),
"mean_pred": np.mean(pred_proba),
"n_ekstrem": int((np.abs(X_batch) > 5).sum()),
}Jika n_ekstrem atau volume spike melonjak, itu sinyal alarm. Kita akan membangun monitoring drift yang lebih lengkap di episode 18.
Tip
Aturan praktis: untuk sistem ML yang menghadapi publik, asumsikan model akan diserang. Siapkan logging input sejak hari pertama — data serangan di masa lalu adalah bahan terbaik untuk memperkuat pertahanan di masa depan.
Pada episode 16 ini, kalian telah mengenal dunia keamanan model ML.
Inti yang harus dibawa pulang:
Di episode 17 selanjutnya kita masuk ke MLOps & automation — pipeline training→eval→deploy otomatis, model registry, drift monitoring, versioning data dengan DVC, dan CI/CD untuk ML. Sampai jumpa di episode 17!