SpongeBob SquarePants esetblog: PERTEMUAN VII(SISTEM OPERASI KOMPUTER)

WELCOME

ESETBLOG.BLOGGSPOT.COM

Rabu, 22 Januari 2014

PERTEMUAN VII(SISTEM OPERASI KOMPUTER)





Gambar 11. Entry directory MS-DOS.

Panjangnya 32 bit yang terdiri dari nama, atribut, jam, tanggal, first block number (FBN) dan ukuran. FBN digunakan sebagai indeks tabel seperti pada gambar 11.
a.     Directory pada UNIX
Sistem UNIX menggunakan struktur directory seperti tampak pada gambar 12.



Gambar 12. Entry directory UNIX.

Informasi tentang jenis, ukuran, waktu, kepemilikan, dan blok disk disimpan didalam i-node.
Contohnya :

Cara sistem mencari file jika diberikan path /usr/ast/mbox




Gambar 13. Langkah-langkah pencarian /usr/ast/ast/mbox.

dengan urutan :
-       sistem meletakkan posisinya pada root.
-       Permasalahan pada Symbolic Linking diperlukannya overhead. File yang mengandung path harus dibaca, path harus diparse dan diikuti setiap komponen per komponen, sampai i-node dicapai. Sehingga symbolic link memerlukan i-node tambahan.
-       Symbolic Linking menjadikan file memiliki lebih dari satu path. Operasi copy juga akan melaksanakan lebih dari satu kali.
Kelebihannya :
-       dapat digunakan untuk menghubungkan file-file diseluruh mesin di dunia ini.

3.4        Pengaturan Ruang Disk
Dua cara umum menyimpan file n byte :
1.     Mengalokasikan ruang disk sebanyak n byte secara berurutan.
2.     Memisah file menjadi sejumlah blok yang tidak harus berkesinambungan.
Ukuran Blok
Ukuran blok berhubungan erat dengan kecepatan pembacaan/penyimpanan file dan pemakaian ruang disk.
Contoh :




Gambar 16. Kurva yg solid (skala kiri) menggambarkan data rate disk. Garis terputus (skala kanan) menyatakan efisiensi ruang disk. Semua file berukuran 1K.


Cara mengetahui Blok yang Bebas
Dua cara yang banyak digunakan adalah tampak pada gambar 17.



Gambar 17. (a) Daftar blok bebas pada linked list. (b) Bit Map.

a.     Menggunakan Linked List, setiap blok menahan/memegang sejumlah blok bebas yang cocok dengannya.
b.    Bit Map. Blok bebas dinyatakan dengan 1, sedangkan blok yang telah dialokasi data dinyatakan dengan 0.

Kuota Disk
Tujuan : mencegah user agar tidak menggunakan ruang disk terlalu banyak, melampaui batas.
Proses jalannya kuota ditampilkan pada gambar 18.




Gambar 18. Kuota dicatat per user pada tabel kuota.


Terdapat dua tabel yang terletak didalam memory.
-       Tabel pertama mendaftar atribut dan alamat disk file yang dibuka. Setiap perubahan ukuran file akan dikenakan pada kuota user yang menggunakannya.
-       Tabel kedua berisi record kuota untuk setiap user dengan file yang sedang dibuka.

Ketika user log in, sistem operasi akan mengecek kuota file yang digunakannya, apakah melampaui batas jumlah file atau jumlah blok disk.

3.5        Reliabilitas Sistem File
Jika terjadi masalah terhadap sistem file, baik akibat bencana atau rusaknya software dan hardware komputer, maka diperlukan cara penaggulangannya.
a.     Pengaturan Blok Rusak (Bad Block)
-       Cara Hardware, menyiapkan blok cadangan. Bila sistem menemukan blok yang rusak, data akan dipetakan kelokasi blok cadangan.
-       Cara Software, menghapus blok yang rusak sehingga dianggap tidak ada. Pembacaan dan penyimpanan file ke blok rusak tidak akan terjadi, karena dianggap tidak ada blok tsb.
b.     Backup
-       Untuk ukuran kecil, floppy, dilakukan dengan copy.
-       Untuk ukuran besar, akan memerlukan waktu, sehingga perlu strategi seperti pada gambar 19.





