Dalam artikel sebelumnya, membahas bagaimana Attacker mengexploitasi aktivitas komponen yang rentan dan cara-cara mengaman kan nya, Pada artikel ini, akan membahas "Kebocoran Konten Provider".
Apa itu Konten Provider ?
Sesuai keamanan inbuilt Google. aplikasi data pribadi ke salah satu aplikasi. maka tidak mungkin untuk suatu aplikasi dapat mengakses data aplikasi lain secara default. Ketika aplikasi ingin berbagi data dengan aplikasi lain, Konten Provider adalah yang bertindak sebagai interface untuk berbagi data antar aplikasi. Konten Provider menggunakan standart insert(), query(), update(), dan delete(). metode untuk mengakses data aplikasi. Suatu bentuk khusus dari URI yang dimulai dengan "isi://" ditugaskan untuk setiap Konten Provider. Setiap aplikasi yang tahu URI ini dapat memasukkan, mengupdate, menghapus, dan query data dari database dari aplikasi Provider.
Mungkin ada beberapakasus dimana Konten Provider tidak mungkin dilaksanakan untuk berbagi data dengan aplikas lain, atau pengembang mungkin ingin memberikan akses hanya kepada mereka yang memiliki izin aplikasi yang tepat. Dalam kasus tersebut, jika kontrol keamanan yang tepat tidak di tegakkan di app, yang mengarah ke kebocoran informasi.
Aplikasi inbuilt SMS pada perangkat android adalah contoh klasik dari Konten Provider, Setiap aplikasi dapt query inbox dari perangkat yang menggunakan URI. content://sms/inbox. Tapi, izin READ SMS harus dinyatakan di AndroidManifest.xml dalam file aplikasi untuk mengakses data aplikasi SMS.
Anda dapat mendownload aplikasi sampel yang digunakan dalam artikel ini dan ikuti langkah-langkah nya.
Prasyarat unutk mengikuti langkah-langkah nya
- Komputer yang terinstall Android SDK
- Sebuah pernagkat mobile non root untuk menginstall aplikasi
Pengujian fingsionalitas aplikasi
Setelah men-download aplikasi tes, Menginstalnya di perangkat android non-root dalam rangka mengExploit untuk menguji dan memanfaatkannya.
dalam Hal ini dapat di Install adb menggunakna perintah berikut :
adb install <nama apk tersebut> apk
ia memiliki fitur untuk menyimpan dalam data aplikasi, ketika kita memulai nya, tampak seperti yang ditunjukkan pada gambar.
Tujuan nya adalah untuk mengetahui apakah ada Konten Provider yang di implementasikan dalam aplikasi ini, Jika YA, kita perlu memeriksa dan mengExploitasi apakah itu rentan terhadap kebocoran data.
Topics Involved
- Pengumpulan Informasi.
- Attacking kerentanan Konten Provider.
- Mengamankan Aplikasi.
Pengumpulan Informasi
Seperti Pentest lain, mari kita mulai dengan pengumpulan informasi, dan berasumsi bahwa memiliki file APK nya, Jadi, Mendekompilasi file APK didownload seperti yang di tunjukan pada Bagian 1 dan memeriksa file AndroidManifest.xml untuk setiap penyedia konten yang terdaftar, Kita juga harus memeriksa file terkecil untuk semua URI yang digunakan dlaam aplikasi.
Konten Provider umumnya terdaftar dalam file AndroidManifest.xml dalam format berikut.
So let's go ahead and the manifest file.
Pada gambar di atas memiliki satu konten provider dalam file AndroidManifest.xml dan kabar baiknya adalah, itu di ekxpor untuk di akses oleh semua aplikasi lain.
Attacking Kerentanan Konten Provider
Ini adalah yang paling menarik, Mari sekarang mencoba untuk meminta Konten Provider yang kita temukan , if it returns any data, maka itu adalah rentan, Hal ini dapat dilakukan dalam berbagai cara.
- Menggunakan shell adb
- Menggunakan Aplikasi berbahaya untuk querynya.
- Menggunakan Mercury Framework.
Menggunakan adb
Untuk query Konten Provider dari adb, aplikasi harus di install pada perangkat.
Dapatkan shell adb pada perangkat dan ketik perintah berikut untuk query Konten Provider. dalam kasus ini, query URI ditemukan di MyProvider.smali file yang di Ekstrak oleh APK tool.
Content-query-uri content://com.isi.contentprovider.MyProvider/udetails
Kita Harus melihat semua rincian yang disimpan ke aplikasi db seperti pada gambar berikut
Menggunakan aplikasi berbahaya untuk query
Kita bahkan dapat mengetik aplikasi berbahaya untuk query dtaa dari Konten provider, Berikut adalah potongan kode untuk query pada kotak masuk dari perangkat mobile.
Menggunakan Mercury Framework
Seluruh proses dapat dilakukan dengan menggunakan Mercury Framework bahkan lebih efisien dan dengan cara yang sederhana.
Mengamankan Aplikasi
1. Setting android : meng-Ekspor attribute's value ke false:
Dalam file AndroidManifest.xml dari aplikasi kita, kita harus menambahkan stribut ke Konten Provider untuk di amankan, Dalam kasus ini, com.isi.contentprovider.MyProvider adalah Konten Provider.
Jika kita mencoba untuk qury konten provider di android: ekspor value di set ke false. ia akan melakukan pengecualian seperti pada gambar berikut
Catatan : Default Value dari android: di ekspor is true untk semua aplikasi yang menggunkana API tingkat rendah dari 17
2. Membatasi akses dengan izin kustom
dapat juga memberlakukan pembatasan izin berbasis dengan mendefinifikan hak akses kustom untuk suatu aktivitas. Hal ini berguna jika pengembang ingin membatasi akses ke komponen app nya kepada orang- aplikasi yang memiliki izin.
Isu lain dengan Konten Provider
SQL Injection : Jika kontrol keamanan tidak diterapkan dengan benar, konten provider dapat Menyebabkan serangan pada sisi klien seperti SQL Injection, Ini bekerja mirip Dengan serangan Tradisional SQL Injection.
Path Traversal : Ini adalah satu serangan lagi yang bisa dilakukan jika Konten Provider tidak diterapkan dengan benar, Hal ini mirip dengan serangan Path Traversal pada aplikasi web, Hal ini memungkinkan Attacker untuk melintasi dan melihat file local system/ File sensitif dapat ditransfer dari perangkat ke komputer lokal dengan menggunakan sebuah aplikasi yang menyerang Vulnerable terhadap Path Travelsal.
No comments:
Post a Comment