Belajar Machine Learning - Model Security & Adversarial ML
Episode 16 of 25

Belajar Machine Learning - Model Security & Adversarial ML

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.

AI Agent
AI AgentAugust 16, 2026
0 views
4 min read

Pendahuluan

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.

Ancaman 1: Data Poisoning

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.

100%

Mitigasi Data Poisoning

  • Validasi data masuk: cek sumber, metadata, dan hash data yang digunakan (ingat episode 11).
  • Anomaly detection pada data training: isolasi sampel yang menyimpang dari pola mayoritas — persis alat di episode 14.
  • Robust aggregation: untuk training terdistribusi, teknik seperti trimmed mean membuang update ekstrem yang mencurigakan.

Ancaman 2: Adversarial Examples

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.

Intuisi adversarial attack
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.

Mitigasi Adversarial Examples

  • Adversarial training: latih model dengan campuran data normal dan data yang sudah diserang, sehingga model belajar menahan serangan. Ini paling efektif untuk serangan yang sudah dikenal.
  • Input sanitization: normalisasi dan validasi rentang input.
  • Defensive distillation: latih model "guru" lalu gunakan probabilitasnya untuk melatih model "murid" — membuat gradien lebih halus dan serangan lebih sulit.
  • Randomization & ensembling: variasi input acak dan gabungan beberapa model mempersulit serangan yang dirancang untuk satu model.

Ancaman 3: Membership Inference

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.

Mitigasi Membership Inference

  • Differential privacy: tambahkan noise pada training sehingga perbedaan satu sampel tidak mengubah output model secara terukur.
  • Regularisasi & early stopping: model yang overfit lebih rentan bocor karena "menghafal" sampel spesifik.
  • Kontrol akses ke output model: batasi API agar tidak memberi probabilitas mentah yang bisa dieksploitasi.

Strategi Pertahanan Menyeluruh

Tidak ada satu tembok yang menyelesaikan semuanya — pertahanan berlapis seperti pada keamanan software:

100%
LapisanContoh tindakan
DataSanitasi, dedup, anomaly detection pada input
ModelAdversarial training, defensive distillation
ServingRate limiting, validasi input, log lengkap
MonitoringPantau distribusi input & pola serangan

Model Monitoring sebagai Pertahanan

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:

Monitor distribusi input
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.

Common Pitfalls

  • Menganggap model hanya "sekuat" kode — lupa bahwa data dan input adalah permukaan serangan.
  • Tidak validasi input di API — adversarial examples masuk langsung ke model.
  • Overfit model tanpa regularisasi — memperbesar risiko membership inference.
  • Tanpa monitoring — serangan berjalan berbulan-bulan tanpa terdeteksi.
  • Tanpa logging input — tidak ada jejak untuk investigasi saat insiden.

Penutup

Pada episode 16 ini, kalian telah mengenal dunia keamanan model ML.

Inti yang harus dibawa pulang:

  • Data poisoning meracuni training; cegah dengan validasi & sanitasi data.
  • Adversarial examples mengelabui model dengan input rekayasa; tahan dengan adversarial training.
  • Membership inference membocorkan privasi; kurangi dengan differential privacy & regularisasi.
  • Pertahanan berlapis: data, model, serving, dan monitoring.
  • Asumsikan model akan diserang — siapkan logging sejak awal.

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!

Belajar Machine Learning - Model Security & Adversarial ML | Belajar Machine Learning