bab 13 - prokteksi

15
Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi BAB 13 PROTEKSI SISTEM OPERASI Proses yang bermacam-macam dalam sistem operasi harus dapat dijaga dari aktivitas lainnya. Untuk tujuan tersebut, berbagai mekanisme dihasilkan dan harus dapat digunakan untuk menjaga berkas, segmen memori, CPU, dan resource lain dapat dioperasikan melalui proses tersebut dimana pada hal ini telah diberi otoritas dari sistem operasi. Proteksi mengacu pada pada sebuah mekanisme untuk mengontrol akses dari program, proses, atau user kepada resource yang didefinisikan oleh sistem komputer. Mekanisme ini harus menyediakan cara untuk spesifikasi dari kontrol yang akan dibutuhkan, bersama dengan cara dari pengaplikasiannya. Kita membedakan antara proteksi dan sekuritas, dimana dalam hal ini adalah sebuah kalkulasi dari kepastian bahwa integritas dari sistem beserta datanya tetap terjaga. Sekuritas sendiri adalah topik yang lebih luas dari pada proteksi, dan akan dibahas pada bab 14. Pada bab ini, kita akan mengamati problem dari proteksi secara detil, dan membangun sebuah model yang termerger dalam hal mengimplementasi sistem proteksi. 13.1 Tujuan dari Proteksi Seiring dengan sistem komputer yang telah menjadi lebih pintar dan pemakaiannya yang meluas banyak bidang, kebutuhan dalam menjaga integritasnya pun semakin berkembang. Pada awalnya proteksi dibuat sebagai sebuah penambahan pada sistem operasi multiprogra, dalam hal ini memungkinkan user untuk men-share ruang nama logical umum dengan aman, seperti direktori dari berkas, atau men-share ruang nama fisik, seperti memori. Konsep proteksi moderen telah berkembang untuk meningkatkan reabilitas dari sistem yang kompleks dimana hal ini menggunakan shared resource. Ada beberapa alasan dalam penyediaan proteksi. Yang terlihat jelas adalah kebutuhan untuk menjaga terjadinya kerusakan, pelanggaran yang disengaja pada sebuah kontrol akses oleh user. Pada kepentinga yang lebih umum, hanya saja, kebutuhan untuk memastikan bahwa setiap komponen program berjalan dalam sebuah sistem yang menggunakan sistem resource hanya konsisten dengan ketentuan yang tertulis untuk penggunaan resource tersebut. Hal ini membutuhkan sebuah sistem yang dapat terjaga dengan baik. Proteksi meningkatkan reabilitas dengan mendeteksi kesalahan (error) laten pada interface anatara subsistem dari komponen. Deteksi awal dari error interface dapat menjaga adanya kontaminasi pada sebuah subsistem yang sehat dari subsitem lain yang mengalami gangguan. Resource yang tidak terlindungi tidak dapat bertahan terhadap serangan dari luar. Sistem protection-oriented menyediakan cara untuk memisahkan antara penggunaan sistem yang legal dengan yang tlidak legal. Bab 13 Proteksi Sistem Operasi 220 Dosen : Arief Andy Soebroto ST., M.Kom.

Upload: ade-asti

Post on 11-Jun-2015

446 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

BAB 13 PROTEKSI SISTEM OPERASI

Proses yang bermacam-macam dalam sistem operasi harus dapat dijaga dari aktivitas lainnya. Untuk tujuan tersebut, berbagai mekanisme dihasilkan dan harus dapat digunakan untuk menjaga berkas, segmen memori, CPU, dan resource lain dapat dioperasikan melalui proses tersebut dimana pada hal ini telah diberi otoritas dari sistem operasi.

Proteksi mengacu pada pada sebuah mekanisme untuk mengontrol akses dari program, proses, atau user kepada resource yang didefinisikan oleh sistem komputer. Mekanisme ini harus menyediakan cara untuk spesifikasi dari kontrol yang akan dibutuhkan, bersama dengan cara dari pengaplikasiannya. Kita membedakan antara proteksi dan sekuritas, dimana dalam hal ini adalah sebuah kalkulasi dari kepastian bahwa integritas dari sistem beserta datanya tetap terjaga. Sekuritas sendiri adalah topik yang lebih luas dari pada proteksi, dan akan dibahas pada bab 14.

Pada bab ini, kita akan mengamati problem dari proteksi secara detil, dan membangun sebuah model yang termerger dalam hal mengimplementasi sistem proteksi.

13.1 Tujuan dari Proteksi

Seiring dengan sistem komputer yang telah menjadi lebih pintar dan pemakaiannya yang meluas banyak bidang, kebutuhan dalam menjaga integritasnya pun semakin berkembang. Pada awalnya proteksi dibuat sebagai sebuah penambahan pada sistem operasi multiprogra, dalam hal ini memungkinkan user untuk men-share ruang nama logical umum dengan aman, seperti direktori dari berkas, atau men-share ruang nama fisik, seperti memori. Konsep proteksi moderen telah berkembang untuk meningkatkan reabilitas dari sistem yang kompleks dimana hal ini menggunakan shared resource.

Ada beberapa alasan dalam penyediaan proteksi. Yang terlihat jelas adalah kebutuhan untuk menjaga terjadinya kerusakan, pelanggaran yang disengaja pada sebuah kontrol akses oleh user. Pada kepentinga yang lebih umum, hanya saja, kebutuhan untuk memastikan bahwa setiap komponen program berjalan dalam sebuah sistem yang menggunakan sistem resource hanya konsisten dengan ketentuan yang tertulis untuk penggunaan resource tersebut. Hal ini membutuhkan sebuah sistem yang dapat terjaga dengan baik.

Proteksi meningkatkan reabilitas dengan mendeteksi kesalahan (error) laten pada interface anatara subsistem dari komponen. Deteksi awal dari error interface dapat menjaga adanya kontaminasi pada sebuah subsistem yang sehat dari subsitem lain yang mengalami gangguan. Resource yang tidak terlindungi tidak dapat bertahan terhadap serangan dari luar. Sistem protection-oriented menyediakan cara untuk memisahkan antara penggunaan sistem yang legal dengan yang tlidak legal.

