Pengamanan Sistem Basis Data

BAB 5
PENGAMANAN SISTEM BASIS DATA

5.1 KEAMANAN SISTEM DATABASE

Keamanan database adalah suatu cara untuk melindungi database dari ancaman, baikdalam bentuk kesengajaan atau pun bukan. Ancaman adalah segala situasi atau kejadian baik secara sengaja maupun tidak yang bersifat merugikan dan mempengaruhi system serta secara konsekuensi terhadap perusahaan/organisasi yang memiliki system database.Keamanan database tidak hanya berkenaan dengan data yang ada pada database saja, tetapi juga meliputi bagian lain dari system database, yang tentunya dapat mempengaruhi database tersebut. Hal ini berarti keamanan database mencakup perangkat keras, perangkat lunak, orang 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 administratorlah yang memegang peranan penting pada suatu system database, oleh karena itu administrator harus mempunyai kemampuan dan pengetahuan yang cukup agar dapat mengatur suatu system database Keamanan merupakan suatu proteksi terhadap pengrusakan data dan pemakaian data oleh pemakai yang tidak punya kewenangan.

System yang aman memastikan kerahasian data yang terdapat didalamnya. Beberapa aspek keamanan yaitu :
 •Mambatasi akses ke data dan servis
 Melakukan autentifikasi pada user
 Memonitor aktivitas-aktivitas yang mencurigakan

Keamanan database dapat dikelompokan sebagai berikut :
 Pencurian dan penipuan.
Pencurian dan penipuan database tidak hanya mempengaruhi lingkungan database
tetapi juga seluruh perusahaan/organisasi. Keadaan ini dilakukan oleh orang, dimana seseorang ingin melakukan pencurian data atau manipulasi data, seperti saldo rekening,transaksi,transfer dan lain-lain. Untuk itu fokus harus dilakukan pada kekuatan system agar menghindari akses oleh orang yang tidak memiliki kewenangan.

 Hilangnya kerahasiaan dan privasi
Suatu data dapat memiliki nilai kerahasiaan, karena data tersebut merupakan
sumber daya yang strategis pada perusahaan, maka pada kasus ini data tersebut
harus diamankan dengan memberikan hak akses pada orang tertentu saja.

 Hilangnya integritas
Integritas ini berkaitan dengan akurasi dan kebenaran data dalam database, seperti
data korup.Hal ini akan secara serius mempengaruhi perusahaan/organisasi.

 Hilangnya ketersediaan
Hilangnya ketersediaan berarti data, system, keduanya tidak dapat diakses,servis
mati, yang tentunya secara serius sangat mempengaruhi perusahaan/organisasi.
Saat ini banyak perusahaan yang membutuhkan kemampuan system yang aktif 7
x 24 , 7 hari 1 minggu.

Berdasarkan pengelompokan tersebut, tentunya banyak aspek yang harus kitaperhatikan demi terciptanya keamanan database. Bisa saja seseorang mencuri computer kita yang berisi data penting, mungkin juga karyawan yang diberi hak untuk mengakses data melakukan kejahatan dengan menjual informasi tersebut pada pihak lain demi kepentingan pribadi. Hal-hal tersebut memang termasuk kendala keamanan database yang harus mendapat perhatian, tetapi seorang administrator tidak dapat mengawasi kelemahan tersebut. Seorang administrator hanya fokus pada sistem database itu sendiri, dan hal inilah yang akan kita bicarakan. Tentunya perkembangan teknologi mengharuskan suatu perusahaan untuk mengimplementasikan system database yang bukan hanya aman tetapi juga mudah diakses dan handal, menyala 7×24 jam, 7 hari 1 minggu tanpaoff.
Penyebaran informasi secara global sangat menguntungkan semua pihak. Dengan adanya internet, komunikasi antar cabang, perusahaan, konsumen dan sebagainya semakin mudah. Pemberian informasi mengenai perusahaan kepada masyarakat melalui internet merupakan salah satu strategi komunikasi, marketing, public relation perusahaan tersebut,adanya transaksi on line yang meningkatkan gaya hidup masyarakat dan lainlain. Semua itu tidak terlepas dari suatu perkembangan system database dan tentunya membuat keamanan menjadi rentan. Sangatlah mudah dalam suatu lingkungan database diciptakan suasana yang menakutkan, tanpa kepastian dan keraguan. Sebagai seorang administrator sangat perlu memperhatikan kondisi tersebut. Tentukan resiko yang sebenarnya dan selidiki apa yang dapat dilakukan terhadap kondisi itu. Sebenarnya kebanyakan database terkonfigurasi dalam keadaan yang mudah ditembus, akan tetapi hal ini bukan berarti database tidak dapat dibuat aman sebagaimana mestinya.

5.1. 1 Acaman terhadap database

Serangan terhadap database

Secara garis besar keamanan database dikategorikan sbb:

 Keamanan Server
Perlindungan Server adalah suatu proses pembatasan akses yang sebenarnya pada database dalam server itu sendiri. Menurut Blake Wiedman ini adalah suatu sisi keamanan yang sangat penting dan harus direncanakan secara hati-hati. Ide dasarnya adalah kita tidak dapat mengakses apa yang kita tidak dapat lihat, atau apakah kita ingin database server kita dapat dilihat diseluruh dunia? Database kita bukanlah suatu web server,koneksi yang tidak dikenali tidak diijinkan.

 Trusted Ip Access
Setiap server harus dapat mengkonfigurasikan alamat ip yang diperbolehkan mengakses dirinya. Kita tidak mengijinkan semua orang dapat mengakses server kita sebagaimana kita tidak mengijinkan orang lain memasuki rumah kita tanpa ijin. Jika server melayani suatu web server maka hanya alamat web server itu saja yang dapat mengakses server database tersebut.Jika server database melayani jaringan internal maka hanya alamat jaringanlah yang boleh menghubungi server. Sangat perlu diperhatikan bahwa jangan pernah menggabungkan server database web dengan server database informasi internal perusahaan anda, ini adalah suatu mental yang buruk untuk seorang admin. Trusted Ip Access merupakan server database terbatas yang hanya akan memberi respon pada Ip yang dikenali saja.

 Koneksi Database
