MENGENAL SERANGAN CROSS-SITE-SCRIPTING (XSS) PADA WEBSITE ↗
TL;DR: XSS adalah serangan injeksi skrip pada sisi klien yang memungkinkan penyerang menjalankan kode berbahaya di browser korban untuk mencuri data, mengambil alih sesi, atau menyebarkan malware.
Apa itu XSS?
XSS (Cross-Site Scripting) adalah serangan yang memasukkan skrip berbahaya ke halaman web atau aplikasi web yang dipercaya. Skrip ini dieksekusi di browser korban ketika input pengguna ditampilkan tanpa validasi atau sanitasi yang tepat.
Jenis-jenis XSS
- Reflected XSS (Non-Persistent) — skrip dikirim sebagai bagian dari request dan segera dipantulkan ke korban; sering dipakai lewat link jahat.
- Stored XSS (Persistent) — skrip disimpan di server (mis. database, log, forum) dan dieksekusi setiap kali konten tersebut diload; paling berbahaya.
- DOM-based XSS — skrip dimasukkan dan dirender lewat manipulasi DOM (mis. fragment URL), tanpa perubahan pada server.
Contoh payload singkat
"<script>alert(1)</script>"
<body onload=alert('test')>
<img src="x" onerror=alert(document.cookie)>
Alat yang sering dipakai
- XSSer, XSStrike, Shuriken, Xsscrapy, KNOXSS, BeEF
Dampak XSS dapat menyebabkan pencurian cookie/kredensial, sesi dibajak, distribusi phishing/malware, dan manipulasi konten. Stored XSS biasanya berdampak paling parah.
Pencegahan ringkas
- Validasi dan sanitasi semua input pengguna
- Escape/encode output sesuai konteks (HTML, attribute, JS, URL)
- Terapkan header keamanan (Content Security Policy, X-Content-Type-Options, dll.)
- Praktik secure-coding dan pemeriksaan keamanan (pengetesan & scanning)
PERCOBAAN AUDIT DAN MONITORING MENGGUNAKAN SNORT IDS. ↗
TL;DR: Snort 3 dipasang di Ubuntu, termasuk dependency (libdaq, tcmalloc), dikonfigurasi untuk memantau interface (promiscuous + offload off), dan diberi community rules. Pengujian dengan Nmap dan Slowloris menghasilkan banyak alert — Snort berfungsi sebagai IDS tapi tidak mencegah serangan. Ada masalah logging (file pcap/alert tidak tersimpan) yang perlu diperiksa hak akses dan opsi startup.
Snort adalah IDS/IPS open source yang menggunakan aturan untuk mendeteksi aktivitas jaringan berbahaya. Percobaan ini menunjukkan langkah ringkas instalasi Snort 3 di Ubuntu, konfigurasi interface, pemasangan community rules, serta pengujian dengan Nmap dan serangan DoS (Slowloris).
Gambaran Langkah utama:
- Pasang dependency: libpcap, pcre, zlib, luajit, libdaq, dll.
- Build dan install LibDAQ dan gperftools (tcmalloc) dari source.
- Clone dan install Snort3, aktifkan tcmalloc saat konfigurasi.
- Set interface ke mode promiscuous dan matikan offloading (ethtool -K) agar Snort melihat paket penuh.
- Buat systemd unit untuk menerapkan konfigurasi NIC saat boot.
- Download dan include snort3-community.rules ke snort.lua, set HOME_NET sesuai jaringan.
- Tes konfigurasi: sudo snort -T -i
-c /usr/local/etc/snort/snort.lua - Jalankan Snort untuk logging: sudo snort -l ./log -L pcap -A fast -q -c … -i
Hasil pengujian:
- Nmap (TCP SYN scan) memicu alert terkait protokol (mis. PROTOCOL-SNMP).
- Slowloris menyebabkan banyak alert (mis. kernel ACK provocation) dan layanan web menjadi tidak dapat diakses — Snort mendeteksi, tetapi dalam mode IDS tidak memblokir serangan.
- Ditemui masalah: log/pcap tidak selalu tersimpan — periksa hak akses folder log, opsi -l/-L, dan jalankan Snort dengan hak yang sesuai atau buat direktori log yang disesuaikan.
Takeaway:
- Snort efektif untuk deteksi, tapi untuk pencegahan perlu mode IPS atau integrasi dengan blokir (firewall).
- Pastikan konfigurasi logging dan permission benar agar alert/pcap tersimpan.
- Tuning rules dan false-positive handling diperlukan agar monitoring berguna dalam operasi nyata.
MENGAMANKAN WEBSITE APACHE DENGAN LET’S ENCRYPT ↗
TL;DR: Pasang Certbot untuk Apache, pastikan ServerName/ServerAlias di VirtualHost benar, buka port HTTPS di firewall, lalu jalankan
sudo certbot --apache
. Certbot akan otomatis mengeluarkan sertifikat dan menyiapkan auto-renewal.
Butuh SSL gratis untuk website Apache? Let's Encrypt + Certbot membuatnya cepat dan otomatis.
- Install Certbot (Apache plugin):
sudo apt install certbot python3-certbot-apache
- Pastikan konfigurasi VirtualHost punya ServerName/ServerAlias yang sesuai.
- Buka akses HTTPS di firewall (jika menggunakan ufw):
sudo ufw allow 'Apache Full'
- Jalankan Certbot untuk Apache:
sudo certbot --apache
Ikuti prompt untuk memilih domain dan mengaktifkan HTTPS otomatis. - Verifikasi auto-renewal:
sudo certbot renew --dry-run
Hasil: sertifikat TLS aktif, konfigurasi Apache diperbarui, dan pembaruan otomatis disiapkan. Cocok untuk deployment cepat pada VPS atau EC2 dengan domain yang valid.
KONFIGURASI DAN PEMBUATAN SELF SIGNED SSL CERTIFICATE PADA WEBSITE ↗
TL;DR: Buat sertifikat self-signed dengan openssl, pasang di Apache (konfigurasi ssl-params dan default-ssl), redirect HTTP→HTTPS, aktifkan modul SSL/header, lalu test — browser akan menampilkan peringatan karena sertifikat tidak diterbitkan CA terpercaya. Untuk produksi, gunakan Let's Encrypt.
SSL/TLS mengenkripsi trafik web dan mengubah URL menjadi HTTPS. Untuk eksperimen atau pengujian lokal/VM, Anda bisa membuat sertifikat yang ditandatangani sendiri (self-signed) dan mengonfigurasikan Apache agar melayani situs via HTTPS.
Langkah ringkas:
- Buat sertifikat dan private key
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/apache-selfsigned.key \
-out /etc/ssl/certs/apache-selfsigned.crt
- Tambahkan parameter keamanan (contoh: /etc/apache2/conf-available/ssl-params.conf)
- Batasi protokol dan cipher, set header keamanan, matikan kompresi SSL, aktifkan stapling.
- Update VirtualHost SSL (/etc/apache2/sites-available/default-ssl.conf)
- Set SSLCertificateFile dan SSLCertificateKeyFile ke path hasil openssl.
- Pastikan ServerName, ServerAdmin, DocumentRoot benar.
- Redirect HTTP → HTTPS
- Tambahkan directive Redirect di 000-default.conf untuk memaksa HTTPS.
- Aktifkan di Apache
sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite default-ssl
sudo a2enconf ssl-params
sudo apache2ctl configtest
sudo systemctl reload apache2
- Testing & catatan
- Browser akan menampilkan peringatan NET::ERR_CERT_AUTHORITY_INVALID karena sertifikat tidak dikeluarkan CA publik.
- Self-signed cocok untuk pengujian; untuk situs publik gunakan Let's Encrypt atau CA terpercaya.