Bab 13 Proteksi Sistem Operasi 220Dosen : Arief Andy Soebroto ST., M.Kom.

Page 2: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

Tugas dari proteksi pada sebuah sistem komputer adalah untuk menyediakan sebuah mekanisme bagi implementasi dari aturan yang mengatur penggunaan resource. Aturan ini dapat diterapkan pada berbagai cara. Beberapa telah ditentukan dalam desain dari sistem, dimana yang lainnya diformulasikan oleh manajemen dari sistem tersebut. Sedangkan yang lainnya lagi tetap berdiri secara individu bersama dengan user untuk menjaga berkas dan program yang ada. Sebuah sistem proteksi harus mempunyai fleksibilitas untuk manjalankan aturan lain yang dipasangkan dengan sistem yang ada.

Aturan untuk penggunaan resource bisa bermacam-macam, tergantung pada apalikasinya, dan mereka memungkinkan untuk diubah berulang kali. Untuk alasan ini, proteksi tidak dapat lagi dipandang sebagai bahan yang harus difikirkan oleh desainer sistem operasi. Hal ini juga harus dapat bertindak sebagai alat bagi programmer aplikasi, yang menjaga terjadinya penyalahgunaan. Dalam bab ini, kita menjabarkan tentang mengapa mekanisme proteksi dari sistem operasi harus dilakukan, sehingga desainer aplikasi dapat menggunakannya dalam pemodelan software proteksi.

Prinsip yang sangat penting adalah pembedaan anatara mekanisme dengan aturan (policy). Mekanisme menentukan bagaimana sesuatu diselesaikan. Pembedaan ini penting terhadap fleksibilitas. Aturan umumnya sering berubah-ubah. Dalam kasus terburuk, setiap perubahan pada peraturan membutuhkan perubahan pada fundamental dari mekanismenya. Mekanisme yang umum lebih disukai, karena perubahan pada aturan hanya membutuhkan modifikasi dari beberapa parameter dari sistem saja.

13.2 Area (Domain) Dari Proteksi

Sistem komputer merupakan gabungan dari banyak proses dan objek. Objek dalam hal ini kita artikan sebagai objek hardware (seperti CPU, segmen memori, printer, disket, dan drive), dan objek software (seperti berkas, program, dan semaphore). Tiap objek mempunyai nama yang khusus yang membedakan mereka dengan lainnya pada suatu sistem, dan tiap-tiap dari mereka dapat diakses hanya melalui operasi yang khusus pula. Secara esensial objek adalah tipe data abstrak.

Operasi yang ada memnungkinkan untuk bergantung pada objeknya. Contoh, CPU hanya bisa dinyalakan. Segmen memori dapat membaca maupun menulis, dimana card reader hanya bisa membaca saja. Drive dapat dibaca, ditulis, ataupun, di-rewound. Berkas data dapat dibuat, dibuka, dibaca, ditulis, ditutup, dihapus; berkas program dapat dibaca, ditulis, dijalankan, dan dihapus.

Jelasnya, sebuah proses hanya boleh mengakses resource yang memang dibolehkan. Untuk lebih lanjut, kapan saja, hal ini diharuskan untuk hanya mengakses resource yang memang dibutuhkan saat itu. Kebutuhan ini, umumnya mengacu pada prinsip need-to-know, berguna dalam membatasi jumlah dari kesalahan proses yang terjadi pada sistem. Contoh, ketika p melibatkan procedur A, prosedur ini harus dapat megakses hanya variabelnya sendiri dan parameter yang memang diberikan padanya; mereka tidak diperbolehkan untuk dapat mengakses semua variabel dari proses p. Hal yang sama, anggap kasus dimana proses p melibatkan compiler untuk meng-compile sebuah berkas tertentu. Compier tersebut tidak boleh untuk dapat mengakses berkas arbitray-nya, tapi hanya subset dari berkas yang memang telah ditentukan (seperti

Bab 13 Proteksi Sistem Operasi 221Dosen : Arief Andy Soebroto ST., M.Kom.

Page 3: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

berkas source, berkas listing, dan lainnya) berhubungan dengan berkas yang akan di-compile. Sebaliknya, compiler memingkinkan untuk mempunyai penggunaan berkas pribadi untuk menghitung atau hal-hal yang bertujuan untuk optimalisasi, dimana proses p tidak dapat mengakses.

13.2.1 Struktur Domain

Untuk memfasilitasi skema ini, kita memperkenalkan konsep dari proteksi domain. Sebuah proses dilakukan didalam domain proteksi, yang menspesifikasi resource yang mungkin diakses. Setiap domain menjabarkan sebuah set dari objek tipe dari operasi yang mungkin dilibatkan pada tiap objek. Kemampuan untuk menjalankan sebuah operasi pada sebuah objek disebut access right (hak akses). Sebuah domain adalah gabungan dari beberapa access right, dan tiap-tiap dari mereka adalah pasangan yang teratur <object-name, right-set>. Contoh, bilamana domain D mempunyai access right <berkas F, {read, write}>, maka proses yang dilaksanakan pada domain D dapat membaca dan menulis berkas F; hanya saja proses ini tidak dapat melaksanakan operasi lain pada objek tersebut. Domain tidak membutuhkan untuk terpisah; mereka memungkinkan untuk membagi access right. Contoh, pada gambar 13.1, kita mempunyai 3 domain : D1, D2, D3. Access right-nya < O4, {print} > dibagi pada D2 dan D3, kita anggap bahwa proses yang terjadi pada salah satu dari 2 domain ini dapat menulis objek O4. Perhatikan bahwa dalam sebuah proses harus dapat mengeksekusi pada domain D1 untuk menulis dan membaca objek O1. Sedangkan di pihak lain, hanya proses domain di D3 memungkinkan untuk mengeksekusi objek O1.

