Upload
ricky-ardian
View
105
Download
6
Embed Size (px)
Citation preview
KELOMPOK 10RICKY ARDIANTAUFIK ISMAILFAJAR SETIADI
MIF B4/09
MATA KULIAH SISTEM BASIS DATA
KEAMANAN BASIS DATA
Present…
BEGIN…
Security (Keamanan)
Secara umum,keamanan merupakan suatu proses perlindungan terhadap suatu hal yang dianggap penting.
security is a process not a product .. .. (Bruce Schneier)
dimana tentu saja proses tersebut tidak akan berhenti hanya pada satu bentuk keamanan
Security dalam SIMBAD
Merupakan tindakan untuk memproteksi data dalam suatu basis data dari kejahatan mencuri atau memodifikasi data tersebut.
Mengapa?
Mengapa suatu basis data perlu diamankan?
Beberapa alasan pengamanan basis data
Data merupakan sumber daya yg sangat bernilai sehingga harus dikontrol & dikelola dgn sumber daya lainnya
Sebagian atau keseluruhan data mempunyai kepentingan yg strategis & membutuhkan kerahasiaan.
Butuh mekanisme yg dapat memproteksi basis data dari ancaman yg disengaja atau kecelakaan
Pelanggaran terhadap keamanan dapat mempengaruhi bagian lain dari sistem, tetapi dapat berdampak pula pada basis data
Diamankan dari apa?
Suatu basis data tentunya harus diamankan dari :
Situasi atau kejadian (penyimpanan perangkat komputer/basis data tidak strategis atau tidak terlindungi dari kemungkinan2 yang bisa terjadi)
Kegiatan/lingkungan (disengaja maupun tidak, seperti pencurian & penggelapan, kehilangan privacy, kehilangan ketersediaan, dll)
dll
Proteksi/perlindungan
Bagaimana dan apa saja yang harus dilakukan agar kita dapat
mengamankan basis data dalam suatu sistem basis data….???
Level Security (Tingkatan Keamanan)Untuk melindungi database, ada beberapa tingkatan keamanan yang harus diperhatikan:
1. Database system level. Merupakan mekanisme autentikasi dan otorisasi untuk mengijinkan pemakai tertentu melakukan akses data yang diperlukan saja.
2. Operating System Level. Operating System super-User dapat melakukan apapun terhadap database. Keamanan sistem operasi yang handal dan bagus diperlukan dalam hal ini.
3. Network Level. Pada level ini keamanan harus menggunakan enkripsi untuk menjaga :
o Eavesdropping : pembacaan yang tidak terotorisasi terhadap pesan-pesan tertentu
o Masquerading : berpura-pura menjadi pemakai yang sah atau mengirimkan pesan yang seolah berasal dari pemakai yang sah.
4. Physical Level. Yaitu melakukan akses fisik terhadap komputer guna menghindari terjadinya perusakan data, keamanan dengan menggunakan kunci diperlukan. Komputer juga harus diamankan dari kebanjiran, kebakaran dan lainnya.
5. Human Level. Pemakai/Pegawai harus disaring dahulu untuk memastikan bahwa pemakai yang sah tidak memperbolehkan memberikan hak akses kepada orang lain (penyusup). Pemakai harus dilatih dalam pemilihan password dan menjaga kerahasiannya.
Authorization (OTORISASI)
OTORISASI merupakan hak atau kuasa yang diberikan DBA kepada pengguna database.
Jenis Otrisasi yg dapat diberikan: Bentuk-bentuk authorization (otorisasi) terhadap
bagian-bagian database:o Read authorization – membolehkan membaca,
tetapi tidak mengubah data.o Insert authorization – memungkinkan
menambah data baru, tetapi tidak mengubah data yang sudah ada.
o Update authorization – memungkinkan mengubah data, tetapi tidak menghapus data.
o Delete authorization – memungkinkan penghapusan data
Bentuk-bentuk authorization untuk
mengubah skema database:o Index authorization – memungkinkan
pembuatan dan penghapusan indeks.o Resorources authorization – memungkinkan
pembuatan relasi baru.o Alteration authorization – memungkinkan
penambahan atau penghapusan atribut-atribut dalam sebuah relasi.
o Drop authorization – memungkinkan penghapusan relasi-relasi.
HUBUNGAN DBA DENGAN OTORISASI
Otorisasi atau Hak yang sudah diberikan DBA (Data Base Administrator) kepada pengguna (User) bisa diberikan lagi kepada pengguna lain secara langsung dari DBA atau melalui Pengguna yang sudah mempunyai otorisasi tentunya dengan menentukan dan menyesuaikan otorisasi seperti apa yang dibutuhkan.
Contoh
Seorang DBA memberikan Otorisasi kepada User 1, 2 dan 3
Kemudian User 1 memberikan Otorisasi kepada User 4 dan 5
Dan User 2 memberikan Otorisasi juga kepada User 5
Spesifikasi dalam SQL
Spesifikasi Security dalam SQL Statement grant digunakan untuk memberikan
otorisasigrant <privilege list>on <relation name or view name> to <user list>
<user list> adalah: suatu user-id public, yang memungkinkan semua user yang valid
memperoleh privilege (authorization) Suatu role
Memberikan suatu privilege (hak istimewa) pada sebuah view tidak berarti memberikan privilege apapun terhadap relasi-relasi penyusun view tersebut.
Pemberi privilege harus sudah mempunyai privilege terhadap item yang akan diberikan privilege-nya (atau seorang database administrator, dll)
Jenis-jenis Privilege dalam SQL
select: Memungkinkan akses baca terhadap relasi, atau kemampuan untuk melakukan query menggunakan view Contoh: Seorang DBA memberikan user U1, U2, dan
U3 select authorization pada relasi branch:grant select on branch to U1, U2, U3
insert: kemampuan untuk menyisipkan tuple-tuple update: kemampuan untuk mengubah data
menggunakan statement update SQL delete: kemampuan untuk menghapus tuple-tuple. references: kemampuan untuk mendeklarasikan
foreign key pada saat membuat relasi-relasi. usage: Dalam SQL-92; memberikan user hak untuk
menggunakan suatu domain all privileges: Digunakan sebagai kependekan dari
semua privilege yang diizinkan
PRIVILEGE UNTUK MEMBERIKAN PRIVILEGE
with grant option: memungkinkan seorang pengguna yang diberikan privilege untuk memberikan privilege tersebut ke user yang lain. Contoh:
grant select on branch to U1 with grant optionMemberikan U1 privilege select pada relasi branch dan memungkinkan U1 untuk memberikan privilege ini ke user lain
ROLE Role memungkinkan privilege yang umum untuk sekelompok
pengguna dapat dispesifikasikan hanya sekali dengan membuat “role” yang sesuai
Privilege dapat diberikan atau ditarik dari role, seperti berlaku kepada user
Role dapat diberikan kepada user, dan bahkan kepada role yang lain
SQL:1999 men-suport pendefinisian rolecreate role tellercreate role manager
grant select on branch to tellergrant update (balance) on account to tellergrant all privileges on account to manager
grant teller to manager
grant teller to alice, bobgrant manager to avi
Otorisasi Pengguna HilangOtorisasi yang diberikan kepada
pengguna bisa saja hilang (dicabut) jika User yang memberikan otorisasi kepada user lain ataupun DBA secara langsung mencabut (revoke) otorisasi tersebut.
Contoh
Jika DBA mencabut (revoke) grant dari U1: Maka Grant yang dimiliki oleh U4 harus dicabut karena U1 tidak
lagi memiliki authorization Grant tidak boleh dicabut dari U5 karena U5 memiliki lintasan
authorization yang lain dari DBA melalui U2
Hindari Cycle GrantHarus mencegah cycle grant tanpa adanya lintasan dari root: DBA memberikan
authorization ke U2 dan U3
U2 memberikan authorization ke U3
U3 memberikan authorization ke U2
DBA menarik authorization from U2 dan U3 secara berurutan
Maka pemberian (grant) authorization dari U2 ke U3 ataupun sebaliknya harus ditarik karena tidak ada lagi lintasan langsung dari DBA ke U2 atau U3.
Menarik (revoke) Authorization dalam SQLStatement revoke digunakan untuk menarik
authorization. revoke<privilege list>on <relation name or view name> from <user list>
[restrict|cascade]Contoh:
revoke select on branch from U1, U2, U3 cascadePenarikan sebuah privilege dari seorang user dapat
menyebabkan user yang lain kehilangan privilegenya; hal ini disebut cascading revoke (penarikan berantai).
Kita dapat mencegah revoke berantai dengan memberikan perintah dengan option restrict :
revoke select on branch from U1, U2, U3 restrictDengan option restrict ini, perintah revoke akan gagal jika akan terjadi revoke berantai oleh perintah revoke yang saat ini dikeluarkan.
Spesifikasi dalam SQL
<privilege-list> dapat diisi oleh all untuk menarik semua privilege yang sedang dipegang oleh seorang user.
Jika <user-list> diisi dengan public maka semua user kehilangan privilege kecuali yang memperoleh privilege tersebut secara eksplisit
Jika privilege yang sama diberikan dua kali kepada user yang sama oleh pemberi yang berbeda, user mungkin dapat memegang privilege tersebut setelah penarikan.
Semua privilege yang bergantung terhadap privilege yang sedang dicabut juga ikut dicabut.
VIEWPoint utama mengenai VIEW
Merupakan hasil dinamis dari operasi relasional terhadap satu atau lebih relasi untuk menghasilkan relasi lain
Merupakan relasi virtual, tidak terdapat pada basis data, tetapi dihasilkan karena permintaan pemakai
Menyajikan data yang relevan dengan kebutuhan pengguna, tapi field2 lain disembunyikan
Dukungan VIEW terhadap OTORISASI
Authorization dan View
User dapat diberikan authorization terhadap view, tanpa harus diberikan hak akses terhadap relasi-relasi yang digunakan untuk membangun view tersebut.
Kemampuan view untuk menyembunyikan data berfungsi baik untuk menyederhanakan penggunaan sistem dan untuk meningkatkan security dengan hanya memungkinkan user mengakses data yang mereka perlukan untuk pekerjaan mereka.
Gabungan antara relational-level security dan view-level security dapat digunakan untuk membatasi akses user hanya kepada data yang dibutuhkannya.
Contoh View Misalkan seorang pegawai bank ingin mengetahui
nama-nama semua nasabah yang mempunyai pinjaman untuk masing-masing cabang, tetapi tidak diperbolehkan mengetahui informasi secara spesifik mengenai pinjaman tersebut. Pendekatan yang dilakukan: Tolak akses langsung
terhadap relasi loan, tetapi berikan hak akses terhadap view cust-loan, yang hanya terdiri dari nama-nama seluruh nasabah dan cabang-cabang tempat mereka memiliki pinjaman.
cust-loan view didefinisikan dalam SQL sebagai berikut:
create view cust-loan as select branchname, customer-name from borrower, loan where borrower.loan-number = loan.loan-
number Pegawai tadi mempunyai hak untuk melihat hasil dari
query: select *from cust-loan
Authorization pada ViewPembuatan view tidak memerlukan
resources authorization (Otorisasi Sumber daya) karena tidak ada relasi nyata yang dibuat
Pembuat view hanya mendapatkan privilege yang dimiliki sebelum dia menciptakan view tersebutCth. Jika pembuat view cust-loan hanya
memiliki read authorization terhadap borrower dan loan, maka dia hanya memperoleh read authorization pada cust-loan
Thank’s for your attention…End …