Pada awal tahun 2023, sistem SIEM milik Kaspersky mendeteksi adanya aktifitas jaringan yang mencurigakan pada kantor pusat mereka di Moscow. Setelah diselidiki, ternyata telah terjadi serangan siber yang menargetkan iPhone dan iPad milik beberapa karyawan mereka. Dengan segera mereka mengidentifikasi gadget-gadget yang terinfeksi dan menginisiasi proses forensik digital untuk mencari dan mempelajari malware yang dipakai pada serangan tersebut.

Kaspersky menulis perjalanan mereka dalam menginvestigasi serangan siber ini yang ternyata tidaklah mudah dan sebentar. Perjalanan membongkar misteri malware baru ini mereka namakan Operation Triangulation. Pada tulisan ini, kami merangkum langkah-langkah yang telah mereka lakukan untuk "menangkap" aplikasi yang telah berhasil menyusup ke perangkat-perangkat milik karyawan mereka.

Penemuan Awal

Setelah melakukan investigasi, sejumlah fakta menarik terungkap:

  1. Tidak lama sebelum melakukan aktivitas jaringan yang mencurigakan, perangkat tersebut terhubung ke server iMessage untuk menerima pesan dan file lampiran.
  2. Setelah download lampiran berukuran beberapa kilobytes, perangkat terhubung ke server backuprabbit.com selama kurang dari satu menit.
  3. Selanjutnya, perangkat terkoneksi dengan salah satu dari server berikut untuk sesi yang lebih lama:
  • cloudsponcer.com
  • snoeweanalytics.com
  • topographyupdates.com
  • unlimitedteacup.com
  • virtuallaughing.com

4.  Saat perangkat di-reboot, semua aktivitas mencurigakan berhenti.

Dikarenakan semua komunikasi dengan server-server tersebut terlindungi oleh HTTPS, tim Kaspersky kesulitan memperoleh informasi lebih rinci.

Investigasi Isi Perangkat

Langkah berikutnya adalah menyelidiki isi perangkat. Agar tidak menarik perhatian, tim Kaspersky menggunakan cadangan iTunes untuk menduplikasi perangkat tersebut. Menariknya, tidak ada indikasi eksploitasi atau instalasi malware. Namun, penemuan mengejutkan terjadi saat menganalisis rekaman aktivitas jaringan.

Image: Kasperksy

Dalam rekaman tersebut, terungkap data yang menunjukkan aktivitas jaringan yang melibatkan proses yang disebut "BackupAgent". Meskipun proses ini sebenarnya normal dalam iOS, tapi proses ini seharusnya tidak menggunakan jaringan untuk menjalankan tugasnya.

Sebelum proses ini dimulai, ada proses IMTransferAgent yang berfungsi untuk download lampiran dari iMessage. Namun, keanehan muncul karena tidak ada bukti adanya file baru di dalam folder lampiran, meskipun catatan waktu menunjukkan perubahan dalam isi folder tersebut.

Berbagai upaya dilakukan untuk menangkap file lampiran, mulai dari memblokir pesan iMessage hingga mencoba mencegat komunikasi HTTPS menggunakan server mitmproxy, namun semuanya tidak berhasil. Hingga suatu hari, server tersebut berhasil menangkap paket komunikasi dengan server C2 milik hacker.

💬
Server C2 adalah server pusat milik penjahat siber yang berfungsi untuk menjalin komunikasi dengan perangkat yang telah terinfeksi.

Setelah dilakukan analisis lebih lanjut, ternyata komunikasi ini berasal dari proses JS Validator, berfungsi mengumpulkan informasi tentang browser yang digunakan oleh korban. Sayangnya, isi komunikasi tersebut tidak dapat didekripsi karena JS Validator menggunakan algoritma enkripsi berbasis kriptografi kunci-publik. Proses ini melibatkan:

  1. Pembuatan sepasang kunci (privat dan publik).
  2. Berbagi kunci yang terbentuk dari kombinasi kunci privat JS Validator dan kunci publik server C2. Kunci ini digunakan untuk enkripsi dan dekripsi.
Image: Kasperksy

Diperlihatkan dalam gambar di atas, JS Validator membuat sepasang kunci dengan memanggil metode nacl.box.keyPair(). Untuk mendekripsi alur komunikasi, tim Kaspersky memutuskan untuk menginterupsi proses pembuatan pasangan kunci ini. Mereka membuat add-on pada server mitmproxy yang mencari panggilan metode nacl.box.keyPair(). Lalu, menggantinya dengan metode lain, nacl.box.keyPair.fromSecretKey(), yang menginisialisasi pasangan kunci dari kunci privat yang telah ditentukan, bukan diciptakan secara acak.

Image: Kasperksy

Dengan langkah ini, skema enkripsi JS Validator menjadi terganggu, memungkinkan untuk mendekripsi semua komunikasi yang terjadi.

Investigasi Isi Pesan dan Eksplorasi iMessage

Setelah berhasil membuka dan menyelidiki isi pesan antara iPhone korban dan server C2 hacker, yang ternyata berupa payload, ditemukan bahwa hacker tersebut mengeksploitasi kerentanan pada WebKit dan iOS kernel untuk menjalankan validator binary di iPhone korban. Salah satu tugas validator binary adalah menjalankan perintah SQL pada database SMS.db untuk menghapus jejak pesan iMessage.

Image: Kasperksy

Dengan membaca kode ‘uti == “com.apple.watchface”‘, dapat diketahui bahwa file lampiran yang dikirim melalui pesan iMessage adalah file watchface yang biasa digunakan pada smartwatch milik Apple.

Untuk mendapatkan file lampiran tersebut, tim Kaspersky mempelajari cara iMessage mengirim file lampiran. Berikut caranya:

  1. Pengirim membuat kunci AES secara acak dan mengenkripsi file lampiran.
  2. File lampiran yang telah dienkripsi dikirim ke server iCloud.
  3. Tautan iCloud yang disambung ke file lampiran serta kunci AES dikirim ke penerima pesan, dan keduanya dienkripsi menggunakan kunci-publik RSA milik  perangkat.

Langkah selanjutnya untuk mendapatkan file lampiran adalah dengan mendapatkan isi tautan dan kunci AES untuk mendekripsi. Meskipun mendapatkan tautan iCloud terbilang mudah dengan server mitmproxy yang dapat menghentikan alur komunikasi dengan server iCloud, namun untuk mendapatkan kunci AES, tantangannya jauh lebih besar. Hal ini dikarenakan kunci AES dikirim melalui protokol iMessage yang tidak dapat dicegah oleh server mitmproxy.

Oleh karena itu, tim Kaspersky harus menemukan cara untuk mencegah berhasilnya proses download, eksekusi, serta penghapusan file lampiran dan kunci AES dari database SMS.db. Akhirnya, mereka memutuskan untuk memodifikasi alur komunikasi antara server C2 dan iPhone korban, sehingga tautan iCloud tidak dapat di-download. Setelah itu, mereka mengekstrak kunci AES melalui backup iTunes. Dengan langkah-langkah ini, mereka berhasil membuka kunci dan mendekripsi file lampiran.

Penemuan Malware

Setelah berhasil memperoleh file lampiran, langkah berikutnya adalah mendapatkan komponen lanjutan yang akan di-download saat file lampiran tersebut dijalankan. Validator binary bertanggung jawab melakukan hal ini dengan menggunakan kombinasi kunci RSA dan AES untuk berkomunikasi dengan server C2. Penggunaan RSA sekali lagi membuat proses dekripsi menjadi rumit.

Di tahap ini, validator binary melakukan beberapa langkah:

  1. Membuat kunci AES secara acak.
  2. Mengenkripsi kunci AES dengan menggunakan kunci-publik RSA server C2, yang terdapat dalam konfigurasi validator.
  3. Mengenkripsi pesan yang dikirim ke server C2 dengan menggunakan kunci AES.
  4. Menerima respons dari server C2 setelah pesan terkirim.
  5. Mendekripsi respons menggunakan kunci AES yang sama.

Potongan kode di bawah ini memberikan gambaran bagaimana validator binary mengenkripsi seluruh data selama berkomunikasi dengan server C2.

Image: Kasperksy

Kode pertama menjalankan fungsi `serialize plist" untuk menyiapkan data yang akan dikirim. Setelah itu, register X0 menunjuk lokasi data yang akan dikirim.

Fungsi berikutnya yang dipanggil adalah encryptData. Fungsi ini memiliki dua argumen: pointer ke data yang dienkripsi dilewatkan ke register X0, sementara register X1 berisi plist dengan data konfigurasi, termasuk parameter enkripsi. Setelah fungsi ini dieksekusi, register X0 berisi pointer ke ciphertext.

Seperti langkah sebelumnya, diperlukan cara untuk mengubah proses enkripsi ini agar data dari iPhone korban dapat dicegat. Oleh karena itu, tim Kaspersky memutuskan untuk mengganti panggilan ke fungsi encryptData dengan instruksi NOP. Dengan cara ini, isi register X0 tidak ditimpa oleh pointer ke data yang terenkripsi, membuat validator mengirim data dalam bentuk teks murni ke server mitmproxy. Setelah data tiba di server mitmproxy, simulasi pengenkripsian data dilakukan menggunakan kunci enkripsi yang telah disiapkan. Dengan demikian, mereka memiliki kunci untuk mendekripsi respons yang dikirim oleh server C2 dan mengekstrak isi dari komponen tambahan untuk dipelajari.

Penutup

Sungguh panjang perjalanan tim Kaspersky untuk mendapatkan malware dan file pendukungnya. Mereka berhasil mengatasi tantangan dengan menerapkan serangkaian langkah forensik digital yang cermat dan inovatif, mulai dari penemuan awal hingga pemecahan kode enkripsi yang rumit. Kasus ini juga menyoroti kompleksitas dan daya gedor serangan siber modern yang melibatkan eksploitasi kerentanan pada perangkat lunak, manipulasi komunikasi jaringan terenkripsi, hingga pemodifikasian alur komunikasi untuk mendapatkan akses tak terbatas. Perjalanan mereka belum selesai. Masih banyak temuan-temuan lainnya yang mereka bagikan secara rutin dalam bentuk tulisan. Tentunya akan kami rangkum di artikel berikutnya.

Dengan mengekspos teknik dan taktik yang digunakan oleh penyerang, artikel ini tidak hanya memberikan wawasan mendalam kepada komunitas keamanan digital tetapi juga menjadi peringatan bagi semua pihak untuk meningkatkan upaya dalam melindungi keamanan perangkat dan data pribadi dari ancaman siber yang semakin canggih.