Saat ini semakin banyaknya aplikasi dinamis menjadi sangat menggoda untuk melakukan akses yang cepat bahkan update yang langsung tanpa authentifikasi. Jangan pernah berpikir demikian, ini hanya untuk seorang pemalas. Jika kita ingin mengijinkan pemakai dapat mengubah database melalui web page, pastikan anda memvalidasi semua masukan untuk memastikan bahwa inputan benar, terjamin dan aman.Sebagai contoh, pastikan anda menghilangkan semua code SQL agar tidak dapat dimasukan oleh user.Jika anda seorang admin yang membutuhkan koneksi ODBC,pastikan koneksi yang digunakan unik.

 Kontrol Akses Tabel
Kontrol akses table ini adalah salah satu bentuk keamanan database yang sering diabaikan,karena cukup sulit penerapannya. Penggunaan control akses table yang benar dibutuhkan kolaborasi antara system administrator dengan pengembang database. Hal inilah yang sulit dilakukan. Pemberian ijin user untuk mengakses informasi dapat membuat informasi terbuka kepada public. Jika seorang user mengakses informasi apakah akan dilihat menggunakan session yang sama? Atau jika table digunakan sebagai referensi system mengapa ia diberikan ijin selain hak membaca saja.

5.2. PERLINDUNGAN TERHADAP DATA YANG SENSITIF

Penyalahgunaan Database :

1. Tidak disengaja, jenisnya :
a. kerusakan selama proses transaksi
b. anomali yang disebabkan oleh akses database yang konkuren
c. anomali yang disebabkan oleh pendistribuasian data pada beberapa komputer
d. logika error yang mengancam kemampuan transaksi untuk mempertahankan
konsistensi database.
2. Disengaja, jenisnya :
a. Pengambilan data / pembacaan data oleh pihak yang tidak berwenang.
b. Pengubahan data oleh pihak yang tidak berwenang.
c. Penghapusan data oleh pihak yang tidak berwenang.

Tingkatan Pada Keamanan Database :
1. Fisikal : Lokasi-lokasi dimana terdapat sistem komputer haruslah aman secara fisik terhadap serangan perusak.
2. Manusia : wewenang pemakai harus dilakukan dengan berhati-hati untuk
mengurangi kemungkinan adanya manipulasi oleh pemakai yang berwenang
3. Sistem Operasi : Kelemahan pada SO ini memungkinkan pengaksesan data oleh pihak tak berwenang, karena hampir seluruh jaringan sistem database menggunakan akses jarak jauh.
4. Sistem Database : Pengaturan hak pemakai yang baik.

Keamanan Data :

1. Otorisasi :
o Pemberian Wewenang atau hak istimewa (priviledge) untuk mengakses sistem atau obyek database
o Kendali otorisasi (=kontrol akses) dapat dibangun pada perangkat lunak dengan 2 fungsi :
• Mengendalikan sistem atau obyek yang dapat diakses
• Mengendalikan bagaimana pengguna menggunakannya
• Sistem administrasi yang bertanggungjawab untuk memberikan hak akses dengan membuat account pengguna.
2. Tabel View :
Merupakan metode pembatasan bagi pengguna untuk mendapatkan model
database yang sesuai dengan kebutuhan perorangan. Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh pengguna.
Contoh pada Database relasional, untuk pengamanan dilakukan beberapa level :
1. Relasi adalah pengguna diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi
2. View adalah pengguna diperbolehkan atau tidak diperbolehkan mengakses data yang terapat pada view
3. Read Authorization adalah pengguna diperbolehkan membaca data, tetapi tidak dapat memodifikasi.
4. Insert Authorization adalah pengguna diperbolehkan menambah data baru, tetapi tidak dapat memodifikasi data yang sudah ada.
5. Update Authorization adalah engguna diperbolehkan memodifikasi data, tetapi tidak dapat menghapus data.
6. Delete Authorization adalah pengguna diperbolehkan menghapus data.

Untuk Modifikasi data terdapat otorisasi tambahan :
1. Index Authorization adalah pengguna diperbolehkan membuat dan menghapus index data.
2. Resource Authorization adalah pengguna diperbolehkan membuat relasi-relasi baru.
3. Alteration Authorization adalah pengguna diperbolehkan menambah/menghapus atribut suatu relasi.
4. Drop Authorization adalah pengguna diperbolehkan menghapus relasi yang
sudah ada.

Contoh perintah menggunakan SQL :
GRANT : memberikan wewenang kepada pemakai
Syntax : GRANT ON TO
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 ON FROM
Contoh :
REVOKE SELECT ON S TO BUDI
REVOKE SELECT,UPDATE (STATUS,KOTA) ON S TO ALI,BUDI
Priviledge list : READ, INSERT, DROP, DELETE, INEX, ALTERATION,
RESOURCE

3. Backup data dan recovery :

Backup : proses secara periodik untuk mebuat duplikat ari database dan melakukan
logging file (atau program) ke media penyimpanan eksternal.

Jurnaling : proses menyimpan dan mengatur log file dari semua perubahan yang dibuat di
database untuk proses recovery yang efektif jika terjadi kesalahan.

