Pendahuluan
Perangkat seluler - ponsel cerdas, tablet, dan perangkat seluler lainnya - menjadi bagian integral dari kehidupan manusia. Hampir 67% orang di dunia memiliki setidaknya satu smartphone; 5,8 miliar perangkat seluler aktif diperkirakan pada tahun 2025 [1].
Menurut IDC [2], dari semua perangkat seluler yang dijual pada kuartal ketiga 2018, 86,8% dilengkapi dengan OS Android. Jumlah pengguna yang menggunakan OS Android lebih dari 1,4 miliar. Menurut Securelist [3], pada 2018, 5,3 juta paket perangkat lunak berbahaya untuk keluarga Android OS terdeteksi. Oleh karena itu, seorang spesialis di bidang forensik komputer harus menggunakan metode yang berbeda untuk mengekstraksi salinan memori untuk setiap perangkat.
Saat ini, tidak ada cara untuk mendapatkan salinan memori secara seragam dari perangkat yang menjalankan OS Android. Dalam hal ini, seorang spesialis dalam forensik komputer harus menggunakan banyak metode yang berbeda, di mana ia dihadapkan dengan masalah teknis. Pertama-tama, masalah terkait dengan kurangnya driver atau dengan kerusakan konektor USB yang digunakan dalam metode tradisional untuk ekstraksi data. Namun, untuk mendapatkan dan mengirimkan salinan memori, Anda dapat menggunakan saluran komunikasi nirkabel [4].
Bagian 1 akan menjelaskan arsitektur OS Android, skenario untuk menggunakan RAM, struktur data yang terkandung dalam RAM, perangkat lunak untuk mendapatkan salinan memori, dan perangkat lunak untuk mentransmisikan data.
Bagian 2 akan menjelaskan arsitektur suatu sistem untuk mendapatkan salinan RAM, koneksi antara subsistem dan modul.
Bagian 3 akan menjelaskan implementasi sistem untuk mendapatkan salinan RAM.
Bagian 1: Mengeksplorasi cara untuk mendapatkan salinan memori di perangkat yang menjalankan OS Android melalui saluran nirkabel
Bagian ini membahas perangkat lunak untuk memperoleh salinan memori dan perbandingannya, protokol jaringan untuk mentransfer salinan RAM, cara menjalankan file yang dapat dieksekusi melalui koneksi nirkabel untuk OS Android, struktur RAM, dan juga skenario untuk menggunakan salinan RAM.
Skenario untuk menggunakan salinan RAM
Saat ini, sistem operasi Android hadir pada perangkat yang berbeda berkat kernel Linux dan mesin virtual Dalvik. Makalah ini membahas perangkat yang berjalan pada platform perangkat keras ARM dan x86 yang paling umum.
Salinan memori adalah data biner terstruktur yang sulit untuk dianalisis tanpa alat khusus yang sesuai. Pada saat penulisan ini, perangkat memiliki ukuran RAM tidak lebih dari sepuluh gigabyte, yang secara signifikan meningkatkan waktu analisis salinan RAM ukuran ini. Saat ini, tidak ada cara tunggal untuk menganalisis semua struktur RAM. Untuk analisis RAM yang lengkap membutuhkan penggunaan beberapa alat perangkat lunak.
Tidak ada jaminan untuk analisis yang berhasil dari salinan RAM, bahkan jika Anda memiliki semua alat yang diperlukan karena masalah pada tahap memperoleh salinan memori. Jika tidak ada kemungkinan untuk terhubung ke perangkat atau ada risiko besar kerusakan data, maka cara nirkabel untuk mendapatkan salinan memori tetap menjadi satu-satunya dan aman. Sayangnya, saat ini tidak ada alat perangkat lunak untuk secara otomatis menerima salinan memori melalui komunikasi nirkabel.
Salinan dapat digunakan dalam forensik komputer. Misalnya, jika data pada perangkat yang diteliti dienkripsi, salinan memori dapat membantu mendekripsi data yang berisi kata sandi dan kunci kriptografi [5]. Setiap aplikasi yang memproses data pribadi menggunakan enkripsi data. Memiliki gambar salinan RAM dan beberapa keterampilan dalam bekerja dengannya, ada kemungkinan untuk mengembalikan pesan terbaru atau file sementara yang dapat membantu dalam penyelidikan forensik.
Dalam kasus serangan pada perangkat, analisis salinan RAM perangkat memungkinkan Anda untuk mengetahui bagaimana serangan itu dilakukan, saluran komunikasi, malware dan kerentanan apa yang digunakan oleh penyerang untuk mencegah serangan seperti itu di masa depan.
Menyalin data penting secara berkala untuk mendeteksi perangkat lunak berbahaya. Pendekatan ini digunakan untuk mendeteksi malware yang menggunakan metode untuk menyembunyikan keberadaannya di sistem.
Juga, salinan memori (atau bagian yang hanya berisi konteks aplikasi atau proses yang sedang dipelajari) dapat digunakan untuk mengidentifikasi kerentanan dan fitur-fitur tidak terdokumentasi dari perangkat lunak. Alat perangkat lunak khusus yang ada menggunakan salinan RAM untuk mendeteksi rootkit [6]. Salinan memori seluruh sistem dapat digunakan untuk memantau perubahan di seluruh sistem untuk mengidentifikasi tindakan ilegal.
Untuk menganalisis salinan operasional, Kerangka Volatilitas digunakan [7]. Volatility Framework adalah seperangkat alat untuk mendapatkan dan menganalisis salinan RAM dari berbagai sistem operasi, termasuk Android. Dengan menggunakan alat ini, Anda bisa mendapatkan informasi yang diperlukan yang terdapat dalam gambar RAM. Untuk mendapatkan salinan RAM, Volatility Framework menggunakan modul kernel LiME. Untuk mengekstrak salinan RAM melalui LiME, diperlukan kode sumber dari kernel Linux perangkat yang diteliti.
Analisis alat dan metode untuk mengeksekusi file yang dapat dieksekusi melalui koneksi nirkabel untuk Android OS
Untuk menginstal aplikasi, seperti pada sistem operasi mirip UNIX, paket digunakan. Di Android, paket ini memiliki ekstensi .apk. Paket-paket tersebut disimpan dalam memori perangkat bahkan setelah instalasi dan dihapus hanya ketika aplikasi dihapus. Paket .apk berisi kode Java yang dikompilasi, serta file AndroidManifest.xml yang menyatakan izin yang diperlukan agar aplikasi berfungsi.
Ada dua jenis aplikasi: sistem dan pengguna. Aplikasi sistem, tidak seperti aplikasi pengguna, memiliki lebih banyak hak istimewa, sehingga mengubah atau menghapusnya hanya mungkin jika Anda memiliki hak pengguna super. Paket aplikasi pengguna berada di direktori "/ data / app". Paket aplikasi sistem terletak di direktori "/ system / app".
Dimulai dengan Android 5.0, mesin virtual Android Runtime digunakan alih-alih mesin virtual Dalvik. Tidak seperti DalvΓk, Android Runtime tidak mengkompilasi aplikasi saat startup, tetapi selama instalasi. Ini meningkatkan kecepatan peluncuran program dan meningkatkan masa pakai baterai. Untuk memastikan kompatibilitas, Android Runtime menggunakan bytecode yang sama dengan Dalvik.
Tidak seperti proses sistem, proses pengguna memiliki lebih sedikit hak istimewa pada sistem. Untuk mendapatkan hak istimewa seperti proses sistem, proses pengguna membutuhkan hak pengguna super atau hak "root". Superuser adalah pengguna sistem operasi yang memiliki hak tak terbatas dalam sistem.
Hak pengguna super terdiri dari dua jenis: permanen dan sementara. Hak superuser permanen dipertahankan bahkan setelah reboot, dan hak sementara berlaku hingga perangkat di-boot ulang.
Biasanya, hak pengguna super pada perangkat tidak tersedia. Karena beragamnya perangkat, tidak ada cara yang seragam untuk mendapatkan hak pengguna super. Oleh karena itu, untuk mendapatkan hak pengguna super, berbagai alat digunakan. Diperolehnya hak pengguna super untuk mendapatkan salinan memori dari perangkat Android.
Untuk menjalankan file yang dapat dieksekusi, beberapa hak istimewa diperlukan pada sistem, serta seperangkat perintah Unix. Awalnya, Android memiliki beberapa set perintah minimal, yang biasanya tidak cukup untuk mendapatkan salinan memori. Oleh karena itu, mereka menggunakan BusyBox, yang mencakup serangkaian perintah yang diperluas. Utilitas yang disertakan dengan BusyBox memungkinkan Anda untuk bekerja dalam sistem file, meluncurkan aplikasi, menampilkan informasi sistem, dan banyak lagi. Dimungkinkan juga untuk membuat skrip shell.
Skrip shell adalah file yang dapat dieksekusi yang berisi skrip untuk mengeksekusi serangkaian perintah. Berbeda dengan aplikasi, skrip shell tidak memerlukan instalasi dan kompilasi. Jika Anda perlu memperbaiki sesuatu, maka lakukan saja perubahan pada file skrip shell.
Karena file yang dapat dieksekusi diluncurkan melalui komunikasi nirkabel, kami akan mempertimbangkan dua cara untuk meluncurkan file yang dapat dieksekusi menggunakan ADB dan SSH.
Untuk metode pertama, cukup menjalankan βsetprop service.adb.tcp.port 5555; hentikan adbd; mulai adbd β. Selanjutnya, jalankan prompt perintah di komputer dan sambungkan ke perangkat menggunakan perintah "adb connect X", di mana "X" adalah alamat IP perangkat di jaringan dan nilai port adalah 5555. Untuk menjalankan file yang dapat dieksekusi, gunakan perintah "adb shell am start -n com. package.name/com.package.name.ActivityName βjika ini adalah aplikasi. Jika file yang dapat dieksekusi adalah skrip shell, maka itu diluncurkan menggunakan perintah "adb shell ./name", di mana nama adalah nama skrip.
Metode kedua menggunakan protokol SSH. Berbeda dengan metode sebelumnya, metode ini membutuhkan klien SSH di komputer, dan server SSH di perangkat. Di Windows, Anda dapat menggunakan Putty, atau di Linux Openssh. Setelah menghubungkan perangkat ke komputer, kami mendapatkan akses ke shell perintah Shell. Perintah untuk menjalankan file yang dapat dieksekusi sama seperti pada metode pertama.
Dengan demikian, dapat dilihat bahwa kedua metode hanya berbeda dalam metode koneksi. Kedua metode menggunakan shell perintah Shell untuk menjalankan file yang dapat dieksekusi. Dari sini dapat disimpulkan bahwa ketika mendapatkan akses ke shell, Anda dapat menjalankan perintah apa pun, serta menjalankan file yang dapat dieksekusi, apakah itu aplikasi atau skrip shell.
Alat perangkat lunak untuk mendapatkan salinan RAM
Metode perangkat lunak yang ada dapat dibagi menjadi dua kategori:
- mendapatkan salinan memori dari ruang pengguna dan kernel;
- mengambil salinan memori hanya dari ruang pengguna.
Alat perangkat lunak untuk mengambil salinan ruang pengguna dan ruang kernel termasuk AMExtractor dan LiME. Alat Mem dan Memfetch hanya bisa mendapatkan salinan memori dari ruang pengguna saja.
Pertimbangkan alat perangkat lunak yang disebutkan di atas untuk mendapatkan salinan RAM dari perangkat di bawah kendali sistem operasi Android:
- Mem: utilitas open source yang digunakan untuk mendapatkan data RAM proses [8];
- Memfetch: utilitas open source untuk mendapatkan ruang alamat RAM proses menggunakan perangkat / proc / $ pid / peta dan / proc / $ pid / mem [9];
- LiME: modul untuk kernel Linux dengan kode sumber terbuka untuk mendapatkan data yang disimpan dalam RAM di ruang pengguna dan kernel [10];
- AMExtractor: utilitas open source yang menggunakan perangkat pseudo / dev / kmem untuk memuat ke dalam memori kernel [11].
Program Mem dan Memfetch dapat digunakan tanpa konfigurasi awal, tetapi mereka tidak dapat memperoleh data dari area memori kernel dan membutuhkan hak pengguna super untuk pekerjaan mereka.
Terlepas dari penggunaannya yang luas dan keserbagunaannya, modul LiME membutuhkan konfigurasi dan kode sumber yang benar untuk kernel Linux untuk setiap perangkat.
Agar AMExtractor berfungsi, informasi diperlukan tentang jenis model pengalamatan memori virtual yang digunakan oleh hak kernel dan superuser.
Alat perangkat lunak yang dipertimbangkan dalam karya ini, kode sumber yang tersedia untuk umum, hanya digunakan untuk mendapatkan salinan RAM.
Alat perangkat lunak seperti Oxygen, UFED, dan MSAB XRY harganya mahal dan hanya tersedia untuk penggunaan komersial. Program tingkat ini mampu: menerima salinan memori dari perangkat yang terkunci, mendapatkan hak pengguna super, menghasilkan laporan forensik, dan banyak lagi.
Alat ANDROPHSY adalah alat sumber terbuka pertama yang mendukung semua tahap penyelidikan forensik perangkat Android [12]. Arsitektur ANDROPHSY terdiri dari empat modul utama: modul pemrosesan, modul koleksi, modul analisis, dan modul pelaporan. Akuisisi data dilakukan dengan menggunakan alat dd dan layanan ADB. Kabel USB digunakan untuk menghubungkan antara komputer dan perangkat yang sedang diselidiki, dan data ditransmisikan melalui protokol TCP.
Konfirmasi relevansi karya ini adalah adanya kekurangan di ANDROPHSY. Ini termasuk kinerja hanya di lingkungan Linux, kurangnya fungsi untuk mendapatkan dan menganalisis salinan RAM perangkat dan kurangnya koneksi ke perangkat melalui Wi-Fi atau Bluetooth untuk mengekstrak data.
Berdasarkan analisis, tabel komparatif dibangun (lihat Gambar 1). Dalam tabel 1, simbol "+" menunjukkan dana yang memenuhi persyaratan, dan simbol "-" menunjukkan yang sebaliknya.

