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