Monday 28 April 2014

Overview Analisis Malware Android



            Malware adalah perangkat lunak yang digunakan untuk mengganggu dan mengumpulkan informasi sensitif atau mendapatkan akses ke sistem swasta. Setiap program atau software yang mempengaruhi kerja perangkat dapat disebut malware.

Saat ini, Ponsel telah menjadi korban serangan malware. Di antara serangan malware ponsel, ponsel pintar Android yang sebagian besar ditargetkan oleh hacker. Hal ini terutama karena alasan bahwa pasar aplikasi Android menyediakan platform terbuka untuk aplikasi. Faktor utama lainnya adalah bahwa lebih dari lima puluh perusahaan ponsel memproduksi smartphone dengan sistem operasi Android.



Ini basis pengguna besar android telah menarik perhatian penjahat cyber, yang telah mulai double down pada upaya mereka untuk memperoleh informasi pribadi secara ilegal dari pemilik Android. Malware ponsel dapat memungkinkan penjahat cyber untuk mencegat pesan, memonitor panggilan, mencuri informasi pribadi, dan bahkan mendengarkan dengan perangkat microfon.

Aplikasi BBM palsu adalah contoh yang bagus, dan itu berhasil mengamankan lebih dari 100.000 download sebelum dihapus.


Android Fundamentals

Lapisan arsitektur Android adalah sebagai berikut:

Sebuah Kernel Linux yang mendukung multi-proses dan multi-thread. Setiap aplikasi memiliki ID Linux sendiri dan berjalan dalam proses terpisah. Dua aplikasi dengan ID yang sama dapat bertukar data antara mereka.


  • Beberapa librari opensource.
  • Android  run-time environtment, dimana Dalvik Virtual Machine menjalankan aplikasi dalam format biner dex.
  • Sebuah  aplikasi framework yang memiliki Java Interface. Lapisan ini terdiri dari  Android NDK dan SDK.
  • Beberapa aplikasi inti pra-instal

Sebagian besar aplikasi Android ditulis dalam bahasa pemrograman Java. Kode Java dikompilasi, bersama dengan data dan file sumber daya yang dibutuhkan oleh aplikasi, dibundel ke dalam paket Android.

Setiap aplikasi Android terdiri dari beberapa komponen yang dapat berkomunikasi antara satu sama lain menggunakan pesan Intent. Berikut adalah daftar dari komponen-komponen dan deskripsi singkat dari masing-masing:


  • Kegiatan : Suatu kegiatan merupakan satu layar dengan user interface. Salah satu aplikasi mungkin terdiri dari beberapa kegiatan.
  • Layanan : layanan A tidak memiliki antarmuka pengguna visual, melainkan berjalan di latar belakang untuk waktu yang tidak terbatas.
  • Broadcast Receiver : Sebuah penerima siaran mendengarkan pesan khusus yang disiarkan oleh sistem atau aplikasi individual. Sebagai contoh, bila telepon menerima SMS, pesan broadcast yang dikirim oleh sistem untuk memberitahukan bahwa pesan tersedia.
  • Content Provider : Sebuah penyedia konten adalah semacam database di mana sebuah aplikasi membuat data yang tersedia untuk aplikasi lain. Anda dapat menyimpan data dalam sistem file, database SQLite, di web, atau lokasi penyimpanan persisten lainnya aplikasi Anda dapat mengakses.


Analisis Malware

Untuk meng-analisis malware dari Android, disini menggunakan Santoku, dibuat oleh viaForensics, memiliki tiga tujuan, yaitu Ponsel Forensik, Mobile Forensik dan Mobile Security.

Santoku memiliki alat yang paling terkenal untuk memeriksa malware mobile dan berisi emulator perangkat mobile, Utilitas untuk mensimulasikan layanan jaringan untuk analisis dinamis, dekompilasi dan alat pembongkaran. Ada dua pendekatan untuk analisis malware android , statis dan dinamis.

Aplikasi AndApp.apk adalah aplikasi Android berbahaya untuk tujuan demonstrasi.


Analisis Statis

Analisis statis dapat menghasilkan banyak informasi yang berguna tentang APK seperti izin yang diminta, yang disebut API dll. Untuk analisis statis, kita menggunakan disassembler, yang digunakan untuk mengubah kode ke dalam format yang mudah dimengerti. Kita harus mulai dengan Analisis Kode untuk memahami kerja dengan benar. Untuk ini, kita harus menggunakan pendekatan sebagai berikut.



Ketika seorang pengguna menginstal apk pada perangkat, file apk diekstrak dan ketika aplikasi yang diinisialisasi, itu memicu suatu kegiatan. Kegiatan ini disebutkan dalam file Android Manifest.

Apktool dapat decode kode berbahaya ke kode aslinya. Apktool digunakan untuk mengkonversi AndroidManifest biner file XML ke xml dibaca untuk memiliki informasi tentang komponen aplikasi dan izin yang diminta oleh aplikasi ini selama menginstal.

