26 April 2009

Mengamankan Sistem Informasi

Pada umunya, pengamanan dapat dikategorikan 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 digunakan “Secure Socket Layer” (SSL). Metoda ini misalnya umum digunakan untuk Web Site. Secara fisik, sistem anda dapat juga diamankan dengan menggunakan “firewall” yang memisahkan sistem anda dengan Internet. Penggunaan 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 digunakan untuk mengamankan informasi adalah dengan mengatur akses ke informasi melalui mekanisme “access control”. Implementasi dari mekanisme ini antara lain dengan menggunakan “password”.

Di sistem UNIX, untuk menggunakan 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 menggunakan sistem. Apabila ada yang salah, pemakai tidak dapat menggunakan 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.


Password di sistem UNIX


Akses ke sistem UNIX menggunakan password yang biasanya disimpan di dalam berkas /etc/passwd. Di dalam berkas ini disimpan nama, userid, password, dan informasi-informasi lain yang digunakan 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: wijaya:d98skjhj9l:72:98:hendra:/home/wijaya:/bin/csh

Field

Isi

wijaya

Nama atau userid pemakai

d98skjhj9l

password yang sudah terenkripsi (encrypted pass­

word)

72

UID, user identification number

98

GID, group identification number

Hendra

Nama lengkap dari pemakai (sering juga disebut

GECOSa atau GCOS field)

/home/rahard

home directory dari pemakai

/bin/csh

shell dari pemakai

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 untuk memudah­kan batch job yang dijalankan melalui sebuah Remote Job Entry

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 digunakan untuk memecah password tersebut. Contoh program ini antara lain: crack (UNIX), 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 adalah melakukan coba-coba (brute force attack). Salah satu caranya adalah mengambil kata dari kamus (dictionary) kemudian mengenkripsinya. Apabila hasil enkripsi tersebut sama dengan encrypted password, maka kunci atau passwordnya ketemu. Selain melakukan “lookup” dengan menggunakan kamus, biasanya program “password cracker” tersebut memiliki beberapa algoritma heuristic seperti menambahkan angka di belakangnya, atau membaca dari belakang, dan seterusnya. Inilah sebabnya jangan menggunakan 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) adalah dengan menggunakan “shadow password”. Mekanisme ini menggunakan 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.


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

Servis-servis di sistem UNIX ada yang dijalankan dari “inetd” dan ada yang dijalankan sebagai daemon. Untuk mematikan servis yang dijalankan dengan menggunakan 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.

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 adalah 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 menggunakan 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 menggunakan tcpwrapper. Biasanya, konfigurasi tcpwrapper (tcpd) diletakkan di berkas /etc/hosts.allow dan /etc/hosts.deny.