Isi Jurnal :
ÿ Record transaksi
1. Identifikasi dari record
2. Tipe record jurnal (transaksi start, insert, update, delete, abort, commit)
3. Item data sebelum perubahan (operasi update dan delete)
4. Item data setelah perubahan (operasi insert dan update)
5. Informasi manajemen jurnal (misal : pointer sebelum dan record jurnal selanjutnya untuk semua transaksi

ÿ Record checkpoint : suatu informasi pada jurnal untuk memulihkan database dari kegagalan, kalau sekedar redo, akan sulit penyimpanan sejauh mana jurnal untuk mencarinya kembali, maka untuk membatasi pencarian menggunakan teknik ini.

Recovery : merupakan upaya uantuk mengembalikan basis data ke keadaaan yang
dianggap benar setelah terjadinya suatu kegagalan.

3 Jenis Pemulihan :
1. Pemulihan terhadap kegagalan transaksi : Kesatuan prosedur alam program yang
dapat mengubah / memperbarui data pada sejumlah tabel.
2. Pemulihan terhadap kegagalan media : Pemulihan karena kegagalan media dengan cara mengambil atau memuat kembali salinan basis data (backup)
3. Pemulihan terhadap kegagalan sistem : Karena gangguan sistem, hang, listrik terputus alirannya.

Fasilitas pemulihan pada DBMS :
1. Mekanisme backup secara periodik
2. fasilitas logging dengan membuat track pada tempatnya saat transaksi berlangsung dan pada saat database berubah.
3. fasilitas checkpoint, melakukan update database yang terbaru.
4. manager pemulihan, memperbolehkan sistem untuk menyimpan ulang database menjadi lebih konsisten setelah terjadinya kesalahan.

Teknik Pemulihan :

1. defered upate / perubahan yang ditunda : perubahan pada DB tidak akan berlangsung sampai transaksi ada pada poin disetujui (COMMIT). Jika terjadi kegagalan maka tidak akan terjadi perubahan, tetapi diperlukan operasi redo untuk mencegah akibat dari kegagalan tersebut.

2. Immediate Upadate / perubahan langsung : perubahan pada DB akan segera tanpa harus menunggu sebuah transaksi tersebut disetujui. Jika terjadi kegagalan diperlukan operasi UNDO untuk melihat apakah ada transaksi yang telah disetujui sebelum terjadi kegagalan.

3. Shadow Paging : menggunakan page bayangan imana paa prosesnya terdiri dari 2 tabel yang sama, yang satu menjadi tabel transaksi dan yang lain digunakan sebagai cadangan. Ketika transaksi mulai berlangsung kedua tabel ini sama dan selama berlangsung tabel transaksi yang menyimpan semua perubahan ke database, tabel bayangan akan digunakan jika terjadi kesalahan. Keuntungannya adalah tidak membutuhkan REDO atau UNDO, kelemahannya membuat terjadinya fragmentasi.

4. Kesatuan data dan Enkripsi :

Enkripsi : keamanan data
•Integritas :metode pemeriksaan dan validasi data (metode integrity constrain), yaitu berisi aturan-aturan atau batasan-batasan untuk tujuan terlaksananya integritas data.
•Konkuren : mekanisme untuk menjamin bahwa transaksi yang konkuren pada database multi user tidak saling menganggu operasinya masing-masing. Adanya penjadwalan proses yang akurat (time stamping).

Fasilitas Keamanan Database

Keamanan database tersedia pada versi Educator ke atas. Keamanan database diatur olehProperti Database. Berikut ini adalah properti database yang digunakan untuk keamanan database BOCSoft eQuestion.
Properti Keterangan
1. Publikasi Apakah database dipublikasikan? Database yang telah dipublikasikan tidak bisa dipublikasikan ulang. Proses publikasi adalah mempublikasikan database untuk konsumsi publik. Proses ini meliputi pengaturan properti lain: Proteksi; Hanya Baca; Dapat Dibaca eQuestion Lain; dan Dapat Diimpor.
2. Proteksi Jika database diproteksi, setiap menggunakan database, pengguna akan dimintai password/kata kunci sebagai pengaman database. Password ditentukan oleh pembuat database.
3. Hanya Baca (Read-Only)
Data dalam database yang “Hanya Baca” tidak bisa ditambah, diedit, atau dihapus.
4. Dapat Dibaca eQuestion Lain
Jika properti ini diset “Tidak” maka database hanya bisa dibaca oleh BOCSoft eReader dan tidak bisa dibaca oleh BOCSoft eQuestion lain.
5. Dapat Diimpor Jika properti ini diset “Ya” maka data dari database eQuestion bisa digabungkan dengan database eQuestion lain dengan versi yang sama.
Tingkatan Pada Keamanan Database

1. Fisikal ; lokasi-lokasi dimana terdapat sistem komputer haruslah aman secara fisik terhadap serangan perusak.
2. Manusia ; wewenang pemakai harus dilakukan dengan berhati-hati untuk mengurangi kemungkinan adanya manipulasi oleh pemakai yang berwenang
3. Sistem Operasi ; Kelemahan pada SO ini memungkinkan pengaksesan data oleh pihak tak berwenang, karena hampir seluruh jaringan sistem database menggunakan akses jarak jauh.
4. Sistem Database ; Pengaturan hak pemakai yang baik.

Enkripsi Untuk Keamanan Database

Salah satu hal yang penting dalam komunikasi menggunakan computer untuk menjamin kerahasian data adalah enkripsi. Enkripsi dalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah sistem pengkodean menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata dari informasi atau yang merupakan bagian dari informasi yang dikirim.
Sebuah chiper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unitelligible). Karena teknik cipher merupakan suatu sistem yang telah siap untuk di automasi, maka teknik ini digunakan dalam sistem keamanan komputer dan network. Pada bagian selanjutnya kita akan membahas berbagai macam teknik enkripsi yang biasa digunakan dalam sistem security dari sistem komputer dan network.

A. Enkripsi Konvensional.

