Keamanan Basis Data (Database Security)
1. Pengertian Kemanan Database
Hari ini kita akan belajar mengenai keamanan database (database security). Nah, menurut ForcePoint, keamanan data atau data security adalah sebuah prosedur dengan dukungan dari regulasi dan teknologi untuk melindungi data dari kerusakan data, modifikasi data, serta penyebaran data baik yang disengaja maupun tidak.
Keamanan database tidak hanya berkenaan dengan data yang ada pada database saja, tetapi juga meliputi bagian lain dari sistem database, yang tentunya dapat memengaruhi database tersebut. Hal ini berarti keamanan database mencakup perangkat keras, perangkat lunak, dan data.
Agar memiliki suatu keamanan yang efektif dibutuhkan kontrol yang tepat. Seseorang yang mempunyai hak untuk mengontrol dan mengatur database biasanya disebut Administrator database. Seorang administrator-lah yang memegang peranan penting pada suatu sistem database, oleh karena itu administrator harus mempunyai kemampuan dan pengetahuan yang cukup agar dapat mengatur suatu sistem database.
2. Tujuan Keamanan Database
Tujuan dari kemanan database itu sendiri dapat dilihat dari tiga aspek, yakni :
- Secrecy/Confidentiality → Informasi tidak boleh diungkapkan kepada pengguna yang tidak sah. Contoh, e-mail seorang pemakai (user) tidak boleh dibaca oleh administrator.
- Integrity → Informasi tidak boleh diubah tanpa seijin pemilik informasi, keaslian pesan yang dikirim melalui sebuah jaringan dan dapat dipastikan bahwa informasi yang dikirim tidak dimodifikasi oleh orang yang tidak berhak dalam perjalanan informasi tersebut. Contoh, isi e-mail di intercept di tengah jalan kemudian diubah isinya, dan diteruskan ke alamat yang dituju.
- Availability → Pengguna yang terdaftar tidak boleh ditolak akses. Sebagai contoh, user yang ingin ingin mengedit isi e-mail harus diizinkan untuk melakukannya.
3. Urgensi Keamanan Basis Data
Sadarkah kita bahwa hari ini hampir semua warga Indonesia pernah mengalami kecurian data? Tidak?. Hmm coba ingat-ingat lagi. Apakah kalian pernah mendapatkan SMS penipuan hadiah uang tunai yang mengatasnamakan perusahaan besar ? Atau tiba-tiba saja dihubungi oleh seseorang yang mengaku dari bank tertentu dan memberikan iming-iming duit senilai puluhan juta? Atau diminta untuk meng-klik link aneh yang menginformasikan bahwa itu adalah link kuota kemendikbud ?. Jika kalian sudah pernah mengalami semuanya, maka itulah cara sederhana bagi oknum tidak bertanggung jawab untuk melakukan pencurian data. Mungkin akan mudah bagi kalian untuk membedakan yang mana penipuan, dan mana yang bukan. Tetapi, paham kan bahayanya jika ada orang awam yang terkena jebakan ini ?
Mengapa masalah keamanan basis data menjadi penting? Oke gini, basis-data merupakan salah satu komponen yang penting dalam sistem informasi, karena merupakan media utama dalam menyediakan informasi kepada user. Jika informasi user yang tersimpan dalam database ini dapat diakses oleh siapapun, maka data-data user akan rentan untuk disalahgunakan oleh oknum yang tidak berwenang, dan merugikan bagi pemilik data itu sendiri.
Berikut tiga hal tentang mengapa keamanan data pada basis data sangat penting :
- Kemampuan menyediakan informasi dengan cepat dan akurat, adalah merupakan kebutuhan dalam information-based society.
- Mencegah potensi kerugian material, seperti adanya trend trade-secret, yaitu jual-beli data sehingga muncul perilaku untuk mencuri informasi dengan melibatkan unsur nilai ekonomis.
- Mengurangi risiko penyalahgunaan data / informasi.
4. Perubahan paradigma personal-computer menjadi sharedcomputer
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. Shared-computer biasanya digunakan untuk menyimpan data yang bersifat classified-information.
Shared-computer adalah komputer yang saling dikoneksikan satu dengan yang lain, sehingga user bisa saling berbagi informasi (shared-resources), yang membentuk sebuah Local Area Network (LAN). Dengan adanya LAN (computer networks) akan mempercepat user untuk melakukan akses ke basis data.
Basis Data yang berada pada komputer dihubungkan ke jaringan komputer agar proses sharing information dapat berjalan. Dengan demikian, user dapat mengakses informasi yang diinginkan ke basis data dari mana saja dan kapan saja.
Dengan adanya koneksi ke basis data dari segala arah, menyebabkan beberapa hal baru yang mengkhawatirkan muncul seperti:
- Membuka potensi lubang keamanan untuk disusupi oleh penyadap (matamata).
- User dihadapkan kepada pilihan: keamanan (secure) atau kenyamanan (comfortable).
- Meningkatnya jumlah host yang digunakan seiring jumlah user yang memiliki otoritas menyebabkan : lebih banyak server yang harus ditangani sehingga membutuh lebih banyak SDM yang handal dan tersebar padahal susah mencari SDM yang diinginkan berdasar kebutuhan, untuk itu dilakukan desentralisasi server.
5. Klasifikasi kemanan Basis Data
Berikut klasifikasi keamanan basis data :
- Keamanan yang bersifat fisik (physical security), yaitu yang berdasar pada aspek fisik perangkat. Misalkan ruang server, kunci komputer, kartu elektronis.
- Keamanan yang berhubungan dengan orang (personel), yaitu user yang diberi labelling untuk privillege akses pengguna.
- Keamanan dari data dan media serta teknik komunikasi, yaitu bagaimana agar prosedur penyimpanan lebih aman, begitu juga pada media yang digunakan dan teknik untuk mengamankan data tersebut.
- Keamanan dalam operasi, yaitu menyusun mekanisme pengoperasian user agar terkontrol sehingga dapat diantisipasi kesalahan yang terjadi saat penyimpanan dan pengambilan data.
Beberapa aspek untuk mendukung Keamanan Basis Data dapat disebutkan sebagai berikut :
- Network security, memfokuskan kepada saluran pembawa informasi serta sistem yang terintegrasi kepadanya (host dan kanal).
- Application security, memfokuskan kepada aplikasi itu sendiri (yang digunakan untuk basis data atau yang menjadi antar-muka kepada basis data), beserta aplikasi dukungan lainnya kepada basis data itu sendiri. Computer security, memfokuskan kepada keamanan dari komputer (end system) yang digunakan, khususnya hardware pada komputer tersebut.
Selanjutnya, aspek kehandalan terhadap Keamanan Basis Data ditentukan dari aspek berikut, yaitu:
- Privacy / confidentiality, terkait bagaimana memproteksi data bersifat pribadi yang sensitif seperti: nama, tempat tanggal lahir, agama, hobby, penyakit yang pernah diderita, status perkawinan; data pelanggan; dan transaksi pada ecommerce. Juga khususnya melakukan proteksi terhadap serangan sniffer.
- Integrity, terkait bagaimana agar informasi tidak berubah tanpa ijin seperti: Tampered (data baru menimpa data lama); Altered (perubahan terhadap nilai data yang eksis, yakni data ter-edit); Modified (data yang eksis dapat disisipkan, ditambah, dihapus oleh data baru) Khususnya melakukan proteksi terhadap serangan: spoof, virus, trojan horse.
- Authentication (otentikasi), yakni tindakan otentifikasi dilakukan untuk meyakinkan keaslian data, sumber data yang diakses, user yang mengakses data, serta server yang digunakan, dengan melakukan cara seperti: penggunaan digital signature, dan biometrics. Hal ini dilakukan untuk memproteksi terhadap serangan, seperti password yang palsu.
- Availability, artinya adalah informasi harus dapat tersedia ketika dibutuhkan, dengan menghindari server dibuat hang, down, crash. Tindakan ini bertujuan untuk proteksi terhadap serangan: denial of service (DoS) attack.
- Non-repudiation, maksudnya menghindari akses-user agar tidak dapat menyangkal bahwa telah melakukan transaksi; dengan cara setiap akhir transaksi pada form dilengkapi dengan penggunaan digital signature. Hal ini dilakukan untuk proteksi terhadap serangan, seperti deception.
- Access control. Dengan adanya access control, maka ada sebuah mekanisme yang digunakan untuk mengatur user dan akses yang dilakukan oleh user (siapa boleh melakukan apa). Beberapa caranya seperti:
- Dengan menggunakan password.
- Membuat kelas / klasifikasi privillege- user. Ini bertujuan untuk melakukan proteksi terhadap serangan: intruder. Batasan privillege-user untuk Access Control pada basis data ditunjukkan pada skema berikut ini :
6. Klasifikasi File (arsip)
Proses klasifikasi file adalah hal mendasar dalam keamanan database. Beberapa klasifikasi utama antara lain :
- Master File (File Induk): dalam sebuah aplikasi, file ini merupakan file yang penting karena berisi record-record yang sangat perlu di dalam organisasi.
- Transaction File (File Transaksi): digunakan untuk merekam data hasil dari transaksi yang terjadi.
- Report File (File Laporan): berisi informasi-informasi yang akan ditampilkan.
- History File (File Sejarah): berisi data masa lalu yang sudah tidak aktif lagi, namun masih tetap disimpan sebagai arsip.
- Backup File (File Salinan): salinan dari file-file yang masih aktif di dalam basis data pada suatu saat tertentu
Hirarki organisasi data dapat ditunjukkan sebagai berikut :
7. Serangan (attack) Terhadap Basis Data
Jenis-jenis serangan (attack) :
- Interruption, yaitu penghentian sebuah proses yang sedang berjalan.
- Interception yaitu menyela sebuah proses yang sedang berjalan.
- Modification yaitu mengubah data tanpa ijin dari pihak otoritas.
- Fabrication yaitu serangan yang bersifat destruktif berupa perusakan secara mendasar pada sistem utama.
Tingkatan entitas pada Keamanan Basis Data, dapat disebutkan sebagai berikut:
- Physical, yaitu lokasi-lokasi dimana terdapat sistem komputer haruslah aman secara fisik terhadap serangan apapun.
- User, yaitu wewenang user harus ditetapkan dengan berhati-hati untuk mengurangi kemungkinan adanya manipulasi oleh user lain yang otoritas.
- Sistem Operasi, yaitu kelemahan entitas ini memungkinkan pengaksesan data oleh user tak berwenang, karena hampir seluruh jaringan sistem basis-data berjalan secara on-line.
- Sistem Basisdata, yaitu pengaturan hak pengguna yang baik.
Untuk pengamanan pada Basis Data Relasional dilakukan beberapa level seperti:
- Relation, yaitu user diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi.
- View, yaitu user diperbolehkan atau tidak diperbolehkan mengakses data yang tertampil pada view.
- Read Authorization, yaitu user diperbolehkan membaca data, tetapi tidak dapat memodifikasi.
- Insert Authorization, yaitu user diperbolehkan menambah data baru, tetapi tidak dapat memodifikasi data yang sudah ada.
- Update Authorization, yaitu user diperbolehkan memodifikasi data, tetapi tidak dapat menghapus data.
- Delete Authorization, yaitu user diperbolehkan menghapus data.
Beberapa otorisasi tambahan untuk Modifikasi Data (Update Authorization), seperti:
- Index Authorization adalah user diperbolehkan membuat dan menghapus index data.
- Resource Authorization adalah user diperbolehkan membuat relasi-relasi baru.
- Alteration Authorization adalah user diperbolehkan menambah/menghapus atribut suatu relasi.
- Drop Authorization adalah 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>
Contoh :
GRANT SELECT ON S TO BUDI
GRANT SELECT,UPDATE (STATUS,KOTA) ON S TO ALI,BUDI
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
8. Back-up data dan recovery
Tindakan back-up adalah proses secara periodik untuk mebuat duplikat dari basis-data dan melakukan logging-file (atau program) ke media penyimpanan eksternal.
Ada tiga jenis tindakan pemulihan, yaitu:
- Pemulihan terhadap kegagalan transaksi : yaitu kesatuan prosedur dalam program yang dapat mengubah / memperbarui data pada sejumlah tabel.
- Pemulihan terhadap kegagalan media : yaitu pemulihan karena kegagalan media dengan cara mengambil atau memuat kembali salinan basis data (back-up).
- Pemulihan terhadap kegagalan sistem : yakni karena gangguan sistem, hang, listrik terputus alirannya.
Fasilitas pemulihan pada DBMS (Database Management Systems):
- Mekanisme back-up secara periodik.
- Fasilitas logging (log-book) dengan membuat track pada tempatnya saat transaksi berlangsung dan pada saat database berubah.
- Fasilitas checkpoint, melakukan update database yang terbaru.
- Manager pemulihan, memperbolehkan sistem untuk menyimpan ulang database menjadi lebih konsisten setelah terjadinya kesalahan.
Sekian materi pada hari ini, semoga bermanfaat