User Script merupakan script yang ditambahkan oleh pengguna untuk meningkatkan kenyamanan dalam menjelajahi internet. Penggunaan user script membuat situs yang dikunjungi menjadi lebih baik dengan adanya penambahan fitur, kemudahan dalam penggunaan, atau pembersihan hal-hal yang mengganggu. User script tersebar luas di internet dan bebas untuk digunakan.

Kemudahan yang ditawarkan oleh user script diiringi dengan penyalahgunaan yang mengancam penggunanya. User script dapat memiliki akses ke privasi pengguna dan melakukan aktivitas-aktivitas jahat. User script dapat bertindak layaknya Cross Site Scripting (XSS) yang bisa mencuri data pengguna.

Pada tulisan ini dibahas tentang berbagai penyalahgunaan user script beserta proses investigasinya. Pembahasan meliputi tujuan penggunaan, fitur yang ditawarkan, pemanfaatan secara tidak wajar, dan proses pencarian pelaku penyalahgunaan user script. Diharapkan dengan adanya pembahasan tersebut dapat meningkatkan wawasan terkait user script dan memicu penelitian lebih lanjut.

 

User Script

User script pada tulisan ini mengacu pada script JavaScript yang dimasukkan pada web browser yang digunakan oleh pengguna untuk menjelajahi internet. User script mengontrol pengalaman pengguna dalam menjelajahi internet [1]. Penggunaan user script dapat menjadikan situs yang dikunjungi menjadi lebih baik dengan menambahkan fitur, mempermudah penggunaan, dan menghilangkan hal-hal yang mengganggu. User script tersebar luas di internet dan bebas untuk digunakan. Selain itu, pengguna juga dapat membuat user script sesuai dengan kebutuhannya.

Agar user script dapat digunakan, pengguna harus memasang user script manager. User script manager merupakan ekstensi pada web browser. Masing-masing web browser memiliki pilihan user script manager yang dapat digunakan sebagai berikut.

  1. Google Chrome: Tampermonkey atau Violentmonkey
  2. Mozilla Firefox: Greasemonkey, Tampermonkey, atau Violentmonkey
  3. Safari: Tampermonkey
  4. MicrosoftEdge: Tampermonkey
  5. Opera: Tampermonkey atau Violentmonkey
  6. Maxthon: Violentmonkey
  7. Dolphin: Tampermonkey
  8. UC: Tampermonkey
  9. Qupzilla: tidak membutuhkan ekstensi
  10. AdGuard: tidak membutuhkan ekstensi

Tiap ekstensi memiliki penanganan tersendiri terhadap user script. Pada tulisan ini, user script manager yang digunakan adalah Tampermonkey pada Google Chrome dan Greasemonkey pada Mozilla Firefox. Pemilihan dua ekstensi tersebut karena paling banyak digunakan dibanding dengan ekstensi lainnya.

 

Cara Kerja User Script

Setiap isi dari user script diawali dengan meta yang menyimpan data mencakup nama, versi, penulis, deskripsi, tautan pembaruan, perizinan, serta lokasi dieksekusi. Script tersebut hanya akan dieksekusi pada halaman yang telah didefinisikan pada meta. Pada meta juga disimpan informasi yang membedakan setiap user script. Berikut adalah contoh meta pada user script.

// ==UserScript==
// @name         Contoh Fordig
// @namespace    http://example.com/
// @version      0.6
// @description  Contoh meta pada user script
// @author       Fordig
// @updateURL    http://example.com/contoh.user.js
// @downloadURL  http://example.com/contoh.user.js
// @include      http*://*youtube.com*
// @grant        none
// ==/UserScript==

Pada contoh di atas, user script bernama “Contoh Fordig”. Kombinasi dari name dan namespace akan membedakan user script satu dengan yang lainnya. Jika dua user script memiliki name dan namespace yang sama, maka akan dianggap sama. Version memberikan nilai versi dari user script, juga digunakan unutk mengecek update. Pengecekan update dilakukan dengan melihat versi dari user script di updateURL. User script tersebut dijalankan pada halaman youtube.com beserta subdomainnya. Nilai dari grant adalah fungsi-fungsi (API) dari user script manager yang akan diizinkan untuk dipanggil oleh user script, pada contoh tersebut tidak ada[2].

