keamanan cyber 3

Tampilkan postingan dengan label keamanan cyber 3. Tampilkan semua postingan
Tampilkan postingan dengan label keamanan cyber 3. Tampilkan semua postingan

Sabtu, 30 November 2024

keamanan cyber 3



 kategorikan menjadi dua jenis:

pencegahan (preventif) dan pengobatan (recovery). Usaha pencegahan

dilakukan agar sistem informasi tidak memiliki lubang keamanan,

sementara usaha-usaha pengobatan dilakukan apabila lubang keamanan

sudah dieksploitasi.

Pengamanan sistem informasi dapat dilakukan melalui beberapa layer yang

berbeda. Misalnya di layer “transport”, dapat dipakai  “Secure Socket

Layer” (SSL). Metoda ini umum dipakai  untuk server web. Secara fisik,

sistem anda dapat juga diamankan dengan memakai  “firewall” yang

memisahkan sistem anda dengan Internet. penakai an teknik enkripsi

dapat dilakukan di tingkat aplikasi sehingga data-data anda atau e-mail anda

tidak dapat dibaca oleh orang yang tidak berhak.

Mengatur akses (Access Control)

Salah satu cara yang umum dipakai  untuk mengamankan informasi

yaitu  dengan mengatur akses ke informasi melalui mekanisme

“authentication” dan “access control”. Implementasi dari mekanisme ini

antara lain dengan memakai  “password”.

Di sistem UNIX dan Windows NT, untuk memakai  sebuah sistem atau

komputer, pemakai diharuskan melalui proses authentication dengan

menuliskan “userid” dan “password”. Informasi yang diberikan ini

dibandingkan 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 penakai an 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.

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 dipakai  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:Budi Rahardjo:/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 keamanan. Seorang

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

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

mengirimkan berkas ini kepada kawannya. Ada program tertentu yang

dapat dipakai  untuk memecah password tersebut. Contoh program ini

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

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) kemudian mengenkripsinya.

Apabila hasil enkripsi tersebut sama dengan password yang sudah

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

Selain melakukan “lookup” dengan memakai  kamus, biasanya

program “password cracker” tersebut memiliki beberapa algoritma

heuristic seperti menambahkan angka di belakangnya, atau membaca dari

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

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

(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 itu

memakai  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 dipakai  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.

• 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 dipakai 

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 tersebut tidak semuanya

dibutuhkan. Untuk mengamankan sistem, servis yang tidak diperlukan di

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

menunjukkan abuse dari servis tersebut, atau ada lubang keamanan dalam

servis tersebut akan tetapi sang administrator tidak menyadari bahwa servis

tersebut dijalankan di komputernya.

Latihan 10. Periksa sistem UNIX anda, servis apa saja yang

dijalankan di sana? Dari mana anda tahu servis-servis yang

dijalankan?

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 dipakai  (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.

 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 dipakai  untuk memfilter e-mail,

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

UNIX ada paket program “tcpwrapper” yang dapat dipakai  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

dipakai  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.

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 dianggap 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 (administrator) tinggal

melakukan konfigurasi dari firewall tersebut. 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.

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

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

atau dilakukan secara terpisah.

Beberapa perangkat lunak berbasis UNIX yang dapat dipakai  untuk

melakukan IP filtering antara lain:

• ipfwadm: merupakan standar dari sistem Linux yang dapat diaktifkan

pada level kernel

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

dapat menggantikan fungsi ipfwadm

Fungsi proxy dapat dilakukan oleh berbagai software tergantung 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.com>.

Satu hal yang perlu diingat bahwa adanya firewall bukan menjadi jaminan

bahwa jaringan dapat diamankan seratus persen. Firewall tersebut sendiri

dapat memiliki masalah. Sebagai contoh, Firewall Gauntlet yang dibuat

oleh Network Associates Inc. (NAI) mengalami masalah

1

 sehingga dapat

melewatkan koneksi dari luar yang seharusnya tidak boleh lewat. Padahal

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

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) dipakai  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 tersebut terdeteksi. Pola-pola 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 yang umum dipakai  di

sistem UNIX yaitu  program Tripwire. Program paket Tripwire dapat

dipakai  untuk memantau adanya perubahan pada berkas. Pada mulanya,

tripwire dijalankan dan membuat database mengenai berkas-berkas atau

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

Signature berisi informasi mengenai besarnya berkas, kapan dibuatnya,

pemiliknya, hasil checksum atau hash (misalnya dengan memakai 

program MD5), dan sebagainya. Apabila ada perubahan pada berkas

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

database sehingga ketahuan adanya perubahan.

Audit: Mengamati Berkas Log

Segala (sebagian besar) kegiatan penakai an 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

dipakai . 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. 

Sebagai contoh, berikut ini yaitu  cuplikan baris isi 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 tersebut (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

^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 dipakai  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 “imapd” yang dipakai . 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 tersebut, mengambil dan memasang versi baru dari imapd yang

tidak memiliki lubang keamanan tersebut.

Contoh-contoh di atas hanya merupakan sebagian kecil dari kegiatan

menganalisa berkas log. Untuk sistem yang cukup ramai, misalnya 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) kemudian

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.

Untuk sistem yang sangat esensial, secara berkala perlu dibuat backup yang

letaknya berjauhan secara fisik. Hal ini dilakukan untuk 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.

penakai an Enkripsi untuk meningkatkan 

keamanan

Salah satau mekanisme untuk meningkatkan keamanan yaitu  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

penakai an 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

penakai an enkripsi untuk remote akses (misalnya melalui ssh sebagai

penggani telnet atau rlogin) akan dibahas di bagian tersendiri.

Telnet atau shell aman

Telnet atau remote login dipakai  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 dikirimkan melalui

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 dipakai  untuk melindungi

adanya sniffing. Paket yang dikirimkan dienkripsi dengan algoritma DES

atau Blowish (dengan memakai  kunci session yang dipertukarkan 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 lain:

• 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

Email merupakan aplikasi yang paling utama di jaringan Internet. Hampir

setiap orang yang memakai  Internet memiliki alamat 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 orang akan

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

dilakukan dengan memakai  email. Dapat dibayangkan 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

Sebelum mendiskusikan permasalahan email, ada baiknya kita 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 dipakai  oleh penakai  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 dipakai  untuk menuliskan email seperti

halnya mesin ketik dipakai  untuk menulis surat jaman dahulu.

MTA merupakan program yang sesungguhnya mengantar email. Biasanya

dia dikenal dengan istilah mailer. MTA ini biasanya bukan urusan

penakai , 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 dan tidak bergantung

kepada vendor atau program tertentu, didefinisikan beberapa standar.

Standar pertama yaitu  RFC 822 yang mendefinisikan format dari email.

Standar ini kemudian diperbaharui menjadi RFC 2822.

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

amplop pada penakai an surat biasa. Dia berisi alamat tujuan, alamat

pengirim dan hal-hal yang perlu diketahui untuk mengantarkan email

tersebut. 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: Budi Rahardjo <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.

--

Dosen kuliah XYZ

Bagaian atas, yang tercetak miring, merupakan bagian dari header.

Kemudian 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. Header dapat

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

seterusnya. Nama field tersebut langsung disambung dengan tanda titik dua

dan minimal sebuah spasi sebelum diisi dengan datanya. 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 dipakai  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 kemudian 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 -06

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 dengan memakai 

UUDECODE/UUENCODE, base64, dan beberapa coding lainnya.

Pemilihan kode ini biasanya terkait dengan efisiensi saja.

Mekanisme untuk menyisipkan berkas yang sudah dikodekan ini ke dalam

body dari email dijabarkan dalam RFC yang terkait dengan MIME.

 

sendiri dengan sebuah attachment (bisa berupa berkas

gambar ataupun berkas yang di-zip). Kemudian gunakan

mekanisme program MUA anda untuk menampilkan email

dalam format mentah (raw). Encoding apakah yang

dipakai  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 tersebut.

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 tersebut diproses dan dikirimkan ke server berikutnya, dan

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

dari penakai  email yang dituju.

Setiap server yang dilalui membubuhi tanda dengan menambahkan header

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

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

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

server yang baru saja menerima email tersebut membubuhkan tanda

Recived di bagian teratas. Potensi penyadapan dapat terjadi pada setiap

jalur yang dilalui, termasuk pada server yang menjadi perantara email

tersebut.

Potensi penyadapan ini dapat terjadi karena pengiriman email

memakai  protokol SMTP (Simple Mail Transport Protocol)1

 yang

tidak memakai  enkripsi sama sekali. Jika kita berada pada satu jaringan

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

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

dipakai  oleh SMTP.

Demikian pula untuk mengambil email, biasanya dipakai  protokol POP

(Post Office Protocol)1

. Protokol yang memakai  port 110 ini juga tidak

memakai  enkripsi dalam transfer datanya. Ketika seorang penakai 

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

data yang melewati jaringan tersebut.

Agar email aman dari penyadapan maka perlu dipakai  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

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

dengan sebuah program, kemudian menyisipkan (attach) berkas tersebut ke

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

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

program tersebut 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-pura berasal dari

kota lain. Surat palsu ini kemudian 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-

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

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

perintah tersebut. 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 tersebut 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 memperdulikan isi

field “To:” yang ada dalam berkas tersebut.

/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 palsu? Sebagai

penerima email, kita bisa melihat header dari email. Kita lihat tempat￾tempat yang dilalui oleh email tersebut. Sayangnya jarang sekali penakai 

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 penakai an 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

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 penakai  yang umumnya

merupakan titik terlemah (weakest link) dalam pertahanan sebuah

perusahaan atau institusi. Orang seringkali dengan mudah membuka atau

menjalankan program yang terkait dengan attachment yang 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 penakai  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 tersebut langsung menjalankan Microsoft Word.

Akibatnya berkas yang memiliki virus dapat langsung dijalankan. Untuk itu

seharusnya program mail tidak menjalankan program secara otomatis.

penakai  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 penakai  sering mengeluh tidak mendapat email dari

kawan korespondensinya. Seolah-olah mail hilang. Padahal bisa jadi email

dari kawannya tersebut 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 biaya (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 satu 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 karena kesulitan kita dalam

membedakan antara email biasa dan email yang spam.

Pada mulanya proses filter spam dilakukan dengan mencari 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 spammer mengubah kata￾kata tersebut 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 tersebut. Akibatnya jika kita memasukkan kata

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

email spam tersebut masih tetap masuk ke mailbox kita.

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, maka statistik akan

menunjukan probabilitas bahwa email tersebut merupakan spam. Namun

lagi-lagi spammer lebih pintar, yaitu dengan menambahkan 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 label spam.)

Jumlah email spam ini sudah sangat banyak sehingga dapat 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 tujuan. Dampaknya

mailbox yang dituju akan menjadi penuh. Dampak kepada sistem juga

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

spool) menjadi penuh sehingga penakai  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. Seperti 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

penakai , misalnya dibatasi 20 MBytes, sehingga jika dia kena mailbomb

tidak mengganggu penakai  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 email sama persis

dengan email sebelumnya maka email ini dapat dihilangkan. Namun kinerja

program khusus ini masih dipertanyakan, khususnya untuk 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 dipakai 

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

Abuse terhadap server mail yang terbuka ini biasanya dilakukan oleh

pengirim spam. Banyak tempat yang melakukan filtering terhadap server

mail yang dipakai  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 sangat tinggi

sehingga kebanyakan orang tidak memperhatikan masalah keamanan ini.

Server email disetup tanpa adanya pembatasan siapa saja yang boleh

memakai nya. Namun saat ini hal tersebut sudah tidak bisa dilakukan

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

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

mengirimkan email jika nomor IP dari penakai  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

 untuk menolak email yang berasal dari server mail yang 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



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 diperoleh 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 penakai an program

browser inilah yang memicu populernya WWW. Sejarah dari browser ini

dimulai dari browser di sistem komputer NeXT yang kebetulan dipakai 

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

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

ada lynx dan akhirnya muncul Mosaic yang dikembangkan 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 teknologi Internet

bergantung kepada keamanan sistem Web tersebut.

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, servlet) 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 penakai :

