26 April 2009

Evaluasi Keamanan Sistem Informasi

Meski sebuah sistem informasi sudah dirancang memiliki perangkat pengamanan, dalam operasi masalah keamanan harus selalu dimonitor. Hal ini disebabkan oleh beberapa hal, antara lain:

· Ditemukannya lubang keamanan (security hole) yang baru. Perangkat lunak dan perangkat keras biasanya sangat kompleks sehingga tidak mungkin untuk diuji seratus persen. Kadang­kadang ada lubang keamanan yang ditimbulkan oleh kecerobohan implementasi.

· Kesalahan konfigurasi. Kadang-kadang karena lalai atau alpa, konfigurasi sebuah sistem kurang benar sehingga menimbulkan lubang keamanan. Misalnya mode (permission atau kepemilikan) dari berkas yang menyimpan password (/etc/passwd di sistem UNIX) secara tidak sengaja diubah sehingga dapat diubah atau ditulis oleh orang-orang yang tidak berhak.

· Penambahan perangkat baru (hardware dan/atau software) yang menyebabkan menurunnya tingkat security atau berubahnya metoda untuk mengoperasikan sistem. Operator dan administrator harus belajar lagi. Dalam masa belajar ini banyak hal yang jauh dari sempurna, misalnya server atau software masih menggunakan konfigurasi awal dari vendor (dengan password yang sama).



Sumber lubang keamanan

Lubang keamanan (security hole) dapat terjadi karena beberapa hal; salah disain (design flaw), salah implementasi, salah konfigurasi, dan salah penggunaan.

Lubang keamanan yang ditimbulkan oleh salah disain umumnya jarang terjadi. Akan tetapi apabila terjadi sangat sulit untuk diperbaiki. Misalnya, disain urutan nomor (sequence numbering) dari paket TCP/IP dapat dieksploitasi sehingga timbul masalah yang dikenal dengan nama “IP spoofing”, yaitu sebuah host memalsukan diri seolah-olah menjadi host lain dengan membuat paket palsu setelah mengamati urutan paket dari host yang hendak diserang. Contoh dan informasi yang lebih lengkap mengenai masalah protokol TCP/IP dapat dilihat pada referensi.

Lubang keamanan yang disebabkan oleh kesalahan implementasi sering terjadi. Banyak program yang diimplementasikan secara terburu-buru sehingga kurang cermat dalam pengkodean. Akibatnya cek atau testing yang harus dilakukan menjadi tidak dilakukan. Sebagai contoh seringkali batas (“bound”) dari sebuah “array” tidak dicek sehingga terjadi yang disebut out of bound yang dapat dieksploitasi (misalnya overwrite ke variable berikutnya). Contoh lain adalah kealpaan memfilter karakter-karakter yang aneh­aneh yang dimasukkan sebagai input dari sebuah program sehingga sang program dapat mengakses berkas atau informasi yang semestinya tidak boleh diakses.

Meskipun program sudah diimplementasikan dengan baik, masih dapat terjadi lubang keamanan karena salah konfigurasi. Contoh masalah yang disebabkan oleh salah konfigurasi adalah berkas yang semestinya tidak dapat diubah oleh pemakai secara tidak sengaja menjadi “writeable”. Apabila berkas tersebut merupakan berkas yang penting, seperti berkas yang digunakan untuk menyimpan password, maka efeknya menjadi lubang keamanan. Kadangkala sebuah komputer dijual dengan konfigurasi yang sangat lemah. Ada masanya workstation Unix di perguruan tinggi didistribusikan dengan berkas /etc/aliases (berguna untuk mengarahkan e-mail), /etc/utmp (berguna untuk mencatat siapa saja yang sedang menggunakan sistem) yang dapat diubah oleh siapa saja. Contoh lain dari salah konfigurasi adalah adanya program yang secara tidak sengaja diset menjadi “setuid root” sehingga ketika dijalankan pemakai memiliki akses seperti super user (root) yang dapat melakukan apa saja.

Salah penggunaan program dapat juga mengakibatkan terjadinya lubang keamanan. Kesalahan menggunakan program yang dijalankan dengan menggunakan account root (super user) dapat berakibat fatal. Sering terjadi cerita horor dari sistem administrator baru yang teledor dalam menjalankan perintah “rm -rf” (yang menghapus berkas atau direktori beserta sub direktori di dalamnya). Akibatnya seluruh berkas di sistem menjadi hilang. Untuk itu perlu berhati-hati dalam menjalan program, terutama apabila dilakukan dengan menggunakan account administrator seperti root tersebut.


Penguji keamanan sistem


Dikarenakan banyaknya hal yang harus dimonitor, administrator dari sistem informasi membutuhkan “automated tools”, perangkat pembantu otomatis, yang dapat membantu menguji atau meng­evaluasi keamanan sistem yang dikelola. Untuk sistem yang berbasis UNIX ada beberapa tools yang dapat digunakan, antara lain:

Cops

Tripwire

Satan

Untuk sistem yang berbasis Windows NT ada juga program semacam, misalnya program Ballista yang dapat diperoleh dari:

