Heuristic, Apa dan Bagaimana? Bagian 1

pict:www.heuristics.org.uk

Introduksi
Heuristics pada dasarnya adalah teknik analisa yang digunakan untuk meningkatkan kinerja melalui proses komputasi. Di bidang ilmu komputer, heuristics adalah sebuah teknik yag dirancang untuk mampu menyelesaikan masalah, tanpa perlu pembuktian atas benar-tidaknya solusi yang diberikan, tetapi solusi yang dihasilkan biasanya merupakan solusi yang akurat, juga solusi atas masalah yang lebih sederhana tetapi berhubungan dengan permasalahan lain yang lebih kompleks

Pada periode waktu berikutnya, Heuristic juga digunakan sebagai mesin scanner bagi program anti-virus untuk menemukan virus dan malware yang memiliki karakteristik dan atribut tertentu —perangkat lunak yang mendeteksi virus-virus komputer, worms, trojan horses dan ancaman lain didalam system komputer— secara sederhana, heuristic bekerja dengan melakukan scanning terhadap file-file yang memiliki signature. Penggunaan signature ini cukup sederhana atau bisa menjadi kompleks seperti tiny macro atau subroutine yang akan memberitahu tentang dimana dan apa yang harus dicari kepada mesin scan.

Scann atas signature berfungsi dengan sangat baik untuk mendeteksi ancaman-ancaman komputer yang sudah pernah dikenali sebelumnya tetapi bagaimana program-program antimalware tersebut mendeteksi ancaman-ancaman baru yang belum pernah ditemukan sebelumnya? Salah satu metode yang digunakan adalah dengan heuristics. Tetapi sebelum masuk lebih jauh, kita tentu perlu memahami lebih dahulu tentang apa itu heuristic?

Definisi
Pada pemaparan berikut ini, Randy Abrams, Direktur Technical Education ESET-sebuah vendor keamanan komputer, menyajikan serangkaian penjelasan yang akan membantu kita memahami metode heuristic.

Heuristic, atau dalam bahasa Yunani “Εὑρίσκω” yang berarti menemukan, adalah kata kerja yang digunakan untuk teknik analisa berbasis pengalaman yang akan membantu penyelesaian sebuah masalah, atau proses belajar dan menemukan.
Sumber: Wikipedia

heuristic – kriteria umum, atau serangkaian kriteria yang ditujukan untuk meningkatkan peluang bagi penyelesaian masalah
Sumber: Princeton University Wordnet

Dalam konteks sains komputer: Heuristic atau dikenal juga sebagai algoritma heuristic, adalah sebuah algoritma yang secara praktis mampu menghasilkan solusi atau penyelesaian atas sebuah masalah berkaitan dengan heuristik secara umum, tetapi untuk permasalahan yang mana, belum ada pengujian formal terhadap tingkat akurasinya.
Sumber: Wikipedia

Ilmu tetang heuristic mempelajari tentang bagaimana sebuah informasi bisa ditemukan dan dipelajari. Didalamnya juga menjelaskan tentang bagaimana memandang masalah dan menemukan solusi atas masalah tersebut dengan cara induksi. Seringkali heuristic juga dianggap sebagai “rule of thumb” yang harus dipelajari oleh seseorang.

Dalam konteks komputer sains, heuristic sekaligus merupakan algoritma yang mampu bekerja cepat dan-atau mampu menyediakan hasil kerja yang baik. Tetapi jika dipahami sebagai perangkat lunak anti virus, maka ia punya makna yang lebih spesifik yaitu heuristic sebagai serangkaian kriteria —tetapi bukan instruksi— yang digunakan untuk mendeteksi perilaku malicious tanpa harus mengenali dampak program tersebut, dimana hal ini merupakan cara kerja scan atas virus lama berbasis signature, contohnya pada proses identifikasi terhadap program dan virus komputer yang spesifik.

Pemrograman Heuristic memiliki peran ganda dalam mendukung kinerja Anti Virus yaitu kecepatan dan deteksi. Istilah heuristik juga diterapkan di bidang sains untuk konteks yang kurang lebih sama yaitu bertujuan untuk meningkatkan kinerja (khususnya yang terkait dengan kecepatan dan menyeluruh). Ketika jumlah virus yang berhasil dikenali mengalami peningkatan, maka kemudian muncul pula kebutuhan untuk meningkatkan kecepatan deteksi.

