Tag Archives: database

database

Keamanan Database Server Menggunakan Virtual Private Database

Keamanan pada komputer mencakup perlindungan data yang terkomputerisasi dan proses modifikasi, perusakan, atau delay yang tidak diijinkan. Pada masa internet, ancaman terhadap data meningkat secara eksponensial. Gb.1 dibawah ini menunjukkan lingkungan komputasi kompleks yang harus tercakup dalam perencanaan keamanan data.

keamanan data

Gambar.1 Lingkungan dari Kebutuhan Keamanan Data.

Staff keamanan, administrator, dan programmer aplikasi harus melindungi database dan server dimana database berada. Mereka harus mengatur dan melindungi hak user pada database internal, dan menjamin privasi electronic commerce sebagaimana pelanggan yang mengakses database tersebut.

Virtual Private Database
Oracle Label Security (OLS) bergantung pada konsep Virtual Private Database (VPD) untuk memperluas keamanan pada level baris. Secara esensial, ketika aturan bisnis dipersiapkan melalui OLS, VPD menambahkan kriteria seleksi tambahan yang perlu ke setiap pernyataan SQL yang dikeluarkan untuk membatasi akses user ke hanya data yang perlu. Kelebihan dari VPD ialah aplikasi aturan ditangani “dibalik layar” tanpa diketahui user. Misalnya, diterapkan aturan sehingga user SCOTT hanya dapat melihat baris pada tabel ORDERS yang ditandai USERID-nya saja, VPD menambahkan kriteria seleksi (WHERE ORDERS.USERID = ‘SCOTT’) pada query. Hal ini dapat diterapkan pula pada user lainnya yang hanya dapat melihat data yang diperbolehkan seperti yang digambarkan berikut ini :

VPD Oracle

Gambar.2 Teknologi VPD Oracle

Aplikasi user dalam session Oracle menghasilkan SQL Request. Oracle mengecek privilege DAC, menjamin bahwa user memiliki privilege SELECT pada tabel. Kemudian dicek apakah aturan VPD telah diterapkan pada tabel untuk menjamin bahwa tabel tersebut diproteksi. Pernyataan SQL diubah pada proses selanjutnya. Hal tersebut digambarkan dalam arsitektur Oracle Label Security sebagai berikut :

label oracle

 Gambar.3 Arsitektur Oracle Label Security

Keamanan dengan label menambah perlindungan data diluar DAC yang menentukan operasi yang dapat dilakukan user terhadap data dalam suatu objek, seperti tabel atau view. Aturan OLS mengontrol akses terhadap data dalam tiga dimensi :

  • Data Label : menunjukkan level dan karakteristik sensitivitas baris dan kriteria tambahan yang harus dipenuhi user untuk mengakses baris tersebut.
  • User Label : menunjukkan level sensitivitas user ditambah kompartemen dan grup yang membatasi akses user ke data yang diberi label.
  • Aturan Privilege : user diberi hak spesifik untuk menjalankan operasi khusus atau untuk mengakses data diluar authorisasi label mereka.

OLS menggunakan tiga dimensi untuk mendefinisikan user’s permission untuk mengakses data dalam baris, yaitu level, kompartemen dan grup. Gambar dibawah ini mengilustrasikan ketiga dimensi tersebut.

database logis

Gambar. 4 Klasifikasi Data Secara Logis

Level adalah tingkatan yang menyatakan sensitivitas informasi. Semakin sensitif informasi, semakin tinggi pula levelnya. Setiap label harus memiliki satu level. Untuk setiap level, administrator mendefinisikan bentuk numerik dan karakter, misalnya :

Tabel 1. Contoh Level

contoh level

Walaupun administrator mendefinisikan kedua bentuk panjang dan pendek, hanya bentuk pendek yang terlihat oleh user ketika hendak memanipulasi label. Label lain yang umum didefinisikan ialah TOP_SECRET, SECRET, CONFIDENTIAL, dan UNCLASSIFIED, atau TRADE_SECRET, PROPRIETARY, COMPANY_CONFIDENTIAL, dan PUBLIC_DOMAIN. Jika hanya level yang digunakan, user dengan level 40 (pada contoh ini) dapat mengakses atau mengubah data apapun yang memiliki level 40 atau dibawahnya.

Grup mengidentifikasi organisasi yang memiliki atau mengakses data, seperti EASTERN_REGION, WESTERN_REGION, WR_SALES. Semua data yang berhubungan dengan departemen tertentu dapat memiliki grup departemen dalam label. Grup berguna untuk mengontrol distribusi data, dan sebagai reaksi terhadap perubahan organisasi. Grup bersifat hirarki dimana data label dibuat berdasarkan infrastruktur organisasi. Grup dapat dihubungkan dengan grup parent. Misalkan :

