Back to IF3110 Pengembangan Aplikasi Berbasis Web

Topic: Web App Security - Fundamentals & Attack Vectors

Questions/Cues

  • CIA Triad

  • Vulnerability vs Threat

  • SQL Injection (SQLi)

  • Cross-Site Scripting (XSS)

  • Session Hijacking

  • DoS vs DDoS

  • Brute Force Attack

Reference Points

  • Slides: IF3110-13-Web-App-Security-n-Privacy (Pages 1-17)

  • OWASP.org

Konsep Dasar Keamanan Informasi (CIA Triad)

Keamanan informasi bertujuan melindungi layanan digital yang memediasi aktivitas dunia nyata. Tiga pilar utamanya (CIA) adalah:

  1. Confidentiality (Kerahasiaan): Memastikan hanya pihak yang berhak yang dapat mengakses data atau layanan. Contoh: Hanya Anda yang bisa melihat saldo rekening bank Anda.

  2. Integrity (Integritas): Menjamin layanan dan data berperilaku benar dan tidak dimodifikasi oleh pihak tak berwenang. Contoh: Saldo tidak berubah sendiri tanpa transaksi yang sah.

  3. Availability (Ketersediaan): Memastikan pengguna yang sah selalu memiliki akses ke layanan saat dibutuhkan. Contoh: Website bank bisa diakses 24/7.

Tambahan: Keamanan juga mencakup Privacy (perlindungan data pribadi) dan Accountability (kemampuan melacak siapa melakukan apa).

Terminologi Keamanan: Vulnerability, Threat, Attack, Control

Hubungan sebab-akibat dalam keamanan siber dapat dijelaskan sebagai berikut:

  • Vulnerability (Kerentanan): Sebuah kelemahan dalam sistem keamanan. (Ibarat jendela rumah yang lupa dikunci).

  • Threat (Ancaman): Kondisi atau situasi yang berpotensi menyebabkan kerugian. (Ibarat adanya pencuri di lingkungan sekitar).

  • Attack (Serangan): Tindakan nyata mengeksploitasi vulnerability oleh manusia (penyerang). (Pencuri masuk melalui jendela yang tak terkunci).

  • Control (Pengendalian): Langkah perlindungan untuk mencegah atau memitigasi serangan. (Memasang teralis besi pada jendela).

Cross-Origin Resource Sharing (CORS)

Mekanisme browser yang mengizinkan server untuk menunjukkan origin (sumber) lain mana yang boleh memuat sumber daya miliknya.

  • Secara default, browser membatasi skrip (seperti JavaScript) untuk mengakses sumber daya dari domain yang berbeda demi keamanan (Same-origin policy).

  • CORS menggunakan HTTP header untuk memberi “izin” pengecualian ini secara aman.

Injection Attacks (Serangan Injeksi)

Jenis serangan di mana pengguna jahat memasukkan kode berbahaya atau perintah database melalui input field yang valid. Sistem yang tidak memvalidasi input akan mengeksekusi perintah tersebut.

1. SQL Poisoning / Injection (SQLi)

Serangan spesifik pada database SQL.

  • Mekanisme: Penyerang memasukkan potongan perintah SQL ke dalam form input (misal: kolom login).

  • Dampak: Aplikasi menggabungkan input tersebut ke dalam query database asli. Ini bisa mem-bypass autentikasi (misal: login tanpa password) atau membocorkan seluruh isi database.

  • Ilustrasi: Input admin' OR '1'='1 dapat memanipulasi logika query menjadi “BENAR” secara universal, memberikan akses admin.

2. Cross-Site Scripting (XSS)

Serangan injeksi yang menargetkan pengguna lain dari aplikasi web.

  • Mekanisme: Penyerang menyisipkan skrip berbahaya (biasanya JavaScript) ke halaman web yang dilihat pengguna lain.

  • Cara Kerja: Script ini dieksekusi oleh browser korban seolah-olah berasal dari website terpercaya.

  • Dampak: Pencurian session cookies (memungkinkan pembajakan akun), redirect ke situs palsu, atau manipulasi tampilan web.

  • Pencegahan Utama: Validasi input (memastikan input sesuai format) dan sanitasi output (mengubah karakter berbahaya menjadi teks biasa agar tidak dieksekusi browser).

Session Hijacking (Pembajakan Sesi)

Mengambil alih sesi aktif pengguna yang sah untuk menyamar menjadi mereka.

  • Konsep Sesi: Setelah login, server memberi “Session Cookie” agar pengguna tidak perlu login ulang tiap klik halaman.

  • Serangan: Jika penyerang mendapatkan cookie ini (misal lewat XSS atau menyadap jaringan/traffic monitoring), mereka bisa mengakses akun korban tanpa perlu tahu username/password.

Denial of Service (DoS) & Brute Force

  • DoS (Denial of Service): Serangan untuk membuat sistem unavailable (lumpuh/down).

    • DDoS (Distributed DoS): Menggunakan ribuan komputer (botnet) untuk membanjiri server dengan traffic palsu secara bersamaan.

    • User Lockout: Sengaja salah login berkali-kali pada akun korban agar sistem mengunci akun tersebut (fitur keamanan yang dijadikan senjata).

  • Brute Force Attack: Mencoba menebak password dengan mencoba semua kombinasi yang mungkin.

    • Penyerang memanfaatkan password lemah atau daftar password umum.

    • Mitigasi: Mewajibkan password panjang/kompleks dan membatasi jumlah percobaan login.

Summary

Keamanan aplikasi web berfokus pada perlindungan properti CIA (Confidentiality, Integrity, Availability) dari berbagai ancaman yang mengeksploitasi kerentanan (vulnerability). Serangan utama meliputi Injection (SQLi & XSS) yang memanipulasi input data, Session Hijacking yang mencuri identitas sesi, serta serangan ketersediaan seperti DoS. Pemahaman mendalam tentang mekanisme serangan ini adalah langkah pertama sebelum menerapkan kontrol pertahanan yang efektif.