Cara Kerja
Sebagian besar program antivirus yang menggunakan teknik analisa heuristic menjalankan fungsi mesin tersebut dengan cara menjalankan programming commands terhadap program yang mencurigakan atau script tertentu didalam mesin virtual, kemudian mengaktifkan program antivirus untuk melakukan simulasi secara internal, untuk mencari tahu apa yang akan terjadi jika file yang mencurigakan tersebut dijalankan. Sementara itu, code dari program yang mencurigakan tersebut tetap diisolasi agar tidak masuk ke dalam mesin komputer. Berikutnya adalah menganalisa perintah-perintah, me-monitor aktifitas viral yang umum seperti aktifitas replikasi-memperbanyak diri, file overwrites, dan upaya menyembunyikan keberadaan file yang mencurigakan. Jika ditemukan satu atau lebih aktifitas yang menyerupai aktifitas virus, file yang mencurigakan tersebut akan ditandai, dan dinyatakan sebagai berpotensi virus, dan pengguna komputer akan diberi peringatan

pict: www.welcometolace.org

Metode umum lainnya dari teknik analisa heuristik adalah untuk program anti virus akan melakukan de-kompilasi program yang mencurigakan, kemudian menganalisa source code yang terdapat didalamnya. Source code dari file yang mencurigakan tersebut kemudian dibandingkan dengan source code dari virus-virus yang sudah ada atau dikenal dan aktivitas viral. Jika diperoleh kesesuaian -pada tingkat persentase tertentu- dimana source code dari file tertentu dengan code dari virus yang sudah ada atau dikenal, juga dari aktifitas viralnya, maka file yang mencurigakan tersebut akan ditandai dan pengguna komputer akan diberi peringatan.

Mesin heuristic yang digunakan oleh program antimalware, dalam prosesnya mendeteksi dan mengenali virus, memiliki rules sebagai berikut :

* Program yang mencoba meng-copy dirinya dan masuk ke dalam program lain (dengan kata lain, cara kerja ini merupakan cara klasik dari sebuah virus)

* Program yang mencoba menulis secara langsung ke dalam disk

* Program yang mencoba untuk tetap berada didalam memory bahkan setelah tidak digunakan lagi.

* Program yang melakukan decrypts saat dijalankan (sebuah metode yang sering digunakan oleh malware untuk menghindar dari scanner signature)

* Program yang menempel di port TCP/IP dan menyadap instruksi-instruksi dari koneksi didalam jaringan. (kurang lebih seperti inilah cara kerja bot—terkadang juga disebut drones atau zombies)

* Program yang berusaha memanipulasi (meng-copy, menghapus, memodifikasi, merubah nama, memindahkan atau mengganti dll) file-file yang dibutuhkan oleh sistem operasi

* Program yang mirip dengan program-program jahat yang sudah lebih dulu ada.

Beberapa kriteria pada mesin heuristic dalam proses mengenali, bisa lebih berat, oleh sebab itu scorenya lebih tinggi dari pada yang lain, artinya bahwa jika ditemukan ada kesesuaian dengan kriteria tertentu, akan diindikasikan sebagai kehadiran perangkat lunak jahat atau malicious software (malware), demikian pula bisa terjadi jika sebuah program memenuhi beberapa kriteria yang berbeda dalam rules tersebut.

Bagian 2 akan membahas tentang contoh kasus dan analogi untuk memahamkan kita tentang metode Heuristik

Tentang ESET:
Didirikan pada tahun 1992, ESET merupakan penyedia layanan solusi keamanan kelas dunia yang ditujukan bagi segmen bisnis dan perorangan. Terdepan dalam deteksi malware proaktif, ESET NOD32 Antivirus masih memegang rekor dunia dalam perolehan penghargaan VB100 award dari Virus Bulletin, karena tidak pernah luput dalam mengidentifikasi dan memusnahkan baik worm, atau virus yang terdapat dalam “In-the-Wild” semenjak diperkenalkannya uji tersebut pada tahun 1998.

ESET bermarkas di Bratislava, Slovakia dengan kantor-kantor perwakilan yang tersebar di beberapa negara diantaranya San Diego, USA; Buenos Aires, Argentina; Prague, Czech Republic; Singapore juga kantor-kantor mitra kerjanya tersebar di lebih dari 180 negara. Pada 2008, ESET meresmikan beroperasinya pusat penelitian di Krakow, Polandia. ESET telah berhasil masuk dalam daftar Deloitte’s Technology Fast 500 sebagai salah satu perusahaan teknologi dengan pertumbuhan tercepat di wilayah region Eropa, Timur Tengah dan Afrika

ESET di Indonesia hadir pada 2008 meski sudah ada pengguna ESET di Indonesia sejak beberapa tahun sebelumnya. Keberadaannya di Indonesia diwakili oleh PT. Prosperita Mitra Indonesia.