Episode 0: Membangun Lab SOC di Cloud

Pendahuluan

Sebagai mahasiswa tingkat akhir, saya menyadari jika memiliki pemahaman terhadap teori saja tidak cukup untuk menjadi seorang SOC Analyst. Oleh karena itu saya memutuskan untuk menantang diri saya dengan mengikuti 30 Days SOC Challenge dari channel YouTube MyDFIR.

Tulisan ini adalah bagian pertama dari seri dokumentasi saya dalam membangun infrastruktur keamanan berbasis cloud untuk mendeteksi serangan secara real-time.

Mengapa Cloud (Vultr)?

Awalnya saya terbiasa menggunakan lab lokal (Proxmox/VMware), namun untuk project ini saya memilih Vult sebagai penyedia cloud karena:

  1. Aksesibilitas (Bisa diakses dari mana saja)
  2. Simulasi yang lebih nyata (IP Public)
  3. Efisiensi manajemen resources untuk Elastic Stack yang cukup berat
  4. Ada credit $300 untuk pengguna baru yang sangat cukup untuk latihan

Arsitektur Lab

None
Diagram
+---------------------------------------------------------------------------------------------------+
| Nama VM             | OS      | Fungsi                                                            |
+---------------------+---------+-------------------------------------------------------------------+
| MYDFIR-ELK          | Ubuntu  | Pusat manajemen log (SIEM), tempat pencarian dan visualisasi data |
| MYDFIR-FLEET-Server | Ubuntu  | Jembatan antara endpoint dan ELK Stack                            |
| MYDFIR-MYTHIC       | Ubuntu  | Server C2 (Command & Control) untuk simulasi serangan             |
| MYDFIR-osTicket     | Windows | Platform manajemen tiket insiden untuk operasional SOC            |
| MYDFIR-Linux        | Ubuntu  | Endpoint target yang akan dimonitor                               |
| MYDFIR WIN          | Windows | Endpoint target yang akan dimonitor                               |
+---------------------------------------------------------------------------------------------------+                             |

Apa itu ELK Stack?

Sebelum masuk ke instalasi, penting untuk mengetahui apa itu ELK Stack. ELK sendiri terdiri dari tiga komponen utama:

  1. Elasticsearch: Mesin pencari dan analisis data. Di sinilah semua log disimpan dan diindeks agar bisa dicari dengan cepat
  2. Logstash: Berfungsi untuk memproses data sebelum masuk ke elasticsearch
  3. Kibana: Antarmuka visual / dashboard untuk melohat grafik, peta serangan, dan melakukan investigasi

Tahap 1: Persiapan Infrastruktur & Network

Langkah pertama adalah menyiapkan "rumah" bagi server-server kita:

  1. Membuat VPC: Masuk ke menu Product > Network dan buat VPC agar semua VM berada dalam satu jaringan private.
  2. Provisioning VM: Saya menggunakan Dedicated CPU (Ubuntu 22.04) dengan spesifikasi 4 vCPUs & 16GB RAM untuk server ELK agar performanya stabil saat memproses log yang besar.
  3. Firewall: Saya mengatur Security Groups di Vultr agar port SSH (22) hanya bisa diakses dari IP rumah saya saja demi keamanan.

Tahap 2: Instalasi Elasticsearch

1. Download & Install

# Download Package 
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.3.1-amd64.deb 
# Install Package 
sudo dpkg -i elasticsearch-9.3.1-amd64.deb

Catatan Penting: Setelah instalasi, sistem akan men-generate password otomatis untuk user elastic. Simpan password ini dengan baik! > Contoh: The generated password for the elastic built-in superuser is : 5xxxxxxxxxxxxx

Konfigurasi Network

Edit file konfigurasi di /etc/elasticsearch/elasticsearch.yml:

  • Ubah network.host menjadi IP Public/Private server
  • Uncomment pada bagian http.port: 9200

Jalankan Service

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

Untuk memastikan sudah berjalan, cek statusnya:

sudo systemctl status elasticsearch.service

Pastikan status menunjukkan active (running)

Tahap 3: Instalasi Kibana

Kibana akan menjadi "mata" kita untuk melihat log. Proses instalasinya mirip dengan Elasticsearch:

# Download Package
wget https://artifacts.elastic.co/downloads/kibana/kibana-9.3.1-amd64.deb
# Install Package
sudo dpkg -i kibana-9.3.1-amd64.deb

Konfigurasi Awal

Edit file kibana.yml untuk membuka akses dashboard.

sudo nano /etc/kibana/kibana.yml
  • Uncomment server.port: 5601
  • Ubah server.host: "localhost" menjadi server.host: "0.0.0.0" (atau IP Public VM kamu)

Jalankan Service

sudo systemctl daemon-reload
sudo systemctl enable kibana.service
sudo systemctl start kibana.service

Tahap 4: Menghubungkan Kibana ke Elasticsearch

Agar Kibana bisa membaca data, kita perlu membuat jalur komunikasi yang aman menggunakan Enrollment Token.

1. Generate Enrollment Token

Jalankan perintah ini di dalam server ELK:

cd /usr/share/elasticsearch/bin
./elasticsearch-create-enrollment-token --scope kibana

Sistem akan mengeluarkan deretan kode token. Simpan token ini untuk dimasukkan ke Web GUI nanti.

2. Konfigurasi Firewall

Agar dashboard bisa diakses dari browser luar, pastikan port 5601 terbuka di OS Ubuntu:

sudo ufw allow 5601

Pastikan juga di dashboard Vultr kamu sudah mengizinkan trafik TCP pada port ini.

3. Verifikasi Keamanan

Akses di browser: http://<IP_Public_VM>:5601. Masukkan token yang didapat sebelumnya. Untuk mendapatkan kode verifikasi yang diminta di browser, jalankan:

cd /usr/share/kibana/bin/
./kibana-verification-code

Gunakan kode yang muncul (contoh: 208 081) untuk melanjutkan setup di browser.

Tahap 5: Setup Encryption Keys (Keamanan Lanjutan)

Saat masuk ke menu Security > Alerts, Kibana akan meminta kunci enkripsi untuk mengamankan data sesi dan laporan.

1. Generate Encryption Keys

cd /usr/share/kibana/bin/
./kibana-encryption-keys generate

Sistem akan menghasilkan tiga kunci unik (Save Objects, Reporting, dan Security). Catatan: Jangan sebarkan kunci ini.

2. Menyimpan Kunci ke Keystore

Alih-alih menuliskannya secara terbuka di file konfigurasi, kita akan menyimpannya dengan aman di dalam Kibana Keystore:

# Masukkan nilai kunci satu per satu saat diminta
./kibana-keystore add xpack.encryptedSavedObjects.encryptionKey
./kibana-keystore add xpack.reporting.encryptionKey
./kibana-keystore add xpack.security.encryptionKey

3. Restart Final

Terapkan semua perubahan dengan me-restart service:

sudo systemctl restart kibana.service

Penutup

Selamat! Sampai tahap ini, infrastruktur SIEM (ELK Stack) sudah menyala dan siap digunakan. Dashboard Kibana sudah bisa diakses dengan aman melalui autentikasi user elastic.

Tulisan ini adalah catatan perjalanan belajar saya. Karena saya masih dalam tahap mendalami dunia Cybersecurity dan Blue Teaming, tentu masih banyak ruang untuk berkembang.

Saya sangat terbuka terhadap saran, masukan, maupun koreksi jika ada langkah atau pemahaman saya yang kurang tepat. Mari berdiskusi di kolom komentar agar kita bisa belajar bersama!