Keamanan Siber

Membangun SOC Analyst Home Lab dengan Wazuh, Suricata, dan ELK Stack

Membangun SOC Analyst Home Lab dengan Wazuh, Suricata, dan ELK Stack

Kalau kamu pernah ingin praktik threat hunting, incident response, atau security monitoring tanpa harus mengorbankan jaringan produksimu, SOC analyst home lab adalah jawabannya. Anggap saja ini sebagai simulator penerbangan untuk keamanan siber — kamu bisa mengalami serangan sungguhan, alert sungguhan, dan investigasi sungguhan di lingkungan sandbox yang aman.

Di panduan ini, aku akan membimbingmu membangun SOC (Security Operations Center) home lab yang benar-benar fungsional menggunakan tiga tools open-source powerful: Wazuh untuk intrusion detection dan compliance monitoring, Suricata untuk analisis trafik jaringan, dan ELK Stack (Elasticsearch, Logstash, Kibana) untuk manajemen log dan visualisasi. Di akhir, kamu akan punya setup yang mirror dari apa yang tim SOC profesional gunakan setiap hari.

Kenapa Harus Bangun SOC Home Lab?

Kebanyakan sertifikasi keamanan siber — dari CompTIA Security+ sampai CEH sampai BTL1 — mengharuskan kamu memahami bagaimana tools keamanan bekerja dalam praktik, bukan cuma teori. Home lab memungkinkan kamu untuk:

  • Menghasilkan dan menganalisis trafik serangan sungguhan (Metasploit, Nmap, dll.)
  • Menulis custom detection rules dan melihatnya bekerja secara real-time
  • Praktik triaging alert dan membangun investigation workflow
  • Membangun project portfolio yang menonjol di lamaran kerja

Investasinya minimal — laptop bekas atau VPS kecil dengan RAM 8GB+ sudah cukup. Tapi return-nya luar biasa: pengalaman hands-on yang membedakan kamu dari kandidat lain yang cuma punya pengetahuan dari buku.

Arsitektur Overview

Ini dia layout yang akan kita bangun. Bayangkan jaringan rumahmu sebagai kota kecil: ELK StackWazuh adalah penjaga keamanan yang mengawasi pintu dan jendela di setiap gedung, dan Suricata adalah sistem kamera pengawas yang memantau semua trafik di jalan-jalan.

┌─────────────────────────────────────────────────┐
│                 SOC HOME LAB                    │
│                                                 │
│  ┌───────────┐   ┌────────────┐   ┌──────────┐ │
│  │  Wazuh    │──▶│  Logstash  │──▶│  Elastic │ │
│  │  Agent(s) │   │  Pipeline  │   │  search  │ │
│  └───────────┘   └────────────┘   └────┬─────┘ │
│                                        │       │
│  ┌───────────┐   ┌────────────┐        │       │
│  │ Suricata  │──▶│   Filebeat │────────┘       │
│  │  (IDS/IPS)│   └────────────┘                │
│  └───────────┘                  ┌──────────┐   │
│                                 │  Kibana  │   │
│  ┌───────────┐                  │Dashboard │   │
│  │  Target   │                  └──────────┘   │
│  │  Machine  │                                 │
│  └───────────┘                                 │
└─────────────────────────────────────────────────┘

Insight kuncinya adalah Wazuh dan Suricata adalah sumber data, sedangkan ELK Stack adalah platform analisis. Alert mengalir dari sensor ke satu tempat terpusat di mana kamu bisa mencari, mengkorelasi, dan memvisualisasikannya.

Langkah 1: Setup ELK Stack

ELK Stack adalah tulang punggung lab kita. Kita akan menjalankannya di Docker agar bersih dan mudah direplikasi. Buat direktori dan file Docker Compose:

mkdir -p ~/soc-lab && cd ~/soc-lab

Buat docker-compose.yml dengan Elasticsearch, Logstash, dan Kibana. Untuk home lab, cluster Elasticsearch single-node sudah cukup. Alokasikan minimal 4GB heap memory ke Elasticsearch jika mesinmu punya total 8GB RAM:

