Senin, 01 Februari 2010

Virulogi : Menghadang worm-scripting dengan Notepad

By Tri Amperiyanto


Worm (virus) lokal  dengan teknik scripting masih saja menempati posisi cukup tinggi dalam kancah pervirusan di tanah air. Varian-varian baru masih saja bermunculan.  Untuk mengurangi ancaman yang ditimbulkan, akan dicermati teknik menghadang script-script tersebut secara sederhana dengan bantuan program Notepad.  Teknik ini, bukan jaminan keamanan yang memadai, namun cukup bermanfaat untuk mengurangi resiko kerusakan data atau pun sistem komputer.
Untuk mewujudkan trik ini, dibutuhkan sedikit pengetahuan tentang Registry Windows.  Registry Windows adalah database terpusat Windows yang  mengatur perilaku Windows.  Database ini dibagi menjadi beberapa bagian utama yang dikenal dengan sebutan HKEY.  Pada salah satu HKEY ini, terdapat HKEY khusus yang menangani masalah bagaimana Windows menangani suatu file. Dikenal dengan nama HKEY_CLASSES_ROOT.

Gambar 1. struktur HKEY Registry Windows

Nama file standar untuk komputer terdiri dari dua bagian utama, yaitu file utama (filename) dan file tambahan (ekstension).  Fungsi ekstension lebih banyak digunakan untuk mempermudah pengelompokan jenis file.  Jadi pada kerjanya fungsi atau jenis  dari suatu file akan dikenali lewat ekstensionnya. 
Sebagai contoh, file *.exe adalah jenis execute. File *.doc adalah file dokumen.   Jadi Windows mengenali jenis file yang ditemuinya berdasarkan ekstensionnya.  Untuk keperluan pengenalan inilah, setiap jenis file yang ada, akan diregistrasi oleh Windows ke Registry.   Kaidah yang sama berlaku pula untuk file scripting, yang  umumnya akan memakai ekstension VBS.


Bagaimana Windows menjalankan suatu jenis file ?

Panggil program Registry Editor (REGEDIT) via menu Run. Klik Start, pilih Run.  Dan ketik Regedit lalu tekan Enter.  Program Regedit akan aktif.
Setelah data-data registry tampil, lihat HKEY_CLASSES_ROOT,  pada bagian inilah Windows menyimpan data-data jenis file. Akan terlihat deretan panjang nama-nama ekstension file. 
Anggap saja  file jenis VBS dijalankan, Windows akan membaca data di HKEY_CLASSES_ROOT tepatnya di subkey .vbs.  Lokasinya seperti terlihat pada gambar.



Gambar 2 : isi subkey .vbs

Pada subkey .vbs ini akan terdapat suatu subkey dan beberapa nama value.  Proses terus berlanjut, Windows akan membaca masukan pada nama value (default).  Pada subkey .vbs,  isian (default)  adalah data string  : VBSfile.  Artinya, Windows harus melakukan pembacaan data file jenis VBS selanjutnya  di subkey lainnya yang bernama VBSfile. 
Lokasi  subkey VBSFILE tepatnya di :  HKEY_CLASSES_ROOT\VBSFILE dapat dilihat pada  gambar 3.  Selanjutnya Windows akan mengambil perintah dari subkey-subkey yang ada.  Sampai disini proses perjalanan identifikasi jenis file selesai dilakukan !


Gambar 3 : lokasi subkey lanjutan

Jika subkey VBSFILE dibuka, akan terdapat beberapa subkey lainnya, seperti : DefaultIcon, ScriptEngine, dll.  Yang harus diperhatikan adalah subkey Shell.  Pada subkey inilah Windows menindaklanjuti bagaimana file tersebut harus dijalankan.
Jika ditelusur lebih dalam, pada subkey Shell akan terdapat beberapa subkey lagi, sebagai berikut :
•    Subkey Edit  berguna untuk menentukan program yang  akan menangani proses pengeditan file VBS.
•    Subkey Open berguna untuk mendefiniskan program yang akan menangani proses eksekusi file VBS.
•    Subkey Open2 berguna untuk menentukan program lainnya yang juga dapat menangani proses eksekusi file VBS.
•    Subkey Print berguna untuk menentukan program untuk proses pencetakan data file VBS.

Di bawah setiap subkey tersebut terdapat subkey Command.  Disinilah perintah penanganan program sesungguhnya dituliskan.



Gambar  4. isi subkey command di bawah subkey Edit

Jika isi subkey  Command yang ada di bawah subkey Edit dibuka,  terdapat satu nama value (Default) dengan isian data (perintah) :

%SystemRoot%\System32\Notepad.exe %1. 

Ini menunjukkan, jika terjadi pengeditan data file dengan extension VBS, maka  akan dilakukan dengan program notepad.exe.


Gambar  5. isi subkey command di bawah subkey Open