Asosiasi antara sebuah proses dan sebuah domain bisa saja tetap (bila set dari resource yang ada untuk sebuah proses telah ditetapkan pada kondisi sebelumnya) atau dinamis.

Dan pada hal yang lebih ketat, sistem tidak dapat merubah sebuah user ID secara gampang. Dalam kondisi ini, teknik khusus harus digunakan untuk user diperbolehkan untuk mengakses fasilitas ini. Misalnya, sebuah proses daemon bisa saja dimulai pada awal booting dan dijalankan sebagai user ID yang khusus. Selanjutnya user menjalankan program yang berbeda, yang mengirimkan permintaan pada proses ini kapan saja mereka membutuhkan untuk menggunakannya. Metode ini digunakan oleh sistem operasi TOPS-20.

Pada sistem ini perlindungan harus dilakukan dalam penulisan program. Kelalaian dapat menghasilkan kurangnya proteksi total pada sistem. Umumnya, program ini adalah yang pertama untuk diserang oleh orang-orang yang mencoba masuk pada sistem; sialnya penyerang sering sekali sukses untuk menjebol sistem. Misalnya, ada banyak contoh diamana sekuritas telah dijebol pada sistem Unix dikarenakan oleh fitur setuid. Kita akan membahas sekuritas lebih lanjut pada bab 14.

13.2.2.2. MULTICS

Bab 13 Proteksi Sistem Operasi 222Dosen : Arief Andy Soebroto ST., M.Kom.

Page 4: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

Dalam sistem MULTICS, domain proteksi diatur secara hirarki pada sebuah struktur cincin. Setiap cincin berhubungan pada sebuah domain tunggal (gambar 13.2). Cincin ini diberi nomer dari 0 sampai 7 dan biarkan D1 dan DJ menjadi cincin domainnnya. Bilamana J < I maka DI adalah subset dari DJ. Yaitu, adalah proses eksekusi pada domain DJ mempunyai privilege lebih daripada proses eksekusi pada domain DI. Proses yang terjadi pada domain 0 mempunyai privilege paling banyak. Bilamana hanya ada 2 cincin skema ini ekivalen dengan mode monitor-user pada eksekusi, dimana mode monitor berhubungan dengan D0 dan mode user berhubungan dengan D1.

MULTICS mempunyai ruang alamat yang tersegmentasi; dimana tiap segmen adalah sebuah berkas. Tiap segmen diasosisakan dengan 1 cincin. Sebuah deskripsi dari segmen mengikutsertakan sebuah masukan yang mengidentifikasi dari nomer cincin. Hal ini mengikutsertakan 3 access bit untuk mengontrol dalam hal membaca, menulis, dan eksekusi. Asosiasi antara segmen dan cincin adalah sebuah keputusan diamana kita tidak bahas pada buku ini. Pada tiap proses, counter dari sebuah current-ring-number diasosiakan , mengidentifikasi cincin pada proses mana sedang terjadi. Ketika sebuah proses dieksekusi pada sebuah cincin i, hal ini tidak dapat mengakses sebuah segmen yang terasosiasikan dengan cincin j , ketika j < i. Hal ini bisa mengakses sebuah segmen yang terasosiasi dengan cincin k, k ≥ i. Hanya saja tipe dari aksesnya tertutup sesuai dengan access bit yang terasosiasikan dengan segmen tersebut.

Gambar 13.2 Struktur cincin MULTICS

Domain switching pada MULTICS terjadi ketika sebuah proses bersilangan dari satu cincin ke cincin lainnya dengan memanggil sebuah prosedur pada cincin yang berbeda. Jelasnya, switch ini harus diselesaikan pada sebuah permasalahan kontrol; di pihak lain, sebuah proses dapat mulai mengeksekusi pada cincin 0 dan tidak ada proteksi yang tersedia ataupun yang disediakan. Untuk memperbolehkan adanya controlled domain switching, kita memodifikasi ring field dari segment descriptor untuk diikutsertakan pada :

Bab 13 Proteksi Sistem Operasi 223Dosen : Arief Andy Soebroto ST., M.Kom.

Page 5: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

Access bracket : sepasang dari integer, b1 dan b2 dimana b1 < b2. Limit : sebuah integer b3, dimana b3 > b2

List of gates : mengidentifikasi entry point (gates) pada segmen yang akan dipanggil

Bila sebuah proses dieksekusi pada cincin i memanggil sebuah prosedur (segmen) dengan access bracket (b1,b2), maka panggilan dilakukan bila b1< i <b2, dan nomor cincin yang ada tetap i. Bila tidak maka sebuah trap pada sistem operasi terjadi, dan situasi dapat diatasi dengan kondisi:

Bila i < b1, maka panggilan terjadi, karena kita telah mentransfer kepada sebuah cincin (domain) dengan privilege yang lebih sedikit. Hanya saja, bila parameter yang dilewati terkait pada segmen di cincin yang lebih rendah (segmen yang tidak dapat diakses pada prosedur yang dipanggil), maka segmen ini harus dikopi pada sebuah area yang dapat diakses oleh prosedur yang dipanggil.

Bila i > b2, maka panggilan diperbolehkan terjadi hanya bila b3 lebih kecil atau sama dengan i , dan panggilan yang telah diarahkan pada entry point yang telah ditentukan di dalam list of gate. Skema ini memperbolehkan proses dengan access right terbatas untuk memanggil prosedur dalam cincin yang lebih rendah dan mempunyai access right lebih banyak, tetapi hanya bisa terjadi pada sebuah kondisi terkontrol yang baik.

Kerugian utama dari struktur cincin (hirarki) adalah bahwa mereka tidak memperbolehkan kita untuk menerapkan prinsip need-to-know. Dalam kondisi khusus bila sebuah objek harus dapat diakses melalui domain Dj tetapi tidak dapat diakses melalui domain Di, maka kita harus mempunyai nilai j < i. Tapi kondisi ini berarti bahwa setiap segmen yang dapat diakses di Di juga dapat diakses di Dj.

Sistem proteksi MULTICS umumnya lebih kompleks dan kurang efisien dibandingkan dengan sistem yang digunakan pada sistem operasi sekarang. Bila proteksi mengganggu dengan simplisitas dari penggunaan sistem atau secara signifikan menurunkankan performa sistem, maka penggunaannya harus diperhatikan secara hati-hati sehubungan dengan tujuan dari sistem tersebut. Misalnya, akan lebih masuk akal untuk memiliki sebuah sistem proteksi yang komplek pada sebuah komputer yang digunakan oleh sebuah universitas untuk memproses nilai mahasiswa, dan juga digunakan oleh mahasiswa untuk mengerjakan tugas. Sebuah sistem proteksi yang serupa tidak akan cocok dengan komputer yang sedang digunakan pada kondisi kritis dimana dalam hal ini perfoma adalah persoalan yang paling besar. Maka akan lebih baik untuk memisahkan mekanisme dari aturan proteksi, memperbolehkan sistem yang sama untuk mendapatkan proteksi yang komplek ataupun proteksi yang simpel sesuai dengan kebutuhannya. Untuk memisahkan mekanisme dari aturan kita membutuhkan model proteksi yang lebih umum.

13.3. ACCESS MATRIX

Bab 13 Proteksi Sistem Operasi 224Dosen : Arief Andy Soebroto ST., M.Kom.

Page 6: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

Model proteksi dapat dilihat secara abstrak sebagai sebuah matriks, yang disebut access matrix. Baris dari access matrix adalah untuk merepresentasikan domain, dan kolomnya merepresentasikan objek. Tiap masukan dalam matrix mengandung sebuah set dari access right. Karena objek didefinisikan secara eksplisit oleh kolom, kita dapat melewati nama objek dari access right. Entry access (i,j) menentukan set dari operasi dimana sebuah proses, yang tereksekusi di domain Di, dapat menghasilkan pada objek Oj.

Untuk mengilustrasikan konsep ini, kita memperhatikan access matrix yang ditunjukkan pada gambar 13.3. Terdapat 4 domain dan 4 objek : 3 berkas (F1, F2, F3), dan 1 printer laser. Ketika sebuah proses dieksekusi di dalam domain D1, ini akan membaca berkas F1 dan F3. Sebuah proses yang dieksekusi dalam domain D4

mempunyai privilege yang sama seperti yang terdapat pada domain D1, tetapi pada tambahannya, itu juga bisa menulis kepada berkas F1 dan F3. Perhatikan bahwa printer laser dapat diakses hanya dengan sebuah proses yang dieksekusi pada domain D2.

Skema access matrix menyediakan kita dengan mekanisme untuk menspesifikasi bermacam-macam aturan. Mekanisme ini mengandung implementasi dari access matrix dan memastikan bahwa properti semantic yang telah tergambar tetap bertahan. Lebih khususnya, kita harus memastikan bahwa proses yang dieksekusi pada domain Di hanya bisa mengakses objek-objek yang terdapat pada baris i, dan hanya bisa diperbolehkan masuk oleh access matrix.

ObjekDomain

F1 F2 F3 Printer

D1 Baca BacaD2 PrintD3 Baca EksekusiD4 Baca, tulis Baca, tulis

Gambar 13.3. Access Matrix

Keputusan aturan memperhatikan proteksi dapat diimplementasikan oleh access matrix. Keputusan dari policy melibatkan hak mana (right) yang harus dimasukkan atau diikutsertakan pada masukan (i,j). Kita juga harus menentukan domain dimana proses dieksekusi. Policy terakhir ini biasanya ditentukan oleh sistem operasi.

User biasanya memutuskan content dari masukan access matrix. Ketika user membuat objek baru Oj, kolom Oj ditambahkan pada access matrix dengan masukan inisialisasi yang baik, seperti yang dibuat persis oleh si pembuat. User bisa saja memutuskan untuk m,emasuki beberapa hak (right) dalam beberapa masukan pada kolom j dan hak lain pada masukan lain seperti yang dibutuhkan sesuai dengan kondisi yang kita inginkan.

Access matrix memberikan mekanisme yang sesuai dalam mendefinisikan dan mengimplementasikan sebuah kontrol yang ketat baik statis maupun dinamis antara proses dan domain. Ketika kita merubah sebuah proses dari satu domain ke domain lainnya, berarti kita mengeksekusi sebuah operasi (switch) pada sebuah objek (domain). Kita dapat mengontrol domain switcing dengan memasukkan domain di antara objek yang terdapat pada access matrix.Hal yang serupa, ketika merubah content

Bab 13 Proteksi Sistem Operasi 225Dosen : Arief Andy Soebroto ST., M.Kom.

Page 7: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

dari sebuah access matrix, kita melakukan operasi pada sebuah objek : access matrix itu sendiri. Dan juga, kita dapat mengontrol perubahan ini dengan memasukkan access matrix itu sendiri sebagai sebuah objek. Sebenarnya, setiap masukan pada setiap access matrix dapat dimodifikasi sendiri-sendiri, dan kita harus memperhatikan tiap-tiap masukan yang ada dalam access matrix sebagai objek yang harus dilindungi.

Sekarang, kita harus memikirkan operasi-operasi yang hanya mungkin terjadi pada objek baru ini (domain dan access matrix), dan memutuskan bagaimana kita memprosesnya agar operasi ini dapat dieksekusi dengan baik.

Proses harus dapat berubah dari satu domain dengan domain lainnya. Domain switching dari domain Di kepada domain Dj diperbolehkan terjadi jika dan hanya jika access right switchnya c access (i,j). Pada gambar 13.4 sebuah proses eksekusi terjadi pada domain D2 dapat dirubah ke domain D3 atau pada domain D4. Sebuah proses pada domain D4 dapat dirubah ke D1 dan yang ada di D1 dapat dirubah ke D2.

