Dokumen tersebut membahas tentang masalah keamanan pada manajemen sesi dan autentikasi yang rusak yang dapat menyebabkan serangan session hijacking. Serangan ini memanfaatkan kelemahan pada proses otentikasi dan manajemen sesi untuk mencuri session ID dan cookies pengguna guna mengakses akun korban secara tidak sah. Beberapa teknik serangan yang dibahas antara lain session sniffing, prediction session token, man-in-the-middle attack, dan session replay attack.
tugas 1 tutorial online anak berkebutuhan khusus di SD
BROKEN AUTHENTIKASI DAN SESI
1. Nama : Raka Septa Kurnia
NPM : TI1401010
Jurusan : Teknik Perangkat Lunak
BROKEN AUTHENTICATION AND SESSION MANAJEMENT
Abstraksi
Manajemen sesi merupakan salah-satu layanan penting yang harus dikelola dengan
baik, keamanan manajemen sesi yang baik setidaknya dapat menunjang 2 prinsip dasar dalam
konsep keamanan, yaitu confidentiality (kerahasian data) dan integrity (keaslian data).
Kerentanan terhadap celah keamanan manajemen sesi bahkan berada pada peringkat kedua
didalam dokumen OWASP Top 10 - 2017 yang diterbitkan oleh OWASP Foundation. Salah
satu serangan yang dapat dilakukan terhadap manajemen sesi adalah session hijacking.
Terdapat fitur dasar dari proses client-server yang dimanfaatkan oleh penyerang ketika
melakukan serangan session hijacking, yaitu session dan cookies. Serangan session hijacking
biasanya terjadi di sisi server dalam bentuk pencurian session dan di sisi client berupa
pencurian cookies yang dimiliki oleh client.
Kata Kunci : Manajemen Sesi, Session Hijacking
Pendahuluan
Apa itu Otentikasi?
Otentikasi adalah proses keamanan yang memastikan dan mengkonfirmasikan
identitas pengguna, biasanya verifikasi username/password yang dilakukan oleh server.
Apa itu Manajemen Sesi?
Manajemen sesi adalah sebuah sistem yang digunakan oleh server ketika akan
melakukan sebuah koneksi dengan client agar informasi koneksi yang ada dapat tersimpan
dan nantinya client bisa langsung terhubung dengan server tanpa harus melakukan koneksi
ulang.
Apa itu Cookies?
Cookies atau Web Cookies adalah salah-satu media yang ada didalam manajemen sesi
yang digunakan untuk menyimpan data sementara kedalam sebuah variabel sehingga dapat
diakses oleh client selama variabel tersebut tidak dihilangkan ataupun dikosongkan. Berbeda
dengan session yang nilai variabelnya disimpan di sisi server, cookies menyimpan nilai
variabel di sisi client.
Tempat penyimpanan cookies biasanya didalam sebuah browser aplikasi, sehingga
dapat membantu website memberitahu aktivitas yang dilakukan oleh client. Didalam sebuah
website, fasilitas "remember me" atau "ingatkan saya selalu" yang ada ketika akan melakukan
sebuah login biasanya memanfaatkan fungsi dari cookies.
2. Cookies dibagi kedalam dua jenis, yaitu :
1. Non persistent (session) cookie
Suatu cookie yang akan hilang sewaktu user menutup browser dan biasanya digunakan
pada shopping carts di toko belanja online untuk menelusuri item-item yang dibeli.
2. Persistent cookies
Diatur oleh situs-situs portal, banner / media iklan situs dan lainnya yang ingin tahu
ketika user kembali mengunjungi site mereka. (Misal dengan cara memberikan opsi
Remember Me saat login). File file ini tersimpan di hardisk user.
Serangan pada Broken Authentication and SessionManajement
1. SessionHijacking
Session hijacking adalah sinonim dari pencurian session, dimana attacker melakukan
intercept dan take over antara user dan host. Serangan session hijacking juga dikenal
dengan sebagai serangan cookie hijacking.
Session hijacking juga adalah kombinasi dari serangan sniffing dan spoofing yang
dilakukan terhadap proses komunikasi secara normal, attacker sebagai pihak ketiga ikut
serta didalamnya. Atau injeksi terhadap informasi tambahan yang berbasiskan TCP
session dimana komunikasi berasal dari link yang diakses secara langsung antara 2 sisi
yang dilakukan oleh attacker.
2. Sessionhijacking : Application Layer
Session hijacking merupakan serangan yang mungkin terjadi di 2 layer dalam OSI
model, yaitu layer network dan application. Pada application layer, attacker lebih
memilih menghasilkan session baru dengan menangkap session ID daripada melakukan
hijacking terhadap session yang berlaku. Session ID sangat mudah ditangkap di client
side melalui URLs yang disimpan kedalam history file dari browser, file cookie disimpan
didalam komputer client atau form ada.
Session ID merupakan kode string yang digunakan oleh server untuk melakukan
komunikasi data requestresponse dengan user. Sebagai contoh, apabila user telah
melakukan login kedalam sebuah web toko buku online, lalu user membuka page lain
dengan tab yang berbeda untuk mencari informasi tertentu, maka user tidak perlu lagi
login seperti awal ketika user melakukan akses ke web toko buku online. Itu terjadi
karena server mengidentifikasi dan mengenali Session ID yang telah diberikan kepada
user ketika sebelumnya secara valid berhasil login.
Terdapat beberapa tempat dimana server menyimpan Session ID yang digunakan
untuk berkomunikasi dengan user, diantaranya :
1. Embedded in a URL
Dalam hal ini, server menyimpan Session ID didalam sebuah URL,
contohnya http://kamsoft.co.id/dashboard.php?sesi=hay0805170800
Session ID yang dimasukan kedalam variabel sesi ketika user melakukan request
URL dengan metode GET,
Session ID akan terus digunakan selama server melakukan verifikasi terhadap url
yang diakses oleh user.
3. 2. Embedded as a Hidden Field
Session ID dimasukan kedalam sebuah variabel yang ada didalam sebuah form html,
Contohnya <input type="hidden" name="kamsoft" value="hay0805170800"
id="kamsoft">
Pada poin ini, Session ID dikirimkan melaui metode POST dalam HTTP.
3. Cookies
Session ID dikirimkan oleh server dan dimasukan kedalam sebuah file yang
berintegrasi dengan Web Browser.
File cookies berada di dalam lokal mesin.
Contohnya C:/program files/mozilla/profile/akbar/cookies.txt
Beberapa tipe serangan session hijacking yang dapat dilakukan di layer application :
a. SessionSniffing
Session sniffing adalah aktifitas sniffing yang dilakukan untuk mendapatkan session
aktif. Session ID atau session
token yang didapatkan digunakan hacker untuk mendapatkan akses terhadap server
atau sumberdaya lain.
b. Predictable SessionToken
Attacker bisa memprediksi Session ID yang dihasilkan dari algoritma yang lemah,
attacker dapat melakukan analisis terhadap tiap variabel yang ada didalam Session ID
melalui pola yag ada, analisis yang dilakukan dapat dilakukan secara manual dan
otomatis menggunakan aplikasi semacam cryptanalytic. Data yang dikumpulkan
harus cukup banyak agar ketika dianalisis dapat ditemukan pola yang tepat sehingga
attacker dapat memprediksi Session ID selanjutnya, 2 langkah sederhana yang
dilakukan ketika akan melakukan prediksi Session Token atau Session ID
diantaranya:
a) Captured
Attacker melakukan pengumpulan beberapa Session ID untuk kebutuhkan
analysis. Contohnya :
http://kamsoft.co.id/dashboard.php?sesi=hay0805170800
http://kamsoft.co.id/dashboard.php?sesi=hay0805170802
http://kamsoft.co.id/dashboard.php?sesi=hay0805170804
b) Predict
Dari Session ID yang dikumpulkan maka attacker melakukan analisis dalam
kasus ini isi dari variabel sesi yang dihasilkan. Contohnya :
hay : merupakan konstanta (biasanya username)
080517 : tanggal ketika diakses (tanggal 9 bulan 05 tahun 2017)
0800 : waktu ketika melakukan akses (jam 8 pagi)
Maka session ID berikutnya dapat diprediksi dari pola yang ada. Apabila
attacker ingin melakukan akses terhadap web tersebut maka attacker tinggal
menyesuaikan Session ID dengan tanggal dan waktu ketika mengakses.
4. c. Man-In-The-Middle Attack
Pada serangan Man-In-The-Middle Attack, attacker melakukan intercept pesan
yang ada dalam proses komunikasi antara korban dengan server (web server). Dalam
kasus ini secara spesifik attacker melakukan intercept HTTP protocol sebagai target.
Terdapat 2 teknik yang dilakukan, yaitu :
1. Client-to-attacker connection
2. Attacker-to-Server connection
Dalam proses serangan, attacker membaca, melakukan modifikasi dan
selanjutnya mengirimkan pesan yang telah dipalsukan ke setiap target yang
sebelumnya komunikasinya telah di intercept. Secara sederhana, komunikasi yang
terjadi antara client dan server dilakukan melalui attacker.
d. Man-In-The-Browser Attack
Terdapat tiga variasi serangan yang adapat dilakukan, yaitu Cross-Site
Scripting (XSS) Attack, Cross-Site request Forgery (CSRF) Attack dan Trojan.
1) Cross-Site Script Attack
Merupakan tipe serangan yang terjadi ketika attacker mengirimkan malicious
javascript didalam sebuah link yang selanjutnya diakses oleh korban sehingga
menampilkan cookie aktif yang sedang digunakan oleh korban. Dengan teknik
tambahan, cookie yang ada dapat digunakan oleh attacker sehingga memiliki
cookie yang sama dengan korban. Contoh sederhana dari link yang berisi
malicious code javascript yang diterima korban sebagai berikut :
http://kamsoft.co.id/hay.php?xss=<script>alert(document.cookie)</script>
2) Cross-Site request Forgery Attack
Serupa dengan serangan XSS, CSRF juga terjadi ketika korban melakukan
akses terhadap link yang berisi malicious code. Keadaan yang membedakan
adalah adanya teknik tambahan, dimana attacker sebelumnya menempatkan link
yang berisi malicious code kedalam website milik attacker, sehingga korban
dipaksa mengirimkan cookies dari Session yang aktif kedalam website milik
attacker, untuk selanjutnya attacker dapat menggunakan cookie serupa untuk
melakukan komunikasi yang sah dengan target website.
3) Trojan
Berbeda dengan variasi serangan diatas, serangan dengan trojan
mengharuskan web browser korban terinstall malicious code didalam
konfigurasinya. Sehingga attacker melakukan secara passif dan aktif. Dikatakan
pasif karena attacker harus menunggu korban melakukan akses terhadap website
yang telah di targetkan, selain itu secara aktif attacker harus mengarahkan korban
untuk melakukan akses terhadap website yang telah ditargetkan dan menginstall
malicious code kedalam web browser yang digunakan oleh korban.
5. e. SessionReplay Attack
Pada serangan ini attacker mendengarkan pembicaraan yang dilakukan user
dengan server, setelah itu menangkap token autentikasi berupa Session Token atau
Session ID yang digunakan user. Attacker menggunakan token autentikasi untuk
melakukan request ke server untuk mendapatkan access yang sama seperti user.
f. Sessionfixation
Dalam serangan session fixation, attacker menetapkan session ID user
sebelum user tersebut melakukan login kedalam server target. Serupa dengan XSS.
Session fixation memanfaatkan link yang berisi malicious code agar diakses oleh
korban. Isi dari link tersebut biasanya berupa session id yang sebelumnya digunakan
attacker untuk melakukan akses kedalam target server.
Kesimpulan
Manajemen sesi merupakan salah-satu layanan yang dapat mempermudah client
melakukan koneksi kepada server karena dengan memanfaatkan fitur session dan cookies.
Client dapat dengan mudah melakukan koneksi tanpa harus melakukan pengulangan login
ataupun segala request yang berkaitan dengan penyimpanan data sementara yang dilakukan
oleh client.
Kemudahan client melakukan komunikasi terhadap server dengan memanfaatkan
session dan cookies juga menjadi celah bagi penyerang untuk memanfaatkan kemudahan
tersebut untuk melakukan komunikasi dengan server secara ilegal atau tidak sah. Serangan
yang dilakukan untuk mendapatkan komunikasi dengan server tersebut salah-satunya dapat
dengan cara melakukan session hijacking. Beberapa teknik session hijacking dapat di
aplikasikan penyerang untuk mendapatkan sesi komunikasi yang terjadi. variasi serangan
yang dilakukan juga dapat dikombinasikan dengan beberapa teknik lain seperti spoofing
ataupun social-engineering.