hirarki group

 Gambar.5 Contoh Hirarki Grup.

Pada Gambar.5, grup WESTERN_REGION terdiri dari tiga subgroup : WR_SALES, WR_HUMAN_RESOURCES, dan WR_FINANCE. Subgrup WR_FINANCE dibagi lagi menjadi WR_ACCOUNTS_RECEIVABLE dan WR_ACCOUNTS_PAYABLE. Tabel dibawah ini menunjukkan struktur organisasi diatas dalam bentuk grup OLS.

Tabel 2. Contoh Grup

contoh grup

Untuk dapat mengakses data yang diproteksi OLS, user harus memiliki authorisasi berdasarkan label yang didefinisikan. Dibawah ini ditunjukkan hubungan antara user, data, dan label.

hubungan user, data, label
Gambar.6 Hubungan Antara User, Data, dan Label

  • Data label menspesifikasi sensitivitas baris data.
  • User label memberikan authorisasi ke user yang benar.
  • Access mediation antara user dan baris data bergantung pada label.

Selama access mediation, OLS membandingkan nilai yang tersimpan didalam kolom label dengan label permission user. Jika user diberi hak yang memadai untuk mengakses baris, maka transaksi berlanjut. Untuk menjalankan perintah SELECT, user harus diberi akses read mode. Untuk menjalankan perintah Data Manipulation Language (INSERT, UPDATE, DELETE, atau MERGE), user harus diberi akses write mode. Dalam pengembangan perangkat lunak ini dapat diidentifikasi dua buah aktor yaitu berupa manusia dan perangkat lunak Tahiti server. Aktor adalah seseorang atau sesuatu yang berada di luar sistem namun berinteraksi dengan sistem (Quatrani, 2003).

Diagram use case pada gambar 7 memiliki dua buah aktor yaitu administrator dan Tahiti server. Pengguna dapat berinteraksi dengan lima buah use case dalam sistem perangkat lunak ini secara bergantian. Lima buah use case tersebut yaitu use case Konfigurasi Agent Slave, use case Menentukan host-host yang diakses, Menentukan Query, use case Membuat Aglet slave, use case Mengirimkan agent, dan use case Membuat laporan. Aktor Tahiti Server digunakan untuk menciptakan DBApplication dengan fungsi untuk mengirim dan menerima Aglet Slave yang dikonfigurasikan sebelumnya. Interaksi pengguna dengan program lebih banyak melalui Menu utama yang dibuat pada use case Menampilkan User Interface. Setelah terjadi pengiriman agen, setiap agen akan melakukan tugas yang dikonfigurasikan sebelumnya di setiap host yang dikunjungi. Proses ini digambarkan dengan Use case Mengakses database di setiap host.

use case

 Gambar . 7 Diagram use case notifikasi Database menggunakan agent bergerak

Hasil analisis pembuatan agen pada diagram use case, disinkronisasikan dengan class diagram, menghasilkan collaboration diagram pembuatan agen seperti pada gambar 8 Setelah objek dari AgletSlave dibuat, administrator dapat mengirimkannya ke jaringan.

collaboration diagram

Gambar. 8 Collaboration diagram Membuat Aglet slave

Objek dari class AgletSlave kemudian berpindah dari satu host ke host yang lain sesuai dengan rencana perjalanan yang telah ditentukan. Langkah-langkah akses database yang dilakukan oleh agen digambarkan dengan collaboration diagram pada gambar 9.

Saat agen tiba di host tujuan, Tahiti Server akan memanggil method run() dari agen yang berisi method doJob() untuk mengambil data yang diperlukan. Data-data yang diambil disimpan dalam objek dari class Report sebagai bahan untuk membuat laporan.

diagram agletslave

 Gambar. 9 Collaboration diagram akses database oleh AgletSlave.

Hal-hal diluar dugaan sering kali terjadi, misalnya saat host yang akan dideteksi sedang tidak aktif, host tersebut akan dilewati. Bila terjadi kesalahan atau deteksi selesai, maka agen akan kembali ke host asal dengan membawa objek Report masing-masing host.

Di server, DBApplication akan memanggil method buatLaporan() pada objek DBAgent. Objek Report akan dikonversi menjadi objek Hasil. Objek hasil menyimpan hasil dari akses yang dilakukan pada database tiap-tiap host. Objek ini disimpan ke dalam Vektor dan dapat disimpan ke dalam bentuk file teks. Laporan yang dihasilkan nanti berupa hasil eksekusi query umum yang dihasilkan oleh masing-masing DBMS pada masing-masing host yang dikunjungi. Gambar 10 menjelaskan tentang pembuatan laporan oleh DBApplication.

buat laporan

 Gambar 10 Collaboration Diagram Membuatan Laporan