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