Jika isi subkey  Command yang ada di bawah subkey Edit dibuka,  terdapat satu nama value (Default) dengan isian data :

%SystemRoot%\System32\WScript.exe "%1" %*

Ini mengindikasikan, jika terjadi pengaktifan file dengan extension VBS, maka  akan dijalankan dengan program Wscript.exe.

Hal yang sama, terjadi pada subkey Command yang ada pada subkey Open2. Isi perintah dari subkey command pada subkey  open2 adalah :

%SystemRoot%\System32\CScript.exe "%1" %*

Ini menunjukkan bahwa file dengan extension VBS dapat juga dijalankan dengan program CScript.exe.

Gambar  6. isi subkey command di bawah subkey Open2

Dari data-data tersebut, diketahui bahwa program pemicu script (run time engine) adalah program Wscript.exe dan Cscript.exe. Wscript.exe digunakan untuk menjalankan file script secara GUI (Graphical User Interface), sedangkan Cscript.exe digunakan untuk menjalankan file script secara Command shell.


Melakukan jebakan

Dengan bekal informasi tersebut, yang harus dilakukan agar file script tidak dengan gampang diaktifkan tanpa dikehendaki, adalah dengan mengubah isian data perintah yang ada pada subkey Command.
Perintah yang ada pada subkey Command di bawah subkey Open, dengan data :

%SystemRoot%\System32\WScript.exe "%1" %*

Kita ubah isiannya dengan data sebagai berikut :

%SystemRoot%\System32\Notepad.exe %1. 

Ini sama saja alur program  dibelokkan eksekusinya, agar  tidak menjalankan Wscript.exe namun mengaktifkan Notepad.exe.  Dengan trik sederhana ini, saat suatu file script dieksekusi (klik ganda misalnya), maka file script tidak akan dijalankan perintahnya, namun ditampilkan isinya dengan program Notepad.  Jadi  identik dengan perintah Edit.
Lakukan hal yang sama pada subkey Open2,  sehingga alur eksekusi tidak menjalankan Cscript.exe namun Notepad.exe.


Gambar 7. Data asli perintah eksekusi pada subkey command di bawah subkey Open



Gambar 8.  Data perintah eksekusi diubah


Backup setingan data

Disarankan untuk membuat backup Registry dari subkey yang akan dimanipulasi,  dengan perintah Export sehingga terbentuk file REG. Dengan cara ini, setingan data asli pada subkey yang akan dimanipulasi diamankan.  Saat terjadi kegagalan manipulasi, setingan asli data Registry dapat dipulihkan hanya dengan mengklik ganda file REG tersebut.
Pada contoh ini, subkey Registry yang akan di-Export adalah subkey Shell. Untuk melakukan proses Export ini, klik kanan pada subkey Shell, saat menu konteks keluar, klik Export.



Gambar 9. export data menjadi file REG

Saat jendela Export Registry File muncul,  ketikkan nama file yang akan menerima hasil export pada isian File name.  Simpan dengan nama Scriptnormal di My Documents, lalu klik Save.  File akan disimpan di My Documents dengan nama Scriptnormal.reg.


Gambar 10. menyimpan file REG

Setelah proses Export dijalankan, lakukan manipulasi pengubahan data.  Saat manipulasi selesai, lakukan proses Export sekali lagi pada subkey Shell.  Berilah nama, misalnya, ScriptHack.  Data manipulasi akan disimpan dalam file ScriptHack.reg.


Aktifkan dan matikan proteksi

Berbekal dengan dua file Reg yang telah dibuat, akan semakin mempermudah pengaturan seting file script di Registry.  Jika diinginkan file script berjalan normal seperti biasa, cukup klik ganda file Scriptnormal.reg.  Sebaliknya, jika ingin melakukan pembatasan scipt, klik ganda file ScriptHack.reg.
Untuk membuktikan kerja trik ini, buat suatu file skrip bernama test.vbs, dengan notepad.  Lalu ketikkan data :

'-------- Test hadang script
msgbox "test script !"

Simpan file tersebut, dengan pilihan Save.  Selanjutnya, jalankan file test.vbs tersebut dengan mengklik ganda.  Akan muncul kotak dengan tulisan : test script !, menandakan bahwa perintah script berjalan.


Gambar 11. hasil eksekusi test.vbs

Klik ganda scripthack.reg, sehingga pembatasan skrip diberlakukan.  Jalankan kembali file test.vbs,  yang terjadi adalah program notepad aktif dan menampilkan isi file test.vbs. Artinya, perintah  script yang ada pada file test.vbs tidak akan dijalankan.


Gambar 12. Script tidak dijalankan, isinya ditampilkan dengan notepad

Dengan trik ini, jika file test.vbs adalah file script nakal dan secara tidak sengaja pemakai mengklik ganda,  maka eksekusi perintah script berbahaya tersebut dapat dieliminasi.

2 komentar: