Sunday 30 March 2014

Android Hacking and Security, Bagian 1: Pemanfaatan dan Mengamankan Aplikasi Komponen


               Kemananan sebuah Aplikasi Mobile adalah salah satu segmen terpanas di dunia keamanan, karena keamanan benar-benar menjadi perhatian besar dengan pertumbuhan aplikasi moile saat ini, Pada artikel ini kita akan membahas seputar serangan yang terkait dengan Komponen Aplikasi Android.

Apa aplikasi komponen android.?

         Komponen aplikasi adalah blok sebuah struktur penting dari Android App. Setiap aplikasi dibangun sebagai kombinasi dari beberapa atau semua komponen-komponen, yang dapat di panggil secara individual, dan ada 4 komponen utama dalam Android , yang akan di jelaskan di bawah ini.

Kegiatan :  Sebuah kegiatan menyediakan layar dengan naa pengguna yang dpat berinteraksi untuk             melakukan sesuatu. Pengguna dapat melakukan Operasi seperti membuat panggilan, Mengirim   SMS, dan lain-lain.

Contoh : Layar Login dari aplikasi email anda.

Layanan : Layanan A dapat melakukan operasi lama yang berjalan di latar belakang dan tidak menyediakan antarmuka pengguna.

Contoh : Saat anda menjalankan music.

Konten Provider : Sebuah konten provider data ke aplikasi eksternal sebagai salah satu atau lebih tabel. dengan kata lain, penyedia konten dapat diperlakukan sebagai interface yang menghubungkan data dalam satu proses dengan kode yang berjalan dalam proses lain.

Contoh : Menggunakan penyedia konten, Aplikasi apapun dapat membaca SMS dari repositori aplikasi SMS inbuilt di perangkat kami.

* READ_SMS izin harus dinyatakan dalam file AndroidManifest.xml app untuk mengakses data aplikasi SMS

Broadcash Receiver : Sebuah penerima siaran adalah komponen yang merespon pengumuman siaran seluruh sistem seperti Battrey Low, boot selesai, pasang headshet dll Meskipun sebagian besar penerima siaran berasal dari sistem, aplikasi juga dapat mengumumkan siaran.

Artikel ini berfokus pada penunjukan metodologi untuk menyerang dan mengamankan komponen aktivitas rentan sebuah Aplikasi.

Latar Belakang

Anda dapat mendownload aplikasi sampel yang digunakan dalam artikel ini dan dan ikuti langkah-langkah nya.


Isi formulir di bawah ini untuk men-download file APK dan Source Code.

InfoSec Institute File Download

After completing this form you will have access to all practice exercises and lab files. 








         Seperti terlihat pada gambar di bawah, aplikasi ini memiliki dua aktivitas. Aktivitas pertama mengambil password sebagai masukan. Jika pengguna memasukkan password yang benar dia akan mendarat di sebuah halaman yang mengatakan "area pribadi", kalau tidak, ia akan mendapatkan "password salah" pesan. Untuk tujuan pengujian, password untuk login ditetapkan sebagai "password". Idealnya, layar pertama harus menggunakan maksud dan memanggil layar kedua jika password yang valid dimasukkan. Kita perlu melakukan pengujian kotak hitam pada aplikasi ini untuk melihat apakah kita bisa bypass otentikasi dengan langsung menerapkan layar selamat datang.

                         

Prasyarat untuk mengikuti langkah-langkah :

Komputer Terinstall Android SDK

Sebuah Perangkat Mobile Non Rooted untuk menginstall aplikasi.

Topic Involved

Pengumpulan Informasi

Menyerang bagian Rentan Aktivitas Komponen

Mengamankan Aplikasi

Pengumpulan Informasi :
  1. Mendekompile app dengan APKTOOL
  2. Menganalisis berkas AndroidManifest.xml untuk mengekspor Aktivitas Komponen.

Setiap app Android memiliki nama paket dan setiap aktivitas memiliki nama kelas sendiri dalam paket. Langkah awal adalah mengetahui nama paket dan nama aktivitas sensitif yang tersedia. Meskipun ada metode lain untuk mendapatkan informasi ini, Melihat AndroidManifest.xml merupakan sebuah pendekatan yang baik, Kita bisa mendapatkan file AndroidManifest.xml oleh Decompiling aplikasi menggunkaan APKTOOL.
  1. Unduh APKTOOL disini > Download_APKTOOL
  2. Tempatkan aplikasi tes dalam folder yang sama seperti di APKTOOL.
  3. Sekarang, mendekompilisasi file APK menggunakan perintah berikut seperti yang ditunjukan pada gambar :