Informasi asal yang dapat di mengerti di simbolkan oleh Plain teks, yang kemudian oleh algoritma Enkripsi diterjemahkan menjadi informasi yang tidak dapat untuk dimengerti yang disimbolkan dengan cipher teks. Proses enkripsi terdiri dari dua yaitu algoritma dan kunci. Kunci biasanya merupakan suatu string bit yang pendek yang mengontrol algoritma. Algoritma enkripsi akan menghasilkan hasil yang berbeda tergantung pada kunci yang digunakan. Mengubah kunci dari enkripsi akan mengubah output dari algortima enkripsi. Sekali cipher teks telah dihasilkan, kemudian ditransmisikan. Pada bagian penerima selanjutnya cipher teks yang diterima diubah kembali ke plain teks dengan algoritma dan dan kunci yang sama. Keamanan dari enkripsi konvensional bergantung pada beberapa factor. Pertama algoritma enkripsi harus cukup kuat sehingga menjadikan sangat sulit untuk mendekripsi cipher teks dengan dasar cipher teks tersebut. Lebih jauh dari itu keamanan dari algoritma enkripsi konvensional bergantung pada kerahasian dari kuncinya bukan algoritmanya. Yaitu dengan asumsi bahwa adalah sangat tidak praktis untuk mendekripsikan informasi dengan dasar cipher teks dan pengetahuan tentang algoritma diskripsi / enkripsi. Atau dengan kata lain, kita tidak perlu menjaga kerahasiaan dari algoritma tetapi cukup dengan kerahasiaan kuncinya.
Manfaat dari konvensional enkripsi algoritma adalah kemudahan dalam penggunaan secara luas. Dengan kenyataan bahwa algoritma ini tidak perlu dijaga kerahasiaannya dengan maksud bahwa pembuat dapat dan mampu membuat suatu implementasi dalam bentuk chip dengan harga yang murah. Chips ini dapat tersedia secara luas dan disediakan pula untuk beberapa jenis produk. Dengan penggunaan dari enkripsi konvensional, prinsip keamanan adalah menjadi menjaga keamanan dari kunci.
Model enkripsi yang digunakan secara luas adalah model yang didasarkan pada data encrytion standard (DES), yang diambil oleh Biro standart nasional US pada tahun 1977. Untuk DES data di enkripsi dalam 64 bit block dengan menggunakan 56 bit kunci. Dengan menggunakan kunci ini, 64 data input diubah dengan suatu urutan dari metode menjadi 64 bit output. Proses yang yang sama dengan kunci yang sama digunakan untuk mengubah kembali enkripsi.

B. Enkripsi Public-Key

Salah satu yang menjadi kesulitan utama dari enkripsi konvensional adalah perlunya untuk mendistribusikan kunci yang digunakan dalam keadaan aman. Sebuah cara yang tepat telah diketemukan untuk mengatasi kelemahan ini dengan suatu model enkripsi yang secara mengejutkan tidak memerlukan sebuah kunci untuk didistribusikan. Metode ini dikenal dengan nama enkripsi public-key dan pertama kali diperkenalkan pada tahun 1976. Algoritma tersebut seperti yang digambarkan pada gambar diatas. Untuk enkripsi konvensional, kunci yang digunakan pada prosen enkripsi dan dekripsi adalah sama. Tetapi ini bukanlah kondisi sesungguhnya yang diperlukan. Namun adalah dimungkinkan untuk membangun suatu algoritma yang menggunakan satu kunci untuk enkripsi dan pasangannya, kunci yang berbeda, untuk dekripsi. Lebih jauh lagi adalah mungkin untuk menciptakan suatu algoritma yang mana pengetahuan tentang algoritma enkripsi ditambah kunci enkripsi tidak cukup untuk menentukan kunci dekrispi. Sehingga teknik berikut ini akan dapat dilakukan :
1. Masing – masing dari sistem dalam network akan menciptakan sepasang kunci yang digunakan untuk enkripsi dan dekripsi dari informasi yang diterima.
2. Masing – masing dari sistem akan menerbitkan kunci enkripsinya ( public key ) dengan memasang dalam register umum atau file, sedang pasangannya tetap dijaga sebagai kunci pribadi ( private key ).
3. Jika A ingin mengisim pesan kepada B, maka A akan mengenkripsi pesannya dengan kunci publik dari B.
4. Ketika B menerima pesan dari A maka B akan menggunakan kunci privatenya untuk mendeskripsi pesan dari A.
Seperti yang kita lihat, public-key memecahkan masalah pendistribusian karena tidak diperlukan suatu kunci untuk didistribusikan. Semua partisipan mempunyai akses ke kunci publik ( public key ) dan kunci pribadi dihasilkan secara lokal oleh setiap partisipan sehingga tidak perlu untuk didistribusikan. Selama sistem mengontrol masing – masing private key dengan baik maka komunikasi menjadi komunikasi yang aman. Setiap sistem mengubah private key pasangannya public key akan menggantikan public key yang lama. Yang menjadi kelemahan dari metode enkripsi publik key adalah jika dibandingkan dengan metode enkripsi konvensional algoritma enkripsi ini mempunyai algoritma yang lebih komplek. Sehingga untuk perbandingan ukuran dan harga dari hardware, metode publik key akan menghasilkan performance yang lebih rendah. Tabel berikut ini akan memperlihatkan berbagai aspek penting dari enkripsi konvensional dan public key.

•Enkripsi Konvensional
Yang dibutuhkan untuk bekerja :
1. Algoritma yang sama dengan kunci yang sama dapat digunakan untuk proses dekripsi–enkripsi. Pengirim dan penerima harus membagi algoritma dan kunci yang sama.
Yang dibutuhkan untuk keamanan :
1. Kunci harus dirahasiakan.
2. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
3. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunc.

•Enkripsi Public Key
Yang dibutuhkan untuk bekerja :
1. Algoritma yang digunakan untuk enkripsi dan dekripsi dengan sepasang kunci, satu untuk enkripsi satu untuk dekripsi.
2. Pengirim dan penerima harus mempunyai sepasang kunci yang cocok.
Yang dibutuhkan untuk keamanan :
1. Salah satu dari kunci harus dirahasiakan.
2. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
3. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunci.

5. 3 RANGKUMAN PERMASALAHAN DALAM DATABASE