Memungkinkan perubahan yang terkontrol pada content dari masukan access matrix membutuhkan 3 operasi tambahan : copy, owner dan control.

objek domain

F1 F2 F3 Printer D1 D2 D3 D4

D1 Baca Baca switchD2 Print switch switchD3 Baca EksekusiD4 Baca,

tulisBaca, tulis switch

Gambar 13.4. Access Matrix dari gambar 13.3 dengan domain sebagai objek

objekDomain F1 F2 F3

D1 eksekusi tulis*D2 eksekusi baca eksekusiD3 eksekusi

(a)

objekDomain F1 F2 F3

D1 eksekusi tulis*D2 eksekusi baca* eksekusiD3 eksekusi baca

(b)

Gambar 13.5. Access Matrix dengan copy right

Bab 13 Proteksi Sistem Operasi 226Dosen : Arief Andy Soebroto ST., M.Kom.

Page 8: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

Kemampuan untuk mengkopi sebuah access right dari sebuah domain (baris) dari sebuah access matrix kepada lainnya dinotasikan dengan tanda asterik (*) yang diapendikskan pada access right. Copy right memungkinkan proses pengkopian dari access right hanya di dalam kolom (objeknya) dimana right itu berada. Contoh, dalam gambar 19.5 (a), sebuah proses eksekusi pada domain D2 dapat mengkopi operasi baca pada masukan manapun yang terasosiakan dengan berkas F2. Maka, access matrix yang ada pada gambar 13.5 (a) dapat dimodifikasi ke dalam access matrix yang ditunjukkan pada gambar 13.5 (b).

Ada 2 varian dalam skema ini yaitu :1. Sebuah right dikopikan dari access (i,j) kepada access (k,j) ; setelah itu

dipindahkan dari access (i,j) ; tindakan ini adalah sebuah proses transfer dari sebuah right.

2. Propagasi dari copy right dapat dibatasi. Yaitu, ketika right R* dikopikan dari access (i,j) ke access (k,j), hanya right R (bukan R*) saja yang dibuat. Proses eksekusi yang terjadi pada domain Dk tidak dapat mengkopi right R lebih lanjut.

Sebuah sistem dapat memilih hanya 1 dari 3 right yang ada dengan mengidentifikasikan mereka sebagai right yang berbeda : copy, transfer, dan limited copy.

Proses copy right memungkinkan sebuah proses untuk mengkopi beberapa right dari sebuah masukan yang terdapat pada 1 kolom kepada masukan lainnya yang berada pada kolom yang sama. Kita juga membutuhkan mekanisme untuk membuat penambahan right baru dan penghilangan beberapa right. Owner right mengontrol operasi-operasi ini. Jika access (i,j) termasuk owner right, maka proses eksekusi yang terjadi pada domain Di dapat menambah dan menghilangkan semua right di dalam semua masukan selama itu berada di dalam kolom j.

ObjekDomain F1 F2 F3

D1 owner, eksekusi tulisD2 baca*, owner baca*, owner, tulis*D3 eksekusi

(a)

ObjekDomain F1 F2 F3

D1 owner, eksekusiD2 baca*, owner, tulis* baca*, owner, tulis*D3 tulis tulis

(b)

Gambar 13.6. Access Matrix dengan owner right

Bab 13 Proteksi Sistem Operasi 227Dosen : Arief Andy Soebroto ST., M.Kom.

Page 9: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

Contoh, pada gambar 13.6 (a), domain D1 adalah owner dari F1 maka ini dapat menambah maupun menghapus valid right apapun yang terdapat pada kolom F1. Hal yang sama, domain D2 adalah owner dari F2 dan F3 maka ini dapat menambah maupun menghapus valid right apapun yang terdapat pada 2 kolom ini. Maka, access matrix yang terdapat pada gambar 13.6 (a) dapat dimodifikasi menjadi access matrix yang ditunjukkan pada gambar 13.3 (b).

Copy dan owner right memungkinkan sebuah proses untuk merubah masukan pada sebuah kolom. Sebuah mekanisme juga dibutuhkan untuk merubah masukan pada baris. Control right dapat diaplikasikan hanya kepada objek domain. Jika access (i,j) termasuk control right, maka proses eksekusi yang terjadi pada domain Di dapat menghilangkan access right dari baris j. Contoh, anggap, dalam gambar 13.4, kita memasukkan control right dalam access ( D2, D4). Lalu, sebuah proses eksekusi pada domain D2 dapat memodifikasi domain D4 seperti yang ditunjukkan pada gambar 13.7.

Walaupun copy dan owner right memberikan kita dengan sebuah mekanisme limit untuk membatasi propagasi dari access right, kenyataannya tidak seperti itu, hanya saja, memberikan kita dengan sebuah tool yang cocok untuk mencegah propagasi dari informasi (kebocoran informasi). Masalah mengenai garansi bahwa tidak adanya informasi secara inisial ada pada sebuah objek dapat bermigrasikan keluar dari lingkungan eksekusinya disebut confinement problem. Masalah ini secara umum tidak dapat diselesaikan.

Objek Domain

F1 F2 F3 Printer D1 D2 D3 D4

D1 Baca Baca switchD2 Print switch Switch,

controlD3 Baca EksekusiD4 Baca tulis switch

Gambar 13.7 Modifikasi access matrix pada gambar 13.4

Operasi yang terjadi pada domain dan access matrix sebenarnya tidak begitu penting. Hal yang lebih penting adalah mereka mengilustrasikan kemampuan dari model access matrix untuk memungkinkan implementasi dan kontrol dari kebutuhan peroteksi yang dinamis.

13.4 Implementasi Access Matrix

Secara umum, matriks akan dihilangkan, yang artinya, sebagian masukan akan kosong. Walopun ada teknik dari data-structure yang dapat merepresentasikan hal ini, tetapi kenyataannya mereka tidak digunakan.