Buka jendela command prompt dan arahkan ke direktori root dari ApkTool. Kami menguraikan file AndApp.apk menggunakan perintah berikut seperti yang ditunjukkan:


The AndroidManifest.xml file shows suspicious file permission granted to the application.


Berikut ini adalah izin yang digunakan oleh aplikasi ini.


  • INTERNET : Memungkinkan aplikasi untuk membuat soket jaringan.
  • READ_PHONE_STATE : Memungkinkan hanya membaca akses ke negara telepon (nomor telepon ex.)
  • ACCESS_COARSE_LOCATION : Location berdasarkan WIFI
  • ACCESS_FINE_LOCATION : Location berdasarkan GPS
  • SEND_SMS : Kirim SMS
  • READ_SMS : Baca SMS


Unzip isi dari file terkompresi AndApp.apk untuk analisis.


  1. Meta INF Folder: Folder ini terdiri dari informasi yang memungkinkan pengguna untuk memastikan keamanan sistem dan integritas aplikasi APK.
  2. Folder res: Folder ini berisi XML mendefinisikan tata letak, atribut dll
  3. Android Manifest File: Ini adalah salah satu dari file XML yang paling penting, yang berisi informasi tentang izin kebutuhan aplikasi atau mengakses, nama paket, versi dll
  4. Classes.dex: File ini berisi semua sumber kode Java yang dikompilasi. File ini dijalankan pada Machine Dalvik. File ini terdiri dari kode byte lengkap, Mesin Dalvik yang akan menafsirkan.
  5. Resources.arsc: File ini adalah file sumber daya biner yang diperoleh setelah kompilasi.


Kita perlu kode java untuk kejelasan yang lebih baik untuk itu kita perlu mengkonversi file ke file jar classes.dex.. Dex2Jar adalah alat yang digunakan untuk mengubah kode dex ke jar Java *.. Untuk membuka Dex2Jar kita harus pergi ke Santoku menu-> Reverse Engineering-> Dex2Jar.

Conversion of classes.dex file to .jar file can be done by the command given below:

Setelah file jar dihasilkan, kita memerlukan alat bernama JD-GUI yang akan memuat tabung dan daftar keluar paket java dan file yang sesuai. JD-GUI adalah alat yang digunakan untuk melihat file classes_dex2jar.jar. Ini menyediakan GUI yang dapat memuat semua paket tertanam dalam file jar dan daftar kode classes_dex2jar.jar.

Untuk membuka JD-GUI kita harus pergi ke Santoku menu-> Reverse Engineering-> JD-GUI.


Menggunakan alat ini, kita dapat menelusuri kode sumber direkonstruksi untuk akses cepat ke metode dan field.
File MyActivity.class menetapkan alarm untuk lokasi berdasarkan WIFI, GPS, Kirim SMS, Baca SMS dll dan alarm akan dipicu / sinyal siaran, setelah waktu tertentu.

Kegiatan asli akan dimulai pada perangkat dan pengguna tidak dapat melihat  Kegiatan  mencurigakan yang berjalan di latar belakang.
Paket com.org.andapp.listner berisi semua Broadcast kelas pendengar, yang mendengarkan pesan broadcast. Ketika pesan broadcast dipicu, kelas mendaftar mulai mendengarkan acara tersebut dan mulai bekerja di latar belakang.

GetGPSReciver mengatur alarm (lihat localGregorianCalander.add (12,15)) dari MainActivity.class. Bila alarm dipicu metode OnReceive dipanggil dan informasi jaringan dengan akun Google dikirim ke server.

SMSReciver.class register sendiri dengan layanan broadcast SMS ketika aplikasi diinstal pada perangkat. Bila perangkat menerima SMS, semua kelas pendengar akan dipanggil dan metode OnReceive salinan SMS dan mengirimkannya ke server.

SmsReceiver.class uploads the user data into the remote server using HTTP calls.

Dengan melihat kode sumber dari SmsReceiver.class, diamati bahwa file bernama SmsReceiver.class tampak mencurigakan karena ini adalah tampilan aplikasi teks sederhana dan karena itu SmsReceiver tidak diperlukan.


Analisis Dinamis

Satu set teknik, yang melibatkan menjalankan aplikasi dalam lingkungan yang terkendali dan memantau perilakunya, yang dikenal sebagai analisis dinamis.

Langkah pertama yang terlibat dalam analisis dinamis malware yang menginstal SDK android dalam rangka menciptakan perangkat virtual. Untuk membuat perangkat virtual kita harus pergi ke menu Santoku -> Development Tools -> Android SDK Manajer


Klik Tools dan kemudian pilih Manage AVDs dalam rangka menciptakan sebuah perangkat Android virtual.


Setelah kita klik di Menage AVDs, kita pilih New, dan mengisi bidang yang diperlukan seperti yang ditunjukkan di bawah ini dan pilih ok.