version: '3.8'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.14.0
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms4g -Xmx4g"
    ports:
      - "9200:9200"
    volumes:
      - es-data:/usr/share/elasticsearch/data

  logstash:
    image: docker.elastic.co/logstash/logstash:8.14.0
    volumes:
      - ./logstash/pipeline:/usr/share/logstash/pipeline
    ports:
      - "5044:5044"
    depends_on:
      - elasticsearch

  kibana:
    image: docker.elastic.co/kibana/kibana:8.14.0
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch

volumes:
  es-data:

Jalankan stack dengan docker compose up -d dan tunggu beberapa menit sampai Elasticsearch terinisialisasi. Kamu bisa memverifikasinya dengan:

curl -s http://localhost:9200/_cluster/health?pretty

Kalau kamu melihat "status": "green" atau "status": "yellow", semuanya berjalan lancar. Yellow itu normal untuk cluster single-node — artinya replica tidak bisa didistribusikan ke beberapa node.

Langkah 2: Install Wazuh

Wazuh adalah platform keamanan free dan open-source yang menggabungkan intrusion detection, analisis log, file integrity monitoring, dan compliance checking. Anggap saja ini penjaga keamanan yang tidak pernah tidur, bisa semua bahasa, dan ingat semua aturan yang pernah kamu berikan.

Cara termudah menjalankan Wazuh adalah melalui installation berbasis Docker. Di server lab-mu:

git clone https://github.com/wazuh/wazuh-docker.git -b 4.9.0
cd wazuh-docker/single-node
docker compose up -d

Ini akan memutar Wazuh manager, indexer, dan dashboard-nya. Akses dashboard di https://localhost:443 (credential default: admin/admin — segera ganti!).

Sekarang install Wazuh agent di target machine-mu (mesin "korban" di lab-mu). Di target Debian/Ubuntu:

curl -sO https://packages.wazuh.com/4.9/wazuh-agent_4.9.0-1_amd64.deb
sudo WAZUH_MANAGER='ip-server-lab-mu' dpkg -i ./wazuh-agent_4.9.0-1_amd64.deb
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent

Dalam hitungan menit, kamu akan melihat agent muncul di dashboard Wazuh. Agent otomatis mulai memantau rootkit, memeriksa file log, mengecek file integrity, dan mendeteksi anomali. Keindahan Wazuh adalah dia datang dengan ratusan rules out-of-the-box — tidak perlu menulis detection logic dari nol.

Langkah 3: Deploy Suricata

Suricata adalah Network IDS, IPS, dan Network Security Monitoring engine berperforma tinggi. Sementara Wazuh mengawasi host individual, Suricata duduk di level jaringan dan memeriksa setiap paket yang mengalir melalui jaringan lab-mu.

Install Suricata di mesin yang punya akses ke trafik jaringan lab-mu (idealnya di span port atau posisi inline):

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt update && sudo apt install suricata -y
sudo suricata-update
sudo suricata-update update-sources

Edit /etc/suricata/suricata.yaml dan set interface af-packet sesuai dengan interface jaringan lab-mu (misalnya eth0). Suricata menggunakan ruleset ET Open secara default — lebih dari 30.000 rules yang mencakup segalanya dari callback malware sampai percobaan SQL injection:

sudo systemctl enable suricata
sudo systemctl start suricata

Suricata mengoutput log dalam format EVE JSON, yang sempurna untuk diingest oleh ELK Stack. Arahkan Filebeat ke /var/log/suricata/eve.json dan buat Logstash pipeline untuk mem-parse dan mengindeks event.

Langkah 4: Menghubungkan Semuanya dengan Logstash dan Filebeat

Di sinilah keajaiban terjadi. Logstash bertindak sebagai sistem saraf pusat, mengumpulkan log dari Wazuh dan Suricata, mem-parsenya menjadi data terstruktur, dan meneruskannya ke Elasticsearch.

Buat konfigurasi Logstash pipeline di logstash/pipeline/soc-pipeline.conf:

input {
  beats {
    port => 5044
  }
}

filter {
  if [agent][name] == "suricata" {
    json {
      source => "message"
      target => "suricata"
    }
    if [suricata][event_type] == "alert" {
      mutate {
        add_tag => ["alert", "suricata"]
      }
    }
  }
}

output {
  elasticsearch {
    hosts => ["http://elasticsearch:9200"]
    index => "soc-lab-%{+YYYY.MM.dd}"
  }
}