Basis data yang kurang matang atau yang tidak disiapkan dengan baik tentunya akan menghasilkan beberapa masalah, karena dalam berinteraksi dengan basis data kita tidak hanya berhadapan pada masalah perancangan, pengaksesan dan penginputan data saja. Masalah-maslah tersebut diantaranya adalah :
1. Redudansi dan Inkonsistensi Data
Redudansi data berhubungan dengan banyaknya data pada sebuah tabel, sehingga sering meimbulkan duplikasi data, artinya data yang tersedia akan tersaji atau tercetak secara berulang-ulang. Hal ini akan mengakibatkan kesulitan pada saat melakukan manipulasi data yang berupa pengubahan dan penghapusan data, karena akan menimbulkan inkonsistensi data. Redudansi ini bisa disebabkan karena basis data yang ada belum memenuhi aturan-aturan dalam normalisasi basis data. Hal ini dapat dicontohkan pada tabel dengan 3 field, yaitu NIM, nama_mhs, dan alamat, pada tabel tersebut yang menjadi key adalah NIM, jika nama dan alamat merupakan field non key, dan field alamat mempunyai ketergantungan fungsional pada field non key lainnya dalam hal ini adalah nama_mhs, sedangkan nama_mhs mempunyai ketergantungan fungsional terhadap NIM, maka akan mudah dijumpai redudansi pada field alamat dimana pada nama alamat yang sama akan selalu hadir pada record nama_mhs yang sama pula, hal ini sangat berpengaruh ketika kita melakukan manipilasi data pada salah satu record alamat sehingga akan ditemui record alamat yang yang berbeda untuk record nama_mhs yang sama dalam satu tabel.
Redudansi juga umum terjadi untuk menyatakan hubungan (relationship) antar tabel dalam sebuah basis data relasional. Pada basis data relasional redudansi data sering terjadi pada saat terjadi operasi penghapusan data, jika data pada satu tabel yang mempunyai relasi pada tabel lain dihapus sedangkan data data pada tabel lain tetap dibiarkan eksis maka akan terjadi inkonsistensi data.

2. Kesulitan Pengaksesan Data
Pengaksesan data akan sulit dilakukan apabila terjadi permintaan data yang tidak lazim dan di luar yang telah disediakan suatu program aplikasi, atau apabila data yang aka diakses berasal dari basis data yang berbeda. Pengaksesan data ini dapat diatasi dengan penyediaan program aplikasi yang dapat menunjuang sebuah keperluan tersebut.

3. Isolasi Data Untuk Standarisasi
Basis data yang baik adalah basis data yang letak datanya berada pada satu tempat. Isolasi data terjadi biasanya disebabkan oleh data yang ada ditempatkan dalam berbagai file dengan format yang berbeda dan menggunakan DBMS yang berbeda pula. Perbedaan DBMS dalam pengelalaan data menyebabkan terjadinya perbedaan pada setiap pengaksesan data walaupun sangat kecil.

4. Multiple User
Perkembangan dan kebutuhan sebuah informasi yang disajiakan semakin lama maka akan semakin meningkat, untuk itu peningkatan sistem basis data dalam menyajikan sebuah informasi perlu ditingkatkan, hal ini untuk memenuhi kebutuhan banyak pemakai dalam pengaksesan data. Pengaksesan data yang dilakukan oleh banyak pemakai terutama dalam melaukan perubahan data atau updating dapat mengakibatkan inkonsistensi data. Selain itu performasi sebuah sistem juga akan terpengaruh. Sebagai contoh, perubahan data yang dilakuakan oleh pemakai lalu menimpannya kedalam basis data dan pada saat yang bersamaan terjadi pengubahan data yang sama oleh pemakai lain sehingga menjadikan data tersebut tidak konsisten.

5. Masalah Keamanan Data
Keamanan data biasanya dengan cara melakukan penerapan sebuah password pada saat pengaksessan data, karena tidak semua pemakai boleh bersentuhan dengan sebuah sistem basisdata, hanya pemakai yang terdaftar yang dapat memanfaatkan basisdata, namun pemakai tersebut belum tentu dapat melakukan pengubahan data pemakai tersebut hanya dapat melakukan pengaksesan data tanpa melakukan proses manipulasi data, pemakai yang dapat melakukan manipulasi data hanyalah pemakai yang telah terdaftar dan mendapat rekomendasi dari administrator basis data tersebut. Agar terhindar dari campur tangan orang yang tidak bertanggung jawab sehingga mengakibatkan kerusakan basis data.

6. Masalah Integrasi Data
Data yang terdapat dalam basisdata seharusnya memenuhi berbagai batasan yang sesuai dengan aturan nyata yang berlaku dimana basis data tersebut diimplementasikan, lain halnya jika aturan tersebut bersifat situasional dan tidak bersifat tetap sehingga tidak didefinisikan pada DBMS, hal ini akan menimbulkan perbedaan antar data yang ada pada basis data dengan keadaan yang sesungguhnya.

7. Masalah Independence Data
Kebebasan yang sebebas-bebasnya terkadang justru membuat masalah tidak hanya pada dunia nyata namun pada penerapan basis data hal tersebut dapat menjadi sebuah masalah, kebebasan data pada sebuah basis data berakibat pada kesulitan dalam pengelompokan data, dan akan menimbulkan data yang tidak teratur serta tidak konsisten.

5.4 ARSITEKTUR DAN PROTOTIPE KEAMANAN DATABASE MULTILEVEL

Database multilevel merupakan sistem yang kompleks. Dalam database multilevel terdapat relasi-relasi. Relasi-relasi ini mengikuti aturan-aturan tertentu. Multilevel yang melekat pada database disini menunjukkan bahwa database memiliki level-level yang membedakan satu obyek database dengan obyek database lainnya. Level-level ini diperlukan untuk menentukan subyek yang boleh mengaksesnya.
Untuk menjamin akses database multilevel oleh subyek-subyek yang berhak diperlukan mekanisme keamanan tertentu. Banyak penelitian telah dilakukan dan menghasilkan arsitektur-arsitektur dan prototipe-prototipe keamanan database multilevel yang unik.