Bab 13 Proteksi Sistem Operasi 228Dosen : Arief Andy Soebroto ST., M.Kom.

Page 10: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

19.4.1 Tabel Global

Implementasi yang paling sederhana dari access matrix adalah sebuah tabel global yang mengandung dari sebuah set triple yang teratur <domain, object,right-set>. Kapansaja sebuah operasi M di eksekusi pada sebuah objek Oj dalam domain Di, tabel global akan mencari sebuah trple <Di, Oj, Rk>, dimana M c Rk. Ketika triple ditemukan, operasi diperbolehkan untuk berjalan; bila tidak, sebuah kondisi pengecualian (error) terjadi. Implementasi ini terkena beberapa drawback. Tabel biasanya besar dan tidak dapat disimpan dalam memori utama., jadi dibutuhkan tambahan I/O. Teknik virtual memori sering dugunakan untuk mengatasi hal ini. Kenyataannya, sangat sulit untuk mengambil keuntungan dari special grouping object atau domain.

13.4.2. Access List dari Objek

Tiap kolom dalam access matrix dapat diimplementasikan sebagai sebuah access list dari sebuah objek seperti yang dijelaskan lebih lanjut dalam bagian 10.4.2. Jelasnya, masukan yang kosong akan dihilangkan. List yang dihasilkan dalam tiap objek akan menghasilkan pasangan yang teratur < domain, right-set >, dimana hal ini mendefinisikan semua domain dengan sebuah set yang tidak kosong dari access right untuk objek tersebut.

Pendekatan ini dapat diperluas dengan mudah untuk mendefinisikan sebuah list ditambah sebuah default set dari sebuah access right. Ketika sebuah operasi M dalam sebuah objek Oj terdapat pada domain Di, maka kita mencari access list untuk objek Oj dengan mencari sebuah masukan < Di, Rk > dengan M c Rk. Jika masukan ditemukan, maka operasi dapat berjalan ; bila tidak ditemukan, maka kita harus mengecek default setnya. Ketika M berada dalam default set, access dapat berjalan. Bila tidak, access akan ditolak dan error terjadi. Untuk mengoptimalkan efisiensifitas, lebih baik kita mengecek default set terlebih dahulu dan kemudian baru mencari access list.

13.4.3. List kapabilitas dari domain

Sebuah list kapabilitas untuk sebuah domain adalah sebuah list objek bersama dengan operasi yang terjadi pada objek tersebut. Sebuah objek sering direpresentasikan dengan nama fisiknya atau alamat, yang dinamakan senagai kapabilitas. Untuk mengeksekusikan sebuah operasi M pada sebuah objek Oj, proses akan mengeksekusi operasi M, dan membuat sebuah spesifikasi dari kapabilitas (pointer) untuk objek Oj sebagai sebuah parameter.

Pada awalnya kapabilitas bertujuan sebagai sebuah pointer yang aman, untuk memenuhi kebutuhan dari proteksi resource yang terlihat pada sistem komputer multiprogram. Ide ini memberikan sebuah pondasi untuk sebuah proteksi untuk dapat diperluas sampai kepada level aplikasi. Untuk menyediakan proteksi yang diinginkan, kita harus memisahkan kapabilitas dari objek lainnya, dan selanjutnya

Bab 13 Proteksi Sistem Operasi 229Dosen : Arief Andy Soebroto ST., M.Kom.

Page 11: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

mengintrepetasikan mereka sebagai sebuah mesin abstrak dalam sebuah pengoperasian higher-level program. Kapabilitas dipisahkan dengan 2 cara :

1. Setiap objek mempunyai sebuah tag untuk dinotasikan sebagai tipenya, entah sebagai kapabilitas atau sebagai data yang dapat diterima. Tag itu sendiri harus tidak boleh secara langsung diakses oleh program aplikasi. Hardware maupun firmware support hanya boleh digunakan untuk mengaplikasikan restriksi ini. Walaupun hanya 1 bit yang dibutuhkan untuk memisahkan antara kapabilitas dengan objek lainnya, seringkali tetap dibutuhkan bit lainnya. Ekstensi ini memungkinkan semua objek untuk diberi tag sesuai dengan tipenya oleh hardware. Maka, hardware dapat membedakan integer, floating-point number, pointer, boolean, karakter, instruksi, kapabilitas, dan nilai yang tidak terinisialkan oleh tagnya.

2. Alternatif lainnya, ruang alamat yang diasosiakan dengan sebuah program dapat dibagi menjadi 2 bagian. Satu bagian dapat diakses kepada program dan mengandung data normal dari program dan instruksinya. Bagian lain, mengandung list kapabilitas, yang dapat diakses oleh sistem operasi. Sebuah ruang segmentasi memory (bagian 8.8) sangat berguna untuk mendukung keadaan ini.

Beberapa sistem proteksi berbasis kapabilitas telah dikembangkan ; kita menjelaskan hal itu pada bagian 13.6. Sistem operasi Mac juga menggunakan versi dari proteksi berbasis kapabilitas.

13.4.4. Mekanisme Lock-Key

Skema lock-key adalah sebuah perjanjian anatara access list dengan list kapabilitas. Tiap objek memiliki pola bit yang khusus, yang dinamakan lock. Hal yang sama, tiap domain memiliki pola bit yang khusus yang dinamakan key. Sebuah proses eksekusi dalam sebuah domain dapat mengakses objek jika domain tersebut menmpunyai key yanng cocok dengan lock yang ada pada objek.

13.4.5. Komparasi

Access list berhubungan langsung dengan kebutuhan user. Ketika user membuat sebuah objek, ia dapat menspesifikasikan domain mana yang dapat megaksesnya, sejalan dengan operasi yang terjadi.

