Proses Menguji Celah Kelemahan Aplikasi Web dan Aplikasi Mobile

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