Arsitektur Keamanan Database Multilevel
Arsitektur keamanan database multilevel dapat dibagi ke dalam dua jenis utama. Jenis pertama adalah arsitektur yang menggunakan trusted computing base (TCB) eksternal untuk mengendalikan akses obyek database. Jenis ini disebut juga sebagai arsitektur kernelized, Hinke-Schaefer, atau TCB subset DBMS (Database Management System). Arsitektur ini berbeda dari arsitektur-arsitektur yang mendelegasikan mandatory access control (MAC) kepada sistem manajemen database internal. Jenis kedua ini disebut juga sebagai arsitektur trusted subject DBMS. Setiap database memiliki sekumpulan aturan sensitivitas data yang mengatur relasi antar data. Dalam pendekatan Hinke-Schaefer relasi ini didekomposisikan ke dalam fragmen-fragmen single-level atau system-high. Keamanan sistem manajemen database multilevel (Multilevel Secure Database Management System atau MLS DBMS) menyimpan fragmen-fragmen ini secara fisik ke dalam obyek single-level (sebagai contohnya, file-file, segmen-segmen, atau perangkat-perangkat keras yang terpisah). MLS DBMS memaksakan mandatory access control (MAC) pada setiap permintaan untuk mengakses obyek single-level atau sistem-high ini.
Pendekatan yang kedua menggunakan trusted network untuk pemisahan perijinan selain mengandalkan pada sistem operasi multilevel. Variasi ini juga mendekomposisikan database multilevel ke dalam fragmen-fragmen system-high. Tetapi dalam kasus ini DBMS mereplikasi data tingkat rendah dibawah fragmen-fragmen yang lebih tinggi tingkatannya. Pada jaringan multilevel MLS DBMS memisahkan data secara fisik dengan mendistribusikannya ke host sistem DMBS yang lainnya. Prototipe Unisys Secure Distributed DBMS (SD-DBMS) menggunakan pendekatan ini dan digunakan dalam proyek riset NRL Trusted DBMS (TDBMS).

Pendekatan TCB subset DBMS

Arsitektur ini pertama kali didokumentasikan oleh Thomas Hinke dan Marvin Schaever di System Development Corporation. DBMS ini dirancang untuk sistem operasi Multics dengan tujuan agar sistem operasi tersebut menyediakan semua kendali akses. Rancangan ini mendekomposisikan database multilevel ke dalam beberapa atribut dan kolom single-level -atribut yang memiliki sensitivitas yang sama tersimpan bersama pada segmen-segmen sistem operasi single-level. Sebagai contohnya, untuk memenuhi permintaan request, proses DBMS diselenggarakan pada level user yang mengoperasikannya. Karena adanya aturan mandatory access control (MAC) dari sistem operasi, DBMS hanya memiliki akses yang sama levelnya atau dibawahnya. Kemudian DBMS menggabungkan elemen-elemen dari relasi yang sama untuk merekonstruksi tuple yang dikembalikan ke user.
Pendekatan Hinke-Schaefer memiliki dua karakteristik utama, yaitu:
1. DBMS multilevel sebenarnya merupakan sekumpulan DBMS single-level yang bekerja secara bersamaan
2. Database multilevel dapat didekomposisikan ke dalam sekumpulan database single-level atau system-high, dan masing-masing merupakan bagian dari database multilevel secara konseptual

Ada dua variasi dari arsitektur ini: tersentralisasi, dan terdistribusi. Pada pendekatan tersentralisasi tiap-tiap DMBS single-level adalah proses-proses terpisah yang berjalan pada suatu trusted operating system, dan database multilevel didekomposisikan ke dalam fragmen-fragmen single-level yang masing-masing disimpan di dalam obyek sistem operasi single-level (sebagai contohnya, file-file atau segmen-segmen). Sementara DBMS memungkinkan untuk dipercaya melakukan beberapa fungsi kendali akses, trusted operating system dapat memaksakan aturan kendali akses secara penuh kepada semua akses yang dilakukan DBMS terhadap obyek-obyek DBMS. Gambar 1 mengilustrasikan pendekatan ini.
Pada arsitektur ini user tidak beroperasi dalam mode multilevel tetapi pada level sesi yang terselenggara dengan trusted operating system. Setiap user berinteraksi dengan DBMS pada tingkat sesi user, dan banyak DBMS yang berlainan berjalan pada tingkat-tingkat sensitivitas yang berlainan pula boleh beroperasi pada saat yang bersamaan.
Ada dua prototipe yang dikembangkan menggunakan konsep Hinke-Schaefer, yaitu SeaView DBMS dan LDV DBMS.

Secure Distributed Data Views (SeaView) DBMS

Dalam pendekatan SeaView sebuah relasi multilevel didekomposisikan ke dalam relasi-relasi single-level yang didasarkan pada penamaan tingkat elemen (elemen-level labelling). Setiap tuple (catatan) didekomposisikan dan disimpan ke dalam fragmen-fragmen single-level tertentu. Fragmen-fragmen dengan jenis relasi dan level yang sama dimasukkan ke dalam segmen sistem operasi yang sama. Jika ada request user, DBMS menggabungkan fragmen-fragmen single-level pada level yang sama atau yang dibawah level sesi user dan mengembalikan tuple sesuai dengan kriteria yang diinginkan user. Karena setiap user berinteraksi dengan proses DBMS single-level, DBMS tidak mengetahui data-data yang berada di atas levelnya.
Arsitektur SeaView didasarkan pada satu pendekatan yang disebut sebagai TCB subsets. Pendekatan ini secara hirarkis membuat lapisan-lapisan komponen software. Oracle adalah salah satu contoh database yang menggunakan pendekatan ini. Gambar 2 dan 3 memperlihatkan lapisan-lapisan pada arsitektur SeaView.

Lock Data Views (LDV) DBMS

