KEAMANAN BASISDATA Mengapa masalah keamanan basis data menjadi penting? • Kemampuan menyediakan informasi dengan cepat dan akurat, merupakan kebutuhan dalam information-based society. • Sangat pentingnya informasi hanya boleh diakses oleh orang yang terotorisasi. • Adanya trend trade-secret; curi informasi ada nilai ekonomis • Keamanan merupakan suatu proteksi terhadap pengrusakan data dan pemakaian data oleh pemakai yang tidak punya kewenangan. • Untuk menjaga keamanan Basis Data dgn : • Penentuan perangkat lunak Data Base Server yang handal. • Pemberian Otoritas kepada user mana saja yang berhak mengakses, serta memanipulasi data-data yang ada. Pendahuluan • 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. • Basis Data mulai terhubung ke jaringan komputer • Membuka potensi lubang keamanan. • Security vs kenyamanan (comfortable). • Lebih banyak server yang harus ditangani dan butuh lebih banyak SDM yang handal dan tersebar; padahal susah mencari SDM, untuk itu dilakukan desentralisasi server. Potensi ancaman 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. Aspek keamanan basis data: • Privacy / confidentiality • Integrity • Authentication • Availability • Non-repudiation • Access control 11 Prinsip pengamanan kerahasiaan Security Principles Integritas • • • ketersediaan Kerahasiaan menjamin perlindungan akses informasi Keterpaduan menjamin bahwa informasi tidak dapat diubah Ketersediaan menjamin kesiapa kesiapan akses informasi 12 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 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. 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: Pengguna Akhir · Menggunakan hak akses orang lain. · Melihat & menutup data yang tidak diotorisasi · Staf tidak di-training · Pemasukan data yang dilakukan oleh yang tidak berhak. · Virus · pemerasan Programmer / Operator Database Administrator · Membuat Password. · Membuat program yang tidak aman · Staf yang tidak ditraining. · Kebijakan keamanan & prosedur · Pemogokan staf · Kebijakan keamanan & prosedur 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. 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 Akses dan Prosedur pada Basis Data yang terkoneksi on-line: Skema Lapisan pada Basis Data yang dinterkoneksikan dengan aplikasi sistem utama user Middle-end units DBMS 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 • keadaan yang disebabkan oleh pendistribuasian data pada beberapa komputer • logika error yang mengancam kemampuan transaksi untuk mempertahankan konsistensi database. • Disengaja oleh pihak yang tidak ada 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 berhatihati 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 Basisdata Pengaturan hak pengguna yang baik. Skema Utama Mekanisme Keamanan Basis Data on-line ENKRIPSI In-Secure Eksternal Network ENKRIPSI Remote Client Server DBMS FIREWALL Otorisasi Dan Akses Local Client Secure Internal Network (Intranet) Database 28 Pertahanan • Menggunakan pendekatan berlapis: • • Meningkatkan deteksi resiko serangan Mengurangi kesempatan berhasilnya penyerangan Data Aplikasi Host Jaringan internal Perimeter Kemanan fisik Kebijakan, Prosedur, & Kepedulian enkripsi Pembakuan aplikasi, antivirus Pembakuan OS, pengelolaan jalur, autentikasi IPSec, NIDS Firewalls, VPN quarantine pengawasan, kunci, penandaan peralatan Pembelajaran user Alasan dibutuhkan otoritas pada keamanan basis data: • Pemberian wewenang atau hak istimewa (privilege) untuk mengakses sistem basis data. • Kendali otorisasi (=kontrol akses) 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. Tabel View pada keamanan basis data: 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. • Merupakan Untuk Beberapa tingkat pengamanan pada Basis Data Relasional • Relasi user diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi. • View user diperbolehkan atau tidak diperbolehkan mengakses data yang terapat pada view. • Read Authorization user diperbolehkan membaca data, tetapi tidak dapat memodifikasi. • Insert Authorizationuser 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 Authorization): untuk Modifikasi Data (Update • 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. Contoh perintah menggunakan SQL : GRANT : memberikan wewenang kepada pemakai Syntax : GRANT <priviledge list> ON <nama relasi/view> TO <pemakai> GRANT SELECT ON S TO BUDI Contoh : GRANT SELECT,UPDATE (STATUS,KOTA) ON S TO ALI,BUDI Contoh perintah menggunakan SQL : REVOKE : mencabut wewenang yang dimiliki oleh pemakai 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 mebuat duplikat dari basisdata 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 Cara mudah menerapkan keamanan • Memberi semua pengguna akses maksimum, tetapi kelemahannya adalah adanya kemungkinan kehilangan atau penyalahgunaan data. • Pengguna basisdata harus mempunyai akses yang cukup untuk melaksanakan pekerjaannya. Dengan kata lain, akses yang diberikan kepada pengguna harus sekecil mungkin untuk menghindari masalah. Tingkatan Akses • Apabila pengguna diberi identitas pengguna, mereka dapat mengakses basisdata secara langsung ke dalam jaringan melalui aplikasi client-server • Novell dapat mengontrol account sistem operasi dan account basisdata. Sistem Administrator maupun Administrator Basisdata mempunyai potensi melakukan kesalahan. Tingkatan akses ke suatu sistem informasi: • Pengguna Super (root pada Unix, Admin pada Novell) • Pemilik Basisdata • Pemilik Skema • Pengguna Akhir • Pengguna super adalah account pada sistem operasi yang mempunyaiPrivilege paling banyak. Pengguna super memiliki akses ke semua file yang disimpan pada sistem • Pemilik basisdata memiliki akses ke semua file yang berhubungan dengan software basisdata dan file data pada suatu sistem.Meskipun pemilik basisdata dibatasi pada file-file yang berhubungan dengan basisdata, tetapi kita perlu mengingat bahwa sebagian file pada sebagian sistem berhubungan dengan basisdata • Pemilik skema adalah pembuat dan pemilik objek-objek basisdata yang digunakan untuk aplikasi pengguna.Pemilik skema mempunyai akses tak terbatas ke seluruh objek skema dan bertanggungjawab mengontrol akses ke account pengguna lainnya. • Pengguna akhir mempunyai akses paling sedikit meskipun basisdata dibuat untuk pengguna akhir. Hubungan pengguna dengan basisdata • Pengguna dalam suatu basisdata dapat pula mengakses basisdata lainnya dengan menghubungkan dua basisdata. Hubungan keduanya akan menghubungkan pengguna pada basisdata pertama ke pengguna pada basisdata kedua. • Kemudian, pengguna pada basisdata pertama dapat mengakses basisdata kedua dengan privilege yang dimiliki pengguna pada basisdata kedua. Hubungan basisdata merupakan tool yang sangat berguna, tetapi harus diatur untuk memastikan tool tidak disalahgunakan Privilege • Privilege digunakan untuk mengontrol akses pengguna. Privilege terdapat pada tingkatan sistem operasi, basisdata, dan aplikasi. • Privilege basisdata mengontrol akses pengguna dalam lingkungan basisdata seperti manipulasi struktur basisdata dan akses ke objek skem Privilege dalam basisdata relasional : Privilege sistem • Sistem terdiri atas hal-hal yang memungkinkan pengguna melakukan tugasya pada ruang lingkup basisdata • Privilege sistem meliputi kemampuan membuat tabel, menghapus tabel, mengubah struktur tabel, membuat indeks dan view, dan memanipulasi account pengguna • Privilege sistem berbeda-beda antara satu perangkat lunak basisdata relasional dengan yang lainnya Lanjutan........ • Privilege objek memungkinkan pengguna melakukan tugasnya pada ruang lingkup skema • Privilege objek meliputi kemampuan mengambil data dari tabel dan memanipulasi data tabel • Privilege objek : • SELECT - memungkinkan data diambil dari table. • INSERT - memungkinkan pembentukan baris data baru pada tabel. • UPDATE - memungkinkan data yang sudah ada dalam tabel untuk dimodifikasi. • REFERENCES - memungkinkan kolom dalam tabel untuk diacu kolom lain (seperti melalui kunci tamu). • USAGE - memungkinkan penggunaan domain tertentu. Proses pengaturan akses pengguna akhir melalui privilege basisdata