Sistem Operasi “ Proteksi dan Sekuriti Sistem Komputer ” Oleh : Farhat, ST, MMSI, MSc { Diolah dari berbagai Sumber } Farhat, ST., MMSI., MSc Sistem Operasi Universitas Gunadarma A. Definisi Dan Tujuan Proteksi adalah mekanisme sistem operasi untuk mengontrol akses terhadap beberapa objek yang diproteksi dalam sistem operasi. Objek-objek tersebut bisa berupa perangkat keras (seperti CPU, memori, disk, printer, dll) atau perangkat lunak (seperti program, proses, berkas, basis data, dll). Di beberapa sistem, proteksi dilakukan oleh sebuah program yang bernama reference monitor. Setiap kali ada pengaksesan sumber daya PC yang diproteksi, sistem pertama kali akan menanyakan reference monitor tentang keabsahan akses tersebut. Reference monitor kemudian akan menentukan keputusan apakah akses tersebut diperbolehkan atau ditolak. Secara Garis besar mempunyai tujuan meminimalisir resiko dari kemungkinan pelanggaran keamanan. B. Domain Proteksi Domain adalah himpunan yang berisi pasangan objek dan hak akses. Masing-masing pasangan domain berisi sebuah objek dan beberapa akses operasi (seperti read, write, execute) yang dapat dilakukan terhadap objek tersebut. Dalam setiap waktu, setiap proses berjalan dalam beberapa domain proteksi. Hal itu berarti terdapat beberapa objek yang dapat diakses oleh proses tersebut, dan operasi-operasi apa yang boleh dilakukan oleh proses terhadap objek tersebut. Proses juga bisa berpindah dari domain ke domain lain dalam eksekusi.Prinsip need-to-know ini punya tujuan dari proteksi adalah meminimalisir resiko dari kemungkinan pelanggaran keamanan. C. Access Matrix Bentuk dari proteksi secara acak dapat dilihat dalam bentuk matriks, yang sering disebut dengan access matrix. Baris-baris dari access matrix merepresentasikan domain, sedangkan kolomnya merepresentasikan objek. Setiap entri pada matriks terdiri dari satu set hak akses (access rights). Karena kolom-kolomnya mendefinisikan objek secara eksplisit, kita dapat menghilangkan nama objek dari hak aksesnya. Sebuah entri access(i,j) mendefinisikan set dari operasi-operasi yang diekseksusi oleh proses dalam domain Di yang nantinya memanggil objek Oj. Untuk mengilustrasikan konsep ini, kita menggunakan sampel matriks sebagai berikut : 1. Ada empat domain dan empat objek, tiga file (F1, F2, F3) dan satu printer laser. Sebuah proses yang dieksekusi dalam domain D1 dapat meread file F1 dan F3. Sebuah proses yang dieksekusi dalam domain D4 memiliki privilege yang sama dengan proses yang dieksekusi pada domain D1, dengan tambahan dapat juga me-write kedalam file F1 dan F3. Perlu dicatat bahwa printer laser hanya dapat diakses oleh proses yang dieksekusi dalam domain D2. Farhat, ST., MMSI., MSc Sistem Operasi Universitas Gunadarma 2. Skema access matrix ini memberi kita tentang penggambaran penggabungan mekanisme jenis-jenis kebijakan (policy). Access matrix dapat mengimplementasikan bagaimana pengambilan keputusan dalam kebijakan proteksi. Keputusan kebijakan yang melibatkan hak-hak harus dimasukkan dalam entri ke (i, j) . Kita juga harus menentukan domain di mana setiap proses mengeksekusi. Kebijakan terakhir ini biasanya ditentukan oleh sistem operasi. 3. 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 proteksi yang dinamis. D. Access Control Pendekatan paling umum dalam masalah proteksi adalah untuk membuat akses tergantung pada identitas pengguna. Saat seorang pengguna meminta untuk mengakses suatu berkas, sistem operasi akan mengecek daftar akses yang berhubungan dengan berkas tersebut. Masalah utama dengan pendekatan ini adalah panjang dari daftar yang harus dibuat. Di sini pengguna dapat diklasifikasikan ke dalam tiga kelas: • Owner. Pengguna yang membuat berkas tersebut. • Group. Sekelompok pengguna yang berbagi berkas dan memiliki akses yang sama. • Universe. Semua pengguna yang lain. Pendekatan lain dalam masalah proteksi adalah dengan memberikan kata kunci untuk setiap berkas. Proteksi yang lazim digunakan dalam pengoperasian sistem operasi adalah penggunaan password dalam suatu berkas. Beberapa tipe operasi yang bisa dikontrol: • Read. Membaca dari berkas. • Write. Menulis atau menulis ulang berkas. • Execute. Me-load berkas ke memori dan mengeksekusinya. • Append. Menulis informasi baru di akhir berkas. • Delete. Menghapus berkas dan mengosongkan spacenya untuk kemungkinan digunakan kembali. • List. Mendaftar nama dan atribut berkas. E. Pencabutan Hak Akses Dalam sistem proteksi yang dinamis kita mungkin perlu untuk mencabut akses hak atas objek-objek yang dimiliki oleh user yang berbeda. Berbagai pertanyaan tentang pencabutan mungkin timbul, seperti yang berikut ini: • Segera VS Ditunda. Apakah pencabutan terjadi segera/atau tertunda? Jika pencabutan tertunda, bisakah kita mengetahui kapan itu akan terjadi? Farhat, ST., MMSI., MSc Sistem Operasi Universitas Gunadarma • • • Selektif VS Umum. Ketika sebuah access right untuk obyek dicabut, apakah itu mempengaruhi semua user yang memiliki hak akses ke objek itu, atau bisa kita tentukan kelompok user tertentu yang hak aksesnya seharusnya dicabut? Parsial VS Total. Dapatkah subset dari hak-hak terkait dengan obyek dicabut, atau harus kita mencabut hak akses semua untuk objek ini? Sementara VS Permanen. Dapatkah akses dicabut secara permanen (akses dicabut berarti tidak akan pernah lagi tersedia kembali), atau akses dapat dicabut dan kemudian diperoleh lagi? Dengan skema access-list, pencabutan hak akses adalah mudah. Access list akan mencari hak akses yang akan dicabut, dan mereka dihapus dari daftar. Pencabutan bersifat segera dan dapat bersifat umum atau selektif, total atau parsial, ataukah permanen atau sementara. Kapabilitas, bagaimanapun, membuat revokasi lebih sulit. Berikut skema yang menerapkan pencabutan untuk kemampuan meliputi: • Reacquisition. Secara berkala, kapabilitas dihapus dari setiap domain. Jika suatu proses ingin menggunakan kapabilitas, ada kemungkinan untuk menemukan bahwa kapabilitas telah dihapus. Proses ini kemudian dapat mencoba untuk reacquire/memperoleh kembali kapabilitas tadi. Jika akses sudah dicabut, maka proses tidak bisa memperoleh kembali kapabilitasnya. • Back-pointers. Sebuah daftar pointer dipertahankan dalam setiap objek, menunjuk ke semua kapabilitas yang terkait dengan objek tersebut. Ketika pencabutan diperlukan, kita dapat mengikuti pointer, mengubah kapabilitas yang diperlukan. Hal ini sangat umum sebenarnya, namun implementasinya mahal. • Indirection. Kapabilitas menunjuk secara tidak langsung ke objek. Setiap poin kapabilitas untuk entri yang unik dalam global table, yang pada gilirannya menunjuk ke objek. Penerapan pencabutan dilakukan dengan mencari global table untuk entri yang diinginkan dan menghapusnya. Kemudian, ketika akses yang ditemukan, kapabilitas tersebut ternyata ditemukan menunjuk ke entri tabel ilegal. Entri tabel dapat digunakan kembali untuk kapabilitas lain tanpa kesulitan, karena kedua kapabilitas dan entri tabel berisi nama unik dari objek. Namun Tidak memungkinkan adanya pencabutan selektif. • Keys. Kunci adalah pola bit yang unik yang dapat dikaitkan dengan kapabilitas. Kunci yang didefinisikan ketika kapabilitas dibuat, dan tidak dapat dimodifikasi atau diperiksa oleh proses yang memiliki kapabilitas. Sebuah kunci master terkait dengan setiap objek, yang dapat ditentukan Farhat, ST., MMSI., MSc Sistem Operasi Universitas Gunadarma atau diganti dengan operasi set-key. Ketika kapabilitas dibuat, nilai saat ini dari kunci master dikaitkan dengan kapabilitas. Ketika kapabilitas dilaksanakan, kuncinya dibandingkan dengan master key. Jika sesuai, operasi ini dibiarkan berlanjut. Jika tidak, kondisi pengecualian dinaikkan. Skema ini tidak mengizinkan pencabutan selektif, karena hanya satu master kunci yang terkait dengan setiap objek. F. Sistem Berbasis Kapabilitas F.1 Hydra Hydra 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 accesssebagai right untuk membaca, menulis ataupun mengeksekusi pada sebuah segmen memori. Dalam kenyataannya, sistem ini menyediakan cara bagi user untuk mendeklarasikan righttambahan. Interpretasi dari user-defined right dilaksanakan hanya oleh program dari user, tetapi sistem menyediakan proteksi access dalam penggunaan right ini, seiring dengan penggunaan dari system-defined 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-defined procedure harus diidentifikasi kepada sistem proteksi bila hal ini berhubungan dengan objek dari userdefined- 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 proteksinya dan mungkin membutuhkan proteksi dari komponennya sendiri. Sebuah sub sistem berinteraksi dengan kernel melalui panggilan pada sebuah set dari kernel-defined primitive yang mendefinisikan access rightkepada resourse yang diimplementasikan selanjutnya oleh sub sistem. F.2 Cambridge CAP System Sebuah pendekatan kepada proteksi berbasis kapabilitas telah dibentuk dalam sebuah desain dari Cambridge CAP System. Sistem kapabilitas dari CAP lebih Farhat, ST., MMSI., MSc Sistem Operasi Universitas Gunadarma sederhana dan tidak lebih baik daripada hydra. Hanya saja ditunjukkan bahwa sistem ini dapat digunakan untuk menyediakan sebuah proteksi sekuritas dari userdefined 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 terpisah yang terasosiakan dengan objek. Data kapabilitas diintepretasikan oleh microcode di dalam mesin CAP. G. Proteksi Berbasis Bahasa Komputer 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 melaluisequence 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 adalah 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 process 2. Mengkhususkan tipe dari operasi yang memungkinkan sebuah proses untuk memanggil sebuah resorce yang teralokasi 3. Mengkhususkan kebutuhan dalam hal ini sebuah proses dapat memanggil operasi dari sebuah resource Farhat, ST., MMSI., MSc Sistem Operasi Universitas Gunadarma 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. Dalam bahasa pemrograman Java, proteksi data dalam sebuah class dinyatakan dalam sintakspublic, private, dan default. Public artinya suatu data dalam class dapat diakses dan dimodifikasi dari luar class. Private berarti data sama sekali tidak dapat terlihat dan tidak dapat diubah dari luar class. Data ini hanya terlihat oleh class itu sendiri. Default artinya, data hanya bisa dilihat oleh class-class yang memiliki package yang sama. Proteksi di handle oleh Java Virtual Machine (JVM). Class yang sudah dibahas di paragraf sebelumnya diberi domain proteksi ketika class tadi di load oleh JVM. Domain proteksi mengindikasikan operasi-operasi apa saja yang dapat dan tidak dapat dijalankan, dan jika sebuah method dalam library meminta melakukan operasi ber-hak akses (privileged), stackyang ada kemudian diperiksa untuk memastikan apakah operasi yang bersangkutan dapat dijalankan oleh library. Pemeriksaan ini disebut dengan stack inspection. 2. A. Masalah – masalah Keamanan Sistem Operasi Dalam keamanan terdapat dua masalah penting, yaitu : 1. Kehilangan Data (Data Loss) Kehilangan data dapat disebabkan karena beberapa hal, yaitu : - Bencana – Kebakaran – Banjir – Gempa Bumi – Perang – Kerusuhan – Binatang Kesalahan perangkat keras dan perangkat lunak : – – – – Tidak berfungsinya pemroses Disk atau tape yang tidak terbaca Kesalahan telekomunikasi Kesalahan program (bugs) Kesalahan / kelalaian manusia : – – – – Kesalahan pemasukan data Memasang tape atau disk yang salah Eksekusi program yang salah Kehilangan disk atau tape Farhat, ST., MMSI., MSc Sistem Operasi Universitas Gunadarma 2. Penyusup (hacker) Penyusup atau hacker terdiri dari : 1. Penyusup pasif 2. Membaca data yang tidak diotorisasi PENYUSUP AKTIF Mengubah data yang tidak diotorisasi Kategori penyusupan : Lirikan mata pemakai non teknis Pada sistem time-sharing, kerja pemakai dapat diamati orang sekelilingnya. Bila dengan lirikan itu dapat mengetahui apa yang diketik saat pengisian password, maka pemakai non teknis dapat mengakses fasilitas yang bukan haknya. Penyadapan oleh orang dalam Usaha hacker dalam mencari uang Spionase militer atau bisnis B. Ancaman – ancaman Keamanan Sasaran pengamanan adalah menghindari, mencegah, dan mengatasi ancaman terhadap sistem. Kebutuhan keamanan sistem komputer dikategorikan dalam tiga aspek, yaitu : 1. Kerahasiaan (secrecy) Keterjaminan bahwa informasi di sistem komputer hanya dapat diakses oleh pihak – pihak yang diotorisasi dan modifikasi tetap menjaga kosistensi dan keutuhan data di sistem. 2. Integritas (integrity) Keterjaminan bahwa sumber daya sistem komputer hanya dapat dimodifikasi oleh pihak – pihak yang diotorisasi. 3. Ketersediaan (availability) Keterjaminan bahwa sumber daya sistem komputer tersedia bagi pihak – pihak yang diotorisasi saat diperlukan. Tipe – tipe ancaman terhadap keamanan sistem dapat dimodelkan dengan memandang fungsi sistem komputer sebagai penyedia informasi. Berdasarkan fungsi ini, ancaman terhadap sistem komputer dapat dikategorikan menjadi empat ancaman, yaitu : Farhat, ST., MMSI., MSc Sistem Operasi Universitas Gunadarma - Interupsi (interuption) Sumber daya sistem komputer dihancurkan atau menjadi tak tersedia atau tak berguna.Interupsi merupakan ancaman terhadap ketersediaan. Contoh : penghancuran bagian perangkat keras, seperti harddisk, pemotongan kabel komunikasi. - Intersepsi (interception) Pihak tak diotorisasi dapat mengakses sumber daya. Interupsi merupakan ancaman terhadap kerahasiaan. Pihak tak diotorisasi dapat berupa orang atau program komputer. Contoh : penyadapan untuk mengambil data rahasia, mengetahui file tanpa diotorisasi. - Modifikasi (modification) Pihak tak diotorisasi tidak hanya mengakses tapi juga merusak sumber daya. Modifikasi merupakan ancaman terhadap integritas. Contoh : mengubah nilai-nilai file data, mengubah program sehingga bertindak secara berbeda, memodifikasi pesan-pesan yang ditransmisikan pada jaringan. - Fabrikasi (fabrication) Pihak tak diotorisasi menyisipkan/memasukkan objek-objek palsu ke sistem. Fabrikasi merupakan ancaman terhadap integritas. Contoh : memasukkan pesan-pesan palsu ke jaringan, penambahan record ke file. C. Autentikasi Pemakai Suatu yang diketahui pemakai : passsword kombinasi kunci nama kecil ibu, dsb Sesuatu yang dimiliki pemakai : badge kartu identitas kunci, dsb Sesuatu mengenai (merupakan ciri) pemakai : sidik jari sidik suara foto tanda tangan, dsb Farhat, ST., MMSI., MSc Sistem Operasi Universitas Gunadarma D. Countermeasures (Tindakan Balasan) 1. 2. 3. 4. 5. Pembatasan waktu ketika seseorang login Panggilan otomatis pada nomor yang disiapkan Pembatasan upaya melakukan login Ketersediaan database login Penggunaan simple login sebagai perangkap E. Sekuriti Sistem Operasi 1. Logic Bomb Logik yang ditempelkan pada program komputer, dimana pada saat program menjalankan kondisi tertentu logik tersebut menjalankan fungsi yang merusak. 2. Trap Door Kode yang menerima suatu barisan masukan khusus atau dipicu dengan menjalankan ID pemakai tertentu. F. Serangan Pengamanan Umum 1. Permintaan page memori 2. Mencoba system calls 3. Mencoba login dan langsung menekan DEL, RUBOUT atau BREAK 4. Mencoba memodifikasi struktur sistem operasi 5. Mencari informasi yang tidak boleh dilakukan pada manual book 6. Menggunakan kelemahan sifat manusia Farhat, ST., MMSI., MSc Sistem Operasi Universitas Gunadarma