Video: Dahsyatnya Serangan Siber Virus Malware Wannacry (Desember 2024)
Tanda Tangan Digital Tidak Rusak
Inti dari menandatangani dokumen atau file secara digital adalah untuk membuktikan bahwa file tersebut belum dimodifikasi. Proses ini menggunakan bentuk kriptografi kunci publik. Anda menandatangani file secara digital dengan mengenkripsi file itu dengan kunci pribadi Anda. Fakta bahwa file terenkripsi dapat didekripsi menggunakan kunci publik Anda adalah bukti bahwa tidak ada gangguan. Seandainya BlueBox menemukan cara untuk benar-benar memodifikasi file tanpa mengubah tanda tangan digitalnya, itu akan menjadi pukulan mengejutkan bagi seluruh industri crypto. Tetapi mereka tidak melakukannya.
BlueBox akan melaporkan rincian lengkap penelitian mereka di konferensi Black Hat dalam beberapa minggu. Namun, peneliti ViaForensics Pau Oliva Fora telah memposting bukti kode konsep yang menggambarkan pendekatan yang diambil.
Sebenarnya, ini sangat, sangat sederhana. File APK dikemas menggunakan versi algoritma pengarsipan ZIP yang tersebar luas. Sebagian besar implementasi ZIP tidak akan mengizinkan dua file dengan nama yang sama dalam satu arsip, tetapi algoritme itu sendiri tidak melarang kemungkinan itu. Saat memeriksa tanda tangan digital aplikasi, OS Android melihat file yang cocok pertama, tetapi ketika benar-benar mengeksekusi dan meluncurkan file, itu mengambil yang terakhir . Untuk mem-Trojanize suatu aplikasi, yang perlu Anda lakukan hanyalah memasukkan kode jahat Anda ke dalamnya menggunakan nama yang sudah ada dalam aplikasi tersebut. Demonstrasi Fora hanyalah beberapa lusin baris kode Java.
Serangan Struktural Lainnya
Seorang peneliti Cina yang menulis blog sebagai Android Security Squad menemukan demonstrasi itu menarik dan mencari cara lain untuk menumbangkan proses verifikasi. Membaca posting yang diterjemahkan Google agak sulit, tetapi tampaknya serangannya bergantung pada konsep tingkat Ilmu Komputer 101.
Program komputer menyimpan angka penghitungan dalam koleksi bit ukuran tetap. Misalnya, dengan delapan bit Anda dapat mewakili angka dari 0 hingga 255. Jika perlu untuk mewakili angka negatif, konvensi lama adalah bahwa bit paling kiri menunjukkan angka negatif. Dengan delapan bit, maka, Anda juga bisa mewakili angka dari -128 hingga 127. Angka biner 11111111 mewakili 255 atau -1, tergantung pada apakah itu dimaksudkan sebagai angka yang tidak ditandatangani atau ditandatangani.
Android Security Squad meneliti format header file APK dan menemukan bidang data yang dianggap sebagai offset positif, tetapi disimpan sebagai integer yang ditandatangani. Memaksa bidang ini ke nilai negatif tertentu menyebabkan pemuat APK menjalankan kode berbahaya, bukan kode yang ditandatangani secara digital. Oke, ini sedikit lebih rumit, tapi begitulah cara kerjanya.
Tetap Dengan Google Play
Tak satu pun dari peretasan ini benar-benar merongrong mekanisme tanda tangan digital Android. Sebaliknya, mereka berdua memanfaatkan kebiasaan dalam struktur APK untuk membuat tanda tangan digital tidak relevan. Juga, tidak satu pun dari mereka akan memungkinkan aplikasi Trojanized untuk menyelinap melewati analisis Google. Google secara khusus memperbarui Google Play untuk memfilter aplikasi yang di-Trojanized menggunakan serangan "master key"; bahkan tanpa langkah itu, keamanan standar hampir pasti akan memblokir kedua jenis aplikasi Trojanized.
Pelajarannya jelas. Selalu dapatkan aplikasi Anda dari sumber yang sah, selalu periksa untuk memastikan nama pengembangnya valid, dan konfigurasikan ponsel Anda sehingga tidak mengizinkan pemasangan aplikasi dari "sumber yang tidak dikenal." Perhatikan izin mana yang diminta aplikasi, dan siap untuk membatalkan instalasi yang tampak mencurigakan. Jika operator Anda menawarkan pembaruan Android, selalu instal. Itu hanya akal sehat!