KI: 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