BAB 1 PENDAHULUAN 1.1 Latar Belakang Seiring dengan perkembangan teknologi informasi yang semakin maju di era globalisasi ini membuat mobile phone menjadi bagian penting dalam kehidupan sehari-hari. Hampir seluruh masyarakat menggunakan mobile phone. Mobile phone sekarang sangat canggih dan dapat melakukan apa yang bisa dilakukan oleh komputer. Mobile phone yang seperti ini dikenal oleh masyarakat luas dengan sebutan smartphone. Smartphone memberikan fasilitas dasar yang dimiliki oleh sebuah mobile phone pada umumnya dan didukung dengan beberapa fasilitas dari sebuah komputer. Setiap smartphone dibekali dengan sebuah sistem operasi, sistem operasi itu sendiri merupakan suatu interface perantara antara user dan device yang digunakan untuk mengontrol atau mengatur device maupun aplikasi di dalamnya. Salah satu sistem operasi yang digunakan oleh smartphone adalah Android. Android adalah sistem operasi untuk smartphone berbasis Linux. Salah satu kelebihan Android dibanding sistem operasi smartphone lainnya adalah Android bersifat open source sehingga orang-orang dapat menciptakan aplikasi sesuai dengan keinginan mereka sendiri. Kemampuan Android menjadi hampir tidak terbatas karena banyak orang yang mengembangkan source code Android. Apa yang dulu hanya bisa dilakukan oleh komputer kini dapat dilakukan oleh Android sehingga 1 2 Android membuat segala pekerjaan yang dilakukan oleh komputer dapat dikerjakan secara mobile. Perkembangan teknologi yang pesat juga membuat berbagai kegiatan dapat dijangkau oleh masyarakat luas, seperti contoh melakukan hacking (cyber crime) terhadap situs-situs resmi maupun tidak resmi baik itu milik pemerintah maupun milik pribadi. Hacking yang sengaja dilakukan oleh para hacker merupakan usaha untuk mengambil identitas orang lain dan mengendalikan semua aktifitas atau melakukan remote terhadap situs yang dihack. Untuk melakukan pengamanan terhadap sebuah sistem informasi, maka kita juga harus mengetahui berbagai macam bentuk ancaman yang terjadi. Salah satu cara untuk mengetahui kelemahan sistem informasi adalah dengan menyerang diri sendiri dengan aplikasi-aplikasi hacking yang dapat diperoleh di internet. Selain aplikasi hacking yang sifatnya agresif melumpuhkan sistem yang dituju, ada juga aplikasi hacking yang sifatnya melakukan pencurian atau penyadapan data. Hal tersebut penting diketahui dan dipelajari agar sistem yang dimiliki dapat dilindungi secara efektif dan efisien. Adapun sebab masalah keamanan yang harus selalu di-monitoring antara lain yaitu ditemukannya lubang keamanan (security hole) yang baru, kesalahan konfigurasi, serta penambahan perangkat baru (hardware atau software) yang menyebabkan menurunnya tingkat security atau berubahnya metode untuk mengoperasikan sistem. Oleh karena itu penulis ingin membuat sebuah aplikasi session hijacking yang dapat berguna bagi para penetration tester dalam mencegah hacker melakukan aksinya. 3 Dalam jurnal yang berjudul “Methodology for Penetration Testing” yang ditulis oleh Farkhod Alisherov dan Feruza Sattavora (2009) yang mengatakan “Penetration testing is one of the oldest methods for assessing the security of a computer system. In the early 1970's, the Department of Defense used this method to demonstrate the security weaknesses in computer systems and to initiate the development of programs to create more secure systems. Penetration testing is increasingly used by organizations to assure the security of Information systems and services, so that security weaknesses can be fixed before they get exposed.” yang artinya penetration testing adalah salah satu metode tertua untuk menilai keamanan sebuah sistem komputer. Pada awal 1970-an, Departement of Defense menggunakan metode ini untuk menunjukkan kelemahan dari keamanan dalam sistem komputer dan untuk memulai pengembangan program untuk membuat sistem yang lebih aman. Penetration testing semakin banyak digunakan oleh organisasi untuk menjamin keamanan sistem informasi dan layanan, sehingga kelemahan keamanan bisa diperbaiki sebelum mereka bisa terkena serangan. Dapat disimpulkan bahwa penetration tester itu sendiri adalah orangorang yang melakukan evaluasi keamanan sistem komputer atau jaringan dengan mensimulasikan serangan dari sumber yang berbahaya. Sudah ada beberapa aplikasi Android yang bertujuan untuk melakukan penetration testing seperti Droidsheep, Net Scan, Wifi Kill, zAnti, Network Spoofer dan lain sebagainya. Berdasarkan berbagai aplikasi yang sudah dikembangkan, maka penulis merancang sebuah aplikasi Android yang dapat melakukan penetration testing yang memiliki fitur port scan, sniffing, session hijacking, kill connection, redirect URL dan replace image. 4 1.2 Ruang Lingkup Guna mendukung penulisan skripsi ini, berikut adalah batasan-batasan yang ada di dalam skripsi ini : Aplikasi ini dirancang untuk smartphone Android. Perancangan aplikasi penetration testing yang memiliki fitur port scan, sniffing, session hijacking, kill connection, redirect URL dan replace image. 1.3 Aplikasi ini ditujukan untuk para penetration tester. Tujuan dan Manfaat 1.3.1 Tujuan 1. Membuat sebuah aplikasi yang berguna untuk penetration testing dengan menggunakan smartphone berbasis Android. 2. Menggabungkan fitur-fitur dari beberapa aplikasi penetration testing yang sudah ada. 1.3.2 Manfaat 1. Dapat membantu penetration tester untuk penetration testing pada suatu jaringan melakukan WiFi dengan menggunakan aplikasi ini. 1.4 Metode Penelitian Metode yang digunakan dalam penulisan skripsi ini adalah sebagai berikut: 5 1.4.1 Metode Analisis 1.4.1.1 Studi Pustaka Pada tahap ini dilakukan studi pustaka dengan mengumpulkan jurnal-jurnal dan buku-buku untuk menunjang pengembangan aplikasi ini. 1.4.2 Metode Penelitian 1.4.2.1 Analisis dan Definisi Kebutuhan Tahap ini berisi mengenai kegiatan mencari kebutuhan data untuk merancang aplikasi, yaitu dengan menggunakan studi pustaka, untuk mendapatkan informasi yang dibutuhkan dalam pembuatan penelitian ini melalui berbagai media contohnya buku dan internet. 1.4.2.2 Design Sistem dan Perangkat Lunak Pada tahap ini data-data yang telah berkumpul dianalisa dengan tujuan untuk merancang arsitektur aplikasi. Metode perancangan yang digunakan adalah: 1. Metode perancangan layar, menggunakan storyboard. 2. Metode perancangan sistem, menggunakan UML yaitu, usecase diagram, activity diagram, class diagram dan sequence diagram. 3. Metode perancangan aplikasi, menggunakan Java. 1.4.2.3 Penulisan Kode Program Penulisan kode program merupakan tahap penerjemahan desain sistem yang telah dibuat kedalam bentuk 6 perintah-perintah yang dimengerti komputer dengan mempergunakan bahasa pemrograman. 1.4.2.4 Penerapan Program Setelah aplikasi diuji dan bisa berjalan sebagaimana mestinya maka aplikasi telah bisa diperkenankan kepada masyarakat. 1.5 Sistematika Penulisan BAB 1 PENDAHULUAN Pada bab ini dibahas hal-hal mengenai latar belakang, ruang lingkup, tujuan dan manfaat penelitian, metode penelitian dan sistematika penulisan. BAB 2 LANDASAN TEORI Pada bab ini membahas mengenai teori-teori yang menunjang pembuatan dan yang menjadi dasar penulisan dasar penulisan skripsi ini. BAB 3 ANALISIS DAN PERANCANGAN Pada bab ini dibahas tentang analisis aplikasi yang terdiri dari analisis user dan analisis aplikasi sejenis, rancangan aplikasi dan rancangan layar. BAB 4 IMPLEMENTASI DAN EVALUASI Pada bab ini dibahas tentang hasil penelitian meliputi spesifikasi aplikasi, prosedur operasional, tampilan layar dan evaluasi aplikasi. BAB 5 SIMPULAN DAN SARAN 7 Bab ini membahas mengenai simpulan dari penyusunan skripsi ini dan saran yang dapat berguna untuk pengembangan aplikasi ini di masa yang akan datang. 1.6 Tinjauan Pustaka Mengacu pada jurnal yang dibuat oleh Min-kyu Choi, Rosslin John, Chang-hwa Hong dan Tai-hoon Kim yang berjudul “Wireless Network Security: Vulnerabilities, Threats and Countermeasures” menjelaskan bahwa wireless network memiliki banyak keuntungan tetapi disamping itu juga rawan terhadap ancaman, misalnya sniffing, spoofing dan session hijacking. Agar dapat melakukan pengamanan dari ancaman sniffing, spoofing dan session hijacking, maka harus diketahui terlebih dahulu proses dari ancaman tersebut. Dimana hal itu dapat dilakukan dengan melakukan simulasi dengan aplikasi-aplikasi hacking yang ada sehingga wireless network yang dimiliki dapat dilindungi secara efektif dan efisien. Penjelasan mengenai sniffing itu sendiri seperti yang dijelaskan pada jurnal yang dibuat oleh Ajay Mathur, Sudhir Sharman dan Amit Mishra yang berjudul “Sniffing: A Major Threat to Secure Socket layer and its Detection” mengatakan bahwa sniffing adalah kegiatan menyadap dan atau menginspeksi paket data menggunakan sniffing software atau hardware di internet. Kegiatan ini disebut sebagai serangan sekuriti pasif dengan cara membaca data yang berkeliaran di internet, dan memfilter khusus untuk host tujuan tertentu. Jadi kegiatan ini tidak melakukan apa-apa terhadap data, tidak merubah dan tidak memanipulasi melainkan hanya menyadap. Sniffing digunakan untuk mendapatkan informasi seperti password, data-data rahasia 8 dan lainnya. Sering digunakan para analyst networking, baik dari kalangan developer maupun network administrator untuk melakukan troubleshooting. Berbeda dengan spoofing yang telah dijelaskan oleh V. Shyamaladevi dan Wahida Banu dalam jurnal yang berjudul “Detection of Spoofing Attacks” yaitu spoofing merupakan aksi pemalsuan identitas. IP spoofing merupakan teknik yang digunakan bagi penyelundup untuk mengakses sebuah network dengan mengirimkan paket atau pesan dari sebuah komputer yang mengindikasikan bahwa paket atau pesan tersebut berasal dari host yang terpercaya. Untuk melakukan aksi ini para penyelundup menggunakan teknik yang bermacam-macam dan spoofing sendiri merupakan salah satu bagian dari proses penyerangan. Dan penjelasan mengenai session hijacking seperti yang dijelaskan pada jurnal yang dibuat oleh Ramesh Babu, Lalitha Bhaskari, dan Mohan Rao yang berjudul “A Survey on Session Hijacking” mengatakan bahwa session hijacking merupakan aksi pengambilan kendali session milik user lain setelah sebelumnya “pembajak” berhasil memperoleh autentifikasi ID session yang biasanya tersimpan dalam cookies. Session hijacking menggunakan metode captured, brute forced atau reserve enggineered guna memperoleh ID session, yang untuk selanjutnya memegang kendali atas session yang dimiliki oleh user lain tersebut selama session berlangsung. HTTP merupakan protokol yang stateless, sehingga perancang aplikasi mengembangkan suatu cara untuk menelusuri suatu state diantara user-user yang koneksi secara multiple. Aplikasi menggunakan session untuk menyimpan parameterparameter yang relevan terhadap user. Session akan terus ada pada server selama user masih aktif atau terkoneksi. Session akan otomatis dihapus jika 9 user logout atau melampaui batas waktu koneksi. Karena sifatnya ini, session dapat dimanfaatkan oleh seorang hacker untuk melakukan session hijacking. Session itu sendiri menurut Septi Andryana dalam jurnal “Hijacking Session pada Sistem Keamanan Komputer” adalah variabel yang dapat mempertahankan isinya dalam periode waktu tertentu dan disimpan diserver. Meskipun berpindah-pindah halaman (dalam satu website tersebut) variabel masih bertahan. Jadi session hanyalah sebuah variabel dengan karakteristik tertentu. Sebelum kami memulai untuk membuat aplikasi ini, sudah ada penelitian yang dilakukan oleh Andreas Koch dalam Bachelor Thesis yang dia buat yang berjudul “Session Hijacking on Android Device” pada tahun 2011, dia menghasilkan aplikasi Droidsheep yaitu aplikasi Android untuk melakukan penetration testing dengan session hijacking. Aplikasi yang akan dibuat oleh penulis adalah juga aplikasi untuk melakukan penetration testing tetapi tidak hanya bisa melakukan session hijacking melainkan juga bisa port scan, kill connection, sniffing, redirect URL dan replace image.