Gambar 1 - Perangkat lunak untuk mendapatkan salinan RAM
Menurut hasil perbandingan, diputuskan untuk menggunakan AMExtractor untuk mengambil gambar RAM, karena penerimaan salinan lengkap dari RAM, serta kurangnya kebutuhan akan kode sumber kernel dan dukungan untuk memuat modul.
Perangkat Lunak Transfer Data
Kabel USB digunakan untuk mengambil data dari perangkat yang menjalankan sistem operasi Android. Sebagian besar perangkat Android dapat dihubungkan ke komputer pribadi menggunakan kabel USB.
Namun, selama penyelidikan perangkat Android, dapat terjadi bahwa tidak mungkin untuk mengekstrak data darinya menggunakan koneksi USB. Alasannya mungkin karena kabel yang rusak atau konektor yang rusak. Dalam kasus ini, hanya kartu memori eksternal, yang tidak ditemukan pada semua perangkat, akan tersedia untuk ahli untuk penelitian. Terkadang perangkat hanya berisi memori internal. Isi memori ini, serta RAM, dapat dihapus dengan aman melalui koneksi USB. Alternatif untuk koneksi kabel adalah nirkabel. Dari semua protokol nirkabel, sistem operasi Android mendukung yang paling populer: Wi-Fi dan Bluetooth.
Wi-Fi di perangkat Android modern digunakan untuk mengakses Internet atau mentransfer data. Perangkat seluler berbasis-droid mendukung sebagian besar standar Wi-Fi hingga 802.11ac. Kecepatan transfer data antara perangkat melalui Wi-Fi melebihi kecepatan transfer data melalui Bluetooth [13].
Untuk menghubungkan perangkat melalui Wi-Fi, cukup sambungkan ke titik akses bersama. Karena perangkat lain dapat terhubung ke jalur akses bersama, penting untuk membatasi akses mereka ke jaringan. Ketersediaan dukungan di Android, Wi-Fi Hotspot, memungkinkan Anda untuk menggunakan perangkat sebagai titik akses.
Protokol nirkabel Bluetooth, tersedia pada perangkat An-droid, dirancang untuk mentransfer data antara perangkat yang memiliki baterai kecil. Dibandingkan dengan Wi-Fi, kecepatan transfer file melalui Bluetooth jauh lebih rendah. Protokol didasarkan pada piconet yang terdiri dari simpul utama dan beberapa simpul bawahan [14]. Profil digunakan untuk mentransfer berbagai jenis data. Profil Bluetooth menentukan perintah dan fungsionalitas yang dapat dipertukarkan oleh perangkat di antara mereka. Setidaknya ada 27 profil Bluetooth.
Profil PAN digunakan untuk membuat WPAN antara dua perangkat. Profil HID memungkinkan Anda menghubungkan mouse, keyboard, dan perangkat periferal lainnya yang mendukung profil ini [14].
Dalam pekerjaan ini, berdasarkan pada fitur sistem operasi Android, kami mempertimbangkan transfer data perangkat lunak berikut:
- SSHFS: klien sistem file berbasis FUSE untuk memasang direktori jarak jauh melalui koneksi SSH [15];
- Rsync: utilitas open source yang menyediakan transfer data langkah demi langkah yang cepat [16];
- SCP: utilitas dan protokol untuk mengirimkan data melalui protokol SSH [17];
- SFTP: dibandingkan dengan SCP, yang memungkinkan Anda untuk hanya menyalin file, SFTP memiliki kemampuan untuk melakukan operasi file: misalnya, melanjutkan transfer file setelah pemutusan, menghapus file di server, dan banyak operasi lainnya [18];
- NetCat: Utilitas UNIX yang membaca dan menulis data melalui koneksi jaringan menggunakan protokol TCP atau UDP [19].
Utilitas rsync dalam banyak kasus digunakan untuk menyinkronkan file atau direktori. Selama sinkronisasi, hanya perubahan yang dikirim menggunakan algoritma pencarian checksum yang efektif. Fungsi Rsync memungkinkan Anda mentransfer melalui protokol SSH, mengkompres file, serta menyalin tautan, file perangkat, atribut pemilik, grup, dan hak.
Sebagian besar cara memperoleh salinan memori menggunakan protokol TCP untuk transfer data untuk mengecualikan kemungkinan menulis data ke memori perangkat yang sedang dipelajari.
Untuk transfer data yang aman, penting agar perangkat lunak menggunakan protokol SSH. Secure Shell Protocol (SSH) adalah protokol untuk login jarak jauh yang aman ke sistem dan layanan jaringan aman lainnya melalui jaringan tidak aman [20].
Kompresi data dapat secara signifikan meningkatkan laju transmisi pada bandwidth saluran rendah. Transfer file, beserta atributnya, sangat penting untuk analisis forensik berikutnya.
dd. dd , , .
(. 2). β+β , , β-β β .

2 β .
- NetCat, Rsync ,
PS ...