Penerapan Fungsi Hashing CRC32 Pada Program Antivirus Menggunakan Visual Basic 6.0
PENERAPAN FUNGSI HASHING CRC32 PADA PROGRAM
ANTIVIRUS MENGGUNAKAN VISUAL BASIC 6.0
SKRIPSI
YASRI AZWAR SIREGAR
031401027
PROGRAM STUDI S-1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2008
(2)
PENERAPAN FUNGSI HASHING CRC32 PADA PROGRAM
ANTIVIRUS MENGGUNAKAN VISUAL BASIC 6.0
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar
Sarjana Komputer
YASRI AZWAR SIREGAR
0 3 1 4 0 1 0 2 7
PROGRAM STUDI STRATA 1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2008
(3)
PERSETUJUAN
Judul : PENERAPAN FUNGSI HASHING CRC32 PADA
PROGRAM ANTIVIRUS MENGGUNAKAN VISUAL BASIC 6.0
Kategori : SKRIPSI
Nama : YASRI AZWAR SIREGAR
Nomor Induk Mahasiswa : 031401027
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, September 2008 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Drs.Sawaluddin, M.IT Prof.Dr.Opim S.Sitompul,M.Sc
NIP. 132 206 398 NIP. 131 653 971
Diketahui/Disetujui oleh Prog. Studi Ilmu Komputer S-1 Ketua,
Prof. Dr. Muhammad Zarlis NIP. 131 570 434
(4)
PERNYATAAN
PENERAPAN FUNGSI HASHING CRC32 PADA PROGRAM ANTIVIRUS MENGGUNAKAN VISUAL BASIC 6.0
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, September 2008
Yasri Azwar Siregar NIM 031401027
(5)
PENGHARGAAN
Alhamdulillah penulis ucapkan kepada Sang Khaliq Allah SWT yang melimpahkan rahmat dan karunia-Nya sehingga kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan.
Ucapan terima kasih penulis sampaikan kepada Bapak Prof. Dr. Opim S. Sitompul, M.sc dan Bapak Drs.Sawaluddin, M.IT selaku pembimbing pada penyelesaian tugas akhir ini yang telah memberikan arahan serta kepercayaan kepada penulis untuk menyempurnakan kajian ini. Panduan ringkas dan padat serta profesional telah diberikan kepada penulis sehingga penulis dapat menyelesaikan tugas akhir ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi S-1 Ilmu Komputer FMIPA USU Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syahriol Sitorus, S.Si, MIT., Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen dan pegawai pada Program Studi S-1 Ilmu Komputer FMIPA USU, rekan-rekan mahasiswa Ilmu Komputer serta semua pihak yang telah membantu dan memberi masukan kepada penulis.
Akhirnya, tidak terlupakan penulis menghaturkan jazakumullah khairan katsiran kepada ayahanda dan ibunda tercinta, Khayalan Siregar dan Laila Hanum Siregar serta seluruh keluarga tersayang yang telah banyak berjasa dan selalu memberi dorongan serta bantuan baik moril maupun meteril yang tidak terbalaskan kepada penulis selama menyelesaikan skripsi ini. Semoga Allah SWT akan membalasnya.
(6)
ABSTRAK
Virus komputer memiliki berbagai kemampuan dasar diantaranya adalah kemampuan memanipulasi file, kemampuan untuk memperbanyak diri, dan merusak data. Untuk menghalangi kegiatan virus yang dapat merusak data pengguna komputer maka para pengembang sofware membangun sebuah sofware yang dikenal dengan istilah antivirus. Dalam mengenali dan menghapus virus, antivirus menggunakan beberapa metode, salah satunya adalah metode hashing. Pada skripsi ini akan dibahas bagaimana menggunakan fungsi hashing CRC32 sebagai metode untuk mengenali sebuah virus untuk kemudian dihapus dari komputer user. Fungsi Hashing CRC32 dapat dijadikan sebagai metode untuk mendapatkan penanda dari sebuah file virus, hal ini dikarenakan metode CRC32 menghitung penanda file berdasarkan ukuran dan isi file, sehingga kecil sekali kemungkinan dua buah file yang berbeda memiliki penanda yang sama, karena perbedaan 1 bit saja akan mengubah nilai CRC32 file. Selanjutnya penanda tersebut dijadikan acuan untuk melakukan scanning pada seluruh komputer pengguna.
(7)
Implementation of Hashing Function CRC32 for Antivirus Program With Visual Basic 6.0
ABSTRACT
Computer viruses have some capabilities, such as manipulating file, reduplicating and damaging data. To avoid computer viruses activities, then antivirus programs developed. To recognize and deleting virus, antivirus programs are use some methods. One of them is Hashing Function method. In this paper will be explained how Hashing Function CRC32 recognize a virus, then delete it from user’s computer. CRC32 identifying a virus file by computing size and content of the file, since there is very small possibility that two files have same signatures. The signatures will be saved on the virus database, and will be used to scan users files.
(8)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar isi vii
Daftar Gambar ix
Daftar Tabel x
Bab 1 Pendahuluan 1
1.1 Latar Belakang 2
1.2 Rumusan Masalah 4
1.3 Batasan Masalah 4
1.4 Tujuan Peneltian 5
1.5 Manfaat Penelitian 5
1.6 Sistematika Penulisan
Bab 2 Landasan Teori 6
2.1. Pengertian Virus dan Antivirus 6
2.2. Karakteristik Virus Komputer 9
2.2.1 Ukuran 9
2.2.2 Stealth 9
2.2.3 Metode Infeksi 10
2.2.4 Terminate and Stay Resident 11
2.3 Rutin-Rutin Pada Virus Komputer 12
2.4 Aktivitas-Aktivitas Virus Pada Komputer 14
2.5 Tanda-Tanda Keberadaan Virus 16
2.6 Sejarah Virus Komput er 17
2.7 Jenis-Jenis Virus Komputer 20
2.7.1 Berdasarkan Teknik Pembuatannya 21
2.7.2 Berdasarkan Infeksi Yang Dilakukan 22
2.7.3 Berdasarkan Media Penyebarannya 23
2.8 Program Antivirus 25
2.8.1 Scanner 25
2.8.2 Monitor 26
2.8.3 Integrity Checkers 26
2.9 Pengertian Checksum dan Fungsi Hashing CRC32 28
Bab 3 Analisis Dan Perancangan 30
3.1. Analisis 30
3.1.1 Analisis Permasalahan 30
(9)
3.2 Perancangan 33
3.2.1Algoritma Antivirus 33
3.2.2Struktur Kode Antivirus 35
Bab 4 Analisis Dan Perancangan 38
4.1. Implementasi Antivirus Pada Visual Basic 6.0 38 4.2. Penggunaan Program Dalam Scanning dan Penghapusan Virus 38
4.3. Tampilan Interface 39
4.4 CRC32 Calculator 44
4.5. Task Manager Alternatif 47
4.6. Database Virus 53
4.7. Search Engine Virus 54
4.8. Pengujian Program 60
Bab 5 Penutup 62
5.1. Kesimpulan 62
5.2. Saran 63
(10)
DAFTAR TABEL
Halaman Tabel 4.1 Property dan Value Pada Kontrol Program Antivirus 39 Tabel 4.2 Property dan Value Pada Kontrol CRC32 Calculator 43 Tabel 4.3 Property dan Value Pada Kontrol Task Manager Alternatif 48 Tabel 4.4 Property dan Value Pada Kontrol Search Engine Virus 54
(11)
DAFTAR GAMBAR
Halaman
Gambar 1.1 Flow Chart Antivirus 3
Gambar 2.1 Overwriting virus 10
Gambar 2.2 Appending virus 11
Gambar 2.3 Prepending virus 11
Gambar 2.4 Tampilan Virus Creation Lab (VCL) 19
Gambar 3.1 Ilustrasi Cara kerja Antivirus 31
Gambar 3.2 Flowchart Antivirus 34
Gambar 3.3 Tampilan Utama Antivirus 35
Gambar 4.1 Tampilan Interface Antivirus 39
Gambar 4.2 Tampilan Utama CRC32 Calculator 47
Gambar 4.3 Tampilan Utama Task Manager Alternatif 52
Gambar 4.4 Tampilan Database Virus 54
Gambar 4.5 Tampilan Antivirus Setelah Dieksekusi 61
(12)
ABSTRAK
Virus komputer memiliki berbagai kemampuan dasar diantaranya adalah kemampuan memanipulasi file, kemampuan untuk memperbanyak diri, dan merusak data. Untuk menghalangi kegiatan virus yang dapat merusak data pengguna komputer maka para pengembang sofware membangun sebuah sofware yang dikenal dengan istilah antivirus. Dalam mengenali dan menghapus virus, antivirus menggunakan beberapa metode, salah satunya adalah metode hashing. Pada skripsi ini akan dibahas bagaimana menggunakan fungsi hashing CRC32 sebagai metode untuk mengenali sebuah virus untuk kemudian dihapus dari komputer user. Fungsi Hashing CRC32 dapat dijadikan sebagai metode untuk mendapatkan penanda dari sebuah file virus, hal ini dikarenakan metode CRC32 menghitung penanda file berdasarkan ukuran dan isi file, sehingga kecil sekali kemungkinan dua buah file yang berbeda memiliki penanda yang sama, karena perbedaan 1 bit saja akan mengubah nilai CRC32 file. Selanjutnya penanda tersebut dijadikan acuan untuk melakukan scanning pada seluruh komputer pengguna.
(13)
Implementation of Hashing Function CRC32 for Antivirus Program With Visual Basic 6.0
ABSTRACT
Computer viruses have some capabilities, such as manipulating file, reduplicating and damaging data. To avoid computer viruses activities, then antivirus programs developed. To recognize and deleting virus, antivirus programs are use some methods. One of them is Hashing Function method. In this paper will be explained how Hashing Function CRC32 recognize a virus, then delete it from user’s computer. CRC32 identifying a virus file by computing size and content of the file, since there is very small possibility that two files have same signatures. The signatures will be saved on the virus database, and will be used to scan users files.
(14)
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Seiring dengan pesatnya perkembangan penggunaan komputer sebagai alat bantu manusia di berbagai bidang kehidupan, semakin besar pula jenis software yang digunakan.Virus komputer merupakan salah satu software komputer yang menjadi ancaman bagi keamanan sistem komputer. Virus komputer sebagai salah satu jenis infeksi elektronik, dapat menyebabkan kerusakan pada sistem komputer yang diserangnya. Para user yang komputernya diserang oleh virus merasa akan tidak nyaman terhadap keberadaan virus tersebut yang mungkin akan memperlambat kinerja atau bahkan menghilangkan beberapa fungsi dari komputer.
Virus-virus komputer dapat dihapus dengan menggunakan aplikasi yang dikenal sebagai antivirus, hanya saja beberapa antivirus dipasarkan dengan harga yang relatif mahal. Bagi para user yang memiliki uang untuk membeli antivirus hal seperti ini dianggap bukan suatu masalah besar. Untuk membantu user yang tidak mampu membeli lisensi antivirus, maka beberapa perusahaan atau pembuat antivirus telah meluncurkan antivirus yang dapat dipakai oleh user tanpa harus membeli lisensi, tetapi user diharuskan untuk memiliki koneksi internet dalam melakukan update database virus ke komputer server pada produsen antivirus, misalnya AVG yang dirilis Grisoft dan PCMav yang dikeluarkan oleh PC Media.
Metode yang dapat dipakai user sebagai metode pada proses scanning salah satunya adalah metode CRC32. Sesuai dengan fungsi utama dari fungsi hashing, CRC32 berfungsi untuk mengambil penanda dari sebuah file yang nantinya akan dipakai sebagai acuan untuk memeriksa apakah suatu file adalah file virus atau bukan. Kecil sekali kemungkinan bahwa dua buah file mempunyai nilai CRC32 yang sama. Hal ini disebabkan perbedaan 1 bit saja pada file akan mengubah nilai CRC32 file tersebut. CRC32 hanya mengambil 32 bit dari sebuah file yang dijadikan sebagai penanda file tersebut. Hal ini berbeda dengan metode MD5 yang mengambil 128 bit
(15)
dari file. Keuntungan memakai CRC32 adalah karena hanya terdiri dari 32 bit sehingga mempercepat proses scanning.
Metode lain yang dapat dipakai user adalah metode heuristik. Pada metode ini program akan menganggap suatu file adalah virus jika file tersebut mempunyai sifat seperti sifat virus (misalnya merubah nilai registry dan memasuki program start up system). Kelemahan dari metode ini adalah seringnya terjadi kesalahan pada pendeteksian virus, hal ini dikarenakan beberapa file sistem mempunyai rutin yang sama seperti file sistem.
Masalah yang dihadapi selama ini adalah semakin pesatnya perkembangan virus mengharuskan user untuk mendownload data base virus yang semakin besar ukurannya. Setelah user mendownload data base antivirus, belum tentu virus yang menginfeksi komputer user terdapat dalam data base antivirus tersebut. Oleh karena itu, akan lebih efektif jika user hanya menghitung nilai CRC32 dari file virus yang menginfeksi komputer user, kemudian memasukkan nilai CRC32 file tersebut kedalam data base antivirus, kemudian antivirus melakukan scanning terhadap komputer dan menghapus seluruh file yang memiliki nilai CRC32 yang serupa dengan file virus tersebut. Selain itu dengan menggunakan antivirus sederhana yang dibuat sendiri oleh user dapat membantu user yang sama sekali tidak memiliki akses Internet.
Kecenderungan user untuk memakai antivirus yang telah disediakan oleh pembuat antivirus, yang komersil ataupun yang gratis, menjadi alasan bagi penulis untuk membuat sebuah aplikasi antivirus yang dapat dibuat dan dikembangkan oleh user. Oleh karena itu penulis tertarik untuk menjadikan “PENERAPAN FUNGSI HASHING CRC32 PADA PROGRAM ANTIVIRUS MENGGUNAKAN VISUAL BASIC 6.0” sebagai judul skripsi penulis.
1.2 Rumusan Masalah
Antivirus yang akan dibangun menggunakan metode CRC32 sebagai sarana pendeteksi virus dalam suatu komputer. Cara untuk menentukan nilai CRC32 dari suatu virus adalah dengan mengambil program induk virus yang biasanya berada pada
(16)
directory windows/system atau system32 yang kemudian akan dihitung nilai CRC32 nya. Virus yang telah dideteksi akan dihapus secara permanen oleh antivirus atau hanya dipindahkan ke recycle bin. Adapun flow chart antivirus ditunjukkan pada gambar 1.1.
Gambar 1.1 Flow Chart Scanner Antivirus tidak
START
Sistem mengambil ukuran dan nama file untuk dihitung nilai CRC32 nya
Sistem melihat ke database virus untuk membandingkan apakah nilai CRC32 file ada di list virus
Apakah nilai CRC32 ada di list virus?
Hapus virus permanen?
Apakah file yang dicari habis?
Pindahkan ke recycle bin
END
tidak
Hapus virus tidak
ya
ya ya
(17)
Sedangkan algoritmanya adalah sebagai berikut: 1. START
2. Aplikasi memeriksa file dengan mengambil nama dan ukuran file untuk dihitung nilai CRC32
3. Aplikasi melihat ke file signatures.db untuk membandingkan apakah nilai crc32 file ada di list virus (signatures.db)
4. Apakah Nilai CRC32 file ada di list virus(signatures.db)? a. jika ada langsung ke nomor 5
b. jika tidak langsung ke nomor 6 5. Apakah virus dihapus permanen?
a. Jika ya langsung ke nomor 8 b. Jika tidak langsung ke nomor 7 6. Apakah File yang dicari Habis?
a. Jika ya langsung ke nomor 8 c. Jika tidak kembali ke nomor 2 7. Pindahkan ke recycle bin
8. END
1.3 Batasan Masalah
Antivirus yang akan dibangun adalah antivirus yang menggunakan metode CRC32 dalam pendeteksian virus. Jadi virus yang dapat dikenali adalah virus yang telah terdefinisi nilai CRC32 nya dalam database virus.
1.4 Tujuan Penelitian
Tujuan dari penelitian skripsi ini adalah membuat database antivirus yang lebih kecil ukurannya dan sesuai dengan yang dibutuhkan oleh user, dan memberi alternatif lain kepada user untuk melakukan update database virus tanpa harus melalui koneksi Internet.
(18)
1.5 Manfaat Penelitian
1. Aplikasi dapat digunakan sebagai salah satu antivirus pada komputer.
2. User dapat meminimalisasi pemakaian media peyimpanan yang dipakai untuk menyimpan database virus.
3. User dapat melakukan update database virus tanpa harus melakukan koneksi ke server penyedia antivirus.
1.6 Sistematika Penulisan
Sistematika penulisan tugas akhir ini dibagi dalam lima bab, masing-masing bab diuraikan sebagai berikut :
Bab 1 PENDAHULUAN
Bab ini berisikan Latar Belakang Pemilihan Judul, Perumusan Masalah, Tujuan dan Manfaat Pembahasan, Batasan Masalah, dan Sistematika Penulisan.
Bab 2 LANDASAN TEORI
Bab ini membahas definisi virus, ciri-ciri sistem virus, strategi penanggulangan serangan virus, perencanaan pembuatan antivirus.
Bab 3 ANALISIS DAN PERANCANGAN
Bab ini membahas tentang aplikasi yang dibangun, komponen yang digunakan, penganalisisan, serta perancangan model sistem, struktur perangkat lunak, database virus dan tampilan antivirus.
Bab 4 IMPLEMENTASI
Bab ini menjelaskan bagaimana mengimplementasikan program yang sudah dibangun berdasarkan perancangan sistem dengan menguraikan persiapan-persiapan teknis sebelum menguji program serta menampilkan hasil akhir dari program antivirus.
(19)
Bab 5 PENUTUP
Pada bab ini akan diuraikan kesimpulan dari penjelasan bab-bab sebelumnya, sehingga dari kesimpulan tersebut penulis mencoba memberi saran yang berguna untuk melengkapi dan menyempurnakan pengembangan program antivirus untuk masa yang akan datang.
(20)
BAB 2
LANDASAN TEORI
2.1 Pengertian Virus dan Antivirus
Virus komputer bekerja dengan memanfaatkan fungsi-fungsi operating system yang tersembunyi dan juga memanfaatkan celah-celah yang ada dari program tertentu. Virus komputer memiliki kemampuan dasar diantaranya kemampuan memanipulasi, dan kemampuan untuk memperbanyak diri.
Istilah computer virus pertama kali digunakan oleh Fred Cohen dalam papernya yang berjudul ‘Computer Viruses – Theory and Experiments’ pada tahun 1984. Berikut kutipan definisi yang diberikan oleh Fred Cohen dalam paper tersebut:
“We define a computer ‘virus’ as a program that can ‘infect’ other programs by modifying them to include a possibly evolved copy of itself”. (Cohen, 1984).
Menurut definisi yang diberikan di atas dapat digarisbawahi beberapa sifat dasar virus komputer yaitu mempunyai kemampuan untuk menjangkiti (menginfeksi) program lain dan menyebar. Pada dasarnya penggunaan isitilah virus dikarenakan adanya kesamaan dalam hal sifat antara virus komputer dengan virus yang dikenal dalam istilah biologi. Di mana keduanya memiliki dua tujuan yaitu untuk bertahan hidup dan memperbanyak diri.
Pada dasarnya virus komputer dapat diklasifikasi menjadi dua jenis. Jenis virus komputer yang pertama dibuat untuk tujuan penelitian dan pembelajaran, dan tidak dipublikasikan. Sedangkan tipe kedua yang merupakan kebalikan dari tipe pertama, merupakan virus komputer yang membahayakan sistem komputer pada umumnya, sering kali disebut dengan istilah virus ‘in the wild’.
Virus komputer merupaka menyalin dirinya sendiri dan menyebar dengan cara menyisipkan salinan dirinya ke dalam program atau dokumen lain. Virus komputer dapat dianalogikan denga
(21)
biologis yang menyebar dengan cara menyisipkan dirinya sendiri ke membuat pengguna komputer merasa terganggu, maupun menghambat kinerja hardware dengan memanipulasi program driver hardware. Efek negatif virus komputer terutama adalah perbanyakan dirinya sendiri, yang membuat sumber daya pada komputer (seperti CPU Time, penggunaan memori) menjadi berkurang secara signifikan. (Aycock, 2006).
Virus komputer umumnya dapat merusa dapat secara langsung merus 98/98SE, Windows 2003, Windows 2003 Server, Windows XP Home Edition, Windows XP Professional, Windows XP Servicepack 1, Windows XP Servicepack 2, windows Vista) bahka
Sebuah program virus pertama kali harus dijalankan sebelum ia mampu untuk menginfeksi komputer. Ada berbagai macam cara agar virus ini dijalankan oleh user, misalnya dengan menempelkan dirinya pada suatu program yang lain. Ada juga virus yang jalan ketika user membuka suatu tipe file tertentu. Kadangkala virus juga memanfaatkan celah keamanan yang ada pada komputer user (baik sistem operasi atau aplikasi), dengan memanfaatkan hal-hal tersebut virus dapat berjalan dan kemudian akan menyebarkan dirinya sendiri secara otomatis.
User juga dapat menerima suatu file yang sudah terinfeksi virus dalam attachment e-mail. Begitu file tersebut dieksekusi, maka kode virus akan berjalan dan mulai menginfeksi komputer dan bisa menyebar pula ke semua file yang ada di jaringan komputer.
(22)
2.2 Karakteristik Virus Komputer
Setiap virus mempunyai karakteristik tersendiri yang berbeda antara satu dengan yang lain. Berikut ini adalah karakter-karakter virus yang membedakan virus yang satu dengan yang lain :
2.2.1 Ukuran
Ukuran virus sangatlah kecil bila dibandingkan dengan kebanyakan program-program komputer. Program-program virus dapat dibuat dengan Assembler yang akan menghasilkan ukuran yang jauh lebih kecil. Biasanya virus diberi nama dengan menyertakan besar penambahan ukurannya misalnya virus Die Hard 4000 artinya virus Die Hard akan menambah ukuran file yang diinfeksi dengan besar 4000 byte. Hal ini sangat bertolak belakang dengan virus-virus yang dibuat dengan bahasa pemrograman tingkat tinggi yang membutuhkan ukuran yang lebih besar, untuk itu para pembuat virus melakukan compress untuk memperkecil ukuran file. Ukuran file virus yang sangat kecil akan menyamarkan keberadaan virus pada komputer.
2.2.2 Stealth
Virus dengan tipe stealth adalah suatu virus yang berusaha untuk menghindari deteksi dengan menyembunyikan kehadirannya pada file yang terinfeksi. Untuk mendukung hal ini virus stealth akan menghalangi panggilan sistem yang akan membaca file yang terinfeksi tersebut. Sehingga komputer akan mendapati informasi file yang bukan sebenarnya. Artinya komputer telah membaca file yang salah. Virus akan memberitahu sistem komputer sehingga seolah-oleh segala sesuatunya berjalan normal, padahal sudah beberapa komponen sistem telah dirusak virus. Dengan teknik ini virus akan menipu antivirus. Teknik ini merupakan teknik virus yang sudah canggih.
(23)
2.2.3 Metode Infeksi
Ada banyak cara yang dilakukan oleh virus dalam menginfeksi program induk. Program induk merupakan program yang terdapat pada sistem yang dijadikan virus sebagai program pemicu. Berikut ini adalah metode-metode infeksi yang umum yang digunakan. Sebuah virus dapat mempunyai satu atau lebih metode infeksi.
a. Overwriting
Metode ini merupakan metode yang sudah kuno. Virus akan meng-copy tubuhnya ke program induk. Sehingga program induk yang terinfeksi tersebut rusak. Akibatnya program tidak dapat berjalan dengan baik. Dengan metode ini ukuran file yang terinfeksi tidak berubah.
Sebelum infeksi
Sesudah infeksi
file virus
Gambar 2.1. Overwriting virus
b. Appending
Ini merupakan metode penginfeksian yang lebih maju. Virus men-copy tubuhnya dengan cara menambahi program induk tidak dengan menimpah (overwriting). Program yang terinfeksi tetap dapat berjalan normal, tetapi ukuran file bertambah besar.
(24)
sebelum infeksi
setelah infeksi
file virus
Gambar 2.2 Appending Virus
c. Prepending
Metode penginfeksian virus ini mirip dengan appending, hanya saja virus mengcopy tubuhnya pada bagian awal program induk. Saat program terinfeksi virus dijalankan, kode virus akan tereksekusi terlebih dahulu kemudian diikuti dengan program induk.
sebelum infeksi
setelah infeksi
file virus
Gambar 2.3. Prepending Virus
d. Disk Infector
Virus dengan tipe ini akan menginfeksi boot record atau dapat juga partisi disk. (Minnarto,1999).
2.2.4 Terminate and Stay Resident (TSR)
TSR adalah singkatan dari Terminate and Stay Resident yaitu suatu virus yang akan berdiam di memori komputer dan akan tetap ada sampai komputer user di shut down. (Chandraleka, 2008)
(25)
2.3 Rutin-Rutin Pada Virus Komputer
Setiap virus mempunyai bagian-bagian yang disebut routine. Ada bagian yang penting dan ada juga yang bersifat tambahan. Komponen tambahan ini meski tidak begitu penting, menjadi karakteristik yang membedakannya dengan virus-virus lain. Dua komponen dasar yang harus dimiliki oleh virus adalah search routine (rutin pencari) dan copy routine (rutin pengganda). Terdapat satu routine lagi, yang meskipun bersifat tambahan, namun ia mempunyai arti penting dalam kelangsungan hidup virus melawan antivirus. Rutin ini adalah rutin anti detection routine. Adapun penjelasan lebih lanjut dari rutin-rutin tersebut adalah sebagai berikut:
a. Rutin pencari
Rutin pencari (search routine) berperan sebagai unit yang mencari file-file baru atau daerah baru yang akan diinfeksi pada disk. Rutin ini berkaitan erat dengan penentuan seberapa baik virus akan bereproduksi, apakah dia akan bereproduksi secara cepat atau lambat, termasuk menentukan seberapa banyak disk yang akan diinfeksi dan juga daerah-daerah tertentu pada disk yang akan menjadi target penginfeksian. Semakin rumit rutin pencarinya, semakin besar rutin pencarinya. Semakin andal rutin pencarinya, semakin cepat penyebaran virus.
b. Rutin pengganda
Komponen kedua yang harus dimiliki oleh virus adalah rutin pengganda. Rutin ini berfungsi menggandakan virus kesuatu area yang telah ditentukan oleh rutin pencari. Besar kecilnya rutin pengganda ini tergantung pada kekompleksan virus dalam penggandaan diri. Sebagai contoh, virus yang menginfeksi file COM mempunyai rutin pengganda lebih kecil dari pada virus yang menginfeksi file EXE. Hal ini dikarenakan struktur file EXE lebih rumit dibandingkan file COM sehingga banyak yang harus dilakukan virus untuk menempel di file EXE.
(26)
c. Rutin anti deteksi
Untuk mencapai tujuannya mencari file induk yang akan diinfeksi dengan rutin pencari dan kemudian menginfeksikannya dengan bantuan rutin pengganda, virus juga membutuhkan fitur-fitur tambahan. Fitur-fitur ini sangat berperan dalam mendukung tujuan tersebut. Diantara fitur yang biasanya ditambahkan dalam tubuh virus yaitu rutin untuk menghindari deteksi. Anti detection routine bisa dibangun menyatu dengan rutin pencari atau rutin pengganda sehingga menjadi bagian yang integral, tetapi bisa juga menjadi bagian tersendiri. (Chandraleka, 2008).
Kerja rutin pencari haruslah dibatasi untuk menghindari deteksi. Maksudnya, bila rutin pencari bekerja terus menerus memeriksa setiap file yang ada dalam disk, maka akan membutuhkan waktu yang lama dan akan menyebabkan aktifitas disk tidak normal dan tidak biasa. Ini tentu cukup mengkhawatirkan karena seorang user yang cukup waspada dengan aktivitas virus bisa menjadi curiga dan keberadaan virus dapat diketahui. Hal ini tentu sangat tidak diinginkan oleh para pembuat virus karena kelangsungan hidup virus menjadi terhambat.
Sebagai alternatif untuk mendukung anti detection routine, virus diaktifkan pada kondisi-kondisi tertentu, misalnya pada tanggal-tanggal tertentu seperti virus-virus pada keluarga Friday 13. Virus ini merupakan virus parasitic yang berbahaya dan bekerja dengan mencari seluruh file yang berkestensi .COM (kecuali COMMAND.COM) pada direktori aktif beserta subdirektorinya. Selanjutnya menempelkan dirinya pada bagian akhir file korban. Virus ini aktif setiap hari Jum’at ketiga belas dengan menghapus file-file.
Ada juga virus yang menggunakan alternative lain, misalnya dengan mendeteksi hentakan keyboard. Bila keyboard tidak ditekan selama jangka waktu yang ditentukan (misalnya 10 menit), maka virus mulai diaktifkan. Trik ini cukup cerdik untuk memastikan bahwa seorang user benar-benar sedang
(27)
tidak berada didepan komputernya. Dengan demikian, aktivitas virus yang terdapat pada sistem operasi komputer dapat berjalan lancar tanpa sepengetahuan user.
Rutin pencari, pengganda, dan anti deteksi merupakan komponen-komponen yang mendasar yang ada dalam setiap virus. Tentu saja virus-virus komputer mempunyai rutin-rutin tambahan yang lain, dengan tujuan menghentikan operasi normal komputer, menyebabkan kerusakan, atau bisa juga sekedar hiburan bagi programmer pembuat virusnya. Rutin-rutin tersebut akan mempengaruhi karakter sebuah virus dan berperan penting dalam mencapai tujuan virus yaitu kelangsungan virus dan bereproduksi. Bila hanya sedikit aktivitas disk, maka tidak ada orang yang memperhatikannya sehingga keberadaan virus tidak diketahui. Lain halnya dengan virus-virus yang menampilkan kotak dialog atau langsung melakukan kerusakan saat itu juga. User akan bisa langsung mengetahui keberadaan virus dikomputernya sehingga dapat segera dibasmi.
2.4 Aktivitas-Aktivitas Virus Pada Komputer
Hal-hal yang akan dilakukan virus pada sebuah komputer antara lain: a. Memperlambat Email.
Virus dapat menyebar melalui e-mail, seperti virus Sobig, dan mampu untuk membuat trafik e-mail yang sangat besar yang tentu saja akan membuat server menjadi lambat atau bahkan menjadi crash. Bahkan jika hal tersebut tidak sampai terjadi, perusahaan yang merasa terganggu dengan insiden ini toh juga akan mematikan servernya.
b. Mencuri data.
Contohnya adalah Worm Bugbear-D, mampu merekam keystroke keyboard Anda, termasuk password dan lain sebagainya. Rekaman tadi biasanya akan dikirim ke si pembuat virus untuk dimanfaatkan lebih lanjut.
(28)
c. Menggunakan komputer user untuk menyerang suatu situs.
Contohya adalah virus MyDoom, dia menginfeksi banyak komputer di seluruh dunia untuk menyerang situs SCO dengan traffic data yang sangat besar. Ini akan membuat situs tersebut akan terbebani luar biasa dan akhirnya akan crash dan tidak bisa melayani pengguna lainnya. Ini biasa dinamakan dengan denial of service.
d. Membiarkan orang lain untuk membajak komputer korban.
Beberapa virus menempatkan trojan backdoor pada komputer dan ini akan membuat si pembuat virus dapat terhubung ke komputer tersebut secara diam-diam dan bisa dimanfaatkan lebih lanjut sesuai dengan keinginannya.
e. Merusak data.
Contohnya adalah Virus Compatable, dapat membuat perubahan pada data yang disimpan user pada dokumen MS Excel.
f. Menghapus data.
ContohnyaVirus Sircam, berusaha untuk menghapus atau meng-overwrite hardisk user pada suatu waktu tertentu yang tidak terduga.
g. Men-disable hardware.
Contohnya Virus CIH atau Chernobyl, berusaha untuk meng-overwrite chip BIOS pada tanggal 26 April dan akan membuat komputer korban menjadi tidak berfungsi.
(29)
h. Menimbulkan hal-hal yang aneh dan mengganggu.
Contohnya Virus worm Netsky-D, dapat membuat komputer berbunyi beep secara spontan atau tiba-tiba untuk beberapa jam lamanya.
i. Menampilkan pesan tertentu.
Contohnya Virus Cone-F, akan menampilkan pesan berbau politik jika bulan menunjukkan bulan Mei.
j. Membuat malu user.
Contohnya Virus PolyPost, akan melakukan posting dokumen dan nama user pada newsgroup yang berbau pornografi.
2.5 Tanda-Tanda Keberadaan Virus
Ada banyak cara untuk mendeteksi keberadaan virus pada sistem komputer. Diantaranya adalah seperti tanda-tanda di bawah ini yang kemungkinan mengindikasikan adanya virus komputer pada sistem :
a. Penambahan ukuran file tanpa alasan yang jelas. Hal ini mengindikasikan adanya virus dengan tipe appending.
b. Program tidak berjalan secara normal dan diikuti dengan pesan-pesan error. Atau adakalanya disertai dengan animasi-animasi.
c. Adanya perubahan-perubahan struktur direktori tanpa sebab.
d. Penurunan jumlah memori yang tersedia yang disebabkan bukan karena komputer sedang menjalankan program-program komputer.
e. Aktifitas sistem keseluruhan berjalan secara lambat. Untuk mengeksekusi program membutuhkan waktu yang lebih lama dari biasanya.
(30)
2.6 Sejarah Virus Komputer
Virus komputer pertama kalinya tercipta bersamaan dengan komputer. Pada tahun 1949, salah seorang pencipta komputer, John von Newman, yang menciptakan Electronic Discrete Variable Automatic Komputer (EDVAC), memaparkan suatu makalahnya yang berjudul “Theory and Organization of Complicated Automata”. Dalam makalahnya dibahas kemungkinan program yang dapat menyebar dengan sendirinya.
Perkembangan virus komputer selanjutnya terjadi di AT&T Bell Laboratory salah satu laboratorium komputer terbesar di dunia yang telah menghasilkan banyak hal, seperti bahasa C dan C++. Di laboratorium ini, sekitar tahun 1960-an, setiap waktu istirahat para peneliti membuat permainan dengan suatu program yang dapat memusnahkan, kemampuan membetulkan dirinya dan balik menyerang kedudukan lawan. Selain itu, program permainan dapat memperbanyak dirinya secara otomatis. Perang program ini disebut Core War, pemenangnya adalah pemilik program sisa terbanyak dalam selang waktu tertentu. Karena sadar akan bahaya program tersebut, terutama C dan C++ adalah salah satu pemrograman bahasa tingkat tinggi bila bocor keluar laboratorium tersebut, maka setiap selesai permainan, program tersebut selalu dimusnahkan.
Sekitar tahun 1970-an, perusahaan Xerox memperkenalkan suatu program yang digunakan untuk membantu kelancaran kerja. Struktur programnya menyerupai virus, namun program ini adalah untuk memanfaatkan waktu semaksimal mungkin dan pada waktu yang bersamaan dua tugas dapat dilakukan.
Pada tahun 1980-an, perang virus di dunia terbuka bermula atas pemaparan Fred Cohen, seorang peneliti dan asisten profesor di Universitas Cincinati, Ohio. Dalam pemaparannya, Fred juga mendemonstrasikan sebuah program buatannya yang dapat menyebar secara cepat pada sejumlah komputer, yaitu suatu virus. (Aycock, 2006).
(31)
Sementara virus berkembang, Indonesia juga mulai terkena wabah virus. Virus komputer ini pertama menyebar di Indonesia juga pada tahun 1988. Virus yang begitu menggemparkan seluruh pemakai komputer di Indonesia, saat itu, adalah virus ©Brain yang dikenal dengan nama virus Pakistan.
Berikut adalah sekilas sejarah mengenai virus komputer .
1981 Virus ‘in the wild’ pertama ditemukan. Virus yang bernama Elk Cloner ini menyebar melalui floppy disk pada komputer Apple II.
1983 Fred Cohen dalam paper-nya yang berjudul ‘Komputer Viruses – Theory and Experiments’ memberikan definisi pertama mengenai virus komputer dan memaparkan eksperimen yang telah dilakukannya untuk membuktikan konsep dari sebuah virus komputer. Bersama dengan Len Adelman, ia menciptakan sebuah contoh virus pada komputer VAX 11/750 dengan sistem operasi Unix. 1986 Sepasang kakak adik dari Pakistan, Basit dan Amjad, menciptakan sebuah boot
sector virus pertama yang diberi nama Brain. Brain sering kali disebut sebagai virus komputer pertama di dunia. PC-based Trojan pertama diciptakan dalam bentuk program shareware yang diberi nama PC-Write. Dalam beberapa laporan disebutkan bahwa file virus pertama, Virdem, juga ditemukan pada tahun yang sama. Virdem diciptakan oleh Ralf Burger.
1987 Virus-virus file infector seperti Leigh mulai bermunculan, kebanyakan menyerang file COM seperti COMMAND.COM. Pada tahun yang sama muncul virus penyerang file-file EXE pertama, Suriv 01 dan 02 serta Jerusalem. Mainframe IBM mengalami serangan worm IBM Christmas Worm dengan kecepatan replikasi setengah juta kopi per jam.
1988 Virus pertama yang menyerang komputer Macintosh, MacMag dan Scores, muncul. Pada tahun yang sama didirikan CERT (Computer Emergency Response Team) oleh DARPA dengan tujuan awalnya untuk mengatasi serangan Morris Worm yang diciptakan oleh Robert Morris.
1989 AIDS Trojan muncul sebagai trojan yang menggunakan samaran sebagai AIDS information program. Ketika dijalankan trojan ini akan mengenkripsi hard drive dan meminta pembayaran untuk kunci dekripsinya.
(32)
pencipta virus didirikan di Bulgaria. Mark Ludwig menulis buku “The Little Black Book of Komputer Viruses” yang berisi cara-cara untuk menciptakan berbagai jenis virus komputer.
1991 Virus polymorphic pertama, Tequila, muncul di Swiss. Virus ini dapat mengubah dirinya untuk menghindari deteksi.
1992 Kehadiran virus Michaelangelo yang menjadi ancaman bagi seluruh dunia, namun demikian kerusakan yang ditimbulkan pada akhirnya tidak terlalu hebat. Kemuculan beberapa tool yang dapat digunakan untuk menciptakan virus seperti Dark Avenger Mutation Engine (DAME) yang dapat mengubah virus apa pun menjadi virus polymorphic, dan Virus Creation Lab (VCL) yang merupakan kit pertama yang dapat digunakan untuk menciptakan virus
Gambar 2.4 Tampilan Virus Creation Lab (VCL).
1995 Para hacker dengan nama ‘Internet Liberation Front’ melakukan banyak serangan pada hari Thanksgiving. Beberapa badan yang menjadi korban serangan ini adalah Griffith Air Force Base, Korean Atomic Research Institute, NASA, GE, IBM, dll.
Virus macro pertama yang menyerang aplikasi Microsoft Word, Concept, dikembangkan.
1996 Kemunculan virus Boza yang didesain khusus untuk menyerang file-file Windows95, virus Laroux yang merupakan virus penyerang Microsoft Excel pertama, virus Staog yang merupakan virus Linux pertama.
1998 Kemunculan virus Java pertama, Strange Brew. Back Orifice merupakan trojan pertama yang dapat digunakan sebagai tool untuk mengambil alih kendali komputer remote melalui Internet. Pada tahun ini, virus-virus macro lainnya bermunculan.
(33)
1999 Kemunculan virus Melissa yang merupakan kombinasi antara virus macro yang menyerang aplikasi Microsoft Word dan worm yang menggunakan address book pada aplikasi Microsoft Outlook dan Oulook Express untuk mengirimkan dirinya sendiri melalui email.
Virus Corner merupakan virus pertama menyerang file-file aplikasi MS Project. Virus Tristate merupakan virus macro yang bersifat multi-program menyerang aplikasi Microsoft Word, Excel, dan PowerPoint.
Bubbleboy merupakan worm pertama yang dapat aktif hanya dengan membuka email melalui aplikasi Microsoft Outlook tanpa memerlukan attachment.
2000 Serangan Distributed Denial of Service (DDoS) pertama membuat kerusakan pada situs-situs besar seperti Yahoo!, Amazon.com, dan lain-lain.
Love Letter merupakan worm dengan kecepatan menyebar tertinggi pada saat itu yang menyebabkan kerusakan pada banyak sistem email di seluruh dunia. Liberty Crack yang merupakan worm pertama untuk peralatan PDA.
2001 Gnuman (Mandragore) merupakan worm pertama yang menyerang jaringan komunikasi peer to peer. Worm ini menyamarkan diri dalam bentuk file MP3 yang dapat di download.
Kemunculan virus yang didesain untuk menyerang baik sistem operasi Windows maupun Linux, seperti Winux atau Lindose.
Virus LogoLogic-A menyebar melalui aplikasi MIRC dan e-mail.
2002 Virus LFM-926 merupakan virus pertama yang menyerang file-file aplikasi Shockwave Flash. Donut merupakan worm pertama yang menyerang .NET services. SQLSpider merupakan worm yang menyerang aplikasi yang menggunakan teknologi Microsoft SQL Server. (Minnarto, 1999).
2.7 Jenis-Jenis Virus Komputer
(34)
2.7.1 Berdasarkan Teknik Pembuatannya
a. Virus yang Dibuat dengan Compiler
Adalah virus yang dapat dieksekusi karena merupakan virus yang telah di compile sehingga menjadi dapat dieksekusi langsung. Virus jenis ini adalah virus yang pertama kali muncul di dunia komputer, dan sampai sekarang terus berkembang pesat. Biasanya virus jenis ini dibuat dengan bahasa pemrograman tingkat rendah yang disebut dengan assembler, karena dengan menggunakan assembler program yang dihasilkan lebih kecil dan cepat, sehingga sangat cocok untuk membuat virus. Tetapi tidak tertutup kemungkinan untuk membuat virus dengan menggunakan bahasa pemrograman lainnya seperti C dan Pascal baik dilingkungan DOS maupun Windows. Mungkin virus jenis ini adalah virus yang paling sulit untuk dibuat tetapi karena dibuat dengan menggunakan bahasa pemrograman dan berbentuk bahasa mesin maka keunggulan dari virus ini adalah mampu melakukan hampir seluruh manipulasi yang mana hal ini tidak selalu dapat dilakukan oleh virus jenis lain karena lebih terbatas.
b. Virus Macro
Banyak user yang salah pengertian dengan jenis virus ini, mereka menganggap bahwa virus Macro adalah virus yang terdapat pada program Microsoft Word. Memang hampir seluruh virus Macro yang ditemui merupakan virus Microsoft Word. Sebenarnya virus Macro adalah virus yang memanfaatkan fasilitas pemrograman modular pada suatu program aplikasi tertentu seperti Microsoft Word, Microsoft Excel, Microsoft PowePoint, Corel WordPerfect, dan sebagainya. Tujuan dari fasilitas pemrograman modular ini adalah untuk memberikan suatu kemudahan serta membuat jalan pintas bagi aplikasi tersebut. Sayangnya fungsi ini dimanfaatkan oleh pembuat pembuat virus untuk membuat virus didalam aplikasi tersebut. Walaupun virus ini terdapat didalam aplikasi tertentu tetapi bahaya yang ditimbulkan tidak kalah berbahanya dari virus-virus yang lain.
(35)
c. Virus Script/Batch
Pada awalnya virus ini lebih dikenal dengan virus batch karena dulu terdapat pada file batch yang terdapat pada DOS, sekarang hal ini telah berganti menjadi script. Virus script biasanya sering didapat dari Internet karena kelebihannya yang fleksibel dan bisa berjalan pada saat kita bermain Internet, virus jenis ini biasanya menumpang pada file HTML (Hype Text Markup Language) dibuat dengan menggunakan fasilitas script seperti Javascript, VBscript,4 maupun gabungan antara script yang mengaktifkan program Active-X dari Microsoft Internet Explorer.
2.7.2 Berdasarkan Infeksi yang Dilakukan
a. Virus Boot Sector
Virus Boot Sector adalah virus yang memanfaatkan gerbang hubungan antara komputer dan media penyimpan sebagai tempat untuk menularkan virus. Apabila pada boot sector terdapat suatu program yang mampu menyebarkan diri dan mampu tinggal di memory selama komputer bekerja, maka program tersebut dapat disebut virus.
b. Virus File
Virus file merupakan virus yang memafaatkan suatu file yang dapat diproses langsung pada editor DOS, seperti file berekstensi COM, EXE, beberapa file overlay, dan file BATCH. Virus umumnya tidak memiliki kemampuan untuk menyerang di semua file tersebut. Virus file juga dikelompokkan berdasarkan dapat atau tidaknya tinggal di memory.
c. Virus Sistem
Virus sistem merupakan virus yang memanfaatkan file-file yang dipakai untuk membuat suatu sistem komputer. Contohnya adalah file dengan berekstensi SYS, file IBMBIO.COM, IBMDOS.COM, atau COMMAND.COM.
(36)
d. Virus Hybrid
Virus ini merupakan virus yang mempunyai dua kemampuan, biasanya dapat masuk ke boot sector dan juga dapat masuk ke file. Salah satu contoh virus ini adalah virus Mystic yang dibuat di Indonesia.
e. Virus Registry Windows
Virus ini menginfeksi operating sistem yang menggunakan Windows 95/98/NT/XP biasanya akan mengadakan infeksi dan manipulasi pada bagian registry Windows sebab registry adalah tempat menampung seluruh informasi komputer baik hardware maupun software. Sehingga setiap kali kita menjalankan Windows maka virus akan dijalankan oleh registry tersebut.
f. Virus Program Aplikasi
Virus ini merupakan virus Macro, menginfeksi pada data suatu program aplikasi tertentu. Virus ini baru akan beraksi apabila user menjalankan program aplikasi tersebut dan membuka data yang mengandung virus.
2.7.3 Berdasarkan Media Penyebarannya
a. Penyebaran dengan Media Fisik
Media yang dimaksudkan bisa dengan disket, CD-ROM(Compact Disc Read Only Memory), harddisk, dan sebagainya. Untuk CD-ROM, walaupun media ini tidak dapat dibaca tetapi ada kemungkinan suatu CD-ROM mengandung virus tertentu, walaupun kemungkinannya kecil, tetapi seiring dengan berkembangnya alat CD-R/CD-RW yang beredar dipasaran maka kemungkinan adanya virus didalam CD-ROM akan bertambah pula. Untuk saat ini virus jenis ini yang menjadi dominan dari seluruh virus yang ada. Virus ini akan menular pada komputer yang masih belum tertular apabila terjadi pengaksesan pada file/media yang mengandung virus yang diikuti dengan pengaksesan file/media yang masih bersih, dapat juga dengan mengakes file/media yang masih bersih sedangkan di memori komputer terdapat virus yang aktif.
(37)
b. Penyebaran dengan Media Internet
Akhir-akhir ini virus yang menyebar dengan media sudah semakin banyak, virus ini biasanya menyebar lewat e-mail ataupun pada saat kita mendownload suatu file yang mengandung virus. Juga ada beberapa virus yang secara otomatis akan menyebarkan dirinya lewat e-mail apabila komputer memiliki hubungan ke jalur Internet.
Selain pengelompokan virus berdasarkan kriteria diatas, berdasarkan kemampuannya dalam menginfeksi komputer, virus komputer dapat dikelompokkan menjadi beberapa jenis, yaitu:
a. Computer virus: merujuk pada program yang memiliki kemampuan untuk bereplikasi dengan sendirinya.
b. Computer worm: merujuk pada program independen yang memiliki kemampuan untuk bereplikasi dengan sendirinya. Independen di sini memiliki makna bahwa worm tidak memiliki host program sebagaimana virus, untuk ditumpangi. Sering kali worm dikelompokan sebagai sub-kelas dari virus komputer.
c. Trojan horse: merujuk pada program independen yang dapat mempunyai fungsi yang tampaknya berguna, dan ketika dieksekusi, tanpa sepengetahuan pengguna, juga melaksanakan fungsi-fungsi yang bersifat destruktif.
d. Malicious toolkits: merujuk pada program yang didesain untuk membantu menciptakan program-program yang dapat membahyakan sebuah sistem komputer. Contoh dari program jenis ini adalah tool pembuat virus dan program yang dibuat untuk membantu proses hacking.
e. Joke program: merujuk pada program yang meniru operasi-operasi yang dapat membahayakan sistem komputer, namun sebenarnya dibuat untuk
(38)
tujuan lelucon dan tidak mengandung operasi berbahaya apapun. (Gennai, 2002)
2.8 Program Antivirus
Anti-virus software adalah sebuah program komputer yang digunakan untuk memeriksa file-file dengan tujuan mengidentifikasi dan menghapus virus komputer dan malware lainnya. Pada saat ini ada tiga jenis teknologi antivirus yang lazimnya digunakan, yaitu: scanner, monitors, dan integrity checkers. (Aycock, 2006).
2.8.1 Scanner
Scanners adalah program yang memeriksa file–file executable untuk menemukan rangkaian kode yang merupakan bagian dari komputer virus yang telah diketahui sebelumnya. Pada saat ini scanners adalah jenis program antivirus yang paling banyak digunakan dengan alasan kemudahan dalam proses maintenance (pemeliharaan).
Pada dasarnya scanners terdiri atas: a. Search Engine
b. Database yang berisi rangkaian kode sekuensial dari virus yang telah diketahui sebelumnya (sering kali disebut juga virus signatures atau scan strings). Jika sebuah virus baru ditemukan, maka database akan di-update dengan signature yang dimiliki hanya oleh virus tersebut dan tidak terdapat di dalam program lainnya. Hal ini dapat dilakukan tanpa memerlukan pemahaman yang lebih jauh mengenai virus tersebut.
Beberapa kelemahan yang dimiliki scannners adalah:
a. Scanners harus tetap dijaga agar up-to-date secara terus menerus karena scanners hanya dapat mendeteksi virus yang telah diketahui sebelumnya. b. Scanners cenderung rentan terhadap virus polymorphic yang memiliki
kemampuan untuk mengubah/mengkodekan dirinya sendiri sehingga terlihat berbeda pada setiap file yang terinfeksi. Hal ini dapat diatasi dengan memahami mutation engine yang terdapat di dalam virus tersebut secara mendetail.
(39)
c. Proses scanning yang dilakukan dalam mendeteksi keberadaan virus-virus cenderung bersifat time-consuming, mengingat keberadaan virus-virus, worms, dan trojan horses dengan jumlah yang luar biasa banyaknya.
2.8.2 Monitor
Monitors adalah program yang terdapat di dalam memory komputer untuk secara terus menerus memonitor fungsi dari sistem operasi yang bekerja. Pendeteksian sebuah virus dilakukan dengan memonitor fungsi-fungsi yang diindikasikan berbahaya dan memiliki sifat seperti sebuah virus, seperti merubah isi dari sebuah file yang executable dan tindakan-tindakan yang mem-bypass sistem operasi. Ketika sebuah program mencoba melakukan hal-hal di atas, maka monitors akan memblok eksekusi dari program tersebut.
Tidak seperti halnya scanners, monitors tidak memerlukan update secara terus menerus. Namun kelemahan utama dari monitors adalah kerentanan terhadap virus tuneling yang memiliki kemampuan untuk mem-bypass program monitors. Hal ini dikarenakan pada sistem operasi PC pada umumnya, sebuah program yang sedang dieksekusi (termasuk sebuah virus) memiliki akses penuh untuk membaca dan mengubah daerah manapun di dalam memori komputer bahkan yang merupakan bagian dari sistem operasi tersebut sehingga monitors yang juga merupakan bagian dari memori komputer dapat dilumpuhkan. Kelemahan porgram monitors lainnya adalah kesalahan yang kerap kali dilakukannya mengingat pendeteksian virus didasarkan pada kelakuan-kelakuan seperti yang disebutkan di atas, sehingga kerap kali fungsi dari sebuah program lain (yang bukan merupakan virus komputer dianggap sebagai sebuah virus)
2.8.3 Integrity Checkers
Integrity checkers adalah program yang mampu mendeteksi objek executable lain yang telah dimodifikasi dan mendeteksi infeksi dari sebuah virus. Integrity checkers bekerja dengan cara menghitung checksum (menghitung integritas) dari kode-kode program yang executable dan menyimpannya di dalam sebuah database. Kemudian
(40)
secara periodik checksum dari program-program tersebut akan dihitung ulang dan dibandingkan dengan database checksum tersebut. Beberapa pakar menilai bahwa database checksum ini harus dilalui proses kriptografi setelah proses perhitungan checksum selesai, untuk menghindari usaha modifikasi yang dapat dilakukan oleh virus komputer.
Pada saat ini terdapat beberapa jenis integrity checkers:
a. Off-line integerity checkers: perlu di-run terlebih dahulu untuk memeriksa checksum dari seluruh kode executable yang terdapat di dalam sistem komputer.
b. Integrity checkers yang bekerja dengan cara membuat modul-modul yang akan diattach pada file executable dengan bantuan program khusus tertentu. Sehingga bila file executable tersebut dijalankan, ia akan melakukan proses perhitungan checksumnya sendiri. Namun hal ini memiliki kekurangan karena tidak seluruh file executable dapat diperlakukan seperti ini, dan integrity checkers jenis ini dapat dengan mudah di-bypass oleh virus stealth.
c. Jenis terakhir dari integrity checkers yang bersifat residensial (mendiami) memori dan akan melakukan perhitungan ketika objek executable dieksekusi. Integrity checkers tidak bersifat virus-specific sehingga tidak memerlukan update secara terus menerus seperti scanners. Selain itu karena integrity checkers tidak berusaha memblok kerja dari virus komputer seperti halnya monitors, maka integrity checkers tidak dapat di-bypass oleh virus tunneling.
Beberapa kekurangan yang dimiliki integrity checkers:
a. Integrity checkers tidak memiliki kemampuan untuk mencegah proses penginfeksian oleh sebuah virus. Ia hanya dapat mendeteksi dan melaporkan hasil pendeteksian yang dilakukannya tersebut.
b. Integrity checkers pertama kali harus di sistem yang bebas virus, jika tidak maka hasil perhitungan pertama yang dilakukannya merupakan hasil perhitungan yang telah terinfeksi. Sehingga pada umumnya, pada saat proses
(41)
peng-install-an program integrity checkers dilengkapi dengan scanners untuk memastikan sistem bebas virus.
c. Integrity checkers rentan terhadap false positive (salah indikasi keberadaan virus pada program yang sebenarnya bebas virus), karena integrity checkers mendeteksi perubahan file bukan virus.
d. Integrity checkers tidak dapat mendeteksi sumber dari infeksi virus, walaupun dapat mendeteksi proses penyebaran virus dan mengidentifikasi objek yang baru terinfeksi.
e. Integrity checkers rentan terhadap slow viruses, karena slow virus menginfeksi file target ketika file tersebut ditulis ke dalam disk.
Meskipun adanya kekurangan-kekurangan di atas, banyak pakar menganggap integrity checkers sebagai pertahanan yang paling baik terhadap ancaman virus komputer dan malware lainnya.
2.9 Pengertian Checksum dan Fungsi Hashing CRC32
Checksum adalah jumlah yang dikalkulasikan sebagai fungsi dari suatu message. Atau checksum bisa dianalogikan sebagai sidik jari pada manusia. (Shadewa,2007)
Fungsi hash adalah fungsi yang menerima masukan string yang panjangnya sembarang dan mengkonversinya menjadi string keluaran yang panjangnya tetap (fixed) (umumnya berukuran jauh lebih kecil daripada ukuran string semula). (Munir, 2004).
CRC32 adalah kepanjangan dari ” Cyclic Redundancy Code” dan 32 melambangkan panjang checksum dalam bit.. Algoritma CRC adalah cara yang lebih baik dan teruji untuk pengecekan byte dalam jumlah besar dari suatu file yang telah termodifikasi maupun tidak, jika dibandingkan dengan metode yang mengacu pada nama atau ukuran file. Algoritma ini mencari lewat seluruh jumlah byte dan menghasilkan angka 32 bit untuk menggambarkan isi file, dan sangat kecil sekali kemungkinan dua stream dari byte yang berbeda mempunyai CRC yang sama. Algoritma CRC32 dapat diandalkan juga untuk mengecek error yang terjadi dalam
(42)
urutan byte. Dengan CRC32 kemungkinan perubahan standar (penyimpangan dari penghitungan CRC terhadap file) yang terjadi dapat dikendalikan. Nilai CRC32 dari sebuah file adalah nilai yang didapat dengan memproses ukuran dan nama file dengan nilai tabel CRC32 yang telah distandardkan (lampiran 2).
Implementasi CRC32 pada pendeteksian virus adalah virus dapat dikenali melalui banyak cara, dapat melalui nama file, ukuran atau dengan membongkar isi file dan menemukan penandanya. Ada beberapa kelemahan jika hanya mengenalinya dari nama file. Terkadang program virus tidak memakai nama asli dari virus itu sendiri. Misalnya virus Hallo.roro.htt memakai nama program pemicunya syssrv.exe. Sehingga mau tidak mau untuk mendeteksi program itu antivirus harus melihatnya melalui ukuran file. Ukuran file pun belum menjamin bahwa file tersebut adalah virus. Bisa saja ukuran filenya sama tetapi programnya berbeda. Sehingga diperlukan metode lain untuk mengenali file virus. Pengenalan virus melalui nilai CRC32 nya merupakan cara yang lebih akurat dan efektif.
Cara-cara mengenali sebuah virus melalui metode checksum error akan dijelaskan sebagai berikut:
a. Memilih file yang akan diperiksa
b. Mengambil informasi dari file tersebut, yaitu nama, ukuran.
c. Menghitung checksum file yang diambil dari ukuran file dengan metode CRC32.
d. Menggunakan hasil checksum tersebut untuk mengenali bahwa program tersebut adalah virus.
Sama seperti fungsi hashing yang lainnya, CRC32 berfungsi untuk mengambil penanda dari sebuah file yang nantinya akan dipakai sebagai acuan untuk memeriksa apakah suatu file adalah file virus atau bukan. Kecil sekali kemungkinan bahwa dua buah file mempunyai nilai CRC32 yang sama. CRC32 hanya mengambil 32 bit dari sebuah file yang dijadikan sebagai penanda file tersebut. Hal ini berbeda dengan metode MD5 yang mengambil 128 bit dari file. Jumlah bit penanda yang dihasilkan oleh metode MD5 yang lebih banyak akan sangat mempengaruhi efisiensi pemakaian
(43)
media penyimpanan dan kecepatan proses scanning. Langkah-langkah pembuatan MD5secara garis besar adalah sebagai berikut:
1. Penambahan bit-bit pengganjal (padding bits). 2. Penambahan nilai panjang pesan semula. 3. Inisialisasi penyangga (buffer) MD.
4. Pengolahan pesan dalam blok berukuran 512 bit. 5. 512 bit kemudian dibagi kedalam 32 bit sub blok.
6. Output MD5 berupa 4 buah blok yang masing-masing 32 bit. 7. 128 bit dari 4 buah blok ini yang disebut sebagai nilai hash.
Bererapa metode yang lain menggunakan hanya 16 bit sebagai penanda dari suatu file, hal ini tentunya akan sangat membantu mengefisienkan media penyimpanan, hanya saja 16 bit kurang menggambarkan isi dari suatu file, akan sering terjadi coalition, apalagi jika virus dibangun dengan bahasa pemrograman tingkat tinggi. Keuntungan memakai CRC32 adalah karena hanya terdiri dari 32 bit akan meminimalkan pemakaian media penyimpanan, dan mempercepat proses scanning.
Metode lain yang dapat dipakai user adalah metode heuristik. Pada metode ini program akan menganggap suatu file adalah virus jika file tersebut mempunyai sifat seperti sifat virus (misalnya mengubah nilai registry, memasuki start up system). Keunggulan dari metode ini adalah antivirus tidak terlalu bergantung pada signature virus yang terdapat pada database antivirus. Tidak seperti algoritma Hashing yang mengambil beberapa bit dari sebuah file sebagai penandanya, metode ini mengambil ciri-ciri umum proses virus untuk menandai sebuah file merupakan virus atau tidak. Kelemahan dari metode ini adalah seringnya terjadi kesalahan pada pendeteksian virus, hal ini dikarenakan beberapa file sistem mempunyai rutin yang sama seperti file sistem. Selain itu, metode ini bersifat tidak pasti, hanya menjadikan suatu file yang mempunyai cara kerja seperti virus sebagai suspect virus.
(44)
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis
Pada bab ini akan dibahas mengenai anlisis permasalahan, yaitu penelitian tentang kekurangan dengan memakai antivirus dari perusahaan pembuat antivirus beserta masalah-masalah lain yang ditemukan. Kemudian akan dibahas mengenai penyelesaian masalah dan persyaratan yang dibutuhkan untuk menyelesaikan masalah.
3.1.1 Analisis Permasalahan
Masalah yang dihadapi selama ini adalah semakin pesatnya perkembangan virus mengharuskan user untuk mendownload database virus yang semakin besar ukurannya. Setelah user mendownload data base antivirus, belum tentu virus yang menginfeksi komputer user terdapat dalam data base antivirus tersebut. Oleh karena itu, akan lebih efektif jika user hanya menghitung nilai CRC32 dari file virus yang menginfeksi komputer user, kemudian memasukkan nilai CRC32 file tersebut kedalam data base antivirus, kemudian antivirus melakukan scanning terhadap komputer dan menghapus seluruh file yang nilai CRC32nya yang serupa dengan file virus tersebut. Selain itu dengan menggunakan antivirus sederhana yang dibuat sendiri oleh user dapat membantu user yang sama sekali tidak memiliki akses Internet.
Antivirus, sesuai namanya adalah sebuah aplikasi yang dibangun untuk mendeteksi keberadaan virus pada sebuah komputer untuk selanjutnya dihapus dari komputer. Cara kerja program-program penghapus virus ini kebalikan dari program virus itu sendiri, yaitu mendeteksi apakah file terkena virus atau tidak, jika ya maka antivirus akan menindaklanjuti file tersebut yaitu dengan mengkarantina, menghapus, atau memperbaikinya. Ilustrasi tersebut bisa dilihat pada gambar berikut :
(45)
Gambar 3.1 Ilustrasi Cara Kerja Antivirus
Dari gambar 3.1 dapat dilihat sebuah program antivirus mencari semua file yang telah terinfeksi oleh virus, selanjutnya antivirus melakukan proses pemisahan file virus dengan file yang terinfeksi, kemudian melakukan penghapusan virus dan meninggalkan file yang telah bersih dari virus.
3.1.2 Analisis Persyaratan
Dalam perancangan sebuah perangkat lunak diperlukan rekayasa persyaratan yang merupakan sebuah proses untuk menemukan, menganalisis, mendokumentasikan, dan memeriksa layanan serta batasan sistem. Analisis ini akan digunakan pada saat sebuah program akan dikembangkan (pengkodean dalam bahasa pemrograman). Dalam hal ini ada 4 (empat) tipe analisis yang digunakan, yaitu :
1. Content Analysis
Menentukan isi yang akan disajikan oleh antivirus, baik itu berupa text, grafik maupun image.
2. Interaction Analysis
Menjelaskan cara interaksi antara sistemantivirus dengan user. Program akan dibangun dengan Visual Basic 6.0 yang akan berinteraksi dengan user dengan tombol-tombol dan tampilan grafis.
3. Functional Analysis
Menentukan operasi yang akan diaplikasikan pada program antivirus dan termasuk di dalamnya fungsi-fungsi yang melakukan semua proses serta semua operasi dan fungsi tersebut dideskripsikan secara detil. Antivirus akan mendeteksi keberadaan file virus dalam komputer, menghitung nilai CRC32 dari file tersebut kemudian menghapusnya dari komputer.
Antivirus Mencari file virus
virus virus
hapus
Komputer tanpa virus
(46)
4. Configuration Analysis
Lingkungan dan infrastruktur dimana aplikasi antivirus digambarkan secara detil, seperti pemilihan kebutuhan minimal hardware/software agar user bisa menggunakan antivirus ini. (Stephen,1996)
3.2 Perancangan
Setelah dilakukan analisis terhadap permasalahan, kemudian akan dilanjutkan dengan perancangan sebuah program antivirus yang akan menyelesaikan masalah yang dihadapi user selama menggunakan program antivirus dari perusahaan pembuat antivirus.
3.2.1 Algoritma Antivirus 1. START
2. Aplikasi memeriksa database tempat penyimpanan penanda dari file virus. 3. Apakah database virus ada?
a. jika ada langsung ke nomor 4 b. jika tidak langsung ke nomor 7
4. Aplikasi memeriksa semua proses yang sedang berjalan. 5. Apakah ada proses virus yang sedang berjalan?
a. Jika ya langsung ke nomor 6 b. Jika tidak kembali ke nomor 7 6. Matikan proses virus yang terdeteksi 7. END
(47)
Flowchart antivirus
Gambar 3.2 Flow Chart Antivirus START
tida
k
Sistem memeriksa database virus
Periksa semua proses yang berjalan
Apakah ada proses virus?
Matikan proses virus
END ya ada
T
ida
k a
(48)
3.2.2 Struktur Kode Antivirus
Untuk membangun sebuah program antivirus, maka program tersebut harus terdiri dari beberapa komponen.
1. Desain Interface (Antar muka)
Desain interface adalah desain tampilan utama dari program antivirus. Yaitu kode yang membentuk aplikasi luar antivirus yang dibangun. Adapun desain antar muka dari sistem adalah sebagai berikut:
Gambar 3.3 Desain Interface Antivirus
2. Kode Metode
Kode ini adalah prosedur yang dipakai untuk melakukan identifikasi virus. Pada sistem metode yang dipakai untuk mendeteksi keberadaan virus adalah dengan metode CRC32.
header
Informasi tentang virus yang terdeteksi
Check box Check box
(49)
3. Kode Virus List (Database Virus)
Kode ini adalah prosedur yang dipakai untuk menyimpan daftar virus yang telah diketahui nilai CRC32 nya. Kode ini berguna untuk memanipulasi database virus yang berisi list virus atau daftar file yang dicurigai sebagai virus. Database ini nantinya akan bertambah besar, sesuai dengan banyaknya virus yang harus dikenali oleh antivirus.
4. Kode Manipulasi File
Kode ini adalah prosedur yang akan dilakukan sistem jika menemukan virus. Kode manipulasi disini berguna untuk memanipulasi file virus, maksudnya untuk menangani file virus yang telah terdeteksi. Ketika ada file yang terdeteksi sebagai virus, maka aplikasi antivirus akan menindak lanjuti (menghentikan) file tersebut.
5. Kode Penghentian Proses Virus
Kode ini adalah prosedur penghentian proses virus. Kode ini berguna untuk menghentikan proses yang dijalankan oleh virus. Setiap virus biasanya memiliki file induk virus yang selalu menjalankan proses virus. Misalnya melakukan ping ke suatu situs atau menggandakan dirinya sendiri. Maka untuk menghentikan proses tersebut, maka harus ada kode kill process. Jika user ingin menghapus suatu file, maka file tersebut harus tidak boleh berjalan atau sedang melakukan proses di komputer. Jika masih melakukan proses, maka file tersebut tidak dapat dihapus.
Untuk dapat mengetahui nilai CRC32 dari suatu file, maka program antivirus harus didukung sebuah fitur yaitu sebuah program yang dapat menghitung nilai CRC32 dari suatu file. Program ini akan dibangun menggunakan VB 6.0.
(50)
Adapun algoritma program penghitung nilai CRC32 dari sebuah file adalah sebagai berikut:
1. START
2. Cari file yang akan dihitung nilai CRC32 nya. 3. Hitung nilai CRC32 dari file.
4. Tampilkan pada message box. 5. Copy nilai CRC32 file.
6. Jika file adalah virus, tambahkan nilai CRC32 dari file tersebut pada database antivirus.
7. END.
Selain itu untuk melihat semua proses yang sedang berjalan pada komputer maka program antivirus membutuhkan sebuah program yang dapat menampilkan seluruh proses yang terjadi, jika program task manager yang disediakan oleh windows tidak dapat bekerja karena diblokir oleh virus. Hal ini nantinya akan digunakan untuk menghentikan proses virus, karena file virus tidak dapat dihapus jika proses yang dilakukan virus tersebut tidak dihentikan. Setelah proses virus dihentikan kemudian antivirus akan melakukan scanning keseluruh directory pada sistem operasi dan menghapus semua file yang mempunyai nilai CRC32 yang sama dengan file virus.
(51)
BAB 4
IMPLEMENTASI
4.1 Implementasi Antivirus Pada Visual Basic 6.0
Bahasa Pemrograman Visual Basic akan digunakan sebagai bahasa untuk menerjemahkan algoritma dan flowchart antivirus kedalam kode-kode bahasa pemrograman yang bisa dicompile untuk selanjutnya dilakukan pengujian terhadap antivirus. Adapun listing program pada aplikasi ini terdapat pada lampiran 1.
4.2 Penggunaan Program dalam Scanning dan Penghapusan Virus
Program antivirus ini dapat dipakai oleh semua user. Program antivirus ini masih dapat dikembangkan sesuai dengan keinginan user. Program antivirus ini dibangun menggunakan bahasa pemrograman Visual Basic 6.0. Program antivirus menggunakan metode scanning dalam pendeteksian virus.
Sebelum membuat program, Visual Basic 6.0 harus ditambahkan komponen tambahan yaitu Microsoft Windows Common Control 6.0 (SP6). Komponen ini dapat ditambahkan melalui menu Project Components, atau dengan menekan tombol Ctrl+T pada keyboard.
Terdapat dua mode pada antivirus ini, yaitu mode Real Time Scan dan Autokill Virus. Pada mode real time scan, antivirus akan terus menerus memantau setiap proses yang terjadi pada komputer, selanjutnya memberitahu user jika ada proses yang dianggap sebagai virus, sedangkan pada mode autokill virus, antivirus akan langsung menghapus setiap proses yang dianggap sebagai virus.
(52)
4.3 Tampilan Interface
Tampilan utama dari aplikasi ditunjukkan oleh gambar berikut:
Gambar 4.1 Tampilan interface antivirus
Kolom PID adalah kolom yang menampilkan Id dari suatu proses dalam sistem operasi komputer. Kolom Nama Virus adalah kolom yang menampilkan informasi nama virus yang terdeteksi oleh aplikasi. Kolom Nama Proses adalah kolom yang menampilkan informasi nama file beserta nilai CRC32 dari file tersebut. Kolom Alamat Proses adalah kolom yang menampilkan informasi tentang pada directory mana file virus tersebut berada.
Kontrol utama yang diperlukan pada pembuatan program antivirus adalah: 1 buah listview
2 buah image list 2 buah picture box 1 buah timer 2 buah checkbox
(53)
Property dan value pada masing-masing kontrol ditunjukkan oleh tabel berikut:
Property Value
a Name lProcess
FullRowSelect TRUE
GridLines TRUE
LabelEdit 1 - lvwmanual
MultiSelect TRUE
View 3 - lvwReport
b Name ImgLarge
ImageHeight 32
ImageWidth 32
Visible FALSE
c Name ImgSmall
ImageHeight 16
ImageWidth 16
Visible FALSE
d Name picIcon32
Height 480
Width 480
Background Color &H00FFFFFF&
Visible FALSE
e Name picIcon16
Height 240
Width 240
Background Color &H00FFFFFF&
Visible FALSE
f Name tmrRealTimeScan
Enabled FALSE
Interval 100
g Name ChkRealTimeScan
Caption Mode Real-Time Scan
h Name ChkAutoKill
Caption Mode Auto-Kill Virus
I Name CmdRefresh
Caption Refresh List Proses
j Name CmdMatikan
Caption Matikan Virus Terdeteksi
(54)
Fungsi dari masing-masing kontrol adalah sebagai berikut:
a. lprocess
berfungsi untuk menampilkan list virus yang terdeteksi oleh antivirus. List view ini akan menampilkan informasi tentang virus yang berupa:
1. icon virus 2. Proses ID virus 3. Nama Virus
4. Nama Proses Virus 5. Alamat Virus 6. Ukuran Virus
b. ImgLarge
Jika program dieksekusi maka kontrol ini tidak ditampilkan. Kontrol ini diperlukan sebagai tempat penyimpanan icon virus (32px X 32px) yang terdeteksi.
c. ImgSmall
Jika program dieksekusi maka kontrol ini tidak ditampilkan. Kontrol ini diperlukan sebagai tempat penyimpanan icon virus (16px X 16px) yang terdeteksi.
d. picIcon32
Saat program dijalankan kontrol ini tidak ditampilkan. Kontrol ini berfungsi sebagai tempat pemrosesan ekstract icon virus (32px X 32px) yang terdeteksi.
e. picIcon16
Saat program dijalankan kontrol ini tidak ditampilkan. Kontrol ini berfungsi sebagai tempat pemrosesan ekstract icon virus (16px X 16px) yang terdeteksi.
(55)
f. TmrRealTimeScan
Merupakan timer yang akan digunakan sebagai timer untuk proses RealTime Scaner.
g. ChkRealTimeScan
Check box yang apabila dipilih akan mengaktifkan mode RealTime scanner
h. ChkAutoKill
Check box yang apabila dipilih akan mematikan langsung setiap proses yang dianggap sebagai virus.
i. CmdRefresh
Berfungsi untuk memberikan list proses. Apabila mendeteksi proses virus, maka akan dimasukkan kedalam Iprocess.
j. cmdMatikan
Berfungsi untuk mematikan program yang teridentifikasi sebagai virus.
Prosedur-prosedur yang terdapat pada program antivirus adalah:
a. Prosedur cmdRefresh
Prosedur ini berfungsi untuk mengambil semua proses yang sedang berlangsung pada komputer.
b. Prosedur Load database virus
Prosedur ini adalah prosedur pertama yang akan dibaca oleh antivirus, jika prosedur ini tidak terdapat database virus, maka program akan berhenti otomatis. Kode program pada prosedur ini adalah
If IsFileExist (addBackSlash(App.Path) & “dbVirus.txt”) = False Then
(56)
Program selesai!”, vbCritical, “Error” End
End If
c. Prosedur chkRealTimeScan_Click
If chkRealTimeScan.Value = 1 Then tmrRealTimeScan.Enabled = True Else
TmrRealTimeScan.Enabled = False End If
Prosedur ini berfungsi untuk mematikan atau mengaktifkan timer untuk RealTime Scanner.
d. Prosedur tmrRealTimeScan_Timer()
Prosedur ini merupakan prosedur RealTimeScanner. Prinsipnya sebenarnya sangat sederhana, yaitu hanya mengeksekusi prosedur cmdRefresh_Click() secara otomatis setiap 0.1 detik.
e. Prosedur cmdMatikan_Click()
Prosedur ini berfungsi untuk mematikan virus yang terdeteksi. Kode yang dipakai pada kode ini adalah:
On Error GoTo err:
For i=1 To lProcess.ListItems.Count KillProcess
lProcess.ListItems.Item(i).SubItems(1) lProcess.listItems.Remove(i)
i = i-1 Next i Err:
(57)
4.4CRC32 Calculator
Untuk mendapatkan nilai CRC32 dari suatu file atau proses maka diperlukan sebuah program tambahan yang berguna untuk melakukan kalkulasi nilai CRC32 dari suatu file. Nilai CRC32 file virus akan ditambahkan pada database virus. Fitur tambahan ini juga dibangun menggunakan VB 6.0.
Kontrol yang dibutuhkan untuk membuat program ini adalah 2 buah textbox
3 buah command button.
Property untuk masing-masing kontrol adalah sebagai berikut:
Property Value
A Name cmdBrowse
Caption Browse
B Name text
Text {kosong}
C Name cmdGetCRC32
Caption Get CRC32
D Name txtCRC
Text {kosong}
E Name cmdCopy2Clipoard
Caption Copy ke clipboard
Tabel 4.2 Property dan Value Pada Kontrol CRC32 Calculator
Prosedur pada masing-masing command button adalah sebagai berikut: a. cmdBrowse
t= BrowseForFolder(, “Silahkan Pilih File”, , , txtPath,True,True)
If t <> “” Then TxtPath = t End If
Pada prosedur ini akan menggunakan fungsi BrowseForFolder untuk melakukan browsing path file atau virus.
(58)
b. cmdGetCRC
txtCRC.txt = CRCFromFile(txtPath)
Prosedur ini akan mengambil nilai CRC32 dari file yang beralamatkan sesuai dengan txtPath dan menyalinkan hasil CRC32 nya kedalam txtCRC.
c. cmdCopy2Clipboard
Clipboard.SetText txtCRC.Text
MsgBox “CRC32 berhasil disalinkan pada clipboard.”, vbinformation, “CRC32 Viewer”
Prosedur ini befungsi sebagai penyalin data kedalam clipboard sehingga nanti dapat di paste pada tempat yang lain.
Langkah-langkah untuk menghitung nilai CRC32 dari suatu file adalah sebagai berikut:
File dirubah menjadi serangkaian bit. Selanjutnya rangkaian bit tersebut dibagi menjadi 4 segmen (karena 1 byte = 8 bit, maka 4 segmen berisi 32 bit). Dalam CRC32, berarti digunakan poly 32 bit (4 byte), akan tampak sebagai berikut:
3 2 1 0 byte
+--+--+--+--+
<--| | | | | <-- bitstring
+--+--+--+--+
1<--32 bits--> poly 4 byte
Poly adalah suatu bilangan polinom yang akan menjadi pembagi dari data yang akan diolah.
4 ruang kosong pada ilustrasi diatas menggambarkan register yang akan digunakan untuk menampung hasil CRC sementara (pada proses pembagian yang melibatkan operasi XOR). Proses yang dilakukan pada register ini adalah :
a. Bitstring (data) dimasukkan ke dalam register dari arah ke kanan (shift per byte) setiap saat register tidak terisi penuh.
b. Jika register sudah penuh (berisi 4 byte), maka register digeser satu byte ke arah kiri (keluar register), dan register diisi dari arah kanan dengan 1 byte dari bitstring
(59)
c. Jika register yang digeser keluar mempunyai nilai 1, maka akan dilakukan operasi XOR terhadap keseluruhan isi register (termasuk yang telah digeser keluar, dimulai dari bit tertinggi yang bernilai 1) dan nilai dari poly. Langkah ini diulang kembali sampai semua bit dari byte yang tergeser keluar bernilai 0.
d. Langkah b dan c diulang sampai semua bitstring (data input) selesai
diproses.
Sebagai contoh, bagaimana memproses CRC 8 bit (poly hanya 1 byte). Register akan berisi 8 bit, dan pada sekali shift digeser sebanyak 4 bit.
Isi awal Register : 10110100
Kemudian 4 bit pertama (1011) akan digeser keluar, dan memasukkan 4 bit baru misalkan 1101. Maka, 8 bit dalam register adalah : 01001101
4 bit yang digeser (top bits) : 1011
Poly yang digunakan (W=8) : 101011100
Langkah selanjutnya yang dilakukan adalah melakukan operasi XOR terhadap isi register dengan poly
Top Register ---- --- 1011 01001101 1010 11100 ---
0001 10101101 hasil XOR
Karena Top (isi register yang digeser keluar) masih mengandung nilai 1, maka langkah ini diulangi lagi.
0001 10101101 hasil XOR sebelumnya
1 01011100 ---
0000 11110001 hasil akhir XOR
(60)
Karena semua bit pada Top Register telah bernilai 0, maka telah selesai satu putaran untuk memproses rangkaian bit yang digeser keluar. Algoritma ini dapat dituliskan sebagai berikut:
while (masih_ada_bitstring) begin
Top=Top_byte_of_Reg
Reg=Reg<<8 {geser 1 byte}
Reg=Reg or new_bytestring {tambah byte baru}
Reg=Reg xor Table[Top] {xor dengan nilai dari
tabel dengan index Top} End
Nilai Checksum CRC32 dari suatu file adalah hasil operasi XOR top register dari file tersebut dengan pendekatan nilai tabel CRC32 yang nilainya tidak sama dengan nilai tabel CRC32 (tabel nilai CRC32 terdapat pada lampiran 2). Tampilan dari CRC32 Calculator ditunjukkan oleh gambar berikut:
Gambar 4.2 Tampilan utama CRC32 Calculator
4.5Task Manager Alternatif
Fitur ini dibutuhkan sebuah program antivirus yang berguna sebagai task manager alternative jika task manager yang disediakan oleh windows diblokir oleh virus. Dari program tambahan ini akan terlihat semua proses yang terjadi pada system operasi.
(61)
Program ini juga menampilkan nilai CRC32 dari setiap proses yang terjadi. Program ini juga dibangun dengan VB 6.0
Task manager alternatif ini akan memperbaiki kekurangan-kekurangan yang terdapat pada task manager Windows. Kekurangan-kekurangan itu adalah:
a. Icon proses tidak ditampilkan. Hal ini akan membuat user mengalami kesulitan untuk identifikasi proses yang akan dimatikan. Proses virus dapat dikenali dari icon virus tersebut.
b. Alamat program tidak ditampilkan. Hal ini akan mempersulit user untuk mencari file virus, untuk kemudian dihitung nilai CRC32 nya.
c. Task manager tidak dapat dibuka jika virus melakukan pemblokiran melalui program registry.
d. Task manager tidak dapat mematikan proses yang dianggap sebagai proses penting system windows. Hal ini akan dimanfaatkan oleh virus untuk mengelabui task manager dengan menggunakan nama yang sama dengan proses windows.
Kontrol utama pada program task manager alternatif ini adalah: 1 buah listview
2 buah image list 2 buah picture box 3 label
2 buah command button.
Property dari masing-masing kontrol adalah sebagai berikut:
Property Value
A Name LProcess
FullRowSelect TRUE
GridLines TRUE
LabelEdit 1 – lvwmanual
MultiSelect TRUE
View 3 – lvwReport
B Name ImgLarge
ImageHeight 32
ImageWidth 32
(62)
C Name ImgSmall
ImageHeight 16
ImageWidth 16
Visible FALSE
D Name picIcon32
Height 480
Width 480
Background Color &H00FFFFFF&
Visible FALSE
E Name picIcon16
Height 240
Width 240
Background Color &H00FFFFFF&
Visible FALSE
F Name cmdRefresh
Caption Refresh List Proses
G Name cmdMatikan
Caption Matikan Proses Terpilih
H Name lblPath
Caption -
I Name lblSize
Caption -
J Name lblCRC32
Caption -
Tabel 4.3 Property dan Value Pada Kontrol Task Manager Alternatif
Fungsi dari masing-masing kontrol adalah sebagai berikut:
a. lprocess
berfungsi untuk menampilkan list virus yang terdeteksi oleh antivirus. List view ini akan menampilkan informasi tentang virus yang berupa:
1. icon virus 2. Proses ID virus 3. Nama Virus 4. Alamat Virus 5. Ukuran Virus
b. ImgLarge
Jika program dieksekusi maka kontrol ini tidak ditampilkan. Kontrol ini diperlukan sebagai tempat penyimpanan icon virus (32px X 32px) yang terdeteksi.
(63)
c. ImgSmall
Jika program dieksekusi maka kontrol ini tidak ditampilkan. Kontrol ini diperlukan sebagai tempat penyimpanan icon virus (16px X 16px) yang terdeteksi.
d. picIcon32
Saat program dijalankan kontrol ini tidak ditampilkan. Kontrol ini berfungsi sebagai tempat pemrosesan ekstract icon virus (32px X 32px) yang terdeteksi.
e. picIcon16
Saat program dijalankan kontrol ini tidak ditampilkan. Kontrol ini berfungsi sebagai tempat pemrosesan ekstract icon virus (16px X 16px) yang terdeteksi.
f. lblPath,lblSize,lblCRC32
Berfungsi untuk menampilkan informasi proses yang dipilih pada lProcess. Kode program pada task manager alternatif ini adalah:
a. Form (Form_Load)
With lProcess.ColumnHeaders .Add , , , 350
.Add , , ”PID”, 800
.Add , , “Nama Proses”, 1600 .Add , , “Alamat Proses”, 4000 .Add , , “Ukuran”, 1800
End With
Me.Caption = CRCFromString (Now)
b. cmd_Refresh
Fungsi dari prosedur ini adalah untuk memasukkan proses beserta informasinya kedalam listview lProcess.
(64)
c. lProcess
Private Sub lProcess_Click() lblPath.Caption =
lProcess.SelectedItems.SubItems (3) If IsFileExist (lblPath.Caption) Then
lblSize.Caption =
FileLen(lblPath.Caption) & “bytes” LblCRC32.Caption =
CRCFromFile(lblPath.Caption) Else
picIcon32.Cls picIcon16.Cls
lblSize.Caption = “Objek tidak ditemukan”
lblCRC32.Caption = “_” End If
End Sub
d. cmdMatikan
On Error GoTo Err:
For i=1 To lProcess.ListItems.Count If
lProcess.ListItems.Item(i).Selected = True Then Kill Process
lProcess.ListItems.Item(i).SubItems(1) lProcess.listItems.Remove (i)
i = i – 1 End If
Next i Err:
(65)
Dibutuhkan juga kode berikut ini agar setiap proses dan detailnya ditampilkan pada kolom yang sama
Private Sub lProcess_ColumnClick (ByVal ColumnHeader As MSComctlLib.ColumnHeader)
lProcess.Sorted = True
If lProcess.SortOrder = lvwAscending Then lProcess.SortOrder = lvwDescending Else
lProcess.SortOrder = lvwAscending End If
lProcess.SortKey = ColumnHeader –1 End Sub
Tampilan dari task manager altenatif ditunjukkan oleh gambar berikut:
Gambar 4.3 Tampilan utama Task Manager Alternatif
Kolom pertama memberi informasi tentang icon dari setiap proses yang sedang berjalan. Hal ini akan membantu untuk mengidentifikasi suatu proses merupakan sebuah virus atau bukan. File yang diidentifikasi sebagai sebuah virus dapat dimatikan prosesnya melalui program ini.
(1)
4.8 Pengujian Program
Pada tahap pengujian, akan dijalankan tiga contoh simulasi virus yang dibuat dengan Visual Basic 6.0. Nilai CRC32 masing-masing contoh virus adalah
D1B5028F=vir1 840D4297=vir2 885CDD5D=vir3
nilai CRC32 semua virus ini akan disimpan dalam database virus. Selanjutnya akan dilakukan scanning untuk mencari keberadaan virus dalam komputer.
Langkah-langkah yang dilakukan dalam proses scanning adalah sebagai berikut:
1. User akan mengklik tombol “Refresh List Proses”.
2. Aplikasi akan memeriksa semua proses yang berlangsung pada Windows. 3. Aplikasi akan memeriksa kedalam database virus, jika terdapat proses
(aplikasi) yang mempunyai nilai CRC32 yang sama dengan nilai CRC32 yang terdapat dalam database, maka aplikasi akan menampilkan informasi tentang aplikasi yang dianggap virus, pada list.
4. Selanjutnya, untuk menghapus proses yang dianggap sebagai virus, maka proses harus diberi tanda (√), kemudian klik tombol “Matikan Virus Terdeteksi”.
5. Jika user memilih “Mode Auto-Kill Virus” maka aplikasi akan langsung menghapus proses virus, begitu virus terdeteksi.
Setelah dijalankan, apabila aplikasi menangkap keberadaan virus pada komputer, maka informasi tentang virus tersebut akan ditunjukkan pada list, seperti yang ditunjukkan oleh gambar berikut:
(2)
Gambar 4.5 Tampilan antivirus setelah dieksekusi
Setelah tombol Matikan virus terdeteksi ditekan, maka sistem akan menghapus semua proses yang dideteksi sebagai virus. Gambar berikut menunjukkan tampilan antivirus setelah menghapus proses virus.
(3)
BAB 5
PENUTUP
5.1 Kesimpulan
Berdasarkan tinjauan teori dan implementasi yang telah dilakukan mengenai Penerapan Fungsi Hashing CRC32 Pada Program Antivirus maka diperoleh kesimpulan:
1. Karena kecil sekali kemungkinan dua buah file yang berbeda mempunyai nilai checksum CRC32 yang sama, maka algoritma ini dapat dipakai sebagai algoritma scanning pada program antivirus. Menggunakan metode CRC32 lebih efektif jika dibandingkan dengan algoritma metode scan MD5 yang selama ini banyak dipakai oleh pembuat antivirus, hal ini disebabkan algoritma
MD5 menghasilkan message digest yang panjangnya 128 bit, sedangkan CRC32 hanya mengambil 32 bit, ini akan memperlambat proses scanning dan akan memperbesar pemakaian media penyimpanan. Selain itu metode scan dengan CRC32 dianggap lebih akurat dalam mengenali virus dibandingkan dengan metode monitoring (metode heuristic).
2. Program antivirus ini dapat melakukan penambahan jumlah database virus (update) tanpa harus meminta kepada komputer server yang terdapat pada produsen antivirus. Hal ini akan sangat membantu user yang tidak memiliki hubungan Internet.
3. Dengan antivirus yang dikembangkan sendiri oleh user, akan sangat membantu memperkecil pemakaian media penyimpanan. Hal ini dikarenakan user tidak harus menyimpan database virus yang tidak sesuai dengan yang dibutuhkan komputernya.
(4)
5.2 Saran
Program antivirus yang dibangun adalah program antivirus sederhana yang masih memiliki database virus yang terbatas. Untuk itu disarankan kepada pengguna untuk selalu menambah jumlah database virus. Selain itu, antivirus ini masih memiliki banyak kekurangan pada bidang grafis dan multimedia. Disarankan kepada para pengembang untuk menambahkan efek grafis dan multimedia untuk meningkatkan nilai estetika tampilan anti virus, dan untuk mempermudah user dalam menggunakan program antivirus ini.
(5)
DAFTAR PUSTAKA
Amperiyanto, Tri. 2007. Membuat dan Membasmi Worm-Virus. Jakarta : Elex Media Komputindo
Amperiyanto, Tri. 2007. P3K Virus Komputer. Jakarta : Elex Media Komputindo.
Ariyus, Dony. 2006. Computer Security. Yogyakarta: Penerbit Andi
Aycock, John. 2006. Computer Viruses and Malware. Canada : Springer.
Chandraleka, Happy. 2004. virus, worm, dan Trojan horse. Yogyakarta: Penerbit Andi.
Chandraleka, Happy. Modal Dasar Menghadapi Virus Komputer. diakses tanggal 7 Maret 2008.
Cohen, Fred. 1984. Computer Viruses – Theory and Experiments. Fred Cohen & Associates.
Diakses tanggal 7 Maret 2008.
Filiol, Eric.2005. Komputer viruses: from theory to applications. Paris: Springer. Gennai, Francesco, dkk. 2002. Can we protect ourselves from the virus plague?. www.mx.isti.cnr.it/pe/papers/virus-cmg2002.pdf.
Kurniawan, Yusuf. 2004. Kriptografi Kemanan Internet dan Jaringan Komunikasi. Bandung : Informatika.
Minnarto, Djojo. 1999. Konsep Perlindungan Komputer Terhadap Virus.
(6)
Munir, Rinaldi. 2004. Fungsi Hash Satu Arah dan Algoritma MD5. Diakses tanggal 25 Februari 2008.
Rebbapragada, Narasu. All in One Security. PC World. San Fransisco. Jul 2006.
Scach, Stephen, R. 1996. Classical and Object Oriented Software Engineering.
Vanderbilt University: Times Mirror Higher Education Group, Inc. Company.
Shadewa, Aat, “Mengenali Virus Lewat Checksum Error dengan metode CRC32”. www.virologi.info, diakses tanggal 12 Desember 2007.
Simarmata, Janner. 2005. Pengamanan Sistem Komputer. Yogyakarta : Penerbit ANDI.
Stiawan, Deris. Mengenal Virus Worm.
Diakses tanggal 25 Februari 2008.
Szor , Peter. 2005. The Art Of Komputer Virus Research And Defense. Addison Wesley Professional
Wijayanto,Sakti,Indra. 2007. Penggunaan CRC32 Dalam Integritas Data.
www.informatika.org/~rinaldi/Kriptografi/2006-2007/Makalah2/Makalah-054.pdf . Diakses tanggal 25 Februari 2008.