Rancangan LDV didasarkan pada kontrol akses dan type enforcement khusus dari sistem operasi LOCK (Logical Coprocessing Kernel). Sebagai tambahan terhadap mandatory access control (MAC) yang didasarkan pada level sensitivitas dan discretionary access control (DAC) yang didasarkan pada daftar kendali akses (access control lists), LOCK juga melakukan kendali akses didasarkan pada domain (atau tugas). LOCK menyelenggarakan sebuah domain dan tabel jenis yang disebut sebagai Domain Definition Table (DDT). Dalam tabel ini domain-domain diiriskan dengan jenis-jenis data. Pada bagian irisan access priviledges direkam (sebagai contoh, read, write, execute). DDT adalah mekanisme yang digunakan untuk mengeset rangkaian-rangkaian translasi obyek yang benar yang disebut juga sebagai pipelines. Pipelines ini digunakan untuk mengisolasi jalur-jalur eksekusi kepada sistem. Jadi, LDV DBMS merupakan sekumpulan pipelines yang mempunyai tanggung jawab terhadap manipulasi data multilevel. Tiga jenis pipelines utama dalam LDV adalah response pipeline, update pipeline, dan metadata pipeline. Response pipeline memproses permintaan untuk mengambil data. Update pipeline mengatur semua permintaan untuk mengubah database, termasuk operasi insert, update, dan delete. Metadata pipeline menangani semua perintah administrator untuk memanipulasi database metadata.
Mirip dengan pendekatan TCB subset, LDV berada diatas sistem operasi LOCK, dan database multilevel disimpan sebagai sekumpulan obyek-obyek single-level yang diproteksi oleh sistem operasi LOCK. Gambar 4 dan 5 mengilustrasikan arsitektur LDV.

Arsitektur Terdistribusi dengan Replikasi Data secara Penuh

Arsitektur ini menggunakan distribusi secara fisik dari database multilevel untuk mendapatkan mandatory separation dan kendali akses yang kuat. Arsitektur ini menggunakan banyak pengolah database back-end untuk memisahkan database ke dalam fragmen-fragmen sistem-high. Pengolah front-end menjadi media semua akses user kepada database multilevel dan kepada pengolah database back-end single-level.
Pengolah front-end bertanggung jawab untuk mengarahkan queries ke pengolah database yang benar, memastikan tidak ada arus informasi yang salah, menjaga konsistensi data antara fragmen-fragmen database yang direplikasi, dan memberikan respon query pada user yang tepat. Sebagai tambahan pengolah front-end juga bertanggung jawab terhadap identifikasi dan audit. Arsitektur Terdistribusi dengan Replikasi Data secara Variabel
Berbeda dengan arsitektur sebelumnya, arsitektur ini membolehkan data untuk didistribusikan dan direplikasikan menurut kebutuhan penggunaan aktual. Pendekatan ini digunakan dalam proyek Unisys Secure Distributed DBMS (SD-DBMS).
Pendekatan arsitektural yang diambil untuk mendapatkan trusted operation adalah dengan mendistribusikan relasi-relasi multilevel ke dalam fragmen-fragmen single-level dan memasukkan semua fragmen single-level ini banyak pengolah DBMS back-end. Gambar 7 mengilustrasikan arsitektur SD-DBMS yang disederhanakan menjadi dua level keamanan: high dan low. Arsitektur ini terdiri dari tiga jenis komponen: user front end (UFE), trusted front end (TFE), dan interkoneksi.
Perangkat UFE disini adalah dapat berupa workstation yang menjalankan mode single-level atau trusted workstation yang menjalankan mode multilevel di dalam suatu jangkauan tingkat-tingkat keamanan tertentu. UFE digunakan sebagai tempat aplikasi yang menyediakan antarmuka antara end user dan TFE.
Komponen TFE mengendalikan eksekusi semua perintah DBMS dan berlaku sebagai monitor referensensi untuk akses database. TFE terdiri dari fungsi-fungsi trusted dan untrusted yang dibangun pada sistem operasi yang trusted dan high-assurance. Banyak host DBMS back-end berhubungan dengan TFE. Setiap host DBMS back-end beroperasi dalam mode system high pada kelas akses dalam jangkauan kelas akses TFE. Semua DBMS back-end ini memasukkan data pada kelas akses tertentu dan merespon request yang dibangkitkan oleh TFE.

Integrity-lock DBMS

Arsitektur integrity-lock, seperti yang diperlihatkan dalam gambar 6, terdiri dari tiga komponen: proses front-end untrusted, proses trusted filter, dan proses data manager untrusted. Proses front-end untrusted berinteraksi dengan end user. Proses ini bertanggung jawab untuk melakukan query parsing dan memproses respon yang akan dikirimkan kepada end user. Proses trusted filter bertanggung jawab untuk melakukan enkripsi dan dekripsi obyek-obyek dan label-labelnya, melakukan identifikasi data-data yang dikembalikan oleh proses data management, dan melakukan downgrading obyek-obyek yang dikembalikan kepada end user. Misalkan disini obyek database merupakan sekumpulan tuple. Dalam kasus ini trusted filter akan membangkitkan cryptographic checksum dengan melakukan proses enkripsi kepada setiap tuple dan label sensitivitas dari tiap tuple, sehingga tuple terkunci. Residu proses enkripsi dikaitkan dengan tuple sebagai checksumnya. Database multilevel disimpan dibawah proses data management.
Ketika end user melakukan operasi seleksi terhadap database, trusted filter akan mengarahkan data manager untuk mengambil semua tuple sesuai dengan kriteria seleksi. Tuple ini dikembalikan ke trusted filter. Trusted filter memeriksa label sensitivitasnya dan membuang tuple yangt tidak lolos pengecekan mandatory access policy. Lalu proses ini memeriksa kembali apakah checksumnya benar. Tuple yang lolos dikembalikan ke end user yang melakukan operasi seleksi ini.

Trusted Subject-Monolithic DBMS

