Database Security BY Andy Dharmalau STMIK SWADHARMA Jakarta Kota 2016
Mengapa masalah keamanan basis data menjadi penting? Sangat pentingnya informasi hanya boleh diakses oleh orang yang terotorisasi. Adanya trend trade-secret; curi informasi ada nilai ekonomis Kemampuan menyediakan informasi dengan cepat dan akurat, merupakan kebutuhan utama dalam information-based society.
Pendahuluan dan Pengantar Awalnya sebuah komputer disebut PC (Personal Computer), namun seiring dengan perkembangan bidang jaringan komputer, maka sebuah komputer tidak tepat lagi disebut PC, melainkan shared-computer digunakan untuk menyimpan classified-information. Dengan adanya LAN (computer networks) akan mempercepat akses pertukaran informasi. Basis Data mulai terhubung ke jaringan komputer
Pendahuluan dan Pengantar Membuka potensi lubang keamanan. Security vs kenyamanan (comfortable). Lebih banyak server yang harus ditangani dan butuh lebih banyak SDM dan tersebar; padahal sulit mencari SDM yang handal, untuk itu dilakukan desentralisasi server.
Klasifikasi Keamanan Basis Data: Keamanan yang bersifat fisik (physical security). Keamanan yang berhubungan dengan orang (personel). Keamanan dari data dan media serta teknik komunikasi. Keamanan dalam operasi.
Aspek untuk dukungan keamanan Basis Data: Network security fokus kepada saluran pembawa informasi. Application security fokus kepada aplikasi itu sendiri. Computer security fokus kepada keamanan dari komputer (end system) yang digunakan.
Prinsip pengamanan Kerahasiaan menjamin perlindungan akses informasi Integritas/Keterpaduan menjamin bahwa informasi tidak dapat diubah Ketersediaan menjamin kesiapa kesiapan akses informasi
Contoh: Kerahasiaan: catatan medis pasien harus tertutup untuk umum. Integritas: catatan medis harus benar. Ketersediaan: catatan medis pasien dapat diakses saat dibutuhkan untuk pengobatan.
Aspek keamanan Basis Data: Privacy / confidentiality Integrity Authentication Availability Non-repudiation Access control
Aspek kehandalan : Privacy / confidentiality Proteksi data bersifat pribadi yang sensitif seperti: Nama, tempat tanggal lahir, agama, hobby, penyakit yang pernah diderita, status perkawinan. Data pelanggan Transaksi pada e-commerce Proteksi terhadap serangan sniffer.
Aspek kehandalan : Integrity Informasi tidak berubah tanpa ijin seperti: Tampered (menimpa data lama) Altered (perubahan nilai data edited) Modified (disisipkan, ditambah, dihapus) Proteksi terhadap serangan sniffer.
Aspek kehandalan : Integrity Informasi tidak berubah tanpa ijin seperti: Tampered (menimpa data lama) Altered (perubahan nilai data edited) Modified (disisipkan, ditambah, dihapus) Proteksi terhadap serangan: spoof, virus, trojan horse.
Aspek kehandalan : Authentication Meyakinkan keaslian data, sumber data, orang yang mengakses data, server yang digunakan: penggunaan digital signature, biometrics. Proteksi terhadap serangan: password palsu.
Aspek kehandalan : Availability Informasi harus dapat tersedia ketika dibutuhkan: server dibuat hang, down, crash. Proteksi terhadap serangan: Denial of Service (DoS) attack.
Aspek kehandalan : Non-repudiation Tidak dapat menyangkal (telah melakukan transaksi): menggunakan digital signature. Proteksi terhadap serangan: deception(Penipuan).
Aspek kehandalan : Access Control Mekanisme untuk mengatur siapa boleh melakukan apa: biasanya menggunakan password. adanya kelas / klasifikasi privillege user. Proteksi terhadap serangan: intruder.
Batasan Privillege-user untuk Access Control pada Basis Data:
Jenis Serangan (attack) Interruption: penghentian sebuah proses yang sedang berjalan. Interception: menyela sebuah proses yang sedang berjalan. Modification: mengubah data tanpa ijin dari pihak otoritas. Fabrication: perusakan secara mendasar pada sistem utama.
Skema Akses dan Prosedur pada Basis Data yang terkoneksi on-line:
Perlunya keamanan menyeluruh pada Basis Data: Keamanan merupakan suatu proteksi terhadap pengrusakan data dan pemakaian data oleh user yang tidak memiliki otoritas. Untuk menjaga keamanan Basis Data dibutuhkan: Penentuan perangkat lunak Basis Data Server yang handal. Pemberian otoritas kepada user mana saja yang berhak mengakses, serta memanipulasi data-data yang ada.
Skema Lapisan pada Basis Data yang dinterkoneksikan dengan aplikasi sistem utama user DBMS Middle-end units Front-end system Back-end system
Penyalahgunaan Database : Tidak disengaja, misalnya sebagai berikut: kerusakan selama proses transaksi keadaan yang disebabkan oleh akses database yang konkuren (proses 2x) keadaan yang disebabkan oleh pendistribusian data pada beberapa komputer. logika error yang mengancam kemampuan transaksi untuk mempertahankan konsistensi database. Disengaja, seperti misalnya: ….
Penyalahgunaan Database : Disengaja oleh pihak yang tidak memiliki otoritas, seperti misalnya: Pengambilan data / pembacaan data Pengubahan data Penghapusan data
Tingkatan Pada Keamanan Basis Data Physical lokasi-lokasi dimana terdapat sistem komputer haruslah aman secara fisik terhadap serangan destroyer. User wewenang user harus dilakukan dengan berhati-hati untuk mengurangi kemungkinan adanya manipulasi oleh user lain yang otoritas. Sistem Operasi kelemahan entitas ini memungkinkan pengaksesan data oleh user tak berwenang, karena hampir seluruh jaringan sistem basis data berjalan secara on-line. Sistem Basis data Pengaturan hak pengguna yang baik.
Skema Utama Mekanisme Keamanan Basis Data on-line
Alasan dibutuhkan otoritas pada keamanan basis data: Pemberian wewenang atau hak istimewa (privilege) untuk mengakses sistem basis data. Kendali otorisasi dapat dibangun pada perangkat lunak dengan 2 fungsi : Mengendalikan sistem atau obyek yang dapat diakses Mengendalikan bagaimana user menggunakannya Sistem administrasi yang bertanggungjawab untuk memberikan hak akses dengan membuat user account.
Yang dimaksud Tabel View pada keamanan basis data: Merupakan metode pembatasan bagi user untuk mendapatkan model basis data yang sesuai dengan kebutuhan pengguna. Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh user.
Pengamanan pada Basis Data Relasional dilakukan beberapa level: Relasi user diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi. View user diperbolehkan atau tidak diperbolehkan mengakses data yang terdapat pada view. Read Authorization user diperbolehkan membaca data, tetapi tidak dapat memodifikasi.
Untuk pengamanan pada Basis Data Relasional dilakukan beberapa level: Insert Authorization user diperbolehkan menambah data baru, tetapi tidak dapat memodifikasi data yang sudah ada. Update Authorization user diperbolehkan memodifikasi data, tetapi tidak dapat menghapus data. Delete Authorization user diperbolehkan menghapus data.
Otorisasi tambahan untuk Modifikasi Data (Update Authorization): Index Authorization user diperbolehkan membuat dan menghapus index data. Resource Authorization user diperbolehkan membuat relasi-relasi baru. Alteration Authorization user diperbolehkan menambah/menghapus atribut suatu relasi. Drop Authorization user diperbolehkan menghapus relasi yang sudah ada.
3 Tingkat otoritas user dalam mengakses database 1. CONNECT - Dapat menampilkan dan merubah data - Membuat View dari table/ralasi yang diijinkan - Dapat menggunakan pernyataan ALTER, DROP TABLE, INDEX - Membeikan ijin kepada user lain untuk menggunakan table/relasi yang diijinkan. 2. RESOURCE - Merubah struktur table - Membuat table baru, view baru - Hak yang sama dengan CONNECT 3. DBA - Memberikan grant dengan level privilege kepada user - Melakukan DROP DATABASE - Hak yang sama dengan RESOURCE
Grant Perintah pemberian wewenang user untuk menggunakan table dalam database WITH GRANT OPTION menyebabkan user dapat memberi wewenang kepada user lain atas table yang diijinkan. Syntax: GRANT {privilege list} ON { nama_relasi atau nama_view} TO user_list [WITH GRANT OPTION] Syntax : GRANT <priviledge list> ON <nama relasi/view> TO <pemakai>
Contoh perintah menggunakan SQL : GRANT SELECT ON S TO BUDI GRANT SELECT,UPDATE (STATUS,KOTA) ON S TO ALI,BUDI Syntax : GRANT <priviledge list> ON <nama relasi/view> TO <pemakai>
REVOKE Perintah untuk menghapus wewenang user dalam menggunakan database : REVOKE {privilege list} ON { nama_relasi atau nama_view} FROM user_list Syntax : REVOKE <priviledge list> ON <nama relasi/view> FROM <pemakai>
REVOKE SELECT ON S FROM BUDI Syntax : REVOKE <priviledge list> ON <nama relasi/view> FROM <pemakai> Contoh : REVOKE SELECT ON S FROM BUDI REVOKE SELECT,UPDATE (STATUS,KOTA) ON S FROM ALI,BUDI Priviledge list : READ, INSERT, DROP, DELETE, INDEX, ALTERATION, RESOURCE
Back-up data dan recovery : Back-up : proses secara periodik untuk membuat duplikat dari basis data dan melakukan logging file (atau program) ke media penyimpanan eksternal. Recovery : merupakan upaya uantuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan
Sekian Terimakasih