Di dunia teknologi, tentu kita sudah tak asing dengan istilah bernama obfuscate, di mana menjadi sebuah teknik yang sering dilakukan di dunia coding dengan menyembunyikan source code dari suatu aplikasi untuk mempersulit orang lain membaca dan memahami isi dari source code tersebut.
Sederhananya, obfuscation menjadi teknik yang lazim digunakan programmer atau software architect untuk melindungi source code ciptaan mereka dari orang lain yang ingin mengubah, mengganti, atau mengklaim source code tersebut tanpa izin. Namun, pemakaian obfuscation juga bisa disalahgunakan oleh orang-orang yang menyisipkan kode-kode yang disebarkan di internet.
Ada banyak tool dan situs web yang menyediakan fitur obfuscation, yang pada akhirnya disalahgunakan oleh sejumlah oknum untuk menciptakan kode dan menyembunyikannya dengan tool obfuscation, sehingga sulit dideteksi oleh sysadmin atau blue team.
Kalau obfuscation menyembunyikan kode asli, ada juga deobfuscation yang mana melakukan ‘pembongkaran’ source code dari program yang sudah di-obfuscate, sehingga kode dapat dilihat tanpa mengalami kesulitan untuk memahaminya. Dengan kemampuan reverse engineering, sangat memungkinkan untuk menganalisa obfuscated code dan mengetahui source code asli dari program tersebut.
Deobfuscating PHP Script dengan EvalHook
Pada kesempatan kali ini, akan dijelaskan lebih detail terkait proses deobfuscating pada source code dari program berbahaya yang menggunakan PHP script menggunakan bantuan dari EvalHook.
EvalHook adalah sebuah library tambahan yang dapat mendeteksi fungsi eval pada memori ketika program berjalan. EvalHook bisa didapatkan pada repositori berikut https://github.com/unreturned/evalhook.
Sebagai contoh sederhana, di sini ada source code yang sudah di-obfuscate secara sederhana:
# cat obfuscated.php
$Oo0O = “base64_decode”; $xXxX = “c3lzdGVtKCJ3aG9hbWkiKTs=”; @eval(@$Oo0O($xXxX));
|
Potongan source code diatas tampak sulit dibaca dan dipahami karena adanya proses obfuscate pada code tersebut. Mari coba gunakan EvalHook untuk melakukan analisis terhadap source code tersebut.
# php -d extension=evalhook.so obfuscated.php Script tries to evaluate the following string. —- system(“whoami”); —- Do you want to allow execution? [y/N] |
Setelah menjalankan EvalHook pada contoh diatas, EvalHook akan mencari fungsi eval pada memori ketika program tersebut dijalankan, dan bisa diketahui bahwa source code yang sudah di-obfuscate hanya berisikan potongan kode yaitu system(“whoami”);
Dengan demikian, tak peduli serumit apa proses obfuscate yang diterapkan, pada akhirnya program tersebut menggunakan eval untuk melakukan eksekusi, di mana EvalHook bisa menampilkan source code asli dari program itu. Hal ini dikarenakan EvalHook akan langsung mencari fungsi eval yang ada pada memori ketika program tersebut dijalankan dan menampilkan code asli yang dijalankan pada fungsi eval tersebut.
Sebagai ahli keamanan IT terpercaya di Indonesia, Defenxor selalu berkomitmen dengan memberikan informasi dan tips-tips yang diharapkan dapat membantu Anda mendapatkan lebih banyak pemahaman tentang ilmu IT, salah satunya adalah dengan mempelajari proses deobfuscating, sehingga kita semua bisa semakin waspada dalam menghadapi tantangan keamanan siber, khususnya dalam menjaga keamanan data dalam aplikasi dan program yang kita ciptakan.