Bug Tupai Memungkinkan Penyerang Mengeksekusi Kode dalam Game, Layanan Cloud

An kerentanan membaca di luar batas dalam bahasa pemrograman Squirrel memungkinkan penyerang keluar dari batasan sandbox dan mengeksekusi kode arbitrer dalam mesin virtual Squirrel (VM), sehingga memberikan akses lengkap kepada pelaku kejahatan ke mesin yang mendasarinya.

Diberikan tempat tinggal Squirrel – dalam game dan tertanam di internet of things (IoT) – bug tersebut berpotensi membahayakan jutaan gamer bulanan yang bermain video game seperti Counter-Strike: Global Offensive dan Portal 2, serta layanan cloud platform IoT dengan gunakan perpustakaan kode sumber terbuka.

Squirrel adalah bahasa pemrograman open-source, berorientasi objek yang digunakan oleh video game dan layanan cloud untuk penyesuaian dan pengembangan plugin. Ini adalah bahasa skrip ringan yang sesuai dengan ukuran, bandwidth memori, dan persyaratan real-time aplikasi seperti video game dan sistem tertanam.

Kedua game yang disebutkan di atas menggunakan perpustakaan game Squirrel Engine untuk memungkinkan siapa saja membuat mode dan peta permainan khusus.

Dilacak sebagai CVE-2021-41556, kerentanan membaca Squirrel di luar batas dapat dieksploitasi ketika Squirrel Engine digunakan untuk mengeksekusi kode yang tidak tepercaya, seperti halnya dengan video game tertentu.

Kerentanan ditemukan oleh SonarSource dan dirinci dalam posting yang diterbitkan pada hari Selasa. Dalam tulisan itu, peneliti kerentanan Simon Scannell dan Niklas Breitfeld menyarankan skenario dunia nyata di mana penyerang dapat menyematkan skrip Tupai berbahaya ke dalam peta komunitas dan mendistribusikannya melalui Steam Workshop tepercaya: repositori mod untuk Steam Games yang memungkinkan pembuat mengunggah mod mereka untuk audiens built-in yang besar sambil menyediakan pemain reguler dengan cara mudah untuk mendapatkan mods.

“Ketika pemilik server mengunduh dan menginstal peta jahat ini ke servernya, skrip Squirrel dieksekusi, lolos dari VM-nya, dan mengambil kendali dari mesin server,” jelas para peneliti.

Kelemahan keamanan menyangkut “akses di luar batas melalui kebingungan indeks” ketika mendefinisikan kelas Squirrel. “Fakta bahwa bitflag diatur dalam indeks bermasalah karena sangat mungkin bagi penyerang untuk membuat definisi kelas dengan metode 0x02000000,” para peneliti menjelaskan. Mereka membuat proof of concept (PoC) “sangat sederhana” berikut ini: hanya kode yang dapat dieksploitasi untuk membajak sebuah program dan memberikan kontrol penuh kepada penyerang atas konsep Squirrel VM.
Proof. Sumber: SonarSource.

“Fungsi rawset dan rawget memungkinkan kami mengakses anggota kelas tertentu dengan mudah,” menurut analisis. “Dalam PoC ini, squirrel interpreter akan mendereferensikan pointer nol dan segfault karena array _defaultvalues ​​belum dialokasikan.” Penyerang

An dapat memicu kerentanan dengan:
Membuat definisi kelas dengan metode 0x02000005 dan bidang 0x1

Mengakses metode dengan indeks yang sesuai 0x02000005

Makro _isfield() mengembalikan nilai true untuk indeks ini karena bitflag 0x02000000 disetel. Array _defaultvalues ​​diakses dengan indeks 0x5. Namun, itu hanya berisi entri 0x1 dan dengan demikian penyerang telah mengakses di luar batas.

Kerentanan berbahaya karena aktor jahat dapat membuat larik palsu yang dapat membaca dan menulis nilai. Dengan melakukannya sendiri, para peneliti menemukan bahwa mereka dapat “membajak aliran kontrol program dan mendapatkan kontrol penuh dari Squirrel VM,” yang mereka lakukan dengan menimpa pointer fungsi.

SonarSource menyediakan bagan berikut, yang menunjukkan rantai yang dikendalikan penyerang pointer yang memungkinkan membaca dan menulis ke seluruh ruang alamat:
Chain pointer yang dikendalikan penyerang yang memungkinkan membaca dan menulis ke seluruh ruang alamat. Sumber: SonarSource.

Squirrel GitHub Repository Ditambal

Pengelola repositori Squirrel GitHub mengakui kerentanan pada bulan Agustus. Patch didorong sebagai bagian dari komit kode pada 16 September. Namun seperti yang dicatat oleh The Hacker News, perubahan tersebut belum disertakan dalam rilis stabil baru, dengan versi resmi terakhir (v3.1) dirilis pada Maret 27, 2016.

Dengan demikian, para peneliti yang menemukan kerentanan “sangat” merekomendasikan agar pengelola yang menggunakan Squirrel dalam proyek mereka menerapkan komit perbaikan yang tersedia untuk melindungi dari serangan.

UPDATE 1: 102121 08:44 Referensi yang dihapus untuk kerentanan yang memengaruhi a platform layanan cloud menunggu jawaban dari SonarSource mengenai apakah peneliti memverifikasi bahwa platform tersebut benar-benar terpengaruh.

UPDATE 2: 102121 13:27 Johannes Dahse, Kepala R&D di SonarSource, mengonfirmasi bahwa perusahaan belum menghubungi Twilio Electric Imp sebelum memasukkannya dalam daftar layanan cloud dan game yang rentan terhadap masalah ini. Pernyataan Dahse:

“Tim peneliti kami secara teratur menemukan kerentanan kritis dalam perangkat lunak yang digabungkan ke dalam banyak perangkat lunak vendor lain. Saat mempublikasikan temuan kami, kami sering ditanya tentang dampak dan tingkat keparahannya. Untuk alasan ini, kami menyebutkan beberapa contoh siapa yang menggunakan Tupai untuk mengilustrasikan masalahnya. Kami tidak menguji implementasi pasti semua vendor lain untuk tujuan sumber daya. Oleh karena itu, seperti yang dinyatakan dalam posting kami, kami tidak menguji eksploitasi konkret terhadap implementasi pihak ketiga tertentu dan kami tidak secara aktif menjangkau Twilio sendiri. Namun, kami telah melihat tim Electric Imp menghubungi pengelola Squirrel untuk detailnya dua bulan lalu sebagai bagian dari masalah GitHub kami. Dengan posting blog kami, kami berharap dapat meningkatkan kesadaran akan kerentanan ini dengan lebih banyak pengguna Squirrel sehingga mereka dapat menguji atau memperkuat perangkat lunak mereka. Kami terkesan melihat betapa cepatnya hal ini dilakukan oleh Twilio dan keamanannya ditanggapi dengan sangat serius. Kami dengan senang hati menambahkan pembaruan tentang contoh ini ke entri blog kami atau menghapus penyebutan Twilio jika hal ini menyebabkan kebingungan.”

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

%d bloggers like this: