Trojan horse (komputer)
Trojan horse atau Kuda Troya atau yang lebih dikenal sebagai Trojan dalam keamanan komputer merujuk kepada sebuah perangkat lunak berbahaya yang dapat merusak sebuah sistem atau jaringan. Tujuan dari Trojan adalah memperoleh informasi dari target (password, kebiasaan user yang tercatat dalam system log, data, dan lain-lain), dan mengendalikan target (memperoleh hak akses pada target).
Cara kerja
Trojan berbeda dengan jenis perangkat berbahaya lainnya seperti virus komputer atau worm karena dua hal berikut:
- Trojan bersifat "stealth" (siluman dan tidak terlihat) dalam operasinya dan sering kali berbentuk seolah-olah program tersebut merupakan program baik-baik, sementara virus komputer atau worm bertindak lebih agresif dengan merusak sistem atau membuat sistem menjadi crash.
- Trojan dikendalikan dari komputer lain (komputer attacker).
Cara penyebaran
Penggunaan istilah Trojan atau Trojan horse dimaksudkan untuk menyusupkan kode-kode mencurigakan dan merusak di dalam sebuah program baik-baik dan berguna; seperti halnya dalam Perang Troya, para prajurit Sparta bersembunyi di dalam Kuda Troya yang ditujukan sebagai pengabdian kepada Poseidon. Kuda Troya tersebut menurut para petinggi Troya dianggap tidak berbahaya, dan diizinkan masuk ke dalam benteng Troya yang tidak dapat ditembus oleh para prajurit Yunani selama kurang lebih 10 tahun perang Troya bergejolak.
Kebanyakan Trojan saat ini berupa sebuah berkas yang dapat dieksekusi (*.EXE atau *.COM dalam sistem operasi Windows dan DOS atau program dengan nama yang sering dieksekusi dalam sistem operasi UNIX, seperti ls, cat, dan lain-lain) yang dimasukkan ke dalam sistem yang ditembus oleh seorang cracker untuk mencuri data yang penting bagi pengguna (password, data kartu kredit, dan lain-lain). Trojan juga dapat menginfeksi sistem ketika pengguna mengunduh aplikasi (seringnya berupa game komputer) dari sumber yang tidak dapat dipercayai dalam jaringan Internet. Aplikasi-aplikasi tersebut dapat memiliki kode Trojan yang diintegrasikan di dalam dirinya dan mengizinkan seorang cracker untuk dapat mengacak-acak sistem yang bersangkutan.
Jenis-jenis trojan
Beberapa jenis Trojan yang beredar antara lain adalah:
- Pencuri password: Jenis Trojan ini dapat mencari password yang disimpan di dalam sistem operasi (/etc/passwd atau /etc/shadow dalam keluarga sistem operasi UNIX atau berkas Security Account Manager (SAM) dalam keluarga sistem operasi Windows NT) dan akan mengirimkannya kepada si penyerang yang asli. Selain itu, jenis Trojan ini juga dapat menipu pengguna dengan membuat tampilan seolah-olah dirinya adalah layar login (/sbin/login dalam sistem operasi UNIX atau Winlogon.exe dalam sistem operasi Windows NT) serta menunggu pengguna untuk memasukkan passwordnya dan mengirimkannya kepada penyerang. Contoh dari jenis ini adalah Passfilt Trojan yang bertindak seolah-olah dirinya adalah berkas Passfilt.dll yang aslinya digunakan untuk menambah keamanan password dalam sistem operasi Windows NT, tetapi disalahgunakan menjadi sebuah program pencuri password.
- Pencatat penekanan tombol (keystroke logger/keylogger): Jenis Trojan ini akan memantau semua yang diketikkan oleh pengguna dan akan mengirimkannya kepada penyerang. Jenis ini berbeda dengan spyware, meski dua hal tersebut melakukan hal yang serupa (memata-matai pengguna).
- Tool administrasi jarak jauh (Remote Administration Tools/RAT): Jenis Trojan ini mengizinkan para penyerang untuk mengambil alih kontrol secara penuh terhadap sistem dan melakukan apapun yang mereka mau dari jarak jauh, seperti memformat hard disk, mencuri atau menghapus data dan lain-lain. Contoh dari Trojan ini adalah Back Orifice, Back Orifice 2000, dan SubSeven.
- DDoS Trojan atau Zombie Trojan: Jenis Trojan ini digunakan untuk menjadikan sistem yang terinfeksi agar dapat melakukan serangan penolakan layanan secara terdistribusi terhadap host target.
- Ada lagi sebuah jenis Trojan yang mengimbuhkan dirinya sendiri ke sebuah program untuk memodifikasi cara kerja program yang diimbuhinya. Jenis Trojan ini disebut sebagai Trojan virus.
- Cookies Stuffing, ini adalah script yang termasuk dalam metode blackhat, gunanya untuk membajak tracking code penjualan suatu produk, sehingga komisi penjualan diterima oleh pemasang cookies stuffing, bukan oleh orang yang terlebih dahulu mereferensikan penjualan produk tersebut di internet
Pendeteksian dan pembersihan
Memeriksa Listening Port
Mendeteksi keberadaan Trojan merupakan sebuah tindakan yang agak sulit dilakukan. Cara termudah adalah dengan melihat port-port mana yang terbuka dan sedang berada dalam keadaan "listening", dengan menggunakan utilitas tertentu semacam Netstat. Hal ini disebabkan banyak Trojan berjalan sebagai sebuah layanan sistem, dan bekerja di latar belakang (background), sehingga Trojan-Trojan tersebut dapat menerima perintah dari penyerang dari jarak jauh. Ketika sebuah transmisi UDP atau TCP dilakukan, tetapi transmisi tersebut dari port (yang berada dalam keadaan "listening") atau alamat yang tidak dikenali, maka hal tersebut bisa dijadikan pedoman bahwa sistem yang bersangkutan telah terinfeksi oleh Trojan Horse.
Berikut ini adalah contoh penggunaan utilitas Netstat dalam Windows XP Professional
C:\>netstat -a -b
Active Connections
Proto Local Address Foreign Address State PID TCP windows-xp:epmap 0.0.0.0:0 LISTENING 956
c:\windows\system32\WS2_32.dll
C:\WINDOWS\system32\RPCRT4.dll
c:\windows\system32\rpcss.dll
C:\WINDOWS\system32\svchost.exe
—unknown component(s) --
[svchost.exe] TCP windows-xp:microsoft-ds 0.0.0.0:0 LISTENING 4
[System] TCP windows-xp:50300 0.0.0.0:0 LISTENING 1908
[oodag.exe] TCP windows-xp:1025 0.0.0.0:0 LISTENING 496
[alg.exe] TCP windows-xp:1030 0.0.0.0:0 LISTENING 1252
[ccApp.exe] UDP windows-xp:microsoft-ds *:* 4
[System] UDP windows-xp:4500 *:* 724
[lsass.exe] UDP windows-xp:isakmp *:* 724
[lsass.exe] UDP windows-xp:1900 *:* 1192
c:\windows\system32\WS2_32.dll
c:\windows\system32\ssdpsrv.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\kernel32.dll
[svchost.exe] UDP windows-xp:ntp *:* 1036
c:\windows\system32\WS2_32.dll
c:\windows\system32\w32time.dll
ntdll.dll
C:\WINDOWS\system32\kernel32.dll
[svchost.exe]
Membuat Snapshot
Cara lainnya yang dapat digunakan adalah dengan membuat sebuah "snapshot" terhadap semua berkas program (*.EXE, *.DLL, *.COM, *.VXD, dan lain-lain) dan membandingkannya seiring dengan waktu dengan versi-versi terdahulunya, dalam kondisi komputer tidak terkoneksi ke jaringan. Hal ini dapat dilakukan dengan membuat sebuah checksum terhadap semua berkas program (dengan CRC atau MD5 atau mekanisme lainnya). Karena seringnya Trojan dimasukkan ke dalam direktori di mana sistem operasi berada (\WINDOWS atau \WINNT untuk Windows atau /bin, /usr/bin, /sbin, /usr/sbin dalam keluarga UNIX), maka yang patut dicurigai adalah berkas-berkas yang berada di dalam direktori tersebut. Banyak berkas yang dapat dicurigai, khususnya berkas-berkas program yang memiliki nama yang mirip dengan berkas yang "baik-baik" (seperti "svch0st.exe", dari yang seharusnya "svchost.exe", sebuah berkas yang dijalankan oleh banyak layanan sistem operasi Windows) dapat dicurigai sebagai Trojan Horse.
Antivirus
Cara terakhir adalah dengan menggunakan sebuah perangkat lunak antivirus, yang dilengkapi kemampuan untuk mendeteksi Trojan yang dipadukan dengan firewall yang memonitor setiap transmisi yang masuk dan keluar. Cara ini lebih efisien, tetapi lebih mahal, karena umumnya perangkat lunak antivirus yang dipadukan dengan firewall memiliki harga yang lebih mahal dibandingkan dengan dua cara di atas (yang cenderung "gratis"). Memang, ada beberapa perangkat yang gratis, tetapi tetap saja dibutuhkan waktu, tenaga dan uang untuk mendapatkannya (mengunduhnya dari Internet).