• Server dimiliki dan dikendalikan oleh organisasi yang mengaku

memiliki server tersebut. 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 tersebut

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 dipakai , dll.) dapat dicatat.

Pelanggaran terhadap asumsi ini sebetulnya melanggar privacy. Jika hal

ini dilakukan maka pengunjung tidak akan kembali ke situs ini

Asumsi dari penyedia jasa (webmaster) antara lain:

• penakai  tidak beritikad untuk merusak server atau mengubah isinya

(tanpa ijin).

• penakai  hanya mengakses dokumen-dokumen atau informasi yang

diijinkan diakses. Seorang penakai  tidak mencoba-coba masuk ke

direktori yang tidak diperkenankan (istilah yang umum dipakai 

yaitu  “directory traversal”).

• Identitas penakai  benar. Banyak situs web yang membatasi akses

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

ke web, maka dia yaitu  penakai  yang benar.

Asumsi kedua belah pihak:

• Jaringan komputer (network) dan komputer bebas dari penyadapan

pihak ketiga.

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

terjamin keutuhannya dan tidak dimodifikasi oleh pihak 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 luar. Apabila

server anda terhubung ke Internet dan memang server WWW anda

disiapkan untuk publik, maka anda harus lebih berhati-hati 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

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 dengan 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 bahkan

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