apktool d testapp.apk



Seperti terlihat pada gambar dibawah ini, kita sekarang dapat melihat folder beru bernama "testapp" dengan berkas AndroidManifest.xml di dalamnya.

Sekarnag kita perlu mencari nama paket dan kegiatan nya.

            Semua kegiatan akan didaftarkan di file AndroidManifest.xml menggunakan <activity></activity> tags. Jadi, apapun yang ada didalam tag ini akan menjadi suatu kegiatan. Melihat file AndroidManifest.xml, kita dapat melihat dua Aktivitas Komponen dan nama paket seperti yang ditunjukkan pada gambar di bawah ini : 

Dengan melihat gambar di atas, jelas mendapat informasi berikut tentang app.

com.isi.testapp adalah nama dari paket

com.isi.testapp.Welcome kita bisa mendapatkan menjadi aktivitas  setelah memberikan password yang benar.


Menyerang Bagian Rentan Aktivitas Komponen

Tugas kita sekarang adalah untuk memulai aktivitas Welcome tanpa memberikan password apapun di layar pertama.

Kita bisa melakukan serangan terhadap komponen aktivitas yang rentan dalam beberapa cara, seperti yang disebutkan di bawah ini.
  1. Melakukan kegiatan sensitif dengan Alat Manajer Aktivitas.
  2. Menggunakan App Berbahaya untuk memanggil aktivitas aplikasi lain.
  3. Kita juga bisa menggunakan aplikasi FrameWork Mercury untuk melakukan seranagn ini, yang akan dibahas pada artikel nanti.
Melakukan kegiatan sensitif dengan alat manajer aktivitas

Aktivitas manajer sdalah alat preinstall yang datang dengan Android SDK dan dapat digunakan bersama dengan "adb shell". Alat ini dapat digunakan untuk Melakukan Aktivitas dan Layanan Aplikasi. Kita bahkan dapat melewati maksud menggunakan nya.

Jadi Mari kita Mulai
  1. Hubungkan perangkat ke komputer dan dapatka shell dari perangkat dengan menggunkan perintah berikut : shell adb
  2. Ketik Perintah berikut untuk memulai aktivitas Welcome: am start-n com.isi.testapp/.Welcome
Kita sekarang akan melihat layar selamat datang  fired up tanpa memberikan password.

Menggunakan App Berbahaya untuk memanggil Aktivitas aplikasi lain

         Cara lain untuk menerapkan aktivitas aplikasi lainnya adalah untuk menulis sebuah aplikasi berbahaya and feed it with nama paket dan kegiatan yang akan dilakukan, Gambar dibawah ini adalah potongan kode untuk memulai suatu aktivitas dimana com.isi.testapp.Welcome adalah kegiatan yang akan dilakukan, Dalam kasus ini, aplikasi berbahaya ini tidak memerlukan izin untuk melakukan Aktivitas  "Welcome" pada aplikasi yang rentan.



Menggunakan Framework Mercury
Serangan yang sama dapat direproduksi dengan Framework Mercury. Kita akan membahas Framework Mecury diseri selanjutnya.


Mengamankan Komponen Aplikasi
  1. Setting android: Mengenkspor atribute value ke false                                                                      Dalam file AndroidManifest.xml dari aplikasi kita, kita harus menambahkan atribut berikut ke komponen aplikasi untuk di amankan. Dalam kasus ini com.isi.testapp.Welcome adalah aktivitas yang diamankan. 
                                                                 
    kode di atas membatasi aplikasi lain atau komponen sistem selain aplikasi saat mengakses Aktivitas ini. Hanya aplikasi yang memiliki user id yang sama dengan aplikasi saat ini yang dapat mengakses Aktivitas ini.                                                                                                                                                  
  2. Membatasi akses dengan izin kustom :                                                                                         The Android : Mengekspor atribute bukan satu-satunya cara untuk membatasi paparan aktivitas untuk aplikasi lain. namun juga dapat memberlakukan pembatasan izin berbasis dengan mendefinifikan hak akses kustom untuk suatu kegiatan. Hal ini berguna jika pengembang ingin membatasi akses ke komponen app nya kepada orang - aplikasi yang memiliki izin.
catatan : Kontol keamanan di atas berlaku untuk setiap komponen aplikasi lain yang di bahas pada awal artikel.



No comments:

Post a Comment