Selain program-program (tools) yang terpadu (integrated) seperti yang terdapat pada daftar di atas, ada banyak program yang dibuat oleh hackers untuk melakukan “coba-coba”. Program-program seperti ini, yang cepat sekali bermunculuan, biasanya dapat diperoleh (download) dari Internet melalui tempat-tempat yang berhubungan dengan keamanan, seperti misalnya “Rootshell”. (Lihat “Sumber informasi dan organisasi yang berhubungan dengan keamanan sistem informasi” on page 54.) Contoh program coba­coba ini antara lain:

· crack: program untuk menduga atau memecahkan password dengan menggunakan sebuah kamus (dictionary).

· land: sebuah program yang dapat membuat sistem Windows 95/ NT menjadi macet (hang, lock up). Program ini mengirimkan sebuah paket yang sudah di”spoofed” sehingga seolah-olah paket tersebut berasal dari mesin yang sama dengan menggunakan port yang terbuka (misalnya port 113 atau 139).

· ping-o-death: sebuah program (ping) yang dapat meng-crash-kan Windows 95/NT dan beberapa versi Unix.

· winuke: program untuk memacetkan sistem berbasis Windows


Probing Services


Servis di Internet umumnya dilakukan dengan menggunakan protokol TCP atau UDP. Setiap servis dijalankan dengan menggunakan port yang berbeda, misalnya:

SMTP, untuk mengirim dan menerima e-mail, TCP, port 25

POP3, untuk mengambil e-mail, TCP, port 110

Contoh di atas hanya sebagian dari servis yang tersedia. Di sistem UNIX, lihat berkas /etc/services dan /etc/inetd.conf untuk melihat servis apa saja yang dijalankan oleh server atau komputer yang bersangkutan.

Pemilihan servis apa saja tergantung kepada kebutuhan dan tingkat keamanan yang diinginkan. Sayangnya seringkali sistem yang dibeli atau dirakit menjalankan beberapa servis utama sebagai “default”. Kadang-kadang beberapa servis harus dimatikan karena ada kemungkinan dapat dieksploitasi oleh cracker. Untuk itu ada beberapa program yang dapat digunakan untuk melakukan “probe” (meraba) servis apa saja yang tersedia. Program ini juga dapat digunakan oleh kriminal untuk melihat servis apa saja yang tersedia di sistem yang akan diserang dan berdasarkan data-data yang diperoleh dapat melancarkan serangan.

Untuk beberapa servis yang berbasis TCP/IP, proses probe dapat dilakukan dengan menggunakan program telnet. Misalnya untuk melihat apakah ada servis e-mail dengan menggunakan SMTP digunakan telnet ke port 25.

unix% telnet target.host.com 25

Trying 127.0.0.1...

Connected to target.host.com.

Escape character is '^]'.

220 dma-baru ESMTP Sendmail 8.9.0/8.8.5; Mon, 22 Jun 1998

10:18:54 +0700


Untuk servis lain, seperti POP atau POP3 dapat dilakukan dengan cara yang sama dengan menggunakan nomor “port” yang sesuai dengan servis yang diamati.

unix% telnet localhost 110

Trying 127.0.0.1...

Connected to localhost. Escape character is '^]'.

+OK QPOP (version 2.2) at dma-baru.paume.itb.ac.id starting.

+<20651.898485542@dma-baru.paume.itb.ac.id>

quit

+OK Pop server at dma-baru.paume.itb.ac.id signing off.

Connection closed by foreign host.

Proses probing tersebut dapat dilakukan secara otomatis, sehinga menguji semua port yang ada, dengan menggunakan beberapa program paket seperti didaftarkan di bawah ini.


Paket probe untuk sistem UNIX

strobe

tcpprobe

Probe untuk sistem Window 95/98/NT

NetLab

Cyberkit

Ogre


Apabila anda seorang sistem administrator, anda dapat memasang program yang memonitor adanya probing ke sistem yang anda kelola. Probing biasanya meninggalkan jejak di berkas log di sistem anda. Dengan mengamati entry di dalam berkas log dapat diketahui adanya probing. Selain itu, ada juga program untuk memonitor probe seperti paket program courtney.

Penggunaan program penyerang

Salah satu cara untuk mengetahui kelemahan sistem informasi anda adalah dengan menyerang diri sendiri dengan paket-paket program penyerang (attack) yang dapat diperoleh di Internet. Dengan menggunakan program ini anda dapat mengetahui apakah sistem anda rentan dan dapat dieksploitasi oleh orang lain. Perlu diingat bahwa jangan menggunakan program-program tersebut untuk menyerang sistem lain (sistem yang tidak anda kelola). Ini tidak etis dan anda dapat diseret ke pengadilan.

Penggunaan sistem pemantau jaringan

Sistem pemantau jaringan (network monitoring) dapat digunakan untuk mengetahui adanya lubang keamaman. Misalnya apabila anda memiliki sebuah server yang semetinya hanya dapat diakses oleh orang dari dalam, akan tetapi dari pemantau jaringan dapat terlihat bahwa ada yang mencoba mengakses melalui tempat lain. Selain itu dengan pemantau jaringan dapat juga dilihat usaha-usaha untuk melumpuhkan sistem dengan melalui denial of service attack.





0 komentar: