Jumat, 14 Januari 2011

artikel rekayasa perangkat lunak lanjut

  • Abstraksi
Istilah sesi pembajakan (session hijacking) umumnya digunakan untuk menggambarkan proses sebuah koneksi TCP yang diambil alih oleh sebuah rangkaian serangan yang sudah dapat diprediksi sebelumnya. Pada serangan seperti itu, penyerang memperoleh kendali melalui koneksi TCP yang sudah ada. Bila diterapkan pada keamanan aplikasi web, session hijacking mengacu padapengambilalihan sebuah session aplikasi web.
Aksi ini melakukan pengambilan kendali session milik user lain setelah sebelumnya “pembajak” berhasil memperoleh autentifikasi ID session. Session hijacking menggunakan metode captured, brute forced atau reserve enggineered guna memperoleh ID session yang untuk selanjutnya memegang kendali atas session yang dimiliki oleh user lain tersebut selama session berlangsung.
Pokok masalah serangan ini semata mata pada cara desain dan pengembangan aplikasi. Kelalaian dalam mendesain atau dalam mengimplementasikan mekanisme session tracking pada aplikasi akan menghasilkan kelemahan yang dapat berakibat fatal. Tak satupun patch sistem operasi, firewall atau konfigurasi web server dapat mencegah serangan session hijacking. Tiap pengembang web harus mengerjakan secara cermat desain dan implementasi session dan state tracking.
  • Latar Belakang
Akhir-akhir ini yang semakin canggihnya dunia teknologi akan dunia informasi, yang mana akan kebutuhan manusia yang padat kebanyakan dari mereka memilih informasi yang instan cepat, akurat jadi informasi dari dunia internetlah yang efektif, kita tinggal cari yang kita butuhin.
Dan dari itu kami hendak menyusun sebuah artikel tentang session hijacking Merupakan eksploitasi dari session yang valid untuk memperoleh akses, jadi ini merupakan seni didunia web yang berkaitan tentang kemanan, jadi kita masuk dengan menggunakan ID orang lain yang mempunyai hak acses akan web itu, jadi hal ini kita membajak ID orang itu jadi kita bisa menggunakan hak ID untuk masuk keweb tersebut.
Kami menyusun artikel ini untuk sedikit menambah wawasan pembaca apa itu Session Hijacking, mungkin ini baru pengenalan saja belum sampai tool-tool yang digunakan, bagaimana cara bermain-main dengan session Hijacking.
Semoga ini dapat sedikit menambah wawasan pembaca.selamat membaca…
  • Session Hijacking
1.Cookies
Sebelumnya kita harus mengetahui apa itu cookies, cookies merupakan data file yang ditulis kedalam hard disk computer oleh web server yang digunakan untuk mengidentifikasikan diri user pada situs tersebut sehingga sewaktu user kembali mengunjungi situs tersebut, situs itu akan dapat mengenalinya, jadi bisa dikatan cookies merupakan semacam ID card user saat koneksi pada situs.
Jadi secara umum cookies berfungsi untuk.
  1. Membantu web site untuk mengingat siapa kita dan mengatur preferences yang sesuai sehingga apabila user kembali mengunjungi web site akan langsung dikenali.
  2. Menghilangkan kebutuhan untuk me-register ulang diweb tersebut saat mengakses lagi.
  3. Memungkinkan web untuk menulusuri pola web surfing user dan mengetahui situs favorit yang sering dikunjungi.
2. Session Hijacking
Merupakan eksploitasi dari session yang valid untuk memperoleh akses, jadi pengambilan kendali session milik user lain setelah sebelumnya ”pembajak” berhasil memperoleh autentifikasi ID session yang biasanya tersimpan dalam cookies. Session hijacking menggunakan metode captured, brute forced atau reserve engineered guna memperoleh ID session, yang selanjutnya memegang kendali atas session yang dimiliki oleh user lain tersebut selama session berlangsung.
HTTP merupakan protocol yang stateless, sehingga perancang aplikasi mengembangkan suatu cara untuk menelusuri suatu state diantara user-user yang koneksi secara multiple. Aplikasi menggunakan session untuk menyimpan parameter-parameter yang relevan terhadap user. Session akan dihapus jika user logout atau melampaui batas koneksi. Karena sifatnya ini, session dapat dimanfaatkan oleh seorang hacker untuk melakukan session hijacking.
  • Ilustrasi Session Hijacking
