Kemanan Web
Keamanan Web ► How Web Works ? Menggunakan protokol HTTP Klien meminta dokumen melalui URL (Request) Server membalas dengan memberikan dokumen jika ada (Replay) HTTP bersifat Stateless ► Elemen web lainya : HTML, ASP, PHP, JSP, dll Aplikasi : Audio/Video, Postscript, pdf Browser : ► Untuk menampilkan doukumen dan gambar ► Untuk membantu menjalakan aplikasi ► IE, Mozilla, Netscape, Konqueror, Lynx, dll
Web Vulnerabilities ► ► Intercept informasi dari klien Data, password, dll ► Pencurian data di server Data, password, dll ► Menjalankan aplikasi di server Memungkinkan melakukan eksekusi program “ngak benar” di server ► Denial Of Services ► Server Side Scripting, Cgi-Bin Kesalahan pemograman membuka peluang
Kemanan Web ► Authentikasi FORM HTML Basic, Digest Klien Side + Server Side Scripting ► Manajemen Sesi ► Menggunakan Layer lain S-HTTP ( discontinoued) HTTPS ( HTTP ovel SSL) IPSec ► Konfigurasi Web Server Hak Akses Indexes Penempatan File
Authentikasi ► FORM HTML ... Tidak di enkripsi ► BASIC Algortima Base64 Mudah di Dekrip ► DIGEST Alghoritma Digest Ex: MD5 Belum 100% di support ► CS + SS Script Belum 100% di support p3.
Manajemen Sesi ► Hiden Form Field <input type="hidden" name="uniqueticket" View page Source ► Cookies User harus mennghidupkan fasilitas Poisoned cookies ► Session Id -rw nobody nobody 180 Jun 30 18:46 sess_5cbdcb16f... Dapat menggunakan History jika umur sesi belum habis ► URL Rewriting &.last=&promo=&.intl=us
Konfigurasi Web Server ► Hak Akses Linux / Unix : Web Server => user = apache ► Penempatan file Penempatan file-file penting Backup file konfigurasi ► Indexes Listing Isi Direktori
SSL ► Untuk Semua Protokol TCP Telnet -> SSH HTTP -> HTTPS ► Public Key Server ► Hashing MD5 + SHA ► CA ► Sekarang -> TLS
Secure Socket Layer (SSL) ► Menggunakan enkripsi untuk mengamankan transmisidata ► Mulanya dikembangkan oleh Netscape ► Implementasi gratis pun tersedia openSSL
► HTTPS adalah varian dari protocol HTTP dimana user mengakses dengan ► Data yang dikirim ke server adalah data yang terenkripsi. ► Enkripsi yang digunakan adalah enkripsi SSL (Secure socket Layer). ► Menggunakan TCP port 443.
Tampilan HTTP biasa
Tampilan HTTPS
Ilustrasi Cara Kerja SSL
Penjelasan Blok Diagram 1. Klien membuka suatu halaman yang mendukung protokol SSL, biasanya diawali dengan 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 dienkripsiini kemudian dikirimkan ke webserver untuk digunakan sebagai kunci untukmengenkripsi alamat URL (Uniform Resource Locator) dan data http lain yang diperlukan.
5. Webserver melakukan dekripsi terhadap enkripsi dari klien tadi, menggunakankunci privat server. Server kemudian menggunakan kunci simetri dari klien tersebutuntuk 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 kuncisimteri tadi dan menampilkan informasi yang diminta.
Contoh penerapan MD5
Implementasi MD5 pada database ► Message Digest 5 (MD5) adalah sebuah fungsi hash satu arah yang mengubah masukan dengan panjang variabel menjadi keluaran dengan panjang tetap yaitu 128 bit. ► MD5 merupakan pengembangan lebih lanjut dari MD4. ► Simplicity. Algoritma MD5 mudah untuk diimplementasikan karena tidak membutuhkan program yang besar dan panjang ► Kecepatan enkripsi pada sistem kriptografi MD5 sangat bergantung kepada spesifikasi Komputer yang digunakan ► MD5 akan menghasilkan output berupa 4 buah blok yang masing-masing terdiri dari 32 bit sehingga menjadi 128 bit yang disebut nilai hash
File form input
File koneksi database tanpa hash MD5 :
File koneksi database menggunakan metode MD5 kriptograpy:
Berikut adalah beberapa metode yang biasa sering digunakan para hacker untuk menyerang suatu website: ► 1. Remote File Inclusion (RFI) ► 2. Local File Inclusion (LFI) ► 3. SQL injection ► 4. Cross Site Scripting (XSS)
Remote File Inclusion (RFI) ► Metode yang memanfaatkan kelemahan script PHP include(), include_once(), require(), require_once() yang variabel nya tidak dideklarasikan dengan sempurna. ► Dengan RFI seorang attacker dapat menginclude kan file yang berada di luar server yang bersangkutan.
Local File Inclusion (LFI) ► Metode yang memanfaatkan kelemahan script PHP include(), include_once(), require(), require_once() yang variabel nya tidak dideklarasikan dengan sempurna. ► Dengan LFI seorang attacker dapat menginclude kan file yang berada di dalam server yang bersangkutan. ► Penanganan LFI : Ubah fungsi ini ► Allow_url_fopen = on gantilah dengan of ► Allow_url_include = on gantilah dengan of
SQL injection ► SQL injection adalah teknik yang memanfaatkan kesalahan penulisan query SQL pada suatu website sehingga seorang hacker bisa menginsert beberapa SQL statement ke ‘query’ dengan cara memanipulasi data input ke aplikasi tersebut. ► Penanganan SQL Injection Merubah script php Menggunakan MySQL_escape_string Pemfilteran karakter ‘ dengan memodifikasi php.ini
Cross Site Scripting (XSS) ► XSS dikenal juga dengan CSS adalah singkatan dari Cross Site Scripting. ► XSS adalah suatu metode memasukan code atau script HTML kedalam suatu website yang dijalankan melalui browser di client.
Tips keamanan website Tips Keamanan WebsiteAda beberapa cara supaya website kita tidak mudah disusupi oleh para hacker, sehingga dapat mengurangi resiko kerusakan website, antara lain: Jika anda menggunakan suatu CMS seperti joomla, phpbb, phpnuke, wordpress dan sebagainya, rajinlah mengupdate CMS anda dengan CMS terbaru jika muncul versi yang lebih baru. Kunjungilah situs-situs yang membahas tentang keamanan aplikasi web seperti : atau untuk mendapatkan informasi tentang bug terbaru. Sewalah seorang yang ahli tentang keamanan website untuk menganalisis keamanan website anda. Gunakanlah software seperti Acunetix untuk melakukan scanning atas kelemahan yang bisa terjadi di website anda