Mobile security v3(paper)-zakiakhmad

7
Sebuah Pengantar Mobile Security: Risiko, Desain yang Aman, dan Pengujian Zaki Akhmad za at indocisc.com Penggunaan ponsel untuk tersambung ke Internet di Indonesia saat ini sudah semakin umum. Penggunaan ponsel untuk melakukan koneksi Internet ini memiliki risiko keamanan yang tersendiri, risikonya berbeda dengan penggunaan desktop atau laptop untuk koneksi Internet. Tulisan ini merupakan sebuah pengantar keamanan perangkat mobile. Tulisan ini bertujuan memberikan gambaran utuh mengenai bidang keamanan perangkat mobile tanpa turun mendetail hingga 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 karena aplikasi yang aman sebenarnya dimulai dari proses desain. Pada bagian akhir akan dipaparkan metodologi melakukan pengujian keamanan aplikasi mobile. Dimulai dengan metodologi secara umum, baru selanjutnya diikuti dengan contoh pengujian spesifik untuk suatu sistem operasi perangkat mobile tertentu. Kata Kunci: mobile security, Android, BlackBerry, iPhone 1 Pendahuluan Jakarta dengan kondisi lalu lintas yang macet membuat para penduduknya mengakses Internet dari telepon selular-nya menjadi hal yang semakin umum. Harga perangkat dan tarif Internet yang semakin terjangkau mempercepat hal ini. Bahkan informasi lalu lintas kini dapat dengan mudah diakses via handphone. Informasi yang sangat dibutuhkan bagi para penduduk Jakarta untuk membantu menentukan rute dan memperkirakan waktu tempuh perjalanan. Kondisi kualitas jaringan Internet yang tak selalu bagus, membuat perangkat BlackBerry -yang menawarkan koneksi Internet handal dengan algoritma kompresinya- laku bak kacang goreng. Hal ini ditambah lagi dengan budaya masyarakat Indonesia yang senang mengobrol sehingga dengan menggunakan BlackBerry koneksi ke social media pun jadi lebih mudah. Di sisi lain, pengembangan aplikasi mobile pun terus bermunculan. Mulai dari aplikasi yang sifatnya informasional hingga aplikasi yang bersifat transaksional. Untuk aplikasi transaksional umumnya adalah aplikasi dalam industri perbankan dan finansial. Aplikasi yang bersifat transaksional tentu disyaratkan memiliki tingkat keamanan yang dapat diterima. Penggunaan aplikasi SMS untuk mengirimkan/menerima PIN sangat rawan. Bagaimana apabila pemilik ponsel kehilangan ponselnya lalu orang lain menggunakan PIN tersebut untuk melakukan transaksi? Risiko paling mendasar dari penggunaan ponsel adalah risiko kehilangan. Apakah para pengguna ponsel sudah siap dan mengerti risiko kehilangan ponselnya? Penggunaan ponsel ini tak hanya sebatas di kalangan mahasiswa atau karyawan namun juga hingga kalangan eksekutif perusahaan. Nilai ponsel mahasiswa dan 1/7

description

 

Transcript of Mobile security v3(paper)-zakiakhmad

Page 1: Mobile security v3(paper)-zakiakhmad

Sebuah Pengantar Mobile Security:

Risiko, Desain yang Aman, dan Pengujian

Zaki Akhmad

za at indocisc.com

Penggunaan ponsel untuk tersambung ke Internet di Indonesia saat ini sudah semakin umum. Penggunaan ponsel untuk melakukan koneksi Internet ini memiliki risiko keamanan yang tersendiri, risikonya berbeda dengan penggunaan desktop atau laptop untuk koneksi Internet. Tulisan ini merupakan sebuah pengantar keamanan perangkat mobile. Tulisan ini bertujuan memberikan gambaran utuh mengenai bidang keamanan perangkat mobile tanpa turun mendetail hingga 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 karena aplikasi yang aman sebenarnya dimulai dari proses desain. Pada bagian akhir akan dipaparkan metodologi melakukan pengujian keamanan aplikasi mobile. Dimulai dengan metodologi secara umum, baru selanjutnya diikuti dengan contoh pengujian spesifik untuk suatu sistem operasi perangkat mobile tertentu.