1. Identifikasi Session.
Seperti pada ilustrasi bioskop, untuk membantu penjaga pintu studio mengetahui setiap penonton yang masuk adalah penonton yang sah diperlukan bukti berupa tiket. Dalam HTTP, tiket bioskop itu berupa session identifier yang tidak lain adalah untaian karakter dan angka yang panjang dan acak.
Ketika pengunjung pertama kali datang, server akan memberikan tiket berupa session id. Ketika server menerima request dari pengunjung yang membawa session id, server akan memeriksa apakah session id itu valid. Jika session id valid, maka server yakin bahwa request ini datang dari “returning visitor” bukan orang asing. Ingat ilustrasi bioskop di awal, ini seperti penjaga pintu studio yakin bahwa anda adalah penonton yang kembali masuk setelah sebelumnya keluar ke toilet.
Ada 2 media untuk membawa sessionid, yaitu cookie dan URL. Cookie biasanya berupa file text yang disimpan oleh browser dan dikirimkan kembali ke server bersama setiap request. Sedangkan sessionid yang dibawa melalui URL umumnya berbentuk parameter seperti ? sessionid=123123 ,Server umumnya memberikan sessionid melalui cookie karena cara ini lebih aman dari cara URL.
2. Mencuri Session
Bayangkan bila ketika anda keluar bioskop untuk ke toilet, tiket anda jatuh dan saya temukan. Lalu saya masuk ke studio dengan tiket itu, apakah saya diijinkan masuk? Tentu saja boleh! Karena saya memegang bukti tak terbantahkan berupa tiket. Sedangkan anda yang kehilangan tiket tidak akan boleh masuk studio karena penjaga studio tidak hafal wajah anda.
Itulah yang akan terjadi bila seseorang mencuri sessionid. Jika anda sedang baca email dan sessionid anda dicuri orang lain, maka orang lain itu akan bisa juga membaca email anda dan server akan yakin bahwa orang lain itu adalah anda.
Di Internet, siapapun yang membawa sessionid anda akan menjadi anda, Bagaimana cara mendapatkan sessionid korban? Secara garis besar ada 3 kategori teknik untuk mendapatkan sessionid, yaitu predict, capture dan fixate.
1. Predict
Teknik ini mirip dengan judi togel, yaitu dengan cara menebak-nebak angka. Kemungkinan berhasilnya tergantung dari tingkat ke-acak-an sessionid. Bila sessionid tidak cukup random, bahkan cenderung mengikuti suatu pola, maka kemungkinan sessionid bisa ditebak. Namun umumnya sessionid sekarang sudah menggunakan fungsi random dan ukurannya panjang, sehingga kecil kemungkinan berhasil dengan cara ini (jauh lebih mudah menebak togel yang cuma 4 angka, daripada menebak sessionid).
2. Capture
  • (Passive) Sniffing.
Menyadap komunikasi http antara browser korban dan server web. Teknik ini sangat mungkin dilakukan untuk situs yang tidak dilindungi https karena paket http tidak ter-enkripsi.
  • Man-in-them-middle (MITM).
Situs dengan https tidak bisa disniff secara passive. Man-in-the-middle attack diperlukan untuk sniffing komunikasi antara browser korban dan server yang dilindungi https. Namun tanpa sertifikat yang di-sign CA yang dipercaya browser, serangan ini mudah dicegah karena browser akan memberi warning bahwa sertifikat attacker tidak bisa dipercaya.
  • Cross Site Request Forgery (CSRF).
CSRF attack bertujuan untuk membuat korban melakukan request yang mengandung sessionid. Bila sessionid disimpan dalam cookie, maka request akan mengandung sessionid dalam header cookie, bila sessionid disimpan dalam URL (url rewriting), maka request akan mengandung sessionid dalam header referer.
  • Cross Site Scripting (XSS).
XSS dilakukan dengan cara meng-injeksi code javascript (client side script) yang akan dieksekusi oleh browser korban. Code javascript ini bertujuan mengirimkan cookie ke server yang sudah disiapkan attacker
  • Fixate.
Kalau menebak dan menyadap sessionid sulit dilakukan, maka cara lain adalah dengan memaksa korban menggunakan sessionid yang sudah dipilih sebelumnya oleh attacker. Serangan ini disebut dengan session fixation attack.
Kesimpulan
Serangan Session hijacking dilakukan tidak semudah serangan aplikasi web lainnya. Tetapi efeknya bisa sangat merusak. Pokok masalah serangan ini semata-mata. Kelalaian dalam mendesain atau dalam mengimplementasikan mekanisme session tracking pada aplikasi akan menghasilkan kelemahan-kelemahan seperti yang telah dibahas pada bagian sebelumnya, Tak satupun patch sistem operasi, firewall atau konfigurasi web server dapat mencegah serangan session hijacking. Tiap pengembang web harus mengerjakan secara cermat desain dan implementasi session dan state tracking.

Tidak ada komentar:

Posting Komentar