Analisis Sistem ANALISIS DAN PERANCANGAN SISTEM

sehingga server salah memvalidasi dan menanggapi request yang diterima dari klien dan serangan yang paling sering muncul pada perangkat mobile disebabkan adanya kelemahan disisi teknologi atau tools yang digunakan untuk dapat melakukan koneksi secara online. Resiko jika adanya celah keamanan yang ada pada aplikasi adalah terjadinya pencurian data maupun pembajakan informasi. Untuk itu diperlukan sistem yang dapat memverfikasi dan menemukan celah keamanan teknologi OpenSSL yang digunakan aplikasi web atau aplikasi mobile yang ada pada smartphone.

3.2 Analisis Sistem

Aplikasi untuk memverfikasi dan mendeteksi celah keamanan teknologi OpenSSL pada aplikasi web dan aplikasi mobile yang ada pada smartphone dengan menggunakan black-box testing merupakan suatu aplikasi yang memberikan hasil berupa ada tidaknya celah keamanan pada teknologi OpenSSL yang terdapat pada aplikasi web dan aplikasi mobile yang terinstall di smartphone maupun smartphone itu sendiri. Sistem menerima input berupa halaman URL dari sebuah website, kemudian akan diproses dengan black-box testing menggunakan serangkaian prosedur untuk memverifikasi dan mendeteksi celah keamanan pada aplikasi web. Sistem juga dapat pengecekkan versi OpenSSL yang digunakan aplikasi yang terinstal pada smartphone ataupun smartphone itu sendiri untuk mengetahui jenis celah keamanan yang rentan terhadapnya. Gambar 3.1 Arsitektur Umum Aplikasi Universitas Sumatera Utara Sesuai Gambar 3.1 maka dapat dijelaskan sebagai berikut, dalam aplikasi ini ada 2 bagian kerja: 3.2.1 Scan Device Pada saat melakukan pengecekkan terhadap device, maka akan dilakukan tahapan pengumpulan informasi Information Gathering. Dimana informasi yang dikumpulkan akan digunakan untuk mengidentifikasi kelemahan. Dalam tahap ini, terjadi proses dimana aplikasi scanner heartbleed akan melakukan pengecekan versi OpenSSL dari library device smartphone android. Aplikasi juga akan melakukan pengecekan terhadap versi google chrome dan mozilla firefox yang terinstall di android. Kemudian akan dilanjutkan dengan pencarian versi OpenSSL aplikasi yang terinstall di device smartphone, dengan cara menemukan data directory dari setiap aplikasi yang terinstall. Kemudian data directory tersebut digunakan untuk melihat isi dari library aplikasi yang terinstall. Jika library aplikasi terinstall ditemukan. Maka, akan dilakukan proses grep terhadap satu persatu library untuk mengetahui di library mana mengetahui apakah aplikasi memiliki OpenSSL dan versi OpenSSL yang digunakan aplikasi yang terinstall di smartphone android. Setelah aplikasi menemukan versi OpenSSl android, versi browser dan aplikasi terinstall mana saja yang punya OpenSSL beserta versi OpenSSLnya. Maka akan dilakukan proses identifikasi untuk menentukan jenis kelemahan apa yang terkait OpenSSL yang rentan terhadap browser, aplikasi android maupun os android. Output berupa laporan mengenai versi browser, versi OpenSSL yang digunakan device android dan versi OpenSSL setiap aplikasi terinstall dan juga jenis celah keamanan yang rentan terhadapnya. 3.2.2 Scan URL Pada bagian scan URL, ada 2 bagian kerja yaitu; scan heartbleed dan verify SSL. Input yang digunakan berupa alamat URL yang diberikan user dan juga dapat berupa URL yang diakses user dari Chrome hanya untuk scan heartbleed. Alamat URL yang di- input harus berupa alamat URL yang telah menggunakan layanan SSLTLS. Kemudian input yang diberikan pengguna akan diproses sesuai dengan bagian kerja yang dipilih pengguna. Universitas Sumatera Utara 1. Scan Heartbleed a. Handshake Setelah alamat URL didapatkan, maka akan dilakukan proses handshake, handshake merupakan sebuah proses negosiasi otomatis yang secara dinamis menentukan parameter dalam pembentukan kanal komunikasi antara dua entitas normal sebelum komunikasi melalui kanal dimulai. b. Attack Scenario Setelah di lakukan handshake hello, aplikasi akan mengirim script berupa paket malware Heartbleed ke alamat URL yang diberikan user. c. Vulnerability identification Server memberikan respon terhadap paket malware yang dikirim oleh aplikasi pencegahan heartbleed bug tersebut. Respon yang diterima kemudian akan diidentifikasi, apakah alamat URL yang di scanning memiliki kelemahan terhadap heartbleed atau tidak. 2. Verify SSL Setelah URL didapatkan maka akan dilakukan proses koneksi terhadap server untuk menjalani komunikasi antara klien dan server. Sistem akan mengambil informasi tentang SSL yang digunakan server dan akan dilakukan verifikasi kunci publik dan kunci private antara klien dan server, yang bertujuan untuk mengetahui apakah server menggunakan kunci self signed atau tidak. Verify SSL juga bertujuan untuk mengetahui jenis cipher yang didukung server Aplikasi pencegahan SSLTLS bug memberikan output berupa laporan kepada user apakah ada celah SSL’TLS atau tidak. Dan aplikasi juga memberikan info tentang keamanan SSL yang digunakan server saat berkomunikasi dengan client. Proses-proses pada sistem akan dijelaskan dengan menggunakan flowchart : 1 Handshake Pada sistem yang akan dibangun, tahapan Handshake ditujukan untuk memastikan komunikasi telah terjalin antara server dan klien. Dalam tahhapan Handshake sistem akan mengirimkan pesan ke server dan memastikan kanal atau protokol yang akan digunakan antara klien dan server saat melakukan komunikasi. Universitas Sumatera Utara Gambar 3.2 Proses Handshake URL Website Untuk memperjelas tahapan Handshake pada Gambar 3.2 dijelaskan sebagai berikut : 1. Pengguna meng-input URL sebuah website. 2. Sistem akan mengirim hello dalam bentuk hex yang akan diubah nanti kedalam format byte sebelum dikirim ke server. Didalam hello hex sistem akan mendeklarasikan jenis content type header, versi TLS Transport Layer Security, panjang header, handshake types dan cipher suite. Hello dikirim untuk mengetahui apakah server mempunyai SSL konten atau tidak. 3. Ketika server menanggapi hello yang dikirim sistem. Kemudian sistem akan membaca header yang dikirim server terhadap sistem. Pembacaan header bertujuan untuk mengetahui apakah server mempunyai ekstensi untuk mengadakan handshake dan apakah handshake hello yang dikirimkan sistem ditanggapi secara keseluruhan oleh server. 4. Setelah melewati tahapan pembacaan header, dapat dipastikan bahwa komunikasi antara server dan klien sudah terjalin dan telah ada pertukaran parameter. Universitas Sumatera Utara 2 Proses Attack Scenario Ketika handshake yang dilakukan telah selesai dan server telah menanggapi secara keseluruhan handshake hello dari klien, maka dilanjutkan proses pengirim paket heartbleed dalam bentuk hex, yang nanti akan diubah lagi kedalam byte sebelum dikirim ke server. di dalam paket heartbleed, dideklarasikan jenis content type, versi TLS Transport Layer Security, panjang, handshake types dan payload length. Proses penyerangan dimulai dengan cara mengelabui ekstensi heartbeat yang dimiliki server, sistem mengirim respon yang mempunyai panjang 3 byte namun meminta respon lebih dari tiga. Untuk mengetahui lebih jelasnya kita dapat lihat flowchart untuk mengetahui proses penyerangan secara umum pada gambar 3.3. Gambar 3.3 Proses Penyerangan 3 Verifikasi layanan SSL SSL digunakan pada server untuk menyediakan enkripsi data dalam komunikasi data. Verifikasi layanan SSL dibutuhkan untuk mengetahui kelemahan cipher yang disupport server Signature Algorithm, validasi masa berlaku sertikat dan certificate chain. Penentuan cipher ditentukan pada tahap awal koneksi SSL, server akan menentukan cipher suite yang diakan digunakan untuk menangani pesan hello yang Universitas Sumatera Utara dikirimkan server. Jenis cipher akan menentukan kekuatan enkripsi yang digunakan. Masa berlaku juga akan menentukan kekuatan sertifikat, ketika masa berlaku sertifikat kadaluarsa, maka akan memunculkan error dan layanan tidak aman. Certificate chain yang digunakan antara klien dan server, juga akan menentukan kekuatan dari keamanan SSL itu sendiri. Verifikasi subjectdn dan issuerdn diperlukan untuk mengetahui apakah sertifikat dijamin oleh CA Certificate Authority atau tidak. Self signed certificate langsung ditandatangani pengguna tanpa bantuan CA Certificate Authority. Pada self signed certificate, dimungkin penyerang dapat mencuri private key pengguna dan pengguna secara permanen kehilangan private key. Dengan melakukan verifikasi layanan SSL, dapat diketahui seberapa terjamin layanan SSL yang tersedia. Untuk mengetahui lebih jelasnya kita dapat lihat flowchart untuk mengetahui proses verify SSL secara umum pada gambar 3.4. Gambar 3.4 Proses Validasi SSL 4 Information Gathering Pada saat melakukan scan device dan aplikasi, maka akan dilakukan tahapan pengumpulan informasi. Tahap pertama dalam pengumpulan informasi yaitu dengan mengecek versi OpenSSL pada library os android device yang terletak di systemliblibssl.so. Sistem melakukan perintah command prompt untuk melakukan grep OpenSSL. Pada tahap selanjutnya akan dilakukan pengecekkan aplikasi yang terinstall di os android device, semua aplikasi akan dicek letak data directory nya Universitas Sumatera Utara dengan menggunakan perintah command prompt, selanjutnya data directory akan digunakan untuk mengetahui apakah aplikasi memiliki library atau tidak. Jika aplikasi terinstall memiliki library, maka akan dilakukan perintah command prompt untuk melakukan pengecekkan OpenSSL pada tiap-tiap library yang dimiliki aplikasi terinstall. Untuk mengetahui lebih jelasnya kita dapat lihat flowchart untuk mengetahui proses Information gathering secara umum pada gambar 3.5. Gambar 3.5 Proses Pengumpulan Informasi 5 Proses Vulnerability Identification a. Scan URL Saat melakukan scenario penyerangan pada satu URL, kemudian akan dilakukan pembacaan response yang dikirim server saat itu juga akan dilakukan vulnerable identification. Response dari web server berupa parameter-parameter header, yang didalam terdapat type, payload dan length. Pembacaan type dan panjang payload akan menentukan kelemahan server terhadap heartbleed. Setelah server dinyatakan lemah berdasarkan parameter yang didapatkan dari server, maka akan dilakukan pembacaan hex dump memory, untuk melihat isi memory server. untuk merepresentasikan proses vulnerable identification scan url dapat dilihat pada gambar 3.6. Universitas Sumatera Utara Gambar 3.6 Proses identifikasi kelemahan b. Scan device Setelah dilakukan pengumpulan informasi oleh sistem dan didapatkan hasil berupa versi OpenSSL yang digunakan Os android dan aplikasi terinstall didalamnya, maka akan ditentukan kelemahan os android dan aplikasi berdasarkan versi OpenSSL. Versi OpenSSL os android berbeda dengan OpenSSL aplikasi yang terinstall didalamnya. Kelemahan OpenSSL pada sisi pengguna dapat diketahui hanya dengan mengetahui versi OpenSSL yang digunakan karena server yang akan menyesuaikan SSL yang akan digunakan saat berkomunikasi sesuai dengan SSL yang bawaan os android atau aplikasi. Versi browser juga akan di cek untuk menentukan apakah browser vulnerable terhadap logjam atau tidak. Universitas Sumatera Utara Gambar 3.7 Proses Identifikasi Kelemahan device

3.3 Proses Menguji Celah Kelemahan Aplikasi Web dan Aplikasi Mobile