Kata Kunci: mobile security, Android, BlackBerry, iPhone

1 PendahuluanJakarta dengan kondisi lalu lintas yang macet membuat para penduduknya mengakses Internet dari telepon selular-nya menjadi hal yang semakin umum. Harga perangkat dan tarif Internet yang semakin terjangkau mempercepat hal ini. Bahkan informasi lalu lintas kini dapat dengan mudah diakses via handphone. Informasi yang sangat dibutuhkan bagi para penduduk Jakarta untuk membantu menentukan rute dan memperkirakan waktu tempuh perjalanan.

Kondisi kualitas jaringan Internet yang tak selalu bagus, membuat perangkat BlackBerry -yang menawarkan koneksi Internet handal dengan algoritma kompresinya- laku bak kacang goreng. Hal ini ditambah lagi dengan budaya masyarakat Indonesia yang senang mengobrol sehingga dengan menggunakan BlackBerry koneksi ke social media pun jadi lebih mudah.

Di sisi lain, pengembangan aplikasi mobile pun terus bermunculan. Mulai dari aplikasi yang sifatnya informasional hingga aplikasi yang bersifat transaksional. Untuk aplikasi transaksional umumnya adalah aplikasi dalam industri perbankan dan finansial.

Aplikasi yang bersifat transaksional tentu disyaratkan memiliki tingkat keamanan yang dapat diterima. Penggunaan aplikasi SMS untuk mengirimkan/menerima PIN sangat rawan. Bagaimana apabila pemilik ponsel kehilangan ponselnya lalu orang lain menggunakan PIN tersebut untuk melakukan transaksi?

Risiko paling mendasar dari penggunaan ponsel adalah risiko kehilangan. Apakah para pengguna ponsel sudah siap dan mengerti risiko kehilangan ponselnya? Penggunaan ponsel ini tak hanya sebatas di kalangan mahasiswa atau karyawan namun juga hingga kalangan eksekutif perusahaan. Nilai ponsel mahasiswa dan

1/7

Page 2: Mobile security v3(paper)-zakiakhmad

eksekutif perusahaan bisa sama, namun tentu nilai informasinya akan lebih tinggi ponsel milik seorang direktur perusahaan. Sayangnya, security awareness kalangan eksekutif tidak selalu tinggi. Bahkan penulis pernah diceritakan bahwa seorang direksi perusahaan memberikan password email-nya kepada sekretaris untuk membantunya membaca/menerima email.

URL shortener pun bisa menjadi celah keamanan saat dibuka dari ponsel. Misalkan teman Anda menulis di akun twitternya, http://bit.ly/y678l dan mengatakan URL tersebut adalah URL fotonya di Facebook. Padahal kenyataannya URL ini mengacu pada situs yang ia buat sendiri, dengan tampilan seperti Facebook. Dengan layar yang lebih kecil & alamat URL yang tak selalu bisa dilihat, pengakses situs ini akan lebih sulit membedakan apakah ini situs facebook atau situs phishing yang mirip facebook. Dengan melakukan serangan yang dinamakan phishing ini, penyerang akan mendapatkan pasangan userid dan password.

2 Risiko Keamanan Perangkat Mobile

Sama dengan aset-aset lainnya, perangkat mobile1 memiliki risiko yang melekat dengannya . Dengan karakteristiknya yang mobile, tentu perangkat mobile memiliki risiko yang lebih bisa ster-expose ke pihak luar. Berikut ini adalah beberapa risiko-risiko keamanan pada perangkat mobile:

2.1 Risiko Fisik

Risiko fisik menjadi risiko paling mendasar yang dimiliki oleh perangkat mobile. Risiko fisik ini mulai dari akses oleh orang yang tak berhak hingga risiko kehilangan.

Akses oleh orang yang tak berhak pada perangkat mobile dapat berupa: seseorang yang berpura-pura mengatakan ingin meminjam melakukan telepon atau mengirim SMS, atau perangkat yang

