Cara menggunakan javascript obfuscator

Threat actor / aktor ancaman adalah entitas jahat yang dapat bertanggung jawab pada dampak negatif terhadap postur keamanan keseluruhan dari suatu jaringan. Mereka akan menggunakan berbagai vektor serangan untuk mendapatkan akses tidak sah ke sumber daya jaringan. 

Vektor serangan memungkinkan aktor ancaman untuk mengeksploitasi kerentanan sistem yang diketahui atau tidak dikenal. Jenis-jenis vektor serangan yang digunakan dapat bergantung pada tingkat keterampilan, motivasi dari aktor ancaman, dan target yang mereka pilih. Untuk secara efektif mengenali vektor-vektor serangan ini, seorang analis harus terbiasa dengan dasar-dasar serangan dan bagaimana mereka dilakukan.

Vektor untuk serangan termasuk yang berikut:

  • Web: Serangan umum mencakup :
    • SQL Injection
    • Inklusi file lokal atau traversal direktori
    • Arbitrary code execution
    • Obfuscated web scripting
    • XSS
    • Cross-site forged requests
  • Kerentanan perangkat lunak : Kerentanan perangkat lunak, terutama varian yang dapat memproses kapabilitas jaringan, juga merupakan vektor serangan potensial. Eksploitasi yang ditulis terhadap kerentanan perangkat lunak tersebut mungkin termasuk shellcode.
  • Payload umum : Dalam muatan umum, seorang analis mungkin menemukan bind-shell dan reverse-shell yang akan memungkinkan penyerang untuk mendapatkan akses remote command-line ke target.
  • Pengguna akhir / end user: Pengguna akhir adalah vektor serangan potensial lainnya yang akan dieksploitasi oleh aktor ancaman termotivasi. File dan dokumen yang berisi kode berbahaya yang disematkan dan / atau disamarkan dapat muncul sebagai dokumen terlampir dalam pesan email atau dapat secara tidak sengaja diunduh ke sistem oleh pengguna yang mengklik tautan URL yang ditampilkan dalam pesan. USB thumb drive yang terinfeksi dapat diinstal dengan file berbahaya yang dapat secara otomatis dijalankan setelah dimasukkan ke dalam sistem. Pada tahun 2008, USB flash drive menginfeksi komputer di Stasiun Luar Angkasa Internasional dengan perangkat lunak berbahaya.

Dalam pengembangan perangkat lunak, obfuscation code (kode yang dikaburkan/ disamarkan) adalah teknik yang digunakan untuk menyamarkan munculnya kode sumber yang berjalan pada suatu sistem. Mengaburkan kode sumber memiliki banyak tujuan dan umumnya digunakan untuk mengurangi ukuran keseluruhan dari kode atau aplikasi perangkat lunak. 

Obfuscated JavaScript merender kode sumber JavaScript ke dalam bentuk yang tidak mudah dibaca, dengan maksud menyamarkan fungsi kode yang dimaksud. Kode JavaScript dijalankan saat runtime oleh browser sistem klien dan tertanam dalam halaman HTML.

JavaScript memungkinkan pengguna untuk berinteraksi dengan formulir atau halaman yang ditampilkan di situs web. Encoding JavaScript adalah metode populer untuk mengaburkan kode sumber JavaScript ke dalam pernyataan yang sulit untuk dibaca atau ditafsirkan. Pengembang web biasanya akan menggunakan kode JavaScript yang dikaburkan sebagai upaya untuk mencegah kode sumber JavaScript mereka dianalisa atau dicuri. Kode JavaScript dapat dengan mudah dilihat selama sesi web dan tujuan mengaburkan kode sumber adalah untuk melindungi kekayaan intelektual pengembang.

Obfuscated JavaScript juga dapat digunakan sebagai sarana untuk menyamarkan kode sumber yang dibuat dengan maksud meruksak sistem. Penyerang sering mengaburkan kode JavaScript mereka untuk menghindari deteksi dan mengeksekusi kode berbahaya di workstation. Aktor ancaman ingin menyamarkan kode jahat sehingga mungkin dengan bebas dieksekusi untuk mencapai tujuan.

