PROTEKSI SISTEM OPERASI Marjam 0ngkosaputro* Lenny Wijaya** Abstract fhe vortous processes in an operoting system must be protected lrom one anothefs dctivities. For thot purpose, vorious mechonisms exist thot con be used to ensure thot the files, memory segments, CPU, and other resurcr con be operated on by only those proc*su thot hove goined proper outhorizotion ' from the operating system. Protection referc to o mechanism for controlling the occas of prcgmms, pr1oc6st6. or usr,lr to tlie tusr,urces dSned by o computer system. This mechonism must provide o means tor specificotion of the controls to be imposed, together with some meons of enforxement. As computer systems hove become more mphisticoted ond pervosive in their applicotions, the need to protect their integrity hos oko grown, Protedion wos originolly conceived as on adjunct to multi-progmmming opemting systems, so thot untrustwortlry userc might sofely shore d common logicol nome spoce, such os o directory of protution system that complu of ony reliability concepts hove evolved to increose the mok* use ol shored resources. fites, or shorc o common plrysical name space such as memoty. lilodem 1. TUJUAN PROTEKSI Tujuan penyediaan proteki yang pating nyata adalah untuk mencegah pengrusakan bagian dalam sistem karena dimasuh oleh pemakai yang tidak diinginkan. Tujuan lainnya yaitu untuk lebih menegaskan bahwa program yang diahifkan konsisten dengan pemakai yang seharusnya memi[iki hak. Proteksi dapat mendeteksi kesatahan antar komponen subsistem. Sumber yang tidak diproteksi tidak dapat mencegah penggunaan komputer oleh pemakai yang tidak salah. Sebuah sistem yang berbasis proteksi memungkinkan pembedaan pemakaian yang berizin dan tidak berizin. Proteksi dapat diLakukan dengan banyak cara. Beberapa ditakukan oleh manajer, ada yang memang sudah terkandung dalam desain sistem itu sendiri, dan ada juga yang ditakukan ol.eh individu/pribadi untuk melindungi berkas-berkas dan program-program mereka sendiri. * " Dosen Tetap jurusan Sistem Informasi Fakultas Teknologi Industri Universitas Pelita Hanpan Mahasiswa jurusan Sistem Informasi Fakultas Teknotogi Industri Universitas Pelita Hanpan Vot.IV, No.8, Desember 2001 Proteksi Sistem 0perasi ........ 5i 2. DAERAH PROTEKSI Sebuah sistem komputer mengandung banyak objek yang pertu diproteksi. Objek itu dapat berupa perangkat keras sepeai prosesor, memori, disk dives, tape diva, maupun pinter; dapatjuga berupa perangkat lunak misatnya proses, fite, basis data atau pengiriman data. Setiap objek memiliki nama yang unik, berbeda satu dengan yang lainnya datam suatu sistem, yang dapat diproses dengan perintah-perintah yang terbatas, dan ada juga yang harus dijalankan dengan perintah-perintah yang tengkap. Reod dan wnte merupakan operasi untuk sebuah fite; sedangkan up dan down merupakan operasi pada pengiriman data. 0bjek merupakan tipe data abstrak. 0perasi-opensi itu tergantung pada objeknya. Contoh, prosesor hanya bisa dijalankan, memori dapat dibaca dan ditulis sementara card reader hanya bisa dibaca. Tope dives dapat dibaca dan ditutis. Berkas data dapat dibuat, dibuka, ditutis, ditutup dan dihapus; berkas program dapat dibaca, ditulis, dijatankan dan dihapus. Maka, nyatatah bahwa perlu untuk membatasi pengaksesan objek oleh pemakai yang tidak diinginkan. Lebih jauh [agi, mekanisme ini dapatjuga membatasi subbagian dari operasi yang diinginkan. Contoh: A diperbotehkan untuk membaca berkas tidak boleh menutis pada berkas ini. 3. F, tetapi STRUKTUR DAERAH Sebuah proses yang beroperasi datam sebuah daerah proteksi menyatakan sumber daya yang bisa diakses. Setiap daerah mengidentifikasikan himpunan objek dan tipe operasi yang diperbolehkan. Kemampuan untuk menjalankan sebuah operasi disebut hak akses. Sebuah daerah merupakan sekumputan hak-hak akses, masing-masing datam susunan <nama objek, kumputan hak>. Contoh, jika daerah D mempunyai hak akses .fite F, {baca,tu[is]>, maka proses-proses datam daerah D boleh membaca dan menutis fite F, tetapi operasi yang lain tidak diizinkan. Daerah-daerah tidak perlu dipisah-pisahkan, tetapi bisa diadakan pembagian hak akses. Contoh, ada 3 daerah: D!,02, D3. Hak akses <04,{print}> dibagi ke D2 dan D3, di mana D2 darl D3 boteh melakukan perintah print Objek 4. Sebagai catatan, proses dijatankan di D1 untuk menutis dan membaca 01; di sisi lain proses-proses di daenh D3 yang dapat menjalankan objek 01. 54 Vol..IV, No.8, Desember 2001 Proteksi Sistem Opensi ........ ( ( ( 0r,{read,write} [r,{read,write} 0r,{execute} ) ) ( !r,{write} ) ( [r,tnrint] ) ( )( 0r,{uecute}) [r,tread] ) Gabungan proses dan daerahnya dapat bersifat statik maupun dinamik. Masatah pada proteksi dinamik lebih memertukan pemecahan yang serius dibandingkan dengan kasus statik Jika statik, harus didefinisikan bahwa daerah metiputi hak baca dan tulis. Sususan ini menyediakan lebih banyak hakyang dibutuhkan oleh setiap 2fase, di mana hta juga memitliki hak baca untuk proses yang hanya mengizinkan kita untuk menutis. Maka kebutuhan untuk mengetahui prinsip dasar terganggu. Kita harus mengizinkan isi daerah untuk dimodifikasi sehingga setatu memungkinkan hak akses yang minima[. Jika dinamis, mekanisme dapat mengizinkan proses untuk sating bertukar dari daerah yang satu ke daenh yang lainnya. Jika tidak dapat mengubah isi daerah, kita dapat menyediakan daenh baru dengan efuk yang sama dengan apa yang ingin ditukar, kemudian menukarkan * * isi daerah baru dengan daerah yang ingin dipertukarkan. Sebuah daerah dapat direatisasikan dengan banyak cara: Setiap pemakai merupakan daerah. Sekumpulan objek yang dapat diakses tergantung pada identitas user. Pertukann daerah terjadi jika pemakai juga bertukar. Pada umumnya terjadi pada saat pemakai [ama keluar dan pemakai baru masuk. Setiap proses merupakan daerah. Setiap objek yang dapat diakses tergantung pada identitas proses. Pertukann daerah ke suatu proses terjadi ketika sebuah proses mengirim pesan ke proses lain dan menunggu balasannya. * Setiap prosedur merupakan daenh. Sekumpu[an objek yang dapat diakses berhubungan dengan variabel [oka[ yang didefinisikan dalam sebuah prosedur. Pertukaran daerah terjadi ketika pemanggilan prosedur dilakukan. 4. MATRIKS AKSES Matriks akses merupakan modet proteksi yang digambarkan datam bentuk matriks. Baris mewakili daerah, dan kolom mewakili objek. Setiap etemen pada matriks mewakili sekumputan hak akses. Karena objek didefinisikan dengan kotom, kita dapat mengabaikan nama objek dari hak akses. Etemen akses(ij) mendefinisikan sekumpulan operasi di mana proses berjatan di daerah D1 dapat mempengaruhi objek 0j. Vot.IV, No.8, Desember 2001 Proteki Sistem 0perasi ........ 55 object domain D1 F1 t2 F3 Baca Baca Print D2 D3 D4 printer Baca Baca tulis Execute Baca tulis Gambar 1 Ada 4 daerah dan 4 objek: 3 fite (F1, f,2, F3) dan sebuah printer. Ketika sebuah proses berjatan di daerah D1, ia dapat membaca fite F1 dan F3. Proses di D4 mempunyai hak yang sama dengan daerah D1, tapi sebagai tambahan, ia juga dapat menulis ke file F1 dan F3. Printer hanya dapat dijatankan oleh proses-proses pada daerah D2. Matriks akses menggambarkan bermacam-macam peratunn. Kita harus yakin bahwa di Di dapat diakses oteh objek yang terdapat di baris i. Peraturan proteksi dapat diimptementasikan oleh matriks akses. Ini metiputi hak-hak yang seharusnya terkandung dalam etemen ke (i j). Kita juga harus memutuskan di daerah mana setiap proses akan dijalankan. Peraturan ini biasanya diputuskan oleh sistem operasi. Pemakai biasanya memutuskan isi dari matriks akses. Ketika pemakai membuat objek 0j, kotom 0j ditambahkan ke matriks yang tepat, yang disebutkan oleh pembuat. Pemakai juga dapat memutuskan untuk memberikan hak lain ke etemen lain sesuai yang proses yang berjatan dibutuhkan. Matriks akses menyediakan sebuah mekanisme yang tepat untuk mendefinisikan dan mengimptementasikan pengendatian yang ketat antan gabungan statik dan dinamik antara proses dan daerah. Ketika kita menukar sebuah proses dari sebuah daenh ke daenh [ain, kita sedang menjalankan sebuah operasi (tukar) pada sebuah objek (daerah). Kita dapat mengendatikan pertukaran daerah dengan menggunakan daerah di antara objekobjek pada matriks. Sama saja dengan ketika kita menukar isi matriks, kita metakukan hta dapat mengendatikan pertukaran ini dengan itu sendiri sebagai objek. Karena setiap etemen pada matriks dapat dimodifikasi sendiri, kita harus menyadari setiap etemen perlu diproteksi. operasi pada sebuah objek: matriks [agi, menganggap matriks Proses seharusnya dapat ditukar dari satu daerah ke daerah lainnya. Pertukaran Di ke Dj ha'nya dapat ditakukan jika dan hanya jika hak aksesnya merupakan etemen akses(ij). Proses di D2 dapat ditukar ke D3 atau ke D4. Proses di D4 dapat ditukar ke D1 dan dari D1 bisa ke D2. Perubahan kendati yang diizinkan terhadap isi matriks memertukan 3 operasi tambahan : penya[inan, kepemitikan, da n pen gendatian. 56 Vot.IV, No.8, Desernber 2001 Proteksi Sistem Operasi ........ 0bject Laser Domain F1 F2 Baca D1 printer F3 D1 Baca D3 Baca Baca D4 tulis D4 Tukar Tukar Tukar Print D2 D3 D2 Laksanakan Baca tulis Tukar Gambar 2 Kemampuan untuk menyatin hak akses dari satu daerah (baris) dari matriks yang satu ke matriks yang [ain ditandai oteh tanda bintang. Tanda bintang ditambah*an ke kotom akses di mana hak tersebut didefinisikan. Contoh sebuah proses yang dijatankan di D2 dapat menyatin operasi baca ke setiap. elemen yang tergabung ke fite F2. 0bject Domain t2 F7 D1 Laksanakan D2 Laksanakan D3 Laksanakan F3 Tutis * Baca * Laksanakan F2 F3 Gambar 3a 0bject F1 Domain Tutis D1 Laksanakan D2 Laksanakan Baca * D3 Laksanakan Baca * Lalaanakan Gambar 3b Ada 2 varian pada skema rnr: 1. Hak akses disalin dari akses(ij) ke akses(kj), kemudian dipindahkan lagi ke akses(ij). HaI 2. ini tebih merupakan pemindahan hak daripada penyatinan hak. ini ada batasnya. Maka, ketika hak R* disalin dari akes(ij) hanya hak R (bukan R*) yang terbentuk. Proses yang berjatan di daerah lagi menyatin hak R. Penyatinan hak ke akes(kj), Dk tidak bisa Sebuah sistem boteh memilih satah satu dari ketiga hak tersebut dan bisa juga memakai ketiganya tetapi secara terpisah, yaitu: penyalinan, pemindahan, dan penyatinan terbatas. Hak untuk menyalin mengizinkan sebuah proses untuk menyatin beberapa hak dari satu etemen pada satu kolom ke etemen tain pada kotom yang sama. Kita juga Vot.IV, N0.8, Desember 2001 Proteksi Sistem 0pensi ........ 57 membutuhkan sebuah mekanisme untuk penambahan maupun pengunngan hak. Pemitik hak mengendatikan operasi-operasi ini. Jika akses(ij) metiputi pemitik hak, maka prosesproses yang berjatan di daerah Di dapat menambah maupun menghapus beberapa hak pada elemen maupun pada kolom j. Contoh, daerah D1 adalah pemitik F1 sehingga dapat menambah dan menghapus hak-hak pada kolom F1. Sama saja dengan daerah D2 adalah pemitik F2 dan F3 maka dapat menambah dan menghapus hak datam kedua kotom ini. Penyalinan dan kepemilikan hak mengizinkan sebuah proses untuk mengubah elemen dalam 1 kotom. Sebuah mekanisme dibutuhkan untuk mengubah elemen-elemen dalam 1 baris. Hak kendati hanya dapat diterapkan ke daerah objek. Jika akses(ij) memitiki hak pengendalian, maka proses-proses di daenh Di dapat menghapus hak akses dari kotom j. Contoh, pada gambar, hak pengendatian pada akses(D2,D4); maka proses pada'D2 dapat memodifikasi daerah D4. Meskipun penyatinan dan kepemitikan hak menyediakan sebuah mekanisme untuk membatasi propagasi hak akses, tetapi tidak menyediakan fasilitas-fasititas yang sesuai untuk mencegah propagasi informasi. Masalahnya adalah tidak ada informasi yang dapat dipindahkan dari lingkungan eksekusinya atau disebut masalah pengisolasian. 5. PENERAPAN MATRIKS AKSES 5.1. TABEL UMUM Terdiri dari susunan tripte (daerah asat, objek dan hak). Kapanpun operasi M dilakukan pada objek 0j datam daerah asal Di, tabel umum akan dicari untuk tripte (Di,0j,Rk) di mana M Rk. Jika tripet ini ditemukan, operasi akan di[anjutkan; jika tidak, kondisi tertentu (satah) akan timbu[. Implementasi ini mengatami beberapa kekurangan. Tabetnya biasa besar dan tidak dapat disimpan di memori utama, jadi tambah an l/0 dipertukan. Teknik "virtual memotyt" sering digunakan untuk mengatur tabel ini. Untuk tambahan, sulit untuk mengambil keuntungan dari pengetompokan khusus objek atau daerah asat. Contohnya, jika objek tertentu dapat dibaca oleh semua onng, harus mempunyai etemen yang terpisah pada setiap daerah asat. 5.2. DAFTAR AKSES UNTUK OBJEK Setiap kolom pada matriks akses dapat diimptementasikan sebagai daftar akses untuk satu objek. Jetas bahwa etemen yang kosong bisa dibuang. Daftar hasit untuk setiap objek terdiri dari pasangan teratur (daerah asat,hak), yang menjelaskan semua daenh asal dengan hak akses yang tidak kosong untuk objek tersebut. 58 Vot.IV No.8, Desember 2001 Proteksi Sistem Operasi ........ ini bisa diperpanjang dengan mudah untuk menjelaskan sebuah daftar ditambah keadaaan awal dari hak akses. Saat pengoperasian M pada objek 0j diusahakan pada daerah asal Di, kita mencari daftar akses untuk objek 0j, mencari elemen (Di, Rt) dengan M Rk. Jika etemennya ditemukan, kita mengizinkan operasi; jika tidak, kita memeriksa keadaan awa[. Jika M ada pada keadaan awat, kita mengizinkan akses. Selain itu, akses ditol.akkan ke sebuah kondisi tertentu muncut. Perhatikan bahwa untuk efisien, kita mengecek keadaan awaI dahu[u, dan kemudian mencari daftar akses. Pendekatan 5.3. DAFTAR KUMPULAN UNTUK DAERAH ASAL Daftar kemampuan untuk daerah asal adalah daftar dari objek bersama dengan operasi yang diizinkan pada objek. Sebuah objek sering direpresentasikan dengan nama fisik dari alamat, disebut kemampuan. Untuk melaksanakan operasi M pada objek-objek proses metakukan operasi M, menentukan kemampuan (penunjuk) untuk objek 0j sebagai parameter. Kepemilikan sederhana dari kemampuan berarti bahwa akses diizinkan. 0j, Daftar kemampuan diasosiasikan dengan daerah asa[, tetapi tidak pemah langsung bisa diakses ke proses yang berlangsung di daenh asa[. Daftar kemampuan sendiri merupakan objek yang dilindungi, dijaga oleh sistem operasi dan diakses oleh program secara tidak langsung. Pertindungan berdasarkan kemampuan bergantung pada kewajiban bahwa kemampuan itu tidak pernah diizinkan untuk pindah ke alamat manapun yang bisa diakses oleh pemakai (di mana bisa dilakukan perubahan). Jika semua kemampuan aman, objek yang ditindungi juga terlindung terhadap akses yang tidak diinginkan. Kemampuan ini diumpamakan seperti penunjuk yang terjamin, untuk memenuhi kebutuhan proteksi sumber-sumber daya yang terlihat seperti sistem komputer multifungsi. Idenya adatah (dari sudut pandang pemakai sistem) menyediakan dasar-dasar proteksi yang bisa digunakan sampai ke [eve[ aplikasi. Untuk menyediakan proteksi yang melekat, kita harus membedakan kamampuan objek-objek yang bertainan dan menginterpretasikannya dengan mesin abstrak di mana program dengan [eve[ lebih tinggi berjatan. Kemampuan ini biasanya dibedakan dengan data yang lain dengan dua cara: 1. Masing-masing objek memitih tanda untuk menggambarkan jenisnya sebagai kemampuan ataupun data yang bisa diakses. Tanda itu sendiri harus bisa diakses langsung oleh program-program aplikasi. Perangkat keras yang disediakan dapat digunakan untuk ini. Meskipun hanya 1 bityang dipergunakan untuk membedakan kemampuan dengan objek tainnya, semua objek dapat ditandai dengan tipe perangkat kerasnya. Karena itu perangkat keras dapat membedakan bi[angan butat, bitangan memaksakan batasan floating pornf, penunjuk, Booleans, karakter, instruksi-intruksi, kemampuan dan nitai yang tak dapat dikenali dengan tanda yang dimitiki. Vot.IV, No.8, Desember 2001 Proteki Sistem Opensi ........ 59 2. Lainnya, ruang untuk alamat yang berhubungan dengan prognm dapat dipisah menjadi dua bagian. Bagian pertama, dapat diakses ke program dan berisi data-data dan perintah-perintah program. Bagian lainnya mengandung daftar kemampuan yang dapat diakses hanya oteh sistem operasi. 5.4. MEI(ANISME GEMBOK-KUNCI Skema kunci ini menyesuaikan daftar akses dan daftar kemampuan. Setiap objek memitih bit yang unik yang disebut gembok seperti setiap daerah yang memitiki bit yang unik yang disebut kunci. Sebuah proses datam 1 daerah dapat diakses oteh objdk hanya jika daerah tersebut memi[iki kunci yang cocok dengan gembok objeknya. Sebagaimana daftar kemampuan seharusnya, daftar kunci untuk setiap daerah harus diatur sistem operasi yang mewakiti daerah itu. Pemakai tidak diperbotehkan untuk memodifikasi daftar kunci dan gembok secara langsung. 5.5. PERBANDINGAN Daftar kemampuan tidak berhubungan secan langsung dengan kebutuhan pemakai. proses-proses yang umum. Proses Ini hanya berguna untuk menempatkan informasi bagi yang mencoba untuk akses harus menunjukkan kemampuannya untuk mengakes. Kemudian, sistem proteksi memeriksa apakah kemampuan itu sah. Mekanisme gembok-kunci merupakan penengah untuk kedua skema ini. Mekanisme ini efehif dan fleksibel, bergantung pada panjang kunci. Kunci-kunci dapat dipindahkan dari satu daerah ke daerah [ain. Sebagai tambahan, hak akses dapat dicabut secara efektif dengan teknik yang sederhana yaitu menukar kunci-kunci yang berhubungan dengan objek- objek. Kebanyakan sistem menggunakan gabungan daftar akses dan kemampuan. Ketika sebuah proses mencoba untuk mengakses sebuah objek, hak akses dicari. Jika hak ditotak, terjadi kondisi pengecuatian. Jika tidak, sebuah kemampuan terbentuk dan ditumpangkan ke proses. Petunjuk tambahan menggunakan kemampuan untuk mendemonstnsikan dengan [ancar bahwa sete[ah akses terakhir diperbotehkan, kemampuan dirusak. Sebagai contoh, pikirkan sistem berkas. Setiap berkas mempunyai daftar akses yang terhitung. Pada saat sebuah proses membuka sebuah berkas, struhur direktori dicari untuk menentukan berkasnya, izin akses diperiksa dan penyangga diatokasikan. Semua informasi ini direkam dalam sebuah masukan baru di tabel berkas untuk berkas yang baru dibuka. Masukan tabel berkas dihapus. Karena tabel berkas dirawat oleh sistem opensi, maka tidak akan bisa dirusak oleh pemakai. Oteh karenanya, berkas yang dapat diakses oteh pemakai hanya yang sudah dibuka. Karena akses diperiksa pada saat berkas dibuka, proteksi terjamin. 60 Vot.IV, No.8, Desember 2001 Proteksi Sistem 0pensi ........ Pertu dicatat bahwa hak untuk diakses harus dicek untuk setiap akses, dan masukan tabel berkas mempunyai kemampuan hanya untuk operasi yang diizinkan. Jika sebuah berkas dibuka untuk dibaca, maka akses untuk kemampuan membaca diletakkan pada masukan tabel berkas. Jika ada usaha untuk menyalin ke dalam berkas, sistem menentukan pelanggaran proteksi ini metatui perbandingan antara operasi yang diminta dengan kemampuan pada masukan tabel berkas. 6. KESIMPULAN Sistem komputer mengandung banyak objek. Objek-objek ini pertu ditin'dungi penggunaan yang satah. Objek bisa berupa perangkat kens (seperti memori, prosesor, dari I/0) ataupun perangkat [unak (seperti berkas, program, dan tipe data abstrak). Hak akses adalah izin untuk metakukan operasi pada sebuah objek. Daerah adalah satu set hak akses. Proses yang dilakukan di daerah dan boteh menggunakan hak akses di daerah untuk mengakses dan memanuputasi objek. Matriks akses adalah model umum dari proteksi. Matriks akses menyediakan mekanisme untuk pertindungan tanpa memaksakan kebijaksanaan proteksi tertentu pada sistem atupun pemakai. Pemisahan kebijaksanaan dan mekanisme adalah property design atau peratatan yang utama. Matriks aksesjarang dipakai. Biasanya diimptementasikan sebagai daftar akses yang dihubungkan dengan setiap objek, atau sebagai daftar kemampuan yang dihubungkan dengan setiap daerah. Kita bisa memasukkan proteksi dinamis pada model matriks akses dengan mempertimbangkan daerah dan matriks akses sendiri sebagai objek. Sistem sebenarnya lebih terbatas, dan lebih mengarah pada penyediaan proteksi untuk berkas saja. Sebagai contoh, UNIX representatif, menyediakan baca, tulis dan petaksanaan proteksi terpisah dari pemitik, grup dan masyarakat umum untuk setiap berkas. MULTICS menggunakan struktur cincin untuk tambahan ke akses berkas. Hydra, sistem CAP Cambridge, dan Mac adatah sistem kemampuan yang meluaskan proteksi ke objek perangkat lunak yang sudah didefinisikan oleh pemakai. DAFTAR PUSTAKA 1. Mitenkovic, Milan. 0peroting Systems Concepts and Design; McGraw Hi[t, 1992. 2. Sitberschatz, Abraham. L. Peterson, James; 0peroting System ConcepB; AddisonWesley, 1989. 3. Tanenbaun S., Andrew. Modem Opemting Systems; Pretince Hat[ International Edition, 7992. 4. Tanenbaum; Woodhult. Operoting Systems, Design and Implementation, Second Edition. Prentice Ha[t, 1997. VoLIV, N0.8, Desember 2001 Proteksi Sistem 0pensi........ 61