BAB I PENDAHULUAN 1.1
Latar Belakang
Layanan komunikasi Instant Messaging menyediakan berbagai fitur komunikasi yang bisa digunakan oleh pengguna, diantaranya adalah text messaging (pesan teks) baik online maupun offline. Salah satu standar protokol yang mendukung layanan ini adalah XMPP (Extensible Messaging and Presence Protocol). Protokol XMPP bekerja dengan cara mengirimkan pesan berupa potongan-potongan (subset dari child tingkat pertama) dokumen XML (Extensible Markup Language) yang disebut sebagai stanza. Karena aliran komunikasi XMPP menggunakan potongan-potongan dokumen XML, maka komunikasi ini rentan terhadap serangan pasif dari keamanan komunikasi yaitu serangan oleh pihak ketiga dengan memonitor lalu-lintas data dengan tujuan untuk mengetahui konten informasi yang sedang dikirimkan. Secara umum untuk melindungi konten komunikasi agar tidak diketahui oleh pihak ketiga XMPP bisa menggunakan teknik enkripsi (Transport Layer Security). Dalam penelitian ini, pendekatan yang digunakan untuk merahasiakan konten pesan adalah dengan menyembunyikan pesan yang dikirim selama sesi komunikasi XMPP berlangsung menggunakan pendekatan komunikasi covert channel. Covert channel itu sendiri bisa diartikan sebagai sebuah serangan dimana dua entitas dapat berkomunikasi dengan memanipulasi sumber daya bersama dengan cara-cara yang tidak diinginkan, dan bisa membahayakan aset penting (dalam hal ini adalah informasi) (Okhravi et al., 2010). Penyerang menggunakan mekanisme yang tidak diperuntukkan bagi komunikasi untuk membocorkan informasi sensitif, sehingga menyebabkan pelanggaran terhadap kebijakan arus informasi. Pada praktiknya covert channel berbasis jaringan komputer bisa mengeksploitasi field yang tidak digunakan atau tidak sensitif dari paket yang bekerja saat ini (misal, header, payload pada paket menggunakan protokol tertentu), spesifikasi dan properti protokol (ketika update route, mekanisme fragmentasi), timing dari paket (waktu kedatangan atau jitter) untuk mengirim bit secara tersembunyi. Pada dasarnya protokol komunikasi XMPP bisa berdiri sendiri. Tetapi untuk mengakomodir komunikasi dengan menggunakan aplikasi berbasis browser maka bisa menggunakan protokol WebSocket. Aplikasi berbasis browser adalah aplikasi
1
2
yang berjalan pada web browser. Aplikasi ini dibuat dengan menggunakan bahasa pemrograman yang didukung oleh browser (bisa terdiri dari kombinasi Javascript, HTML dan CSS) dan bergantung pada web browser untuk menampilkan dan menjalankan aplikasi. WebSocket itu sendiri adalah protokol yang menyediakan saluran komunikasi full-duplex, dan digunakan untuk menyediakan mekanisme komunikasi bagi aplikasi berbasis browser yang membutuhkan komunikasi dua arah dengan server, dimana tidak bergantung pada keharusan membuka beberapa koneksi HTTP pada saat komunikasi sedang berlangsung. Jika unit dasar dari framing pada XMPP disebut sebagai stanza, maka unit dasar pada WebSocket disebut sebagai message (Stout et al., 2014). Secara umum struktur framing pada WebSocket terdiri dari header dan payload yang nantinya membawa message dari klien ke server atau sebaliknya. IETF merekomendasikan penggunaan frame masking pada komunikasi WebSocket dari klien ke server (Fette dan Melnikov, 2011). Penggunaaan masking bertujuan untuk mengantisipasi ancaman yang muncul berupa serangan cache poisoning pada proxy (Huang et al., 2011). Masking-key dibuat oleh klien dan nilainya bisa berubah, sehingga masking terhadap payload akan selalu berubah-ubah sesuai dengan nilai masking-key yang digunakan tiap pengiriman paket. Disatu sisi penggunaan masking-key bisa menutupi celah keamanan yang diakibatkan oleh cache poisoning karena menghasilkan payload yang selalu berubah, disisi lain hal ini berpotensi digunakan untuk membangun covert channel. Dari uraian diatas maka diusulkan penelitian yang bertujuan untuk mencoba membangun sebuah komunikasi covert channel memanfaatkan protokol WebSocket pada komunikasi messaging XMPP. Pendekatan yang dilakukan adalah dengan memanfaatkan field masking-key yang tidak sensitif terhadap perubahan data sehingga memungkinkan untuk dimanipulasi untuk tujuan membangun Covert channel.
1.2
Rumusan Masalah
Berdasarkan latar belakang yang telah dipaparkan, rumusan permasalahan yang akan dikaji dalam penelitian ini adalah, bagaimana membangun covert channel pada aplikasi komunikasi XMPP berbasis web dengan memanfaatkan protokol WebSocket untuk mengirim pesan secara tersembunyi.
3
1.3
Batasan Masalah
1. Informasi tersembunyi dikirimkan secara satu arah (komunikasi satu arah antara pengirim dan penerima). 2. Mengirimkan informasi tersembunyi dalam bentuk teks atau file. 3. Klien yang berkomunikasi menggunakan teknologi perangkat komputer desktop (notebook). 1.4
Keaslian Penelitian
Dalam penelitian ini pemanfaatan covert channel digunakan untuk mengirimkan pesan tersembunyi pada komunikasi aplikasi XMPP berbasis web menggunakan protokol WebSocket, tanpa merubah struktur protokol XMPP yang digunakan saat komunikasi berlangsung. Covert channel yang diajukan dalam penelitian ini menggunakan pendekatan memanipulasi header pada protokol WebSocket. Hal ini mungkin dilakukan karena karakteristik dari komunikasi WebSocket itu sendiri. Pada umumnya komunikasi pada WebSocket mengharuskan penggunaan masking pada payload-nya dengan tujuan untuk mengantisipasi cache poisoning pada proxy yang dilewatinya. Untuk melakukan masking maka perlu nilai kunci masking pada field masking-key, dan tiap paket yang dikirim nilai kunci berubah, sehingga payload juga akan berubah. Sifat inilah yang nantinya akan coba dimanfaatkan sebagai media pembawa pesan tersembunyi. Berdasarkan referensi yang dimiliki penelitian tentang covert channel yang memanfaatkan protokol WebSocket belum pernah dilakukan, tetapi metode pendekatan yang digunakan untuk membangun covert channel dengan memanfaatkan field header sudah pernah dilakukan (Rowland, 1997)(Giffin et al., 2002)(Zander et al., 2006)(Ji et al., 2010), dan penelitian yang menggunakan covert channel untuk membuat aplikasi pengiriman dan penerimaan file dan pesan pernah dilakukan oleh Trabelsi dan Jawhar (2010). 1.5
Tujuan Penelitian
Tujuan yang ingin dicapai dalam penelitian ini adalah membangun sebuah sistem covert channel pada komunikasi messaging XMPP dengan memanfaatkan field masking-key pada header protokol WebSocket untuk mengirim pesan tersembunyi.
4
1.6
Manfaat Penelitian
Dengan adanya penelitian ini diharapkan bisa mengetahui bagaimana protokol WebSocket bisa digunakan untuk mengirimkan pesan covert channel. Hal ini bertujuan untuk mengirimkan informasi secara tersembunyi dari pihak yang seharusnya tidak mempunyai akses terhadap informasi tersebut. 1.7
Metodologi Penelitian Penelitian ini dilakukan dengan mengikuti langkah-langkah sebagai berikut:
1. Mempelajari pustaka dan literatur acuan Tahap ini dilakukan dengan membaca dan memahami sumber-sumber tertulis seperti buku teks, jurnal, karya ilmiah dan draf standar protokol yang terkait dengan penelitian covert channel dan WebSocket. 2. Penyusunan Proposal Berdasarkan studi pustaka dan literatur maka disusun proposal penelitian. 3. Analisis Kegiatan analisa meliputi analisa struktur protokol WebSocket, sepesifikasi perangkat lunak dan analisa fungsi yang dibutuhkan. 4. Perancangan Perancangan arsitektur komunikasi Covert Channel pada aliran komunikasi XMPP. 5. Implementasi Implementasi dalam komunikasi Covert Channel berupa prototipe aplikasi menggunakan bahasa pemrograman Nodejs dan library ws (implementasi WebSocket pada nodejs), node-bosh-xmpp (implementasi WebSocket gateway untuk komunikasi XMPP diatas protokol WebSocket), node-webkit (implementasi webkit pada nodejs sebagai antarmuka aplikasi web pada desktop). 6. Pengujian Pengujian akan dilakukan menggunakan link jaringan dengan tingkat loss dan delay yang berbeda, dan juga menggunakan multipath komunikasi. Tujuannya adalah mengetahui bagaimana covert channel jika diimplementasikan pada
5
komunikasi jaringan dengan kondisi link dengan tingkat delay dan loss berbeda, serta apakah komunikasi melewati multipath juga berpengaruh terhadap covert channel yang dibangun. Tolak ukur pengujian ada di kinerja pengiriman. Kinerja pengiriman disini adalah bahwa prototipe bisa menyediakan Covert Channel dan berhasil dalam mengirimkan potongan pesan covert channel secara utuh dari pengirim ke penerima. 1.8
Sistematika Penulisan
1. Bab I Pendahuluan Pada bab ini akan menguraikan secara singkat mengenai latar belakang masalah, perumusan masalah, batasan masalah, keaslian penelitaian, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan 2. Bab II Tinjauan Pustaka Pada bab ini membahas tinjauan pustaka yang digunakan sebagai bahan rujukan dalam penelitian ini. 3. Bab III Landasan Teori Pada bab ini menguraikan teori dasar yang berkaitan dengan penelitian yang dilakukan dan akan menjadi dasar dalam pemecahan masalah. 4. Bab IV Analisa Dan Rancangan Pada bab ini akan menguraikan analisa terkait sistem covert channel yang akan dibangun, bagaimana pesan dipersiapkan kemudian dikirim dari pengirim ke server, serta bagaimana pesan diterima dari server sehingga pesan tadi bisa diterima dengan baik oleh penerima. 5. Bab V Implementasi Pada bab ini akan membahas implementasi sistem yang dibangun. 6. Bab VI Hasil dan Pembahasan Pada bab ini akan berisi Hasil ujicoba dan pembahasan dari hasil penelitian. 7. Bab VII Penutup Pada bab ini akan berisi kesimpulan dari hasil penelitian serta saran untuk penelitian lebih lanjut.