Gambar 3.7 Proses Identifikasi Kelemahan device
3.3 Proses Menguji Celah Kelemahan Aplikasi Web dan Aplikasi Mobile
3.3.1 Proses menguji serangan Heartbleed Heartbleed terjadi karena adanya kesalahan dari server yang menggunakan teknologi
OpenSSL untuk menanggapi panjang respon yang berbeda dari nilai payload yang dikirim client ke server. untuk menguji sebuah aplikasi apakah rentan terhadap
serangan Heartbleed atau tidak, diuji berdasarkan panjang respon yang dikirimkan URL sebuah web. Adapun lebih jelasnya tahapan proses dalam menguji aplikasi web
rentan atau tidak terhadap serangan Heartbleed dipresentasikan pada gambar 3.8.
Universitas Sumatera Utara
Gambar 3.8 Proses testing Heartbleed
Proses dari diagram alur pada gambar 3.8 dapat diperjelas sebagai berikut : 1.
Pengguna memberikan input berupa URL, seperti : http:www.example.com
2. Setelah URL diinput, maka akan dilakukan proses koneksi dengan menggunakan
socket programming untuk memastikan bahwa klien dan server sudah terhubung. 3.
Setelah klien dan server terhubung, maka akan dilanjutkan dengan proses handshake untuk mengetahui apakah server yang diinput oleh pengguna
mempunyai teknologi heartbeat yang berfungsi untuk mengecek komunikasi antara klien dan server terhubung. Proses handshake dilakukan dengan cara
mengirim hello dalam format hex ke server. Isi pesan hello yang dikirim pengguna ke server berisi proof of concept Westpoint, 2014:
Universitas Sumatera Utara
16030200dc010000d8 030253435b909d9b720bbc0cbc2b92a84897cfbd
3904cc160a8503909f770433d4de000066c014c0 0ac022c0210039003800880087c00fc005003500
84c012c008c01cc01b00160013c00dc003000ac0 13c009c01fc01e00330032009a009900450044c0
0ec004002f00960041c011c007c00cc002000500 040015001200090014001100080006000300ff01
000049000b000403000102000a00340032000e00 0d0019000b000c00180009000a00160017000800
0600070014001500040005001200130001000200 03000f0010001100230000000f000101
Bagian pertama dari isi pesan hello klien adalah pesan handshake SSL dan mendefinisikan tentang versi protokol URL dan panjang protokol. Jika server
tidak mendukung TLSv1.1 maka sebagian koneksi akan terputus Drop ini terjadi pada server yang hanya mendukung TLSv1.0 atau TLSv1.2. menurut analisa pada
januari 20144 SSLTLS, dari 1.000.000 situs terbaik. hanya 0,163 situs mendukung TLSv1.0, 0,0011 mendukung TLSv1.2 dan bug didalam OpenSSL,
2,6332 dari situs tersebut didukung TLSv1.0 dan TLSv1.2 tapi tidak TLSv1.1. Secara keseluruhan, 2.8 dari 1.000.000 situs terbaik 28.000 berpotensi rentan
terhadap Heartbleed.
16
Handshake protocol types
03 02
versi TLS 1.1
00 dc
Panjang dari protokol 4 Bagian berikutnya menjelaskan tipe dari pesan handshake, panjang dan versi TLS
klien
01
Handshake types Client Hello
00 00 d8
panjang hello
03 02
versi TLS klien 1.1 Bagian selanjutnya adalah
53 43 5b 90
Timestamp
9d 9b 72 0b bc 0c bc 2b 92 a8 48 97 cf bd 39 04 cc 16 0a 85 03 90 9f 77 04 33 d4 de
Random bytes
Universitas Sumatera Utara
dan selanjutnya mendefinisikan tentang 00
panjang session id 00 66
panjang cipher suite
c0 14 c0 0a c0 22 c0 21 00 39 00 38 00 88 00 87 c0 0f c0 05 00 35 00 84 c0 12 c0 08 c0 1c
c0 1b 00 16 00 13 c0 0d c0 03 00 0a c0 13 c0 09 c0 1f c0 1e 00 33 00 32 00 9a 00 99 00 45 00 44
c0 0e c0 04 00 2f 00 96 00 41 c0 11 c0 07 c0 0c c0 02 00 05 00 04 00 15 00 12 00 09 00 14 00 11
00 08 00 06 00 03 00 ff
Cipher suites
01
Length of compression methods
00
Compression method NULL ie no compression
00 49
Length of TLS extensions
00 0b 00 04 03 00 01 02
Eliptic curve point formats extension
00 0a 00 34 00 32 00 0e 00 0d 00 19 00 0b 00 0c 00 18 00 09 00 0a 00 16 00 17 00 08
00 06 00 07 00 14 00 15 00 04 00 05 00 12 00 13 00 01 00 02 00 03 00 0f 00 10 00 11
Elliptic curve
00 23 00 00
TLS session ticket
00 0f 00 01 01
Heartbeat extension 4.
Kemudian sistem akan membaca header hasil response hello yang dikirim olehh server dan apabila type header server = 22 dan payload =0x0e, berarti server
sudah menanggapi secara keseluruhan request dari klien. 5.
Apabila server sudah menanggapi secara keseluruhan isi dari pesan dari klien, maka sistem akan kembali mengirim pesan paket heartbleed yang juga dalam
bentuk hex.
180302000301ffff
Bagian pertama dari isi paket heartbleed adalah menjelaskan tentang tipe protokol dan versi protokol
18
TLS record is a heartbeat
03 02
TLS version 1.1 Bagian selanjutnya :
Universitas Sumatera Utara
00 03
Length
01
Heartbeat request
ffff
Payload length 16384 bytes 6.
Sistem kemudian akan membaca hasil response yang dikirim server ke pengguna. Apabila tipe dari header server seperti berikut :
type = 24 dan payload 3 maka dipastikan server vulnerable terhadap heartbleed, kemudian sistem akan menampilkan isi memori server.
type= 24 namun payload tidak lebih besar 3, maka dapat dikatakan server rentan, karena server menanggapi heartbeat dari pengguna
type = 21 atau type = 0, server error atau server good. 3.3.2 Proses memverifikasi teknologi SSL server
SSL Secure Sockets Layer sebuah teknologi yang digunakan server untuk melakukan enkripsi komunikasi antara klien dan server. SSLTLS menggunakan
algoritma kriptografi, tanda tangan digital dan sertifikasi. Teknologi yang digunakan pada SSLTLS bertujuan untuk penyandian informasi yang disebut dengan enkripsi.
Hasil enkripsi kemudian akan dibubuhkan tanda tangan digital untuk menjamin data yang dikirimkan adalah data sebenarnya dan sertifikasi untuk mengontentifikasi
server. Untuk menguji kelemahan teknologi SSLTLS yang digunakan server berdasarkan jenis algoritma yang digunakan dan jenis tanda tangan yang digunakan.
Adapun untuk lebih jelasnya tahapan proses dalam menguji aplikasi web lemah dalam teknologi SSLTLS dipresentasikan pada gambar 3.9.
Gambar 3.9 flowchart validasi SSL
Universitas Sumatera Utara
3.3.3 Proses mengecek kelemahan terkait OpenSSL pada os android device dan aplikasi mobile
OpenSSL pada android ataupun aplikasi yang terinstall didalamnya, digunakan untuk memastikan pengguna terhubung dengan server dan menjamin keamanan komunikasi
informasi antara pengguna dan server. Untuk menguji apakah android dan aplikasi rentan terhadap serangan beberapa jenis kelemahan terkait OpenSSL atau tidak
berdasarkan dengan mengetahui versi OpenSSL yang digunakan android dan tiap aplikasi yang terinstall pada android. Adapun representasi proses menguji serangan
OpenSSL terhadap android dan aplikasi adalah;
Gambar 3.10 Proses Scan device
Universitas Sumatera Utara
Proses dari diagram dapat diperjelas sebagai berikut : 1.
Ketika pengguna memilih untuk scan device, maka dilakukan pengumpulan informasi Information gathering. Sistem akan mengecek versi OpenSSL yang
terdapat pada library android yang terletak di systemlib. Akan dilakukan perintah egrep Shell Command untuk mengecek versi OpenSSL android dari library
systemliblibssl.so. 2.
Sistem kemudian akan mengecek data directory semua aplikasi yang terinstall di android, misalnya data directory aplikasi bbm : datadatacom.bbm.
3. Kemudian data directory aplikasi akan digunakan untuk mengecek apakah aplikasi
yang terinstall tersebut mempunyai library atau tidak. Letak dari library aplikasi ada di datadatacom.bbblib.
4. Jika aplikasi mempunyai library, maka sistem akan melakukan perintah egrep
untuk mengecek versi OpenSSL yang digunakan aplikasi. Sistem akan mengecekkan pada setiap library yang dimiliki aplikasi.
5. Berdasarkan versi OpenSSL yang digunakan os android dan aplikasi terinstall.
Sistem akan mengindetifikasi kelemahan apa yang rentan terhadap versi OpenSSL yang dimiliki os android dan tiap-tiap aplikasi yang terinstall pada os tersebut.
6. Sistem akan menampilkan jenis-jenis kelemahan terkait OpenSSL dan apakah os
android dan aplikasi rentan terhadap kelemahan tersebut.
3.4 Perancangan Sistem