Pertemuan 6
Keamanan Sistem World Wide Web
World Wide Web (WWW atau Web) merupakan salah satu “killer applications” yang menyebabkan populernya Internet. WWW dikembangkan oleh Tim Berners-Lee ketika sabatical di CERN. Kehebatan WWW adalah kemudahan 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
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. 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 dikenal dengan istilah “CGI-bin” (Common Gateway Interface). Kedua servis di atas 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;
• informasi yang semestinya dikonsumsi untuk kalangan terbatas (misalnya laporan keuangan, strategi perusahaan anda, atau database client anda) ternyata berhasil disadap oleh saingan anda.
• informasi dapat disadap (seperti misalnya pengiriman nomor kartu kredit untuk membeli melalui WWW).
• server anda diserang 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.
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
Keamanan Server WWW
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.
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 adalah masalah kontrol akses. Pembatasan akses dapat dilakukan dengan:
• membatasi domain atau nomor IP yang dapat mengakses;
• menggunakan 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.
Secure Socket Layer
Salah satu cara untuk meningkatkan keamanan server WWW adalah dengan menggunakan enkripsi pada komunikasi pada tingkat socket. Dengan menggunakan enkripsi, orang tidak bisa menyadap data-data yang dikirimkan dari/ke server WWW. Salah satu mekanisme yang cukup populer adalah dengan menggunakan 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). Bahkan ada sebuah perusahaan (Stronghold) yang menjual Apache dengan SSL. Penggunaan 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. 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 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
Mengetahui Jenis Server
Informasi tentang server yang digunakan dapat digunakan oleh perusak untuk melancarkan serangan sesuai dengan tipe server dan operating system yang digunakan. Informasi tentang program server yang digunakan sangat mudah diperoleh. 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 menekan kunci “sama dengan” (=).
Keamanan Program CGI
Meskipun mekanisme CGI tidak memiliki lubang keamanan, program atau skrip yang dibuat sebagai CGI dapat memiliki lubang keamanan. Misalnya, seorang pemakai yang nakal dapat memasang skrip CGI sehingga dapat mengirimkan berkas password kepada pengunjung yang mengeksekusi CGI tersebut.
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. Seorang pengunjung sebuah tempat WWW dapat diganggu dengan berbagai cara. Misalnya, tanpa dia ketahui, dapat saja program Java, Javascript, atau ActiveX yang jahat didownload dan dijalankan. Program ini dapat mengirimkan informasi tentang anda ke server WWW tersebut, atau bahkan menjalankan program tertentu di komputer anda. Bayangkan apabila yang anda download adalah virus atau trojan horse yang dapat menghapus isi harddisk anda.
Selengkapnya...
Pertemuan 5
Firewall
Firewall merupakan sebuah perangkat yang diletakkan antara Internet dengan jaringan internal Informasi yang keluar atau masuk harus melalui firewall ini. Tujuan utama dari firewall adalah 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 tidakdiperbolehkan (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. Informasi mengenai firewall secara lebih lengkap dapat dibaca pada referensi [8, 11].
Pemantau adanya serangan
Sistem pemantau (monitoring system) digunakan untuk mengetahui adanya tamu tak diundang (intruder) atau adanya serangan (attack). Sistem ini dapat memberitahu administrator melalui e-mail maupun melalui mekanisme lain seperti melalui pager. Contoh program yang dapat digunakan antara lain courtney (UNIX). Program courtney akan memberitahu melalui e-mail apabila ada probe.
Pemantau integritas sistem
Pemantau integritas sistem dijalankan secara berkala untuk menguji integratitas sistem. Salah satu contoh program yang umum digunakan di sistem UNIX adalah program Tripwire. Program paket Tripwire dapat digunakan untuk memantau adanya perubahan pada berkas. Pada mulanya tripwire dijalankan dan membuat database mengenai berkas-berkas atau direktori yang ingin kita amati. Informasi mengenai besarnya berkas, kapan dibuatnya, pemiliknya, dan sebagainya tercatat dalam sebuah database. Hal ini dilakukan dengan menggunakan hash function. Apabila ada perubahan, maka keluaran dari hash function itu akan berbeda dan akan ketahuan adanya perubahan.
Audit: Mengamati Berkas Log
Segala kegiatan penggunaan sistem dapat dicatat dalam berkas yang biasanya disebut “logfile” atau “log” saja. Berkas log 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 atau log. 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.
Backup secara rutin
web site CERT (See “Sumber informasi dan organisasi yang berhubungan dengan keamanan sistem informasi”) 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 adalah 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.
Penggunaan Enkripsi untuk meningkatkan keamanan
Salah satau mekanisme untuk meningkatkan keamanan adalah dengan menggunakan teknologi enkripsi. Data-data yang anda kirimkan diubah sedemikian rupa sehingga tidak mudah disadap. Banyak servis di Internet yang masih menggunakan “plain text” untuk authentication, seperti penggunaan pasangan userid dan password yang sering dapat dilihat dengan program sniffer. Penggunaan enkripsi untuk remote akses (misalnya melalui telnet atau rlogin) akan dibahas di bagian berikut.
Telnet atau shell aman
Telnet atau remote login digunakan untuk mengakses sebuah “remote site” atau komputer melalui sebuah jaringan komputer. Akses ini dilakukan dengan menggunakan hubungan TCP/IP dengan menggunakan 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 ini Untuk menghindari hal ini, enkripsi dapat digunakan untuk melindungi adanya sniffing. Paket yang dikirimkan dienkripsi dengan RSA atau IDEA sehingga tidak dapat dibaca oleh orang yang tidak berhak. Salah satu implementasi mekanisme ini adalah SSH (Secure Shell). Ada beberapa implementasi SSH ini, antara lain:
1. Meskipun cara ini biasanya membutuhkan akses “root”.
Telnet atau shell aman
• ssh untuk UNIX (dalam bentuk source code, gratis)
• SSH untuk Windows95 dari Data Fellows (komersial)
• TTSSH, yaitu skrip yang dibuat untuk Tera Term Pro (gratis, untuk Windows 95)
• SecureCRT untuk Windows95 (shareware / komersial)
Selengkapnya...
Pertemuan 4
Mengamankan Sistem Informasi
Dalam bab sebelumnya telah dibahas cara-cara untuk mengevaluasi sistem anda. Maka bab ini akan membahas cara-cara untuk mengamankan sistem informasi anda. 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 ditingkat 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 antaralain 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. 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.
Pada sistem UNIX lama, biasanya berkas 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 olehprogram 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. GECOS = General Electric Computer Operating System. Di masa lalu, pemakai juga memiliki account di komputer yang lebih besar, yaitu komputer GECOS. Informasi ini disimpan dalam berkas ini untuk memudah kan batch job yang dijalankan melalui sebuah Remote Job Entry. [4]
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 untuk menyimpan encrypted password, sementara kolom password di berkas berisi karakter “x”. Berkas tidak dapat dibaca secara langsung oleh pemakai biasa.
Perhatikan sistem UNIX anda. Apakah sistem itu menggunakan fasilitas shadow password atau tidak?
Memilih password
Dengan adanya kemungkinan password ditebak, maka memilih password memerlukan perhatian khusus. Berikut ini adalah daftar hal-hala 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.
• 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.
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 menggunakan fasilitas inet, periksa berkas, 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.
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. 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 dan deny.
Selengkapnya...
Pertemuan3
Evaluasi Keamanan Sistem Informasi
Apabila anda telah memiliki sebuah sistem informasi, bab ini akan membantu anda untuk mengevaluasi keamanan sistem informasi yang anda miliki.
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 (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 [1]. 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 (berguna untuk mengarahkan e-mail),
(berguna untuk mencatat siapa saja yang sedang menggunakan sistem) yang dapat diubah oleh siapa saja. Contoh lain dari salah konfiguras 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 portang 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 dan 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
Lakukan probing ke sebuah POP server. Gunakan POP server yang dipersiapkan khusus untuk latihan ini. Jangan lakukan probing ke server milik orang lain tanpa ijin. 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
Gunakan strobe atau tcpprobe untuk melakukan probe terhadap sebuah server yang sudah dipersiapkan untuk latihan ini. Jangan melakukan probe ke server milik orang
lain tanpa ijin.
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.
Pertemuan2
Dasar-dasar Keamanan Sistem Informasi
Kriptografi adalah Seni Untuk Menyembunyikan Informasi
Perkembangan komunikasi telah mendorong manusia untuk menyembunyikan informasi yang dimilikinya dari orang lain demi alasan keamanan dan privasi.
Seseorang yang berusaha untuk mengembangkan dan membuat kode kriptografi disebut cryptographer. Sedangkan seseorang yang berusaha memecahkan kode tersebut disebut cryptanalists. Kriptografi telah dikenal sejak 4000 tahun yang lalu. Kriptografi dahulunya adalah usaha untuk mengubah pesan dengan menambah atau mengubah karakter tertentu. Sekarang, telah ditemukan metode kriptografi terbaru yaitu: quantum cryptography.
Physical Cryptography
Physical cryptography meliputi metode untuk menukar tempat (transposition) atau mensubtitusikan karakter tertentu dalam pesan.
Substitution Ciphers Adalah metode kriptografi dengan jalan mengganti karakter/simbol tertentu dengan karakter/simbol yang lain.
Misal “a“: “x“ dan “b” : “y”, maka
“apa kabar” : “xpx kxyxr”.
Masalah: (a) tidak aman dan (b) apakah “x” dalam pesan benar-benar “x” atau hasil substitusi?
Transposition Ciphers Adalah metode kriptografi dengan menukarkan atau mengacak kata/bagian kata dari pesan dengan aturan tertentu. Contoh:
“Aku Cinta Kamu” : “kuA taCin muKa”
Steganography Yaitu proses menyembunyikan pesan dalam pesan lain dengan harapan agar pesan yang sesungguhnya tidak dapat dideteksi. Contoh:
“Aku Cinta Kamu” : “Aku Sangat Cinta Durian Kamu”.
Hybrid System Yaitu gabungan dari ketiga metode di atas. Contoh: Mesin Enigma yang dipakai Jerman dalam PD II untuk mengirim pesan ke perahu “U”-nya, menggunakan kombinasi antara subtitusi dan transposisi.
Quantum Cryptography
Quantum kriptografi adalah metode enskripsi yang relatif baru. Pada awal tahun 2002, aplikasinya dibatasi untuk laboratorium dan proyek rahasia pemerintah. Proses didasari oleh Prinsip Ketidakpastian Heisenberg yang sebenarnya dipakai dalam teori atom modern.
Dalam quantum kriptografi, pesan dikirim dengan menggunakan runtun foton. Jika penerima mengetahui urutan dan polaritas dari foton maka ia bisa menterjemahkan pesan tersebut, Dan jika seseorang yang berusaha mengintip pesan, beberapa foton akan berubah polaritasnya. Hal ini akan memberi tahu si penerima bahwa pesan telah dibaca orang lain, dan dia bisa meminta si pengirim untuk mengirim ulang pesan dengan polaritas foton yang berbeda.
Quantum kriptografi memungkinkan adanya enskripsi yang tidak bisa dipecahkan. Meski demikian biaya yang dibutuhkan sangat mahal dan masih dipakai dalam aplikasi yang terbatas.
Steganografi adalah seni dan ilmu menulis atau menyembunyikan pesan tersembunyi dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Sebaliknya, kriptografi menyamarkan arti dari suatu pesan, tapi tidak menyembunyikan bahwa ada suatu pesan. Kata steganografi (steganografi) berasal dari bahasa Yunani steganos, yang artinya “tersembunyi atau terselubung”, dan graphein, “menulis”.
Kini, istilah steganografi termasuk penyembunyian data digital dalam file-file komputer. Contohnya, si pengirim mulai dengan file gambar biasa, lalu mengatur warna setiap pixel ke-100 untuk menyesuaikan suatu huruf dalam alphabet (perubahannya begitu halus sehingga tidak ada seorangpun yang menyadarinya jika ia tidak benar-benar memperhatikannya).
Pada umumnya, pesan steganografi muncul dengan rupa lain seperti gambar, artikel, daftar belanjaan, atau pesan-pesan lainnya. Pesan yang tertulis ini merupakan tulisan yang menyelubungi atau menutupi. Contohnya, suatu pesan bisa disembunyikan dengan menggunakan tinta yang tidak terlihat diantara garis-garis yang kelihatan.
Teknik steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia (teks atau gambar) di dalam file-file lain yang mengandung teks, image, bahkan audio tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari file semula. Metode ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar. Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam prakteknya kebanyakan diselesaikan dengan membuat perubahan tipis terhadap data digital lain yang isinya tidak akan menarik perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada kriptografi) dan pesan untuk disembunyikan. Orang yang menerima gambar kemudian dapat menyimpulkan informasi terselubung dengan cara mengganti kunci yang benar ke dalam algoritma yang digunakan.
Pada metode steganografi cara ini sangat berguna jika digunakan pada cara steganografi komputer karena banyak format file digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan diantaranya:
* Format image : bitmap (bmp), gif, pcx, jpeg, dll.
* Format audio : wav, voc, mp3, dll.
* Format lain : teks file, html, pdf, dll.
Kelebihan steganografi daripada kriptografi adalah pesan-pesannya tidak menarik perhatian orang lain. Pesan-pesan berkode dalam kriptografi yang tidak disembunyikan, walaupun tidak dapat dipecahkan, akan menimbulkan kecurigaan. Seringkali, steganografi dan kriptografi digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya.
Sebuah pesan steganografi (plaintext), biasanya pertama-tama dienkripsikan dengan beberapa arti tradisional, yang menghasilkan ciphertext. Kemudian, covertext dimodifikasi dalam beberapa cara sehingga berisi ciphertext, yang menghasilkan stegotext. Contohnya, ukuran huruf, ukuran spasi, jenis huruf, atau karakteristik covertext lainnya dapat dimanipulasi untuk membawa pesan tersembunyi; hanya penerima (yang harus mengetahui teknik yang digunakan) dapat membuka pesan dan mendekripsikannya.
Dasar-dasar Enkripsi
Enkripsi adalah proses pengubahan/konversi/penyandian suatu informasi ke bentuk tertentu sehingga tidak dimengerti/tidak dapat dimanfaatkan oleh pihak yang tidak berhak. Enkripsi digunakan untuk melindungi data. Dekripsi adalah kebalikan dari proses enkripsi.
Data-data penting yang ada dan yang anda kirimkan bisa diubah sedemikian rupa sehingga tidak mudah disadap. Jenis-jenis metode enkripsi ini banyak sekali, misal : DES (Data Encryption System), PEM (Privacy Enhanced Mail), PGP (Pretty Good Privacy), SSL (Secure Socket Layer), MD5 dll.
Banyak servis di Internet yang masih menggunakan “plain text” untuk authentication, seperti telnet. Informasi ini dapat dilihat dengan mudah oleh program penyadap (sniffer).
Aplikasi-aplikasi yang sering digunakan untuk enkripsi antara lain :
• SSH (Secure Shell), merupakan aplikasi enkripsi digunakan terutama untuk remote akses sebagai pengganti telnet/rlogin.
• Gpg (Encryption and signing Tool), merupakan aplikasi enkripsi/dekripsi data.
• Crypt, biasa terdapat pada sistem berbasis Unix.
• SSL, aplikasi enkripsi data yang berbasis web.
• PGP, aplikasi enkripsi data yang berbasis email.
Serangan Terhadap Sistem Keamanan
Serangan pada keamanan jaringan sangat banyak jenisnya. Bahkan mungkin ditemukan cara-cara baru yang lebih mudah dan efektif serta tidak terlalu membutuhkan kemampuan yang tinggi. Serangan-serangan ini ada yang bersifat mengganggu, merusak, bahkan mengambil alih posisi superuser (root). Serangan yang sering terjadi di internet di antaranya :
• Scanning
Scan adalah probe dalam jumlah besar menggunakan tool secara otomatis dengan tujuan tertentu (misal : mendeteksi kelemahan-kelemahan pada host tujuan). Scanner biasanya bekerja dengan men-scan port TCP /IP dan servis-servisnya dan mencatat respon dari komputer target. Dari scanner ini dapat diperoleh informasi mengenai port-port mana saja yang terbuka. Kemudian yang dilakukan adalah mencari tahu kelemahan-kelemahan yang mungkin bisa dimanfaatkan berdasar port yang terbuka dan aplikasi serta versi aplikasi yang digunakan.
• Sniffing
Sniffer adalah device (software maupun hardware) yang digunakan untuk mendengar informasi yang melewati jaringan dengan protokol apa saja. Host dengan mode promiscuous mampu mendengar semua trafik di dalam jaringan. Sniffer dapat menyadap password maupun informasi rahasia, dan keberadaannya biasanya cukup sulit untuk dideteksi karena bersifat pasif. Sniffer ini mendengarkan port Ethernet untuk hal-hal seperti "Password", "Login" dan "su" dalam aliran paket dan kemudian mencatat lalu lintas setelahnya. Dengan cara ini, penyerang memperoleh password untuk sistem yang bahkan tidak mereka usahakan untuk dibongkar. Password teks biasa adalah sangat rentan terhadap serangan ini. Untuk mengatasinya, dapat digunakan enkripsi, merancang arsitektur jaringan yang lebih aman dan menggunakan One Time Password (OTP).
• Eksploit
Eksploit berarti memanfaatkan kelemahan sistem untuk aktifitas-aktifitas di luar penggunaan normal yang sewajarnya.
• Spoofing
Biasanya IP spoofing dilakukan dengan menyamarkan identitas alamat IP menjadi IP yang tepercaya (misal dengan script tertentu) dan kemudian melakukan koneksi ke dalam jaringan. Bila berhasil akan dilanjutkan dengan serangan berikutnya.
• DoS (Denial of Service) attack
Salah satu sumberdaya jaringan yang berharga adalah servis-servis yang disediakannya. DoS atau malah Distributed DoS (DDoS) attack dapat menyebabkan servis yang seharusnya ada menjadi tidak bisa digunakan. Hal ini tentu akan mendatangkan masalah dan merugikan. Penyebab penolakan servis ini sangat banyak sekali, dapat disebabkan antara lain :
1. Jaringan kebanjiran trafik (misal karena serangan syn flooding, ping flooding, smurfing).
2. Jaringan terpisah karena ada penghubung (router/gateway) yang tidak berfungsi.
3. Ada worm/virus yang menyerang dan menyebar sehingga jaringan menjadi lumpuh bahkan tidak berfungsi, dll
• Malicious Code
Malicious Code adalah program yang dapat menimbulkan efek yang tidak diinginkan jika dieksekusi. Jenisnya antara lain : trojan horse, virus, dan worm. Trojan Horse adalah program yang menyamar dan melakukan aktifitas tertentu secara tersembunyi (biasanya merugikan, misal : game yang mencuri password). Virus adalah program yang bersifat mengganggu bahkan merusak dan biasanya memerlukan intervensi manusia dalam penyebarannya. Worm adalah program yang dapat menduplikasikan diri dan menyebar dengan cepat tanpa intervensi manusia. Malicious kode dapat menimbulkan beragam tingkat permasalahan.
• Serangan secara fisik
Serangan secara fisik misalnya mengakses server/jaringan/piranti secara ilegal :
• Buffer Ofer Flow
Dapat terjadi jika ada fungsi yang dibebani dengan data yang lebih besar dari yang mampu ditangani fungsi tersebut. Buffer adalah penampungan sementara di memori komputer dan biasanya mempunyai ukuran tertentu. Jika hal itu terjadi maka kemungkinan yang dapat terjadi adalah :
Program menolak dan memberi peringatan
Program akan menerima data, meletakkannya pada memori dan mengoverwrite isi memori jika ada data sebelumnya. Cracker dapat membuat data di mana bagian overflownya adalah set instruksi tertentu untuk mendapatkan akses. Jika set instruksi baru menempati tempat suatu instruksi sebelumnya, maka instruksi cracker akan dapat dijalankan.
• Social Engineering
Social engineering berarti usaha untuk mendapatkan password dengan jalan 'memintanya' , misalkan dengan menggunakan fakemail.
• OS Finger Printing
Mengetahui operating system (OS) dari target yang akan diserang merupakan salah satu pekerjaan pertama yang dilakukan oleh seorang cracker. Setelah mengetahui OS yang dituju, dia dapat melihat database kelemahan sistem yang dituju. Fingerprinting merupakan istilah yang umum digunakan untuk menganalisa OS sistem yang dituju. Beberapa cara konvensional antara lain : telnet, ftp, netcat, dll.
Jika server tersebut kebetulan menyediakan suatu servis, seringkali ada banner yang menunjukkan nama OS beserta versinya. Misalkan dilakukan dengan telnet dengan port tertentu, atau dapat juga menggunakan program tertentu.
Cara fingerprinting yang lebih canggih adalah dengan menganalisa respon sistem terhadap permintaan (request) tertentu. Misalnya dengan menganalisa nomor urut packet TCP/IP yang dikeluarkan oleh server tersebut dapat dipersempit ruang jenis dari OS yang digunakan.
Ada beberapa tools untuk melakukan deteksi OS ini antara lain: nmap, dan queso
• Crack password
Crack password adalah program untuk MENDUGA dan memecahkan password dengan menggunakan sebuah atau beberapa kamus (dictionary)
Dewasa ini tool-tool yang digunakan dalam penyerangan semakin mudah digunakan dan efektif, bahkan banyak yang disertai source kodenya..
Aplikasi dari Enkripsi
Contoh penggunaan enkripsi adalah program Pretty Good Privacy
(PGP) [11], dan secure shell (SSH). Program PGP digunakan untuk
mengenkripsi dan menambahkan digital siganture dalam e-mail yang
dikirim. Program SSH digunakan untuk mengenkripsi sesion telnet
ke sebuah host. Hal ini akan dibahas lebih lanjut pada bagian lain.
Perbedaan prinsip dan penggunaan public-key cryptography dan
symmetric cryptography membutuhkan diskusi tersendiri. Pada
symmetric cryptography, satu kunci yang sama digunakan untuk
melakukan enkripsi dan dekripsi. Pada sistem public-key
cryptography, enkripsi dan dekripsi menggunakan kunci yang
berbeda.
Sejak dikembangkannya public-key cryptography, selalu timbul
pertanyaan mana yang lebih baik. Para pakar kriptografi
mengatakan bahwa keduanya tidak dapat dibandingkan karena
mereka memecahkan masalah dalam domain yang berbeda.
Symmetric cryptography merupakan hal yang terbaik untuk
mengenkripsi data. Kecepatannya dan keamanan akan choosenciphertext
attack merupakan kelebihannya. Sementara itu public-key
cryptography dapat melakukan hal-hal lain lebih baik daripada
symmetric cryptography, misalnya dalam hal key management.
Selengkapnya...
Pertemuan1
Klasifikasi Kejahatan Komputer
Kejahatan komputer dapat digolongkan kepada yang sangat berbahaya sampai ke yang hanya mengesalkan (annoying). Menurut David Icove berdasarkan lubang keamanan, keamanan dapat diklasifikasikan menjadi empat, yaitu:
Kejahatan komputer dapat digolongkan kepada yang sangat berbahaya sampai ke yang hanya mengesalkan (annoying). Menurut David Icove berdasarkan lubang keamanan, keamanan dapat diklasifikasikan menjadi empat, yaitu:
1. Keamanan yang bersifat fisik (physical security): termasuk akses orang ke gedung, peralatan, dan media yang digunakan. Beberapa bekas penjahat komputer (crackers) mengatakan bahwa mereka sering pergi ke tempat sampah untuk mencari berkas-berkas yang mungkin memiliki informasi tentang keamanan. Misalnya pernah diketemukan coretan password atau manual yang dibuang tanpa dihancurkan. Wiretapping atau hal-hal yang berhubungan dengan akses ke kabel atau computer yang digunakan juga dapat dimasukkan ke dalam kelas ini.
Pencurian komputer dan notebook juga merupakan kejahatan yang besifat fisik. Menurut statistik, 15% perusahaan di Amerika pernah kehilangan notebook. Padahal biasanya notebook ini tidak dibackup (sehingga data-datanya hilang), dan juga seringkali digunakan untuk menyimpan data-data yang seharusnya sifatnya confidential (misalnya pertukaran email antar direktur yang menggunakan notebook tersebut).
Denial of service, yaitu akibat yang ditimbulkan sehingga servis tidak dapat diterima oleh pemakai juga dapat dimasukkan ke dalam kelas ini.
Denial of service dapat dilakukan misalnya dengan mematikan peralatan atau membanjiri saluran komunikasi dengan pesan-pesan (yang dapat berisi apa saja karena yang diutamakan adalah banyaknya jumlah pesan).
Beberapa waktu yang lalu ada lubang keamanan dari implementasi protocol TCP/IP yang dikenal dengan istilah Syn Flood Attack, dimana sistem (host) yang dituju dibanjiri oleh permintaan sehingga dia menjadi terlalu sibuk dan bahkan dapat berakibat macetnya sistem (hang).
Mematikan jalur listrik sehingga sistem menjadi tidak berfungsi juga merupakan serangan fisik.
Masalah keamanan fisik ini mulai menarik perhatikan ketika gedung World Trade Center yang dianggap sangat aman dihantam oleh pesawat terbang yang dibajak oleh teroris. Akibatnya banyak sistem yang tidak bisa hidup kembali karena tidak diamankan. Belum lagi hilangnya nyawa.
2. Keamanan yang berhubungan dengan orang (personel): termasuk identifikasi, dan profil resiko dari orang yang mempunyai akses (pekerja). Seringkali kelemahan keamanan sistem informasi bergantung kepada manusia (pemakai dan pengelola). Ada sebuah teknik yang dikenal dengan istilah “social engineering” yang sering digunakan oleh kriminal untuk berpura-pura sebagai orang yang berhak mengakses informasi. Misalnya kriminal ini berpura-pura sebagai pemakai yang lupa passwordnya dan minta agar diganti menjadi kata lain.
3. Keamanan dari data dan media serta teknik komunikasi (communications).
Yang termasuk di dalam kelas ini adalah kelemahan dalam software yang digunakan untuk mengelola data. Seorang kriminal dapat memasang virus atau trojan horse sehingga dapat mengumpulkan informasi (seperti password) yang semestinya tidak berhak diakses. Bagian ini yang akan banyak kita bahas dalam buku ini.
4. Keamanan dalam operasi: termasuk kebijakan (policy) dan prosedur yang digunakan untuk mengatur dan mengelola sistem keamanan, dan juga termasuk prosedur setelah serangan (post attack recovery). Seringkali perusahaan tidak memiliki dokumen kebijakan dan prosedur.
Aspek / servis dari security
A computer is secure if you can depend on it and its software to behave as you expect. (Garfinkel and Spafford) Garfinkel mengemukakan bahwa keamanan komputer (computer security) melingkupi empat aspek, yaitu privacy, integrity, authentication, dan availability. Selain keempat hal di atas, masih ada dua aspek lain yang juga sering dibahas dalam kaitannya dengan electronic commerce, yaitu access control dan non-repudiation.
Privacy / Confidentiality
Inti utama aspek privacy atau confidentiality adalah usaha untuk menjaga informasi dari orang yang tidak berhak mengakses. Privacy lebih kearah data-data yang sifatnya privat sedangkan confidentiality biasanya berhubungan dengan data yang diberikan ke pihak lain untuk keperluan tertentu (misalnya sebagai bagian dari pendaftaran sebuah servis) dan hanya diperbolehkan untuk keperluan tertentu tersebut. Contoh hal yang berhubungan dengan privacy adalah e-mail seorang pemakai (user) tidak boleh dibaca oleh administrator. Contoh confidential information adalah data-data yang sifatnya pribadi (seperti nama, tempat tanggal lahir, social security number, agama, status perkawinan, penyakit yang pernah diderita, nomor kartu kredit, dan sebagainya) merupakan data-data yang ingin diproteksi penggunaan dan penyebarannya. Contoh lain dari confidentiality adalah daftar pelanggan dari sebuah Internet Service Provider (ISP).
Untuk mendapatkan kartu kredit, biasanya ditanyakan data-data pribadi. Jika saya mengetahui data-data pribadi anda, termasuk nama ibu anda, maka saya dapat melaporkan melalui telepon (dengan berpura-pura sebagai anda) bahwa kartu kredit anda hilang dan mohon penggunaannya diblokir.
Institusi (bank) yang mengeluarkan kartu kredit anda akan percaya bahwa saya adalah anda dan akan menutup kartu kredit anda. Masih banyak lagi kekacauan yang dapat ditimbulkan bila data-data pribadi ini digunakan oleh orang yang tidak berhak.
Ada sebuah kasus dimana karyawan sebuah perusahaan dipecat dengan tidak hormat dari perusahaan yang bersangkutan karena kedapatan mengambil data-data gaji karyawan di perusahaan yang bersangkutan. Di perusahaan ini, daftar gaji termasuk informasi yang bersifat confidential / rahasia1.
Dalam bidang kesehatan (health care) masalah privacy merupakan topic yang sangat serius di Amerika Serikat. Health Insurance Portability and Accountability Act (HIPPA), dikatakan akan mulai digunakan di tahun 2002, mengatakan bahwa rumah sakit, perusahaan asuransi, dan institusi lain yang berhubungan dengan kesehatan harus menjamin keamanan dan privacy dari data-data pasien. Data-data yang dikirim harus sesuai dengan format standar dan mekanisme pengamanan yang cukup baik. Partner bisnis dari institusi yang bersangkutan juga harus menjamin hal tersebut. Suatu hal yang cukup sulit dipenuhi. Pelanggaran akan act ini dapat didenda US$ 250.000 atau 10 tahun di penjara.
Serangan terhadap aspek privacy misalnya adalah usaha untuk melakukan penyadapan (dengan program sniffer). Usaha-usaha yang dapat dilakukan untuk meningkatkan privacy dan confidentiality adalah dengan menggunakan teknologi kriptografi (dengan enkripsi dan dekripsi).
Ada beberapa masalah lain yang berhubungan dengan confidentiality. Apabila kita menduga seorang pemakai (sebut saja X) dari sebuah ISP (Z), maka dapatkah kita meminta ISP (Z) untuk membuka data-data tentang pemakai X tersebut? Di luar negeri, ISP Z akan menolak permintaan tersebut meskipun bukti-bukti bisa ditunjukkan bahwa pemakai X tersebut melakukan kejahatan. Biasanya ISP Z tersebut meminta kita untuk menunjukkan surat dari pihak penegak hukum (subpoena). Masalah privacy atau confidentiality ini sering digunakan sebagi pelindung oleh orang yang jahat/nakal. Informasi mengenai privacy yang lebih rinci dapat diperoleh dari situs Electronic Privacy Information Center (EPIC)1 dan Electronic Frontier Foundation (EFF)2.
Integrity
Aspek ini menekankan bahwa informasi tidak boleh diubah tanpa seijin pemilik informasi. Adanya virus, trojan horse, atau pemakai lain yang mengubah informasi tanpa ijin merupakan contoh masalah yang harus dihadapi. Sebuah e-mail dapat saja “ditangkap” (intercept) di tengah jalan, diubah isinya (altered, tampered, modified), kemudian diteruskan ke alamat yang dituju. Dengan kata lain, integritas dari informasi sudah tidak terjaga. Penggunaan enkripsi dan digital signature, misalnya, dapat mengatasi masalah ini.
1. http://www.epic.org
2. http://www.eff.org
Salah satu contoh kasus trojan horse adalah distribusi paket program TCP Wrapper (yaitu program populer yang dapat digunakan untuk mengatur dan membatasi akses TCP/IP) yang dimodifikasi oleh orang yang tidak bertanggung jawab. Jika anda memasang program yang berisi trojan horse tersebut, maka ketika anda merakit (compile) program tersebut, dia akan mengirimkan eMail kepada orang tertentu yang kemudian memperbolehkan dia masuk ke sistem anda. Informasi ini berasal dari CERT Advisory, “CA- 99-01 Trojan-TCP-Wrappers” yang didistribusikan 21 Januari 1999.
Contoh serangan lain adalah yang disebut “man in the middle attack” dimana seseorang menempatkan diri di tengah pembicaraan dan menyamar sebagai orang lain.
Authentication
Aspek ini berhubungan dengan metoda untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betul-betul server yang asli.
Masalah pertama, membuktikan keaslian dokumen, dapat dilakukan dengan teknologi watermarking dan digital signature. Watermarking juga dapat digunakan untuk menjaga “intelectual property”, yaitu dengan menandai
dokumen atau hasil karya dengan “tanda tangan” pembuat.
Masalah kedua biasanya berhubungan dengan access control, yaitu berkaitan dengan pembatasan orang yang dapat mengakses informasi.
Dalam hal ini pengguna harus menunjukkan bukti bahwa memang dia adalah pengguna yang sah, misalnya dengan menggunakan password, biometric (ciri-ciri khas orang), dan sejenisnya. Ada tiga hal yang dapat ditanyakan kepada orang untuk menguji siapa dia:
• What you have (misalnya kartu ATM)
• What you know (misalnya PIN atau password)
• What you are (misalnya sidik jari, biometric)
Penggunaan teknologi smart card, saat ini kelihatannya dapat meningkatkan keamanan aspek ini. Secara umum, proteksi authentication dapat menggunakan digital certificates. Authentication biasanya diarahkan kepada orang (pengguna), namun tidak pernah ditujukan kepada server atau mesin. Pernahkan kita bertanya bahwa mesin ATM yang sedang kita gunakan memang benar-benar milik bank yang bersangkutan? Bagaimana jika ada orang nakal yang membuat mesin seperti ATM sebuah bank dan meletakkannya di tempat umum? Dia dapat menyadap data-data (informasi yang ada di magnetic strip) dan PIN dari orang yang tertipu. Memang membuat mesin ATM palsu tidak mudah. Tapi, bisa anda bayangkan betapa mudahnya membuat web site palsu yang menyamar sebagai web site sebuah bank yang memberikan layanan Internet Banking. (Ini yang terjadi dengan kasus klikBCA.com.)
Availability
Aspek availability atau ketersediaan berhubungan dengan ketersediaan informasi ketika dibutuhkan. Sistem informasi yang diserang atau dijebol dapat menghambat atau meniadakan akses ke informasi. Contoh hambatan
adalah serangan yang sering disebut dengan “denial of service attack” (DoS attack), dimana server dikirimi permintaan (biasanya palsu) yang bertubitubi atau permintaan yang diluar perkiraan sehingga tidak dapat melayani permintaan lain atau bahkan sampai down, hang, crash. Contoh lain adalah adanya mailbomb, dimana seorang pemakai dikirimi e-mail bertubi-tubi (katakan ribuan e-mail) dengan ukuran yang besar sehingga sang pemakai tidak dapat membuka e-mailnya atau kesulitan mengakses e-mailnya (apalagi jika akses dilakukan melalui saluran telepon). Bayangkan apabila anda dikirimi 5000 email dan anda harus mengambil (download) email tersebut melalui telepon dari rumah.
Serangan terhadap availability dalam bentuk DoS attack merupakan yang terpopuler pada saat naskah ini ditulis. Pada bagian lain akan dibahas tentang serangan DoS ini secara lebih rinci.
Access Control
Aspek ini berhubungan dengan cara pengaturan akses kepada informasi. Hal ini biasanya berhubungan dengan klasifikasi data (public, private, confidential, top secret) & user (guest, admin, top manager, dsb.), mekanisme authentication dan juga privacy. Access control seringkali dilakukan dengan menggunakan kombinasi userid/password atau dengan menggunakan mekanisme lain (seperti kartu, biometrics).
Non-repudiation
Aspek ini menjaga agar seseorang tidak dapat menyangkal telah melakukan sebuah transaksi. Sebagai contoh, seseorang yang mengirimkan email untuk memesan barang tidak dapat menyangkal bahwa dia telah mengirimkan email tersebut. Aspek ini sangat penting dalam hal electronic commerce. Penggunaan digital signature, certifiates, dan teknologi kriptografi secara umum dapat menjaga aspek ini. Akan tetapi hal ini masih harus didukung oleh hukum sehingga status dari digital signature itu jelas legal. Hal ini akan dibahas lebih rinci pada bagian tersendiri.
Serangan Terhadap Keamanan Sistem
Informasi
Security attack, atau serangan terhadap keamanan sistem informasi, dapat dilihat dari sudut peranan komputer atau jaringan komputer yang fungsinya adalah sebagai penyedia informasi. Menurut W. Stallings ada beberapa kemungkinan serangan (attack):
• Interruption: Perangkat sistem menjadi rusak atau tidak tersedia. Serangan ditujukan kepada ketersediaan (availability) dari sistem. Contoh serangan adalah “denial of service attack”.
• Interception: Pihak yang tidak berwenang berhasil mengakses aset atau informasi. Contoh dari serangan ini adalah penyadapan (wiretapping).
• Modification: Pihak yang tidak berwenang tidak saja berhasil mengakses, akan tetapi dapat juga mengubah (tamper) aset. Contoh dari serangan ini antara lain adalah mengubah isi dari web site dengan pesanpesan yang merugikan pemilik web site.
• Fabrication: Pihak yang tidak berwenang menyisipkan objek palsu ke dalam sistem. Contoh dari serangan jenis ini adalah memasukkan pesanpesan palsu seperti e-mail palsu ke dalam jaringan komputer.
Electronic commerce: mengapa sistem
informasi berbasis Internet
Sistem informasi saat ini banyak yang mulai menggunakan basis Internet. Ini disebabkan Internet merupakan sebuah platform yang terbuka (open platform) sehingga menghilangkan ketergantungan perusahaan pada sebuah vendor tertentu seperti jika menggunakan sistem yang tertutup (proprietary systems). Open platform juga mempermudah interoperability antar vendor.
Selain alasan di atas, saat ini Internet merupakan media yang paling ekonomis untuk digunakan sebagai basis sistem informasi. Hubungan antar komputer di Internet dilakukan dengan menghubungkan diri ke link terdekat, sehingga hubungan fisik biasanya bersifat lokal. Perangkat lunak (tools) untuk menyediakan sistem informasi berbasis Internet (dalam bentuk server web, ftp, gopher), membuat informasi (HTML editor), dan untuk mengakses informasi (web browser) banyak tersedia. Perangkat lunak ini banyak yang tersedia secara murah dan bahkan gratis.
Alasan-alasan tersebut di atas menyebabkan Internet menjadi media elektronik yang paling populer untuk menjalankan bisnis, yang kemudian dikenal dengan istilah electronic commerce (e-commerce). Dengan diperbolehkannya bisnis menggunakan Internet, maka penggunaan Internet menjadi meledak. Statistik yang berhubungan dengan kemajuan Internet dan e-commerce sangat menakjubkan.
Statistik Internet
Jumlah komputer, server, atau lebih sering disebut host yang terdapat di Internet menaik dengan angka yang fantastis. Sejak tahun 1985 sampai dengan tahun 1997 tingkat perkembangannya (growth rate) jumlah host setiap tahunnya adalah 2,176. Jadi setiap tahun jumlah host meningkat lebih dari dua kali. Pada saat naskah ini ditulis (akhir tahun 1999), growth rate sudah turun menjadi 1,5.
Data-data statistik tentang pertumbuhan jumlah host di Internet dapat diperoleh di “Matrix Maps Quarterly” yang diterbitkan oleh MIDS1. Beberapa fakta menarik tentang Internet:
• Jumlah host di Internet Desember 1969: 4
• Jumlah host di Internet Agustus 1981: 213
• Jumlah host di Internet Oktober 1989: 159.000
• Jumlah host di Internet Januari 1992: 727.000
Statistik Electronic Commerce
Hampir mirip dengan statistik jumlah host di Internet, statistik penggunaan Internet untuk keperluan e-commerce juga meningkat dengan nilai yang menakjubkan. Berikut ini adalah beberapa data yang diperoleh dari International Data Corporation (IDC):
• Perkiraan pembelian konsumer melalui Web di tahun 1999: US$ 31 billion (31 milyar dolar Amerika). Diperkirakan pada tahun 2003 angka ini menjadi US$177,7 billion.
• Perkiraan pembelian bisnis melalui web di tahun 1999: US$80,4 billion (80,4 milyar dolar Amerika). Diperkirakan pada tahun 2003 angka ini menjadi US$1.1 trillion.
• Jika diperhatikan angka-angka di atas, maka e-commerce yang sifatnya bisnis (business to business) memiliki nilai yang lebih besar dibandingkan yang bersifat business to consumer.
Di Indonesia, e-commerce merupakan sebuah tantangan yang perlu mendapat perhatian lebih serius. Ada beberapa hambatan dan juga peluang di dalam bidang ini.
Keamanan Sistem Internet
Untuk melihat keamanan sistem Internet perlu diketahui cara kerja system Internet. Antara lain, yang perlu diperhatikan adalah hubungan antara komputer di Internet, dan protokol yang digunakan. Internet merupakan
jalan raya yang dapat digunakan oleh semua orang (public). Untuk 1. http://www.mids.org mencapai server tujuan, paket informasi harus melalui beberapa system (router, gateway, hosts, atau perangkat-perangkat komunikasi lainnya) yang kemungkinan besar berada di luar kontrol dari kita. Setiap titik yang dilalui memiliki potensi untuk dibobol, disadap, dipalsukan . Kelemahan sebuat sistem terletak kepada komponen yang paling lemah. Asal usul Internet kurang memperhatikan masalah keamanan. Ini mungkin dikarenakan unsur kental dari perguruan tinggi dan lembaga penelitian yang membangun Internet. Sebagai contoh, IP versi 4 yang digunakan di Internet banyak memiliki kelemahan. Hal ini dicoba diperbaiki dengan IP Secure dan IP versi 6.
Hackers, Crackers, dan Etika
Untuk mempelajari masalah keamanan, ada baiknya juga mempelajari aspek dari pelaku yang terlibat dalam masalah keamanan ini, yaitu para hackers and crackers. Buku ini tidak bermaksud untuk membahas secara terperinci masalah non-teknis (misalnya sosial) dari hackers akan tetapi sekedar memberikan ulasan singkat.
Hash function - integrity checking
Salah satu cara untuk menguji integritas sebuah data adalah dengan memberikan “checksum” atau tanda bahwa data tersebut tidak berubah. Cara yang paling mudah dilakukan adalah dengan menjumlahkan karakterkarakter atau data-data yang ada sehingga apabila terjadi perubahan, hasil penjumlahan menjadi berbeda. Cara ini tentunya mudah dipecahkan dengan menggunakan kombinasi data yang berbeda akan tetapi menghasilkan hasil penjumlahan yang sama. Pada sistem digital biasanya ada beberapa mekanisme pengujian integritas seperti antara lain:
• parity checking
• checksum
• hash function
Fungsi Hash (hash function) merupakan fungsi yang bersifat satu arah dimana jika kita masukkan data, maka dia akan menghasilkan sebuah “checksum” atau “fingerprint” dari data tersebut. Sebuah pesan yang dilewatkan ke fungsi hash akan menghasilkan keluaran yang disebut Message Authenticated Code (MAC). Dilihat dari sisi matematik, hash function memetakan satu set data ke dalam sebuah set yang lebih kecil dan terbatas ukurannya.
Mari kita ambil sebuah contoh sederhana, yaitu fungsi matematik modulus (atau dalam pemrograman menggunakan mod). Hasil dari operasi mod adalah sisa pembagian bilangan bulat (integer). Sebagai contoh, “11 mod 7” menghasilkan nilai 4, karena 11 dibagi 7 menghasilkan nilai 1 dan sisanya adalah 4. Contoh lain “17 mod 7” menghasilkan bilangan 3, karena 17 dibagi 7 menghasilkan 2 dan sisanya adalah 3. Demikian pula “18 mod 7” akan menghasilkan 4. Dalam sehari-hari, operasi modulus kita gunakan dalam penunjukkan jam, yaitu modulus 12.
Kalau kita perhatikan contoh di atas. Hasil dari opreasi mod tidak akan lebih besar dari angka pembaginya. Dalam contoh di atas, hasil “mod 7” berkisar dari 0 ke 6. Bilangan berapapun yang akan di-mod-kan akan menghasilkan bilangan dalam rentang itu. Tentu saja angka 7 bisa kita ganti dengan angka lain, misalnya sebuah bilangan prima yang cukup besar sehingga rentang bilangan yang dihasilkan bisa lebih besar.
Hal kedua yang perlu mendapat perhatian adalah bahwa diketahui hasil operasi modulus, kita tidak tahu bilangan asalnya. Jadi kalau diberitahu bahwa hasil operasi modulus adalah 4, bilangan awalnya bisa 11, 18, 25, dan seterusnya. Ada banyak sekali. Jadi, dalam aplikasinya nanti agak sukar mengkonstruksi sebuah pesan asli jika kita hanya tahu hasil dari fungsi hashnya saja.
Tentu saja operator mod sendirian tidak dapat digunakan sebagai fungsi hash yang baik. Ada beberapa persyaratan agar fungsi hasil baru dapat digunakan secara praktis. Misalnya, rentang dari hasil fungsi hash harus cukup sehingga probabilitas dua pesan yang berbeda akan menghasilkan keluaran fungsi hash yang sama. Perlu ditekankan kata “probabilitas”, karena secara teori pasti akan ada dua buah data yang dapat menghasilkan keluaran fungsi hash yang sama1. Hal ini disebabkan rentang fungsi hash yang sangat jauh lebih kecil dibandingkan space dari inputnya. Tapi hal ini masih tidak terlalu masalah karena untuk membuat dua pesan yang samasama terbaca (intelligible) dan memiliki keluaran fungsi hash yang sama tidaklah mudah. Hal yang terjadi adalah pesan (data) yang sama itu dalam bentuk sampah (garbage).
Syarat lain dari bagusnya sebuah fungsi hash adalah perubahan satu karakter (dalam berkas teks) atau satu bit saja dalam data lainnya harus menghasilkan keluaran yang jauh berbeda, tidak hanya berbeda satu bit saja. Sifat ini disebut avalanche effect.
Ada beberapa fungsi hash yang umum digunakan saat ini, antara lain:
• MD5
• SHA (Secure Hash Algorithm)
Evaluasi Keamanan
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 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.
Salah Disain
Lubang keamanan yang ditimbulkan oleh salah disain umumnya jarang terjadi. Akan tetapi apabila terjadi sangat sulit untuk diperbaiki. Akibat disain yang salah, maka biarpun dia diimplementasikan dengan baik, kelemahan dari sistem akan tetap ada.
Contoh sistem yang lemah disainnya adalah algoritma enkripsi ROT13 atau Caesar cipher, dimana karakter digeser 13 huruf atau 3 huruf. Meskipun diimplementasikan dengan programming yang sangat teliti, siapapun yang mengetahui algoritmanya dapat memecahkan enkripsi tersebut.
Contoh lain lubang keamanan yang dapat dikategorikan kedalam kesalahan disain adalah disain urutan nomor (sequence numbering) dari paket TCP/IP. Kesalahan ini 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. Bahkan dengan mengamati cara mengurutkan nomor packet bisa dikenali sistem yang digunakan.
Mekanisme ini digunakan oleh program nmap dan queso untuk mendeteksi operating system (OS) dari sebuah sistem, yang disebut fingerprinting.
Contoh dan informasi yang lebih lengkap mengenai masalah kelemahan protokol TCP/IP dapat dilihat pada referensi .
Implementasi kurang baik
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 array atau buffer overflow yang dapat dieksploitasi (misalnya overwrite ke variable berikutnya). Lubang keamanan yang terjadi karena masalah ini sudah sangat banyak, dan yang mengherankan terus terjadi, seolah-olah para programmer tidak belajar dari pengalaman1. Contoh lain sumber lubang keamanan yang disebabkan oleh kurang baiknya implementasi adalah kealpaan memfilter karakter-karakter yang aneh-aneh yang dimasukkan sebagai input dari sebuah program (misalnya input dari CGI-script2) sehingga sang program dapat mengakses berkas atau informasi yang semestinya tidak boleh diakses.
Salah konfigurasi
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 email), /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 menggunakan program atau sistem
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” di sistem UNIX (yang menghapus berkas atau direktori beserta sub direktori di dalamnya). Akibatnya seluruh berkas di system menjadi hilang mengakibatkan Denial of Service (DoS). Apabila system yang digunakan ini digunakan bersama-sama, maka akibatnya dapat lebih fatal lagi. Untuk itu perlu berhati-hati dalam menjalan program, terutama apabila dilakukan dengan menggunakan account administrator seperti root tersebut. Kesalahan yang sama juga sering terjadi di sistem yang berbasis MS-DOS. Karena sudah mengantuk, misalnya, ingin melihat daftar berkas di sebuah direktori dengan memberikan perintah “dir *.*” ternyata salah memberikan perintah menjadi “del *.*” (yang juga menghapus seluruh file di direktori tersebut).
Penguji keamanan sistem
Dikarenakan banyaknya hal yang harus dimonitor, administrator dari system 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/Saint
• SBScan: localhost security scanner
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 135.) Contoh program coba-coba ini antara lain:
• crack: program untuk menduga atau memecahkan password dengan menggunakan sebuah atau beberapa kamus (dictionary). Program crack ini melakukan brute force cracking dengan mencoba mengenkripsikan sebuah kata yang diambil dari kamus, dan kemudian membandingkan hasil enkripsi dengan password yang ingin dipecahkan. Bila belum sesuai, maka ia akan mengambil kata selanjutnya, mengenkripsikan, dan membandingkan kembali. Hal ini dijalankan terus menerus sampai semua kata di kamus dicoba. Selain menggunakan kata langsung dari kamus, crack juga memiliki program heuristic dimana bolak balik kata (dan beberapa modifikasi lain) juga dicoba. Jadi, jangan sekali-kali menggunakan password yang terdapat dalam kamus (bahasa apapun).
• land dan latierra: 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
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
• DNS, untuk domain, UDP dan TCP, port 53
• HTTP, web server, TCP, port 80
• 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. Berkas /etc/services berisi daftar servis dan portnya, sementara berkas /etc/ inetd.conf berisi servis-servis yang di jalan di server UNIX tersebut. Jadi tidak semua servis dijalankan, hanya servis yang dibuka di /etc/inetd.conf saja yang dijalankan. Selain itu ada juga servis yang dijalankan tidak melalui inetd.conf melainkan dijalankan sebagai daemon yang berjalan di belakang layar.
Selengkapnya...
Langkah Membuat Efek Foto Robek
Bukalah gambar yang akan Anda olah dengan Photoshop.
Langkah 2
Buatlah seleksi pada gambar dengan menggunakan lasso tool. Buatlah agar seleksinya memotong sebagian dari gambar hingga ke salah satu tepinya.
Langkah 3
Simpa hasil seleksinya, dengan memilih menu Select > Save Selection
Langkah 4
Pilih channel hasil seleksi pada palet channel.
Langkah 5
Pilih menu Filter > Pixelate > Crystalize. Isikan nilai 3 (ukurannya bisa disesuaikan sendiri, namun jika slider digeser minimalnya tetap cuma 3). Klik OK. Tujuan langkah ini untuk membuat tepian seleksi menjadi tidak rata secara otomatis.
Langkah 6
Klik icon Load channel as selection.
Langkah 7
Klik channel RGB. Langkah 6 dan 7 ini tujuannya agar kita kembali ke channel seperti awal namun sudah mempunyai seleksi yang tidak rata.
Langkah 8
Tekan Ctrl + J, tujuannya untuk membuat duplikat hasil potongan seleksi.
Langkah 9
Klik layer Background (yang masih merupakan foto asli dan belum dipotong). Tekan Ctrl + J. Ini akan membuat layer Background copy.
Langkah 10
Ctrl + klik pada nama layer 1 (yang merupakan layer hasil potongan). Layer yang aktif masih tetap pada layer Background copy.
Langkah 11
Sekarang tekan tombol Delete. Ini untuk menghapus area yang berada dalam seleksi. Kemudian hilangkan seleksi, dengan cara memilih menu Select > Deselect.
Langkah 12
Klik atau pilih layer Background. Isi layer ini dengan warna putih. Caranya dengan memilih menu Edit > Fill. Pada bagian Use=White, Opacity=100%.
Langkah 13
Aktifkan atau pilih layer 1. Atur ukuran dan posisinya dengan cara memilih menu Edit > Free Transform. Begitu juga dengan layer Background copy.
Langkah 14
Untuk menambah kesan hasil robekan, bisa ditambahi dengan efek bayangan. Pada tutorial Photoshop ini saya gunakan Layer > Layer style > Drop shadow.
Catatan: Jika Anda ingin seluruh gambar bisa ditampilkan sehingga bagian yang terputar pada langkah 13 tadi tidak nampak terpotong, caranya dengan Anda lakukan pilih menu Image > Reveal All. Berikut ini gambar hasil pembuatan efek foto robek.
Selengkapnya...