KI: PRAKTEK 5: Intrusion Detection Dasar
Tujuan
Setelah praktikum ini, mahasiswa mampu mendeteksi serangan sederhana di jaringan, memahami jenis alert IDS, dan menafsirkan makna teknis di balik alert, bukan hanya membaca log secara pasif.
Yang dilatih bukan hanya “menjalankan tool”, tetapi cara berpikir security analyst:
- Apa yang normal?
- Apa yang mencurigakan?
- Kenapa ini dianggap serangan?
Konsep Inti (Wajib Dipahami)
1. Apa itu Intrusion Detection System (IDS)
IDS adalah sistem yang mengamati trafik atau log, lalu memberi peringatan (alert) ketika menemukan pola yang dianggap berbahaya.
IDS ≠ Firewall Firewall mencegah, IDS mendeteksi.
2. Signature-based vs Anomaly-based Detection
Signature-based Detection
Mencocokkan trafik dengan pola serangan yang sudah dikenal.
Contoh:
- Request HTTP mengandung /etc/passwd
- Scan port berurutan
- Payload mengandung shellcode
Kelebihan
- Akurat
- Sedikit false positive
Kekurangan
- Tidak bisa mendeteksi serangan baru (zero-day)
Anomaly-based Detection
Mencari perilaku yang menyimpang dari kebiasaan normal.
Contoh:
- 1000 request dalam 1 detik
- Login gagal berulang
- Pola waktu akses tidak wajar
Kelebihan
- Bisa mendeteksi serangan baru
- Cocok untuk unknown attack
Kekurangan
- Banyak false positive
- Perlu baseline yang baik
Di dunia nyata, IDS modern menggabungkan dua pendekatan ini.
Tools yang Digunakan (Open Source)
Kita akan menggunakan dua pendekatan nyata:
- Snort → contoh signature-based IDS
- Python Log Parser → simulasi anomaly-based IDS
Semua dijalankan di:
- Ubuntu Linux 24.04
- Tanpa software proprietary
BAGIAN A — IDS Signature-Based dengan Snort
Step 1 — Instalasi Snort (Ubuntu 24.04)
sudo apt update sudo apt install -y snort
Saat instalasi:
- Pilih interface jaringan (misalnya eth0 atau ens33)
- HOME_NET → isi dengan jaringan lokal, contoh:
192.168.1.0/24
Verifikasi:
snort -V
Step 2 — Menjalankan Snort dalam Mode IDS
Gunakan mode console agar alert langsung terlihat:
sudo snort -A console -q -c /etc/snort/snort.conf -i eth0
Keterangan:
-A console → tampilkan alert di terminal -q → quiet mode -c → file konfigurasi -i → interface jaringan
Step 3 — Membuat Rule IDS Sederhana (Signature)
Buka file rule lokal:
sudo nano /etc/snort/rules/local.rules
Tambahkan rule berikut:
alert icmp any any -> any any (msg:"ICMP Ping Detected"; sid:1000001; rev:1;)
Reload Snort:
sudo systemctl restart snort
Step 4 — Simulasi Serangan Sederhana (Ping Flood)
Dari mesin lain (atau VM kedua):
ping -c 5 IP_TARGET
Hasil yang Diharapkan
Snort akan menampilkan alert: [**] ICMP Ping Detected [**]
Interpretasi
- IDS mendeteksi trafik ICMP
- Bukan serangan fatal, tapi indikasi reconnaissance
Step 5 — Simulasi Serangan Port Scanning
Install nmap:
sudo apt install -y nmap
Lakukan scan:
nmap -sS IP_TARGET
Snort akan memunculkan alert scanning jika rule aktif.
Output Snort
- Alert di terminal
- Log di /var/log/snort/alert
Contoh log:
[1:1000001:1] ICMP Ping Detected
BAGIAN B — IDS Sederhana dengan Python (Anomaly-Based)
Sekarang kita tidak pakai signature, tapi analisis perilaku log.
Tujuan
Mendeteksi:
- Terlalu banyak request
- Pola akses tidak normal
- Brute-force login
Step 1 — Contoh Log yang Dianalisis
Misalnya log web server (access.log):
192.168.1.10 - - [20/Jan/2026:10:00:01] "GET /login HTTP/1.1" 200 192.168.1.10 - - [20/Jan/2026:10:00:02] "GET /login HTTP/1.1" 401 192.168.1.10 - - [20/Jan/2026:10:00:03] "GET /login HTTP/1.1" 401 192.168.1.10 - - [20/Jan/2026:10:00:04] "GET /login HTTP/1.1" 401
Step 2 — Script Python IDS Sederhana
Buat file ids_log_parser.py:
from collections import defaultdict
THRESHOLD = 3
ip_counter = defaultdict(int)
with open("access.log", "r") as log:
for line in log:
ip = line.split()[0]
ip_counter[ip] += 1
for ip, count in ip_counter.items():
if count > THRESHOLD:
print(f"[ALERT] Suspicious activity from {ip} ({count} requests)")
Jalankan:
python3 ids_log_parser.py
Interpretasi Output=
[ALERT] Suspicious activity from 192.168.1.10 (4 requests)
Maknanya:
- IP melakukan request berulang
- Bisa indikasi brute-force, bot, atau scanner
=Diskusi Keamanan (Penting)
- Apakah ini serangan pasti? → Tidak
- Apakah ini indikasi awal? → Ya
- Apakah perlu investigasi lanjut? → Wajib
IDS tidak mengambil keputusan, IDS memberi sinyal. Manusialah yang memutuskan.
Output Praktikum (Yang Dikumpulkan)
Mahasiswa wajib menyerahkan:
- Log alert Snort
- Output script Python
- Interpretasi singkat, menjawab:
- Serangan apa?
- Bukti teknisnya?
- Dampak jika tidak terdeteksi?
Kesimpulan
- Security bukan tentang tool
- IDS bukan alat ajaib
- Yang penting adalah:
- Visibility
- Log
- Reasoning
Jika kamu bisa menjelaskan KENAPA sebuah alert muncul, berarti kamu sudah berpikir seperti security engineer.