Di mesin Suricata-mu, install Filebeat dan konfigurasikan untuk mengirim EVE logs ke Logstash. Di Wazuh manager-mu, Wazuh indexer sudah menangani penyimpanan log, tapi kamu bisa meneruskan alert ke ELK untuk dashboard terpadu.

Langkah 5: Membangun Dashboard di Kibana

Kibana adalah tempat semua data-mu menjadi visual dan bisa ditindaklanjuti. Begitu log mulai mengalir, buat index pattern untuk soc-lab-* dan mulai membangun dashboard. Ini beberapa yang wajib ada:

  • Alert Overview — Total alert seiring waktu, dipecah berdasarkan severity dan sumber (Wazuh vs Suricata)
  • Network Traffic — Top talker, distribusi protokol, peta geografis destination IP
  • Threat Feed — Alert yang dikorelasi dengan IP malicious dari threat intelligence feed
  • Agent Health — Status semua Wazuh agent, perubahan file integrity, compliance score

Editor Lens di Kibana membuat pembuatan visualisasi ini mudah — drag and drop field, pilih tipe chart, dan simpan. Tujuannya adalah satu layar di mana kamu bisa melihat seluruh security posture-mu sekilas.

Langkah 6: Menghasilkan Trafik Serangan untuk Praktik

SOC lab tanpa serangan itu seperti gym tanpa beban. Kamu perlu menghasilkan trafik jahat supaya tools-mu punya sesuatu untuk dideteksi. Ini beberapa cara aman untuk melakukannya:

# Scan layanan Nmap terhadap target-mu (memicu rules Suricata)
nmap -sV -sC target-ip

# Menghasilkan trafik DNS tunneling (memicu deteksi berbasis DNS)
# Gunakan iodine atau dnscat2 di jaringan lab-mu

# Simulasi brute-force SSH (memicu rules auth failure Wazuh)
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://target-ip

# Jalankan vulnerable web app seperti DVWA untuk deteksi web attack
docker run --rm -it -p 80:80 vulnerables/web-dvwa

Setelah setiap serangan, cek dashboard Kibana-mu. Kamu harusnya melihat alert baru muncul dalam hitungan detik. Loop ini — serangan, deteksi, investigasi, refine rules — persis apa yang analis SOC profesional lakukan setiap hari.

Tips untuk Memaksimalkan Lab-mu

Mulai kecil dan iterasi. Jangan coba deploy semuanya di hari pertama. Jalankan ELK dulu, baru tambah Wazuh, baru Suricata. Setiap tools punya learning curve, dan menumpuk tiga system baru sekaligus itu resep untuk frustrasi.

Gunakan snapshot. Kalau kamu menjalankan ini di VPS atau virtual machine, ambil snapshot sebelum setiap perubahan besar. Merusak bagian dari belajar — snapshot memungkinkan kamu merusak tanpa konsekuensi.

Dokumentasikan temuanmu. Buat repository GitHub dan tuliskan proses investigasimu untuk setiap skenario serangan. Ini menjadi sangat berharga untuk interview kerja — kamu bisa memandu hiring manager melewati proses berpikirmu dengan bukti nyata.

Gabung komunitas. Slack Wazuh, forum Elastic discuss, dan Suricata Issue tracker semuanya aktif dengan practitioner yang sudah menyelesaikan masalah yang akan kamu hadapi. Jangan berjuang dalam diam kalau jawabannya cuma satu pesan jauhnya.

Kesimpulan

Membangun SOC analyst home lab adalah salah satu investasi ROI tertinggi yang bisa kamu buat dalam karier keamanan siber. Kamu mendapat pengalaman hands-on dengan tools kelas enterprise, praktik yang langsung sesuai dengan tujuan sertifikasi, dan project portfolio yang membuktikan kamu bisa melakukan pekerjaannya — bukan cuma membicarakannya.

Kombinasi Wazuh, Suricata, dan ELK Stack memberimu cakupan lengkap dari host-based detection, network monitoring, dan centralized log analysis — tiga pilar dari SOC nyata. Mulai dengan yang kamu punya, tumbuh seiring belajar, dan ingat: setiap ahli dulunya adalah pemula yang memutuskan untuk setup lab alih-alih cuma membaca tentang tools.

Punya pertanyaan atau sudah membangun lab sendiri? Tulis di kolom komentar — saya senang mendengar apa yang sedang kamu kerjakan.