Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
BAB 14 KEAMANAN SISTEM OPERASI Proteksi, sebagaimana telah dibicarakan pada bab 13, merupakan sebuah permasalahan internal : bagaimanakah kita dapat menyediakan akses terkontrol pada program dan penyimpanan data dalam sebuah sistem computer? Keamanan, dilain pihak, tidak hanya membutuhkan sebuah sistem proteksi yang tepat, tetapi juga keadaan lingkungan eksternal didalam sebuah sistem yang beroperasi. Proteksi internal tidak akan berguna jika mata operator memperhatikan pada personal yang tidak pada seharusnya, atau jika berkas (yang tersimpan, misalnya pada kaset atau disket) dapat dengan mudah dipindahkan dari sistem komputer dan diambil dari sistem yang tidak memiliki proteksi. Masalah keamanan ini adalah, masalah yang intinya manajemen daripada sistem operasi. Informasi yang tersimpan dalam sistem (data maupun kode), sebagaimana sumber fisik sistem komputer, perlu mengalami proteksi dari akses tak resmi, pengrusakan yang bengis atau alterasi, dan pembukaan yang tidak sengaja dari isinya. Pada bab ini, kita mempelajari cara dimana informasi dapat disalah gunakan atau secara sengaja dibuat tidak konsisten. Lalu kami sampaikan mekanisme untuk penjagaan melawan hal seperti telah disebutkan.
14.1 Masalah Keamanan Pada bab 13, kita telah membicarakan bermacam-macam ekanisme yang dimana sistem yang beroperasi dapat menyediakan (dengan pertolongan yang semestinya dari hardware) yang memungkinkan pemakai dapat melindungi sumber mereka (biasanya program dan data). Mekanisme ini bekerja dengan baik selama pemakai tidak mencoba untuk mengelakkan penggunaa semestinya dan akses ke sumber ini. Sayangnya, situasi ini jarang terwujud. Ketika ini tidak, keamanan memiliki peran. Dpat dikatakan bahwa sistem aman jika sumbernya dipakai dan diakses sebagaimana semestinya dalam semua keadaan. Sayangnya, ini tidak mungkin.secara umum untuk mencapai keamanan total. Jika demikian, mekanisme harus siap untuk membuat pencabangan keamanan yang tidak biasa dan tidak seperti normalnya. Kekerasan dalam keamanan (penyalah gunaan) sistem ini dapat dikategorikan sebagai kekerasan yang disengaja (penyalah gunaan) atau kecelakaan. Mudah untuk memproteksi melawan penyalah gunaan yang disengaja daripada pengrusakan. Diantaranya akses yang merusak adalah : • Pembacaan data yang tidak seharusnya • Modifikasi data yang tidak semestinya • Pengrusakan data yang tidak seharusnya Proteksi absolut pada sistem dari pelanggaran yang merusak tidaklah mungkin, tapi biaya pelaku kejahatan dapat menjadi sangat tinggi untuk menghalangi sebagian
Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
236
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
besar, jika tidak semua usaha pengaksesan tanoa autorisasi yang semestinya, informasi terletak dalam sistem. Untuk memproteksi sistem, kita harus mengambil tolak ukur keamanan dalam dua tahap : • Fisik : situs atau situs yang berisi sistem computer harus secara fisik diamankan dari entry yang berbahaya atau entry yang mencuri-curi oleh pengganggu. • Manusia : user harus disaring dengan hati hati agar kesempatan autorisasi seorang user yang kemudian memberi akses dengan sebuah perusakan (dengan sebagai gantinya adanya suap contohnya) dapat dikurangi. Keamanan pada kedua tahapan tersebut harus diusahakan jika sistem operasi keamanannya dapat dipastikan. Sebuah kelemahan pada keamanan tingkat tinggi (fisik atau manusia) mengijinkan adanya pengelakkan pada tingkat rendahnya (sistem operasi) pada ukursn keselamatan. Ini berharga dalam banyak aplikasi, untuk mencurahkan usaha yang seharusnya bagi keamanan pada sistem computer. Sistem komersial yang besar memiliki giliran kerja atau data keuangan yang mengundang untuk menjadi incaran pencuri. Sistem yang terdiri dari data yang menyinggung pada operasi korporat dapat menarik kompetitor yang jahat. Terlebih lagi, hilangnya data seperti itu apakah melalui kecelakaan atau penipuan dapat dengan serius menghalangi fungsi korporat tersebut. Dilain pihak, sistem hardware harus memiliki proteksi (sebagaimana dijelaskan pada bab 13) untuk membuatnya bisa mengimplementasikan fitur keamanan. Misalnya, MS-DOS dan Machintosh OS menyediakan keamanan yang kecil karena hardware yang dalam desain aslinya tidak memiliki memori atau proteksi I/O. sekarang hardware tersebut telah menjadi cukup menakjubkan dalam penyediaan proteksinya, pendesain sistem operasinya memperjuangkan untuk menambah keamanan. Sayangnya penambahan fitur untuk sebuah sistem fungsional lebih sulit dan menjadi tugas yang menantang dari pada proses desainnya dan pengimplementasian fitur sebelum sistem dibangun. Sistem operasi yang terakhir, seperti pada Windows NT, telah didesain untuk menyediakan fitur keamanan dari awal. Dalam catatan bab ini, kami tegaskan untuk keamanan pada tahapan sistem yang berjalan. Keamanan pada tahap fisik dan manusia meskipun penting, jauh dari bidang yang sedang dinicarakan. Keamanan didalam sistem yang sedang berjalan diimplementasikan dalam beberapa tahapan bertingkat dari kata sandi untuk akses ke sistem untuk isolasi pada proses tertentu yang sedang berjalan didalam sistem. Sistem berkas juga menyediakan beberapa tingkatan proteksi.
14.2 Pembuktian keaslian Masalah keamanan yang utama untuk sistem yang beroperasi adalah masalah pembuktian keaslian. Sistem proteksi tergantung pada sebuah kemampuan untuk mengenal program dan akses yang sedang dijalankan. Kemampuan ini nantinya meskipun tergantung pada kemampuan kita unutk mengenal setiap user sistem. User biasa mengenalkan dirinya. Bagaimana kita menentukan apakah identitas seorang user Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
237
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
adalah asli? Umumnya pembuktian ini berdasar pada satu atau tiga item : milik user (kunci atau kartu), pengetahuan user (sebuah pengidentifikasi user atau kata sandi), dan sebuah atribut user (cap jari tangan,pola retina atau tanda tangan).
14.2.1 Kata sandi Pendekatan yang lebih umum untuk pembuktian keaslian identitas seorang user adalah penggunaan kata sandi user. Ketika user mengidentifikasi dirinya sendiri denag ID user atau nama account, ia akan diminta untuk menunjukkan kata sandi. Jika user memberikan kata sandi yang sesuai dengan kata sandi yang disimpan didalam sistem, sistem mengasumsikan bahwa user adalah sah. Kata sandi biasa digunakan unutk memproteksi objek didalam sistem komputer, dengan tidak adanya skema proteksi yang lebih lengkap. Mereka dapat mempertimbangkan sebuah perkara khusus pada kunci atau kapabilitas. Misalkan sebuah kata sandi dihubungkan dengan sunber lain (seperti berkas data). Kapanpun sebuah permintaan dibuat unutk memakai sumber, kata sandi harus diberikan. Jika kata sandinya benar, akses diijinkan. Jika kata sandi yang berbeda dapat dihubungkan dengan hak akses yang berbeda. Contohnya kata sandi yang berbeda dapat dipakai untuk setiap pembacaan, menambahkan dan mengup-date berkas.
14.2.2 Mudah terserangnya kata sandi Meskipun ada masalah yang berhubugan dengan penggunaan mereka, kata sandi adalah sesuatu yang biasa, karena mereka mudah untuk dipahami dan digunakan. Masalah dengan kata sandi yang berhubungan dengan sulitnya menjaga kerahasiaan kata sandi. Kata sandi dapat dikompromikan oleh perkiraan, secara tak sengaja muncul, atau secara illegal ditransfer dari sebuah user yang disahkan pada bagian yang tidak sah, sebagaimana kita lihat nantinya. Ada dua cara umum untuk mengira sebuah kata sandi. Satu adalah dengan cara pemaksa (manusia atau program) mengenal user atau memiliki informasi tentang user. Semua seringkali, orang-orang menggunakan informasi seperti itu (seperti nama binatang kesayangannya atau pasangannya) sebagai kata sandi mereka. Cara lainnya adalah dengan menggunakan pemaksaan, mencoba segala cara yang mungkin seperti kombinasi huruf, angka, dn pemenggalan sampai kata sandi ditemukan. Kata sandi yang pendek tidak memberikan banyak pilihan untuk mencegah mereka dapat juga diduga oleh percobaan yang berulang kali. Contohnya, sebuah kata sandi empat angka hanya memiliki 1000 variasi. Rata-ratanya, dengan menebak 5000 kali dapat memberikan hasil. Jika program dapat membaca dan dicoba setiap 1 milidetik, maka ini hanya akan membutuhkan 5 menit untuk menebak kata sandi empat digit. Kata sandi yang lebih panjang kurang mudah ditebak dengan perkiraan seperti itu, dan sistem yang membedakan antara huruf besar dan huruf kecil, membuat usaha penebakan menjadi semakin sulit. Tentunya user harus mengambil manfaat dari space kata sandi yang besar dan jika tidak, contohnya hanya menggunakan huruf kecil. Kegagalan kata sandi karena pembongkaran dapat terjadi dari adanya monitoring visual atau elektronik. Seorang pemaksa dapat melihat melalui bahu user Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
238
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
(dikenal dengan ‘shoulders surfing’) ketika user mengakses masuk, dan dapat juga dengan melihat kata sandi dari keyboard. Sebagai kemungkinan lain, setiap orang dengan akses ke jaringan dimana komputer berada dapat tanpa terlihat menambahkan sebuah pengawasan pada jaringan, membuat dia dapat melihat semua data yang telah sedang ditransfer pada jaringan tersebut (‘sniffing/penciuman’), termasuk ID user dan kata sandinya. Pembongkaran dalah masalah yang kadang sederhana jika kata sandi tertulis sehingga ini dapat terbaca ataupun hilang. Sebagaimana kita tahu, beberapa sistem memaksa usernya untuk memilih kata sandi yang susah diingat ataupun kata sandi yang panjang. Paling buruknya, kebutuhan ini dapat menyebabkan user mencatat kata sandi, memberikan model keamanan yang sungguh buruk daripada hasilnya dimana sistem dapat membuat kata sandi yang lebih sederhana!. Kompromi kata sandi yang terakhir dalah sifat manusia sendiri. Sebagian besar instalasi komputer memilijki aturan yang user-nya tidak diijinkan untuk membagi accountnya. Aturan ini kadang dipakai dengan alas an-alasan akuntansi, tapi lebih sering dipakai untuk membantu keamanannya. Misalnya, lika ID seorang user dibagi dengan beberapa user, dan penerobosan keamanan terjadi dari para user tersebut, ini akan menjadi sulit untuk mengetahui siapa yang telah menggunakan ID user pada saat itu, atau bahkan apakah user tersebut adalah user yang sah. Dengan satu orang satu ID user, setiap user melanggar aturan pembagian account untuk membantu teman atau pengelakan account, dan perilaju ini dapat memberikan hasil dimana sistem dapat diakses oleh user tidak sah – mungkin mereka yang berbahaya. Kata sandi dapat disederhanakan dengan sistem atau penyeleksian oleh user. Kata sandi sistem yang disederhakan dapat menjadi sulit unutk diingat, dan secara umum user akan menuliskannya. Kata sandi yang dipilih user bagaimanapun kadang sangat mudah untuk ditebak (nama user atau mobil favoritnya misalnya). Pada beberapa situs, administrator biasanya mengecek kata sandi user dan mengenali user jika kata sandinya terlalu pendek atau telalu mudah untuk ditebak. Beberapa sistem termasuk age kata sandi, memaksa user merubah kata sandi mereka dengan onterval yang regular (tiga bulan sekali misalnya). Metode ini juga bukan metode yang cerdas juga, karena user biasanya memulai dengan dua kata sandi. Solusinya, sebagaimana dipakai pada beberapa sistem, adalah dengan mencatat sejarah kata sandi yang kita pakai untuk setiap user. Misalnya, sistem dapat membaca N terakhir kata sandi dan tidak mengijinkan penggunaannya. Beberapa macam pada kata sandi sederhana ini dapat dipakai. Contohnya kata sandi dapat dirubah secara teratur. Dengan pertimbangan terburuknya, kata sandi dapat dirubah untuk tiap ssi kita. Sebuah kata sandi baru dipilih (baik sistem maupun user) pada akhir sesi, dan kata sandi tersebut harus digunakan untuk sesi berikutnya. Ingat bahwa, meskipun jika kata sandi disalah gunakan, ini hanya dapat dipakai sekali saja, dan penggunaan seperti ini mencegah user yang sah menemukan kejahatan keamanan pada sesi berikutnya, ketika ia mencoba untuk m,enggunakan serbuah kata sandi yang tidak lagi valid. Ini langkah yang bisa diambil untuk memperbau\iki mulainya keamanan.
Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
239
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
14.2.3 Kata sandi tersamarkan satu masalah dengan semua pendekatan adalah sulitnya menjaga kerahasiaan kata sandi. Sistem UNIX menggunakan penyamaran untuk menjaga kerahasiaan dari daftar kata sandi. Setiap user memiliki kata sandi. Sistem memiliki fungsi yang sangatlah sulit (pendesainnya mengharap ini tidak mungkin) adanya pembalikan, tapi ini mudah dihitung. Misalnya ditentukan nilai x, akan mudah disini untuk menghitung nilai f(x). dengan menetukan nilai f(x), bagaimanapun sangatlah tidak mungkin untuk menghitung x. fungsi ini dipakai untuk memberi sandi semua kata sandi. Hanya kata sandi yang tersandikan saja yang disimpan. Ketika seorang user menunkukkan kata sandi, ini diberi sandi dan dibandingkan dengan kata sandi yang telah tersandikan yang tersimpan. Jika kata sandi tersimpan yang telah tersandikan itu terlihat, itu tidak dapat disandikan ulang lagi, sehingga kata sandi tidak bisa dilihat. Sehingga berkas kata sandi tidak perlu dirahasiakan lagi. Fungsi f(x) adalah sebuah tipe algoritma penyamaran yang telah didesain dan dicoba dengan serius, sebagaimana telah dijabarkan di 14.7 Kekurangan metode ini adalah bahwa sistem tidak bisa lagi mengontrol kata sandi. Meskipun kata sandi disamarkan, setiap orang denga sebuah contoh kata sandi dapat menjalankan kegiatan penyamaran melawan yang sudah ada, menyamarkan setiap kata dalam catatannya, misalnya, dan dibandingkan hasil dengan kata sandi yang telah dijelaskan. Jika user memilih kata sandi yang merupakan kata yang ada dalam catatan tersebut, kata sandi telah dibobol. Dalam computer yang cukup cepat, atau bahkan dalam kelompok computer yang pelan, perbandingan seperti itu hanya membutuhkan beberapa jam. Karena sistem UNIX menggunakan algoritma penyamaran yang sudah dikenal, seorang hacker dapat mengetahui cache sepasang kata sandi – chipher untuk menemukan kata sandi dengan cepat yang mungkin telah dibobol sebelumnya. Untuk alasan ini, versi baru UNIX menyembunyikan entry kata sandinya. Kelemahan lain pada UNIX adalah metode kata sandi yang dimana banyak sistem UNIX hanya meneliti pada delapan huruf pertam sebagai yang penting, ehingga sangat pentung untuk user mengambil keuntungan dari space kata sandi yang ada. Untuk menghindari metode penyamaran kamus, beberapa sistem tidak mengijinkan penggunaan kata kamus tersebut sebagai kata sandi. Suatu cara yang baik untuk menghasilkan kata sandi mu dengan penggunaan surat yang pertama dari tiap dunia dari suatu dengan mudah diingat ungkapan yang menggunakan kedua-duanya yang bagian atas dan menurunkan karakter dengan suatu nomor; jumlah atau pemberian tanda baca melemparkan harus berbuat ukuran baik. Sebagai contoh, ungkapan " nama ibu ku adalah Katherine." Mungkin menghasilkan kata sandi " mmnisk.!". Kata sandi adalah susah untuk bertepuk/retak, tetapi yang gampang untuk pemakai untuk ingat.
14.3 Kata sandi satu waktu Untuk menghindari permasalahan kata sandi yang mengendus-endus dan surfing bahu, suatu sistem bisa menggunakan satu set kata sandi dipasangkan. Ketika Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
240
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
suatu sesi mulai, sistem secara acak memilih dan menghadiahi satu bagian dari suatu kata sandi memasangkan; pemakai harus menyediakan bagian lain . Di dalam sistem ini pemakai adalah tantangan. Pendekatan ini dapat disamaratakan kepada penggunaan dari suatu algoritma sebagai kata sandi. Algoritma boleh jadi suatu fungsi bilangan bulat, sebagai contoh. Sistem memilih suatu bilangan bulat acak dan menyajikan ia/nya kepada pemakai. Pemakai menerapkan fungsi itu dan menjawab dengan hasil yang benar. Sistem juga menerapkan fungsi itu. Jika keduanya menghasilkan pertandingan, akses diijinkan. Mensupportnya bahwa ada suatu metoda kata sandi yang tidaklah peka ke ekspose. Sebagai contoh, seorang pemakai bisa mengetik adalah suatu kata sandi, dan manapun kesatuan yang menginterupsi berusaha dan kata sandi itu untuk menggunakan kembali ia/nya akan gagal. Sistim yang demikian ada; itu melibatkan penggunaan dari kata sandi algorithmic. Di dalam variasi ini, sistem dan pemakai berbagi suatu rahasia. Rahasia tidak pernah dipancarkan di atas suatu medium yang mengijinkan ekspose. Melainkan, rahasia digunakan sebagai masukan kepada fungsi, bersama dengan suatu benih bersama. Suatu benih adalah suatu nomor;jumlah acak atau urutan alphanumeric. Benih adalah pengesahan menghadapi tantangan dari computer. Rahasia dan benih digunakan suatu masukan kepada fungsi f(secret, menabur benih). Hasil dari fungsi ini dipancarkan seperti kata sandi kepada komputer itu. Sebab komputer juga mengetahui rahasia itu dan benih, itu dapat melaksanakan perhitungan yang sama. Jika hasil temu, pemakai dibuktikan keasliannya. Lain waktu yang pemakai perlu untuk dibuktikan keasliannya, benih lain dihasilkan dan langkahlangkah yang sama berakibat/terjadi. Waktu ini, kata sandi adalah berbeda. Di dalam sekali sistem kata sandi, kata sandi adalah berbeda pada setiap kejadian. Seseorang yang menangkap kata sandi dari satu sesi dan berusaha untuk menggunakan kembali ia/nya di dalam sesi lain akan gagal. Sekali kata sandi adalah di antara satu-satunya cara untuk mencegah pengesahan tidak pantas dalam kaitan dengan ekspose kata sandi. Ada banyak sekali sistem kata sandi. Implementasi komersil seperti menjamin/mengamankan kalkulator perangkat keras penggunaan pengamanan ID. Kebanyakan adalah di dalam bentuk suatu kartu kredit, tetapi mempunyai suatu keypad dan memajang. Beberapa penggunaan waktu yang sekarang sebagai benih yang acak. Pemakai menggunakan keypad untuk masuk rahasia yang bersama, juga mengenal sebagai suatu nomor; jumlah identifikasi pribadi. Pajangan menunjukkan yang satu kata sandi waktu. Variasi lain pada sekali kata sandi adalah penggunaan suatu buku kode, atau sekali mengisi, yang mana [adalah] daftar kata sandi penggunaan tunggal. Di dalam metoda ini, masing-masing kata sandi pada atas daftar digunakan, dalam urutan, sekali ketika, dan kemudian ditunda atau dihapus. yang biasanya Digunakan/ Para pemakai Sistem Kunci baik suatu kalkulator perangkat lunak maupun suatu buku kode berdasar pada kalkulasi ini sebagai sumber sekali kata sandi.
14.4 Ancaman Program Di suatu lingkungan di mana suatu program yang tertulis oleh satu pemakai mungkin digunakan oleh pemakai lain, ada suatu kesempatan untuk penyalah gunaan, Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
241
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
yang boleh mengakibatkan perilaku tak diduga. Dibagian 13.4.1 dan 13.4.2, kita menguraikan dua metoda umum dengan mana . seperti itu perilaku boleh terjadi: Trojan kuda dan pintu kolong/trap doors.
14.4.1 Kuda Trojan (Horse Trojan) Banyak sistem mempunyai mekanisme untuk membiarkan program yang ditulis oleh pemakai untuk dieksekusi oleh lain para pemakai. Jika program ini dieksekusi pada suatu daerah yang menyediakan hak/ kebenaran akses pemakaian oleh penguna. Mereka boleh menyalahgunakan [hak/ kebenaran] ini. Di dalam seorang program editor teks, sebagai contoh, mungkin ada kode untuk mencari berkas [itu] [bagi/kepada] suatu area khusus yang dapat diakses kepada pencipta editor teks. Suatu segmen kode yang menyalahgunakan lingkungan nya [disebut/dipanggil] Trojan kuda. Trojan Masalah Kuda diperburuk oleh merindukan alur pencarian ( seperti adalah umum pada [atas] sistem UNIX). Alur Pencarian mendaftar satuan direktori untuk mencari ketika nama program rancu diberi. Alur dicari-cari [untuk] suatu berkas (menyangkut) nama itu dan berkas dieksekusi. Semua direktori di (dalam) alur pencarian harus menjamin/mengamankan, atau Trojan kuda bisa menyelinap masuk alur pemakai [itu] dan dieksekusi secara kebetulan. Sebagai contoh, concider penggunaan"." Karakter di (dalam) suatu alur pencarian."." Ceritakan [kepada] kulit/kerang [itu] untuk meliputi direktori yang sekarang di (dalam) pencarian [itu]. Seperti itu, jika seorang pemakai mempunyai"." Di (dalam) alur pencarian nya, telah menetapkan direktori [yang] sekarang nya [bagi/kepada] suatu direktori teman dan masuk nama suatu sistem normal memerintahkan, perintah mungkin (adalah) dieksekusi dari direktori teman sebagai ganti(nya). Program akan [berlari/menjalankan] di dalam daerah pemakai, membiarkan program [itu] untuk lakukan semua yang pemakai diijinkan untuk, mencakup menghapus berkas pemakai [itu], sebagai contoh. Suatu variasi Trojan kuda akan menjadi suatu program yang menandingi suatu login program. Seorang pemakai tidak menaruh curiga start untuk membukukan pada suatu teminal, dan berpesan bahwa ia mempunyai kelihatannya mistyped kata sandi nya. Ia mencoba lagi, dan adalah sukses. Apa yang telah terjadi adalah bahwa dan kunci pengesahan nya kata sandi telah dicuri oleh login emulator yang telah ditinggalkan lari/menjalankan pada [atas] terminal oleh pencuri [itu]. Emulator menyimpan persediaan kata sandi [itu], mencetak suatu login pemberitahu kesalahan, dan pergi; pemakai kemudian adalah melengkapi dengan suatu login asli membisikkan. Serangan jenis ini dapat dikalahkan oleh sistem operasi [yang] mencetak suatu pesan pemakaian pada ujung sesi interaktip atau oleh suatu bukan urutan kunci trappable, seperti control-alt-delete kombinasi dibanding jendela NT menggunakan.
14.4.2 Backdoor Perancang suatu program atau sistem mungkin me/tinggalkan suatu lubang di (dalam) perangkat lunak yang hanya dia adalah mampu untuk menggunakan. Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
242
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
Pelanggaran Keamanan jenis ini telah ditunjukkan bioskop " latihan perang". Sebagai contoh, kode mungkin melihat kemungkinan pemakai spesifik identifier atau kata sandi, dan kekuatan berbelit-belit prosedur keamanan normal. [Di/Ke] sana telah (menjadi) kasus para programmer ditangkap untuk menggelapkan dari bank dengan termasuk membulatkan kesalahan di (dalam) kode mereka, dan mempunyai;nikmati yang sekali-kali separuh sen yang dihargai kepada rekening/tg-jawab mereka. Rekening/Tg-Jawab ini yang kredit kaleng menjumlahkan [bagi/kepada] sejumlah besar uang, mempertimbangkan banyaknya transaksi yang suatu bank besar melaksanakan. Suatu pintu kolong pandai bisa jadilah tercakup di suatu compiler. Compiler bisa menghasilkan kode obyek baku seperti halnya suatu pintu kolong, dengan mengabaikan source program di-compile. Aktivitas ini terutama sekali jahat, [karena;sejak] suatu pencarian source program program tidak akan mengungkapkan manapun permasalahan. Hanya source program compiler akan berisi informasi [itu]. Pintu kolong bersikap suatu masalah sulit sebab, untuk mendeteksi [mereka/nya], kita harus meneliti semua source program untuk semua komponen suatu sistem. dengan yang perangkat lunak sistem boleh terdiri dari berjuta-juta bentuk kode, analisa ini tidaklah dilaksanakan sering. 20.5 ancaman sistem Kebanyakan sistem operasi menyediakan bermakna untuk memproses untuk bertelur lain proses. Dalam . yang sedemikian suatu lingkungan, [itu] adalah mungkin untuk menciptakan suatu situasi [di mana/jika] sumber daya sistem operasi dan berkas pemakai disalahgunakan. Dua metoda [yang] paling umum untuk menuju keberhasilan penyalah gunaan ini adalah cacing dan virus.
14.5 Ancaman Sistem Umumnya system operasi menyediakan sesuatu hal yang berfungsi untuk memantau/mengintai kegiatan proses diluar proses yang dilakukan oleh sistem operasi itu sendiri. Dalam suatu kondisi tertentu suatu proses diluar sistem operasi mungkin dapat melakukan sesuatu hal yang menyebabkan sumber-sumber daya sistem operasi dan berkas-berkas user tidak dapat digunakan. Ada 2 metode untuk yang menyebabkan kondisi tersebut terjadi yaitu worms dan virus. 14.5.1 Worm Worms adalah sebuah proses yang menggunakan mekanisme pemantauan yang dapat menggangggu kinerja sistem. Worm pengintai melakukan penggadaan dirinya sendiri (meng-copy) dengan menggunakan sumber daya system operasi sehingga menyebabkan system menjadi terkunci untuk semua proses lain yang sedang berjalan.. Pada [atas] jaringan komputer, cacing terutama sekali kuat, [karena;sejak] mereka boleh reproduksi [mereka/nya] sendiri antar sistem dan [dengan] begitu menutup [itu] keseluruhan jaringan. Peristiwa seperti itu terjadi 1988 ke waktu programmer dan sistem UNIX. Internet menghubungkan beribu-ribu pemerintah, akademis, riset, dan komputer industri [yang] secara internasional, dan bertindak sebagai infrastruktur [itu] untuk perubahan [yang] elektronik [dari;ttg] informasi ilmiah. Di yang dekat untuk hari pekerjaan pada [atas] November 2,1988. Robert tappan morris, Jr., suatu tahun pertama Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
243
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
cornel lulus siswa, melepaskan tali seekor program cacing pada [atas] satu atau lebih penghuni menghubungkan kepada internet [itu]. Arahkan matahari matahari microsistems' 3 stasiun-kerja dan VAX komputer yang berlari/menjalankan varian versi 4 BSD UNIX, cacing [yang] dengan cepat menyebar (di) atas jarak besar; di dalam beberapa jam tentang pelepasan/release nya , [itu] yang telah mengkonsumsi sumber daya sistem dengan tujuan untuk mengurangi mesin yang terkena infeksi/tersebar [itu]. Walaupun Robert morris merancang diri [itu] yang replicating program untuk distribusi dan reproduksi cepat, sebagian dari corak lingkungan networking yang UNIX menyajikan rata-rata untuk menyebarkan cacing [itu] sepanjang;seluruh sistem [itu]. [Itu] seperti yang morris memilih untuk infeksi/peradangan awal [adalah] suatu internet tuan rumah yang masih terbuka untuk dan dapat diakses ke para pemakai (di) luar. Dari sana, program cacing memanfaatkan kekurangan di (dalam) keamanan sistem operasi yang UNIX yang rutin dan mengambil keuntungan dari kegunaan UNIX yang menyederhanakan sumber daya yang berbagi [adalah] suatu jaringan area lokal untuk memperoleh un memberi hak akses [bagi/kepada] beribu-ribu lain lokasi dihubungkan. metoda serangan Morris' diuraikan berikutnya. Cacing telah terdiri dari dua program, suatu bergulat sangkutan ( juga disebut tali pengikat sepatu boot atau panah/garis vektor) program dan program yang utama nama l1.c, bergulat sangkutan terdiri dari 99 bentuk C kode meng-compile dan maju mesin masing-masing [itu] mengakses. Sekali tercipta pada [atas] sistem di bawah menyerang, bergulat sangkutan menghubungkan kepada mesin [di mana/jika] [itu] memulai dan uploaded suatu salinan cacing yang utama ke sistem yang bengkok ( menggambarkan 20.1). Program yang utama yang diteruskan mencari-cari lain mesin [bagi/kepada] yang mana sistem terkena infeksi/tersebar yang baru saja bisa menghubungkan dengan mudah. Di (dalam) tindakan ini, morris memanfaatkan kegunaan networking yang UNIX, rsh, untuk/karena pelaksanaan tugas remote gampang. Dengan pengaturan berkas khusus atas yang mendaftar tuan rumah [itu] login pasangan nama, para pemakai dapat menghilangkan memasuki suatu kata sandi setiap kali mereka mengakses suatu rekening/tg-jawab remote pada [atas] daftar yang dipasangkan [itu]. Cacing mencari berkas [yang] khusus ini untuk nama lokasi yang akan mengijinkan pelaksanaan remote tanpa suatu kata sandi. [Di mana/jika] kulit/kerang remote telah dibentuk/mapan, program cacing adalah uploaded dan mulai pelaksanaan lagi/kembali. Serangan via akses remote adalah salah satu dari tiga metoda infeksi/peradangan membangun ke dalam cacing [itu]. Lain dua metoda melibatkan kutu busuk sistem operasi di (dalam) jari yang UNIX dan mengirimkan program pos. Fasilitas finger berfungsi sebagai direktori telepon elektronik; perintahnya adalah : figer username@hostname kembaliannya adalah pengakuan keberadaannya orang tersebut dan nama login, disertai juga dengan berbagai informasi yang mungkin disiapkan, seperti alamat rumah dan kantor, dan nomor telepon, bagaimana melakukan pencarian atau penandaan. Finger bertindak sebagai proses yang membelakangi (daemon) pada tiap BSD site dan respon mengenai query melalui internet. Titik singgung terhadap masukkan jahil menyebabkan pembacaan masukkan dengan tanpa mengecek ikatan dari aliran data. Program Morris meng-query finger dengan keahlian tipu muslihat 536-byte string untuk melampaui alokasi buffer bagi input dan untuk menulis ulang frame stack. Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
244
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
Dalam rangka untuk pengembalian kebiasaan utama yang ada sebelum pangggilan Morris, daemon finger telah diarahkan pada prosedur yang sekarang memiliki penyerbuan 536-bytes string tersisa pada stack. Prosedur baru memiliki eksekusi /bin/sh, yang sukses menyediakan penembak terkendali worm pada mesin penyerangan. Ledakan serangga pada sendmail juga turut menyebabkan penggunaan proses daemon untuk masukkan yang jahil. Sendmail mengatur rute elektronik mail pada jaringan sekitarnya. Kode untuk mendebug fasilitas mengijinkan untuk mencoba mengecek dan menampilkan letak dari sistem mail. Menu pilihan proses debug berguna bagi sistem administrator dan hal ini sering tertinggal pada proses yang mengikuti. Morris menurut sertakan pemanggilan pada debug penyerangan gudang persenjataan, yang perlu untuk menspesifikasi alamat pengguna, yang akan tetap nomal dalam pengetesan, membawa satu set perintah yang mengirim dan mengeksekusi kopi dari program grappling-hook. Di saat yang bersamaan, worm utama menjamin suatu usaha yang sistematis untuk menemukan kata sandi pengguna. Ini dimulai dengan mencoba kasus sederhana mengenai tidak adanya kata sandi atau konstruksional kata sandi yang dimiliki oleh nama kombinasi pengguna, kemudian menggunakan perbandingan dengan kamus internal dari 432 pilihan kata sandi favorit, kemudian menuju pada tahap terakhir untuk mencari arti tiap kata dari kamus standard UNIX on line sebagai kemungkinan kata sandi. Pengerjaan ini dan algoritma tiga tahap pemecahan kata sandi yang efisien memungkinkan worm untuk membangun akses yang lebih jauh kepada user account yang ada pada sistem yang terinfeksi. Kemudian worm mencari berkas data rsh pada broken account. Berbagai masukan rsh telah dicoba, dan, dengan menjelaskan terlebih dulu, worm dapat membangun akses kepada account pengguna dan sistem pengendali. Dengan tiap akses baru, program worm mencari duplikat asli dari dirinya sendiri. Bila ditemukan satu, duplikat baru menghilang, kecuali untuk tiap tujuh jarak. Setelah semua duplikat worm terlihat menghilang, dia menjadi tidak dapat dideteksi. Mempersilahkan tiap tujuh duplikat untuk memproses (dimungkinkan untuk mencampur usaha untuk menghentikan penyebarannya dengan worm tiruan) membuat dua keseluruhan infestasi dari sistem SUN dan VAX di internet. Bagian penting dari lingkungan kerja UNIX yaitu membantu propagasi worm dan juga untuk menghentikan perkembangannya. Kemudahan dari komunikasi elektronik, mekanisme untuk membuat duplikat dari sumber dan berkas biner untuk membuat mesin pengendali, dan akses dari kedua sumber kode dan keahlian manusia mengijinkan untuk membantu pengerjaan pengembangan solusi untuk memproses apace. Di sore hari berikutnya, 3 November, metode untuk menghentikan sementara serbuan program yang mengelilingi sistem administraror melalui internet. Dalam jangka waktu tertentu, software tertentu menambal kerusakkan sistem keamanan yang ada. Satu tanggapan alami adalah pertanyaan apa motif Morris’ dalam mengendalikan worm. Aksi ini telah dikarakteristikan menjadi suatu peragaan yang tak berbahaya, cenderung hilang dan pelanggaran kriminal serius. Berdasarkan pada kompleksitas saat dimulainya penyerangan, hal ini tidak seperti pembebasan worm atau ruang lingkup penyebaran yang disengaja. Program worm mengerjakan langkahlangkah dengan teliti untuk menutupi track yang dimilikinya dan menolak usaha untuk menghentikan penyebaran. Sebelumnya, program tidak terdiri dari kode yang Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
245
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
menunjukkan adanya perusakan atau pemusnahan pada sistem saat dijalankan. Penulis sangat mengerti dengan jelas mengenai beberapa perintah; pada kenyataannya, struktur data disajikan dalam kode bootstrap yang dapat digunakan untuk mentransfer kuda Trojan atau program virus (lihat bagian 20.5.2). Kenyataan sikap dari program dapat membawa menuju pengawasan yang menarik, tetapi tidak menyediakan suara pendukung motif. Apa yang tidak membuka spekulasi, kadang kala, adalah hasil yang illegal. Pengadilan federal menghukum Morris’ dan memenangkan dengan mudah kalimat 3 (tiga) tahun masa percobaan, 400 jam layanan komunitas, dan $10,000 kebaikan. Biaya legal Morris’ mungkin lebih dari $100,000.
14.5.2 Virus Penyerangan terhadap komputer yang lain adalah virus. Seperti worm, virus didesain untuk menyebar ke program lainnya dan dapat menunjukan kejelekannya dengan merusak sistem, termasuk merubah atau memusnahkan berkas dan menyebabkan sistem bertabrakan dan program berjalan buruk (malfunctions). Dimana, struktur worm adalah lengkap, program yang dapat berdiri, sedangkan virus merupakan pecahan dari suatu kode pada program yang sah. Virus adalah masalah utama pada komputer pengguna, terutama mereka yang menggunakan sistem mikrokomputer. Pada umumnya, komputer multiuser tidak terjangkau oleh virus karena program yang dieksekusi dilindungi dari penulisan data oleh sistem operasi. Meski virus tidak menginfeksi program, dayanya tetap terbatas karena aspek perlindungan lain. Sistem single- user tidak memiliki perlindungan, sebagai hasilnya virus telah pergi. Virus biasanya tersebar karena pengguna men-download viral program dari papan buletin umum atau penukaran floppy disk yang sudah terkena virus. Kasus pada Februari 1992 yang melibatkan dua mahasiswa Cornell University memberikan ilustrasi. Mahasiswa terebut telah mengembangkan program game Macintosh dengan virus terpancang yang didistribusikan ke seluruh dunia dalam bentuk arsip software melalui internet. Virus dapat dilumpuhkan ketika professor di Wales men-download permainan tersebut dan program anti virus mengeluarkan peringatan terhadap virus. Sekitar 200 orang telah men-download permainan itu juga.Walau virus tidak didesin untuk memusnahkan data, dia tetap dapat menyebar ke berkas aplikasi lain dan menyebabkan beberapa masalah seperti penundaan dan fungsi program menjadi buruk. Penulis menjadi dengan mudah mencari jejaknya, sejak permainan telah dikirim memlalui email dari Cornell Account. Pihak berwajib kota New Yok menangkap sejumlah siswa saat melakukan pengubahan yang tidak sah pada computer dan telah mendapatkan penghasilan tambahan dari padanya. Pada kejadian lain, programmer di California diceraikan oleh istrinya karena telah memberikan disk istri untuk di masukkan pada computer yang mengalami sengketa. Disk tersebut berisi virus dan menghapus seluruh berkas pada sistem komputer. Suaminya ditangkap dan disita seluruh properti miliknya. Pada saat tertentu, infeksi viral yang akan datang akan diumumkan di media acara high-proberkas. Seperti saat menghadapi kasus virus Michaelangelo, yang dijadwalkan untuk menghapus seluruh berkas pada hard disk komputer yang terkena virus pada tanggal 6 Maret 1992, pada saat pesta ulang tahun ke 17 dan terdapat 500 Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
246
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
artis Renaissance. Karena luasnya publisitas penyebaran virus, sebagian besar U. S. site telah memusnahkan virus tersebut sebelum virus aktif, sehingga virus tersebut hanya menyebabkan sedikit kerusakkan.Seperti kasus memperingatkan masyarakat umum mengenai masalah virus. Program anti virus menjadi sangat laris dijual. Sangat banyak komersial paket yang dengan efektif menentang adanya beberapa virus saja. Mereka bekerja dengan mencari semua program pada sistem yang memiliki pattern khusus untuk mengenal instruksi yang membentuk virus. Ketika mereka menemukannya, mereka menghapus instruksinya, membuat program tidak jadi di infeksi. Paket komersial ini memiliki katalog mengenai ratusan virus yang telah mereka cari. Perlindungan terbaik menghadapi virus komputer adalah dengan melakukan pencegahan, atau pelatihan safe computing. Membeli software tertutup dari vendor dan menghindari kopi gratis atau bajakkan dari sumber-sumber umum atau floppy disk dapat menjadi rute teraman untuk mencegah infeksi virus. Kadang kala, hasil kopi baru dari software aplikasi yang sah tidak kebal terhadap infeksi virus: pernah terjadi kasus dimana karyawan dari perusahaan software, karyawan tersebut tidak puas kemudian dia melakukan infeksi virus pada kopi master dari software program tersebut untuk membuat perusahaan penjual software program mengalami kerugian ekonomi. Cara perlindungan lainnya, walau ini tidak mencegah infeksi, tetapi dapat dilakukan deteksi lebih awal. Pengguna harus memulainya dengan memformat ulang hard disk, terutama boot sektor-nya, yang sering menjadi target bagi penyerangan viral. Hanya software yang aman yang bisa di upload, dan pengecekan jumlah berkas dapat dilakukan. Daftar pengecekan harus dijaga dari orang-orang yang tidak berwenang untuk mengakses. Kelanjutan dari sistem reboot, program dapat menghitung ulang hasil pengecekkan dan membandingkan mereka dengan daftar yang asli; layanan yang berbeda sama saja dengan kemungkinan infeksi virus . Karena mereka biasa bekerja di antara sistem, pada umumnya worm dan virus dipertimbangkan memberikan sikap pengamanan, lebih dari perlindungan, masalah;
14.6 Pemantauan dengan Ancaman (Threat Monitoring) Keamanan dari suatu sistem dapat dikembangkan dengan menggunakan dua teknik manajemen. Salah satunya adalah threat monitoring. Sistem ini akan mengecek di setiap aktivitas yang mengundang kecurigaan dalam usahanya untuk mendeteksi adanya pelanggaran keamanan. Contoh umum dari skema ini adalah sistem timesharing yang dapat menghitung banyaknya kesalahan kata sandi yang telah terjadi ketika pengguna melakukan log in. Cukup banyak kesalahan yang dilakukan dan tetap mencoba menebak-nebak kata sandi yang benar. Teknik umum lainnya adalah audit log. Audit log ini adalah perekaman waktu, pengguna, dan tipe pengaksesan yang dilakukan terhadap suatu objek secara sederhana. Setelah keamanan sistem dilanggar, audit log dapat digunakan untuk menentukan bagaimana dan kapan terjadinya masalah dan dapat juga mencari tahu seberapa besar kerusakkan yang telah terjadi. Informasi ini dapat menjadi berguna, baik untuk pemulihan dari kerusakkan dan dapat dimungkinkan untuk mendukung pengembangan sistem keamanan yang lebih ketat untuk mencegah terjadinya masalah Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
247
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
di masa mendatang. Sayangnya, pencatatan (logs) dapat menjadi sangat besar, dan sumber sistem penggunaan logging akan menjadi tidak tersedia bagi pengguna. Dibandingkan dengan aktivitas sistem log, kita dapat meneliti / memperhatikan (scan) sistem secara periodik untuk keamanan lubang. Scan dapat dilakukan saat program yang sedang dijalankan komputer sedikit, sehingga mereka memiliki efek yang semakin kecil dibandingkan dengan saat logging. Beberapa aspek sistem yang dapat dicek melalui scan : o Kemudahan untuk menebak kata sandi o Kewenangan mengakses program set-uid, jika sistem mendukung mekanisme ini o Kewenangan mengakses program di sistem direktori o Pelaksanaan proses yang sangat lama o Pemberian perlindungan yang kurang tepat bagi pengguna dan sistem direktori o Pemberian perlindungan yang kurang tepat pada sistem berkas data, seperti berkas kata sandi, device driver, atau pada sistem operasi kernel itu sendiri o Masukkan data yang berbahaya pada program pencarian (contohnya, kuda Trojan pada bagian 20.4.1) o Perubahan sistem program yang dapat dideteksi juga dengan hasil nilai pengecekan Banyak masalah yang ditemukan dengan menggunakan sistem keamanan scan yang dapat diatur secara otomatis atau dilaporkan terhadap manajer dari sistem. Jaringan kerja komputer lebih mudah dipengaruhi oleh penyerangan keamanan daripada menjadi sistem yang dapat berdiri sendiri. Daripada penyerangan dari set akses point yang telah diketahui, seperti terminal koneksi langsung, kita menghadapi penyerangan dari set akses point yang lebih besar dan belum diketahui, seperti masalah keamanan yang berpotensi menjadi tindak kekerasan. Untuk luasan yang lebih kecil, sistem dikoneksikan ke jaringan telepon dengan menggunakan modems dan juga menjadi lebih terbuka. Pada kenyataannya, pemerintah federal U. S. mempertimbangkan sistem yang dapat sekuat sistem koneksi yang semakin kuat dan jauh jangkauannya. Sebagai contoh, sistem rahasia yang paling penting hanya dapat diakses dari dalam gedung yang dipertimbangkan juga sebagai rahasia penting. Sistem ini akan kehilangan sebutannya sebagai rahasia utama bila ada bentuk komunikasi yang terjadi di luar area yang ditentukan. Beberapa fasilitas pemerintah mengambil sistem peringatan keamanan yang ekstrim. Konektor antara terminal-terminal sistem pendukung dengan komputer utama sistem akan terkunci dalam keadaan yang aman ketika terminal
Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
248
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
sedang tidak aktif. Seseorang harus mengetahui kunci kombinasi fisik, sebaik informasi autentik untuk komputernya, untuk memperoleh akses ke komputer. Kerugian dari sistem administrator dan computer-security profesional adalah kadang kala tidak mungkin untuk mengunci mesin di ruangan dan untuk menolak semua remote akses. Jaringan internet terhubung dengan jutaan komputer. Ini menjadi tugas yang mendesak, sangat diperlukan sumber daya untuk banyak perusahaan dan individual. Seperti di sebuah klub yang memiliki banyak member, terdapat banyak member yang baik tetapi ada juga beberapa member yang tidak baik. Member yang buruk memiliki banyak alat yang digunakan untuk melintasi internet untuk berusaha memperoleh akses ke interconnected komputer, seperti yang dilakukan worm Morris Internet. Masalahnya adalah, bagaimana kita bisa percaya bahwa komputer bisa terkoneksi secara aman ke untrustworthy network? Salah satu solusi adalah menggunaka frewall untuk memisahkan trusted dan untrusted sistem. Firewall adalah komputer atau router yang tempatnya di antara trusted dan untrusted sistem. Ini membatasi akses jaringan antara dua security domain, dan mengawasi dan mengunci semua koneksi. Web server menggunakan protokol http untuk berkomunikasi dengan web browser. Firewall mungkin perlu mengikuti http untuk masuk. Morris Internet worm menggunakan protokol finger untuk merusak komputer. Jadi finger tidak akan dibiarkan masuk. Faktanya, firewall bisa memisahkan jaringan menjadi multiple domains. Implementasi utamanya adalah menjadikan internet sebagai untrusted domain, semitrusted dan semisecure network, dinamakan demilitarized zone (DMZ), sebagai domain ketiga (gambar 14.1). Koneksi diperbolehkan dari internet ke komputer DMZ dan dari perusahaan komputer ke internet, tetapi tidak diperbolehkan dari internet atau komputer DMZ ke perusahaan komputer.kontrol komunikasi dapat terjadi antara DMZ dan satu atau lebih perusahaan komputer. Web server di DMZ mungkin perlu untuk menanyakan database server di corporate network. Dalam kasus ini, semua akses terisi dan beberapa sistem DMZ yang rusak berdasarkan komputer yang dibiarkan melewati firewall masih tidak dapat mengakses perusahaan komputer.
Gambar 14.1 Keamanan jaringan melalui pemisahan daerah asal via firewall
Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
249
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
14.7 . Enkripsi Berbagai macam ketentuan yang dibuat sistem operasi untuk kekuasaan mungkin tidak menawarkan keamanan yang cukup untuk data yang sangat sensitif. Lagipula, sebagai jaringan komputer yang populer, informasi yang sensitif (terklasifikasi) ditransmisikan melalui channel dimana penyadapan dan pencegatan pesan mungkin terjadi. Untuk menjaga informasi sensitif itu agar tetap aman, kita perlu mekanisme untuk memperbolehkan pengguna untuk memproteksi data yang dikirim melalui jaringan. Enkripsi adalah satu metode utama untuk menjaga informasi yang ditransmisikan over unreliable link. Mekanisme dasarnya yaitu: 1. Informasi (text) dienkripsi (dienkodekan) dari initial readable form-nya (disebut clear text), ke bentuk internal (disebut cipher text). Bentuk internal teks ini walaupun bisa dibaca, tidak bisa dimengerti. 2. Text chiper bisa disimpan dalan readable berkas, atau ditransmisikan melalui chanel yang tidak terproteksi. 3. Untuk memahami teks chiper, penerima harus mendecripsikan (dekode) kembali menjadi teks clear. Bahkan jika informasi terenkripsi diakses dengan orang atau perusahaan yang tak berhak, ini tidak akan berguna kecuali jika didekodekan.tantangan utama dalam menggunakan pendekatan ini adalah pengelolaan rencana pengenkripsian yang tidak mungkin (atau sulit sekali) untuk dirusak. Bermacam-macam metode menghadapi tantangan ini. Yang paling utama adalah menyediakan enkripsi algoritma umum, E, decripsi algoritma umum, D, dan kunci rahasia disediakan untuk tiap aplikasi. Biarkan Ek dan Dk menunjukkan algoritma enkripsi dan decripsi, masing-masing untuk aplikasi partikular dengan kunci k. kemudian, enkripsi algoritma harus memenuhi beberapa properti untuk pesan-pesan m berikut: 1. Dk ( Ek (m)) = m 2. Baik Ek dan Dk bisa dihitung dengan efisien. 3. Keamanan sistem hanya bergantung pada kerahasiaan kode, dan tidak bergantung pada algoritma E dan D Salah satu pola yang disebut data-encryption standard, dipakai oleh standard nasional perkantoran. Pola ini bermasalah pada pendistribusian kode. Sebelum terjadinya komunikasi, kode-kode rahasia harus dikirim dengan aman baik kepada pengirim maupun penerima. Hal ini tidak dapat dilaksanakan dengan efektif pada sebuah lingkungan jaringan komunikasi. Solusi untuk masalah ini adalah dengan menggunakan pola public key-encryption. Setiap pengguna mempunyai baik kode umum maupun kode pribadi, dan dua pengguna dapat berkomunikasi hanya dengan saling mengetahui kode umum masing-masing. Sebuah algoritma berdasarkan pada konsep ini diikuti.algoritma ini dipercaya hampir tidak dapat dirusakkan. Kode enkripsi umum adalah sebuah pasangan (e,n); kode pribadi adalah sebuah pasangan (d,n), dengan e, d dan n adalah bilangan bulat positif. Setiap pesan direpresentasikan sebagai sebuah bilangan bulat antara 0 dan n-1. (Sebuah pesan yang panjang dipecah menjadi sejumlah pesan yang lebih singkat, Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
250
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
setiap pesan tersebut dapat direpresentasikan sebagai sebuah bilangan bulat.) Fungsi dari E dan D adalah E(m) = me mod n = C, D(C) = Cd mod n. Masalah utama adalah pemilihan kode enkripsi dan deskripsi. Bilangan bulat n dihitung sebagai hasil dari dua buah bilangan utama p dan q yang besar (100 atau lebih) yang dipilih secara acak dengan n =p x q. Jumlah d dipilih untuk menjadi besar, bilangan bulat relative utama yang dipilih secara acak pada (p-1) x (q-1).d menghasilkan pembagi umum yang terbesar [d, (p-1) x (q-1)] = 1. Akhirnya, bilangan bulat e dihitung dari p, q, dan d menjadi multiplicative inverse dari modulo d (p-1) x (q-1).e menghasilkan e x d mod (p-1) x (q-1) = 1 Perhatikan bahwa, walaupun n telah diketahui, tapi p dan q tidak. Hal ini diperbolehkan karena, seperti yang kita ketahui, sulit untuk memfaktorkan n. konsekuensinya bilangan bulat d dan e tidak dapat ditebak dengan mudah. Marilah kita gambarkan pola ini dengan sebuah contoh. Misal p = 5 dan q = 7. Kemudian n = 35 dan (p-1) x (q-1) = 24. Karena 11 relatively prime pada 24, kita dapat memilih d = 11; dan karena 11 x 11 mod 24 = 121 mod 24 = 1, e = 11. Misalkan m = 3, kemudian C = me mod n = 311 mod 35 = 12, dan Cd mod n = 1211 mod 35 = 3 = m Jadi, jika kita mengenkodekan m menggunakan e, kita dapat mendekodekan m menggunakan d.
14.8 Klasifikasi Keamanan Komputer Department of Defense Trusted Computer Sistem Evaluation Criteria Amerika Serikat mengelompokkan empat divisi pada sistem keamanan: A, B, C, dan D. Klasifikasi level terendah adalah divisi D, atau perlindungan minimal. Divisi D hanya Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
251
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
terdiri dari satu kelas, dan digunakan untuk sistem yang dievaluasi, tapi yang gagal memenuhi persyaratan untuk kelas-kelas keamanan yang lain. Misalnya MS-DOS dan Windows 3.1 ada pada divisi D. Divisi C, level keamanan berikutnya, menyediakan perlindungan dengan kebebasan untuk menentukan atau memilih dan pertanggungjawaban pengguna dan kegiatan mereka dalam menggunakan kemampuan audit. Divisi C mempunyai dua level: C1 dan C2. Sistem kelas C1 menggabungkan beberapa bentuk kontrol yang mengizinkan pengguna untuk melindungi informasi pribadi dan untuk menjaga pengguna-pengguna lain dari pembacaan atau perusakan data yang tidak disengaja. Lingkungan C1 adalah salah satu yang menjalankan akses data pengguna pada level yang sama dengan sensitivitas. Hampir semua versi UNIX adalah kelas C1. Jumlah total dari semua sistem proteksi pada sebuah sistem komputer (hardware, software, firmware) yang menjalankan dengan benar kebijakan keamanan dikenal dengan Trusted Computer Base (TCB). TCB dari sistem C1 mengontrol akses antara pengguna dan berkas-berkas dengan mengizinkan pengguna untuk menetapkan dan mengontrol obyek dengan nama individual atau grup yang didefinisikan. Sebagai tambahan, TCB mensyaratkan bahwa pengguna harus mengidentifikasi dirinya sendiri sebelum dia memulai aktifitas yang menggunakan TCB. Identifikasi ini disempurnakan melalui sebuah mekanisme yang terlindung atau kata sandi; TCB melindungi keaslian data karena data-data tersebut tidak dapat diakses oleh pengguna yang tidak berwenang. Sistem kelas C2 ditambahkan pada persyaratan dari sistem C1 melalui sebuah kontrol akses level individual. Contohnya, hak akses pada sebuah berkas dapat dispesifikasikan pada level single individual. Sebagai tambahan, administrator sistem mampu untuk mengaudit secara selektif kegiatan-kegiatan dari semua pengguna berdasarkan pada identitas individual. TCB juga melindungi diri dari perubahan kode atau struktur datanya. Sebagai tambahan, tidak ada informasi yang dibuat oleh pengguna sebelumnya yang dapat diakses oleh pengguna lain yang mengakses obyek yang tersimpan yang telah dikembalikan pada sistem. Beberapa spesial, versi-versi keamanan UNIX telah bersertifikasi level C2. Divisi B sistem proteksi mandatory mempunyai semua kelengkapan sistem kelas C2, ditambah mereka melihat label sensitivitas pada setiap obyek. TCB kelas B1 mempertahankan label keamanan pada setiap obyek dalam sistem; labeldigunakan untuk memutuskan hal-hal yang berhubungan dengan kontrol akses mandatory. Contohnya, sebuah pengguna pada level confidential tidak dapat mengakses sebuah berkas pada level rahasia yang lebih sensitif. TCB juga menunjukkan level sensitivitas pada bagian atas dan bawah tiap halaman keluaran yang dapat dibaca semua orang. Sebagai tambahan untuk informasi normal username-kata sandi autentikasi, TCB juga meningkatkan kejernihan dan authorisasi dari user-user individual dan akan mendukung setidaknya dua level sekuriti. Level-level ini bersifat hierarki, seperti layaknya seorang user dapat mengakses berbagai objek-objek yang membawa sensitivitas label yang sama dengan atau lebih rendah daripada kejernihan sekuritinya. Sebagai contoh, seorang user level-rahasia mampu mengakses sebuah berkas pada level tinggi dalam kontrol akses yang lain. Proses-proses juga terisolasi melalui penggunaan alamat yang jauh berbeda. Sebuah sistem kelas B2 memperbesar sensitivitas label-label ke setiap sistem sumber sebagai objek penyimpan. Physical device diposisikan minimum dan Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
252
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
maksimum level sekuritinya dimana sistem menggunakannya untuk ditugasi oleh physical environtment yang mana device tersbut terletak. Sebagai tambahan, sebuah sistem B2 mendukung channel-channel yang sedikit tersembunyi dan audit dari eveneven yang mungkin akan digunakan untuk mengeksploitasi channel tersebut. Sebuah sistem kelas B3 mengijinkan pembuatan dari akses-kontrol list yang mendenotasikan user-user atau grup-grup yang tidak diberi akses ke object yang diberikan. TCB juga mengandung sebuah mekanisme untuk memonitor even-even yang mungkin mengindikasikan sebuah pelanggaran dari kebijakan sekuriti. Mekanisme tersebut memberi tanda pada sekuriti administrator dan jika diperlukan, menghentikan even yang bersifat mengganggu. Klasifikasi level tertinggi adalah divisi A. Sebuah sistem kelas A1 secara fungsional ekivalen dengan sebuah sistem B3 secara arsitektur, tetapi menggunakan desain formal spesifikasi dan teknik verifikasi, memberikan sebuah derajat yang tinggi dari kepastian bahwa TCB telah diimplementasikan dengan benar. Sebuah sistem diatas kelas A1 dapat didesain dan dikembangkan pada sebuah fasilitas oleh personel yang terpercaya. Perhatikan bahwa penggunaan TCB menentukan bahwa sistem mampu membuat aspek-aspek dari kebijakan sekuriti; TCB tidak menspesifikasi apa yang seharusnya menjadi kebijakan. Secara sederhana, environment komputasi yang diberikan mengembangkan sebuah kebijakan sekuriti untuk sertifikasi dan memiliki rencana terakreditasi oleh sebuah sekuriti agency, seperti National Computer Security Center. Environment komputasi baru-baru ini membutuhkan sertifikasi yang lain, seperti TEMPEST, yang melindungi terhadap penyadapan elektronik. Sebagai contoh, sebuah sistem TEMPEST ter-sertifikasi mempunyai terminal-terminal yang dilindungi untuk mencegah hilangnya medan elektromagnetik.Perlindungan ini menentukan bahwa perlengkapan diluar ruangan atau bangunan dimana terminal diletakkan tidak dapat mendeteksi informasi apa yang akan ditampilkan oleh terminal.
14.9 Sebuah Contoh Model Sekuriti : Windows NT Microsoft Windows NT adalah secara relatif sebuah sistem operasi yang didesain untuk mendukung sebuah variasi dari fitur-fitur dan level-level dengan jangkauan minimal sekuriti untuk klasifikasi sekuriti U.S Government level C2. Level sekuriti yang digunakan NT dapat dideskripsikan minimal, tapi telah siap dikonfigurasi oleh administrator sistem untuk menuju level yang diinginkan. Sebuah program utiliti, C2config.exe disediakan untuk membantu administrator memilih pengaturan sekuriti yang diinginkan. Pada bagian ini, kita menguji fitur-fitur yang digunakan Windows NT untuk menyajikan fungsi-fungsi sekuriti. Untuk informasi lebih lanjut dan latar belakang dari Windows NT, lihat bagian 23. Model sekuriti NT didasarkan pada ide dari user account. NT mengijinkan pembuatan user account sebanyak mungkin, yang dapat dikelompukkan dalam berbagai kondisi. Akses ke objek-objek sistem kemudian dapat diijinkan maupun ditolak sesuai keinginan kita. User-user diidentifikasi ke sistem dengan sebuah unique security ID. Ketika seorang user sedang log on, NT membuat sebuah security acces token yang termasuk security ID bagi user, security ID untuk grup, dan sebuah list dari special privileges yang dimiliki user. Contoh-contoh dari special privileges termasuk Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
253
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
back-up berkas dan direktori, shut down komputer, log on secara interaktif, dan mengubah sistem clock. Setiap proses yang dijalankan NT akan mendapat salinan dari access token. Sistem menggunakan security ID pada access token untuk mengijinkan atau menolak akses ke objek sistem ketika user, atau sebuah proses mencoba untuk mengakses objek tersebut. Authentikasi dari sebuah user account adalah secara sederhana dilakukan melalui sebuah username dan kata sandi, meskipun desain modular dari NT mengijinkan pengembangan custom authentication packages. Sebagai contoh, sebuah retinal scanner dapat digunakan untuk verifikasi pengguna. NT menggunakan ide dari sebuah subjek untuk memastikan bahwa programprogram yang dijalankan seorang user tidak mendapatkan akses lebih banyak ke sistem daripada yang diperbolehkan untuk dimiliki user tersebut. Sebuah subjek digunakan untuk menelaah dan mengatur ijin-ijin untuk setiap program yang dijalankan seorang user., dan disusun dari user access token dan program tersebut beraksi sebagai wakil dari user. Karena NT beroperasi dengan sebuah model client-server, dua kelas dari subjek digunakan untuk mengontrol akses. Sebuah contoh dari subjek sederhana adalah program aplikasi yang dieksekusi seorang user setelah dia log on. Subjek sederhana tersebut ditugasi sebuah security context yang didasarkan pada sekuriti access token milik user. Sebuah server sebjuct adalah sebuah proses yang diimplementasikan sebagai sebuah server terproteksi yang menggunakan security context dari client ketika beraksi mewakili client. Teknik yang mengijinkan satu proses untuk mengambil atribut sekuriti dari lainnya disebut impersonation. Seperti yang disebutkan pada bagian 20.6, auditing adalah sebuah teknik sekuriti yang berguna. NT memiliki built in auditing, dan mengijinkan banyak perlakuan sekuriti umum dimonitor. Contoh-contoh dari auditing yang berguna untuk menelaah serangan-serangan adalah kegagalan auditing untuk even logon dan logoff untuk mendeteksi kerusakan kata sandi random, sukses auditing untuk even logon dan logoff untuk mendeteksi aktifitas logon pada jam-jam yang tidak biasa, sukses dan gagal menulis akses auditing bagi executable berkas untuk menelaah sebuah serangan virus, dan sekses dan gagal auditing untuk akses berkas yang digunakan untuk mendeteksi akses ke berkas-berkas sensitif. Atribut sekuriti dari sebuah objek dalam NT dideskripsikan oleh sebuah security descriptor. Security descriptor mengandung security ID dari pemilik objek, digunakan hanya oleh POSIX subsistem, sebuah discretionary access-control list yang mengidentifikasi user atau grup yang mana yang diberi akses atau tidak, dan sebuah sistem access control list yang mengontrol pesan-pesan auditing mana yang akan digenerate oleh sistem. Sebagai contoh, security descriptor dari berkas foo.bar mungkin dimiliki avi, dan discretionary access-control list ini : • • •
avi – semua akses group cs – read—write akses user cliff – tidak ada akses
Sebagai tambahan, berkas tersebut mungkin mempunyai sebuah sistem accesscontrol list. Sebuah access-control list disusun dari access-control entri yang mengandung security ID dari individu, dan sebuah access mask yang mendefinisikan seluruh kegiatan yang mungkin dilakukan pada objek, dengan sebuah nilai dari Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
254
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
AccessAllowed atau AccessDenied untuk masing-masing kegiatan. Berkas-berkas dalam NT mungkinmempunyai tipe-tipe akses berikut ini : ReadData, WriteData, AppendData, Execute, ReadExtendedAttribute, WriteExtendedAttribute, ReadAttributes dan WriteAttributes. Sekarang kita dapat melihat bagaimana NT mengijinkan sebuah derajat yang bagus dalam kontrol dalam hal akses ke objek-objek. NT mengklasifikasikan objek-objek sebagai container object maupun noncontainer object. Container object, seperti direktori, mampu secara logis mengandung objek yang lain. Pada dasarnya, ketika sebuah objek dibuat dalam sebuah container object, objek baru akan memiliki ijin yang sama seperti objek di atasnya (parent). Hal ini juga berlaku ketika user meng-copy sebuah berkas dari satu direktori ke direktori yang lain – berkas tersebut akan memiliki ijin-ijin dari direktori tujuannya. Akan tetapi, jika ijin tersebut diubah dalam sebuah direktori, ijin yang baru tidak secara otomatis dimiliki oleh berkas-berkas yang ada dan subdrektorinya, user mampu secara eksplisit memberi ijin-ijin ke berkas dan subdirektori tersebut jika diinginkan. Jika user memindahkan sebuah berkas ke direktori yang baru, maka ijin dari berkas tersebut juga ikut dipindahkan. Sebagai tambahan, administrator sistem dapat melarang print ke sebuah printer pada sistem untuk seluruh atau separuh hari dan dapat menggunakan NT Performance Monitor untuk membantu dia mengatasi problem yang muncul. Secara general, NT melakukan pekerjaan yang baik dalam menyediakan fitur-fitur untuk membantu memastikan sebuah computing environment yang aman. Banyak dari fitur-fitur ini tidak enable secara default, akan tetapi, untuk menyediakan sebuah environment yang lebih dekat kepada penggunanya, hal tersebut perlu dibiasakan. Untuk sebuah multiuser environment yang nyata, administrator sistem harus merumuskan sebuah rencana sekuriti dan mengimplementasikannya, menggunakan fitur-fitur yang disediakan oleh NT.
14.10 Kesimpulan Proteksi adalah sebuah masalah internal. Sekuriti harus mempertimbangkan sistem mana yang digunakan, apakah sistem komputer atau environment (manusia, bangunan, bisnis, objek-objek berharga). Data yang disetorkan pada sistem komputer harus diproteksi dari akses yang tidak ter-authorisasi, malicious destruction atau alterasi, dan kecelakaan yang tidak disengaja. Untuk memproteksi kehilangan data secara tiba-tiba lebih mudah daripada memproteksi terhadap malicious access ke sebuah data. Proteksi absolut dari informasi yang disetorkan dalam sistem komputer dari malicious abuse tidak dapat dilakukan, akan tetapi biaya bagi perpetrator dapat dibuat cukup tinggi hingga maksimum, jika tidak semua, usaha untuk mengakses informasi tersebut tanpa authority yang benar. Penyediaan authorisasi dalam sebuah sistem komputer yang bervariasi mungkin tidak cukup untuk melindungi data yang sangat sensitif. Dalam kasus ini, data bisa dienkripsi (encrypted). Data yang terenkripsi tidak dapat dibaca jika pembaca data tahu bagaimana untuk mendekripsi (decrypt) data tersebut.
Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
255
Mata Kuliah Sistem Operasi (TKE 258)
Bagian V – Proteksi & Kermanan Sistem Operasi
Latihan 14.1 Sebuah kata sandi mungkin akan diketahui oleh user yang lain dalam berbagai cara. Apakah ada cara yang sederhana untuk mendeteksi kejadian tersebut? Jelaskan jawaban anda. 14.2 Daftar dari seluruh kata sandi disimpan di dalam sistem operasi. Untuk itu, jika seorang user menginginkan untuk membaca daftar tersebut, proteksi kata sandi tidak lagi disediakan. Berikan saran sebuah skema yang akan menghindari masalah ini. (Hint : Gunakan internal yang berbeda dan representasi external.) 14.3 Sebuah tambahan eksperimen pada UNIX mengijinkan seorang user untuk menghubungkan sebuah program watchdog ke sebuah berkas, yang akan muncul setiap kali sebuah program meminta akses ke berkas tersebut. Program watchdog tersebut kemudian akan memberi ijin atau menolak akses ke berkas tersebut. Diskusikan dua keuntungan dan dua kerugian dari penggunaan watchdog untuk sekuriti. 14.4 Program UNIX, COPS, melakukan scan ke sebuah sistem mengenai kemungkinan lubang sekuriti, dan memperingatkan user untuk masalah ini. Apa saja 2 potensi yang berbahaya dari penggunaan sistem ini sebagai sekuriti? Bagaimana masalah ini dapat dibatasi atau diatasi? 14.5 Diskusikan maksud dari para manajer sistem yang terhubung ke Internet mungkin telah mendesain sistem mereka agar membatasi atau mengatasi kerusakan yang dibuat oleh worm. Apa saja efek samping dari perubahan yang anda sarankan? 14.6 Beri argumen apakah anda mendukung atau bertentangan dengan pernyataan hukum telah lepas tangan terhadap Robert Morris, Jr , untuk ciptaannya dan eksekusinya dari Internet worm. 14.7 Buatlah sebuah daftar dari enam hal sekuriti untuk sistem komputer pada bank. Untuk setiap hal yang ada pada daftar anda, beri keterangan apakah hal tersebut berhubungan dengan sekuriti fisik (physical), sekuriti manusia (human), atau sekuriti sistem operasi. 14.8 Apa saja dua keuntungan dari enkripsi data pada data yang disimpan di sistem komputer?
Bab 14 Kemanan Sistem Operasi Dosen : Arief Andy Soebroto ST., M.Kom.
256