Вы находитесь на странице: 1из 24

Banyak orang berbagi-pakai data lewat jaringan lokal, tapi apakah Anda sempat bertanya,

standar apa yang mengatur proses bagi-pakai itu? Bagaimana pula standar tersebut bekerja?
Setiap platform sistem operasi komputer punya standar yang berbeda-beda dalam
implementasi jaringan komputernya. Standar komunikasi antarkomputer ini disebut dengan
protokol. Platform Unix, Linux, dan Sun Solaris menggunakan protokol jaringan NFS (Network
File Sharing), platform Novell Netware memakai protokol jaringan IPX, sedangkan Microsoft
Windows protokol jaringan NetBIOS (Network Basic Input-Output System).
Di luar masing-masing protokol jaringan yang diterapkan oleh berbagai sistem operasi, ada
satu protokol komunikasi jaringan dan internet yang sifatnya global, yaitu TCP/IP
(Transmission Control Protocol/Internet Protocol). Umumnya, beberapa mekanisme kerja dan
spesifikasi pada TCP/IP diadopsi oleh protokol jaringan milik suatu sistem operasi.
Ya, begitulah sekilas tentang perbedaan protokol jaringan masing-masing sistem operasi.
Sekarang, giliran kita membahas pemahaman tentng carakerja protokol NetBIOS.
Di Dalam NetBIOS
NetBIOS bekerja berdasrkan nama khas yang
diberikan pada masing-masing komputer dalam
jaringan lokal. Nama khas tersebut diberi istilah
NetBIOS name, dan ditetapkan pada saat instalasi
sistem operasi.
Jika diperlukan, NetBIOS name bisa diubah dengan
cara mengakses [Control Panel] – [System] –
[Computer Name], lalu klik [Change]. Segera
setelah Anda melakukan perubahan, komputer akan
melakukan booting ulang untuk mengumimkan
nama NetBIOS pada setiap komputer anggota
jaringan lokal. NetBIOS name dipakai terutama oleh
aplikasi Network Neighborhood.
NetBIOS name digunakan dengan kombinasi
bersama dengan nomor IP lokal (privat).
Penerjemahan nomor IP (Internet Protocol) lokasi
ke NetIOS name, atau sebaliknya, dilakukan oleh
NetBIOS Name Server yang juga sering disebut
WINS.
Masing-masing komputer, ketika dihubungi oleh komputer lain dalam jaringan lokal akan
berfungsi sebagai WINS. Sebaliknya, ketika mnghubungi komputer lain, komputer asal akan
berfungsi sebagai client.
Adopsi protokol jaringan dan Internet TCP/IP dalam protokol NetBIOS ditampilkan dalam
kombinasi antara nama dan nomor IP. Namun, nama di sini bukan NetBIOS name, melainkan
host name atau machine name. Variasi protokol ini disebut NetBIOS over TCP/IP.
Host name dipakai oleh aplikasi seperti browser Internet, Telnet, FTP, serta server DNS yang
berhubungan dengan dunia di luar jaringan lokal, yaitu Internet. Sebuah komputer
penghubung, disebut gateway, berfungsi sebagai perantara dalam jaringan. Nah, gateway ini
dipasangi nomor IP publik yang bisa terhubung ke Internet. Nomor IP diterjemahkan ke host
name oleh satu komputer server yang disebut DNS (Domain Name Service). DNS server bisa
memakai satu komputer khusus dalam jaringan lokal atau “numpang pakai” DNS milik server
ISP (Internet Server Provider) yang memberikan akses publik. Namun, dalam prakteknya,
penggunaan DNS server milik sendiri dalam jaringan lokal lebih menjamin keamanan dan
kecepatan.
Jalur koneksi DNS server yang lebih pendek (ada dalam jaringan lokal) bisa membuat proses
dalam jaringan menjadi lebih cepat. Sedangkan prosedur koneksi ke Internet setelah proses
penerjemahan (resolve) nomor IP yang diharuskan melalui gateway membuat koneksi
menjadi lebih aman. Sedangkan informasi, gateway berfungsi untuk mengubah nomor IP
lokal (privat) ke nomor IP publik, sehingga nomor IP lokal tidak bisa dilihat dari luar. Proses ini
disebut NAT (Network Address Translation).
Host name bisa sama dengan NetBIOS name, bisa
pula diatur berbeda. Perubahan host name tidak akan
mengubah NetBIOS name.
Pengaturan TCP/IP pada NetBIOS bisa dilakukan
dengan cara mengakses [Control Panel] – [Network
Connection]. Setelah itu, klik kanan pada [Local Area
Connection] dan pilih [Properties]. Terakhir, lakukan
klik ganda pada [Internet Protocol (TCP/IP)].
Nah, sekarang bagaimana jika dalam satu jaringan
lokal ada dua komputer yang berbeda platform ingin
saling berbagi data? Ambil contoh saja antara
komputer berbasis Microsoft Windows dengan
komputer berbasis Linux. Kedua komputer tersebut
bisa menggunakan protokol yang berfungsi sebagai
jembatan, istilahnya protokol SMB (Service Message
Block), atau sering juga disebut sebagai Samba.
(PCplus, 280)

Mengenal Over Burning


Kita sering mendengar istilah “overburning”, namun mungkin
masih banyak dari kita yang masih merasa asing, atau malah
tidak tahu maksud dari istilah tersebut. Overburning merupakan
proses pembakaran keping disc, baik CD maupun DVD,
melewati batas kapasitasnya.
Adalah rahasia umum bahwa satu keeping CD (non mini)
memiliki dua standar kapasitas, yaitu 650MB (74 menit audio)
dan 700MB (80 menit audio). Nah, tiap kali kita membakar CD,
kapasitas yang akan dibakar harus pas atau kurang dari
kapasitas tampung CD tersebut. Tapi, dengan adanya fungsi overburn, kita bisa membakar
sebuah CD di atas kapasitas maksimalnya. Misalnya, Keping CD 700MB, kita bisa
memasukkan data sebanyak 720MB, atau 800MB pada jenis disc tertentu. Bahkan kita
membuat CD Audio yang berkapasitas 99 menit.
Lead Out pada Disc
Bagaimana bisa sebuah keping disc di-overburn? Banyak produsen disc sengaja melebihkan
panjang jalur bakar data pada pinggiran disc mereka. Area ini dinamakan lead out.
Lead out sendiri sebenarnya dibuat untuk memberikan toleransi bagi perangkat pemutar CD
Audio untuk membaca bagian depan keeping CD. Tujuannya agar tidak terjadi kekacauan
dalam pencarian data. Sebagai informasi, lead out akan membuat blok data digital audio
dengan durasi sekitar 90 detik. Data ini tentu saja data silent, yaitu data audio yang diam tak
bersuara.
Lalu apa yang diperlukan untuk melakukan overburning pada sebuah CD? Tentunya Anda
membutuhkan perangkat CD Writer dan peranti lunak yang pas. Meski begitu, data yang bisa
ditulis pada area lead out sangat bervariasi, tergantung merek dari CD tersebut. Secara
teoritis, area lead out bisa bisa di-burn hingga 10% total kapasitas kepingnya, namun, pada
kenyataannya, area lead out yang bisa dibakar paling hanya sekitar 1 – 5 persen dari total
kapasitas keping.
Hampir semua drive CD-ROM bisa membaca data pada lead out. Karena itulah, para
pembuat peranti lunak umumnya membuat dan memasarkan peranti mereka dalam disc yang
sudah di-overburn. Tujuannya, selain untuk mengurangi biaya produksi, juga untuk
mempermudah pembuatan sistem proteksi penyalinan perantinya. Alasannya, akan repot jika
mereka harus menyalin ulang proteksi peranti lunak mereka ke CD yang lain.
Perkembangannya
Overburning menggunakan CD Writer, pertama kali dipopulerkan oleh Yamaha. Saat itu,
hanya Yamaha yang memiliki sebuah CD Writer berkecapatan 4X yang bisa membakar data
sebanyak 660MB pada CD berkapasitas 650MB. Setelah itu, mulailah bermunculan beragam
CD Audio dengan durasi putar 75 menit, diikuti dengan kemunculan keping-keping CD
berkapasitas 800MB.
Saat ini, CD Writer sudah dilengkapi dengan fasilitas overburn sebagai standar. Bahkan
sudah banyak ditemukan keping CD yang mampu dibakar dengan data berdurasi hingga 99
menit.
Gebrakan lain juga dilakukan oleh Sanyo, yang sering membuat chipset untuk CD Writer
Plextor. Sanyo menemukan algoritma yang mampu membuat sebuah CD dengan standar
kapasitas 700MB untuk diisi data melebihi 1GB. Hebat, kan? Meski begitu, tidak semua
CD/DVD ROM, serta pemutar CD Audio/VCD dan DVD yang bisa membaca hasil
pembakaran dari CD yang ukurannya terlalu besar ini.
Kalau kita bisa melakukan overburning pada CD, apakah hal yang sama juga bisa dilakukan
pada DVD? Tentu saja.
DVD Writer pertama yang bisa dipakai untuk melakukan overburning DVD adalah DVD Writer
buatan Plextor. Namun karena drive-nya terlalu mahal, tak banyak orang yang tertarik untuk
melakukan overburning pada DVD.
Sebagai informasi, ada seseorang yang dijuluki Quikee, yang berhasil menemukan algoritma
yang memungkinkan satu keeping DVD+R yang berkapasitas 4600MB diisi dengan data
hingga 4482MB. Algoritma tersebut berhasil ditemukannya pada DVD Writer BenQ seri 1640.
Sayangnya, algoritma ini tidak bisa dipakai pada keeping DVD-R. (PCplus, 287)

