Anda di halaman 1dari 11

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 ini


sudah semakin umum. Penggunaan ponsel untuk melakukan koneksi In-
ternet ini memiliki risiko keamanan tersendiri. Risiko ini berbeda dengan
penggunaan desktop atau laptop untuk koneksi Internet. Tulisan ini meru-
pakan sebuah pengantar keamanan perangkat mobile. Tulisan ini bertujuan
memberikan gambaran umum mengenai bidang keamanan perangkat mobile
tanpa terlalu 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 sistem
operasi hingga risiko aplikasi. Selanjutnya akan dijabarkan prinsip-prinsip
keamanan dalam mendesain aplikasi mobile karena aplikasi yang aman sebe-
narnya 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

1
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 perangkat
BlackBerry -yang menawarkan koneksi Internet handal dengan algoritma
kompresinya- 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 sisi
lain, 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 tingkat
keamanan 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 ponsel
adalah risiko kehilangan. Apakah para pengguna ponsel sudah siap dan
mengerti risiko kehilangan ponselnya? Penggunaan ponsel ini tak hanya se-
batas di kalangan mahasiswa atau karyawan namun juga hingga kalangan
eksekutif perusahaan. Nilai ponsel mahasiswa dan 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 mem-
berikan password email -nya kepada sekretaris untuk membantunya mem-
baca/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 face-
book. Dengan melakukan serangan yang dinamakan phishing ini, penyerang
akan mendapatkan pasangan userid dan password.

2
2 Risiko Keamanan Perangkat Mobile
Sama dengan aset-aset lainnya, perangkat mobile memiliki risiko yang melekat
dengannya. Dengan karakteristiknya yang mobile, tentu perangkat mobile
memiliki risiko yang lebih bisa ter-expose ke pihak luar. Berikut ini adalah
beberapa risiko-risiko keamanan pada perangkat mobile 1 :

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 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 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 pengguna
perangkat mobile saat memutuskan menggunakannya. Berbeda dengan server
yang bisa diletakkan pada ruangan terkunci, tidak ada mekanisme penga-
manan 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 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
pat menerima risikonya karena data yang sensitif tetap aman dalam keadaan
terenkripsi. Kemampuan menyimpan data secara aman namun tetap memu-
ngkinkan bagi aplikasi untuk mengaksesnya menjadi persyaratan untuk kea-
manan perangkat mobile.

2.3 Risiko Strong Password


Katakanlah seorang pengguna aplikasi Internet Banking diharuskan memi-
liki password yang kuat yaitu password dengan minimal panjang karakter
delapan, kombinasi huruf besar/kecil, berikut dengan kombinasi numerik
dan simbol. Password ini tentu akan dengan mudah diketikkan saat ia meng-
gunakan keyboard di laptop/desktop. Lalu bagaimana ia akan mengetikkan
delapan karakter password, kombinasi huruf besar huruf kecil, kombinasi
numerik dan simbol pada ponselnya? Tentu akan lebih sulit dilakukan pada
keyboard 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 Browsing


Layar ponsel tidak sebesar layar laptop. Jadi menampilkan URL secara
lengkap 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 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 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 hangat
dibicarakan. Ponsel iPhone dan Android dikabarkan mengirimkan lokasinya.

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

3 Mobile Security Secure Design Principles


Keamanan seharusnya diawali dari awal, bukan didasarkan pada pengu-
jian 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. Seda-
pat mungkin, desain aplikasi dengan data confidential tidak tersimpan di
perangkat mobile. Jika tidak memungkinkan, data confidential yang tersim-
pan pada perangkat mobile harus terlindungi.

3.2 Pastikan Data Sensitif Terlindungi Saat Transit


Perangkat mobile memiliki beragam mode koneksi untuk tersambung ke In-
ternet: apakah BIS, GPRS, Edge, WiFi, dst. Tidak semua mode koneksi
ini 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 Minimum


Desain klien aplikasi mobile yang dapat dijalankan dengan hak akses mini-
mum yang diperlukan. Contohnya aplikasi cukup bisa dijalankan user biasa,

5
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 vali-
dation, output encoding. Pengembang perlu melakukan static analysis dalam
proses SDLC untuk mengetahui keamanan source code. Lainnya, tanda tan-
gani aplikasi saat akan mengunggah (signed application) untuk menjaga in-
tegritas aplikasi.

4 Mobile Security Testing


Pada 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 un-
tuk 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.

6
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
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:

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 tidak


dijalankan. 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
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 traf-
fic 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 traf-
fic 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 Proxy3 , OWASP
ZAP Proxy4 , Burp Proxy5 .

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 re-
versing code aplikasi akan 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
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
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 menggu-


nakan standar kompresi ZIP, jadi untuk mengekstraknya dapat menggu-
nakan 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 men-
jadi 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 ap-
likasi 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 Penutup
Tulisan ini merupakan pengantar keamanan perangkat mobile. Diharapkan
dengan pengantar ini dapat memberikan gambaran secara umum mengenai

10
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 umum 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 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 Penulis
Zaki Akhmad, bekerja sebagai analis di perusahaan konsultan keamanan
informasi, indocisc.

11

Anda mungkin juga menyukai