Fakultas Ilmu Komputer
Universitas Brawijaya 10579
Implementasi OWASP Mobile Security Testing Guide (MSTG) Untuk Pengujian Keamanan Pada Aplikasi Berbasis Android
Luqman Hakim Yumnun1, Ari Kusyanti2, Dany Primanita Kartikasari3 Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya
Email: 1[email protected], 2[email protected], 3[email protected]
Abstrak
OWASP Mobile Security Testing Guide (MSTG) merupakan sebuah metode yang dapat digunakan untuk pengujian keamanan pada aplikasi perangkat seluler baik itu yang berbasis sistem operasi iOS maupun Android. Pengujian keamanan diperlukan untuk meminimalisir kerentanan pada suatu aplikasi. Namun saat ini belum terdapat aplikasi pengujian keamanan yang menerapkan OWASP MSTG sehingga pada penelitian ini akan membuat sistem pengujian keamanan yang menerapkan OWASP MSTG. Dalam proses analisis kebutuhan terdapat 11 kebutuhan fungsional sedangkan pada tahap perancangan akan membuat perancangan sistem, perancangan antarmuka, dan perancangan algoritme. Sistem ini diimplementasikan dengan berbasis web serta dibangun dengan menggunakan kerangka kerja CodeIgniter. Selanjutnya sistem tersebut diuji dengan pengujian fungsional serta pengujian validasi dengan membandingkan hasil dari sistem yang telah dibuat dengan aplikasi pengujian keamanan yang sudah ada. Berdasarkan pengujian yang telah dilakukan, sistem pengujian keamanan sudah berjalan dengan baik dan sudah sesuai dengan tahap perancangan sistem.
Kata kunci:pengujian keamanan, OWASP Mobile Security Testing Guide (MSTG), android Abstract
OWASP Mobile Security Testing Guide (MSTG) is a method that can be used for security testing on mobile device applications both based on iOS and Android operating systems. Security testing is needed to minimize vulnerabilities in an application. However, there is currently no security testing application that applies OWASP MSTG, so this research will create a security testing system that applies OWASP MSTG. In the requirement analysis process there are 11 functional requirements while the design phase will make the system design, interface design, and algorithm design. This system is implemented on a web-based using CodeIgniter framework. On system testing, the system is tested by functional testing and validation testing by comparing the results of the system that has been made with existing security testing applications. Based on the system testing, the security testing system OWASP MSTG has been running and accordance with the system design stage.
Keywords: security testing, OWASP Mobile Security Testing Guide (MSTG), android
1. PENDAHULUAN
Saat ini jumlah jumlah pengguna perangkat seluler terus mengalami peningkatan.
Namun, perangkat seluler saat ini juga merupakan salah satu target serangan utama oleh peretas. Oleh karena itu, untuk memastikan keamanan data serta meminimalisir atau mengurangi adanya kerentanan pada perangkat seluler seluler diperlukan pengujian keamanan (Al Shebli & Beheshti, 2018).
Open Web Application Security Project (OWASP) Mobile Security Testing Guide (MSTG) merupakan sebuah metode yang
berisikan tentang panduan proses pengujian keamanan terhadap aplikasi perangkat seluler baik itu yang berbasis sistem operasi iOS maupun Android. Pada OWASP MSTG terdapat berbagai pengujian keamanan yang yang didasarkan pada kerentanan yang terdapat pada OWASP Mobile Top 10 Risk (Mueller, et al., 2018). Salah satu kerentanan yang dapat dideteksi dengan OWASP MSTG yaitu kerentanan yang terkait dengan privasi (Argudo, et al., 2017).
Terdapat dua teknik analisis yang dapat digunakan untuk mengimplementasikan OWASP MSTG, yaitu analisis statis dan
analisis dinamis. Kedua teknik tersebut pernah digunakan pada penelitian yang dilakukan oleh Ijaz, et al. (2019). Berdasarkan penelitian tersebut, analisis statis mampu mendeteksi malware yang lebih banyak walapun dengan fitur yang lebih sedikit sehingga analisis statis memiliki hasil yang lebih baik.
Saat ini terdapat beberapa aplikasi yang menerapkan analisis statis sebagai teknik untuk pengujian keamanan pada aplikasi Android antara lain AndroBugs Framework dan Qark.
Namun pada Qark dan AndroBugs Framework tidak menerapkan metode tertentu sebagai dasar pengujian keamanannya. Sehingga penulis bertujuan untuk membuat sistem pengujian keamanan yang menerapkan OWASP Mobile Security Testing Guide (MSTG). Sistem tersebut berfungsi untuk mencari kode yang perlu dianalisis lebih lanjut. Sehinga selanjutnya penguji hanya perlu mengalisis lebih lanjut temuan yang ditemukan oleh sistem sesuai dengan OWASP MSTG.
2. LANDASAN KEPUSTAKAAN 2.1. Kajian Pustaka
Pada penelitian Argudo, et. al yang berjudul Privacy Vulnerability Analysis for Android Application. Menguji keamanan aplikasi Android yang bertujuan untuk memastikan tidak adanya kerentanan terkait privasi. Pada penelitian tersebut menemukan beberapa kerentanan antar lain backdor configured, weak encryption, malicious APIs, dan misconfigured settings.
Penelitian selanjutnya dilakukan oleh Novikov, et. al dengan judul The Approach to Finding Errors in Program Code Based on Static Analysis Methodology. Menerapkan analisis statik untuk mendeteksi kesalahan kode pada suatu program. Pada penelitian tersebut mengembangkan rules tertentu yang digunakan untuk mencari kemungkinan adanya penulisan kode yang salah pada suatu program.
2.2. Dasar Teori
2.2.1. OWASP Mobile Security Testing Guide (MSTG)
OWASP Mobile Security Testing Guide (MSTG) merupakan metode yang dirilis oleh lembaga non-profit Open Web Application Security Project (OWASP). Pada OWASP MSTG terdapat berbagai pengujian yang
terbagi terbagi menjadi 7 kategori yaitu : Insecure Data Storage, Android Network, Local Authentication on Android, Code Quality &
Build Settings, Android Crytography API, Android Platform, dan Anti-Reversing Defenses.
2.2.2 Analisis Statis
Analisis statis merupakan suatu kegiatan untuk menemukan kesalahan atau kerentanan dari sebuah aplikasi tanpa harus mengeksekusi aplikasi tersebut. Analisis statis dapat diterapkan baik itu pada aplikasi yang belum dikompilasi maupun yang sudah dikompilasi.
Dengan analisis statis, dapat membantu pengembang mengidentifikasi masalah pada suatu program serta untuk mengurangi biaya pengembangan suatu perangkat lunak (Novikov, et al., 2017).
2.2.3. Regular Expression (RegEx)
Regular Expression atau RegEx merupakan sebuah pola yang digunakan untuk pemrosesan teks yang efisien, kuat dan fleksibel. Sebuah regular expression dapat terdiri dari karakter khusus seperti metakarakter maupun karakter biasa yaitu huruf a-z (He, et al., 2013).
2.2.4 Android
Android merupakan sistem operasi yang dikembangkan oleh Google dan berbasiskan kernel Linux. Untuk mendukung pengembang dalam menciptakan aplikasi, Android menyediakan Software Development Kit (SDK) yang berisikan berbagai perangkat tools. Java merupakan salah satu bahasa pemrograman yang digunakan pada aplikasi yang berbasis Android (Shaheen, et al., 2017).
3. ANALISIS KEBUTUHAN DAN PERANCANGAN
3.1. Deskripsi Sistem
Sistem pengujian keamanan OWASP Mobile Security Testing Guide (MSTG) merupakan sebuah sistem yang berfungsi untuk mencari kode yang perlu dianalisis lebih lanjut berdasarakan OWASP MSTG sehingga penguji tidak perlu mencari satu persatu kode yang perlu dianalisis secara manual.
3.2. Analisis Kebutuhan
Salah satu yang terdapat pada analisis kebutuhan yaitu use case diagram yang bertujuan untuk menggambarkan serta mendefinisikan interaksi yang terjadi antara pengguna dengan sistem yang dibangun.
Pada sistem pengujian keamanan OWASP MSTG ini terdiri dari 11 kebutuhan fungsional yang digambarkan dengan menggunakan use case diagram pada Gambar 1.
Gambar 1. Use case diagram
3.3. Perancangan Sistem
Tahap selanjutnya setelah analisis kebutuhan dilakukan yaitu tahap perancangan sistem. Pada Gambar 2 merupakan sequence diagram dari proses pengujian insecure data storage.
Gambar 2. Sequence diagram pengujian insecure data storage
Selain sequence diagram, pada tahap perancangan sistem juga membuat class diagram yang berfungsi untuk menggambarkan sistem yang akan dibuat dilihat dari segi pendifinisian kelas-kelas yang diperlukan untuk membangun sistem pengujian keamanan OWASP MSTG.
Sistem pengujian keamanan OWASP MSTG akan terdiri dari 9 kelas yaitu kelas AndroidCryptographic, kelas Dashboard, kelas LocalAuthentication, kelas AntiReversing, CodeQuality, kelas DataStorage, kelas View, kelas AndroidPlatform, dan kelas AndroidNetwork.
3.4. Perancangan Antarmuka
Perancangan antarmuka merupakan tahapan yang bertujuan untuk menggambarkan berbagai macam pilihan yang terdapat pada setiap halaman sistem.
Gambar 3. Perancangan antarmuka halaman pengujian
Gambar 3 merupakan tampilan perancangan halaman antarmuka untuk halaman pengujian. Pada halaman tersebut akan terdiri
dari 15 objek, baik itu yang berupa gambar, link, tombol, maupun teks.
3.5. Perancangan Algoritme
Tahapan perancangan algoritme bertujuan untuk menggambarkan alur proses yang akan digunakan pada sistem. Algortime yang akan digunakan terdiri dari 3 algoritme yaitu : algoritme pengujian keamanan 1, algorigme pengujian keamanan 2, dan algoritme pengujian keamanan 3. Pembagian algoritme pada tiap pengujian keamanan tergantung dengan tahapan yang diperlukan pada pengujian keamanan tersebut. Sistem akan terdiri dari 3 algoritme yang algoritme pengujian keamanan 1, algoritme pengujian keamanan 2, dan algoritme pengujian keamanan 3.
3.5.1. Algoritme Pengujian Keamanan 1
Gambar 4. Flowchart algoritme pengujian keamanan 1
Flowchart Gambar 4 merupakan flowchart proses pengujian keamanan 1. Pada flowchart tersebut sistem memerlukan masukan yaitu berupa file android package (APK).
Selanjutnya akan dilakukan proses decompile APK yang bertujuan untuk mengubah file APK menjadi source code. Selanjutnya setelah dilakukan proses decompile APK, sistem akan melakukan proses pemindaian dengan patern yang sudah ditentukan. Jika pada proses pemindaian tersebut ditemukan string sesuai dengan pattern maka sistem akan menampilkan informasi lokasi file, kode, baris, dan jenis kerentanan. Jika tidak ditemukan string sesuai dengan pattern maka sistem akan selesai
Salah satu pengujian yang menggunakan algoritme pengujian keamanan 1 adalah Testing Local Storage for Sensitive Data.
Sebagian pattern yang digunakan pada Testing Local Storage for Sensitive Data dapat dilihat pada Tabel 2.
Tabel 2. Pattern Testing Local Storage for Sensitive Data
No Pattern
1 openOrCreateDatabase\([^,]+, (MODE_WORLD_READABLE|
MODE_WORLD_WRITABLE|1|2|3) 2 getSharedPreferences\([^,]+,
(MODE_WORLD_READABLE|
MODE_WORLD_WRITABLE|1|2|3) 3 openFileOutput\([^,]+,
(MODE_WORLD_READABLE|
MODE_WORLD_WRITABLE|1|2|3) 4 \.getExternal
5 \.getCacheDir\(
6 \.putString\( [\"a-zA-Z0-9_]+
(password|pin|key|token|pwd) 7 name=[\"a-zA-Z1-9_\/]+(_|\")
(password|pin|key|token|pwd)(_|\")
Penjelasan dari setiap pattern pada Tabel 2 yaitu sebagai berikut :
- Pattern 1, digunakan untuk mencari method openOrCreateDatabase yang memiliki mode
MODE_WORLD_READABLE, dan
MODE_WORD_WRITABLE.
- Pattern 2, digunakan untuk mencari method getSharedPrefences yang memiliki mode
MODE_WORLD_READABLE, dan
MODE_WORD_WRITABLE.
- Pattern 3, digunakan untuk mencari method openFileOutput yang memiliki mode
MODE_WORLD_READABLE, dan
MODE_WORD_WRITABLE.
- Pattern 4, digunakan untuk mencari method yang memiliki nama diawali .getExternal.
- Pattern 5, digunakan untuk mencari penerapan dari method getCacheDir.
- Pattern 6, digunakan untuk mencari method putString yang memiliki nilai key mengandung salah satu string dari password, pin, key, token, atau pwd.
- Pattern 7, digunakan untuk mencari Text View yang memiliki nama mengandung salah satu string dari password, pin, key, token, atau pwd.
3.5.1. Algoritme Pengujian Keamanan 2 Flowchart pada Gambar 5 merupakan
flowchart proses pengujian keamanan 2. Sama seperti dengan algoritme pengujian keamanan 1, pada algoritme ini dimulai dengan adanya masukkan file APK kemudian dilakukan proses decompile APK. Selanjutnya juga dilakukan proses pemindaian source code dengan pattern.
Namun, pada algoritme ini jika ditemukan string sesuai pattern maka akan dilakukan proses pemindaian lagi dengan pattern yang kedua. Jika tidak ditemukan maka sistem akan menampilkan informasi lokasi file, kode, baris, dan jenis kerentanan
Gambar 5. Flowchart algoritme pengujian keamanan 2
3.5.1. Algoritme Pengujian Keamanan 3
Gambar 6. Flowchart algoritme pengujian keamanan 3
Flowchart pada Gambar 6 merupakan flowchart proses pengujian keamanan 3.
Berbeda dengan algoritme pengujian keamanan 1 dan algoritme pengujian keamanan 2, pada algoritme pengujian keamanan 3 ini setelah ada masukkan berupa file APK maka selanjutnya
sistem akan melakukan verifikasi file APK dengan menggunakan jarsigner dan jika ditemukan string CN yang bernilai Android Debug maka sistem akan menampilkan lokasi file, kode, baris, dan jenis kerentananan.
4. IMPLEMENTASI DAN PENGUJIAN 4.1. Implementasi Perangkat Lunak
Terdapat beberapa perangkat lunak yang diperlukan untuk membuat sistem pengujian keamanan OWASP Mobile Security Testing Guide (MSTG). Perangkat lunak yang diperlukan ditunjukkan pada Tabel 3.
Tabel 3. Spesifikasi perangkat lunak
Perangkat Lunak Keterangan CodeIgniter Sebagai kerangka kerja XAMPP Sebagai web server Sublime Text Sebagai teks editor Safari Sebagai web browser
APK2Java Sebagai library untuk decompile file android package (APK) Pcregrep Sebagai library untuk pencarian
string
jarsigner Sebagai library untuk verifikasi file APK
zip Sebagai library untuk kompresi file atau folder
4.1. Implementasi Algoritme
Implementasi algoritme dilakukan sesuai dengan perancangan algoritme pengujian keamanan yang sudah dibuat pada tahap perancangan. Pada tahap implementasi algoritme akan menggunakan kerangka kerja CodeIgniter dengan bahasa pemrograman Hypertext Preprocessor (PHP).
4.2. Implementasi Antarmuka
Tahap implementasi antarmuka merupakan tahapan yang bertujuan untuk mengimplementasikan antarmuka yang berdasarkan perancangan antarmuka yang telah dibuat sebelumnya. Salah satu hasil implementasi antarmuka yaitu halaman pengujian ditunjukkan pada Gambar 7.
Antarmuka halaman pengujian merupakan antarmuka yang menampilkan informasi hasil dari pengujian keamanan.
Gambar 7. Implementasi antarmuka halaman pengujian
5. PENGUJIAN
Setelah melalui tahap implementasi, selanjutnya akan dilakukan tahap pengujian sistem. Pengujian sistem akan dilakukan dengan pengujian fungsionalitas sistem serta pengujian validasi, guna untuk memastikan sistem pengujian keamanan OWASP Mobile Security Testing Guide (MSTG) sudah berjalan dengan baik dan sudah sesuai dengan hasil yang diharapkan.
5.1. Pengujian Fungsionalitas
Pengujian fungsionalitas dilakukan untuk memastikan sistem sudah berjalan sesuai dengan fungsionalitas yang telah dibuat pada tahap perancangan. Salah satu pengujian fungsionalitas dari sistem dapat dilihat pada Tabel 4.
Tabel 4. Pengujian fungsionalitas proses pengujian insecure data stroage
Nama Kasus Uji
Pengujian Insecure Data Storage Prosedur
pengujian
1. Aktor mengunggah file android package (APK) yang memiliki kerentanan terkait Insecure Data Storage 2. Aktor memilih tombol “Insecure Data Storage” pada halaman dashboard Hasil yang
diharapkan
Sistem mampu mendeteksi serta menampilkan kerentanan yang terkait dengan Insecure Data Storage
Hasil Sistem mendeteksi serta menampilkan kerentanan yang terkait dengan Insecure Data Storage
Status Berhasil
Berdasarkan pengujian fungsionalitas, semua fungsionalitas yang terdapat pada sistem sudah berjalan dengan baik dan sudah sesuai dengan tahapan perancangan sistem.
5.2. Pengujian Validitas
Selain pengujian fungsionalitas, pada tahapan pengujian sistem juga dilakukan pengujian validitas dengan membandingkan
hasil dari sistem pengujian keamanan yang telah dibuat dengan aplikasi yang sudah ada yaitu AndroBugs Framework.
Berdasarkan pengujian yang telah dilakukan dengan menguji aplikasi Android- InsecureBank v2. Sistem pengujian keamanan dapat mendeteksi 17 kerentanan, sedangkan AndroBugs Framework hanya dapat mendeteksi 9 kerentanan. Semua kerentanan yang terdeteksi oleh AndroBugs Framework dapat dideteksi oleh sistem pengujian keamanan OWASP MSTG.
5.3. Pengujian Response Time
Pengujian ini dilakukan bertujuan untuk mengetahui waktu yang diperlukan sistem untuk memproses sebuah aplikasi yang akan diuji. Pada pengujian ini akan menggunakan beberapa kategori aplikasi yaitu m-commerce, banking, transportation & ticket, dan finance.
Hasil dari pengujian response time dapat dilihat pada Tabel 5.
Tabel 5. Pengujian response time
No. Kategori Aplikasi Rata-rata response time
1 M-Commerce 1.4 menit
2 Banking 1.3 menit
3 Transportation &
ticket
1.6 menit
4 Finance 2.2 menit
6. KESIMPULAN
Berdasarkan proses yang dimulai dari analisis kebutuhan, perancangan sistem, implementasi sistem, dan pengujian sistem, maka dapat disimpulkan sebagai berikut : 1. Teknik analisis statis yang terdapat pada
OWASP Mobile Security Testing Guide (MSTG) dapat diimplementasikan menjadi sebuah sistem pengujian keamanan yang berfungsi untuk mencari kode yang perlu dianalisis lebih lanjut. Sehingga penguji tidak perlu mencari kode yang perlu dianalisis secara manual. Selanjutnya hasil dari sistem tersebut dapat dilakukan proses analisis lebih lanjut sesuai dengan panduan yang terdapat pada OWASP MSTG.
2. Berdasarkan pengujian response time, untuk memproses aplikasi dengan kategori finance memperlukan rata-rata waktu yang paling lama yaitu 2,2 menit. Sedangkan aplikasi dengan kategori banking merupakan aplikasi dengan rata-rata waktu pemrosesan yang paling cepat yaitu 1,3
menit. Sedangkan untuk aplikasi dengan kategori transportation & ticket memperlukan rata-rata waktu yaitu 1,6 menit dan aplikasi dengan kategori m- commerce memperlukan rata-rata waktu 1,4 menit.
7. DAFTAR PUSTAKA
Al Shebli, H. M. Z. & Beheshti, B. D., 2018. A study on penetration testing process and tools. Farmingdale, IEEE.
Argudo, A., López, G. & Sánchez, . F., 2017.
Privacy Vulnerability Analysis for Android Applications. Quito, IEEE, pp. 256-260.
He, G., Zhang, Y. & Wu, X., 2013. Information Extraction of Forum Based on Regular Expression. Hangzhou, IEEE.
Ijaz, M., Durad, M. H. & Ismail, M., 2019.
Static and Dynamic Malware Analysis Using Machine Learning. Islamabad, IEEE.
Mueller, B., Schleier, S. & Willemsen, J., 2018.
Mobile Security Testing Guide (MSTG).
1.1 ed. s.l.:OWASP.
Novikov, A. S., Ivutin, A. N., Troshina, A. G.
& Vasiliev, S. N., 2017. The Approach to Finding Errors in Program Code Based on Static Analysis Methodology. Bar, IEEE.
Shaheen, J. A., Asghar, M. A. & Hussain, A., 2017. Android OS with its Architecture and Android Application with Dalvik Virtual Machine Review. International Journal of Multimedia and Ubiquitous Engineering, Volume 12, pp. 19-30.