Setelah AVD baru dibuat, kita kemudian pilih AVD itu dan klik Start untuk menjalankan virtual device / emulator.


Untuk memeriksa apakah Santoku benar berkomunikasi dengan perangkat emulator kita atau tidak kita akan menggunakan adb yaitu Android Debug Bridge.

Kami akan menggunakan  perintah perangkat adb dan harus kembali dengan nomor seri dan perangkat. Jika tidak bisa maka akan menunjukkan beberapa pesan error berarti itu tidak berkomunikasi dengan benar.

Bila sambungan dibuat berhasil maka kita harus menginstal aplikasi berbahaya yaitu AndApk.apk oleh perintah yang diberikan di bawah ini. Setelah output dari perintah ini adalah Sukses, aplikasi berhasil diinstal pada emulator.

Ketika malware tersebut berhasil terinstal, dapat dilihat di layar menu emulator.

Tcpdump digunakan untuk menangkap lalu lintas jaringan. Hal ini memungkinkan kita untuk mencegat dan menampilkan TCP / IP dan paket-paket lain yang sedang dikirim atau diterima melalui jaringan. Untuk membuka tcpdump kita harus pergi ke menu Santoku -> Wireless analyzer -> tcpdump.


Untuk mulai menangkap paket-paket kita dapat menggunakan perintah disebutkan di bawah ini:


Dimana:
Opsi-i, memungkinkan Anda untuk menyaring pada antarmuka ethernet tertentu.

-W option menulis paket ke dalam sebuah file yang diberikan. Ekstensi file harus pcap., Yang dapat dibaca oleh wireshark .

Setelah semua hal tersebut dilakukan, kami siap untuk memulai aplikasi berbahaya kami.

Fronthand aplikasi berisi hanya dua kata "hello world" bersandar layanan dijalankan dalam backhand. Untuk memuat emulator saya dengan rincian uji pengguna seperti SMS, saya menggunakan pendekatan berikut:

Buka terminal, kemudian Ketik "telnet localhost 5554" dimana 5554 adalah nomor port emulator android (Anda dapat menemukan port number dalam title emulator). Lalu ketik, "sms send sender_Phone_Number test_message" lalu tekan enter.

Ketika semuanya berjalan benar Anda akan mendapat jawaban: OK

Kemudian kita buka file pacp. Untuk menganalisis yang diciptakan oleh tcpdump menggunakan wireshark.

Sementara menganalisa file yang ditangkap kita melihat bahwa ada sejumlah besar permintaan yang timbul dari mesin sumber host (192.168.30.148) ke server tujuan, yang terlihat mencurigakan.

Untuk menemukan daerah di mana domain ini di-host kita hanya pergi ke ip2location.com dan mencari IP dari server:


Kami memeriksa aliran TCP dari permintaan disebutkan kami menemukan bahwa aplikasi berbahaya mengirimkan data ke server mana sumbernya adalah mesin host.


Setelah analisis, kami memahami bahwa AndApk.apk adalah aplikasi berbahaya yang meng-ekstrak informasi pengguna seperti lokasi, pesan dan meng-upload data pengguna yang diekstraksi ke dalam web server jauh, yang terletak di Amerika Serikat, North Carolina.


Melindungi Telepon Android Anda dari Malware

Malware ponsel terus meningkat dan perangkat mobile bisa beresiko. Berikut adalah langkah yang dapat diambil terhadap ancaman software mobile


  • Menginstal aplikasi hanya dari official Google Play Store, atau dari toko aplikasi yang sah.
  • Lindungi ponsel Anda dengan Sandi
  • Perhatikan baik-baik program apapun sebelum Anda menginstalnya untuk memastikan itu sah dan hanya meminta izin yang diperlukan
  • Hindari memungkinkan opsi debugging USB pada perangkat Anda
  • Fitur seperti Wi-Fi, Bluetooth, dll yang tidak digunakan harus dinonaktifkan.
  • Upgrade, jika mungkin, untuk versi terbaru dari Android.


Kesimpulan

Dalam beberapa tahun terakhir, pengguna smartphone telah meningkat secara eksponensial. Kami melihat pertumbuhan konstan dengan adanya risiko keamanan antara aplikasi Android dan penyerang secara terus-menerus menemukan metode baru untuk menerobos ke dalam perangkat.

Tantangan dan masalah analisis malware tersebut adalah bahwa penyerang menggunakan bahasa pemrograman yang berbeda, pengepakan untuk menyembunyikan kode lebih besar atas penggunaan enkripsi dan teknik membingungan untuk mencegah dari mendapatkan sumber kode.

Aplikasi Android dapat dinilai untuk aktivitas berbahaya dalam dua cara: melalui analisis statis dan dinamis. Dalam statis, kita melakukan Analisis Kode oleh decompiling file aplikasi dan dinamis; kita melakukan analisis perilaku dengan mengeksekusi aplikasi di emulator.



Referensi

No comments:

Post a Comment