1Catatan: yang dimaksud sebagai perangkat mobile dalam tulisan ini adalah ponsel pintar (smart phone) & tablet PC yang menggunakan sistem operasi mobile: Android, BlackBerry, iOS, Windows Phone, Symbian. Laptop walaupun juga bersifat mobile tidak termasuk definisi perangkat mobile dalam tulisan ini.

digeletakkan tanpa ada perlindungan keylock. Serangan yang dilakukan dapat berupa mengakses data yang tersimpan di MicroSD (misalnya) atau memasukkan malware/trojan.

Bentuk risiko fisik lainnya adalah shouldering atau melihat display perangkat mobile oleh penyerang saat berada di dekatnya. Format pengetikan password di aplikasi mobile yang menampilkan karakter aslinya sebelum menyamarkannya, membuka kemungkinan penyerang dapat mengetahui password.

Risiko kehilangan sebaiknya dari awal sudah ada di pikiran pengguna perangkat mobile saat memutuskan menggunakannya. Berbeda dengan server yang bisa diletakkan pada ruangan terkunci, tidak ada mekanisme pengamanan akses fisik untuk perangkat mobile.

Jadi, saat mendesain dari awal sudah dipertimbangkan bahwa desain sistem memungkinkan akses fisik oleh orang yang tak berhak.

2.2 Risiko Data Storage

Kekuatan komputasi laptop tentu tak sama dengan komputasi ponsel. Saat ini program enkripsi data pada ponsel masih belum sematang program enkripsi pada laptop. Misal pengguna laptop menggunakan aplikasi truecrypt untuk mengenkripsi data-nya. Apabila laptopnya hilang maka ia dapat menerima risikonya karena data-nya tetap aman dalam keadaan terenkripsi.

Kemampuan menyimpan data secara aman namun tetap memungkinkan bagi aplikasi untuk mengaksesnya menjadi persyaratan untuk keamanan perangkat mobile.

2.3 Risiko Strong Password

Katakanlah seorang pengguna aplikasi Internet Banking diharuskan memiliki password yang kuat yaitu password dengan minimal panjang karakter delapan, kombinasi huruf besar/kecil, berikut dengan kombinasi alfanumerik dan simbol. Password ini tentu akan dengan mudah diketikkan saat ia menggunakan keyboard. Lalu bagaimana ia akan mengetikkan delapan karakter password, kombinasi huruf besar huruf kecil, kombinasi alfanumerik dan simbol pada

2/7

Page 3: Mobile security v3(paper)-zakiakhmad

ponselnya? Tentu akan lebih sulit dilakukan pada keyboard ponsel: model ketik tiga kali ABC, model QWERTY, ataupun keyboard virtual touch screen;

Akibatnya ia akan memilih untuk tidak menggunakan aplikasi Internet Banking mobile saja dan dari sisi bank akan kehilangan penggunanya.

2.4 Risiko Internet Browsing

Layar ponsel tidak sebesar layar laptop. Jadi menampilkan URL secara lengkap pada ponsel dapat dikatakan nyaris takkan bisa. Hal ini akan membuat serangan phishing semakin mudah. Pengguna tidak dapat selalu melihat URL yang diaksesnya. Penyerang hanya perlu memancing pengguna membuka, misalnya menggunakan URL shortener, untuk mengarahkan ke situs palsu.

2.5 Risiko Privasi Lokasi

Bagi Gayus Tambunan saat kabur dari penjara isu lokasi akan menjadi sangat kritikal. Tentu ia tak mau tertangkap basah saat kabur dari penjara. Bagaimana apabila ponsel yang digunakan Gayus selalu mengirimkan posisi koordinat GPS-nya?

Saat ini isu privasi lokasi menjadi isu yang hangat dibicarakan. Ponsel iPhone dan Android dikabarkan mengirimkan lokasinya.

2.6 Risiko Sistem Operasi

Setiap perangkat mobile dengan masing-masing sistem operasinya tentu akan memilikinya risikonya sendiri-sendiri. Baik Android, iPhone, BlackBerry, Symbian, Windows Phone, masing-masing memiliki risiko. Risiko sistem operasi ini melekat pada perangkat mobile tersebut. Contoh risiko sistem operasi adalah jailbreak atau berusaha mendapatkan akses root pada perangkat.