Analis harus memahami bahwa tindakan mengaburkan kode sumber JavaScript seharusnya tidak dianggap berbahaya secara otomatis. Namun, analis harus dapat mengenali kompleksitas dan tantangan yang terkait dengan mengidentifikasi vektor serangan yang berlaku ini. Jenis-jenis serangan ini semakin populer dan sulit dideteksi.

Contoh teknik umum yang digunakan untuk mengaburkan kode JavaScript seperti berikut:

  • Secara otomatis mengganti nama variabel menjadi nama acak dan menjadikan kode menjadi lebih sulit dibaca dan sulit dipahami.
  • JavaScript akan mengabaikan ruang putih di dalam kodenya. Pengacakan ruang-putih adalah proses penempatan karakter spasi-putih dan jeda baris di seluruh kode tanpa mengubah fungsinya.
  • Kode sumber yang memodifikasi diri sendiri yang menulis ulang dirinya sendiri saat dieksekusi.
  • Menggunakan kode karakter dan manipulasi string yang dikombinasikan dengan penyalahgunaan ekspresi eval ‘eval ()’.

Contoh :

Pada kondisi normal, penulisan kode JavaScript untuk menampikan string "Hello World" mungkin seperti dibawah ini :

Dengan output pada web browser seperti ini :

Cara menggunakan javascript obfuscator

Selanjutnya bandingkan dengan kode dibawah ini yang telah dijalankan ke encoding-tool

Cara menggunakan javascript obfuscator

Dengan melakukan encoding skrip, hampir tidak mungkin mengenali kode asli. Diperlukan upaya yang lebih untuk mendekripsi string ini dan mengembalikannya ke format yang mudah dibaca. Menyebarkan kode yang dikaburkan dapat mencegah analis untuk dapat menentukan fungsi skrip yang dimaksud. Melaksanakan skrip yang di-encode menghasilkan fungsi yang sama dengan kode asli.

Cara menggunakan javascript obfuscator

JavaScript biasanya disematkan dalam kode HTML dan dijalankan pada sistem client-side. Encoding JavaScript dapat memungkinkan aktor ancaman untuk menyembunyikan kode berbahaya yang akan dieksekusi pada mesin target.

Hackvertor adalah tools encoding berbasis komunitas online yang digunakan oleh para profesional keamanan. Alat ini dapat membantu proses pengkodean JavaScript. Klik tautan ini untuk informasi lebih lanjut: https://hackvertor.co.uk/hvurl/2p#

Cara menggunakan javascript obfuscator

Ada alat yang tersedia untuk mengumpulkan dan menganalisis kode JavaScript. JSDetox adalah alat analisis perangkat lunak perusak JavaScript yang memanfaatkan teknik pengabaian dan mesin eksekusi yang mengemulasi DOM HTML. HTML DOM adalah standar W3C yang dikembangkan untuk menentukan model untuk mengakses dokumen berbasis web. DOM mendefinisikan model objek yang mengandung elemen HTML yang memungkinkan skrip untuk memperbarui dan memanipulasi konten dalam dokumen web.

De-obfuscation manual JavaScript adalah fungsi yang biasanya tidak dilakukan oleh analis SOC Tier 1. Namun, analis harus dapat mengenali JavaScript yang dikaburkan dan membuat keputusan tentang apakah akan melanjutkan dengan analisis atau mengeskalasi tiket ke anggota yang lebih senior dari tim. Analis dapat menggunakan satu jsunpack atau jsdetox untuk memecahkan kode skrip yang dikaburkan. Sumber daya web online juga dapat digunakan untuk memecahkan kode JavaScript, seperti http://deobfuscatejavascript.com/. Untuk memecahkan kode kode JavaScript, analis harus menentukan kunci variabel atau rangkaian karakter yang digunakan untuk menguraikan string selama proses encoding.