disknya. Beberapa server yang sempat dijebol antara lain: server

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

masih berlangsung terus oleh crackers yang berbeda-beda.

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) tertentu. 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

dipakai  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

tersebut dapat berupa:

AuthUserFile /home/budi/.passme

AuthGroupFile /dev/null

AuthName “Khusus untuk Tamu Budi”

AuthType Basic

<Limit GET>

require user tamu

</Limit>

Dalam contoh di atas, untuk mengakses direktori tersebut dibutuhkan userid

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

home/budi/.passme”. Ketika direktori tersebut 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-data (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.

penakai an 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 dipakai  pada SSL.

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

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

paten RSA dan RC4 yang dipakai  dalam implementasinya. 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 dipakai  dapat dimanfaatkan oleh

perusak untuk melancarkan serangan sesuai dengan tipe server dan

operating system yang dipakai . Seorang penyerang akan mencari tahu

software dan versinya yang dipakai  sebagai web server, kemudian

mencari informasi di Internet tentang kelemahan web server tersebut.

Informasi tentang program server yang dipakai  sangat mudah diperoleh.

Cara yang paling mudah yaitu  dengan memakai  program “telnet”

dengan melakukan telnet ke port 80 dari server web tersebut, kemudian

menekan tombol return dua kali. Web server akan mengirimkan respon

dengan didahuli oleh informasi tentang server yang dipakai . Program

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

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

dapat dipakai  untuk melihat jenis server dengan menekan kunci “sama

dengan” (=).

Keamanan Program CGI

Common Gateway Interface (CGI) dipakai  untuk menghubungkan

sistem WWW dengan software lain di server web. Adanya CGI

memungkinkan hubungan interaktif antara user dan server web. CGI

seringkali dipakai  sebagai mekanisme untuk mendapatkan informasi dari

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

halaman yang dinamis.

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 tersebut. 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 tersebut.

• 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 masalah privacy dan

penyisipan virus atau trojan horse.

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 dipakai  untuk melakukan tracking 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!

Dalam bab ini akan dibahas beberapa contoh eksploitasi lubang keamanan.

Contoh-contoh yang dibahas ada yan bersifat umum dan ada 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 tersebut 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 dipakai 

untuk keperluan tersebut.

Menurut “Hacking Exposed”, metodologi dari penyusup biasanya

mengikuti langkah sebagai berikut:

• Target acquisition and information gaterhing

• Initial access

• Privilege escalation

• Covering tracks

Mencari informasi

Sebelum melakukan penyerangan, seorang cracker biasanya 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 tersebut.

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 dipakai  oleh domain tersebut. Untuk

mencari name server, dapat dipakai  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

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

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

keperluan tersebut.

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 bahwa kegiatan zone

transfer di beberapa tempat dapat dikategorikan sebagai tidak ramah

(unfriendly) dan bahkan dianggak sebagai usaha untuk melakukan hacking

terhadap sistem tersebut.

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 tersebut. 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