Jumat, 04 Januari 2008

Sabtu punya nih

Apa dan Bagaimana : Teknik Heuristik Pada Antivirus
Oleh Fajar
Published: Januari 2, 2008
Print

Teknik heuristik merupakan teknik yang dipakai antivirus untuk mendeteksi keberadaan virus2 baru atau yang belum terdapat di signature antivirus tersebut. Bagaimana caranya? Tentunya setiap antivirus memiliki cara sendiri2. Kita ambil contoh antivirus (yang lokal2 aja ya..) Ansav +E Advanced 1.7.8 (ga tau klo ada versi barunya) , av ini mengusung "Advanced Ansav Heuristic Engine". Pada AAHE ini, Ansav akan mendeteksi suatu file sebagai ancaman dengan dengan membandingkan suatu signature dengan entrypoint/PE Header pada body file. Yah kurang lebih begitu. Sedangkan pada PCMAV rc23, heuristik andalannya yaitu dengan mengecek jika suatu file mempunyai signature suatu icon tertentu. Maksudnya jika kita membuat program yang mengandung icon folder (baik sebagai icon file atau resource) maka PCMAV akan menganggap file tersebut sebagai ancaman.

Namun teknik-teknik heuristik tersebut dapat dilewati/ heuristic bypassing dengan mudah, misalnya pada Ansav, kita dapat memakai program packer2 yang tidak terdapat di "database" heuristiknya Ansav. Sedangkan pada PCMAV, ya.. paling gampang tinggal ga pake icon2 yang dianggap ancaman (icon folder, word dsb) atau mengubah struktur body icon memakai program hex editor (namun hati2 biar icon ga berubah gambar)

Pada kesempatan ini saya akan membahas teknik heuristik untuk mendeteksi worm VBS. Ini karena penasaran sama PCMAV yang selau aja jitu menebak VBS worm. Ceritanya ketika teman saya minta bersihiin virus, truz ternyata terdeteksi sebagai worm oleh antivirus luar di pc saya, iseng pengen nyoba kehebatan antivirus saya tersebut, saya mencoba mengenkripsi worm tersebut, dimana tulisan "Scripting.FileSystemObject" saya enkripsi menjadi Chr(83) + Chr(99) + Chr(114) + Chr(105) + Chr(112) + Chr(116) + Chr(105) + Chr(110) + Chr(103) + Chr(46) + Chr(70) + Chr(105) + Chr(108) + Chr(101) + Chr(83) + Chr(121) + Chr(115) + Chr(116) + Chr(101) + Chr(109) + Chr(79) + Chr(98) + Chr(106) + Chr(101) + Chr(99) + Chr(116)

Tadaaa... ternyata antivirus saya tidak mampu mendeteksinya... Kemudian teringat PCMAV (soalnya pernah baca diweb resminya klo PCMAV punya heuristik canggih buat mendeteksi file VBS). Pas discan pake PCMAV ternyata terdeteksi. Ya udah saya enkripsi semua string. Ehhh ternyata masih terdeteksi... hebat2... ini antivirus punya paranoid heuristik Setelah saya teliti2 hampir seribu detik, ternyata heuristiknya PCMAV yaitu dengan mendeteksi beberapa tulisan yang tidak mungkin tidak dipakai oleh suatu worm, yaitu salah satunya kombinasi command "CreateObject" dan "wscript.scriptfullname". Tulisan ini gimana ya enkripsinya?? soalnya tipe tulisan ini bukanlah string, melainkan command internal pada VBS. Klo di Delphi command2 mungkin bisa dienkripsi,itu mungkin juga cuma command2 yang memakai API misalnya "UrlDownloadToFile" dimana memanggil dari file urlmon.dll. Yah main2in memory (GetProcAddress).

Tapi, saya ga akan membahas bagaimana caranya heuristic bypassing, malez bo klo banyak virus canggih, ntar klo ada cewek minta tolong saya bersiin pcnya dan saya ga bisa kan.. giiitu dech... Ok.. lanjut, kita kita akan bikin program dasar untuk mendeteksi worm VBS.

Yang kita perlukan adalah VB6 dan :
Komponen dan nama

TextBox : Text1

CommandButton : Command1
CommandButton : Command2
CommonDialog : CommonDialog1

Pada Command1 isikan :

CommonDialog1.Filter = "VBS File (*.vbs)|*.VBS"
CommonDialog1.ShowOpen
If CommonDialog1.FileName = "" Then Exit Sub
Text1.Text = CommonDialog1.FileName

Pada Command 2 isikan :

Vbs_Checker Text1.Text

Kemudian buat fungsi sebagai berikut :


Public Function Vbs_Checker(ByVal target As String)

If target = "" Then Exit Function
If Dir$(target) = "" Then Exit Function

On Error Resume Next

Open target For Input As #1
While EOF(1) = False
DoEvents

Line Input #1, maltext
maltext = " " & maltext
maltext = LCase(maltext)

If InStr(maltext, "createobject") > 0 Then GoSub warning
If InStr(maltext, "regwrite") > 0 Then GoSub warning
If InStr(maltext, "wscript.scriptfullname") > 0 Then GoSub warning
If InStr(maltext, "ActiveDocument.Shapes.AddOLEObject") > 0 Then GoSub warning

Wend

Exit Function

warning:
MsgBox "Suspected command : " & maltext, vbExclamation, "Warning"
Return
End Function


Seharusnya kode2 di atas self explained, tapi saya jelasin lagi deh buat pemula kaya saya. Inti dari program tersebut yaitu membaca file VBS yang kita pilih dan membandingkan isi file VBS dengan tulisan tertentu, misalnya "createobject". Jika ketemu tulisan tersebut maka keluar peringatan.

Sekali-lagi, kode2 di atas hanyalah konsep untuk mendeteksi worm VBS. Mungkin lebih baik dengan membandingkan lebih dari satu kata untuk mencegah indikasi false alarm.

Demikianlah (kaya nutup pidato aja), mudah2an ada manfaatnya buat yang baca.
Trims.

Tidak ada komentar: