Mobile security v3(paper)-zakiakhmad

1,173 views
1,059 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,173
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
60
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mobile security v3(paper)-zakiakhmad

  1. 1. Sebuah Pengantar Mobile Security: Risiko, Desain yang Aman, dan Pengujian Zaki Akhmad za at indocisc.comPenggunaan ponsel untuk tersambung ke Internet di Indonesia saat ini sudah semakin umum.Penggunaan ponsel untuk melakukan koneksi Internet ini memiliki risiko keamanan yangtersendiri, risikonya berbeda dengan penggunaan desktop atau laptop untuk koneksi Internet.Tulisan ini merupakan sebuah pengantar keamanan perangkat mobile. Tulisan ini bertujuanmemberikan gambaran utuh mengenai bidang keamanan perangkat mobile tanpa turun mendetailhingga ke tataran teknis.Tulisan ini akan dimulai dengan analisis risiko-risiko keamanan yang dimiliki perangkat mobile.Analisis risiko meliputi risiko fisik, risiko pada sistem operasi hingga risiko pada aplikasi.Selanjutnya akan dijabarkan prinsip-prinsip keamanan dalam mendesain aplikasi mobile karenaaplikasi yang aman sebenarnya dimulai dari proses desain. Pada bagian akhir akan dipaparkanmetodologi melakukan pengujian keamanan aplikasi mobile. Dimulai dengan metodologi secaraumum, baru selanjutnya diikuti dengan contoh pengujian spesifik untuk suatu sistem operasiperangkat mobile tertentu. Kata Kunci: mobile security, Android, BlackBerry, iPhone1 Pendahuluan Di sisi lain, pengembangan aplikasi mobile pun terus bermunculan. Mulai dari aplikasi yangJakarta dengan kondisi lalu lintas yang macet sifatnya informasional hingga aplikasi yangmembuat para penduduknya mengakses Internet bersifat transaksional. Untuk aplikasidari telepon selular-nya menjadi hal yang transaksional umumnya adalah aplikasi dalamsemakin umum. Harga perangkat dan tarif industri perbankan dan finansial.Internet yang semakin terjangkau mempercepathal ini. Bahkan informasi lalu lintas kini dapat Aplikasi yang bersifat transaksional tentudengan mudah diakses via handphone. Informasi disyaratkan memiliki tingkat keamanan yangyang sangat dibutuhkan bagi para penduduk dapat diterima. Penggunaan aplikasi SMS untukJakarta untuk membantu menentukan rute dan mengirimkan/menerima PIN sangat rawan.memperkirakan waktu tempuh perjalanan. Bagaimana apabila pemilik ponsel kehilangan ponselnya lalu orang lain menggunakan PINKondisi kualitas jaringan Internet yang tak selalu tersebut untuk melakukan transaksi?bagus, membuat perangkat BlackBerry -yangmenawarkan koneksi Internet handal dengan Risiko paling mendasar dari penggunaan ponselalgoritma kompresinya- laku bak kacang goreng. adalah risiko kehilangan. Apakah para penggunaHal ini ditambah lagi dengan budaya masyarakat ponsel sudah siap dan mengerti risiko kehilanganIndonesia yang senang mengobrol sehingga ponselnya? Penggunaan ponsel ini tak hanyadengan menggunakan BlackBerry koneksi ke sebatas di kalangan mahasiswa atau karyawansocial media pun jadi lebih mudah. namun juga hingga kalangan eksekutif perusahaan. Nilai ponsel mahasiswa dan 1/7
  2. 2. eksekutif perusahaan bisa sama, namun tentu nilaidigeletakkan tanpa ada perlindungan keylock.informasinya akan lebih tinggi ponsel milik Serangan yang dilakukan dapat berupaseorang direktur perusahaan. Sayangnya, security mengakses data yang tersimpan di MicroSDawareness kalangan eksekutif tidak selalu tinggi. (misalnya) atau memasukkan malware/trojan.Bahkan penulis pernah diceritakan bahwa seorangBentuk risiko fisik lainnya adalah shoulderingdireksi perusahaan memberikan password email- atau melihat display perangkat mobile olehnya kepada sekretaris untuk membantunya penyerang saat berada di dekatnya. Formatmembaca/menerima email. pengetikan password di aplikasi mobile yangURL shortener pun bisa menjadi celah keamanan menampilkan karakter aslinya sebelumsaat dibuka dari ponsel. Misalkan teman Anda menyamarkannya, membuka kemungkinanmenulis di akun twitternya, http://bit.ly/y678l dan penyerang dapat mengetahui password.mengatakan URL tersebut adalah URL fotonya di Risiko kehilangan sebaiknya dari awal sudah adaFacebook. Padahal kenyataannya URL ini di pikiran pengguna perangkat mobile saatmengacu pada situs yang ia buat sendiri, dengan memutuskan menggunakannya. Berbeda dengantampilan seperti Facebook. Dengan layar yang server yang bisa diletakkan pada ruanganlebih kecil & alamat URL yang tak selalu bisa terkunci, tidak ada mekanisme pengamanan aksesdilihat, pengakses situs ini akan lebih sulit fisik untuk perangkat mobile.membedakan apakah ini situs facebook atau situsphishing yang mirip facebook. Dengan Jadi, saat mendesain dari awal sudahmelakukan serangan yang dinamakan phishing dipertimbangkan bahwa desain sistemini, penyerang akan mendapatkan pasangan memungkinkan akses fisik oleh orang yang takuserid dan password. berhak. 2.2 Risiko Data Storage 2 Risiko Keamanan Perangkat Kekuatan komputasi laptop tentu tak sama dengan komputasi ponsel. Saat ini program Mobile enkripsi data pada ponsel masih belum sematangSama dengan aset-aset lainnya, perangkat mobile1 program enkripsi pada laptop. Misal penggunamemiliki risiko yang melekat dengannya . laptop menggunakan aplikasi truecrypt untukDengan karakteristiknya yang mobile, tentu mengenkripsi data-nya. Apabila laptopnya hilangperangkat mobile memiliki risiko yang lebih bisa maka ia dapat menerima risikonya karena data-ster-expose ke pihak luar. Berikut ini adalah nya tetap aman dalam keadaan terenkripsi.beberapa risiko-risiko keamanan pada perangkat Kemampuan menyimpan data secara amanmobile: namun tetap memungkinkan bagi aplikasi untuk mengaksesnya menjadi persyaratan untuk 2.1 Risiko Fisik keamanan perangkat mobile.Risiko fisik menjadi risiko paling mendasar yangdimiliki oleh perangkat mobile. Risiko fisik ini 2.3 Risiko Strong Passwordmulai dari akses oleh orang yang tak berhak Katakanlah seorang pengguna aplikasi Internethingga risiko kehilangan. Banking diharuskan memiliki password yang kuatAkses oleh orang yang tak berhak pada perangkat yaitu password dengan minimal panjang karaktermobile dapat berupa: seseorang yang berpura- delapan, kombinasi huruf besar/kecil, berikutpura mengatakan ingin meminjam melakukan dengan kombinasi alfanumerik dan simbol.telepon atau mengirim SMS, atau perangkat yang Password ini tentu akan dengan mudah diketikkan saat ia menggunakan keyboard. Lalu1Catatan: yang dimaksud sebagai perangkat mobile dalam tulisanini adalah ponsel pintar (smart phone) & tablet PC yang bagaimana ia akan mengetikkan delapan karaktermenggunakan sistem operasi mobile: Android, BlackBerry, iOS, password, kombinasi huruf besar huruf kecil,Windows Phone, Symbian. Laptop walaupun juga bersifat mobile kombinasi alfanumerik dan simbol padatidak termasuk definisi perangkat mobile dalam tulisan ini. 2/7
  3. 3. ponselnya? Tentu akan lebih sulit dilakukan pada sudah diluncurkan. Berikut ini adalah beberapakeyboard ponsel: model ketik tiga kali ABC, prinsip-prinsip keamanan dalam mendesainmodel QWERTY, ataupun keyboard virtual touch aplikasi mobile:screen;Akibatnya ia akan memilih untuk tidak 3.1 Identifikasi dan Proteksi Datamenggunakan aplikasi Internet Banking mobile Sensitif pada Perangkat Mobilesaja dan dari sisi bank akan kehilanganpenggunanya. Sebelum mendesain aplikasi mobile, lakukan identifikasi terhadap semua data yang akan diproses. Tentukan tingkat sensitivitas data. Data 2.4 Risiko Internet Browsing yang bersifat publik tidak perlu mendapatkanLayar ponsel tidak sebesar layar laptop. Jadi mekanisme pengamanan. Data yang bersifatmenampilkan URL secara lengkap pada ponsel confidential harus mendapatkan mekanismedapat dikatakan nyaris takkan bisa. Hal ini akan pengamanan. Sedapat mungkin, desain aplikasimembuat serangan phishing semakin mudah. dengan data confidential tidak tersimpan diPengguna tidak dapat selalu melihat URL yang perangkat mobile. Jika tidak memungkinkan, datadiaksesnya. Penyerang hanya perlu memancing confidential yang tersimpan pada perangkatpengguna membuka, misalnya menggunakan mobile harus terlindungi.URL shortener, untuk mengarahkan ke situspalsu. 3.2 Pastikan Data Sensitif Terlindungi Saat Transit2.5 Risiko Privasi Lokasi Perangkat mobile memiliki beragam modeBagi Gayus Tambunan saat kabur dari penjara isu koneksi untuk tersambung ke Internet: apakahlokasi akan menjadi sangat kritikal. Tentu ia tak BIS, GPRS, Edge, WiFi, dst. Tidak semua modemau tertangkap basah saat kabur dari penjara. koneksi ini terenkripsi, contoh paling sederhanaBagaimana apabila ponsel yang digunakan Gayus adalah public wifi.selalu mengirimkan posisi koordinat GPS-nya? Untuk itu desain aplikasi mobile denganSaat ini isu privasi lokasi menjadi isu yang hangat menggunakan TLS/SSL (Transport Layerdibicarakan. Ponsel iPhone dan Android Security/Secure Socket Layer) saatdikabarkan mengirimkan lokasinya. mengirimkan/menerima data sensitif.2.6 Risiko Sistem Operasi 3.3 Jalankan Aplikasi dengan HakSetiap perangkat mobile dengan masing-masing Akses Minimumsistem operasinya tentu akan memilikinya Desain klien aplikasi mobile yang dapatrisikonya sendiri-sendiri. Baik Android, iPhone, dijalankan dengan hak akses minimum yangBlackBerry, Symbian, Windows Phone, masing- diperlukan. Contohnya aplikasi cukup bisamasing memiliki risiko. Risiko sistem operasi ini dijalankan user biasa, tidak harus sebagaimelekat pada perangkat mobile tersebut. Contoh admin/root; jika aplikasi tidak membutuhkanrisiko sistem operasi adalah jailbreak atau akses ke servis kamera, maka tak perlu diberikanberusaha mendapatkan akses root pada perangkat. akses ke servis kamera. Model hak akses minimum ini akan meminimalisir risiko akses yang tak perlu dan memastikan aplikasi bisa berjalan dengan cara yang paling aman.3 Mobile Security Secure Design Principles 3.4 Ikuti Praktik Secure CodingKeamanan seharusnya diawali dari awal, bukan Kembangkan aplikasi mengikuti praktik securedidasarkan pada pengujian di akhir saat aplikasi coding misalnya: input validation, output 3/7
  4. 4. encoding. Pengembang perlu melakukan static dengan cara fingerprinting.analysis dalam proses SDLC untuk mengetahui Dengan melakukan penguraian aplikasikeamanan source code. dapat dilakukan analisis terhadap desainLainnya, tanda tangani aplikasi saat akan dan arsitektur aplikasi mobile ini.mengupload (signed application) untuk menjaga Komponen server apa saja yang terlibatintegritas aplikasi. berikut bagaimana aplikasi mobile didistribusikan. 3. Mengembangkan skenario serangan (Developing attack scenarios)4 Mobile Security Testing Susun skenario serangan-serangan yangPada bagian ini akan dijelaskan metodologi mungkin dilakukan berikut penjelasanpengujian keamanan aplikasi mobile. Pada bagian kondisi yang diperlukan untuk melakukanpertama akan disampaikan metodologi secara serangan tersebut. Faktor kemungkinanumum tanpa melihat sistem operasi mobile. dan dampak dari serangan juga perluSelanjutnya pada bagian kedua akan disampaikan dijelaskan agar risiko setiap serangansecara spesifik contoh pengujian keamanan dapat terlihat dengan jelas.aplikasi mobile untuk beberapa sistem operasi,berikut penjelasan tools yang digunakan dalam Misalnya dari hasil penguraian aplikasipengujian. . diketahui bahwa terdapat 2 server yang terlibat berikut aplikasi mobile. Skenario serangan pertama adalah melakukan4.1 Metodologi Umum serangan pada sisi server misalnya denganBerikut ini adalah metodologi umum dalam melakukan: penetration testing,melakukan pengujian aplikasi mobile. vulnerability assessment, web application testing, dst. Selanjutnya diikuti dengan 1. Memahami proses bisnis aplikasi skenario kedua yaitu mobile application (Understanding application business assessment. process) 4. Menentukan prioritas risiko (Prioritizing Langkah pertama yang perlu dilakukan risks) dan akan menjadi pondasi dalam melakukan pengujian adalah dengan Umumnya pengujian dilakukan dengan memahami proses bisnis aplikasi. batasan waktu. Tentu tak semua skenario Misalnya dengan mengetahui karakteristik dapat dilakukan. Oleh karena itu perlu aplikasi apakah berupa aplikasi ditentukan skenario yang menjadi transaksional atau aplikasi informasional. prioritas. Aplikasi yang bersifat transaksional akan 5. Melakukan pengujian (Conducting tests) memiliki risiko finansial sementara aplikasi informasional akan memiliki Skenario dieksekusi dengan prioritas. risiko integritas data. Apabila penyerang adalah skenario yang memiliki risiko memiliki motif ekonomi dalam tertinggi. Perhitungan risiko dihitung dari melakukan penyerangan maka aplikasi perkalian kemungkinan dengan dampak transaksional akan dipilih untuk diserang. dari setiap skenario serangan. 2. Menguraikan aplikasi (Decomposing 6. Menganalisis hasil pengujian (Analyzing application) test results) Setelah memahami proses bisnis Selanjutnya hasil pengujian dianalisis, dilanjutkan dengan menguraikan skenario serangan yang menghasilkan komponen penyusun aplikasi. Apabila temuan. pengujian dilakukan dengan cara black 7. Merekomendasikan perbaikan box maka penguraian aplikasi dilakukan (Recommending fixes). 4/7
  5. 5. Menyusun rekomendasi perbaikan dari apabila dilakukan oleh mereka yang temuan yang ditemukan. tak memiliki akses pada source code. 3. Melakukan reverse engineering4.2 Mobile Security Assessment 4. Melakukan dissassemblingMobile security assessment dapat dilakukandengan melakukan pengujian pada aplikasi yangsedang dijalankan atau pada aplikasi yang sedangtidak dijalankan. 5 Contoh Pengujian MobileBerikut ini adalah metodologi pengujian aplikasi Securitymobile dari sudut pandang pengujian dinamisatau statis. 5.1 Pengujian dengan Analisis Dinamis4.2.1 Analisis Dinamik Pengujian dengan metode analisis dinamis (Dynamic Analysis) berlaku umum tanpa melihat sistem operasi Pada pengujian dinamis, pengujian perangkat mobile. Untuk dapat menganalisis dilakukan pada aplikasi yang sedang network traffic disusun skenario berikut: gunakan berjalan. Pengujian dinamis dapat intercepting proxy untuk melakukan analisis dilakukan dengan cara: terhadap network traffic aplikasi mobile dengan servernya. a. Melakukan debugging pada aplikasi. Debugging dapat dilakukan langsung pada Konfigurasikan koneksi perangkat mobile agar perangkat ataupun pada emulator. melalui interepting proxy terlebih dahulu sebelum menuju server. Lakukan analisis terhadap traffic b. Melakukan analisis network traffic yang lalu-lalang. Perhatikan apakah data sensitif c. Melakukan analisis remote services yang terkirim dalam keadaan tak terenkripsi. seperti HTTP/SOAP/dll Perhatikan webservices yang dieksekusi. Lakukan d. Menganalisis request & respond scan/fuzz, jika intercepting proxy yang digunakan menggunakan intercepting proxy. memiliki fitur scan/fuzz. Intercepting proxy yang dapat digunakan antara lain: Paros Proxy,4.2.2 Analisis Statis (Static OWASP ZAP Proxy, Burp Proxy. Analysis) 5.2 Pengujian dengan Analisis Pada pengujian statis, pengujian dilakukan dengan kondisi aplikasi tidak Statis dijalankan. Pengujian statis dilakukan Pengujian dengan metode analisis statis dilakukan dengan menganalisis source code aplikasi. dengan menganalisis source code. Pada binary Pengujian statis dilakukan dengan cara aplikasi dilakukan reversing code untuk sebagai berikut: mendapatkan source code aplikasi tersebut. 1. Ekstrak aplikasi dari perangkat atau dapatkan paket aplikasi dari 5.2.1 Android pengembang Jack Maninno dalam blognya menulis bagaimana 2. Melakukan source code review. cara melakukan reversing code aplikasi Android. Jika source code memang tersedia Kebocoran dan terlalu banyak data yang maka tak perlu melakukan reverse terungkap seperti: kredensial, kunci enkripsi, engineering ataupun disassembling sumber daya pada sisi server; pada sisi klien namun keduanya tetap boleh merupakan hal yang berpotensi menjadi risiko. dilakukan untuk mengetahui risiko Dengan melakukan reversing code aplikasi akan 5/7
  6. 6. didapatkan source code aplikasi. Selanjutnya dari 5.2.3 iPhonesource code ini dilakukan analisis untuk mencaricelah keamanan aplikasi. Aplikasi untuk iPhone ditulis menggunakan bahasa objective-C. Untuk melakukan reversingTools yang perlu digunakan untuk melakukan code pada aplikasi iPhone dapat menggunakanreversing code aplikasi Android adalah: tool otool atau class-dump-x. • Android SDK • dex2jar • apktool 6 Penutup • JD (Java Decompiler) Tulisan ini merupakan pengantar keamanan perangkat mobile. Diharapkan dengan pengantarLangkah pertama adalah melakukan pull berkas ini dapat memberikan gambaran secara utuhAPK aplikasi Android. mengenai keamanan perangkat mobile. Padaadb pull apk_file destination_directory tulisan ini tidak dilakukan pembahasan mendalam secara teknis pada suatu proses (misalnyaBerkas APK merupakan berkas dengan kompresi. reversing code) karena memang tujuan tulisanBerkas APK menggunakan standar kompresi ZIP, adalah memberikan gambaran secara utuh topikjadi untuk mengekstraknya dapat menggunakan keamanan perangkat mobile.program untuk mengekstrak berkas ZIP. Tulisan ini dibuat dengan mengacu padaSetelah mengekstrak berkas APK, perhatikan referensi-referensi yang ada di bawah ini, untukberkas manifest dan berkas DEX. Pada berkas kemudian dipilah, dianalisis, dan disintesismanifest terdapat beragam informasi seperti: menjadi satu bentuk tulisan yang utuh.permission, intent filters.Gunakan dex2jar untuk mengkonversi berkasdengan format DEX menjadi JAR. Selanjutnya,buka kompresi file hasil konvers dex2jar. 7 ReferensiLangkah terakhir gunakan java decompiler untuk Bolsen. Coddec.mendapatkan source code aplikasi. http://drbolsen.wordpress.com/2008/07/14/coddeTool lain untuk melakukan pengujian keamanan c-released/aplikasi Android adalah c-ray. C-ray adalah http://code.google.com/p/c-ray/scanner security untuk aplikasi Android. Hasilanalisis c-ray akan menunjukkan tingkat Dwivedi, Himanshu. “Mobile Applicationkeamanan interface aplikasi Android. Security, Mc Graw Hill, 2010.Denim Group merilis program Open Web Application Security Projectsmartphonedumbapps yang berisi script perl (OWASP). “Mobile Security Project”,untuk melakukan reversing code mobile https://www.owasp.org/index.php/OWASP_Mobiapplication secara otomatis. Versi saat ini sudah le_Security_Projectmendukung aplikasi Android dan iPhone. Maninno, Jack. Reversing Android Apps, http://jack-5.2.2 BlackBerry mannino.blogspot.com/2010/09/reversing- android-apps-101.htmlDr Olsen telah merilis program coddec untukmelakukan reversing code aplikasi BlackBerry. Shah, Kunjan. “Penetration Testing AndroidCoddec merupakan kependekan dari cod Applications”, Foundstone Whitepaper.decompiler. Cod adalah ekstensi berkas aplikasi Shah, Kunjan. “Penetration Testing forBlackBerry. iPhone/iPad Applications”, Foundstone Whitepaper. 6/7
  7. 7. 8 PenulisZaki Akhmad, bekerja sebagai analis diperusahaan konsultan keamanan informasi,indocisc. 7/7

×