Sistem Komunikasi Digital


Mau tahu bagaimana teks ditampilkan oleh komputer? Kayak kurang kerjaan saja ya? Tapi
pada prakteknya, pengetahuan remeh-remeh ini ada juga manfaatnya, misalnya untuk
mencegah terjadinya missing font saat kita membuat desain halaman publikasi.
Layaknya warna, suara, foto, video, serta alamat IP, teks dimengerti oleh komputer dalam bentuk
angka.
Mulanya, teks diberi nomor urut (indeks) dan dikenali oleh komputer berdasarkan indeksnya yang
dimulai dari angka 0. Standar pertama yang menggunakan sistem ini adalah ASCII (American Standard
for Code for Information Interchange), digunakan oleh Microsoft (DOS dan Windows) maupun Linux
(keluarga UNIX). Sistem ASCII menggunakan besaran 8 bit (1 byte), yang artinya dapat mengindeks
karakter sebanyak 2 pangkat 8 = 256.
Huruf alfabet kapital dimulai pada indeks 65 sampai 90. Huruf alpabet kecil dimulai dari indeks 97
sampai 122. Bagaimana dengan angka? Letaknya pada indeks 48 sampai 57. Sisanya digunakan untuk
mengindeks tanda baca, notasi matematis, serta karakter kontrol (navigasi) seperti Escape, Backspace,
dan lainnya.
Karakter ASCII digunakan pula untuk mengirim e-mail. Pesan utama e-mail ditulis dalam bentuk
ASCII. Jangan salah lho, lampiran (attachment) e-mail juga diubah (coded) ke dalam bentuk ASCII,
lalu dikirim bersama dengan pesan utama e-mail. Saat diterima, attachment tersebut akan diubah
kembali (decoded) ke bentuk aslinya.
Selangkah di depan standar ASCII adalah standar Unicode keluaran Java. Standar Unicode
menggunakan besaran 16 bit (2 byte) yang dapat mengindeks sebanyak 32.768 karakter (2 pankat 16).
Kemampuan pengindeksan sebanyak ini tentu mampu mewadahi berbagai karakter atau huruf lokal di
dunia.
ASCII dan Unicode merupakan dua standar pengindeksan karakter yang paling terkenal. Di samping
kedua standar tersebut, ada standar IBM PC, standar ISO latin dan ANSI, serta standar EBCDIC.
Pada perkembangan selanjutnya, hadir berbagai sistem font untuk mendandani karakter yang yang
telah diindeks. Sistem font berkaitan dengan sisi artistik suatu karakter serta sisi kegunaanya. Beberapa
sistem font yang terkenal adalah True Type keluaran Apple, Adobe Fonts, OpenType, rilis duo
Microsoft dan Adobe, serta TeX (perkembangan terkini adalah LaTeX 1.3) yang lahir dari rahim open
source.
Saat dirancang, font berada dalam bentuk gambar vektor, bukan gambar raster (bitmap). Gambar vektor
bersifat lain dari gambar bitmap. Gambar vektor terdiri dari bidang (shape), garis (outline), serta warna
isian yang dipetakan dengan koordinat matematis sehingga jika ukurannya direntang tidak akan
"pecah". Hal ini berbeda dengan gambar bitmap layaknya foto yang yang tersusun atas piksel dengan
satuan kerapatan tertentu, sehingga jika direntang melebihi batas toleransi, gambar akan "pecah".
Nah, setiap font terdiri dari tiga elemen utama, yaitu font, rasterizer, serta hinter. Makhluk apa pula ini?
Font akan dikenali lewat pola outlinen-ya. Setelah itu, ketika akan ditampilkan di monitor atau dicetak,
akan diubah ke bentuk bitmap oleh rasterizer. Kebanyakan printer hanya mengerti bahasa postscript
yang menampilkan gambar atau halaman dalam bentuk kumpulan titik/piksel. Di sinilah peran
rasterizer.
Hinter berusaha menyesuaikan resolusi font dengan layar monitor. Mengapa demikian? Setiap font
memiliki standar resolusi yang berbeda-beda. True type digunakan untuk resolusi 600 dpi sampai 1.200
dpi, sementara Adobe Fonts memiliki standar 1.200 dpi sampai dengan 2.400 dpi. Padahal, resolusi
display monitor hanya 72 dpi. Inilah tugas hinter.
Cara memanajemen sistem font juga berbeda. Font True Type misalnya, pada sistem operasi Windows,
font diinstal pada direktori C:\Windows\Fonta. Sementara Adobe Fonts diinstal pada folder masing-
masing aplikasi keluaran Adobe. Sebagai contoh, Adobe Fonts untuk InDesign diinstal pada direktori
C:\Program Files\Adobe\InDesign\Fonts. Penginstalan Adobe Fonts juga berbeda, menggunakan
perangkat lunak Adobe Type Manager (ATM).
Perbedaan cara menajemen dan lokasi font True Type dan Adobe Fonts menjadi contoh yang
menerangkan terjadinya missing fonts pada beberapa kasus penyusunan desain publikasi cetak.
(PCplus, 269)

Digital Right Management


Banyak cara untuk melindungi hak cipta yang direkam dalam bentuk digital. Salah satunya
menggunakan teknik Digital Rights Management (DRM). Masalahnya, penerapan teknik ini
mengudang kontroversi. Kenapa bisa begitu?
DRM merupakan teknik yang digunakan untuk membatasi atau melindungi akses terhadap
suatu konten ciptaan seseorang. Prinsipnya, siapa yang membayar, dialah yang berhak
menikmati dan menggunakan isi kontennya. Banyak arsitek DRM berpikir, tanpa teknik ini
pembajakan akan merajalela dan memotong pendapatan para produsen, distributor, serta
pencipta konten. Jika panjualan konten legal berkurang, maka kreativitas dan kualitas juga
akan turun.
Salah satu teknik DRM yang pernah terkenal adalah Content Scrambling System (CSS) yang
dipakai untuk mengunci film dalam kepingan DVD. Teknik CSS dikembangkan oleh DVD
Consortium untuk mempengaruhi produsen DVD agar tidak menyertakan fitur-fitur tertentu
pada produknya, misalnya koneksi digital-out yang dianggap sebagai penyebab mudahnya
pengandaan konten. Konsorsium tersebut hanya akan memberikan kumci pembebas enkripsi
konten DVD pada produsen yang setuju dengan aturan main mereka.
Selain CSS DRM, muncul peranti lunak DeCSS yang dapat digunakan untuk membuka kunci
proteksi CSS DRM. Dengan DeCSS, pengguna bisa memutar konten di sistem operasi
alternatif.
Yang Jadi Kontroversi
Saat ini, berbagai teknik DRM lain yang lebih canggih sudah diterapkan oleh toko-toko musik
online semacam iTunes. Pun, proteksi DRM digunakan oleh banyak produsen e-book.
Dengan proteksi tersebut, suatu e-book file hanya dapat dibuka pada komputer-komputer
tertentu, atau hanya dapat dibuka sebanyak sekian kali. Tentunya, hal ini membuat para
pembeli konten merasa tidak sepenuhnya memiliki apa yang telah mereka beli.
Selain banyak konsumen yang merasakan pembatasan hak atas konten yang telah mereka
beli, kontroversi seputar DRM kian memanas ketika ditemukan peranti lunak tersembunyi
(rootkit) milik Sony BMG. Peranti tersebut bernama MediaMax yang tersembunyi dalam file
konten, secara diam-diam mencatat lagu manakah yang sedang diputar dan berapa jumlah
pemutarannya.
MediaMax kemudian mengirimkan data tersebut ke server SunnComm sehingga Sony BMG
dapat mengetahui dengan pasti siapa yang memutar lagu tersebut dan untuk keberapa
kalinya. Problem baru timbul setelah kasus ini terkuak. Banyak konsumen terpaksa
menginstal ulang sistem operasi mereka karena komputernya mengalami masalah akibat
peranti lunak milik Sony BMG tersebut sulit dibuang.
Karena masalah itulah, kepanjangan DRM sering diplesetkan menjadi Digital Restriction
Management.
Ciri-Ciri File yang Diproteksi
Perlu diketahui, file yang ada di tangan Anda merupakan materi yang diproteksi dengan
mekanisme DRM jika memenuhi ciri-ciri berikut:
• Memerlukan perangkat keras atau peranti lunak pemutar khusus untuk memainkan file.
• Jumlah pengunduhan file dibatasi hanya beberapa kali saja.
• Waktu pengunduhan file dibatasi.
• Hanya beberapa komputer yang dapat dipakai untuk mengunduh file.
• Anda membutuhkan password atau harus login dahulu sebelum memainkan file.
• Anda harus mengirim e-mail konfirmasi ke distributor atau produsen file sebelum dapat
menggunakan file tersebut.

Jenis-Jenis Serangan
Oleh Onno W Purbo
Tulisan ini merupakan saduran bebas dari tulisan yang sama di PC Magazine
http://205.181.113.18/pcmag/pctech/content/17/08/nt1708.002.html dan juga hacktech.org
(http://www.hacktech.org). Denial of Service (DoS) merupakan serangan di Internet yang termasuk
cukup ditakuti karena akan menyebabkan mesin / server tidak bisa beroperasi sama sekali tidak bisa
memberikan servis. Tulisan ini akan mencoba memberikan gambaran secara garis besar teknik dari
berbagai serangan telak tersebut. Beberapa teknik telak yang sering digunakan, antara lain adalah:
• Ping of Death.
• Teardrop.
• SYN Attack
• Land Attack
• Smurf Attack
• UDP Flood
Ping of Death - menggunakan program utility ping yang ada di
sistem operasi komputer. Biasanya ping digunakan untuk men-
cek berapa waktu yang dibutuhkan untuk mengirimkan sejumlah
data tertentu dari satu komputer ke komputer lain. Panjang
maksimum data yang dapat dikirim menurut spesifikasi protokol
IP adalah 65,536 byte. Pada Ping of Death data yang dikirim melebihi maksimum paket yang di ijinkan
menurut spesifikasi protokol IP. Konsekuensinya, pada sistem yang tidak siap akan menyebabkan
sistem tersebut crash (tewas), hang (bengong) atau reboot (booting ulang) pada saat sistem tersebut
menerima paket yang demikian panjang. Serangan ini sudah tidak baru lagi, semua vendor sistem
operasi telah memperbaiki sistem-nya untuk menangani kiriman paket yang oversize.
Teardrop - teknik ini dikembangkan dengan cara mengeksplotasi proses disassembly-reassembly
paket data. Dalam jaringan Internet, seringkali data harus di potong kecil-kecil untuk menjamin
reliabilitas dan proses multiple akses jaringan. Potongan paket data ini, kadang harus dipotong ulang
menjadi lebih kecil lagi pada saat di salurkan melalui saluran Wide Area Network (WAN) agar pada
saat melalui saluran WAN yang tidak reliable proses pengiriman data menjadi lebih reliable. Pada
proses pemotongan data paket yang normal setiap potongan diberikan informasi offset data yang kira-
kira berbunyi “potongan paket ini merupakan potongan 600 byte
dari total 800 byte paket yang dikirim”. Program teardrop akan
memanipulasi offset potongan data sehingga akhirnya terjadi
overlapping antara paket yang diterima di bagian penerima
setelah potongan-potongan paket ini di reassembly. Seringkali,
overlapping ini menimbulkan system yang crash, hang dan reboot
di ujung sebelah sana.
SYN Attack - kelemahan dari spesifikasi TCP/IP, dia terbuka terhadap serangan paket SYN. Paket
SYN dikirimkan pada saat memulai handshake (jabat tangan) antara dia aplikasi sebelum transaksi /
pengiriman data dilakukan. Pada kondisi normal, aplikasi klien akan mengirimkan paket TCP SYN
untuk mensinkronisasi paket pada aplikasi di server (penerima). Server (penerima) akan mengirimkan
respond berupa acknowledgement paket TCP SYN ACK. Setelah paket TCP SYN ACK di terima
dengan baik oleh klien (pengirim), maka klien (pengirim) akan mengirimkan paket ACK sebagai tanda
transaksi pengiriman / penerimaan data akan di mulai. Dalam serangan SYN flood (banjir paket SYN),
klien akan membanjiri server dengan banyak paket TCP SYN. Setiap paket TCP SYN yang dikirim
akan menyebabkan server menjawab dengan paket TCP SYN ACK. Server (penerima) akan terus
mencatat (membuat antrian backlog) untuk menunggu responds TCP ACK dari klien yang

mengirimkan paket TCP SYN.


Tempat antrian backlog ini tentunya terbatas biasanya kecil di memori. Pada saat antrian backlog ini
penuh, sistem tidak akan merespond paket TCP SYN lain yang masuk (dalam bahasa sederhananya
sistem tampak bengong / hang). Sialnya paket TCP SYN ACK yang masuk antrian backlog hanya akan
dibuang dari backlog pada saat terjadi time out dari timer TCP yang menandakan tidak ada respon dari
klien pengirim. Biasanya internal timer TCP ini di set cukup lama. Kunci SYN attack adalah dengan
membanjiri server dengan paket TCP SYN menggunakan alamat IP sumber (source) yang kacau.
Akibatnya, karena alamat IP sumber (source) tersebut tidak ada, jelas tidak akan ada TCP ACK yang
akan di kirim sebagai respon dari respon paket TCP SYN ACK.
Dengan cara ini, server akan tampak seperti bengong tidak memproses respon dalam waktu yang lama.
Berbagai vendor komputer sekarang telah menambahkan pertahanan untuk SYN attack ini juga
programmer firewall juga menjamin bahwa firewall mereka tidak mengirimkan paket dengan alamat IP
sumber (source) yang kacau.
Land Attack - dalam Land attack (gabungan sederhana dari SYN attack) hacker membanjiri jaringan
dengan paket TCP SYN dengan alamat IP sumber dari sistem yang di serang. Biarpun dengan
perbaikan SYN attack di atas, Land attack ternyata menimbulkan masalah pada beberapa sistem.
Serangan jenis ini relatif baru, beberapa vendor sistem operasi telah menyediakan perbaikannya. Cara
lain untuk mempertahankan jaringan dari serangan Land attack ini adalah dengan memfilter pada
software firewall anda dari semua paket yang masuk dari alamat IP yang diketahui tidak baik. Paket
yang dikirim dari internal sistem anda biasanya tidak baik, oleh karena itu ada baiknya di filter alamat
10.0.0.0-10.255.255.255, 127.0.0.0-127.255.255.255, 172.16.0.0-172.31.255.255, dan 192.168.0.0-
192.168.255.255.
Smurf Attack - jauh lebih menyeramkan dari serangan Smurf di cerita kartun. Smurf attack adalah
serangan secara paksa pada fitur spesifikasi IP yang kita kenal
sebagai direct broadcast addressing. Seorang Smurf hacker
biasanya membanjiri router kita dengan paket permintaan echo
Internet Control Message Protocol (ICMP) yang kita kenal
sebagai aplikasi ping. Karena alamat IP tujuan pada paket yang
dikirim adalah alamat broadcast dari jaringan anda, maka router
akan mengirimkan permintaan ICMP echo ini ke semua mesin yang ada di jaringan. Kalau ada banyak
host di jaringan, maka akan terhadi trafik ICMP echo respons dan permintaan dalam jumlah yang
sangat besar. Lebih sial lagi jika si hacker ini memilih untuk men-spoof alamat IP sumber permintaan
ICMP tersebut, akibatnya ICMP traffic tidak hanya akan memacetkan jaringan komputer perantara
saja, tapi jaringan yang alamat IP-nya di spoof (jaringan ini di kenal sebagai jaringan korban (victim)).
Untuk menjaga agar jaringan kita tidak menjadi perantara bagi serangan Smurf ini, maka broadcast
addressing harus di matikan di router kecuali jika kita sangat membutuhkannya untuk keperluan
multicast, yang saat ini belum 100% di definikan. Alternatif lain, dengan cara memfilter permohonan
ICMP echo pada firewall. Untuk menghindari agar jaringan kita tidak menjadi korban Smurf attack,
ada baiknya kita mempunyai upstream firewall (di hulu) yang di set untuk memfilter ICMP echo atau
membatasi trafik echo agar presentasinya kecil dibandingkan trafik jaringan secara keseluruhan.
UDP Flood - pada dasarnya mengkaitkan dua (2) sistem tanpa disadarinya. Dengan cara spoofing, User
Datagram Protocol (UDP) flood attack akan menempel pada servis UDP chargen di salah satu mesin,
yang untuk keperluan “percobaan” akan mengirimkan sekelompok karakter ke mesin lain, yang di
program untuk meng-echo setiap kiriman karakter yang di terima melalui servis chargen. Karena paket
UDP tersebut di spoofing antara ke dua mesin tersebut, maka yang terjadi adalah banjir tanpa henti
kiriman karakter yang tidak berguna antara ke dua mesin tersebut.
Untuk menanggulangi UDP flood, anda dapat men-disable semua
servis UDP di semua mesin di jaringan, atau yang lebih mudah
memfilter pada firewall semua servis UDP yang masuk. Karena
UDP dirancang untuk diagnostik internal, maka masih aman jika menolak semua paket UDP dari
Internet. Tapi jika kita menghilangkan semua trafik UDP, maka beberapa aplikasi yang betul seperti
RealAudio, yang menggunakan UDP sebagai mekanisme transportasi, tidak akan jalan.
Server Side dan Client Side
Saat berkunjung ke suatu toko, Anda mungkin sering melihat tulisan “Dilarang masuk,
kecuali karyawan/petugas”. Hal itu kiranya baik djadikan sebagai analogi untuk
memahami diferensiasi antara client side dan server side di dunia internet.
Ibarat toko atau rumah, pasti ada ruang yang bersifat publik dan ada pula yang privat.
Demikian juga dengan suatu situs web. Di dalamnya tersimpan informasi yang bisa dilihat
langsung oleh sembarang tamu, tapi ada juga informasi atau sumber daya lain yang hanya
boleh diakses oleh orang-orang tertentu, entah anggota atau administrator sistem.
Kalau di toko Anda meminta informasi atau bertanya pada petugas (bagian customer
service), di situs web petugasnya ya berupa aplikasi yang dikenal dengan nama Common
Gateway Interface (CGI).
Aplikasi Server Side
Berbagai bahasa pemrograman yang digunakan untuk membuat aplikasi CGI antara lain
adalah PHP, ASP, Perl, Java, Phyton, dan ColdFusion. Semua aplikasi itu bersifat server side.
Umumnya pengunjung web meminta informasi yang tersimpan pada basis data sebuah situs
web. Adalah tugas aplikasi CGI untuk menyampaikan karakteristik data yang diminta oleh
tamu kepada aplikasi pencari data. Semua ini dilakukan menggunakan format bahasa SQL
(Structured Query Language). Nantinya, hasil pencarian akan disuguhkan kepada tamu oleh
aplikasi CGI.
Contoh lain dari aplikasi yang bersifat server side adalah mesin pencari (search engine).
Contohnya adalah Google. Karakteristik data yang diinginkan pengunjung ditampung dalam
sebuah form. Anda bisa mengetikkan kata kunci pencarian dalam boks pencari, apakah teks
dari web atau gambar. Jika ingin, lokasi pencarian (regional atau global), dan ukuran data
(kesil, sedang, atau besar) juga bisa Anda tentukan. Begitu Anda menekan tombol [Telusuri
dengan Google], request pencarian akan diteruskan oleh CGI kepada server Google.
Server Google akan menghubungi setiap server web yang terhubung ke Internet, dan
menelusuri file indeks setiap situs tersebut untuk menemukan informasi yang sesuai dengan
kata kunci yang Anda mesukkan. Hasil pencarian akan disuguhkan kembali ke pengunjung
oleh aplikasi CGI dalam bentuk ratusan atau bahkan ribuan URL (Universal Resource
Locator) situs web yang relevan.
Aplikasi Client Side
Sekarang giliran kita membahas aplikasi bersifat client side. Apa ciri-ciri utama dari aplikasi
ini? Sebagai informasi, aplikasi client side tidak dijalankan oleh server, namun diunduh dan
dijalankan oleh browser web penggunanya.
Contoh aplikasi yang sifatnya client side bisa dilihat langsung di halaman situs, saat Anda
mengklik sebuah tombol dan melihat aksi rollover, atau melihat animasi web dan efek-efek
visual serta multimedia. Inti dari aplikasi client side ini adalah suguhan tampilan interaktif di
halaman web. Bahasa pemrograman yang digunakan untuk membuat aplikasi client side
antara lain JavaScript dan Macromedia Flash.
Beda Keduanya
Jika diperhatikan, aplikasi client side berjalan
lebih cepat ketimbang aplikasi server side.
Pasalnya, aplikasi client side dieksekusi di
browser pengunjung, sedang aplikasi server
side dieksekusi di server web. Sebagai
konsekuensinya, kecepatan eksekusi aplikasi
client side ditentukan oleh kecepatan komputer
Anda sebagai pengguna, sementara
kecepatan eksekusi aplikasi server side ditentukan oleh konfigurasi server situs web.
Masalah kadang muncul saat terjadi ketidakcocokan antara satu jenis browser web terhadap
bahasa pemrograman client side yang digunakan. Browser web yang Anda pakai mungkin
tidak mendukung bahasa pemrograman tersebut. JavaScript keluaran Netscape (beda
dengan JavaScript kemuaran Sun Microsystem) merupakan bahasa pemrograman client side
yang didukung sebagian besar brower web.
Karena sangat memperhatikan faktor
kemanan, pemrograman server side biasa
digunakan untuk melindungi kata sandi
pengguna, sedang pemrograman client side
umumnya digunakan untuk mengecek format
masukan (input) yang diberikan oleh
pengguna. Prosedur ini biasa disebut sanitasi
input, tujuannya untuk mencegah masuknya
kode-kode berbahaya yang bisa menyerang
situs. (PCplus, 279)

Pengertian Activex
Coba bayangkan jika kita mengunjungi sebuah halaman Web yang hanya berisi teks,
tanpa konten yg interaktif dan dinamis. Menjemukan bukan?
Secara mudah, ActiveX diartikan sebagai serangkaian pengaturan terhadap komponen-
komponen dan aplikasi pada antarmuka agar mereka saling berinteraksi dan berbagi
informasi. ActiveX semula semula digunakan untuk membangun antarmuka pengguna yang
bersifat dinamis, contohnya seperti desktop pada sistem operasi Windows, masing-masing
komponen tergabung menjadi satu dan berhubungan satu sama lain.
Pada perkembangan selanjutnya, ActiveX ditujukan terutama untuk browser Web. Aplikasi ini
dibuat sedemikian rupa sehingga dapat di-download dan dijalankan oleh browser Web.
Sebagai informasi, ActiveX merupakan teknologi milik Microsoft. Jika ia terinstal dalam
sistem, pengguna bisa memiliki akses penuh terhadap Windows.
Aplikasi ActiveX
Banyak sekali contoh aplikasi ActiveX control yang Anda perlukan untuk mengakses informasi
lewat browser Web. Contohnya adalah Adobe Reader, Quick Time Player, Flash Player,
dan Java Virtual Machine. Ya, aplikasi-aplikasi tersebut diperlukan untuk membuka konten
internet yang sudah bersifat multimedia.
Namun demikian, sifat ActiveX yang dapat di-download dan dijalankan secara otomatis bisa
menyebabkan resiko keamanan bagi sistem operasi dan data Anda. Tidak semua ActiveX
aman dan dibuat oleh orang yang berniat baik. Ada banyak pula ActiveX yang bisa digunakan
untuk membuat aplikasi jahat macam spyware, adware, trojan, dan virus. ActiveX jahat dapat
masuk ke dalam sistem saat Anda mengunjungi situs yang halamannya mengandung kode-
kode ActiveX jahat. Hal tersebut dapat terjadi karena kode ActiveX dapat disematkan ke
dalam kode-kode HTML yang menyusun sebuah halaman Web.
Digital Signature, ActiveX dan PlugIns
Menanggapi ancaman ActiveX jahat, muncul
apa yang disebut sebagai digital signature.
Setiap komponen atau aplikasi yang dibuat
dengan ActiveX disertai dengan digital
signature dari pembuatnya. Browser Web
mampu membandingkan digital signature ini,
apakah berasal dari pengembang dan situs
yang dipercaya, atau tidak. Pilihan akan
diajukan kepada Anda untuk mengijinkan
ActiveX di-download atau tidak.
Lalu, apa beda antara ActiveX dengan plugins?
Plugins merupakan penambahan kemampuan
pada browser Web dengan cara
menambahkan kode-kode pemrograman
padanya. Jadi, komponen tersebut tidak
terpisah dari browser Web.
Serupa dengan ActiveX produk Microsoft, Sun
Microsystems mengeluarkan produk
JavaApplet yang bersifat lintas platform. Dalam implementasi JavaApplet, diterapkan konsep
“sandbox”. Artinya, terdapat suatu “parit pengaman” antara aplikasi yang dibuat dengan
JavaApplet dengan terhadap data-data milik pengguna.
Upaya apa yang dapat Anda lakukan untuk meminimalkan resiko keamanan data pribadi
akibat ActiveX atau JavaApplet? Anda bisa memperhitungkan benar-benar digital signature si
penyedia ActiveX, apakah bisa dipercaya atau tidak. Kedua, jangan lupa menerapkan patch
kemanan yang disediakan oleh pihak pengembang browser Web favorit Anda.
Tak kalah penting, jangan mengunjungi situa-situs yang tidak bisa dipercaya, yang sering
meminta informasi pribadi Anda. Juga, atur browser Anda agar tidak secara otomatis
menerima setiap tawaran ActiveX, melainkan memberikan pilihan kepada Anda untuk
memutuskan. (PCplus, 278)

Cara kerja Virus System

summary_noimg = 800;
summary_img = 700;
img_thumb_height = 170;
img_thumb_width = 220; //<![CDATA[

function removeHtmlTag(strx,chop){
if(strx.indexOf("<")!=-1)
{
var s = strx.split("<");
for(var i=0;i<s.length;i++){
if(s[i].indexOf(">")!=-1){
s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length);
}
}
strx = s.join("");
}
chop = (chop < strx.length-1) ? chop : strx.length-2;
while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++;
strx = strx.substring(0,chop-1);
return strx+'...';
}

function createSummaryAndThumb(pID){
var div = document.getElementById(pID);
var imgtag = "";
var img = div.getElementsByTagName("img");
var summ = summary_noimg;
if(img.length>=1) {
imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img
src="'+img[0].src+'" width="'+img_thumb_width+'px"
height="'+img_thumb_height+'px"/></span>';
summ = summary_img;
}

var summary = imgtag + '<div>' + removeHtmlTag(div.innerHTML,summ) + '</div>';


div.innerHTML = summary;
}

//]]>Aksi yang dilakukan oleh pembuat virus dalam merancang sebuah virus kini semakin sulit
terdeteksi. Perlu ketelitian dan keterampilan khusus untuk mencegah penyebarannya.
Bagaimana hal itu Anda lakukan, simak ulasan berikut ini.
Dalam melakukan aksi penyebarannya, virus atau worm akan memakai banyak cara agar dapat
mengaktifkan dirinya. Ada sejumlah virus yang mengaktifkan dirinya dengan bantuan folder startup
Windows dan ada pula yang memanfaatkan bantuan subkey dalam sistem registry. Untuk Anda ketahui
bersama, ada subkey di dalam sistem registry Windows yang berfungsi menjalankan sebuah program
secara otomatis saat Windows diaktifkan. Jika Anda menginginkan sebuah file executable berjalan saat
Windows diaktifkan, terlebih dahulu Anda harus menulis pada subkey autorun registry tersebut.
Subkey diisi dengan nama value yang berisi data. Data tersebut akan mendefinisikan file executable
yang harus dijalankan. Dalam artikel kali ini, Anda akan diajak menelusuri dan membaca sejumlah
subkey dengan bantuan tools yang sudah tersedia dalam sistem operasi Windows.
System Configuration Utility
Untuk memeriksa dan melihat konfigurasi startup yang terdapat dalam sistem operasi Windows, Anda
dapat menggunakan tools System Configuration Utility. Cara memanggilnya adalah klik "Start | Run",
ketikkan msconfig, dan tekan [Enter]. Selanjutnya, akan muncul window System Configuration Utility
yang menampilkan beberapa tab-menu, seperti "General", "SYSTEM.INI", "WIN.INI", "BOOT.INI",
"Services", dan "Startup". Dari jajaran tab-menu yang ada, "Startup" adalah tab-menu yang dapat
digunakan untuk melihat sejumlah program yang akan dijalankan oleh Windows saat diaktifkan. Hal
ini termasuk semua informasi subkey yang terdapat dalam sistem registry, (gambar 1).
Dalam tabmenu "Startup", akan terlihat kolom "Startup Item". Kolom tersebut menunjukkan nama
aplikasi yang dijalankan saat Windows diaktifkan. Ada pula kolom "Command" dan "Location" yang
berisi program yang diaktifkan berikut parameternya dan lokasi subkey registry yang menyimpan
konfigurasi program yang akan dijalankan. Jika Anda perhatikan, pada kolom "Startup Item", terdapat
checkbox. Checkbox dalam kondisi dicentang, menandakan program tersebut akan dijalankan saat
Windows dihidupkan. Untuk menonaktifkannya, cukup klik checkbox tersebut.
Sebagai ilustrasi, pada gambar 1 terlihat program NeroCheck, data pengaktifannya dipicu melalui
sistem registry. Hal ini dapat Anda perhatikan pada "Location" yang menyebutkan salah satu subkey
autorun registry. Sementara itu, file executable yang akan dijalankan berada dalam folder
d:\windows\system32. Perhatikan pula program HP Digital Imaging, pengaktifannya dilakukan melalui
folder Common Startup. Hal tersebut dapat Anda perhatikan melalui kolom "Location".
Dapat diambil kesimpulan, jika sebuah virus dengan “modus standar” menyerang, umumnya akan
membuat suatu nama value baru di subkey autorun registry dengan harapan file pemicu program virus
ikut dijalankan saat Windows diaktifkan. Karena informasi virus tersebut berada di subkey autorun atau
folder Common Startup, maka akan terlihat jelas dalam tab-menu "Startup". Tentunya bagi Anda
pengguna PC yang berpengalaman, akan lebih mudah mematikan virus tersebut melalui tab-menu
Startup. Caranya adalah dengan menghilangkan tanda centang yang ada di depan nama program virus.
Namun sangat disayangkan, sejumlah virus biasanya akan mencantumkan nama program menyerupai
dengan nama file sistem Windows. Hal ini bertujuan untuk mengelabui pengguna PC. Misalnya
memakai nama windows.exe, rundlll.exe dan lain sebagainya. Oleh karena itu, ketelitian Andalah yang
menentukan sukses tidaknya mengenali sebuah program virus. Jika Anda telah menghilangkan tanda
centang yang ada, klik tombol OK dan lakukan booting ulang.
Apakah virus sistem itu?
Bagaimana jika Anda telah melakukan langkah di atas, ternyata virus tetap saja aktif di memory dan
terus melakukan gangguan! Diindikasikan virus tersebut memanfaatkan teknik shell-spawning. Ini
merupakan sebuah teknik yang memanfaatkan eksploitasi key registry dan tidak memakai jalur subkey
autorun. Teknik ini akan mempergunakan salah satu subkey di HKEY_CLASSES_ROOT. Untuk
memeriksanya, Anda perlu masuk ke sistem registry dan memeriksa subkey tersebut. Jika subkey tidak
mengalami manipulasi data berarti virus tersebut memakai teknik lain. Mungkin saja menggunakan
teknik Resident dengan memanfaatkan registry Active Setup. Cara ini juga akan manipulasi registry
agar virus dapat aktif saat Windows dijalankan.
Kepiawaian Anda telah berhasil mengendus jejak virus tersebut dan menarik kesimpulan bahwa virus
yang terdeteksi tidak pula memanfaatkan teknik Resident. Hal ini terlihat dengan bersihnya subkey
Active Setup dari manipulasi data. Pertanyaan yang muncul adalah, teknik lain seperti apa yang dipakai
oleh virus tersebut untuk menyerang PC Anda? Proses selanjutnya yang dapat dilakukan adalah
menganalisis beberapa file yang dipanggil oleh Windows saat booting, seperti file NTLDR,
NTDETECT.COM sampai EXPLORER.EXE. Jika hasil analisis Anda menunjukkan bahwa file
tersebut “sehat-sehat” saja dan menyatakan virus yang terdeteksi tidak menempel di file yang Anda
analisis, Artinya Anda harus menelusuri lebih mendalam lagi agar virus atau worm yang mengancam
PC Anda dapat disingkirkan.
Setelah ditelusuri, ternyata jawabannya sederhana, tetapi tak terduga. Saat menyerang virus atau worm
akan “menelurkan” virus lain dan mendaftarkan virus tersebut sebagai suatu file service pada Windows
alias dijadikan sebagai file sistem. Tentu saja, karena terdaftar sebagai salah satu service Windows,
virus tersebut ikut aktif saat Windows dihidupkan. Salah satu virus yang memiliki model seperti ini
adalah KSPOOLD. Jika virus ini aktif sebagai sistem, ia akan mengubah file DOC dan XLS menjadi
EXE.
Untuk menyingkirkan virus model ini, Anda dapat memakai jasa System Configuration Utility.
Tepatnya melalui tab-menu "Services". Setelah meng-klik "Services", akan tampil beberapa service
yang ada pada Windows. Jumlah service yang banyak ini akan membuat pengguna PC tidak
mengetahui bahwa ada program virus yang dimasukkan, (gambar 2 dan 3).
Untuk menyembunyikan seluruh service milik Windows, Anda dapat memberi tanda centang pada
"Hide All Microsoft Services". Secara default, pilihan ini tidak aktif. Dengan mengaktifkan pilihan ini,
seluruh service milik Windows akan disembunyikan. Yang tampil hanyalah service-service nonstandar.
Dengan demikian, service non-Windows akan terlihat dengan jelas, termasuk yang dimiliki oleh virus

sistem, (lihat gambar 4).


Pada contoh gambar 4, diandaikan kondisi virus sistem memang ada. Dalam contoh tersebut, tercantum
nama servicenya adalah K Print Spooler. Manufacturernya berisi data unknown dan statusnya sedang
berjalan. Untuk menonaktifkan file tersebut, cukup klik checkbox sehingga tanda centang hilang.
Lakukan booting ulang dan periksalah apakah gangguan virus masih aktif? Jika masih, berarti service
yang Anda nonaktifkan salah. Oleh karena itu, Anda perlu me-nonaktifkan service lainnya.
Awalnya memang terasa sulit menentukan program (service) tersebut milik siapa dan apa
kegunaannya. Namun, dari kolom Service maupun Manufacuter, masih dapat diperkirakan oleh Anda
siapa pemilik service tersebut. Jika pada kolom Manufacturer berisi data Unknown, hal ini perlu
diwaspadai. Barangkali service tersebut sebuah virus. Namun, hal ini tidak dapat dijadikan
rekomendasi secara benar. Terkadang, ada service dari program yang terinstall tidak menyebutkan
nama pembuatnya. Kesimpulannya, tidak ada cara lain, memang diperlukan latihan dan kejelian dari
Anda untuk mengetahui lebih dalam sistem yang digunakan.
Untuk mengetahui informasi secara detail tentang suatu service yang terpasang, Anda dapat
menggunakan program Process Explorer (www.sysinternals.com). Contoh tampilan dari program ini
dapat dilihat pada gambar 5. Melalui program ini, Anda dapat melihat dan mengawasi sejumlah service
yang aktif atau sedang berjalan. Melalui gambar 5, perhatikan struktur pohon services.exe. Di
bawahnya terdapat beberapa service yang sedang aktif di komputer. Sebagai ilustrasi, coba Anda
perhatikan SMAgent.exe. Terlihat bahwa services-nya adalah SoundMAX Agent Service. Sementara
itu file yang memicu service tersebut adalah SMAgent.exe yang terletak di direktori d:\Program
Files\Analog Devices\SoundMAX. Jika Anda membutuhkan informasi tambahan yang lebih detail,
program ini dapat membantu Anda dengan lebih mudah (gambar 6).
Jika Anda meng-klik ganda proses tersebut, akan keluar window Properties, (lihat gambar 6). Sejumlah
tab-menu akan ditampilkan, seperti "Image", "Perfomance", "Strings", "Services", dan sebagainya.
Untuk melihat informasi tentang file pemicu, Anda dapat memanfaatkan tabmenu Image.
Menelusuri Jejak Virus Sistem
Berbekal informasi yang Anda peroleh dari tool System Configuration Utility dan Process Explorer,
diketahui bahwa file pemicu service K Print Spooler berada di dalam folder d:\windows\system32,
yang memiliki nama file KSPOOLD.EXE. Selanjutnya, Anda dapat masuk ke dalam folder tempat file
tersebut berada. Jika file sudah ditemukan, periksalah keabsahannya. Misalnya, dengan klik kanan file
tersebut dan lihat melalui menu Properties, (gambar 7). Namun, cara ini bukan pula jalan terbaik untuk
menyingkirkan virus dari PC yang Anda gunakan. Hal ini disebabkan para pembuat virus biasanya
sudah mengamankan Tab Version yang memuat informasi ringkas dari file tersebut. Seperti yang
terlihat pada gambar 7, virus ini sudah mengamankan tab tersebut. Jika demikian, tindakan apa yang
harus dilakukan? Langkah selanjutnya yang perlu dilakukan adalah membuka file tersebut dengan
bantuan program HEX editor, seperti Ultra Edit. Lalu, telusuri isinya, seperti byte demi byte yang ada
pada file tersebut. Jika Anda buka file KSPOOLD.EXE dengan program UltraEdit32
(www.ultraedit.com) isinya akan terlihat seperti gambar 8. Bagi Anda yang belum terbiasa melihat
jajaran data hexa, tentunya akan merasa sulit. Namun jika terus berlatih, Anda akan terbiasa melihat
semua data tersebut. Dari data yang ada, biasanya akan terdapat sejumlah data string (huruf) yang dapat
dibaca secara normal. Data string tersebut biasanya berisi informasi mengenai lokasi data virus tersebut
berada atau lokasi subkey sistem registry yang dimanipulasi.
Ada cara mudah untuk menganalisis data tersebut. Jika di awal data terdapat data UPX atau ASPAC,
tandanya file eksekusi tersebut telah di-pack dengan program packer, seperti Ultimate Packer for
eXecutables (http://upx.sourceforge.net). Biasanya, program yang di-pack dengan model seperti ini
adalah aplikasi berbahaya. Namun, hal ini tetaplah bukan sebuah jaminan. Karena ada pula aplikasi
yang tidak membahayakan, tetapi tetap di-pack. Hal ini karena pertimbangan ukuran file yang lebih
kecil, masalah adanya data string yang sensitif, atau hal lainnya. Diindikasikan, file KSPOOLD.EXE
di-pack dengan UPX. Dengan program UPX pula, Anda dapat melakukan unpack, (gambar 9). Setelah
proses unpack dilakukan, teliti kembali file tersebut dengan program UltraEdit-32. Seharusnya, data
string yang telah di-pack akan terlihat.
Langkah terakhir, hapuslah file KSPOOLD.EXE. Untuk proses lainnya, Anda dapat mengubah nama
file tersebut, lalu menghapusnya. Hal ini untuk mengantisipasi kesalahan penghapusan. Dengan cara
ini, proses service yang berjalan akan terhenti, karena file pemicunya telah Anda singkirkan.

Sudah amankah web anda


Keamanan Website
Serangan terhadap website secara garis besar dapat dibagi menjadi
dua, yaitu serang an terhadap web server dan serangan terhadap
aplikasi web, yang memanfaatkan kelemahan aplikasi dan
pemrograman.

Untuk menghadapi serangan pada web server, Anda memerlukan


network/web administrator untuk melakukan konfigurasi,
mengupdate web server ataupun melakukan monitoring secara
berkala.

Sedangkan, serangan yang ditujukan pada aplikasi web lebih


merupakan tanggungjawab programmer. Banyak istilah hacking dan turunannya telah
dihasilkan dari serangan yang terjadi pada aplikasi web, antara lain Script Injection, Cross Site
Scripting (XSS), SQL Injection, Buffer Overflows, dan masih banyak lagi.

Artikel ini akan membahas beberapa contoh serangan yang dapat terjadi pada aplikasi web dan
bagaimana penanggulangannya agar dapat memaksimalkan keamanan aplikasi web Anda.
Tentu saja, isu keamanan tidak akan beres dengan sekali kerja, seperti halnya siskamling,
keamanan terus dilakukan dan tidak akan pernah berhenti.

Login, Jaga Username Anda!


Dimulai dari hal yang terlihat sangat sederhana, tetapi pada praktiknya cukup banyak terjadi
kebobolan dari sisi ini, yaitu halaman login yang mengandalkan username dan password.

Anda mungkin telah cukup banyak membaca dan mendengar saran-saran mengenai password
yang baik, misalnya harus terdiri dari kombinasi huruf dan angka, ataupun secara berkala
mengganti password.
Tetapi, tidak banyak yang menyinggung mengenai keamanan username. Padahal pada sebuah
halaman login, username bisa dianggap lapis keamanan yang pertama.

Bagi oknum yang sengaja ingin menebak password, jika telah mengetahui dengan tepat
username yang digunakan, maka berarti telah melewati pengaman pertama dan mempermudah
menebak pengaman berikutnya, yaitu password. Sebaliknya, hal tersebut akan lebih sulit
dilakukan jika username tidak diketahui.
Jangankan halaman login untuk masuk sebagai administrator website tertentu, halaman login
untuk e-mail saja disarankan tidak memberikan informasi yang dapat mengarahkan pada
kesimpulan username atau password telah diisi benar.

Contohnya, coba Anda login pada website Yahoo! Mail atau Google Gmail untuk membaca e-
mail Anda, anggaplah Anda memiliki username “jokodoyanmie”, tetapi Anda salah
mengetikkan password. Perhatikan bahwa Anda tidak mendapatkan pesan “Invalid password”,
atau “Invalid username”, pesan yang Anda terima adalah “Invalid ID or Password” (pada
Yahoo!), atau “Username and password do not match” (pada Google).

Pesan tersebut tidak menyebutkan secara tepat bagian mana yang salah ketik, apakah username
(ID), atau password? “Wah...perusahaan sebesar Yahoo! dan Google tidak bisa membuat script
untuk mendeteksi apakah kesalahan terjadi pada username atau password?” Mungkin demikian
pikir Anda dan tentu saja hal tersebut tidak mungkin, dengan kata lain Yahoo!, Google, dan
rata-rata e-mail provider lain umumnya memang sengaja menyamarkan informasi tersebut.

Mungkin Anda berpikir hal tersebut bukan sesuatu yang krusial, tetapi kenyataannya kombinasi
username dan password telah menjadi hal yang cukup serius, beberapa e-mail provider juga
tidak mengizinkan Anda memilih password yang sama atau mengandung kata yang terdapat
pada username.

Pencegahannya cukup mudah, tidak perlu membuat script untuk mencari kesalahan login
terletak pada username atau password, juga hindari penggunaan username yang umum dan
mudah ditebak seperti admin, administrator, dan seterusnya.

Bahaya Input Komentar

Sebuah website biasanya mencoba untuk berinteraksi dengan pengunjung dengan jalan
menyediakan fasilitas agar pengguna dapat mengisikan sesuatu, misalnya saja komentar, atau
guestbook, atau yang lebih modern lagi, yaitu shoutbox.

Sayangnya, jika website Anda dikunjungi oleh seseorang yang iseng, maka bisa jadi sebuah
script jahat dapat turut menjadi “komentar” dan ini bukan berita baik bagi website Anda.

Ilustrasinya adalah sebagai berikut, Anda mengisikan guestbook katakanlah pada alamat
http://domainsaya.com/guestbook.php dengan komentar berikut:
Website yang aman...

<script> alert(‘tapi bohonggg...’); </script>

Perhatikan bahwa terdapat JavaScript pada komentar tersebut. Jika komentar tersebut dapat diterima
dan dieksekusi oleh website, maka setiap kali ada pengunjung yang mengaksesnya, akan tampil sebuah
pesan bertuliskan “tapi bohonggg...”. Cukup mengganggu, bukan? Tidak hanya sampai di sana, jika
sebuah website telah dapat disusupi dengan cara seperti ini, maka banyak sekali kemungkinan script
berbahaya yang dapat ditanamkan.

Misalkan script untuk mengalihkan website domainsaya.com ke website lain, script untuk
menampilkan gambar porno (yang dapat dilakukan dengan HTML biasa) atau script untuk mengambil
informasi seperti cookie. Cukup berbahaya, bukan?

Langkah pencegahannya, antara lain dengan tidak langsung mengizinkan komentar yang masuk tampil
pada browser Anda, harus melalui proses approve. Hal ini membutuhkan kerja seorang administrator
yang bertugas melakukan filter komentar yang masuk dan berhak menolak komentar yang tidak
diinginkan.

Walaupun tidak berarti semua website yang memberlakukan filter seperti ini berarti menyadari akan
bahaya kebobolan melalui script injection ini. Karena bisa saja hal ini dilakukan dengan alasan
menghindari penggunaan kata-kata tertentu.

Cara pencegahan yang lain adalah dengan menolak penulisan script atau tag HTML, dengan risiko
tampilan komentar menjadi datar tanpa aksesoris karena tag-tag HTML untuk melakukan variasi huruf
(bold, italic, dan lain-lain) tidak dapat digunakan. Tetapi jika Anda membutuhkannya, Anda dapat
membuat sendiri aturan dan penulisan tag, misalnya [:bold] untuk membuat huruf menjadi bold, dan
seterusnya.

Tag buatan Anda tersebut akan disubsitusikan secara otomatis dengan tag HTML sehingga tampilannya
sesuai seperti yang diinginkan. Beberapa engine forum telah menggunakan metode ini.

Cara lainnya adalah dengan melakukan encode script, contohnya mengganti karakter “<” dengan &lt;
dan karakter “>” dengan &gt; sehingga kata <script> akan menjadi &lt;script&gt; tetapi
tetap memberikan output <script> pada browser tanpa dieksekusi.

Perhatikan Apa yang Anda Upload

Sudah menjadi kebiasaan web developer untuk mencoba terlebih dahulu website-nya pada localhost
sebelum di-upload di Internet, mereka membuat sebuah folder sebagai root website (lazimnya folder
bernama htdocs atau www) dan bekerja di dalamnya.

Tentu saja, bekerja di komputer sendiri relatif lebih aman, sehingga mungkin Anda tidak ragu membuat
sub-folder untuk melakukan back-up, menyimpan data, atau bahkan membuat file password.txt yang
berisi username dan password yang digunakan sebagai catatan.
Masalah dapat muncul jika Anda mulai melakukan upload ke web server yang sebenarnya, berhubung
memiliki koneksi Internet yang cepat atau malas memilah-milah file yang ingin di-upload, Anda
memilih semua sub-folder dan file yang berada pada folder root, dan meng-upload-nya ke Internet
(termasuk sub folder back-up, data, dan password.txt tadi)!

Lalu apa bahayanya? Bukankah file-file tersebut tidak terlihat, dan tidak tampil pada website Anda?
Belum tentu, gambaran di bawah ini memperlihatkan potensi bahaya tersebut.

Misalnya Anda mengunjungi website domainsaya.com dan ingin melihat gambar atau foto apa saja
yang tersimpan di dalam website tersebut, salah satu cara yang umum adalah dengan mengetikkan
http://domainsaya.com/images berdasarkan asumsi folder images digunakan oleh website tersebut
untuk menyimpan seluruh gambar (dan memang kenyataannya folder dengan nama images sangat
umum). Jika tebakan Anda benar, akan muncul daftar gambar yang dapat Anda download satu-persatu
secara langsung dari browser ataupun menggunakan tools.

Sebagai catatan tambahan, browser akan menampilkan daftar file dan direktori jika tidak ditemukan
halaman default pada folder tersebut (umumnya adalah index.html, index.php, default.asp, dan lain-
lain).

Kalau gambar saja mungkin tidak terlalu masalah ditampilkan daftarnya dan di-download, tetapi
bagaimana jika yang diakses adalah folder domainsaya.com/backup, domainsaya.com/data, atau
bahkan domainsaya.com/password.txt? Informasi tersebut dapat diperoleh dengan mudah!

Dan jangan berpikir bahwa orang iseng mana yang mencoba-coba mengakses direktori dan file pada
website Anda, karena bisa saja orang iseng tersebut melakukannya dengan memilih target secara
random dan tidak mengerjakannya secara manual, tetapi dengan bantuan tools dan dictionary berisi
daftar target direktori/file yang telah disiapkan.

Jadi sekali lagi, perhatikan apa yang Anda upload!

Jaga Parameter
Pada aplikasi web, kita mengenal beberapa parameter yang dikirimkan ke server. Jika tidak dicermati,
parameter ini dapat menjadi lubang keamanan yang serius karena memungkinkan pengguna dari sisi
client memanipulasinya terlebih dahulu sebelum mengirimkannya ke server.

Perhatikan contoh script sederhana di bawah ini yang menggunakan parameter form POST:
<form method=POST name=myForm action=simpan.asp>

<input type=hidden name=level value=’1’>

username <input type=text name=username maxlength=10> <br>

password <input type=password name=password maxlength=10>

<br>

<input type=submit value=Submit>

</form>

Script di atas akan mengirimkan tiga parameter, walaupun yang terlihat pada browser hanya field
username dan password. Field yang ketiga adalah level, yang tidak terlihat karena diberikan atribut
type=hidden.

Yang harus Anda cermati adalah field tersembunyi tersebut tidak akan pernah benar-benar tersembunyi
saat telah berada pada sisi client, pengguna dapat dengan mudah mengubah atribut value pada field
tersebut.

Caranya mudah, hanya dengan menyimpan halaman tersebut pada harddisk pengguna dan melakukan
modifikasi pada HTML, maka value dari field level dapat diubah sesuka hati, tentunya berbahaya jika
Anda memperlakukan value tersebut di server sebagai gerbang masuk untuk mengakses fungsi-fungsi
tertentu.

Satu hal lagi yang perlu diubah dari sisi pengguna adalah atribut action=simpan.asp pada tag
form yang perlu diganti menjadi action=http://domaintarget.com/simpan.asp, karena
HTML yang sudah dimodifikasi tersebut dijalankan dari local, bukan dari Internet.

Dengan metode yang sama, validasi berupa maksimal panjang karakter pada atribut maxlength=10
dapat dengan mudah dibuang dan membebaskan pengguna untuk mengetikkan sepanjang apapun
karakter yang diinginkan, demikian juga jika Anda menggunakan validasi dengan JavaScript, dapat
dengan mudah dimodifikasi dan diabaikan.

Parameter lain yang lebih mudah terlihat adalah parameter URL Query String, misalnya jika sebuah
URL website terlihat seperti http://domainsaya.com/module=news, pengguna dapat dengan mudah
mengganti nilai news dengan string lain, atau bahkan dengan script yang berbahaya.

Hati-hati juga dengan penggunaan cookie, cookie digunakan untuk menyimpan data pengguna pada sisi
client, programer dapat meletakkan parameter tertentu, kita ambil saja contoh yang sangat to the point
yaitu Cookie: admin=false; yang tentu saja sangat fatal karena parameternya dapat dimodifikasi
menjadi Cookie: admin=true;. Browser popular seperti Mozilla Firefox dapat dengan mudah
menampilkan isi cookie.

Pencegahannya, jangan sepenuhnya mempercayakan validasi menggunakan HTML atau JavaScript,


validasi kembali pada sisi server (bagaimanapun, validasi dari sisi client tetap diperlukan untuk
keamanan dan kenyamanan pengguna awam). Uji kembali parameter yang dikirimkan dan minimalkan
kemungkinan terjadinya injection, gunakan function-function untuk membuang/mengubah karakter
yang berbahaya dan tidak diperlukan. Contohnya karakter kutip yang sering digunakan dalam serangan
SQL Injection ataupun karakter heksadesimal yang merepresentasikan karakter tertentu dalam beberapa
serangan dengan metode Cross Site Scripting (XSS).

Вам также может понравиться