Sebagian besar sistem menggunakan combinsi dari access list dan kapabilitas. Ketika sebuah proses mencoba untuk mengakses sebuah objek, access list akan dicari. Ketika akses ditolak maka erros akan terjadi. Bila tidak, sebuah kapabilitas dibuat dan terpasang pada proses tersebut. Referensi tambahan menggunakan kapabilitas untuk mendemonstrasikan akses yang masuk. Setelah akses terakhir maka kapabilitas akan dihancurkan. Strategi ini digunakan oleh MULTICS didalam sistem CAL.

Bab 13 Proteksi Sistem Operasi 230Dosen : Arief Andy Soebroto ST., M.Kom.

Page 12: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

13.5. Penarikan Dari Access Right

Dalam sistem proteksi yang dinamis, dimungkinkan untuk dilakukan penarikan dari access right kepada objek yang di bagi oleh user yang berbeda. Pertanyaan yang terjadi adalah:

immediate versus delayed : apakah penarikan berjalan secara langsung apa ada delaynya ?

selektif versus general : ketika sebuah access right dari sebuah objek ditarik, apakah ini berakibat kepada semua user yang mempunyai access right pada objek tersebut atau tidak ?

partial versus total : dapatkah sebuah subset dari right terasosiasi dengan sebuah objek dapat ditarik ataukah kita harus menarik semua access right dari objek ini ?

temporary versus permanent : dapatkah sebuah access ditarik secara permanen atau tidak ?

Dengan sebuah skema dari access list, penarikan akan sangat gampang. Access list akan mencari access right untuk ditarik, setelah itu mereka akan dihapus dari list. Penarikan bekerja secara langsung, dapat bersifat umum atau selektif, total maupun parsial, dan permanen maupun temporary.

Kapabilitas memberikan masalah penarikan yang lebih sulit. Karena kapabilitas didistribusikan melalui sistem kita harus mencarinya terlebih dahulu sebelum kita menariknya. Ada beberapa skema dalam implementasi penarikan dari kapabilitas diantaranya :

1. reacquisition. Secara periodik, kapabilitas akan dihapus dari tiap domain. Bila sebuah access telah ditarik, maka proses tidak akan bisa mengembalikan kapabilitas tersebut.

2. back pointer. Sebuah list dari pointer tetap diadakan pada tiap objek, menunjuk kepada semua kapabilitas yang terasosiakan pada objek tersebut. Ketika penarikan dibutuhkan, kita tinggal mengikuti jejak dari pointer ini dan merubahnya bila diperlukan. Sistem MULTICS mengadopsi cara ini.

3. indirection. Kapabilitas tidak menunjuk kepada objek secara langsung. Tiap kapabilitas menunjuk kepada masukan khusus di dalam tabel global, yang mana merupakan arah balik dari objek tersebut. Skema ini dapat dilihat pada sistem CAL.

4. key. Key adalah sebuah pola bit khusus yang dapat diasosiakan pada tiap kapabilitas. Sebuah master key diasosiakan dengan tiap objek yang selanjutnya dapat didefinisikan atau digantikan dengan operasi set-key. Ketika kapabilitas dikerjakan, key-nya kan dibandingkan dengan master key-nya. Jika cocok operasi akan dilanjutkan, jika tidak error akan terjadi. Penarikan menggantikan master key dengan sebuah nilai baru oleh operasi set-key dengan memvalidasikan kapabilitas sebelumnya pada objek tersebut.

Bab 13 Proteksi Sistem Operasi 231Dosen : Arief Andy Soebroto ST., M.Kom.

Page 13: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

13.6 Sistem Berbasis Kapabilitas

Pada bagian ini, kita akan mensurvey 2 macam sistem. Sistem ini memiliki banyak variasi pada tingkat kompleksitas yang berbeda-beda dan pada tingkat policy yang mengacu pada bagaimana kita mengimplementasikannya.

13.6.1 Hydra

Hidra adalah sistem proteksi berbasis kapabilitas yang menyediakan fleksibilitas yang baik. Sistem ini menyediakan sebuah set yang pasti dari access right yang mungkin dapat diketahui dan diinterpretasikan oleh sistem. Right ini termasuk bentuk dasar dari access sebagai right untuk membaca, menulis ataupun mengeksekusi pada sebuah segmen memory. Dalam kenyataannya, sistem ini menyediakan cara bagi user untuk mendeklarasikan right tambahan. Interpretasi dari user-diviner right dilaksanakan hanya oleh program dari user, tetapi sistem menyediakan proteksi access dalam penggunaan right ini, seiring dengan penggunaan dari sistem-diviner right.

Operasi dari objek didefinisikan sesuai dengan prosedur. Prosedur yang mengimplementasikan operasi ini merupakan bentuk dari sebuah objek dan diakses secara tidak langsung oleh kapabilitas. Nama dari user-divine procedure harus diidentifikasi kepada sistem proteksi bila hal ini berhubungan dengan objek dari user-divide-type. Ketika definisi dari sebuah objek yang telah dibuat diperkenalkan kepada hydra, nama dari operasi yang ada pada tipe ini berubah dari auxiliary right. Auxiliary right dapat dijabarkan dalam sebuah kapabilitas dari sebuah tipe.

Konsep lainnya adalah right implification. Skema ini memungkinkan sebuah sertifikasi dari sebuah prosedur yang aman untuk dapat bergerak pada sebuah parameter formal dari sebuah tipe yang telah terspesifikasi. Amplifikasi sangat berguna dalam menjalankan implementasi dari access procedure ke variabel representasi dari tipe data abstrak.

Sebuah hydra sub system dibuat di atas kernel proteksinyadan mungkin membutuhkan proteksi dari komponenya sendiri. Sebuah sub sistem berinteraksi dengan kernel melalui panggilan pada sebuah set dari kernel-divine primitive yang mendefinisikan access right kepada resourse yang diimplementasikan selanjutnya oleh sub sistem.

13.6.2. Cambridge CAP System