3 Mobile Security Secure Design Principles

Keamanan seharusnya diawali dari awal, bukan didasarkan pada pengujian di akhir saat aplikasi

sudah diluncurkan. Berikut ini adalah beberapa prinsip-prinsip keamanan dalam mendesain aplikasi mobile:

3.1 Identifikasi dan Proteksi Data Sensitif pada Perangkat Mobile

Sebelum mendesain aplikasi mobile, lakukan identifikasi terhadap semua data yang akan diproses. Tentukan tingkat sensitivitas data. Data yang bersifat publik tidak perlu mendapatkan mekanisme pengamanan. Data yang bersifat confidential harus mendapatkan mekanisme pengamanan. Sedapat mungkin, desain aplikasi dengan data confidential tidak tersimpan di perangkat mobile. Jika tidak memungkinkan, data confidential yang tersimpan pada perangkat mobile harus terlindungi.

3.2 Pastikan Data Sensitif Terlindungi Saat Transit

Perangkat mobile memiliki beragam mode koneksi untuk tersambung ke Internet: apakah BIS, GPRS, Edge, WiFi, dst. Tidak semua mode koneksi ini terenkripsi, contoh paling sederhana adalah public wifi.

Untuk itu desain aplikasi mobile dengan menggunakan TLS/SSL (Transport Layer Security/Secure Socket Layer) saat mengirimkan/menerima data sensitif.

3.3 Jalankan Aplikasi dengan Hak Akses Minimum

Desain klien aplikasi mobile yang dapat dijalankan dengan hak akses minimum yang diperlukan. Contohnya aplikasi cukup bisa dijalankan user biasa, tidak harus sebagai admin/root; jika aplikasi tidak membutuhkan akses ke servis kamera, maka tak perlu diberikan 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.4 Ikuti Praktik Secure Coding

Kembangkan aplikasi mengikuti praktik secure coding misalnya: input validation, output

3/7

Page 4: Mobile security v3(paper)-zakiakhmad

encoding. Pengembang perlu melakukan static analysis dalam proses SDLC untuk mengetahui keamanan source code.

Lainnya, tanda tangani aplikasi saat akan mengupload (signed application) untuk menjaga integritas aplikasi.

4 Mobile Security TestingPada bagian ini akan dijelaskan metodologi pengujian keamanan aplikasi mobile. Pada bagian pertama akan disampaikan metodologi secara umum tanpa melihat sistem operasi mobile. Selanjutnya pada bagian kedua akan disampaikan secara spesifik contoh pengujian keamanan aplikasi mobile untuk beberapa sistem operasi, berikut penjelasan tools yang digunakan dalam pengujian. .

4.1 Metodologi Umum

Berikut ini adalah metodologi umum dalam melakukan pengujian aplikasi mobile.

1. Memahami proses bisnis aplikasi (Understanding application business process)

Langkah pertama yang perlu dilakukan dan akan menjadi pondasi dalam melakukan pengujian adalah dengan memahami proses bisnis aplikasi. Misalnya dengan mengetahui karakteristik aplikasi apakah berupa aplikasi transaksional atau aplikasi informasional. Aplikasi yang bersifat transaksional akan memiliki risiko finansial sementara aplikasi informasional akan memiliki risiko integritas data. Apabila penyerang memiliki motif ekonomi dalam melakukan penyerangan maka aplikasi transaksional akan dipilih untuk diserang.

2. Menguraikan aplikasi (Decomposing application)

Setelah memahami proses bisnis dilanjutkan dengan menguraikan komponen penyusun aplikasi. Apabila pengujian dilakukan dengan cara black box maka penguraian aplikasi dilakukan

dengan cara fingerprinting.

Dengan melakukan penguraian aplikasi dapat dilakukan analisis terhadap desain dan arsitektur aplikasi mobile ini. Komponen server apa saja yang terlibat berikut bagaimana aplikasi mobile didistribusikan.

3. Mengembangkan skenario serangan (Developing attack scenarios)

