Pengantar Mobile Security :Risiko, Desain yang Aman, dan Pengujian                               Zaki Akhmad              ...
ponsel. Informasi yang sangat dibutuhkan bagi para penduduk Jakarta un-tuk membantu menentukan rute dan memperkirakan wakt...
2        Risiko Keamanan Perangkat MobileSama dengan aset-aset lainnya, perangkat mobile memiliki risiko yang melekatdenga...
pat menerima risikonya karena data yang sensitif tetap aman dalam keadaanterenkripsi. Kemampuan menyimpan data secara aman...
2.6   Risiko Sistem OperasiSetiap perangkat mobile dengan masing-masing sistem operasinya tentuakan memilikinya risikonya ...
tidak harus sebagai admin/root; jika aplikasi tidak membutuhkan akses keservis kamera, maka tak perlu diberikan akses ke s...
2. Menguraikan aplikasi (Decomposing application)  Setelah memahami proses bisnis dilanjutkan dengan menguraikan kom-  pon...
4.2     Mobile Security AssessmentMobile security assessment dapat dilakukan dengan melakukan pengujianpada aplikasi yang ...
5        Contoh Pengujian Mobile Security5.1       Pengujian dengan Analisis DinamisPengujian dengan metode analisis dinam...
• apktool    • JD (Java Decompiler)    Langkah pertama adalah melakukan pull berkas APK aplikasi Android.adb pull apk_file...
keamanan perangkat mobile. Pada tulisan ini tidak dilakukan pembahasanmendalam secara teknis pada suatu proses (misalnya r...
Upcoming SlideShare
Loading in …5
×

Pengantar Mobile Security

3,926 views

Published on

Pengantar Mobile Security: Risiko, Desain yang Aman, dan Pengujian - Zaki Akhmad

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

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

No notes for slide

Pengantar Mobile Security

  1. 1. Pengantar Mobile Security :Risiko, Desain yang Aman, dan Pengujian Zaki Akhmad za at indocisc.co.id Paper idsecconf2011 Penggunaan ponsel untuk tersambung ke Internet di Indonesia saat inisudah semakin umum. Penggunaan ponsel untuk melakukan koneksi In-ternet ini memiliki risiko keamanan tersendiri. Risiko ini berbeda denganpenggunaan desktop atau laptop untuk koneksi Internet. Tulisan ini meru-pakan sebuah pengantar keamanan perangkat mobile. Tulisan ini bertujuanmemberikan gambaran umum mengenai bidang keamanan perangkat mobiletanpa terlalu turun mendetail hingga ke tataran teknis. Tulisan ini akan dimulai dengan analisis risiko-risiko keamanan yangdimiliki perangkat mobile. Analisis risiko meliputi risiko fisik, risiko sistemoperasi hingga risiko aplikasi. Selanjutnya akan dijabarkan prinsip-prinsipkeamanan dalam mendesain aplikasi mobile karena aplikasi yang aman sebe-narnya dimulai dari proses desain. Pada bagian akhir akan dipaparkanmetodologi melakukan pengujian keamanan aplikasi mobile. Dimulai denganmetodologi secara umum, baru selanjutnya diikuti dengan contoh pengujianspesifik untuk suatu sistem operasi perangkat mobile tertentu. Kata Kunci: mobile security, Android, BlackBerry, iPhone1 PendahuluanJakarta dengan kondisi lalu lintas yang macet membuat para penduduknyamengakses Internet dari telepon selular-nya menjadi hal yang semakin umum.Harga perangkat dan tarif Internet yang semakin terjangkau mempercepathal ini. Bahkan informasi lalu lintas kini dapat dengan mudah diakses via 1
  2. 2. ponsel. Informasi yang sangat dibutuhkan bagi para penduduk Jakarta un-tuk membantu menentukan rute dan memperkirakan waktu tempuh per-jalanan. Kondisi kualitas jaringan Internet yang tak selalu bagus, membuat perangkatBlackBerry -yang menawarkan koneksi Internet handal dengan algoritmakompresinya- laku bak kacang goreng. Hal ini ditambah lagi dengan bu-daya masyarakat Indonesia yang senang mengobrol sehingga dengan meng-gunakan BlackBerry koneksi ke social media pun jadi lebih mudah. Di sisilain, pengembangan aplikasi mobile pun terus bermunculan. Mulai dari ap-likasi yang sifatnya informasional hingga aplikasi yang bersifat transaksional.Untuk aplikasi transaksional umumnya adalah aplikasi dalam industri per-bankan dan finansial. Aplikasi yang bersifat transaksional tentu disyaratkan memiliki tingkatkeamanan yang dapat diterima. Penggunaan aplikasi SMS untuk men-girimkan/menerima PIN sangat rawan. Bagaimana apabila pemilik pon-sel kehilangan ponselnya lalu orang lain menggunakan PIN tersebut un-tuk melakukan transaksi? Risiko paling mendasar dari penggunaan ponseladalah risiko kehilangan. Apakah para pengguna ponsel sudah siap danmengerti risiko kehilangan ponselnya? Penggunaan ponsel ini tak hanya se-batas di kalangan mahasiswa atau karyawan namun juga hingga kalanganeksekutif perusahaan. Nilai ponsel mahasiswa dan eksekutif perusahaan bisasama, namun tentu nilai informasinya akan lebih tinggi ponsel milik seorangdirektur perusahaan. Sayangnya, security awareness kalangan eksekutif tidak selalu tinggi.Bahkan penulis pernah diceritakan bahwa seorang direksi perusahaan mem-berikan password email -nya kepada sekretaris untuk membantunya mem-baca/menerima email. URL shortener pun bisa menjadi celah keamanansaat dibuka dari ponsel. Misalkan teman Anda menulis di akun twitternya,http://bit.ly/y678l dan mengatakan URL tersebut adalah URL fotonya diFacebook. Padahal kenyataannya URL ini mengacu pada situs yang ia buatsendiri, dengan tampilan seperti Facebook. Dengan layar yang lebih kecil &alamat URL yang tak selalu bisa dilihat, pengakses situs ini akan lebih sulitmembedakan apakah ini situs facebook atau situs phishing yang mirip face-book. Dengan melakukan serangan yang dinamakan phishing ini, penyerangakan mendapatkan pasangan userid dan password. 2
  3. 3. 2 Risiko Keamanan Perangkat MobileSama dengan aset-aset lainnya, perangkat mobile memiliki risiko yang melekatdengannya. Dengan karakteristiknya yang mobile, tentu perangkat mobilememiliki risiko yang lebih bisa ter-expose ke pihak luar. Berikut ini adalahbeberapa risiko-risiko keamanan pada perangkat mobile 1 :2.1 Risiko FisikRisiko fisik menjadi risiko paling mendasar yang dimiliki oleh perangkatmobile. Risiko fisik ini mulai dari akses oleh orang yang tak berhak hinggarisiko kehilangan. Akses oleh orang yang tak berhak pada perangkat mobiledapat berupa: seseorang yang berpura-pura mengatakan ingin meminjammelakukan telepon atau mengirim SMS, atau perangkat yang digeletakkantanpa ada perlindungan keylock. Serangan yang dilakukan dapat berupamengakses data yang tersimpan di MicroSD (misalnya) atau memasukkanmalware/trojan. Bentuk risiko fisik lainnya adalah shouldering atau melihat display perangkatmobile oleh penyerang saat berada di dekatnya. Format pengetikan pass-word di aplikasi mobile yang menampilkan karakter aslinya sebelum menya-markannya, membuka kemungkinan penyerang dapat mengetahui password. Risiko kehilangan sebaiknya dari awal sudah ada di pikiran penggunaperangkat mobile saat memutuskan menggunakannya. Berbeda dengan serveryang bisa diletakkan pada ruangan terkunci, tidak ada mekanisme penga-manan akses fisik untuk perangkat mobile. Jadi, saat mendesain dari awalsudah dipertimbangkan bahwa desain sistem memungkinkan akses fisik olehorang yang tak berhak.2.2 Risiko Data StorageKekuatan komputasi laptop tentu tak sama dengan komputasi ponsel. Saatini program enkripsi data pada ponsel masih belum sematang programenkripsi pada laptop. Misal pengguna laptop menggunakan aplikasi true-crypt2 untuk mengenkripsi data-nya. Apabila laptop-nya hilang maka ia da- 1 Yang dimaksud sebagai perangkat mobile dalam tulisan ini adalah ponsel pintar(smart phone) & tablet PC yang menggunakan sistem operasi mobile: Android, Black-Berry, iOS, Windows Phone, Symbian. Laptop walaupun juga bersifat mobile tidak ter-masuk definisi perangkat mobile dalam tulisan ini. 2 http://www.truecrypt.org 3
  4. 4. pat menerima risikonya karena data yang sensitif tetap aman dalam keadaanterenkripsi. Kemampuan menyimpan data secara aman namun tetap memu-ngkinkan bagi aplikasi untuk mengaksesnya menjadi persyaratan untuk kea-manan perangkat mobile.2.3 Risiko Strong PasswordKatakanlah seorang pengguna aplikasi Internet Banking diharuskan memi-liki password yang kuat yaitu password dengan minimal panjang karakterdelapan, kombinasi huruf besar/kecil, berikut dengan kombinasi numerikdan simbol. Password ini tentu akan dengan mudah diketikkan saat ia meng-gunakan keyboard di laptop/desktop. Lalu bagaimana ia akan mengetikkandelapan karakter password, kombinasi huruf besar huruf kecil, kombinasinumerik dan simbol pada ponselnya? Tentu akan lebih sulit dilakukan padakeyboard ponsel: model ketik tiga kali ABC, model QWERTY, ataupun vir-tual touch screen keyboard ; Akibatnya ia akan memilih untuk tidak meng-gunakan aplikasi Internet Banking mobile saja dan dari sisi bank akan ke-hilangan penggunanya.2.4 Risiko Internet BrowsingLayar ponsel tidak sebesar layar laptop. Jadi menampilkan URL secaralengkap pada ponsel dapat dikatakan nyaris takkan bisa. Hal ini akan mem-buat serangan phishing semakin mudah. Pengguna tidak dapat selalu meli-hat URL yang diaksesnya. Penyerang hanya perlu memancing penggunamembuka, misalnya menggunakan URL shortener, untuk mengarahkan kesitus palsu.2.5 Risiko Privasi LokasiBagi Gayus Tambunan saat kabur dari penjara isu lokasi akan menjadi san-gat kritikal. Tentu ia tak mau tertangkap basah saat kabur dari penjara.Bagaimana apabila ponsel yang digunakan Gayus selalu mengirimkan po-sisi koordinat GPS-nya? Saat ini isu privasi lokasi menjadi isu yang hangatdibicarakan. Ponsel iPhone dan Android dikabarkan mengirimkan lokasinya. 4
  5. 5. 2.6 Risiko Sistem OperasiSetiap perangkat mobile dengan masing-masing sistem operasinya tentuakan memilikinya risikonya sendiri-sendiri. Baik Android, iPhone, Black-Berry, Symbian, Windows Phone, masing-masing memiliki risiko. Risikosistem operasi ini melekat pada perangkat mobile tersebut. Contoh risikosistem operasi adalah jailbreaks atau berusaha mendapatkan akses root padaperangkat.3 Mobile Security Secure Design PrinciplesKeamanan seharusnya diawali dari awal, bukan didasarkan pada pengu-jian di akhir saat aplikasi sudah diluncurkan. Berikut ini adalah beberapaprinsip-prinsip keamanan dalam mendesain aplikasi mobile:3.1 Identifikasi dan Proteksi Data Sensitif pada Perangkat MobileSebelum mendesain aplikasi mobile, lakukan identifikasi terhadap semuadata yang akan diproses. Tentukan tingkat sensitivitas data. Data yangbersifat publik tidak perlu mendapatkan mekanisme pengamanan. Datayang bersifat confidential harus mendapatkan mekanisme pengamanan. Seda-pat mungkin, desain aplikasi dengan data confidential tidak tersimpan diperangkat mobile. Jika tidak memungkinkan, data confidential yang tersim-pan pada perangkat mobile harus terlindungi.3.2 Pastikan Data Sensitif Terlindungi Saat TransitPerangkat mobile memiliki beragam mode koneksi untuk tersambung ke In-ternet: apakah BIS, GPRS, Edge, WiFi, dst. Tidak semua mode koneksiini terenkripsi, contoh paling sederhana adalah public wifi. Untuk itu de-sain aplikasi mobile dengan menggunakan TLS/SSL (Transport Layer Secu-rity/Secure Socket Layer) saat mengirimkan/menerima data sensitif.3.3 Jalankan Aplikasi dengan Hak Akses MinimumDesain klien aplikasi mobile yang dapat dijalankan dengan hak akses mini-mum yang diperlukan. Contohnya aplikasi cukup bisa dijalankan user biasa, 5
  6. 6. tidak harus sebagai admin/root; jika aplikasi tidak membutuhkan akses keservis kamera, maka tak perlu diberikan akses ke servis kamera. Modelhak akses minimum ini akan meminimalisir risiko akses yang tak perlu danmemastikan aplikasi bisa berjalan dengan cara yang paling aman.3.4 Ikuti Praktik Secure CodingKembangkan aplikasi mengikuti praktik secure coding misalnya: input vali-dation, output encoding. Pengembang perlu melakukan static analysis dalamproses SDLC untuk mengetahui keamanan source code. Lainnya, tanda tan-gani aplikasi saat akan mengunggah (signed application) untuk menjaga in-tegritas aplikasi.4 Mobile Security TestingPada bagian ini akan dijelaskan metodologi pengujian keamanan aplikasimobile. Pada bagian pertama akan disampaikan metodologi secara umumtanpa melihat sistem operasi mobile. Selanjutnya pada bagian kedua akandisampaikan secara spesifik contoh pengujian keamanan aplikasi mobile un-tuk beberapa sistem operasi, berikut penjelasan tools yang digunakan dalampengujian.4.1 Metodologi UmumBerikut ini adalah metodologi umum dalam melakukan pengujian aplikasimobile: 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. 6
  7. 7. 2. Menguraikan aplikasi (Decomposing application) Setelah memahami proses bisnis dilanjutkan dengan menguraikan kom- ponen penyusun aplikasi. Apabila pengujian dilakukan dengan cara black box maka penguraian aplikasi dilakukan dengan cara fingerprint- ing. Dengan melakukan penguraian aplikasi dapat dilakukan anal- isis terhadap desain dan arsitektur aplikasi mobile ini. Komponen server apa saja yang terlibat berikut bagaimana aplikasi mobile didis- tribusikan.3. Mengembangkan skenario serangan (Developing attack scenarios) Susun skenario serangan-serangan yang mungkin dilakukan berikut penjelasan kondisi yang diperlukan untuk melakukan serangan terse- but. Faktor kemungkinan dan dampak dari serangan juga perlu dije- laskan agar risiko setiap serangan dapat terlihat dengan jelas. Misal- nya 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: pen- etration 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 se- mua skenario dapat dilakukan. Oleh karena itu perlu ditentukan ske- nario yang menjadi prioritas.5. Melakukan pengujian (Conducting tests) Skenario dieksekusi dengan prioritas. adalah skenario yang memiliki risiko tertinggi. Perhitungan risiko dihitung dari perkalian kemungki- nan dengan dampak dari setiap skenario serangan.6. Menganalisis hasil pengujian (Analyzing test results) Selanjutnya hasil pengujian dianalisis, skenario serangan yang meng- hasilkan temuan.7. Merekomendasikan perbaikan (Recommending fixes). Menyusun rekomendasi perbaikan dari temuan yang ditemukan. 7
  8. 8. 4.2 Mobile Security AssessmentMobile security assessment dapat dilakukan dengan melakukan pengujianpada aplikasi yang sedang dijalankan atau pada aplikasi yang sedang tidakdijalankan. Berikut ini adalah metodologi pengujian aplikasi mobile darisudut pandang pengujian dinamis atau statis.4.2.1 Analisis Dinamik (Dynamic Analysis)Pada pengujian dinamis, pengujian dilakukan pada aplikasi yang sedangberjalan. Pengujian dinamis dapat dilakukan dengan cara: • Melakukan debugging pada aplikasi. Debugging dapat dilakukan lang- sung pada perangkat ataupun pada emulator. • Melakukan analisis network traffic • Melakukan analisis remote services seperti HTTP/SOAP/dll • Menganalisis request & respond menggunakan intercepting proxy.4.2.2 Analisis Statis (Static Analysis)Pada pengujian statis, pengujian dilakukan dengan kondisi aplikasi tidakdijalankan. Pengujian statis dilakukan dengan menganalisis source code ap-likasi. 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 di- lakukan untuk mengetahui risiko apabila dilakukan oleh mereka yang tak memiliki akses pada source code. 3. Melakukan reverse engineering 4. Melakukan dissassembling 8
  9. 9. 5 Contoh Pengujian Mobile Security5.1 Pengujian dengan Analisis DinamisPengujian dengan metode analisis dinamis berlaku umum tanpa melihatsistem operasi perangkat mobile. Untuk dapat menganalisis network traf-fic disusun skenario berikut: gunakan intercepting proxy untuk melakukananalisis terhadap network traffic aplikasi mobile dengan servernya. Konfigurasikan koneksi perangkat mobile agar melalui interepting proxyterlebih dahulu sebelum menuju server. Lakukan analisis terhadap traf-fic yang lalu-lalang. Perhatikan apakah data sensitif yang terkirim dalamkeadaan tak terenkripsi. Perhatikan webservices yang dieksekusi. Lakukanscan/fuzz, jika intercepting proxy yang digunakan memiliki fitur scan/fuzz.Intercepting proxy yang dapat digunakan antara lain: Paros Proxy3 , OWASPZAP Proxy4 , Burp Proxy5 .5.2 Pengujian dengan Analisis StatisPengujian dengan metode analisis statis dilakukan dengan menganalisis sourcecode. Pada binary aplikasi dilakukan reversing code untuk mendapatkansource code aplikasi tersebut.5.2.1 AndroidJack Maninno dalam blognya menulis bagaimana cara melakukan reversingcode aplikasi Android. Kebocoran dan terlalu banyak data yang terungkapseperti: kredensial, kunci enkripsi, sumber daya pada sisi server; pada sisiklien merupakan hal yang berpotensi menjadi risiko. Dengan melakukan re-versing code aplikasi akan didapatkan source code aplikasi. Selanjutnya darisource code ini dilakukan analisis untuk mencari celah keamanan aplikasi. Tools yang perlu digunakan untuk melakukan reversing code aplikasiAndroid adalah: • Android SDK • dex2jar 3 http://www.parosproxy.org 4 https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project 5 http://portswigger.net/burp/proxy.html 9
  10. 10. • apktool • JD (Java Decompiler) Langkah pertama adalah melakukan pull berkas APK aplikasi Android.adb pull apk_file destination_directoryBerkas APK merupakan berkas dengan kompresi. Berkas APK menggu-nakan standar kompresi ZIP, jadi untuk mengekstraknya dapat menggu-nakan program untuk mengekstrak berkas ZIP. Setelah mengekstrak berkasAPK, perhatikan berkas manifest dan berkas DEX. Pada berkas manifestterdapat beragam informasi seperti: permission, intent filters. Gunakan dex2jar untuk mengkonversi berkas dengan format DEX men-jadi JAR. Selanjutnya, buka kompresi file hasil konvers dex2jar. Langkahterakhir gunakan java decompiler untuk mendapatkan source code aplikasi. Tool lain untuk melakukan pengujian keamanan aplikasi Android adalahc-ray. C-ray adalah scanner security untuk aplikasi Android. Hasil analisis c-ray akan menunjukkan tingkat keamanan interface aplikasi Android. DenimGroup merilis program smartphonedumbapps yang berisi script perl untukmelakukan reversing code mobile application secara otomatis. Versi saat inisudah mendukung aplikasi Android dan iPhone.5.2.2 BlackBerryDr Olsen telah merilis program coddec untuk melakukan reversing code ap-likasi BlackBerry. Coddec merupakan kependekan dari cod decompiler. Codadalah ekstensi berkas aplikasi BlackBerry.5.2.3 iPhoneAplikasi untuk iPhone ditulis menggunakan bahasa objective-C. Untuk melakukanreversing code pada aplikasi iPhone dapat menggunakan tool otool atauclass-dump-x.6 PenutupTulisan ini merupakan pengantar keamanan perangkat mobile. Diharapkandengan pengantar ini dapat memberikan gambaran secara umum mengenai 10
  11. 11. keamanan perangkat mobile. Pada tulisan ini tidak dilakukan pembahasanmendalam secara teknis pada suatu proses (misalnya reversing code) karenamemang tujuan tulisan adalah memberikan gambaran secara umum topikkeamanan perangkat mobile. Tulisan ini dibuat dengan mengacu pada referensi-referensi yang ada dibawah ini, untuk kemudian dipilah, dianalisis, dan disintesis menjadi satubentuk tulisan yang utuh.7 Referensi • Bolsen. 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.8 PenulisZaki Akhmad, bekerja sebagai analis di perusahaan konsultan keamananinformasi, indocisc. 11

×