Pendekatan berdasarkan kernel-kernel trusted operating system untuk melakukan access control enforcement mengorbankan beberapa fungsionalitas DBMS untuk mendapatkan mandatory assurance yang lebih tinggi. Dengan perkecualian pada sistem database Oracle yang menggunakan pendekatan TCB subset, semua produk DBMS yang dijual atau dibangun saat ini mengandalkan kepada sistem database itu sendiri untuk mengatur kendali akses terhadap obyek database.
Dengan pendekatan ini software DBMS berjalan di atas trusted operating system. Sistem operasi menyediakan isolasi kode DBMS dan mengendalikan akses terhadap database sehingga setiap akses terhadap database harus melewati trusted DBMS. DBMS menyimpan database multilevel dalam satu atau lebih file. DBMS mengkaitkan suatu label sensitivitas dengan setiap tuple. Label ini diperlakukan sebagai atribut relasi, meskipub dalam kenyataannya label itu merupakan atribut virtual yang tidak perlu dimasukkan.

Prototipe Keamanan Database Multilevel

Ada tiga macam prototipe yang dibahas disini, yaitu: SeaView, LVD, dan ASD (Advance Secure DBMS). Tetapi yang akan dibahas berikut ini adalah prototipe ASD karena dua prototipe lainnya sudah dibahas sebelumnya Advance Secure DBMS (ASD)
Arsitektur ASD dapat dibagi menjadi dua bagian, yaitu: arsitektur internal dan arsitektur network. Arsitektur ini dapat dilihat pada gambar 10.

Arsitektur Internal ASD

Berbeda dengan SeaView dan LDV, ASD mengambil pendekatan yang memuat mandatory access control (MAC) dan discretionary access control (DAC) dalam aturan arsitektur internalnya. Aturan ini disebut juga sebagai ASD TCB (Trusted Computing Base). Sementara arsitektur SeaView dan LDV secara umum mengandalkan sistem operasinya untuk memuat MAC, dan DBMS internal untuk memuat DAC.
Meskipun ASD TCB berjalan sebagai proses dibawah kendali TCB dari sistem operasi, tetapi ini tidak dapat dikatakan bahwa ASD TCB berada di dalam TCB dari sistem operasi. ASD TCB tidak berbagi domain proteksi dengan sistem operasi.
Seperti juga DBMS lainnya, ASD terdiri dari trusted code dan untrusted code. Untrusted code melakukan operasi-operasi DBMS yang tidak relevan dengan keamanan. Kode ini berjalan pada kelas akses dari proses yang dijalankan oleh user.
TCB dari sistem operasi memproteksi ASD TCB dari proses-proses lain yang berjalan dalam sistem operasi. TCB ini juga menjamin bahwa tidak ada proses yang dapat mengakses data DBMS kecuali melewati ASD TCB.
Secara konseptual semua tuple berada dalam satu file sistem operasi. File ini dikategorikan pada bagian terbawah dari tuple yang ada di dalam file. Setiap tuple yang dimasukkan ke file ini mengandung klasifikasi yang ditentukan oleh ASD TCB berdasarkan tingkat keamanannya. Karena file data ASD berisi tuple yang diberi label dengan klasifikasi yang berlainan, file ini harus diproteksi dari modifikasi oleh proses-proses untrusted yang mungkin saja memiliki klasifikasi yang sama dengan file data ASD. Pendekatan yang digunakan ASD adalah dengan menggunakan sistem operasi yang mendukung aturan intergritas Biba. Aturan ini menentukan label-label integritas kepada subyek dan obyek. Label-label ini adalah analogi label-label keamanan yang berkaitan dengan pengklasifikasian. Dengan berlakunya aturan integritas ini suatu subyek dapat menulis ke suatu obyek yang diproteksi hanya jika tingkat integritas dari subyek mendominasi tingkat integritas dari obyek. Untuk memproteksi data ASD obyek sistem operasi yang berisi data tersebut diberikan label DBMS integrity compartment. Label ini membatasi akses tulis ke obyek tersebut hanya kepada subyek yang memiliki DBMS integrity compartment yang lebih dominan. Karena hanya ASD TCB yang memiliki integrity compartment ini, tidak ada subyek lain yang dapat menulis secara langsung ke dalam obyek sistem operasi yang berisi data ASD. Tentunya, subyek-subyek lain dapat menggunakan fasilitas-fasilitas ASD TCB untuk memasukkan data tuple ke dalam obyek, tetapi hanya dibawah kendali ASD TCB.

Arsitektur Network ASD

ASD diimplementasikan sebagai trusted server, seperti yang ada pada gambar 7. Dibawah pendekatan ini, ASD beroperasi pada nodenya sendiri dalam network. ASD node melayani node-node lainnya yang mirip single-level tetapi beroperasi pada klasifikasi-klasifikasi keamanan yang berbeda. ASD menyediakan multilevel engine yang memberikan fasilitas sharing antar level. Node top secret dapat mengambil data dari ASD trusted server yang memiliki data dikategorikan sebagai node unclassified.
Penyediaan akses network perlu mempertimbangkan protokol network yang aman. Protokol network yang didukung oleh ASD server adalah TCP, IP, dan SLIP (Serial Line IP). SLIP memperbolehkan protokol TCP/IP digunakan pada kabel serial, seperti kabel telepon. Ini membolehkan ASD untuk digunakan dalam lingkungan taktis.
Karena software protokol network secara aktual menangani data, software ini akan menjadi relevan terhadap keamanan jika secara kongkuren atau sekuensial software menangani data yang digolongkan pada banyak kelas akses. Sebagai contohnya, pesan top secret dikirimkan ke node top secret, kemudian pesan unclassified dikirimkan ke node unclassified. Kebocoran data dapat terjadi karena software ini. Tentu saja hal ini melanggar mandatory security policy.
Solusi yang diambil terhadap masalah ini adalah dengan menggunakan protokol network secara terpisah untuk tiap tingkat keamanan. Sesuai dengan konsep ini jika suatu host memiliki dua port serial, setiap port serial dikaitkan dengan software network protokol yang terpisah, dan port-port serial ini berhubungan dengan node yang beroperasi pada kelas akses yang berbeda, maka kebocoran data dapat dihilangkan.

6 Comments

Tinggalkan komentar