c.     Konsistensi Sistem File
Jika sistem crash dan seluruh file yang diedit belum sempat disimpan, maka sistem file berada dalam kondisi tidak konsisten.
Solusinya :
-       Sistem komputer melengkapi program utility untuk mengecek konsistensi sistem file ketika diboot, terutama setelah terjadinya crash.
Metode pengecekan konsistensi ini :
-       Block, Program membuat dua counter untuk setiap blok :
-       counter pertama mencatat berapa kali blok berada didalam file
-       counter kedua merekam seberapa sering blok berada di daftar yang bebas (free list table).
-       Cara ini tampak pada gambar 20.






3.6        Kinerja Sistem File
Pengaksesan ke disk jauh lebih lambat dibanding ke memory. Cara menanggulangi dengan menerapkan metode Block Cache atau Buffer Cache.
Cara ini tidak dimaksudkan untuk menjaga data menetap lama didalamnya sebelum disimpan ke disk.
Contoh :
Ingin menulis skripsi, akan lebih cepat diakses bila diletakkan di buffer, tetapi ukuran bukunya sangat besar. Jika crash, semua yang diketik belum sempat disimpan.... ?? :((
Solusi :
-       System Call SYNC, diterapkan oleh UNIX. Sistem menjalankan UPDATE (menyimpan blok yang diubah kedalam disk) setiap 30 detik dengan proses background.
Tidak cocok bila data disimpan di disket, apalagi berganti-ganti disket. Memang UNIX semula dirancang menggunakan media disk.
-       Write-Through Cache, diterapkan oleh DOS, menyimpan blok kedalam disk segera setelah ada perubahan.
Cukup fleksibel menggunakan disket.
-       Meletakkan blok pada posisi yang berdekatan ketika diakses, sehingga mempercepat pembacaan.






4.         PENGAMANAN
4.1        Seputar Pengamanan (security)
Istilah "security" dan "protection"
Security ditujukan untuk keseluruhan masalah sedangkan Protection merupakan mekanisme tertentu dari sistem operasi yang digunakan untuk menjaga informasi didalam komputer.

Beberapa hal yang menyebabkan data hilang :
1.     Bencana alam
2.     Kesalahan Hardware atau Software
3.     Kesalahan Manusia dalam menggunakan data.
Ketiga hal diatas biasanya dapat diatasi dengan Backup.

Masalah penting lainnya yaitu INTRUDER, dibagi dua :
1.     Intruder Pasif, hanya melihat file yang sebenarnya bukan haknya.
2.     Intruder Aktif, tidak sekedar membaca, tetapi juga merubah (merusak) data.

Jenis perilaku intruder :
1.     Iseng-iseng/coba sambil lalu saja. Biasa terjadi pada data yang bisa diakses semua user.
2.     Snooping dari dalam. Seseorang yang masuk kedalam sistem jaringan komputer berusaha menembus pengamanan.
3.     Berusaha cari keuntungan. Programer bank mencoba untuk mencuri uang.
4.     Spionase/Militer. Biasanya berhubungan dengan politik.

Aspek lain dalam pengamanan adalah PRIVACY : menjaga seseorang dari penyalahgunaan data miliknya.

4.2        Beberapa Pengamanan Terkenal Yang Gagal/Rusak
Cara masuk ke UNIX tanpa melalui sistem pengamanannya dengan menghubungkan sebuah file yang disebut core di directory kerja menuju file password. User dapat mengubah file password.
Contoh pengamanan jelek yang tidak begitu kelihatan :
mkdir foo
Untuk sistem yang lambat, kadang-kadang user dapat dengan cepat menghapus i-node directory dan membuat link ke file password menggunakan nama foo setelah MKNOD dan sebelum CHOWN. Setelah CHOWN dijalankan sistem, maka mkdir tsb menjadikan user sebagai owner (pemilik) file password.

Cara mencuri file orang lain. Mencari source code editor yang banyak digunakan orang lain, lalu dimodifikasi. Hasil modifikasi diletakkan di directory yang banyak orang akan mengaksesnya, seperti /bin. Perubahan proses editor dapat digunakan untuk mencari hal-hal yang diinginkan.
Ide merubah program untuk melakukan hal yang tidak berkenan dan merugikan orang lain dikenal sebagai Serangan Kuda Troya (Trojan Horse Attack).

4.3        Internet Worm
Tanggal 2 Nopember 1988, Cornell meluncurkan program worm ke internet. Akibatnya ribuan komputer mati, baik di universitas, perusahaan, laboratorium di seluruh dunia sebelum program worm tsb dapat diketahui dan dihilangkan.
Secara teknis, program worm mengandung dua program :
Bootstrap dan Worm, yang terdiri dari 99 baris bahasa c, yaitu ll.c. Program ini dicompile dan dijalankan oleh sistem yang diserang. Ketika berjalan, program ini dihubungkan ke mesin dari mesin datangnya program ini, mengupload worm utama dan menjalankannya. Kemudian worm melihat tabel routing untuk mencari mesin-mesin lain yang terhubung pada mesin tersebut, kemudian menyebarkannya dan membootstrap mesin-mesin itu.
Ada tiga cara dalam menginfeksi mesin lain :
a.     Mencoba menjalankan remote shell dengan perintah rsh. Jika berhasil remote shell akan mengupload program worm dan melanjutkan untuk mencari mesin yang lain.
b.    Menggunakan program yang ada di sistem BSD yang dikenal dengan finger, setiap orang di dunia bisa menjalankan :
finger [nama@lokasi]
untuk menampilkan informasi tentang seseorang ybs.
Setiap sistem BSD akan selalu menjalankan (background process) yaitu finger daemon yang menjawab query dari seluruh hubungan internet didunia. Program Worm memanggil finger dengan 536 byte string sebagai parameter. String yang panjang ini menjadikan buffer daemon overflow dan menimpa isi stacknya. Karena overflow ini, daemon mengecek dan ketika ingin kembali ke procedure utamanya, diberi request supaya belok ke procedure 536 byte yang ada didalam stack. Procedure ini mencoba untuk menjalankan /bin/sh. Jika berhasil, mesin tsb telah terjangkit worm.
c.     Didalam sendmail ada bug, yang mengijinkan worm untuk mengirimkan mail berisi copy bootstrap dan menjalankannya.
 
4.4        Serangan Pengamanan Umum
Ketika merancang sistem, harus dapat mengantisipasi bentuk serangan sbb :
1.     Permintaan page memory, ruang disk atau tape dan sekedar membaca isinya. Banyak sistem yang tidak menghapus dulu lokasi yang akan digunakan, kadang-kadang masih berisi informasi yang dipakai oleh proses sebelumnya.
2.     Mencoba System Call yang tidak benar atau System Call yang benar tetapi dengan parameter yang salah.
3.     Mencoba Login tetapi segera setelah itu menekan tombol yang dapat menghentikan proses, seperti DEL, RUBOUT atau BREAK supaya tidak menjalankan rutin password.
4.     Mencoba merubah struktur sistem operasi dan menyimpan di ruang disk user.
5.     Spoof user lain dengan membuat tulisan "login :" di layar.
6.     Mencari informasi yang tidak boleh dilakukan pada manual book, lalu mencobanya dengan berbagai variasi.
7.     Trapdoor, meyakinkan programer untuk melewati pengecekan login/password untuk setiap user menggunakan nama loginnya.
8.     Menggunakan kelemahan sifat manusia yang memegang kendali sistem administrasi, seperti sekretaris SysAdm.

Virus

Virus adalah suatu penggalan program yang menempel program sebenarnya dengan maksud menjangkitkan dirinya ke program lain.
4.5        Prinsip-Prinsip Disain Pengamanan
Prinsip-prinsip umum yang digunakan untuk merancang sistem pengamanan adalah :
1.     Disain sistem harus bersifat public
2.     Nilai default harus tidak boleh diakses.
3.     Mengecek otoritas saat itu (current authority).
4.     Memberikan setiap proses kemampuan akses sesedikit mungkin.
5.     Mekanisme proteksi harus sederhana, uniform dan built in ke lapisan terbawah dari sistem.
6.     Skema pengamanan harus dapat diterima secara psikologis.

4.6        User Authentication
Masalah yang berhubungan dengan identifikasi user ketika login disebut user authentication. Ini mencakup sesuatu yang diketahui, yang dimiliki dan yang digunakan oleh user.

Password

Bentuk autentikasi yang paling banyak digunakan adalah PASSWORD. Ketika digunakan, password dalam bentuk terenkripsi.
Autentikasi password mudah untuk dipecahkan.
Buktinya :
Morris dan thompson (1979) meneliti password pada sistem UNIX, dengan mengcompile daftar mirip password : nama depan, nama belakang, nama jalan, nama kota, kata dari kamus, nomor plat mobil dan string pendek dari huruf acak. Kemudian mengenkripsi menggunakan algoritma enkripsi password dan mengecek apakah ada password yang terenkripsi sama dengan daftar yang dibuatnya.
Hasilnya menunjukkan bahwa lebih dari 86 % password cocok dengan daftarnya.

Cara sistem menanggulangi password yang mudah dipecahkan dengan :
-       Memberikan peringatan ketika pembuatan password berlangsung, seperti peringatan ketika nama dan passwordnya bernilai sama.
-       Kadangkala sistem operasi mengharuskan untuk mengganti password dalam jangka waktu tertentu.
-       Tidak menampakkan tulisan aslinya ketika proses pemasukan password.
-       Tidak menyimpan password asli, tetapi dalam bentuk terenkripsi.
-       Menerapkan suatu pertanyaan dan menyimpan pertanyaan dan jawabannya, sementara passwordnya hanya diingat oleh user.
-       Challenge-response, menerapkan algoritma tertentu. Contohnya penggunaan "pangkat-2". Komputer bertanya kepada user ketika login. Argumen komputer 7, maka user user bisa masuk kedalam sistem jika menjawab 49. Algoritma dapat diatur berubah setiap pagi, siang, malam atau beda hari atau beda minggu atau beda mesin dll.

Identifikasi Fisik

Ada beberapa contoh :
-       Cara fisik berupa kartu plastik dengan pita magnetik. Bentuk fisik ini dapat digabung bersama password sehingga user berhasil login jika mempunyai kartu dan mengetahui password.
-       Fingerprint (sidik jari) atau voiceprint (sidik suara) dengan metode direct visual recognition.
-       Signature Analysis. User membuat tanda tangan dengan pen pada terminal komputer.
-       Analisis Panjang jari. User memasukkan tangan kedalam alat lalu panjang jari dibaca serta dicocokkan dengan database didalam sistem.
-       Untuk kasus pengamanan yang extra ketat :
-       Ada tulisan "Untuk masuk, silakan berikan contoh anda disini", user diwajibkan memberikan urine lalu dicek dengan metode urinalysis.
-       Spectrographic analysis, dengan cara user menekan jarinya diatas benda tajam, agar diperoleh darahnya. Kemudian darahnya dianalisis, sesuai dengan data atau tidak.





5.         MEKANISME PROTEKSI
5.1        Domain Proteksi
Sistem komputer mengandung berbagai object yang perlu diproteksi. Object ini dapat berupa hardware, dan software.

Domain adalah himpunan pasangan dari (object,right). Sedangkan Right dalam hal ini adalah kemampuan untuk membentuk suatu operasi.
Misalkan, ada 3 Domain dengan jenis Right [Read,Write,eXecute]. Printer1 berada pada dua domain dengan satu jenis right, tapi sebenarnya bisa juga berada didua domain dengan jenis right yang berbeda.
Pada sistem UNIX, Domain suatu proses didefinisikan oleh UID dan GID. Dengan kombinasi UID dan GID, akan dapat membuat daftar seluruh object untuk diakses, baik Read, Write maupun eXecute. Setiap proses di UNIX memiliki dua bagian : bagian user dan bagian kernel. Ketika suatu proses mengerjakan sistem call, proses akan berpindah dari bagian user ke bagian kernel. Kernel dapat mengakses object yang berbeda dari object yang diakses oleh user.
Bagaimana caranya sistem mengetahui object tertentu dimiliki oleh domain tertentu ?

DOMAIN
O B J E C T

File1
File2
File3
File4
File5
File6
Printer1
Plotter2

1

Read
Read
Write








2



Read
Read
Write
Execute
Read
Write



Write


3





Read
Write
Execute

Write

Write
Gambar 22. Matriks proteksi.

Kemudian 3 domain sebagai object pada Tabel berikut.

DOMAIN
O B J E C T

File1
File2
File3
File4
File5
File6
Printer1
Plotter2
Domain1
Domain2
Domain3

1

Read
Read
Write









Enter


2




Read

Read
Write
Execute
Read
Write


Write





3






Read
Write
Execute

Write

Write



Gambar 23. Matriks proteksi.dengan domain sebagai object.


Proses pada domain 1 bisa berpindah ke domain 2 tetapi jika telah pindah tidak dapat kembali ke domain semula. Cara ini sama dengan menjalankan SETUID di UNIX.

5.2        Daftar Kendali Akses
Contoh pada gambar 4-30 akan memakan ruang disk. Cara mengatasinya dengan :
Menyimpan berdasarkan Kolom. Cara ini mengandung apa yang menunjukkan setiap object daftar yang urut yang mengandung semua domain yang dapat mengakses object, dan caranya. Daftar ini disebut Access Control List (ACL).
Sistem UNIX, menyediakan 3 bit, rwx, per file untuk pemilik (owner), grup pemilik (owner's group), dan lainnya (others). Skema ini berupa ACL tetapi dimampatkan menjadi 9 bit saja dan menggambarkan object yang menyatakan siapa yang dapat mengakses dan caranya bagaimana.
Contoh :
rwxr--r-- /usr/ast/mail

5.3        Kemampuan (Capability)
Cara membagi berdasarkan Baris, dari gambar 23.
Setiap proses yang ditunjuk merupakan suatu daftar object yang bisa diakses, selama bisa diakses berdasarkan operasi yang diperbolehkan didalam domainnya, Daftar ini disebut Capability List (C-List) dan setiap item didalamnya disebut Capability.
Lihat Tabel berikut.


Type
Rights
Object
0
File

R -  -

Pointer to File3
1
File
RWX
Pointer to File4
2
File
RW -
Pointer to File5
3
Printer
- W -
Pointer to Printer1

Daftar Kemampuan (capability List) untuk domain 2 dari gambar 22.

C-List harus dijaga dari user yang ingin merusaknya dengan metode :
1.     Tagged Architecture, rancangan hardware dimana setiap word memory mempunyai bit tambahan (tag) yang memberitahukan bahwa word mengandung Capability atau tidak.
2.     Menjaga C-List tetap berada didalam sistem operasi.
3.     Menempatkan C-List di ruang disk user, tetapi mengenkripsi setiap capability dengan kunci rahasia yang tidak diketahui oleh user.

Capability biasanya mempunyai Generic Right yang dapat digunakan untuk semua object, contoh :
-       Copy capability : membuat capability baru untuk object sama.
-       Copy object : membuat duplikat object dengan capability baru.
-       Remove capability : menghapus masukan dari C-List, object tidak terpengaruh.
-       Destroy object : menghilangkan object dan capability secara permanen.

Beberapa sistem capability diatur sebagai kumpulan modul, dengan Type Manager Module (TMM) untuk setiap jenis object. Kadang cara ini menimbulkan masalah karena TMM hanya sebuah program, pemiliknya dapat membentuk hanya beberapa operasi saja pada file dan tidak bisa mencapai representasi internal (misalnya i-node).
Solusinya Hydra dengan teknik Right Amplification. TMM diberi kerangka right yang lebih kepada object daripada capability.
Masalah lain pada sistem capability adalah sulitnya menghilangkan akses ke object.
Solusinya dengan Skema uang digunakan didalam Amoeba. Setiap object mengandung angka acak yang panjang, yang juga ada di capability. Ketika capability digunakan, kedua angka tsb dibandingkan. Operasi boleh dijalankan bila kedua angkanya sama.




5.4        Model Proteksi
Harrison membentuk 6 operasi primitif pada matriks proteksi, yaitu :
Create Object, Delete Object, Create Domain, Delete Domain, Insert Right dan Remove Right.
Keenam operasi tsb dikombinasikan kedalam Protection Command, yaitu perintah-perintah proteksi dimana program user dapat menjalankannya untuk merubah matriks.
Matriks menentukan apakah suatu proses didalam domain yang dapat melakukan sesuatu, bukan apakah suatu proses diberi kemampuan untuk melakukan sesuatu.
Contoh sederhana pada tabel di bawah ini.


Object

Object

Compiler
MailBox7
Secret

Compiler
MailBox7
Secret
Eric
Read
Execute


Eric
Read
Execute


Henry
Read
Execute
Read
Write

Henry
Read
Execute
Read
Write

Robert
Read
Execute

Read
Write
Robert
Read
Execute
Read
Read
Write



(a)




(b)


a.     Dimaksudkan untuk kebijakan proteksi.
Henry bisa membaca dan menyimpan mailbox7, Robert bisa membaca dan menyimpan secret, ketiga user bisa membaca dan menjalankan compiler.
Karena Robert sangat cerdas, dan bisa menemukan cara untuk menjalankan perintah sehingga matriks berubah jadi :
b.    Robert bisa juga mengakses mailbox7, yang sebenarnya dia tidak diberi hak. Jika Henry mencoba untuk membacanya (Read), sistem operasi akan menolak permintaan aksesnya karena sistem operasi tidak tahu bahwa kondisi matriks tsb tidak diautorisasi.

5.5        Covert Channel
Model yang ada diatas ternyata sia-sia belaka. Buktinya ? Lampson (1973).

Model Lampson mencakup 3 proses yang dapat diterapkan untuk sistem timesharing :
Proses pertama adalah Client, yang menginginkan proses kedua (yaitu Server) untuk membentuk suatu pekerjaan. Client dan Server tidak saling percaya. Proses ketiga yaitu Collaborator, yang bekerja sama dengan server untuk mencuri data rahasia Client. Biasanya Server dan Collaborator dimiliki oleh orang yang sama.
Tujuan yang ingin dicapai adalah "Tidak Mungkin" Server bisa membocorkan informasi Collaborator yang secara sah diterima dari Client. Lampson menyebut hal ini sebagai Confinement Problem.
Dengan matriks proteksi, dapat dijamin bahwa Server tidak bisa berkomunikasi dengan Collaborator dengan cara menulis kedalam suatu file dimana Collaborator mempunyai hak akses read. Juga bisa dijamin bahwa Server tidak bisa berkomunikasi dengan Collaborator menggunakan mekanisme komunikasi antar proses.
Sayangnya, channel komunikasi yang tersamar bisa ada, seperti Server bisa berkomunikasi dengan deretan bit biner. Untuk mengirimkan bit 1, Server melakukan perhitungan (menyibukkan diri) selama selang waktu tertentu. Untuk mengirimkan bit 0, Server tidak melakukan apa-apa (sleep) dalam selang waktu yang sama. Collaborator bisa mendeteksi aliran bit tsb dengan memonitor respon waktunya. Channel komunikasi ini dikenal sebagai Covert Channel.
Covert Channel merupakan channel yang penuh dengan noise, mengandung banyak informasi tambahan, tetapi informasi sebenarnya dapat diperoleh dengan menggunakan Error Correction Code (seperti Hamming Code).


Tidak ada komentar:

Posting Komentar