Susun skenario serangan-serangan yang mungkin dilakukan berikut penjelasan kondisi yang diperlukan untuk melakukan serangan tersebut. Faktor kemungkinan dan dampak dari serangan juga perlu dijelaskan agar risiko setiap serangan dapat terlihat dengan jelas.

Misalnya dari hasil penguraian aplikasi diketahui bahwa terdapat 2 server yang terlibat berikut aplikasi mobile. Skenario serangan pertama adalah melakukan serangan pada sisi server misalnya dengan melakukan: penetration testing, vulnerability assessment, web application testing, dst. Selanjutnya diikuti dengan skenario kedua yaitu mobile application assessment.

4. Menentukan prioritas risiko (Prioritizing risks)

Umumnya pengujian dilakukan dengan batasan waktu. Tentu tak semua skenario dapat dilakukan. Oleh karena itu perlu ditentukan skenario yang menjadi prioritas.

5. Melakukan pengujian (Conducting tests)

Skenario dieksekusi dengan prioritas. adalah skenario yang memiliki risiko tertinggi. Perhitungan risiko dihitung dari perkalian kemungkinan dengan dampak dari setiap skenario serangan.

6. Menganalisis hasil pengujian (Analyzing test results)

Selanjutnya hasil pengujian dianalisis, skenario serangan yang menghasilkan temuan.

7. Merekomendasikan perbaikan (Recommending fixes).

4/7

Page 5: Mobile security v3(paper)-zakiakhmad

Menyusun rekomendasi perbaikan dari temuan yang ditemukan.

4.2 Mobile Security Assessment

Mobile security assessment dapat dilakukan dengan melakukan pengujian pada aplikasi yang sedang dijalankan atau pada aplikasi yang sedang tidak dijalankan.

Berikut ini adalah metodologi pengujian aplikasi mobile dari sudut pandang pengujian dinamis atau statis.

4.2.1 Analisis Dinamik (Dynamic Analysis)

Pada pengujian dinamis, pengujian dilakukan pada aplikasi yang sedang berjalan. Pengujian dinamis dapat dilakukan dengan cara:

a. Melakukan debugging pada aplikasi. Debugging dapat dilakukan langsung pada perangkat ataupun pada emulator.

b. Melakukan analisis network traffic

c. Melakukan analisis remote services seperti HTTP/SOAP/dll

d. Menganalisis request & respond menggunakan intercepting proxy.

4.2.2 Analisis Statis (Static Analysis)

Pada pengujian statis, pengujian dilakukan dengan kondisi aplikasi tidak dijalankan. Pengujian statis dilakukan dengan menganalisis source code aplikasi. Pengujian statis dilakukan dengan cara sebagai berikut:

1. Ekstrak aplikasi dari perangkat atau dapatkan paket aplikasi dari pengembang

2. Melakukan source code review.

Jika source code memang tersedia maka tak perlu melakukan reverse engineering ataupun disassembling namun keduanya tetap boleh dilakukan untuk mengetahui risiko

apabila dilakukan oleh mereka yang tak memiliki akses pada source code.

3. Melakukan reverse engineering

4. Melakukan dissassembling

5 Contoh Pengujian Mobile Security

5.1 Pengujian dengan Analisis Dinamis

Pengujian dengan metode analisis dinamis berlaku umum tanpa melihat sistem operasi perangkat mobile. Untuk dapat menganalisis network traffic disusun skenario berikut: gunakan intercepting proxy untuk melakukan analisis terhadap network traffic aplikasi mobile dengan servernya.

Konfigurasikan koneksi perangkat mobile agar melalui interepting proxy terlebih dahulu sebelum menuju server. Lakukan analisis terhadap traffic yang lalu-lalang. Perhatikan apakah data sensitif yang terkirim dalam keadaan tak terenkripsi.

Perhatikan webservices yang dieksekusi. Lakukan scan/fuzz, jika intercepting proxy yang digunakan memiliki fitur scan/fuzz. Intercepting proxy yang dapat digunakan antara lain: Paros Proxy, OWASP ZAP Proxy, Burp Proxy.

5.2 Pengujian dengan Analisis Statis

Pengujian dengan metode analisis statis dilakukan dengan menganalisis source code. Pada binary aplikasi dilakukan reversing code untuk mendapatkan source code aplikasi tersebut.

5.2.1 Android

Jack Maninno dalam blognya menulis bagaimana cara melakukan reversing code aplikasi Android. Kebocoran dan terlalu banyak data yang terungkap seperti: kredensial, kunci enkripsi, sumber daya pada sisi server; pada sisi klien merupakan hal yang berpotensi menjadi risiko. Dengan melakukan reversing code aplikasi akan

5/7

Page 6: Mobile security v3(paper)-zakiakhmad

didapatkan source code aplikasi. Selanjutnya dari source code ini dilakukan analisis untuk mencari celah keamanan aplikasi.

Tools yang perlu digunakan untuk melakukan reversing code aplikasi Android adalah:

• Android SDK

• dex2jar

• apktool

• JD (Java Decompiler)

Langkah pertama adalah melakukan pull berkas APK aplikasi Android.

adb pull apk_file destination_directory

Berkas APK merupakan berkas dengan kompresi. Berkas APK menggunakan standar kompresi ZIP, jadi untuk mengekstraknya dapat menggunakan program untuk mengekstrak berkas ZIP.

Setelah mengekstrak berkas APK, perhatikan berkas manifest dan berkas DEX. Pada berkas manifest terdapat beragam informasi seperti: permission, intent filters.

Gunakan dex2jar untuk mengkonversi berkas dengan format DEX menjadi JAR. Selanjutnya, buka kompresi file hasil konvers dex2jar. Langkah terakhir gunakan java decompiler untuk mendapatkan source code aplikasi.

Tool lain untuk melakukan pengujian keamanan aplikasi Android adalah c-ray. C-ray adalah scanner security untuk aplikasi Android. Hasil analisis c-ray akan menunjukkan tingkat keamanan interface aplikasi Android.

Denim Group merilis program smartphonedumbapps yang berisi script perl untuk melakukan reversing code mobile application secara otomatis. Versi saat ini sudah mendukung aplikasi Android dan iPhone.

5.2.2 BlackBerry

Dr Olsen telah merilis program coddec untuk melakukan reversing code aplikasi BlackBerry. Coddec merupakan kependekan dari cod decompiler. Cod adalah ekstensi berkas aplikasi BlackBerry.

5.2.3 iPhone

Aplikasi untuk iPhone ditulis menggunakan bahasa objective-C. Untuk melakukan reversing code pada aplikasi iPhone dapat menggunakan tool otool atau class-dump-x.

6 PenutupTulisan ini merupakan pengantar keamanan perangkat mobile. Diharapkan dengan pengantar ini dapat memberikan gambaran secara utuh mengenai keamanan perangkat mobile. Pada tulisan ini tidak dilakukan pembahasan mendalam secara teknis pada suatu proses (misalnya reversing code) karena memang tujuan tulisan adalah memberikan gambaran secara utuh topik keamanan perangkat mobile.

Tulisan ini dibuat dengan mengacu pada referensi-referensi yang ada di bawah ini, untuk kemudian dipilah, dianalisis, dan disintesis menjadi satu bentuk tulisan yang utuh.

7 ReferensiBolsen. Coddec. http://drbolsen.wordpress.com/2008/07/14/coddec-released/

http://code.google.com/p/c-ray/

Dwivedi, Himanshu. “Mobile Application Security, Mc Graw Hill, 2010.

Open Web Application Security Project (OWASP). “Mobile Security Project”, https://www.owasp.org/index.php/OWASP_Mobile_Security_Project

Maninno, Jack. Reversing Android Apps, http://jack-mannino.blogspot.com/2010/09/reversing-android-apps-101.html

Shah, Kunjan. “Penetration Testing Android Applications”, Foundstone Whitepaper.

Shah, Kunjan. “Penetration Testing for iPhone/iPad Applications”, Foundstone Whitepaper.

6/7

Page 7: Mobile security v3(paper)-zakiakhmad

8 PenulisZaki Akhmad, bekerja sebagai analis di perusahaan konsultan keamanan informasi, indocisc.

7/7