User script dibagikan dalam bentuk file JavaScript. File tersebut diakhiri dengan ekstensi *.user.js. Jika web browser yang sudah terpasang user script manager membuka URL file tersebut maka secara otomatis halaman akan dialihkan ke proses instalasi. Berikut gambar proses instalasi.

undefined

undefined

 

Pada Greasemonkey, proses instalasi akan muncul pada window baru. Sedangkan pada Tampermonkey akan muncul pada tab baru. Jika user script sudah pernah di-install, maka akan dilakukan konfirmasi untuk install ulang. Atau jika terdeteksi versi yang lebih baru, maka dilakukan konfirmasi untuk proses update. Pada halaman instalasi dimunculkan data yang ada di dalam meta user script.

Pengguna juga dapat mengetik user script-nya sendiri. Pada Greasemonkey dan Tampermonkey terdapat menu untuk membuat user script. Pegguna akan disuguhi text editor untuk membuat user script sesuai dengan keinginannya.

Suatu user script akan dieksekusi jika web browser membuka situs yang sesuai dengan meta user script tersebut. User script dieksekusi dalam suatu lingkungan terisolasi yang disebut dengan sandbox [3]. Hal ini dilakukan dengan alasan keamanan agar user script terhindar dari kode pada website berbahaya. Dengan adanya sandbox, pada kondisi normal, script pada halaman website tidak dapat mengakses variabel dan fungsi pada user script. User script dapat melakukan request ajax ke domain yang berbeda menembus same-origin policy dengan menggunakan API dari user script manager. Sandbox mencegah script dari website untuk melakukan hal yang sama.

 

Penyalahgunaan User Script

Fitur-fitur yang tersedia dalam user script selain membantu pengguna juga dapat dimanfaatkan oleh pihak-pihak yang tidak bertanggung jawab. User script dapat digunakan untuk menyerang pengguna atau suatu situs. Pada tulisan ini, jenis serangan dibagi berdasarkan komputer yang digunakan, yaitu : komputer korban dan komputer penyerang.

Penyalahgunaan user script menggunakan komputer korban. Komputer korban pada bahasan ini adalah komputer yang terinfeksi user script jahat atau dapat disebut botnet. Terdapat beberapa cara agar komputer korban terinfeksi user script jahat. Jika memiliki akses fisik ke komputer korban, misal komputer publik, penyerang dapat melakukan instalasi secara manual. Jika pelaku tidak memiliki akses fisik ke komputer korban, dapat dilakukan dengan phising. Penyerang dapat mengarahkan korban untuk meng-install user script jahat. Salah satunya dapat dilakukan dengan memanfaatkan fitur dari user script manager sendiri. User script manager membedakan tiap user script berdasarkan name dan namespace. Penyerang dapat membuat user script dengan nama user script lain yang sudah banyak dipakai dengan tambahan kode berbahaya dan versi lebih baru. Kemudian mengarahkan korban untuk membuka URL user script tersebut. User script manager akan membuka script tersebut dan melakukan proses update seperti gambar berikut.

 

undefined

undefined

 

Dapat dilihat pada proses update di Tampermonkey ditampilkan sumber dari user script tersebut. Jika calon korban teliti, dapat diketahui bahwa user script tersebut bukan dari sumber aslinya. Namun, pada Greasemonkey tidak ditampilkan sumber user script. Hal ini dapat menghilangkan kecurigaan calon korban dan meng-install user script jahat tersebut.

Bahaya mengeksekusi script dari user sccript jahat sama dengan bahaya Cross Site Scripting (XSS). Hal tersebut dikarenakan script yang berjalan tidak sesuai dengan keinginan penggunanya. Berikut beberapa penyalahgunaan user script.

  1. Pencurian informasi sensitif.
  2. Pembajakan session (session hijacking).
  3. Cryptocurrency miner.

