Lalu lintas komunikasi data melalui Internet dengan TCP/IP-nya telah menjadi suatu kekuatan telekomunikasi yang sangat besar. Tiap jam, menit, hingga detik, data-data elektronik yang berharga lalu lalang dalam Internet tersebut. Tentunya hal tersebut menggugah inspirasi orang-orang tertentu untuk mencoba mendapatkan data-data tersebut. Hal ini menjadi ancaman serius bagi sekuriti di Internet. Untuk itu, kita harus lebih waspada terhadap usaha-usaha yang mengancam integritas data yang kita miliki. Tulisan ini mencoba memberikan alternatif sederhana kepada para pembaca yang hendak memahami masalah sekuriti di Internet. Pada bagian akhir, terdapat sebuah daftar singkat yang berisi tentang sumber-sumber dokumen maupun situs di Internet yang berkaitan dengan tulisan ini dan dapat dijadikan referensi untuk lebih mendalami masalah sekuriti di Internet.
Secara umum, masalah sekuriti di Internet dapat dipandang dari dua sisi penting. Sisi pertama adalah integritas data yang dikirimkan melalui jaringan Internet (kita sebut saja integritas pengiriman data) dan sisi berikutnya adalah tingkat sekuriti dalam jaringan komputer itu sendiri (kita sebut sekuriti jaringan internal). Mari kita bahas satu-persatu dari sisi-sisi tersebut.
Integritas Pengiriman Data
Pada saat kita mengirimkan data melalui jaringan Internet, kita selalu ingin agar data yang kita kirimkan tersebut sampai di tujuan dengan selamat dan tidak mengalami campur tangan pihak lain. Syarat ini menjadi jauh lebih utama apabila data yang kita kirimkan tergolong kategori data rahasia.
Pada saat kita kirimkan, data tersebut akan melalui berbagai jenis komputer, router, atau gateway dan melintasi berbagai macam media fisik komunikasi. Kita mempertaruhkan integritas data kepada keanekaragaman di atas. Tentunya kita tidak mungkin memeriksa tingkat sekuriti di setiap hop/titik yang dilalui oleh data tersebut karena tingkat sebaran dan kepemilikan hop yang sangat beraneka ragam. Salah satu solusi yang dapat diterapkan adalah enkripsi data. Tujuan utama dari solusi ini adalah mencegah terjadinya curi-dengar (eavesdropping) terhadap data yang kita kirimkan maupun yang kita terima. Jika seorang “eavesdropper” melakukan tindakan curi-dengar, ia akan memperoleh data-data yang terenkripsi saja sehingga tidak mencerminkan isi data yang sebenarnya.
Proses enkripsi data bisa diterapkan di lapisan (layer) tertentu dari protokol TCP/IP. Seperti yang telah diketahui, protocol TCP/IP memiliki 4 (empat) lapisan guna menunjang proses komunikasi data. Lapisan tersebut terdiri dari Application Layer, Transport Layer, Internet Layer, Network Access Layer. Kita bisa menerapkan proses enkripsi di masing-masing lapisan tersebut. Masing-masing implementasi dari lapisan-lapisan tersebut adalah sebagai berikut :
Network Access Layer
Bentuk nyata dari lapisan ini adalah bagian hardware dari sebuah komputer. Bila kita akan menerapkan proses enkripsi di lapisan ini, maka kita harus mencari atau menciptakan hardware khusus yang menangani masalah enkripsi data. Beberapa lembaga penelitian telah mulai menggali lebih dalam kemungkinan penciptaan hardware yang memiliki kemampuan enkripsi data yang lebih baik.
Internet Layer
Dalam protokol TCP/IP, Internet layer diimplementasikan dalam Internet Protocol (IP). Protokol ini berbentuk software yang mengatur tentang pengalamatan dan proses routing. Protokol ini telah diberikan nilai tambah tersendiri untuk meningkatkan sekuriti data yang dikirimkannya. Nilai tambah tersebut masing-masing adalah Authentication Header dan Encapsulating Security Payload.
Authentication Header (AH) adalah sebuah header tambahan yang bertujuan untuk memberikan jaminan atas syarat integritas data yang dikirimkan dan syarat keaslian sumber pengirim beserta data yang dikirimkan (authentication). Header ini berada di posisi paling akhir dari header-header pada lapisan IP dan sebelum header Encapsulating Security Payload (ESP). AH juga bisa menjamin non-repudiation dari sebuah data apabila penerapan AH menggunakan algoritma kriptografi tertentu. Non-repudiation adalah syarat dimana pihak penerima bisa membuktikan bahwa pihak pengirim benar-benar mengirimkan data yang diterima pihak penerima meskipun pihak pengirim tidak mengakuinya. Informasi yang terkandung di dalam AH ini dihasilkan dari perhitungan seluruh bagian dari datagram IP (mulai dari header IP, header protokol di atas IP, hingga data aslinya). Bila pihak penerima menerima datagram yang tidak otentik berdasarkan penilaian AH, datagram tersebut akan diabaikan. Mekanisme ini bisa digunakan untuk mencegah aksi-aksi IP spoofing. Aksi ini bertujuan agar penyusup bisa berpura-pura sebagai pihak pengirim dengan cara menebak datagram yang akan dikirimkan.
Encapsulating Security Payload (ESP) adalah sebuah mekanisme tambahan pada datagram IP yang bertujuan untuk meningkatkan confidentiality dan integritas data. Confidentiality adalah suatu syarat dimana penerima mengetahui arti yang sebenarnya dari data yang dikirimkan sedangkan pihak lain yang tidak diharapkan tidak akan mengerti arti yang sebenarnya dari data yang dikirimkan. Hasil implementasi ESP ini adalah sebuah datagram IP yang bagian datanya telah terenkripsi. ESP diletakkan di posisi paling akhir dari serangkaian IP header dan sebelum bagian pertama data. ESP memiliki header tersendiri yang disebut ESP Header. Untuk modus paling aman, format ESP Header adalah awal dari header tersebut tidak dienkripsi sedangkan sisa header dan seluruh bagian data dienkripsi.
Secara umum, masalah sekuriti di Internet dapat dipandang dari dua sisi penting. Sisi pertama adalah integritas data yang dikirimkan melalui jaringan Internet (kita sebut saja integritas pengiriman data) dan sisi berikutnya adalah tingkat sekuriti dalam jaringan komputer itu sendiri (kita sebut sekuriti jaringan internal). Mari kita bahas satu-persatu dari sisi-sisi tersebut.
Integritas Pengiriman Data
Pada saat kita mengirimkan data melalui jaringan Internet, kita selalu ingin agar data yang kita kirimkan tersebut sampai di tujuan dengan selamat dan tidak mengalami campur tangan pihak lain. Syarat ini menjadi jauh lebih utama apabila data yang kita kirimkan tergolong kategori data rahasia.
Pada saat kita kirimkan, data tersebut akan melalui berbagai jenis komputer, router, atau gateway dan melintasi berbagai macam media fisik komunikasi. Kita mempertaruhkan integritas data kepada keanekaragaman di atas. Tentunya kita tidak mungkin memeriksa tingkat sekuriti di setiap hop/titik yang dilalui oleh data tersebut karena tingkat sebaran dan kepemilikan hop yang sangat beraneka ragam. Salah satu solusi yang dapat diterapkan adalah enkripsi data. Tujuan utama dari solusi ini adalah mencegah terjadinya curi-dengar (eavesdropping) terhadap data yang kita kirimkan maupun yang kita terima. Jika seorang “eavesdropper” melakukan tindakan curi-dengar, ia akan memperoleh data-data yang terenkripsi saja sehingga tidak mencerminkan isi data yang sebenarnya.
Proses enkripsi data bisa diterapkan di lapisan (layer) tertentu dari protokol TCP/IP. Seperti yang telah diketahui, protocol TCP/IP memiliki 4 (empat) lapisan guna menunjang proses komunikasi data. Lapisan tersebut terdiri dari Application Layer, Transport Layer, Internet Layer, Network Access Layer. Kita bisa menerapkan proses enkripsi di masing-masing lapisan tersebut. Masing-masing implementasi dari lapisan-lapisan tersebut adalah sebagai berikut :
Network Access Layer
Bentuk nyata dari lapisan ini adalah bagian hardware dari sebuah komputer. Bila kita akan menerapkan proses enkripsi di lapisan ini, maka kita harus mencari atau menciptakan hardware khusus yang menangani masalah enkripsi data. Beberapa lembaga penelitian telah mulai menggali lebih dalam kemungkinan penciptaan hardware yang memiliki kemampuan enkripsi data yang lebih baik.
Internet Layer
Dalam protokol TCP/IP, Internet layer diimplementasikan dalam Internet Protocol (IP). Protokol ini berbentuk software yang mengatur tentang pengalamatan dan proses routing. Protokol ini telah diberikan nilai tambah tersendiri untuk meningkatkan sekuriti data yang dikirimkannya. Nilai tambah tersebut masing-masing adalah Authentication Header dan Encapsulating Security Payload.
Authentication Header (AH) adalah sebuah header tambahan yang bertujuan untuk memberikan jaminan atas syarat integritas data yang dikirimkan dan syarat keaslian sumber pengirim beserta data yang dikirimkan (authentication). Header ini berada di posisi paling akhir dari header-header pada lapisan IP dan sebelum header Encapsulating Security Payload (ESP). AH juga bisa menjamin non-repudiation dari sebuah data apabila penerapan AH menggunakan algoritma kriptografi tertentu. Non-repudiation adalah syarat dimana pihak penerima bisa membuktikan bahwa pihak pengirim benar-benar mengirimkan data yang diterima pihak penerima meskipun pihak pengirim tidak mengakuinya. Informasi yang terkandung di dalam AH ini dihasilkan dari perhitungan seluruh bagian dari datagram IP (mulai dari header IP, header protokol di atas IP, hingga data aslinya). Bila pihak penerima menerima datagram yang tidak otentik berdasarkan penilaian AH, datagram tersebut akan diabaikan. Mekanisme ini bisa digunakan untuk mencegah aksi-aksi IP spoofing. Aksi ini bertujuan agar penyusup bisa berpura-pura sebagai pihak pengirim dengan cara menebak datagram yang akan dikirimkan.
Encapsulating Security Payload (ESP) adalah sebuah mekanisme tambahan pada datagram IP yang bertujuan untuk meningkatkan confidentiality dan integritas data. Confidentiality adalah suatu syarat dimana penerima mengetahui arti yang sebenarnya dari data yang dikirimkan sedangkan pihak lain yang tidak diharapkan tidak akan mengerti arti yang sebenarnya dari data yang dikirimkan. Hasil implementasi ESP ini adalah sebuah datagram IP yang bagian datanya telah terenkripsi. ESP diletakkan di posisi paling akhir dari serangkaian IP header dan sebelum bagian pertama data. ESP memiliki header tersendiri yang disebut ESP Header. Untuk modus paling aman, format ESP Header adalah awal dari header tersebut tidak dienkripsi sedangkan sisa header dan seluruh bagian data dienkripsi.
|<---- Tidak dienkripsi ---->|<----- Dienkripsi ------>|
+------------+-------------------+------------+-----------------------+
| IP Header | IP Header lainnya | ESP Header | data yang dienkripsi |
+------------+-------------------+------------+-----------------------+
Bagian header yang tidak dienkripsi memberikan keterangan tentang cara mendekripsi dan memroses data yang dienkripsi tersebut. ESP dapat diterapkan pada setiap jenis transport layer (TCP, UDP) yang digunakan. Mekanisme ini lebih banyak diterapkan untuk modus Tunnel. Modus Tunnel adalah sebuah modus pada pengiriman data yang lebih bersifat privat dan khusus melalui jaringan Internet. Intranet adalah salah satu pengguna modus Tunnel tersebut terutama Intranet yang digunakan untuk menghubungkan cabang-cabang yang tersebar di berbagai daerah.
Transport Layer
Dalam konsep TCP/IP, secara umum transport layer dibagi menjadi dua yaitu Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP). Pada lapisan ini, belum begitu banyak mekanisme-mekanisme yang dikembangkan untuk menambahkan aspek sekuriti. TCP sendiri sudah memiliki rutin-rutin yang cukup kompleks dalam mengolah data yang ia terima.
Application Layer
Lapisan ini adalah lapisan yang langsung berhubungan dengan user. Apa yang dilihat oleh user pada layar monitor komputer adalah tampilan dari Application Layer tersebut.
Teknik-teknik yang digunakan untuk mengenkripsi data pada lapisan aplikasi ini telah banyak berkembang dan mencapai hasil yang cukup memuaskan. Berbagai macam jenis algoritma enkripsi telah dikembangkan dan beberapa di antaranya telah menjadi standar internasional. Beberapa algoritma yang cukup terkenal adalah Data Encryption Standard (DES), Triple-DES, RC2/RC4, International Data Encryption Algorithm (IDEA) dan Skipjack. Algoritma DES dan IDEA telah banyak diterapkan di dunia sedangkan algoritma lainnya telah dipatenkan. Dari algoritma-algoritma di atas, dibuatlah berbagai macam software pengenkripsi. Salah satu yang terkenal dan bersifat shareware adalah Pretty Good Privacy (PGP).
Penerapan software enkripsi pada Application layer bisa bermacam-macam. Salah satunya, kita bisa mengenkripsi isi dari eletronic mail yang kita buat sebelum kita kirimkan. Selain itu, kita juga bisa mengenkripsi file-file yang akan kita berikan kepada orang lain melalui FTP. Pesan-pesan elektronik pun dapat kita enkripsi terlebih dahulu sebelum kita kirimkan. Setelah sampai di tujuan, penerima dapat mendekripsi pada layer yang sama apa yang ia terima sehingga mencerminkan arti yang sebenarnya.
Khusus dalam HyperText Transfer Protocol (HTTP), telah dikembangkan berbagai macam mekanisme pengamanan data yang ditransfer melalui protokol ini. Protokol HTTP menjadi tulang punggung dalam World Wide Web (WWW) dan kita lebih sering melihatnya dalam bentuk homepage di situs-situs Internet. Beberapa perusahaan di dunia telah memanfaatkan WWW sebagai salah satu saran penghubung kepada konsumen dan pelanggan mereka. Bahkan WWW telah pula digunakan sebagai penghubung antar bagian perusahaan mereka sendiri dalam teknologi Intranet. Untuk menjamin integritas data yang dikirimkan, para pakar kriptografi telah mengembangkan beberapa mekanisme enkripsi untuk protokol tersebut. Dua dari berbagai mekanisme yang ada di Internet adalah SecureHTTP (SHTTP) dan Secure Socket Layer (SSL). SSL dikembangkan oleh Netscape dan telah diimplementasikan di beberapa situs di Internet. Dengan adanya mekanisme-mekanisme ini, pengiriman nomor rekening, kata kunci rahasia, dan data-data rahasia lainnya bisa dilakukan di Internet dengan lebih aman.
Sekuriti Jaringan Internal
Sisi selanjutnya adalah keamanan dari jaringan komputer internal. Pada saat kita memutuskan untuk membangun sebuah jaringan komputer yang terhubung ke Internet, saat itu pula kita telah mengambil resiko untuk berhadapan dengan ancaman-ancaman penyusupan dan pengrusakan data dari Internet. Oleh karena itu, kita harus mempersiapkan jaringan komputer kita dengan sebaik mungkin untuk menghadapi serangan-serangan dan ancaman-ancaman tersebut.
Masalah sekuriti jaringan internal ini meliputi beberapa aspek. Untuk mudahnya, masalah tersebut dapat dipecah menjadi dua bagian yaitu bagian software-hardware dan bagian user.
Bagian software-hardware
Dalam membangun sebuah jaringan komputer, kita memiliki kebebasan dalam merancang, baik dari struktur jaringan maupun konfigurasi hardware dan jenis program yang akan digunakan. Struktur jaringan yang akan direalisasikan dapat dirancang sedemikian rupa sehingga memiliki tingkat sekuriti yang tinggi. Sebagai contoh, kita bisa membuat sebuah jaringan perimeter atau lebih dikenal dengan sebutan DeMilitary Zone (DMZ) yang memberikan layanan dan akses seperlunya saja kepada Internet. Jaringan perimeter ini merupakan jaringan yang langsung berhadapan dengan Internet setelah melalui sebuah router atau gateway.
Dari segi hardware, kita dapat menentukan spesifikasi hardware yang tepat sesuai kebutuhan dan tugas yang akan diberikan kepada hardware tersebut. Sebagai contoh, untuk menjadi sebuah mail server yang menangani 100 buah mailing list atau lebih, tentunya kebutuhan akan jumlah memory/RAM dan swap memory yang disediakan menjadi melonjak. Selain itu, bila terdapat usaha-usaha pengrusakan pada mail server tersebut dengan berbagai cara seperti mail bombing, setidak-tidaknya mail server kita masih bisa bertahan.
Pada bagian software, kita bisa menggunakan sistem operasi dan software-software yang telah dikenal kehandalannya. Hal ini bertujuan supaya sistem operasi maupun software yang kita gunakan mampu menahan gempuran atau serangan dari Internet dan tidak sampai merusak hardware. Selain itu, sebaiknya kita selalu menggunakan software-software keluaran terbaru. Untuk itu, kita harus lebih sering memantau perkembangan software yang kita gunakan tersebut.
Setelah kita memilih sistem operasi dan software yang akan digunakan, kita harus mengkonfigurasi sistem operasi dan software tersebut agar tidak memiliki hole-hole yang bisa dieksplorasi oleh para penyusup dari Internet. Apabila kita tidak waspada, hole-hole yang sudah umum pun bisa muncul pada sistem jaringan komputer kita. Berikut ini terdapat beberapa titik penting pada sistem operasi berbasis Unix yang perlu mendapat perhatian.
Perintah-perintah berawalan huruf “r”
Perintah-perintah berawalan huruf “r” (rlogin, rsh, rwho, dlsb) perlu ditinjau ulang dari segi kebutuhan. Apabila kita tidak memerlukan fungsi-fungsi perintah di atas maka kita matikan perintah-perintah tersebut. Jika kita memerlukannya, kita harus lebih hati-hati dalam mengkonfigurasi file-file yang berhubungan dengan setting perintah-perintah tersebut. Untuk perintah-perintah tersebut, file konfigurasi yang penting adalah /etc/hosts.equiv.
File-file dengan suid
File dengan konfigurasi suid adalah file (umumnya berupa program) yang apabila dieksekusi akan memiliki hak setingkat dengan pemilik (owner) dari file tersebut. Sebagai contoh, perintah “chpass” termasuk jenis file suid. Perintah “chpass” ini berguna untuk merubah data-data tentang user seperti: nama lengkap, alamat kantor, alamat rumah, dlsb. Pada dasarnya, perintah “chpass” ini melakukan perubahan pada file yang berisi user password dari komputer tersebut. Oleh karena itu, perintah tersebut memerlukan konfigurasi suid root karena file yang berisi user password hanya bisa diubah oleh root sendiri atau memiliki hak akses setara dengan root. File-file dengan suid root harus dibatasi jumlahnya sesuai kebutuhan. Bila tidak, para penyusup bisa memanfaatkan kelemahan ini untuk memperoleh hak akses setara root pula. Seringkali para penyusup menyiapkan backdoor melalui file-file suid tersebut sehingga saat penyusup ingin kembali masuk ke dalam sistem, ia bisa menggunakan backdoor tersebut. Salah satu langkah penanggulangannya adalah dengan membuat daftar file suid di saat setelah konfigurasi sistem operasi selesai dan melakukan pemeriksaan secara rutin yang kemudian dibandingkan dengan daftar file pertama.
File & directory permission
Pada saat mengkonfigurasi sistem operasi, file permission dan directory permission sebaiknya ikut dikonfigurasi lebih lanjut selain konfigurasi awal yang telah disediakan dari pencipta sistem operasi tersebut. Batasi user hanya untuk bisa memiliki akses penuh pada home directory user tersebut.
Network File System (NFS)
NFS memungkinkan kita membuat file system yang berada di komputer lain seolah-olah berada di komputer kita. Tetapi, apabila kita kurang hati-hati dalam mengkonfigurasi-nya, hal ini menjadi makanan empuk bagi para pengrusak. Kita harus memilih direktori mana saja yang perlu dibuat menjadi terbuka terhadap komputer lain. Hak akses juga harus menjadi perhatian sehingga kita dapat menempatkan file-file pada porsi yang sebenarnya. Perbaikan-perbaikan (patches) untuk NFS juga telah tersedia di Internet karena NFS memiliki beberapa titik kelemahan.
Majordomo
Majordomo adalah salah satu software yang menangani mailing list dan sudah tersebar sangat luas. Gunakan selalu majordomo versi di atas 1.91 karena versi di bawah 1.91 memiliki bugs yang cukup berbahaya.
Fingerd
Utilitas ini sudah cukup terkenal sebagai salah satu alat utama dalam Internet worm yang sempat melumpuhkan jaringan Internet di tahun 1988. Hingga saat ini, utilitas finger masih sering digunakan sebagai langkah awal memantau sistem yang akan disusupi. Meskipun perbaikan-perbaikan terhadap bug yang ada di fingerd telah dilakukan, sebaiknya layanan ini ditutup untuk akses dari luar sehingga perintah finger hanya bisa dilakukan sebatas sistem atau komputer itu saja.
File /etc/inetd.conf
File /etc/inetd.conf ini berisi konfigurasi service-service yang dijalankan oleh inetd. Sebaiknya file ini diatur pada mode 600 dan dimiliki oleh root. Selain itu, sebaiknya kita menutup layanan-layanan networking yang tidak kita perlukan. Konfigurasi awal dari instalasi sistem operasi seringkali membuka layanan-layanan networking yang tidak kita butuhkan.
Anonymous FTP
Anonymous FTP disediakan bagi user umum untuk mendapatkan file-file yang kita publikasikan. Hal yang perlu diperhatikan dari sudut pandang sekuriti adalah konfigurasi hak akses yang diberikan pada direktori-direktori yang kita publikasikan. Selain itu, selalu gunakan versi terbaru untuk FTP daemon yang kita gunakan. Versi FTP daemon yang sudah lama memiliki perintah-perintah jarak jauh untuk meletakkan file ataupun membaca file yang berada di direktori selain direktori FTP tersebut.
SMTP Server
SMTP server adalah server yang bertugas mengatur penghantaran electronic mail dari pengirim ke penerima. SMTP server yang sering digunakan adalah sendmail. Sendmail ini telah terkenal kehandalannya tetapi juga memiliki bugs yang bisa digunakan untuk mendapatkan hak akses setara root. Untuk meminimalkan resiko ini, selalu gunakan versi terbaru dari sendmail. Kita juga bisa menaikkan tingkat proses logging hingga tingkat/level 9. Pada tingkat tersebut, sendmail logger akan mendeteksi usaha-usaha eksploitasi terhadap kelemahan sendmail.
HTTP Server / Web Server
Baru-baru ini, Web server merupakan salah satu titik eksploitasi yang paling terkenal. Dengan mengeksploitasi bugs yang ada di web server ini, para penyusup bisa mendapatkan hak akses setara root. Hal ini mengakibatkan data-data homepage yang ada di web server itu diacak-acak dan diganti sesuka hati penyusupnya. Untuk mencegah terjadinya hal ini, beberapa langkah pencegahan perlu diambil. Beberapa di antaranya yang cukup dominan:
Transport Layer
Dalam konsep TCP/IP, secara umum transport layer dibagi menjadi dua yaitu Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP). Pada lapisan ini, belum begitu banyak mekanisme-mekanisme yang dikembangkan untuk menambahkan aspek sekuriti. TCP sendiri sudah memiliki rutin-rutin yang cukup kompleks dalam mengolah data yang ia terima.
Application Layer
Lapisan ini adalah lapisan yang langsung berhubungan dengan user. Apa yang dilihat oleh user pada layar monitor komputer adalah tampilan dari Application Layer tersebut.
Teknik-teknik yang digunakan untuk mengenkripsi data pada lapisan aplikasi ini telah banyak berkembang dan mencapai hasil yang cukup memuaskan. Berbagai macam jenis algoritma enkripsi telah dikembangkan dan beberapa di antaranya telah menjadi standar internasional. Beberapa algoritma yang cukup terkenal adalah Data Encryption Standard (DES), Triple-DES, RC2/RC4, International Data Encryption Algorithm (IDEA) dan Skipjack. Algoritma DES dan IDEA telah banyak diterapkan di dunia sedangkan algoritma lainnya telah dipatenkan. Dari algoritma-algoritma di atas, dibuatlah berbagai macam software pengenkripsi. Salah satu yang terkenal dan bersifat shareware adalah Pretty Good Privacy (PGP).
Penerapan software enkripsi pada Application layer bisa bermacam-macam. Salah satunya, kita bisa mengenkripsi isi dari eletronic mail yang kita buat sebelum kita kirimkan. Selain itu, kita juga bisa mengenkripsi file-file yang akan kita berikan kepada orang lain melalui FTP. Pesan-pesan elektronik pun dapat kita enkripsi terlebih dahulu sebelum kita kirimkan. Setelah sampai di tujuan, penerima dapat mendekripsi pada layer yang sama apa yang ia terima sehingga mencerminkan arti yang sebenarnya.
Khusus dalam HyperText Transfer Protocol (HTTP), telah dikembangkan berbagai macam mekanisme pengamanan data yang ditransfer melalui protokol ini. Protokol HTTP menjadi tulang punggung dalam World Wide Web (WWW) dan kita lebih sering melihatnya dalam bentuk homepage di situs-situs Internet. Beberapa perusahaan di dunia telah memanfaatkan WWW sebagai salah satu saran penghubung kepada konsumen dan pelanggan mereka. Bahkan WWW telah pula digunakan sebagai penghubung antar bagian perusahaan mereka sendiri dalam teknologi Intranet. Untuk menjamin integritas data yang dikirimkan, para pakar kriptografi telah mengembangkan beberapa mekanisme enkripsi untuk protokol tersebut. Dua dari berbagai mekanisme yang ada di Internet adalah SecureHTTP (SHTTP) dan Secure Socket Layer (SSL). SSL dikembangkan oleh Netscape dan telah diimplementasikan di beberapa situs di Internet. Dengan adanya mekanisme-mekanisme ini, pengiriman nomor rekening, kata kunci rahasia, dan data-data rahasia lainnya bisa dilakukan di Internet dengan lebih aman.
Sekuriti Jaringan Internal
Sisi selanjutnya adalah keamanan dari jaringan komputer internal. Pada saat kita memutuskan untuk membangun sebuah jaringan komputer yang terhubung ke Internet, saat itu pula kita telah mengambil resiko untuk berhadapan dengan ancaman-ancaman penyusupan dan pengrusakan data dari Internet. Oleh karena itu, kita harus mempersiapkan jaringan komputer kita dengan sebaik mungkin untuk menghadapi serangan-serangan dan ancaman-ancaman tersebut.
Masalah sekuriti jaringan internal ini meliputi beberapa aspek. Untuk mudahnya, masalah tersebut dapat dipecah menjadi dua bagian yaitu bagian software-hardware dan bagian user.
Bagian software-hardware
Dalam membangun sebuah jaringan komputer, kita memiliki kebebasan dalam merancang, baik dari struktur jaringan maupun konfigurasi hardware dan jenis program yang akan digunakan. Struktur jaringan yang akan direalisasikan dapat dirancang sedemikian rupa sehingga memiliki tingkat sekuriti yang tinggi. Sebagai contoh, kita bisa membuat sebuah jaringan perimeter atau lebih dikenal dengan sebutan DeMilitary Zone (DMZ) yang memberikan layanan dan akses seperlunya saja kepada Internet. Jaringan perimeter ini merupakan jaringan yang langsung berhadapan dengan Internet setelah melalui sebuah router atau gateway.
Dari segi hardware, kita dapat menentukan spesifikasi hardware yang tepat sesuai kebutuhan dan tugas yang akan diberikan kepada hardware tersebut. Sebagai contoh, untuk menjadi sebuah mail server yang menangani 100 buah mailing list atau lebih, tentunya kebutuhan akan jumlah memory/RAM dan swap memory yang disediakan menjadi melonjak. Selain itu, bila terdapat usaha-usaha pengrusakan pada mail server tersebut dengan berbagai cara seperti mail bombing, setidak-tidaknya mail server kita masih bisa bertahan.
Pada bagian software, kita bisa menggunakan sistem operasi dan software-software yang telah dikenal kehandalannya. Hal ini bertujuan supaya sistem operasi maupun software yang kita gunakan mampu menahan gempuran atau serangan dari Internet dan tidak sampai merusak hardware. Selain itu, sebaiknya kita selalu menggunakan software-software keluaran terbaru. Untuk itu, kita harus lebih sering memantau perkembangan software yang kita gunakan tersebut.
Setelah kita memilih sistem operasi dan software yang akan digunakan, kita harus mengkonfigurasi sistem operasi dan software tersebut agar tidak memiliki hole-hole yang bisa dieksplorasi oleh para penyusup dari Internet. Apabila kita tidak waspada, hole-hole yang sudah umum pun bisa muncul pada sistem jaringan komputer kita. Berikut ini terdapat beberapa titik penting pada sistem operasi berbasis Unix yang perlu mendapat perhatian.
Perintah-perintah berawalan huruf “r”
Perintah-perintah berawalan huruf “r” (rlogin, rsh, rwho, dlsb) perlu ditinjau ulang dari segi kebutuhan. Apabila kita tidak memerlukan fungsi-fungsi perintah di atas maka kita matikan perintah-perintah tersebut. Jika kita memerlukannya, kita harus lebih hati-hati dalam mengkonfigurasi file-file yang berhubungan dengan setting perintah-perintah tersebut. Untuk perintah-perintah tersebut, file konfigurasi yang penting adalah /etc/hosts.equiv.
File-file dengan suid
File dengan konfigurasi suid adalah file (umumnya berupa program) yang apabila dieksekusi akan memiliki hak setingkat dengan pemilik (owner) dari file tersebut. Sebagai contoh, perintah “chpass” termasuk jenis file suid. Perintah “chpass” ini berguna untuk merubah data-data tentang user seperti: nama lengkap, alamat kantor, alamat rumah, dlsb. Pada dasarnya, perintah “chpass” ini melakukan perubahan pada file yang berisi user password dari komputer tersebut. Oleh karena itu, perintah tersebut memerlukan konfigurasi suid root karena file yang berisi user password hanya bisa diubah oleh root sendiri atau memiliki hak akses setara dengan root. File-file dengan suid root harus dibatasi jumlahnya sesuai kebutuhan. Bila tidak, para penyusup bisa memanfaatkan kelemahan ini untuk memperoleh hak akses setara root pula. Seringkali para penyusup menyiapkan backdoor melalui file-file suid tersebut sehingga saat penyusup ingin kembali masuk ke dalam sistem, ia bisa menggunakan backdoor tersebut. Salah satu langkah penanggulangannya adalah dengan membuat daftar file suid di saat setelah konfigurasi sistem operasi selesai dan melakukan pemeriksaan secara rutin yang kemudian dibandingkan dengan daftar file pertama.
File & directory permission
Pada saat mengkonfigurasi sistem operasi, file permission dan directory permission sebaiknya ikut dikonfigurasi lebih lanjut selain konfigurasi awal yang telah disediakan dari pencipta sistem operasi tersebut. Batasi user hanya untuk bisa memiliki akses penuh pada home directory user tersebut.
Network File System (NFS)
NFS memungkinkan kita membuat file system yang berada di komputer lain seolah-olah berada di komputer kita. Tetapi, apabila kita kurang hati-hati dalam mengkonfigurasi-nya, hal ini menjadi makanan empuk bagi para pengrusak. Kita harus memilih direktori mana saja yang perlu dibuat menjadi terbuka terhadap komputer lain. Hak akses juga harus menjadi perhatian sehingga kita dapat menempatkan file-file pada porsi yang sebenarnya. Perbaikan-perbaikan (patches) untuk NFS juga telah tersedia di Internet karena NFS memiliki beberapa titik kelemahan.
Majordomo
Majordomo adalah salah satu software yang menangani mailing list dan sudah tersebar sangat luas. Gunakan selalu majordomo versi di atas 1.91 karena versi di bawah 1.91 memiliki bugs yang cukup berbahaya.
Fingerd
Utilitas ini sudah cukup terkenal sebagai salah satu alat utama dalam Internet worm yang sempat melumpuhkan jaringan Internet di tahun 1988. Hingga saat ini, utilitas finger masih sering digunakan sebagai langkah awal memantau sistem yang akan disusupi. Meskipun perbaikan-perbaikan terhadap bug yang ada di fingerd telah dilakukan, sebaiknya layanan ini ditutup untuk akses dari luar sehingga perintah finger hanya bisa dilakukan sebatas sistem atau komputer itu saja.
File /etc/inetd.conf
File /etc/inetd.conf ini berisi konfigurasi service-service yang dijalankan oleh inetd. Sebaiknya file ini diatur pada mode 600 dan dimiliki oleh root. Selain itu, sebaiknya kita menutup layanan-layanan networking yang tidak kita perlukan. Konfigurasi awal dari instalasi sistem operasi seringkali membuka layanan-layanan networking yang tidak kita butuhkan.
Anonymous FTP
Anonymous FTP disediakan bagi user umum untuk mendapatkan file-file yang kita publikasikan. Hal yang perlu diperhatikan dari sudut pandang sekuriti adalah konfigurasi hak akses yang diberikan pada direktori-direktori yang kita publikasikan. Selain itu, selalu gunakan versi terbaru untuk FTP daemon yang kita gunakan. Versi FTP daemon yang sudah lama memiliki perintah-perintah jarak jauh untuk meletakkan file ataupun membaca file yang berada di direktori selain direktori FTP tersebut.
SMTP Server
SMTP server adalah server yang bertugas mengatur penghantaran electronic mail dari pengirim ke penerima. SMTP server yang sering digunakan adalah sendmail. Sendmail ini telah terkenal kehandalannya tetapi juga memiliki bugs yang bisa digunakan untuk mendapatkan hak akses setara root. Untuk meminimalkan resiko ini, selalu gunakan versi terbaru dari sendmail. Kita juga bisa menaikkan tingkat proses logging hingga tingkat/level 9. Pada tingkat tersebut, sendmail logger akan mendeteksi usaha-usaha eksploitasi terhadap kelemahan sendmail.
HTTP Server / Web Server
Baru-baru ini, Web server merupakan salah satu titik eksploitasi yang paling terkenal. Dengan mengeksploitasi bugs yang ada di web server ini, para penyusup bisa mendapatkan hak akses setara root. Hal ini mengakibatkan data-data homepage yang ada di web server itu diacak-acak dan diganti sesuka hati penyusupnya. Untuk mencegah terjadinya hal ini, beberapa langkah pencegahan perlu diambil. Beberapa di antaranya yang cukup dominan:
- Gunakan selalu HTTP daemon yang terbaru dan telah diketahui hingga saat ini belum memiliki bugs. Contoh: NCSA httpd versi 1.5.
- Hilangkan script-script yang tidak perlu yang memerlukan akses ke file system. Umumnya, script-script tersebut disebut dengan Common Gateway Interface (CGI) script.
- Lakukan konfigurasi sebaik-baiknya terhadap CGI script yang kita perlukan sebagai penghubung antara user dengan server.
- Gunakan tapis (filter) untuk mendeteksi masukan-masukan yang diberikan oleh user terutama terhadap karakter-karakter yang berpotensi untuk merusak seperti: \n \r ( . , / ; ~ ! ) > | ^ & $ ` < %.
Selain dari itu, kita bisa menggunakan software firewall untuk membatasi akses dan melakukan pemantauan terhadap aliran transfer data. Software firewall ada yang bersifat shareware dan komersial. Cara instalasi, penggunaan, dan konfigurasinya tidak dibahas pada tulisan ini karena topik tersebut cukup luas
Dalam suatu sistem yang terproteksi cukup ketat, seringkali kita tidak bisa mengakses komputer kita dari jarak jauh. Untuk memenuhi kebutuhan tersebut tanpa harus mengorbankan tingkat sekuriti sistem, kita bisa menempuh dua cara. Cara pertama adalah merubah program yang bertugas menerima akses langsung dari luar sehingga kita bisa memonitor, mencatat maupun membatasi akses yang diberikan. Contoh program yang menerima akses langsung dari Internet adalah telnetd. Cara kedua adalah dengan menyiapkan hardware khusus yang bertindak sebagai perantara antara user dengan komputer. Fungsi dari hardware khusus ini tidak berbeda jauh dengan software yang diubah pada cara pertama.
Bagian User
Jika sisi software telah dikonfigurasi dengan baik, sisi user yang perlu mendapat perhatian. Seringkali, user pada suatu sistem memilih kata password yang mudah ditebak. Penulis pernah mencoba beberapa password account yang isinya mudah ditebak, antara lain: “Komputer”, “Memori”, kombinasi nama user, nama perusahaan penghasil meja komputer, merek monitor/keyboard/casing komputer, dlsb. Untuk itu, sebagai system administrator, kita perlu memberikan arahan dan anjuran kepada user untuk tidak menggunakan kata-kata yang mudah ditebak sebagai password. Selain itu, jangan menuliskan password pada kertas atau benda apa pun. Walaupun dalam film “War Games” (sebuah film yang cukup terkenal di kalangan hacker di Amerika) telah ditunjukkan akibat penulisan password tetapi masih saja terdapat user yang menuliskan password-nya. Tentunya sudah cukup banyak tips untuk membuat password yang baik. Jika dipandang perlu, konfigurasi password user bisa diatur agar user diharuskan memperbaharui password-nya secara periodik. Cara lain yang bisa dilakukan adalah menjalankan program yang berfungsi memecahkan kode password pada file password yang Anda miliki. Program semacam ini cukup banyak di Internet dan tersedia untuk berbagai platform sistem operasi. Pada sistem operasi Unix, program yang cukup terkenal adalah Crack. Dengan menggunakan program ini, kita dapat mengetahui apakah user telah memilih password dengan baik.
Langkah lain yang bisa kita lakukan adalah mencari dan mendapatkan software-software khusus yang berhubungan dengan masalah sekuriti. Contohnya antara lain: COPS (software penganalisa kelemahan dalam password dan konfigurasi file), SATAN (software penganalisa jarak jauh terhadap usaha-usaha penyusupan dari luar), TCP-Wrapper (software yang bertugas mencatat beberapa aktivitas transfer data), Tripwire (mirip dengan TCP-Wrapper), dlsb. Dengan adanya software ini, kita bisa mengetahui hingga seberapa tinggi tingkat sekuriti sistem jaringan komputer kita.
Penanggulangan
Jika terjadi usaha-usaha penyusupan ke dalam sistem jaringan komputer, kita harus secepat mungkin menutup akses dari mana usaha-usaha penyusupan tersebut. Beberapa ciri-ciri dasar dari usaha-usaha penyusupan adalah usaha login yang gagal terus-menerus, sumber daya komputer yang terserap habis akibat satu atau lebih layanan networking, munculnya file-file aneh yang asal-usulnya tidak diketahui, jebolnya password dari beberapa user, dlsb. Bila penyusup telah berhasil memasuki sistem komputer kita dan bisa memperoleh hak akses setara root, bisa dipastikan sistem komputer kita sudah tidak aman. Mengapa? Karena pada umumnya penyusup telah membuat backdoor yang cukup aman dan tersembunyi kecuali kita mengetahui setiap titik dari backdoor yang dibuat oleh penyusup tersebut dan kita bisa memusnahkannya. Bila kita tidak bisa menemukan backdoor tersebut, jalan teraman adalah instalasi ulang sistem operasi yang ada di komputer tersebut.
Sebagai system administrator yang baik, kita seharusnya selalu membaca log file yang banyak dihasilkan oleh program-program yang dieksekusi di komputer kita. Dengan membaca log file ini, kejadian-kejadian yang tidak diinginkan dapat dideteksi lebih dini.
Dalam suatu sistem yang terproteksi cukup ketat, seringkali kita tidak bisa mengakses komputer kita dari jarak jauh. Untuk memenuhi kebutuhan tersebut tanpa harus mengorbankan tingkat sekuriti sistem, kita bisa menempuh dua cara. Cara pertama adalah merubah program yang bertugas menerima akses langsung dari luar sehingga kita bisa memonitor, mencatat maupun membatasi akses yang diberikan. Contoh program yang menerima akses langsung dari Internet adalah telnetd. Cara kedua adalah dengan menyiapkan hardware khusus yang bertindak sebagai perantara antara user dengan komputer. Fungsi dari hardware khusus ini tidak berbeda jauh dengan software yang diubah pada cara pertama.
Bagian User
Jika sisi software telah dikonfigurasi dengan baik, sisi user yang perlu mendapat perhatian. Seringkali, user pada suatu sistem memilih kata password yang mudah ditebak. Penulis pernah mencoba beberapa password account yang isinya mudah ditebak, antara lain: “Komputer”, “Memori”, kombinasi nama user, nama perusahaan penghasil meja komputer, merek monitor/keyboard/casing komputer, dlsb. Untuk itu, sebagai system administrator, kita perlu memberikan arahan dan anjuran kepada user untuk tidak menggunakan kata-kata yang mudah ditebak sebagai password. Selain itu, jangan menuliskan password pada kertas atau benda apa pun. Walaupun dalam film “War Games” (sebuah film yang cukup terkenal di kalangan hacker di Amerika) telah ditunjukkan akibat penulisan password tetapi masih saja terdapat user yang menuliskan password-nya. Tentunya sudah cukup banyak tips untuk membuat password yang baik. Jika dipandang perlu, konfigurasi password user bisa diatur agar user diharuskan memperbaharui password-nya secara periodik. Cara lain yang bisa dilakukan adalah menjalankan program yang berfungsi memecahkan kode password pada file password yang Anda miliki. Program semacam ini cukup banyak di Internet dan tersedia untuk berbagai platform sistem operasi. Pada sistem operasi Unix, program yang cukup terkenal adalah Crack. Dengan menggunakan program ini, kita dapat mengetahui apakah user telah memilih password dengan baik.
Langkah lain yang bisa kita lakukan adalah mencari dan mendapatkan software-software khusus yang berhubungan dengan masalah sekuriti. Contohnya antara lain: COPS (software penganalisa kelemahan dalam password dan konfigurasi file), SATAN (software penganalisa jarak jauh terhadap usaha-usaha penyusupan dari luar), TCP-Wrapper (software yang bertugas mencatat beberapa aktivitas transfer data), Tripwire (mirip dengan TCP-Wrapper), dlsb. Dengan adanya software ini, kita bisa mengetahui hingga seberapa tinggi tingkat sekuriti sistem jaringan komputer kita.
Penanggulangan
Jika terjadi usaha-usaha penyusupan ke dalam sistem jaringan komputer, kita harus secepat mungkin menutup akses dari mana usaha-usaha penyusupan tersebut. Beberapa ciri-ciri dasar dari usaha-usaha penyusupan adalah usaha login yang gagal terus-menerus, sumber daya komputer yang terserap habis akibat satu atau lebih layanan networking, munculnya file-file aneh yang asal-usulnya tidak diketahui, jebolnya password dari beberapa user, dlsb. Bila penyusup telah berhasil memasuki sistem komputer kita dan bisa memperoleh hak akses setara root, bisa dipastikan sistem komputer kita sudah tidak aman. Mengapa? Karena pada umumnya penyusup telah membuat backdoor yang cukup aman dan tersembunyi kecuali kita mengetahui setiap titik dari backdoor yang dibuat oleh penyusup tersebut dan kita bisa memusnahkannya. Bila kita tidak bisa menemukan backdoor tersebut, jalan teraman adalah instalasi ulang sistem operasi yang ada di komputer tersebut.
Sebagai system administrator yang baik, kita seharusnya selalu membaca log file yang banyak dihasilkan oleh program-program yang dieksekusi di komputer kita. Dengan membaca log file ini, kejadian-kejadian yang tidak diinginkan dapat dideteksi lebih dini.
Tidak ada komentar:
Posting Komentar
Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.