Masih ingat film Hackers? Dalam film tersebut dikisahkan bagaimana
seorang remaja mengacaubalaukan berbagai sistem komputer perusahaan
raksasa yang jahat, mengadakan duel hidup-mati di cyberspace, dan
akhirnya menyelamatkan dunia.
Dalam dunia nyata, kejadiannya mungkin tidak seseram dan seheboh
film di atas. Akan tetapi hacker, yang dikategorikan sebagai baik maupun
buruk, pasti melakukan penyusupan, karena memang itulah aktivitas
seorang hacker. Proses penyusupan dalam dunia hacker ini dapat dibedakan
menjadi beberapa tahapan, antara lain mencari sistem komputer untuk
dimasuki, menjelajahi sistem tersebut, termasuk mencari akses ke seluruh
bagiannya dan membuat backdoor serta menghilangkan jejak.
Mencari Sistem Komputer
Sejak dulu, walaupun ketika itu tidak banyak komputer terhubung ke
dalam jaringan, para hacker sudah mulai menampakkan diri. Ketika itu
mereka mencari sistem dengan cara menghubungi nomor telepon yang
dicurigai ada akses ke jaringan dengan modem. Biasanya yang menjadi
sasaran adalah nomor telepon perusahaan besar yang kemungkinan besar
memiliki akses jaringan.
Kemudian mereka menghubungi nomor-nomor telepon yang berdekatan
sampai menemukan nomor yang memberikan sinyal carrier. Jika sinyal
carrier ini ditemukan mereka merasa senang karena menemukan celah untuk
menyusup ke komputer yang terhubung melalui modem dan line telepon.
Walaupun melakukannya secara manual, lambat laun mereka sering
melakukannya dengan program khusus yang disebut Prefix Scanner, Demon
Dialer, atau War Dialer.Salah satu contoh dari program tersebut adalah
ToneLoc.
Namun ketika Internet mulai mengglobal, dengan sebagian besar
komputer sudah terhubung jaringan, para hacker semakin mudah mencari
sasaran komputer host. Saat ini yang perlu dicari bukanlah komputernya,
melainkan pintu masuk yang bisa dimanfaatkan dalam sistem komputer
tersebut. “Pintu masuk” di sini adalah port, yaitu jalur-jalur
keluar-masuknya data dari dan ke suatu komputer yang proses aksesnya
disebut “port surfing”. Pencarian port yang dapat digunakan biasa
dilakukan dengan program khusus yang disebut Port Scanner. Contohnya
Rebellion, PortPro dan PortScanner (mampu memeriksa sekelompok alamat IP
untuk mencari port yang terbuka). Di antara port yang sering terbuka
adalah port 23 (telnet), port 43 (whois), port 79 (finger), dan port 25
(simple Mail Transfer Protocol).
Servis-servis yang sering terdapat ini kemudian dapat digunakan
untuk mengumpulkan informasi lebih jauh tentang host yang akan dijadikan
sasaran. Servis yang paling umum dipakai adalah finger.
Finger, servis yang umum bagi sistem operasi UNIX (meskipun sudah
ada versi Windows-nya, misalnya Finger32) adalah perintah yang dapat
menampilkan informasi mengenai seorang pemakai jaringan. Cara kerjanya
sebagai berikut. Bila seseorang menjalankan program utiliti finger
client (misalnya Finger32 tadi) untuk mencari keterangan tentang A di
sistem B, misalnya, program finger client tadi akan mengirimkan
permintaan ke finger daemon di sistem B.
Daemon dalam konteks ini bukanlah makhluk merah yang berekor dan
bertanduk (dan di jidatnya ada angka 666), melainkan program yang
ditempatkan sebagai “penunggu” port-port pada host di Internet. Daemon
ini tugasnya menjalankan perintah dari luar secara otomatis, misalnya
mailer daemon, finger daemon, dan sebagainya.
Finger daemon yang kemudian akan mengirimkan informasi yang diminta
ke tujuan. Kelengkapan informasi yang diberikan bisa berbeda-beda,
tergantung konfigurasi sistem yang digunakan. Informasi yang umum
ditampilkan antara lain login name, waktu login terakhir, dan nama
pemakai.
Contoh “konfigurasi servis finger yang tidak umum” telah dilakukan
oleh beberapa staf Ilmu Komputer di Carnegie Mellon University beberapa
tahun lalu. Ketika itu mereka menghubungkan komputer DEC 3100 yang
menjalankan servis finger dengan sebuah otomat minuman dingin. Ini agar
mereka bisa menggunakan perintah finger dari ruangan mereka
masing-masing (ke coke@cs.cmu.edu) untuk mengetahui jumlah minuman yang
masih ada, dingin/tidaknya, dan jenisnya tanpa datang dan melihatnya
sendiri.
Finger juga bisa digunakan untuk melihat daftar pemakai dalam suatu
sistem. Dalam hal ini, yang difinger adalah hostnya, bukan nama pemakai
secara spesifik, seperti finger @host_sasaran.com
Perusahaan besar biasanya menonaktifkan finger daemon pada sistem
mereka (dengan menyunting file /etc/inetd.conf) untuk menjaga keamanan
jaringan mereka. Bila finger dilakukan pada sistem-sistem semacam ini,
akan muncul pesan Connection Refused. Selain melakukan scanning terhadap
port yang terbuka, juga bisa dilakukan scanning terhadap sistem secara
umum. Biasanya untuk mengetahui jenis sistem operasi dalam komputer,
tipe daemon, file share (NETBIOS pada sistem berbasis Windows).
Contoh program scanner komersial yang menscan kelemahan sistem
secara umum adalah Internet Security Scanner, COPS, dan SATAN.
Sebenarnya masih banyak program sejenis yang dibuat dengan tujuan
membantu administrator sistem untuk menemukan celah-celah pada sistemnya
(untuk kemudian diperbaiki). SATAN (Security Administrator Tool for
Analyzing Networks) merupakan program yang diibaratkan pedang bermata
dua, karena dapat dimanfaatkan orang yang hendak menerobos ke dalam
sistem.
Seorang hacker juga bisa melihat jumlah server yang ada di balik
suatu domain name dengan perintah whois. Bila di balik suatu domain name
terdapat beberapa mesin/suatu jaringan, hacker juga akan berusaha
melakukan pengumpulan informasi dan pemetaan terhadap jaringan tersebut.
Misalnya dengan menggunakan perintah showmount, rpcinfo, melihat NFS
export dari komputer-komputer yang menjalankan nfsd atau mountd untuk
menemukan komputer-komputer yang memiliki hubungan “terpercaya”
(trusted).
Pencarian komputer yang saling berhubungan bisa dilakukan dengan
melihat situs Web dan dokumen yang disediakan host bersangkutan. Situs
Web dan dokumen semacam ini umumnya memuat informasi tentang host lain
yang “sekelompok” dengan host yang akan dimasuki. Beberapa perintah yang
umum digunakan untuk eksplorasi tersebut biasanya hanya ada di UNIX.
Namun sistem operasi Windows 95 dan Windows 98 juga menyediakan beberapa
perintah TCP/IP yang cukup bermanfaat, misalnya arp, tracert, ping,
netstat, nbtstat, dan sebagainya.
Menyusup dan Menyadap Password
Sesuai namanya, cara ini dilakukan dengan cara menebak kombinasi
username dan password dalam sistem yang dijadikan sasaran. Dulu sekali,
orang masih belum begitu sadar akan pentingnya password yang sulit
ditebak, sehingga password mudah ditebak dengan cara manual. Sekarang,
cara menebak password ini dilakukan dengan menggunakan program.
Prinsip dasar program pemecah password dengan cara ini cukup
sederhana. Biasanya, hacker yang ingin menggunakan program tersebut
terlebih dulu menyusun daftar kata yang sering digunakan orang. Bisa
berupa nama aktor, nama tempat, dan sebagainya. Lalu, program pemecah
password tersebut akan mencoba kombinasi dari kata-kata dalam daftar
tersebut sampai mendapatkan kombinasi yang sesuai. Ada juga program yang
mencoba seluruh kombinasi karakter yang mungkin, baik huruf, angka
maupun karakter lain.
Metode ini disebut “brute forcing”. Beberapa program yang lebih
baik, misalnya L0phtCrack, memiliki fasilitas untuk melakukan brute
forcing maupun penebakan berdasarkan daftar kata.
Sampai sekarang, cara menebak password masih banyak dipakai, dan
program-programnya banyak tersedia, baik untuk NT, UNIX maupun DOS.
Misalnya saja program CrackerJack dan StarCrack. Program-program ini
sebenarnya diciptakan untuk keperluan pengamanan sistem. Seorang
administrator sistem biasanya memiliki beberapa program semacam ini,
lengkap dengan seperangkat file daftar kata, untuk memastikan bahwa
password-password dalam sistemnya benar-benar kuat dan tidak mudah
dibobol.
Pada awalnya, penggunaan metode penebakan password memiliki ekses
yang cukup jelek, yakni jumlah kegagalan login yang tinggi (akibat dari
berbagai kombinasi yang salah) sebelum kombinasi yang sesuai ditemukan.
Ini terutama terjadi pada penerapan metode brute forcing. Jumlah login
yang gagal selalu dicatat dalam log system, dan log ini hampir pasti
diperiksa administrator secara rutin. Sebagai akibatnya, administrator
tahu bahwa suatu upaya pembobolan tengah berlangsung. Oleh karena itu,
para hacker sekarang berusaha menggunakan teknik-teknik tertentu untuk
menyalin file daftar password dari sistem sasaran ke komputer mereka
sendiri, lalu mencoba memecahkannya dengan program penebak password saat
off-line. Dengan demikian, kemungkinan terdeteksi menjadi lebih kecil.
Menyadap password dapat dilakukan dengan berbagai cara. Cara yang
umum sekarang adalah dengan menyadap dan memeriksa paket-paket data yang
lalu-lalang dalam suatu jaringan (lazim disebut “sniffing” atau packet
monitoring). Sniffing atau mengendus biasanya dilakukan terhadap
paket-paket data yang dikirim dalam bentuk teks biasa atau tidak
terenkripsi.
Praktek sniffing yang lebih maju dibantu oleh sebuah protocol
analyzer, yang untuk membaca paket data yang “dibungkus” protokol
tertentu. Pemeriksaan paket-paket data dalam suatu jaringan sebenarnya
adalah juga praktek yang bermanfaat di kalangan administrator sistem,
untuk mengawasi gejala-gejala awal penyusupan. Namun, cara ini juga umum
di kalangan hacker maupun penjahat komputer.
Sebuah program pemantau paket dapat ditugaskan untuk mencari
paket-paket yang berisikan kata-kata kunci semacam “password”, “login”
dan sebagainya, lalu menyalin paket tersebut untuk dianalisis hacker
yang bersangkutan. Contoh program sniffer antara lain Netmon, EtherPeek,
LanWatch, tcpdump. Kesalahan pada program juga dapat dieksploitasi oleh
para calon penyusup.
Program-program versi awal maupun yang sudah cukup rumit seringkali
memiliki bug yang dapat membuat program tersebut macet/crash, lalu
“membuang” pemakainya ke sistem operasi. Program lapis luar (menjalankan
servis untuk umum) yang “bermasalah” dan memiliki banyak perintah
pengaksesan ke bagian dalam suatu jaringan dapat macet dan “melemparkan”
seorang pemakai ke dalam jaringan bila program tersebut kebetulan
“kumat”. Memori (stack buffer) sering menjadi titik lemah (dan sasaran
utama hacker) dalam sistem-sistem demikian. Buffer overflow, misalnya
pada server POP (Post Office Protocol) dengan qpopper dari Qualcomm,
bisa digunakan untuk langsung mengakses direktori root.
Pada beberapa perangkat lunak lain, biasanya para hacker menciptakan
kondisi buffer overflow untuk mendapatkan sebuah shell (sebagai hasil
“proses anak”/child process) dalam sistem terproteksi, yang bisa
digunakan untuk hacking lebih jauh. Kadangkala seorang hacker sengaja
mengirimkan input data atau rangkaian perintah yang dirancang sedemikian
rupa untuk mengeksploitasi kelemahan sistem ini.
Selain kesalahan pada programnya sendiri, seorang hacker bisa juga
mencari kelemahan akibat kesalahan konfigurasi program. Misalnya pada
anonymous FTP
(File Transfer Protocol), yang, bila tidak dikonfigurasi dengan
benar, bisa dimanfaatkan untuk mengambil file-file penting (misalnya
/etc/passwd). Hal yang mirip adalah pada tftp (Trivial File Transfer
Protocol), daemon yang dapat menerima perintah transfer file tanpa
adanya proteksi password. Contoh yang lebih tua lagi adalah eksploit
PHF, yang dulu sering digunakan untuk menghack situs Web.
Cara lain yang cukup umum adalah dengan memanfaatkan script CGI
(Common Gateway Interface). CGI adalah antarmuka yang memungkinkan
komunikasi antara program klien dan server. Skrip CGI sebenarnya sering
digunakan untuk pembuatan efek-efek pada Web page, tetapi dalam
kaitannya dengan keamanan, sebuah skrip CGI juga memungkinkan akses
file, penciptaan shell, maupun pengubahan file secara ilegal.
Eksploitasi CGI ini sebenarnya bukan merupakan kesalahan pada bahasa
penulisan scriptnya, tetapi merupakan teknik pemrograman yang cerdik
(biasanya dengan manipulasi validasi input).
Selain memori dan penggunaan skrip, ada kalanya hacker menemukan
cara untuk mengeksploitasi kelemahan yang muncul dari feature baru suatu
program. Misalkan pada server berbasis Win32. Win32, yang mendukung dua
macam penamaan file: penamaan yang panjang (misalnya
namafilepanjang.com), dan penamaan pendek (namafi~1.com), yang berguna
untuk menjaga kompatibilitas dengan sistem operasi lama.
Dalam kasus ini, kadang-kadang seorang administrator hanya
memproteksi file berdasarkan nama pendeknya (pada contoh di atas,
namafi~1.com). Bila hal itu terjadi, hacker bisa mengakali proteksi
tersebut dengan mengakses file itu menggunakan nama panjangnya
(namafilepanjang.com). Kelemahan lain yang umum dikenal adalah
eksploitasi terhadap fasilitas file sharing (utamanya pada Windows NT).
Fasilitas file sharing, bila dikonfigurasi dengan kurang baik,
memungkinkan sebarang orang untuk mengakses data-data dalam komputer
dengan mudah.
Di tingkat perangkat keras, evolusi perangkat keras juga menimbulkan
berbagai celah baru. Beberapa perangkat keras jaringan modern, yang
secara fisik bukan merupakan komputer, sebenarnya berisi komponen yang
fungsinya menyerupai komputer. Misalkan saja printer. Beberapa printer
berisi CPU SPARC, dan menjalankan sistem operasi UNIX (Solaris UNIX),
sehingga secara teoritis memiliki user account sendiri, dan bisa dihack,
sama seperti komputer biasa.