•Web Security Web Server ???? Web Server (Server web) merupakan sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal dengan browser web dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML. Web server menunggu permintaan dari client yang menggunakan browser seperti Netscape Navigator, Internet Explorer, Mozilla Firefox, Opera, NeoPlanet dan program browser lainnya. Untuk berkomunikasi dengan client-nya (web browser) web server mempunyai protokol sendiri, yaitu HTTP (hypertext transfer protocol). Dengan protokol ini, komunikasi antar web server dengan client-nya dapat saling dimengerti dan lebih mudah. Contoh dari Web Server diantaranya adalah Personal Web Server (PWS), Xitami, Apache, Microsoft Internet Information Service (IIS) dll. Web server yang terkenal diantaranya adalah Apache dan Microsoft Internet Information Service (IIS). Apache merupakan server web antar-platform, sedangkan IIS hanya dapat beroperasi di sistem operasi Windows. Hal yang paling utama dalam proses pembuatan web server adalah memilih software mana yang akan digunakan sebagai web server yang akan digunan. Untuk itu perlu adanya pertimbangan sebagai berikut : 1. Lisensi dari software yang akan digunakan (freeware, shareware atau komersial). 2. Kemudahan instalasi. 3. Kemudahan dalam mengatur konfigurasi. 4. Kemudahan untuk menambah atau mengubah peripheralnya. 5. Kemampuan Software. 6. Besar ruang yang dibutuhkan untuk menyimpan file-file minimal yang dibutuhkan agar software dapat berfungsi dengan baik. 7. Prospek software tersebut dimasa yang akan datang. 8. Performasi dan konsumsi sumber daya yang digunakan software itu. 9. Fasilitas apa yang mampu didukung oleh software itu. 10.Dukungan teknis (mempunyai site-site atau milis untuk bertanya bila terjadi masalah). 11.Dukungan platform (jenis sistem operasi apa saja yang dapat menjalankan software tersebut). 12.Dukungan terhadap third party (apakah software ini dapat ditambahkan software tambahan sebagai pelengkap). Cara Kerja Web Server 1. Client disini dapat berupa komputer desktop dengan minimal memiliki browser dangan terhubung ke web server melalui jaringan (intranet atau internet). 2. Komputer yang berfungsi sebagai server, dimana didalamnya terdapat perangkat lunak web server, agar komputer ini dapat diakses oleh client maka komputer harus terhubung ke jaringan (intranet atau internet). 3. Pertama, client (user) akan meminta suatu halaman ke (web) server untuk ditampilkan di komputer client. Misalnya client mengetikkan suatu alamat (biasa disebut URL) di browser http://www.google.com. Client menekan tombol Enter atau klik tombol Go pada browser. Lalu apa yang terjadi? Melalui media jaringan (bisa internet, bisa intranet) dan melalui protokol http, akan dicarilah komputer bernama www.google.com. Jika ditemukan, maka seolah-olah terjadi permintaan, “hai google, ada client yang minta halaman utama nich, ada dimana halamannya?”. Inilah yang disebut request. 4. Sekarang dari sisi server (web server). Mendapat permintaan halaman utama google dari client, si server akan mencari-cari di komputernya halaman sesuai permintaan. Jika ditemukan, maka halaman yang diminta akan dikirimkan ke client (si peminta), namun jika tidak ditemukan, maka server akan memberi pesan “404. Page Not Found”, yang artinya halaman tidak ditemukan. • Security HTTP Authentication • Protect web content from those who don’t have a “need to know” • Require users to authenticate using a userid/password before they are allowed access to certain URLs • HTTP/1.1 requires that when a user makes a request for a protected resource the server responds with a authentication request header – WWW-Authenticate • contains enough pertinent information to carry out a “challenge-response” session between the user and the server Client requests a protected resource Client Web Server Server responds with a 401 (not authorized and a challenge request for the client to authenticate Client Response • Well established clients like Firefox, Internet Explorer …. will respond to the challenge request (WWW-Authenticate) by presenting the user with a small pop-up window with data entry fields for – userid – password – a Submit button and a Cancel button • entering a valid userid and password will post the data to the server, the server will attempt authentication and if authenticated will serve the originally requested resource. WWW-Authenticate • The authentication request received by the browser will look something like: – WWW-Authenticate = Basic realm=“defaultRealm” • Basic indicates the HTTP Basic authentication is requested • realm indicates the context of the login – realms hold all of the parts of security puzzle » Users » Groups » ACLs (Access Control Lists) • Basic Authentication – userid and password are sent base 64 encoded (might as well be plain text) – hacker doesn’t even need to unencode all he has to do is “replay” the blob of information he stole over and over ( this is called a “replay attack”) Ancaman via aplikasi berbasis web (1) Ancaman Serangan untuk mendapatkan account SQL injection Session hijacking Dan lain-lain Ancaman via aplikasi berbasis web (2) Ancaman serangan account Analisa manajemen account untuk mendapatkan account Brute force attack Dan lain-lain Pencegahan Desain dan coding yang aman Mendisable pesan error sistem dan aplikasi yang tidak perlu Sanitasi nilai input dengan baik di sisi server Dan lain-lain Ancaman via aplikasi berbasis web (3) Ancaman serangan SQL injection Contoh: Query pada aplikasi database select * from user where id=$id; Penyerang memasukan nilai variabel ”id”dengan query yang “diinginkan" $id=212; select * from admin Query akhir menghasilkan 2 buah query select * from users where id=212; select * from admin; Pencegahan Sanitasi nilai input dengan baik di sisi server Ancaman via aplikasi berbasis web (4) Ancaman session hijacking HTTP adalah stateless Ekploitasi session Pencegahan Menggunakan session yang sulit ditebak, misalnya menyertakan id dan password Enkripsi nilai session 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) Keamanan Sistem WWW - BR - 1.2 - 2001.2002 14 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) Keamanan Sistem WWW - BR - 1.2 - 2001.2002 15 Eksploitasi server WWW [3] • Digunakan untuk menipu firewall (tunelling ke luar jaringan) • Port 80 digunakan untuk identifikasi server (karena biasanya dibuka di router/firewall) Keamanan Sistem WWW - BR - 1.2 - 2001.2002 16 Membatasi Akses • Access Control – Hanya IP tertentu yang dapat mengakses server (konfigurasi web server atau firewall) – Via userid & password (htaccess) – Menggunakan enkripsi untuk menyandikan datadata Keamanan Sistem WWW - BR - 1.2 - 2001.2002 17 • Any Questions ? • End Of Sessions