Penyalahgunaan user script menggunakan komputer penyerang. Meskipun jarang ditemui, tapi self-XSS dapat digunakan untuk menyerang suatu server. Sebagai contoh adalah serangan dictionary attack.Penyerang dapat membuat user script di halaman login untuk mencoba kemungkinan password seperti gambar berikut.

 undefined

 

 

Penyerang dapat membuat suatu “Dictionary Server” yang menyimpan daftar password yang akan dicoba. Saat web browser menampilkan halaman login, user script akan meminta sebuah password dari server untuk percobaan login ke server target. Hal tersebut dilakukan secara berulang-ulang sampai daftar password habis atau login berhasil dengan dialihkan ke halaman lain. Asumsi yang digunakan, proses login dapat dilakukan terus menerus tanpa adanya tindakan pencegahan dari server target.

 

Investigasi Penyalahgunaan User Script

Ini merupakan hal yang sulit karena belum ada referensi sesuai yang didapat. Misalkan terdapat kasus suatu komputer melakukan penyerangan ke suatu server. Tugas dari investigator adalah mengungkap pelaku utamanya. Pada kasus ini, serangan menggunakan web browser karena dilakukan oleh user script. Asumsi komputer penyerang tidak menggunakan VPN sehingga IP yang dicatat oleh server adalah IP komputer penyerang. Dengan bantuan ISP dapat dipastikan lokasi komputer penyerang.

Setelah komputer didapatkan, tugas selanjutnya adalah mengungkap pelakuknya. Pertama, perlu dilakukan interogasi kepada pemilik dan pengguna komputer saat terjadi serangan. Pemilik komputer belum tentu menjadi pelakunya karena bisa jadi komputernya adalah botnet yang dimanfaatkan oleh orang lain. Jika pemilik atau pengguna komputer tidak mengaku, maka dilakukan pengecekan pada komputer. Penyerangan juga belum tentu dilakukan oleh user script karena bisa jadi ada program lain yang berjalan. Diasumsikan ditemukan sebuah user script yang melakukan serangan sebagai berikut.

 undefined

 

 User script tersebut bernama “login bukalapak”. Di sana hanya terdapat informasi versi, lokasi eksekusi, dan update terakhir. Untuk mengetahui pembuatnya perlu dicari sumber dari user script tersebut. Pelu dicek pengguna komputer tersebut saat user script update terakhir. Terdapat kemungkinan user script tersebut diketik secara manual atau di-install melalui URL. Jika user script tersebut diketik, maka pelakuknya adalah pengguna komputer saat itu. Detail dari user script sebagai berikut.

undefined

 

 Jika user script tersebut diinstall dari URL, maka nilai default dari Update URL adalah sumber dari user script seperti gambar di atas. Dari gambar di atas, pelakunya kemungkinan pemilik http://situsjahat/. Namun, Update URL tersebut dapat diubah dengan menambahkan meta updateURL seperti gambar berikut.

undefined

 

Dapat dilihat Update URL mengacu pada meta user script. Dengan demikian kita tidak dapat langsung percaya pada nilai dari Update URL.

Cara lain mengetahui sumber user script adalah mengecek history web browser. Jika history web browser tidak dihapus, maka akan ada daftar situs yang dikunjungi sebelum dilakukan instalasi. Sebagai catatan, URL dari user script tidak dicatat pada history karena adanya user script manager. Saat melakukan instalasi/update, history web browser akan mencatat chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/ask.html?aid=<id> pada Tampermonkey Google Chrome. Dapat dicari situs yang diakses sebelum proses update untuk menemukan sumber kode.

 

Penutup

  1. Dari pembahasan di atas dapat diambil hikmah sebagai berikut.
  2. User script bekerja dengan menambahkan sandbox untuk mengeksekusi kode program.
  3. User script dapat disalahgunakan layaknya XSS untuk melakukan penyerangan kepada penggunanya atau suatu server.
  4. Investigasi penyalahgunaan user script sulit untuk dilakukan.
  5. Selalu berhati-hati dengan user script yang disebar di internet.