KI: PRAKTEK 9: Serangan terhadap AI
PRAKTEK 9: Serangan terhadap AI Fokus modul ini adalah membongkar asumsi “AI selalu benar”. Mahasiswa diajak hands-on melihat sendiri bagaimana model AI bisa ditipu, dimanipulasi, dan disesatkan, bahkan dengan perubahan kecil yang tidak terlihat oleh manusia. Seluruh praktik menggunakan Linux Ubuntu 24.04, Python, dan open-source software. Tidak ada black box, tidak ada proprietary tools. Tujuan Setelah menyelesaikan modul ini, mahasiswa mampu: Memahami kelemahan fundamental sistem AI Menjelaskan konsep adversarial example dan data poisoning Mensimulasikan serangan nyata terhadap model AI Menganalisis perubahan output akibat manipulasi input/data Menyadari bahwa AI adalah sistem statistik, bukan sistem kebenaran Pesan kunci: AI bisa salah — dan kesalahan itu bisa direkayasa. Konsep Inti (Fundamental yang Wajib Dipahami) Adversarial Example Adversarial example adalah input yang dimodifikasi sangat kecil, sering kali tidak terlihat oleh manusia, tetapi mengubah prediksi AI secara drastis. Contoh dunia nyata: Gambar rambu STOP → AI membaca Speed Limit Email normal → diklasifikasikan sebagai spam Teks biasa → lolos sensor moderasi 👉 Masalahnya bukan bug, tetapi cara AI belajar dari pola statistik. Data Poisoning Data poisoning adalah serangan sebelum AI digunakan, yaitu dengan merusak data latih (training data). Contoh nyata: Dataset wajah diberi label salah Review palsu dimasukkan ke data rekomendasi Data sensor dimanipulasi sebelum pelatihan 👉 Jika data rusak, model secanggih apa pun akan rusak. Tools yang Digunakan Semua tools bersifat open source: Ubuntu Linux 24.04 Python 3.12 scikit-learn NumPy Jupyter Notebook (opsional) Matplotlib untuk visualisasi Praktikum Lengkap (Step-by-Step) Bagian A — Setup Lingkungan
sudo apt update sudo apt install python3 python3-pip python3-venv -y Buat virtual environment: python3 -m venv ai-attack-env source ai-attack-env/bin/activate Install library: pip install numpy scikit-learn matplotlib jupyter Bagian B — Train Model AI Sederhana Kita mulai dari model yang “benar” dan “bersih”. Dataset & Model from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score
- Load dataset
data = load_iris() X, y = data.data, data.target
- Split
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
- Train model
model = LogisticRegression(max_iter=200) model.fit(X_train, y_train)
- Evaluate
y_pred = model.predict(X_test) print("Accuracy:", accuracy_score(y_test, y_pred)) Catatan Penting: Model ini tidak salah. Ia bekerja sesuai statistik. Bagian C — Adversarial Example (Serangan Input) Tujuan Membuktikan bahwa perubahan kecil bisa menipu AI. Ambil Satu Data Uji import numpy as np
sample = X_test[0] label = y_test[0]
print("Original prediction:", model.predict([sample])) print("True label:", label) Manipulasi Input Secara Halus
- Tambahkan noise kecil
epsilon = 0.1 adversarial_sample = sample + epsilon * np.sign(sample)
print("Adversarial prediction:", model.predict([adversarial_sample])) Yang terjadi: Secara visual: data hampir sama Secara matematis: AI membaca berbeda Diskusi Kritis Apakah manusia bisa melihat perbedaannya? ❌ Apakah AI berubah keputusan? ✅ Apakah ini bug? ❌ Apakah ini kelemahan desain AI? ✅
Bagian D — Data Poisoning (Serangan Data Training) Tujuan Menunjukkan bahwa AI bisa “dibohongi” sejak awal pelatihan. Racuni Dataset
import random
- Salin data latih
X_poisoned = X_train.copy() y_poisoned = y_train.copy()
- Ubah label secara acak
for i in random.sample(range(len(y_poisoned)), 10):
y_poisoned[i] = (y_poisoned[i] + 1) % 3
Train Model dengan Data Rusak
poisoned_model = LogisticRegression(max_iter=200) poisoned_model.fit(X_poisoned, y_poisoned)
y_pred_poisoned = poisoned_model.predict(X_test) print("Accuracy poisoned model:", accuracy_score(y_test, y_pred_poisoned)) Hasil: Akurasi turun, tetapi AI tidak tahu bahwa ia sedang salah. Bagian E — Analisis & Refleksi Apa yang Dipelajari Mahasiswa? AI tidak memahami makna, hanya pola Perubahan kecil → dampak besar Kualitas data lebih penting dari algoritma Serangan AI murah dan mudah dilakukan
Output Praktikum (Wajib Dikumpulkan) Mahasiswa menyerahkan: Notebook Jupyter Training normal Adversarial example Data poisoning Analisis singkat (1–2 halaman): Bagian mana yang paling berbahaya? Mana yang lebih sulit dideteksi? Implikasi untuk AI di pemerintahan / industri? Insight Penutup (Inspiratif) AI bukan masalahnya. Cara kita mempercayainya tanpa verifikasi — itulah masalahnya. Modul ini membekali mahasiswa mindset security-first: Jangan percaya output AI Selalu audit data Selalu uji asumsi