Web Server
Adalah suatu daemon yang berfungsi menerimarequest melalui protocol http baik dari local maupundari internet.
Informasi yang direquest oleh web browser bisa berupa file yang ada dalam storage atau meminta
server untuk melakukan fungsi tertentu.
Macam Web Server
- IIS (web server untuk html & asp ).Bisa jalan di OS Windows.
- APACHE webserver (web server untukhtml,php,asp,jsp, dsb).Bisa jalan di OS Windows dan LINUX.
Eksploitasi server WWW
- Tampilan web diubah (deface) dengan eksploitasi skrip / previledge / OS di server Situs yang dideface dikoleksi di http://www.alldas.org
- Informasi bocor (misal laporan keuangan semestinya hanya dapat diakses oleh orang/ bagian tertentu)
- Digunakan untuk menipu firewall (tunelling ke luar jaringan)
- Port 80 digunakan untuk identifikasi server (karena biasanya dibuka di router/firewall)
Eksploitasi server WWW [2]
- Penyadapan informasi
URLwatch: melihat siapa mengakses apa saja. Masalah privacy SSL memproteksi, namun tidak semua menggunakan SSL karena komputasi yang tinggi
- DoS attack
Request dalam jumlah yang banyak (bertubi-tubi) Request yang memblokir (lambat mengirimkan perintah GET)
- Malicious Input Attack
Bad input ke priviledge program : Code corruption attack – Buffer overflow, SQL Injection, Cross Site Scripting
SQL Injection
* Site menerima input dalam bentuk ‘web form’ atau URL
– Kombinasi prefix/suffix
– Hasil query dalam bentuk (SQL) query, command, atau script
– Attacker mengirim input dengan control characters,memodifikasi query/script
– Banyak cara untuk exploit
– Banyak sites yang mempunyai titik lemah
Contoh:
Path traversal: “../”
Tambahkan commands: “; rm –r *”
SQL injection: “’ OR 1=1”
SQL Injection Defense
- Input Validation
- Reject (filter) input with control chars (`,”,<…)
- PHP configuration
- Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang berjalan
Defence XSS
- Input data validation dan filtering
- Output filtering / encoding
- Teknologi static web page
- Menggunakan metode POST dalam pengiriman data di dynamic page
- Menggunakan aplikasi Web Application Firewall (WAF)
- Client-side XSS defenses
CGI (Common Gateway Interface)
- CGI digunakan sebagai interface dengan sistem informasi lainnya (gopher, WAIS)
- Diimplementasikan dengan berbagai bahasa (perl, C,C++, python, dll.)
- Skrip CGI dijalankan di server sehingga membuka potensi lubang keamanan
Lubang Keamanan CGI
Beberapa contoh
CGI dipasang oleh orang yang tidak berhak
CGI dijalankan berulang-ulang untuk menghabiskan resources (CPU,disk): DoS
Masalah setuid CGI di sistem UNIX, dimana CGI dijalankan oleh userid web server
ASP di sistem Windows
Guestbook abuse dengan informasi sampah
Akses ke database via SQL
Keamanan Client WWW
- Berhubungan dengan masalah privacy Cookies untuk tracking kemana saja browsing Pengiriman informasi pribadi
- Attack (via active script, javascript, java) Pengiriman data-data komputer (program apa yang terpasang, dsb.)
-DoS attack (buka windows banyak) Penyusupan virus dan trojan horse
Pengamanan WEB
Membatasi Akses
* Access Control
Hanya IP tertentu yang dapat mengakses server (konfigurasi web server atau firewall)
Via userid & password (htaccess)
Menggunakan enkripsi untuk menyandikan data-data
Htaccess di Apache
Isi berkas “.htaccess”
AuthUserFile /home/budi/.passme
AuthGroupFile /dev/null
AuthName “Khusus untuk Tamu Budi”
AuthType Basic
<Limit GET>
require user tamu
</Limit>
Membatasi akses ke user “tamu” dan password
Menggunakan perintah “htpasswd“ untuk membuat password yang
disimpan di “.passme”
Secure Socket Layer (SSL)
- Menggunakan enkripsi untuk mengamankan transmisi data
- Mulanya dikembangkan oleh Netscape
- Implementasi gratis pun tersedia openSSL
APACHE Web Server dengan HTTPS
- HTTPS adalah varian dari protocol HTTP dimana user mengakses dengan https://
- Data yang dikirim ke server adalah data yang terenkripsi.
- Enkripsi yang digunakan adalah enkripsi SSL (Secure socket Layer).
- Menggunakan TCP port 443.
TLS/SSL: Architecture
Terdapat 2 bagian :
a . Sesi hubungan menggunakan Handshake Protocol
b. Untuk transfer informasi / aplikasi menggunakan
Penjelasan Blok Diagram
1. Klien membuka suatu halaman yang mendukung protokol SSL, biasanya diawali dengan https:// pada browsernya.
2. Kemudian webserver mengirimkan kunci publiknya beserta dengan sertifikat server.
3. Browser melakukan pemeriksaan : apakah sertifikat tersebut dikeluarkan oleh CA(Certificate Authority) yang terpercaya? Apakah sertifikat tersebut masih valid dan memang berhubungan dengan alamat situs yang sedang dikunjungi?
4. Setelah diyakini kebenaran dari webserver tersebut, kemudian browser menggunakan kunci public dari webserver untuk melakukan enkripsi terhadap suatu kunci simetri yang dibangkitkan secara random dari pihak klien. Kunci yang dienkripsi ini kemudian dikirimkan ke webserver untuk digunakan sebagai kunci untuk mengenkripsi alamat URL (Uniform Resource Locator) dan data http lain yang diperlukan.
5. Webserver melakukan dekripsi terhadap enkripsi dari klien tadi, menggunakan kunci privat server. Server kemudian menggunakan kunci simetri dari klien tersebut untuk mendekripsi URL dan data http yang akan diperlukan klien.
6. Server mengirimkan kembali halaman dokumen HTML yang diminta klien dan data http yang terenkripsi dengan kunci simetri tadi.
7. Browser melakukan dekripsi data http dan dokumen HTML menggunakan kunci simteri tadi dan menampilkan informasi yang diminta.