Sebuah pendekatan kepada proteksi berbasis kapabilitas telah dibentuk dalam sebuah desain dari Cambridge CAP System. Sistem kapabilitas dari CAP lebih sederhana dan tidak lebih baik daripada hydra. Hanya saja ditunjukkan bahwa sistem ini dapat digunakan untuk menyediakan sebuah proteksi sekuritas dari user-divine-object. Pada CAP ada 2 kapabilitas. Yang satu dinamakan data kapabilitas, yang dapat digunakan untuk menyediakan akses kepada objek tetapi right yang disediakan hanya right standar seperti membaca, tulis ataupun mengeksekusi segmen penyimpanan

Bab 13 Proteksi Sistem Operasi 232Dosen : Arief Andy Soebroto ST., M.Kom.

Page 14: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

terpisah yang terasosiakan dengan objek. Data kapabilitas diintepretasikan oleh microcode di dalam mesin CAP.

Sebuah software kapabilitas dilindungi oleh CAP microcode tetapi tidak diinterpretasikan. Hal ini diinterpretasikan oleh sebuah prosedur yang terlindungi, yang mungkin bisa ditulis oleh sebuah progammer aplikasi sebagai sebuah bagian dari sub system. Walaupun seorang programmer dapat mendefinisikan prosedur proteksinya sendiri, tetapi secara global sistem tidak dapat disatukan dengan sistem proteksi dasar tidak memperbolehkan prosedur-prosedur lain yang dibuat oleh user untuk mengakses kepada segmen penyimpanan yang bukan milik dari lingkungan yang ada. Designer dari system CAP telah menyadari bahwa penggunaan software kapabilitas memungkinkan mereka untuk membuat sebuah formula dengan harga yang terjangka dan mengimplementasi policy dari proteksi yang sesuai dengan kebutuhan.

13.7. Protkesi Bahasa

Dengan semakin kompleknya sistem operasi seiring dengan mereka menyediakan high level user interface, tujuan dari proteksi menjadi lebih berkembang. Dalam perkembangan ini kita mengetahui bahwa designer dari sistem proteksi telah membuat sebuah ide yang mengacu pada bahasa pemograman khususnya pada konsep tipe data abstrak dan objek. Dan hal ini memiliki beberapa keuntungan yang sangat signifikan :

1. proteksi yang dibutuhkan dapat dibuat dengan mudah daripada memprogram melalui sequence dari panggilan pada prosedur dari sebuah sistem operasi

2. kebutuhan proteksi dapat didefinisikan sendiri-sendiri sesuai dengan sistem operasi yang ada

3. cara untuk mengaplikasikannya tidak perlu harus disediakan oleh designer dari sub system

4. notasi yang ada sangat alami dikarenakan access dari privilegesnya memiliki hubungan yang dekat dengan konsep linguist dari tipe data.

Yang kita butuhkan adlah sebuah mekanisme access contol yang dinamis sekaligus aman untuk mendistribusikan kapabilitas kepada sistem resource di antara user process. Bila yang kita inginkan adalah reabilitas dari sistem, maka mekanisme access control adalah merupakan opsi yang terbaik. Tetapi bilamana kita menginginkan optimalisasi dalam prakteknya, sistem tersebut harus diperhatikan faktor efisiensivitasnya. Kebutuhan ini telah mengarahkan kepada perkembangan dari beberapa bahasa pemograman untuk memungkinkan programmer untuk membuat beberapa restriksi pada penggunaan resouce yang diatur secara spesifik. Konstruksi ini menyediakan mekanisme kepada 3 fungsi :1. menyebarkan kapabilitas aman dan efisien di antara customer process2. mengkhususkan tipe dari operasi yang memungkinkan sebuah proses untuk

memanggil sebuah resorce yang teralokasi3. mengkhususkan kebutuhan dalam hal ini sebuah proses dapat memanggil

operasi dari sebuah resource

Bab 13 Proteksi Sistem Operasi 233Dosen : Arief Andy Soebroto ST., M.Kom.

Page 15: Bab 13 - Prokteksi

Mata Kuliah Sistem Operasi (TKE 258) Bagian V –Proteksi & Kermanan Sistem Operasi

Sebagai penutup pentingnya dari notasi bahasa pemograman yang cocok dimana dalam hal ini adalah untuk mempercepat kebutuhan proteksi akan ditindaklanjuti lebih lanjut seiring dengan perubahan teknologi yang ada.13.8. Kesimpulan

Sistem komputer terdiri dari banyak objek, dimana objek tersebut bisa berupa hardware maupun software. Sebuah access right adalah ijin untuk melakukan sebuah operasi pada sebuah objek. Sebuah domain adalah sebuah set dari access right. Proses tereksekusi dalam sebuah domain dan memungkinkan untuk memggunakan access right di dalam domain untuk mengakses dan memanipulasi object.

Access matrix adalah model umum dari sebuah proteksi. Access matrix menyediakan sebuah mekanisme untuk sebuah proteksi tanpa memaksa sebuah policy dari proteksi dalam sebuah system ataupun kepada user. Pemisahan dari policy dan mekanisme adalah sebuah bagian penting dalam melakukan sebuah design

Access matrix bersifat ringan. Biasanya diimplementasikan sebagai access list yang terhubung pada tiap object ataupun sebagai list kapabilitas yang terhubung dengan tiap domain. Kita dapat memasukkan proteksi dinamis di dalam sebuah model access matrix dengan mengganggap domain dan access matrix itu sendiri sebagai objek.

Sistem yang sebenarnya bersifat lebih dibatasi, dan bertujuan menyediakan proteksi pada berkas saja. UNIX contohnya, menyediakan access baca, tulis dan eksekusi proteksi secara terpisah bagi owner, group dan khalayak banyak pada tiap berkasnya. MULTICS menggunakan sebuah struktur cincin di dalam tambahannya dalam access berkas. Hydra, the Cambridge CAP system, dan Mach adalah sistem kapabilitas yang mengembangkan proteksi samapi kepada user-defined software object.

Bab 13 Proteksi Sistem Operasi 234Dosen : Arief Andy Soebroto ST., M.Kom.