STUDI IMPLEMENTASI KEAMANAN BASIS DATA DENGAN DATABASE VAULT
PADA ORACLE DATABASE 10G RELEASE 2
Laporan Tugas Akhir
Diajukan Untuk Melengkapi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Oleh:
RETNO MAROETI 4150411-061
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCU BUANA
JAKARTA 2009
1 1.1 Latar Belakang
Keamanan basis data adalah mekanisme yang melindungi basis data dari ancaman yang disengaja maupun tidak disengaja. Keamanan tidak hanya untuk data pada basis data saja, kegagalan keamanan juga berakibat pada bagian lain dari sistem yang pada akhirnya berakibat pada basis data. Sehingga keamanan basis data juga merupakan keamanan pada hardware, software, orang dan data.
1.2 Identifikasi Masalah
Kebutuhan akan keamanan basis data bersifat dinamis, praktek dan teknologi baru terus-menerus menyediakan arena bagi exploitasi unauthorized, dan juga cara-cara baru penyalahgunaan untuk mempengaruhi bahkan juga terhadap lingkungan dan produk yang telah stabil. Evolusi yang terjadi saat ini melibatkan lingkungan kultural dan teknologi yang berubah secara global, dimana perhatian terhadap keamanan perlu mempengaruhi baik dari penggunaan solusi yang telah ada maupun pengembangan hal-hal baru.
Jenis penyalahgunaan basis data baik yang tidak disengaja maupun disengaja: a. Tidak disengaja
- Kerusakan selama proses transaksi.
- Anomali yang disebabkan oleh pendistribusian data pada beberapa komputer.
- Logika error yang mengancam kemampuan transaksi untuk mempertahankan konsistensi basis data.
b. Disengaja
- Pengambilan data / pembacaan data oleh pihak yang tidak berwenang - Perubahan data oleh pihak yang tidak berwenang.
- Penghapusan data oleh pihak yang tidak berwenang.
Berikut ini adalah pengelompokan isu-isu keamanan berdasarkan kategori, sebagai usaha untuk menciptakan operasi secure didalam lingkungan yang secure:
- Fisik
Komputer harus dibuat tak bisa diakses secara fisik dari pemakai yang tidak berwenang dengan menempatkannya di dalam lingkungan yang terjamin.
- Personel
Pihak yang bertanggungjawab bagi keamanan fisik, administrasi sistem, dan keamanan data harus terpercaya.
- Prosedural
Prosedur dan kebijakan yang dipergunakan dalam operasi pada sistem harus menjamin data yang reliable (terpercaya). Dengan memisahkan role-role fungsional dari pemakai di dalam manajemen data. Sebagai contoh, satu orang bertanggungjawab untuk backup database. Rolenya hanyalah memastikan database up dan jalan. Orang lain bertanggungjawab untuk pelaporan aplikasi menyangkut data daftar gaji
atau data penjualan. Kewajibannya memeriksa data dan memverifikasi integritasnya. Membuat kebijakan yang melindungi tabel dan schema terhadap pengguna unauthorized maupun malicious.
- Teknikal
Penyimpanan, akses, manipulasi, dan transmisi data harus betul-betul dijaga dengan teknologi yang menegakkan kebijakan kontrol informasi. Pencegahan gangguan keamanan dari luar pada basis data telah banyak diterapkan dimulai dari penggunaan firewall, aplikasi anti spam e-mail, anti spyware, anti virus dan masih banyak lagi.
Namun bagaimana dengan ancaman dari pihak dalam pada basis data, kemungkinan adanya karyawan yang tak setia atau korup. Salah satu cara untuk mengantisipasi gangguan seperti tersebut diatas dapat menggunakan oracle database 10g release 2 yang yang menyediakan semua fasilitas untuk pengamanan data antara lain :
- Virtual Private Database Row level security
Membuat akses berdasarkan fungi kerja dengan, klasifikasi hari atau jam penggunaan basis data, mendukung customizable, policy-based akses control down ke level baris untuk menjalankan keamanan dan privasi data. Kebijakan dirancang programmatically ditambahkan ke database object (table, view), sehingga kebijakan dapat dijalankan tanpa memperhatikan metode akses. Hal ini mengurangi masalah keamanan aplikasi serta menyediakan penggabungan basis data serta melindungi pemisahan dari individual set
Memberi kemudahan dalam penggunaan dan mendukung algoritma-algoritma pada sistem
- Fine Grained Auditing
Dapat memperkecil kesalahan dalam audit atau audit yang yang sulit dengan menspesifikasi kondisi audit yang diinginkan
Dan untuk lebih meningkatkan pengamanan dari basis data yang telah ada, terdapat database vault yang merupakan mekanisme tambahan dari oracle database 10g. Pengamanan untuk memproteksi aplikasi data dari akses DBA, proteksi struktur database dari perubahan secara ilegal, akses kontrol secara dinamis dan fleksibel sesuai dengan permintaan pengamanan.
Apakah dengan integrasi antara oracle database 10g dengan database vault dapat dapat mendeteksi semua aktivitas pada basis data, memproteksi basis data dari user yang tidak berhak dan memberikan laporan untuk proses audit perlu analisa yang lebih mendalam.
1.3 Tujuan Penulisan
Tujuan dari pembuatan tugas akhir ini adalah:
Menganalisa kinerja dan mengkonfigurasi penggabungan keamanan oracle database 10g itu sendiri dengan database vault dalam mekanisme keamanan basis data. Apakah dengan integrasi antara oracle database 10g dengan database vault dapat mendeteksi semua aktivitas pada basis data, memproteksi basis data dari user yang tidak berhak dan memberikan laporan untuk proses audit.
1.4 Pembatasan Masalah
Masalah yang akan dibatasi dalam penyusunan tugas akhir ini adalah analisa dan implementasi keamanan basis data dengan database vault pada oracle database 10g dengan menggunakan sistem operasi Red Hat Entreprise Linux 4
Laporan Tugas Akhir hanya menekankan pada hal-hal berikut:
1. Analisa keamanan basis data yang dimiliki oleh oracle database 10g dan database vault dapat mendeteksi semua aktivitas pada basis data, memproteksi basis data dari user yang tidak berhak dan memberikan laporan untuk proses audit.
2. Konfigurasi database vault.
3. Pengujian dan implementasi database vault.
4. Basis data yang digunakan adalah oracle database 10g release 2. 5. Tidak membahas physical security database.
1.5 Metodologi Penelitian
1.5.1 Metodologi Pengumpulan Data
Cara pengumpulan data sebagai materi penyusunan Tugas Akhir ini adalah sebagai berikut:
Metode Studi Literatur
Metode Studi Literatur adalah cara pengumpulan data dengan menggunakan semua referensi yang berkaitan dengan pembuatan tugas akhir untuk memperoleh data-data yang dikehendaki,
sehingga dapat dijadikan acuan dalam penulisan laporan tugas akhir ini.
1.5.2 Analisa
Menganalisa keamanan basis data pada oracle database 10g dan database vault dengan membuat skenario-skenario masalah yang dapat mengganggu keamanan basis data.
1.5.3 Konfigurasi
Konfigurasi database vault pada oracle database 10g dan cara up-grade/patch dari oracle database 10g enterprise edition release 10.2.0.1.0 menjadi 10.2.0.4.0 karena database vault hanya bisa berjalan pada platform tersebut atau lebih tinggi.
1.5.4 Implementasi dan Pengujian
Membuat pengujian dan implementasi dari database vault yang telah dikonfigurasi sebelumnya dengan menggunakan skenario-skenario masalah yang telah dibuat sebagai bahan untuk menguji.
1.6 Sistematika Penulisan
Untuk mempermudah penyusunan dan menganalisa Tugas Akhir, maka digunakan sistematika laporan sebagai berikut :
BAB I PENDAHULUAN
Bab ini menjelaskan tentang latar belakang masalah, dasar pemilihan judul, tujuan dan kegunaan Tugas Akhir, pembatasan masalah, metodologi penelitian dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini membahas tentang teori yang menjadi dasar pembahasan, antara lain: pengertian data, informasi, basis data, struktur oracle database 10g, keamanan oracle database 10g, database vault.
BAB III ANALISA KEBUTUHAN DAN KONFIGURASI DATABASE
VAULT
Bab ini mejelaskan tentang analisa kebutuhan dan konfigurasi dari database vault dan oracle database 10g
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini menjelaskan tentang implementasi dan pengujian dari hasil analisa dan konfigurasi yang ada.
BAB V PENUTUP
Bab ini merupakan bagian terakhir dalam penulisan Tugas Akhir yang berisi kesimpulan dan saran yang didasarkan atas uraian pada bab-bab sebelumnya
8 BAB II
LANDASAN TEORI
2.1 Pengertian Data
Pada umumnya para pakar mendefinisikan data sesuai dengan bidang ilmunya masing-masing sehingga:
- Data adalah deskripsi dari benda-benda dan kejadian - kejadian yang selalu kita hadapi sehari-hari.
- Data dalah sekumpulan deskripsi dari benda-benda (resources) dan kejadian-kejadian (transaksi-transaksi) yang selalu berinteraksi.
- Data adalah kumpulan dari fakta-fakta berupa simbol, lambang, huruf, gambar.
2.2 Pengertian Informasi
Menurut para ahli, pengertian informasi adalah sebagai berikut :
a. Jogiyanto HM (2001,h8) :
Informasi adalah data yang diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi yang menerimanya.
b. Gordon B. Davis (1993,P6) :
Informasi adalah suatu data yang telah diolah menjadi bentuk yang berarti bagi si penerima dan bermanfaat dalam pengambilan keputusan saat ini atau akan datang.
Sumber dari informasi adalah data, yang merupakan keyataan yang menggambarkan suatu kejadian dan kesatuan nyata. Data merupakan bentuk yang masih mentah (raw) yang masih belum mampu bercerita banyak, sehingga untuk menjadi informasi data harus diolah terlebih dahulu.
Kualitas dari suatu informasi tergantung pada tiga hal pokok, yaitu : a. Keakuratan
Informasi yang dihasilkan harus tepat, jelas dan mencerminkan permasalahan yang dihadapi (tidak menyesatkan).
b. Ketepatan
Informasi yang diterima tidak terlambat. Keterlambatan informasi dapat mengakibatkan nilai dari informasi tersebut akan berkurang. c. Relevansi
Informasi yang dihasilkan harus bermanfaat dan sesuai dengan apa yang dibutuhkan oleh pemakai.
Dari pendapat-pendapat yang telah dikemukakan diatas, penulis dapat menarik sebuah kesimpulan bahwa yang dimaksud dengan informasi itu sendiri adalah “Kumpulan data yang harus diolah terlebih dahulu sehingga bermanfaat bagi pemakainya dalam mencapai suatu tujuan atau hasil tertentu.”
2.3 Pengertian Database
Dalam beberapa literature basis data telah didefiniskan dengan cara yang berbeda-beda,salah satunya yang cukup lengkap adalah diberikan oleh James
Martin (1975) yaitu : “ A database may be defined as a collection of interrelated data stored together without harmful or unnecessary redundancy to serve one more application in an optimal fashion; the data are stored so that they are independent of program with use the data; common and controlled approach its use in adding new data and in modifying and retrieving existing data within the database”
Sekumpulan data yang terhubung yang disimpan secara bersama-sama dalam suatu media, tanpa kerangkapan data (kalaupun ada kerangkapan data tersebut seminimal mungkin dan terkontrol, data disimpan dengan cara-cara tertentu, sehingga mudah untuk digunakan, atau ditampilkan kembali dan dapat digunakan lebih dari program aplikasi secara optimal, data disimpan tanpa mengalami ketergantungan yang menggunakan sehingga proses penambahan, pengambilan dan modifikasi dapat dilakukan dengan mudah serta terkontrol.
Karakteristik utama basis data adalah: a. Merepresentasikan aspek dari dunia nyata, b. Terstruktur dengan baik,
c. Dapat merepresentasikan kondisi saat ini (current state) d. Ada penggunanya dan ada aplikasi,
e. Disimpan dalam memori komputer secara permanen, dan f. Dapat diakses dan dimanipulasi menggunakan DBMS
2.3.1 Database Manajemen Sistem (DBMS)
DBMS adalah koleksi terpadu dari basis data dan program-program komputer (utilitas) yang digunakan untuk mengakses dan memelihara basis data.
Pengelolaan manajemen basis data antara lain: - Pendefinisian struktur penyimpanan.
- Penyedian mekanisme untuk manipulasi informasi.
- Penyediaan keamanan dalam penarikan dan penyimpanan data dan informasi.
Bahasa dalam DBMS :
- Data Definition Language (DDL)
DDL berfungsi untuk mendefinisikan data seperti membuat tabel, membuat index tabel dan modifikasi tabel. Hasil perintah dari DDL adalah suatu set dari tabel-tabel yang disimpan dalam file khusus yang di sebut data dictionary. Perintah-perintah yang termasuk dalam kategori ini adalah CREATE, ALTER, DROP, RENAME dan TRUNCATE.
- Data Manipulation Language (DML)
DML merupakan bahasa DBMS yang berfungsi untuk memanipulasikan dan mengambil data dari dan ke suatu database manajemen sistem. Perintah-perintah yang termasuk dalam kategori ini adalah INSERT, UPDATE dan DELETE.
Dalam DML ada dua tipe yaitu :
a. Prosedural: Type ini menuntut pemakai untuk memsepesifikasi data apa yang akan digunakan dan bagaimana mendapatkan data tersebut.
b. Non Prosedural: Type ini menuntut pemakai untuk memsepesifiasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana mendapatkan.
- Data Control Language (DCL)
DCL berfungsi untuk melakukan keamanan database. Perintah-perintah yang termasuk dalam kategori ini adalah GRANT dan REVOKE.
2.3.2 Kegunaan Basis Data
a. Penyusunan suatu database digunakan untuk mengatasi jika file dalam program aplikasi diciptakan oleh programmer yang berbeda pada waktu yang berselang cukup panjang, maka ada beberapa bagian data mengalami penggandaan pada file-file yang berbeda.
b. Kesulitan dalam pengaksesan data
Kesulitan yang timbul dalam pengaksesan data, penyelesaian untuk itu adalah kearah DBMS yang mampu mengambil data secara langsung dengan bahasa yang familiar dan mudah digunakan (user friendly).
Jika data tersebar dalam beberapa file dalam bentuk format yang tidak sama, maka ini menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan data. Maka haruslah data dalam suatu database dibuat satu format sehingga mudah dibuat program aplikasinya.
d. Banyak Pemakai (multiple user)
Dalam rangka mempercepat semua daya guna sistem dan mendapat responsi waktu yang cepat, beberapa sistem mengijinkan banyak pemakai untuk mengupdate data secara simultan, salah satu alasan mengapa database dibangun karena nantinya data tersebut digunakan oleh banyak orang dalam waktu yang berbeda, diakses oleh program yang sama tetapi berbeda orang dan waktu. Semua ini memungkinkan terjadi karena data yang diolah tidaklah tergantung dan menyatu dalam program tetapi ia terlepas dalam satu kelompok data.
e. Masalah Keamanan
Tidak setiap pemakai sistem basis data memperoleh akses semua data. Keamanan ini dapat diatur lewat program yang dibuat oleh pemprogram atau fasilitas keamanan dari sistem operasi.
f. Masalah Kesatuan (Integrity)
Basis data berisi file-file yang saling berkaitan, masalah utama adalah bagaimana kaitan antara file tersebut terjadi. Meskipun
kita mengetahui bahwa file A berkaitan dengan file B, namun secara teknis maka ada file kunci yang mengaitkan kedua file tersebut.
g. Masalah Kebebasan Data (Data Independence)
Paket bahasa yang diciptakan dari DBMS, apapun yang terjadi pada struktur file, setiap kali kita hendak melihat data cukup dengan utility list, hendak menambah data cukuplah dengan APPEND. Ini berarti perintah-perintah dalam paket DBMS bebas terhadap basis data. Apapun perubahan dalam basis data, semua perintah akan mengalami kestabilan tanpa perlu ada yang dirubah.
h. Kecepatan dan kemudahan (speed)
Agar pengguna basis data dapat menyimpan data, melakukan perubahan/manipulasi terhadap data, menampilkan kembali data dengan lebih cepat dan mudah dibandingkan dengan cara biasa baik manual ataupun elektronik.
i. Efisiensi ruang penyimpanan
Mampu melakukan penekanan jumlah redundansi (pengulangan) data, baik dengan menerapkan sejumlah pengkodean atau dengan membuat relasi-relasi (dalam bentuk file) antara kelompok data yang saling berhubungan
j. Keakuratan (accuracy)
Agar data sesuai dengan aturan dan batasan tertentu dengan cara memanfaatkan pengkodean atau pembentukan relasi antar
data bersama dengan penerapan aturan/batasan (constraint) tipe data, domain data, keunikan data dsb
k. Ketersediaan (availability)
Data yang sudah tidak dipakai/kadaluwarsa dipisahkan dari sistem database yang sedang aktif baik dengan cara penghapusan atau memindahkannya ke media backup untuk menghemat ruang penyimpanan. Di sisi lain, juga dilakukan pemanfaatan teknologi jaringan komputer agar data yang berada di suatu lokasi/cabang daat juga diakses oleh lokasi/cabang lainnya.
l. Kelengkapan (completeness)
Agar data yang dikelola senantiasa lengkap baik relatif terhadap kebutuhan pemakai maupun terhadap waktu. Untuk itu tidak hanya dengan melakukan penambahan record-record data, tapi juga melakukan perubahan struktur pada basis data (jika perlu) baik menambah field pada tabel ataupun bahkan menambah tabel baru.
2.4 Keamanan Basis Data
2.4.1. Pengertian Keamanan Basis Data
Proteksi basis data terhadap ancaman/gangguan baik yang disengaja maupun yang tidak disengaja melalui kendali yang bersifat teknis maupun administrasi.
Menurut Silberschatz (2002, p239) ukuran keamanan yang dapat diambil untuk melindungi basis data antara lain dari segi:
- Sistem Basis Data
Ada beberapa pengguna berwenang yang dizinkan untuk mengakses bagian basis data tertentu dan ada para pengguna yang lain hanya diizinkan untuk membaca data yang diinginkannya, tetapi tidak punya hak untuk mengubahnya. Kewajiban dari sistem basis data ini adalah menjaga batasan seperti di atas tetap terjaga - Sistem Operasi
Tidak peduli betapa aman sistem basis datanya, apabila terjadi kelemahan dalam sistem operasi. Hal ini sama artinya dengan adanya akses yang tidak diinginkan dalam basis data. Jadi tingkat keamanan perangkat lunak dalam sistem operasi sangatlah penting seperti halnya keamanan yang dilakukan secara fisik.
- Jaringan
Seluruh sistem basis data memperbolehkan untuk mengakses lewat terminal atau jaringan, keamanan software-level dalam software jaringan sangat penting sebagai keamanan fisik, keduanya dibutuhkan dalam internet dan jaringan pribadi.
- Fisik
Situs yang mengandung sistem komputer harus secara fisik aman dari entri secara diam-diam dan bahaya oleh para penyelundup.
- Manusia
Autorisasi pada pengguna harus dilakukan secara hati-hati untuk mengurangi adanya kejadian dimana pengguna yang berwenang memberikan akses kepada orang lain dengan imbalan suap atau lainnya.
Secara garis besar keamanan sistem informasi dan komputer dapat dibagi dua yaitu keamanan secara fisikal dan secara logikal.
- Fisikal
Secara fisik berarti bagaimana mengamankan semua infrastruktur peralatan sistem keamanan baik dari sisi server, ruangan, kabel, system backup redundant system, system cadangan power listrik dan lain-lain.
- Logikal
Keamanan secara logikal tentang metode keamanan seperti protocol yang digunakan, metode komunikasi datanya, model basis datanya dan sistem operasinya.
Aspek keamanan seringkali ditinjau dari: - Confidentiality
- Integrity - Availability - Non-Repudiation
Merupakan aspek yang sangat penting dalam transaksi elektronik. Aspek non-repudiation menjamin bahwa pelaku transaksi tidak dapat mengelak atau menyangkal telah melakukan transaksi
- Standar pengamanan - Evaluasi secara berkala
Keamanan basis data berkaitan dengan situasi sebagai berikut: - Pencurian (theft dan fraud.)
- Kehilangan kerahasiaan (loss of confidentiality dan privacy). Kerahasiaan dapat diartikan sebagai perlindungan terhadap data dalam sistem informasi perusahaan, sehinggga tidak dapat diakses oleh orang yang tidak berhak. Banyak yang beranggapan bahwa tipe perlindungan seperti ini hanya penting untuk kalangan militer dan pemerintahan, dimana mereka perlu merahasiakan rencana dan data penting. Akan tetapi kerahasian juga sangat penting bagi kalangan bisnis yang perlu melindungi rahasia dagang mereka dari kompetitor, atau untuk mencegah akses terhadap data-data yang dianggap sensitive oleh orang-orang yang tidak berhak didalam perusahaan.
- Kehilangan integritas (loss of integrity)
Integritas adalah perlindungan terhadap dalam sistem dari perubahan yang tidak terotorisasi, baik secara sengaja maupun secara tidak sengaja.Tantangan yang dihadapi setiap sistem keamanan informasi adalah untuk memastikan bahwa data terpelihara dalam keadaan yang sesuai dengan harapan dari user. Walau tidak dapat meningkatkan akurasi dari data yang dimasukan kedalam sistem oleh user, inisiatif keamanan informasi
memastikan bahwa setiap perubahan memang benar-benar dikehendaki dan dilakukan secara benar.
- Kehilangan ketersediaan (loss of availability).
Ketersediaan ini dapat diartikan sebagai kepastian bahwa sebuah sistem informasidapat diakses oleh user yang berhak kapan saja sistem informasi tersebut dibutuhkan.
Pengertian ancaman (threat), kerentanan (vulnerability), resiko (risk) dan akibat (exposure) pada keamanan basis data.
- Ancaman (threat )
Situasi, potensi atau kejadian baik di sengaja maupun tidak, yang dapat mempengaruhi sistem dan organisasi.
Tabel 2.1 Ancaman terhadap security database
Ancaman Theft and Fraud Loss of Confidentiality Loss of Privacy Loss of Integrity Loss of Availability Menggunakan akses orang lain Alterasi Program Kebijaksanaan dan prosedur yang tidak memadai yang mengijinkan
tercampurnya output yang biasa dan rahasia
Wire Taping
Entri ilegal oleh hacker
Pemerasan (blackmail )
Membuat pintu jebakan
pada sistem
Pencurian data, program
dan peralatan
Kegagalan mekanisme keamanan, memberikan akses melebihi normal
Tabel 2.1 Ancaman terhadap security database (lanjutan) Ancaman Theft and Fraud Loss of Confidentiality Loss of Privacy Loss of Integrity Loss of Availability Pengurangan pegawai
(phk) atau mogok kerja
Pelatihan staff yang
kurang memadai
View dan disclosed data
rahasia
Gangguan elektronik dan
radiasi
Data rusak karena listrik
padam
Kebakaran
Kerusakan fisik pada
peralatan
Kabel rusak atau putus
Virus
Berikut ini adalah pengelompokan ancaman pada sistem komputer berdasarkan kategori:
1. Perangkat keras: kebakaran, banjir, bom, pencurian, listrik, gempa, radiasi, kesalahan mekanisme keamanan.
2. Jaringan komunikasi: kabel yang tidak terkoneksi, radiasi.
3. Database: aturan/amandemen yang tidak diotorisasi, penduplikatan data, pencurian data, kehilangan data akibat gangguan listrik 4. DBMS dan Program Aplikasi: kesalahan mekanisme keamanan,
akses yang terlalu luas, pencurian program, kesalahan program. 5. Pengguna akhir (end user): menggunakan hak akses orang lain,
melihat dan menutup data yang tidak diotorisasi, staf tidak ditraining, pemasukan data yang dilakukan oleh yang tidak berhak, virus, pemerasan.
6. Programer/operator: membuat password, membuat program yang tidak aman, staf yang tidak ditraining, kebijakan keamanan dan prosedur, pemogokan staf.
7. Database administrator : kebijakan keamanan & prosedur - Kerentanan (vulnerability)
Software, hardware atau prosedur yang lemah sebagai pintu bagi para penyerang. Hal yang rentan dapat berupa servis pada server yang sedan berjalan, modem dial-in akses yang tidak dibatasi, terbukanya port pada firewall, kurangnya keamanan fisik sehingga semua orang dapat masuk ruang server, kurang kuatnya manajemen password pada server dan workstation.
- Resiko (risk)
Kemungkinan kehilangan, ancaman yang mengeksploitasi hal yang rentan, seperti firewall yang memiliki banyak port memiliki resiko yang lebih tinggi untuk diserang pengganggu.
- Kerugian (exposure )
Contoh dari sesuatu yang hilang karena ancaman, seperti manajemen dan prosedur dari akses pengguna yang kurang sehingga dapat digunakan oleh pihak lain yang menyebabkan organisasi mengalami kerugian.
Berikut ini adalah hubungan antar komponen keamanan Threats Agents Ancaman (threats) membuat Kerentanan (vulnerability) mengeksploitasi Resiko (risk) menjadi Aset dapat merusak Kerugian (exposure) menyebabkan Tindakan pertahanan
(safe guard) dapat diantisipasi oleh secara
langsung berakibat pada
Gambar 2.1 Hubungan komponen keamanan
[Referensi:CISSP Certification Guide,2007]
2.4.2. Pengendalian Keamanan
Pengendalian keamanan berbasis komputer yang telah banyak digunakan antara lain:
- Autorisasi (authorization)
Pemberian hak yang memungkinkan seseorang secara sah mengakses sistem atau objek (tabel, view, aplikasi, prosedur, objek lain dalam sistem).
Kendali autorisasi (kontrol akses) dapat dibangun pada perangkat lunak dengan 2 fungsi:
1. Mengendalikan sistem atau obyek yang dapat diakses. 2. Mengendalikan bagaimana pengguna menggunakannya.
Teknik kontrol akses yang sering digunakan: Mandatory access control
Memberikan sebuah label keamanan terhadap semua subyek dan obyek yang ada dalam sebuah sistem
Tabel 2.2 Klasifikasi data komersial
Clasification Description
Public Data tidak di lindungi dimanapun Sensitive
Informasi bisa berpengaruh terhadap bisnis dan kepercayaan
public jika tidak dilindungi dengan baik Private
Informasi personal yang bisa berakibat negatif terhadap
seseorang jika bocor Confidential
Informasi perusahaan yang bisa berakibat negatif terhadap
organisasi jika bocor
Directional access control
Mempergunakan identitas dari subyek untuk menentukan apakah permintaan akses tersebut akan dipenuhi atau di tolak. Metode ini lebih mudah di implementasikan dan lebih fleksibel. Setiap obyek memiliki permissions, yang menentukan user atau group yang bisa melakukan akses terhadap obyek.
Non-discretionary access control
Tipe kontrol akses ini cocok dipakai pada kasus high turnover atau reassginments. Ketika security di asosiasikan kedalam sebuah role atau task, mengganti orang yang mengerjakan tugas membuat security administration lebih mudah.
Penentuan administrasi kontrol akses: Centralized access control
Memerlukan sebuah pusat keamanan yang bisa menentukan apakah sebuah permintaan akan disetujui atau ditolak. Pendekatan ini sangat mudah karena obyek hanya di pelihara pada lokasi yang tunggal. Salah satu kelemahannya adalah central access control bisa menjadi sebuah single point of failure. Jika central access control rusak, maka semua obyek tidak akan bisa diakses. Dampak negatif yang lainnya adalah dalam masalah perfomance, jika sistem tidak bisa memenuhi semua permintaan dari user
Decentralized access control
Meletakan tanggung jawab dari lebih dekat terhadap obyek. Pendekatan ini memerlukan lebih banyak administrasi daripada centralized access control karena sebuah obyek mungkin saja memerlukan kondisi yang sangat aman pada lokasi tertentu. Tapi hal ini bisa lebih stabil karena tidak ada Single Point Of Failure. Decentralized Access Control biasanya diimplementasikan memakai security domain. Security domain adalah bagian sebuah kepercayaan, atau koleksi dari obyek dan subyek, yang mendefinisikan access rule dan permisions. Subyek harus termasuk dalam domain tersebut. Pendekatan ini bisa memudahkan untuk mengeluarkan subyek yang dicurigai, tetapi bisa membuat
administrasi secara umum lebih sulit karena berbagai macam variasi dari peraturan keamanan.
Model-model akses control
Menyediakan view konseptual dari kebijakan keamanan. Hal ini akan mengijinkan kita untuk melakukan pemetaan antara tujuan dan petunjuk dari kebijakan keamanan anda terhadap event yang spesifik. Proses dari pemetaan ini memungkinkan terbentuknya definisi formal dan spesifikasi yang diperlukan dalam melakukan kontrol terhadap keamanan. Singkatnya, access control model memungkinkan untuk memilah kebijakan keamanan yang kompleks menjadi langkah–langkah keamanan yang lebih sederhana dan terkontrol
State Machine Model
Kumpulan dari defined instances, yang disebut state, dan sebuah transisi yang spesifik yang diijinkan untuk melakukan modifikasi terhadap obyek dari satu state ke state berikutnya. State machine sering dipakai untuk real-life entities ketika state yang spesifik dan transisinya ada dan dimengerti. Ketika sebuah subyek meminta untuk membaca sebuah obyek, harus ada sebuah transisi yang mengijinkan untuk merubah sebuah obyek yang closed menjadi open obyek.
Model state machine yang membuat daftar kontrol akses dan label keamanan untuk mengimplementasikan keamanan objek.
Model Biba
Dibangun berbasis model state machine dan mendefinisikan state dan transisi yang berfokus pada integritas data, bukan kerahasiaan. Fokus utamanya adalah untuk menjamin bahwa subyek yang tidak memiliki otoritas tidak dapat melakukan perubahan terhadap obyek.
Model Clark-Wilson
Tidak berbasis pada model state machine. Model ini menggunakan pendekatan yang berbeda untuk menjamin integritas data. Model Clark-Wilson tidak melakukan pemberian akses suatu subjek terhadap obyek, melainkan memblok semua akses terhadap sejumlah kecil program akses yang dikontrol secara ketat. Pendekatan ini berhasil dalam aplikasi komersial dimana integritas data seringkali lebih penting daripada kerahasiaan data secara keseluruhan. Model Noninterference
Menjamin bahwa perubahan pada sustu tingkat keamanan tidak mengorbankan level keamanan lainnya dan mempengaruhi suatu objek dalam konteks yang lain. Dasar pemikiran dari model noninterference adalah bahwa setiap tingkatan keamanan memiliki perbedaan dan perubahan tidak
akan berpengaruh terhadap tingkatan lain. Jaminan ini mempersempit cakupan suatu perubahan dan mengurangi kemungkinan bahwa suatu perubahan memiliki efek samping yang tidak disengaja. Dengan menutup kemungkinan modifikasi terhadap tingkatan keamanan tertentu, model ini dapat memlihara integritas dan kerahasasiaan data.
Autentifikasi
Mekanisme yang menentukan siapakah seseorang tersebut.
Masing-masing pengguna telah diberikan identifikasi unik yang digunakan sistem operasi untuk menentukan siapakah pengguna tersebut.
Tabel 2.3 Tipe-tipe autentifikasi
Authentification Type Description Examples
Type 1 What you know Password, passphrase, PIN, lock combination
Type 2 What you have Smart card, token device
Type 3 What you are
Biometrics – fingerprint, palm print, retina/iris pattern, voice pattern
- Tabel views
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:
Relasi, pengguna diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi.
View, pengguna diperbolehkan atau tidak diperbolehkan mengakses data yang terdapat pada view.
Read Authorization, pengguna diperbolehkan membaca data, tetapi tidak dapat memodifikasi.
Insert Authorization, pengguna diperbolehkan menambah data baru, tetapi tidak dapat memodifikasi data yang sudah ada.
Update Authorization, pengguna diperbolehkan memodifikasi data, tetapi tidak dapat menghapus data.
Delete Authorization, pengguna diperbolehkan menghapus data.
Untuk Modifikasi data terdapat autorisasi tambahan:
Index Authorization, pengguna diperbolehkan membuat dan menghapus index data.
Resource Authorization, pengguna diperbolehkan membuat relasi-relasi baru.
Alteration Authorization, pengguna diperbolehkan menambah atau menghapus atribut suatu relasi.
Drop Authorization, pengguna 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 TO BUDI
REVOKE SELECT, UPDATE (STATUS,KOTA) ON S TO ALI,BUDI
Priviledge list: READ, INSERT, DROP, DELETE, ALTERATION, RESOURCE
- Backup data dan recovery
Backup: proses secara periodik untuk mebuat duplikat dari 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:
1. Record transaksi
- Identifikasi dari record.
- Tipe record jurnal (transaksi start, insert, update, delete, abort, commit)
- Item data sebelum perubahan (operasi update dan delete) - Item data setelah perubahan (operasi insert dan update) - Informasi manajemen jurnal (misal : pointer sebelum dan
record jurnal selanjutnya untuk semua transaksi
2. Record checkpoint: suatu informasi pada jurnal untuk memulihkan database dari kegagalan, kalau sekedar undo (seperti fungsi yang dimiliki pada ms.excel) akan sulit jurnal untuk mencarinya kembali, maka untuk membatasi pencarian menggunakan teknik ini.
Pemulihan (recovery): merupakan upaya uantuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.
Jenis Pemulihan:
- Pemulihan terhadap kegagalan transaksi: kesatuan prosedur alam program yang dapat mengubah / memperbarui data pada sejumlah tabel.
- Pemulihan terhadap kegagalan media: pemulihan karena kegagalan media dengan cara mengambil atau memuat kembali salinan basis data (backup).
- Pemulihan terhadap kegagalan sistem: karena gangguan sistem, hang, listrik terputus alirannya.
Fasilitas pemulihan pada DBMS :
- Mekanisme backup secara periodik
- Fasilitas logging 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.
Teknik Pemulihan :
- 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 (terdapat pada redo log file) untuk mencegah akibat dari kegagalan tersebut.
- 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.
- Shadow Paging: menggunakan page bayangan dimana pada 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.
- Kesatuan data dan Enkripsi
Enkripsi: keamanan data, pengkodean data dengan algoritma khusus sehingga data tidak dapat dibaca oleh program tanpa kunci dekripsi, memproteksi data yang ditransmisikan melalui jalur komunikasi
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).
RAID terdiri atas array disk, meningkatkan keandalan atau kinerja dengan data stripping, penyimpanan informasi redundan dengan skema error-correcting
Level pada RAID :
RAID 0 - nonredundant, pada level ini tidak ada redundansi data dan memiliki performa yang paling baik karena tidak harus di replikasi.
RAID 1 – mirrored, dilakukan mirroring pada data .
RAID 0+1 – nonredudant dan mirrored, merupakan penggabungan stripping dan mirroring.
RAID 2 – memory-style-error-correcting codes, stripping unit adalah bit tunggal dan hamming code digunakan sebagai skema redundansi
RAID 3 – bit interleaved parity, redundansi dengan menyimpan informasi parity pada disk tunggal di array. RAID 4 – block interleaved parity, stripping unit adalah disk block.
RAID 5 – block interleaved distributed parity, menggunakan data parity untuk redundansi.
RAID 6 – P+Q redundancy, mirip dengan RAID 5 tapi penambahan data redundan digunakan untuk proteksi akan kegagalan disk.
- Tiga prinsip dasar yang digunakan untuk menetapkan pengendalian integritas adalah:
Memberikan akses dalam kerangka need-to-know basis User seharusnya hanya diberikan akses terhadap file dan program yang mereka butuhkan untuk melakukan fungsi -fungsi pekerjaan mereka. Keleluasaan akses terhadap data produksi atau source code oleh user seharusnya diperketat menggunakan metode transaksi, dimana dapat memastikan bahwa user dapat mengubah data hanya dalam cara yang terkontrol dengan baik sehingga menjaga integritas data. Elemen umum dari metode transaksi ini adalah pencatakan modifikasi data dalam sebuah log, yang dapat diperiksa lebih lanjut untuk memastikan bahwa hanya perubahan yang diotorisasi dan benar saja yang dilakukan didalam sistem. Agar lebih efektif, metode transaksi ini harus memastikan bahwa data hanya dapat dimanipulasi menggunakan program – program tertentu saja. Program-program tersebut harus diawasi secara hati-hati, baik dalam pengembangan dan instalasinya, dan diterapkan pengendalian untuk mencegah modifikasi yang tidak terotorisasi. Karena user harus dapat bekerja secara efisien, hak akses harus diberikan secara bijaksana sehingga memungkinkan fleksibilitas operasional yang memadai. Akses berdasarkan need to - know basis ini harus
memungkinkan terjadinya kontrol maksimal dengan pembatasan seminimal mungkin terhadap user. Setiap inisiatif keamanan informasi harus menerapkan keseimbangan yang baik antara tingkat keamanan yang ideal dan produktivitas kerja
Pemisahan tugas (separation of duties)
Untuk memastikan di bahwa tidak satu orang karyawan pun yang mengendalikan sebuah transaksi dari awal sampai akhir, dua atau lebih orang harus bertanggung jawab untuk melakukannya.
Rotasi Tugas
Penugasan suatu pekerjaan harus diubah-ubah secara periodik sehingga mempersulit user dalam berkolaborasi untuk mengendalikan sepenuhnya sebuah transaksi dan mengalihkannya untuk tujuan-tujuan terlarang.
- Metode Penyerangan yang umum dilakukan untuk mengakses objek:
Brute Force Attack
Tujuan dari serangan ini adalah mencoba beberapa kombinasi karakter yang memenuhi otentikasi tipe 1. Seringkali disebut menebak password, sebuah program mengirim beberapa login percobaan, masing-masingnya dengan password yang sedikit berbeda. Sebagai tambahan atas serangan sendiri, atur level sistem monitor untuk
memberi tahu ketika aktifitas yang tidak umum sedang terjadi. Ide bagus juga untuk mengatur level penguncian ke tingkat yang agresif sehingga account terkunci setelah beberapa kegagalan login. Hal ini akan merepotkan bagi pemakai yang melupakan password-nya, tetapi hal ini menyediakan pertahanan yang baik terhadap brute force attack.
Dictionary Attack
Merupakan turunan dari brute force attack. Sebagai ganti dari mencoba semua kombinasi password, dictionary atack mencoba untuk memenuhi permintaan password dengan memberikan password umum dari sebuah daftar atau kamus. Banyak daftar dari password yang umum digunakan mudah untuk dicari. Meskipun mereka membuat sumber yang bagus untuk dictionary attack, mereka juga menyediakan contoh password yang dihindari. Pada kenyataannya, salah satu cara terbaik untuk mencegah dictionary attack adalah dengan kebijakan password yang ketat.
Spoofing Attack
Tipe lain dari serangan kontrol akses adalah login spoofing. Seorang penyerang meletakkan program login palsu yang meminta kepada pemakai, user ID dan password. Tampilannya seperti login normal, sehingga pemakai
memberikan informasi yang diminta. Alih-alih memasukkan pemakai ke dalam sistem, program tersebut menyimpan informasi dan menampilkan pemberitahuan bahwa login gagal. Pertahanan terbaik melawan serangan jenis ini adalah membangun jalur yang terpercaya antara pemakai dan server ketika memungkinkan. Lakukan percobaan untuk meminimalkan peluang bagi penyerang untuk masuk antara pemakai dan server. Didalam lingkungan dimana keamanan menjadi sangat penting, pemakai harus dengan hati-hati mempelajari semua percobaan login yang gagal dan memastikan kegagalan tersimpan dan dilaporkan.
Trojan Horse
Cara yang sering digunakan penyusup untuk menjebak user agar menginstall program yang membuka pintu belakang di sistem yang digunakan, sehingga penyusup tersebut dapat dengan mudah mengakses komputer milik user tanpa sepengetahuan pemiliknya. Kemudian, penyusup tersebut bisa melakukan perubahan konfigurasi sistem atau menularkan virus ke komputer tersebut.
Back Door dan Remote Administration Program
Di komputer yang menggunakan operating system, pada umumnya penyusup menggunakan tiga tool, back Orificem Netbus, dan Sub Seven untuk mendapatkan akses ke
komputer secara remote. Setelah diinstall, back door atau remote administration program ini memungkinkan orang lain untuk mengakses dan mengendalikan komputer tersebut. Platform komputer lainnya mungkin juga memiliki kelemahan terhadap model serangan seperti ini, sehingga user harus selalu memantau laporan-laporan mengenai vulnerability dari sistem yang digunakan.
Denial of Service
Ini adalah tipe serangan yang menyebabkan komputer crash atau menjadi sangat sibuk memproses data, sehingga user tidak mempergunakannya. Umumnya, serangan seperti ini bisa diatasi dengan menginstall patch terakhir dari sistem yang digunakan.
Pencurian Identitas
Informasi yang disimpan dalam sebuah home computer bisa menjadi sumber informasi pribadi yang mencukupi bagi para penyusup untuk mendaftarkan kartu kredit atau identitas lainnya, dengan mengatasnamakan korban tersebut Tunneling
Saat karyawan bekerja di rumah dan mengirimkan file ke sebuah komputer di kantor, ada potensi bahwa sesorang dapat mengakses home computer tersebut dan menyusupkan file rahasia didalam sebuah dokumen yang nantinya disimpan di dalam sistem milik perusahaan.
2.4.3 Keamanan pada Database Oracle 10g
Pada oracle database 10g, keamanan pada database menggunakan strategi pendekatan pertahanan secara mendalam (defense-in-depth approach) yaitu pertahanan keamanan tidak hanya dari pihak luar tapi juga dari pihak internal organisasi.
Sistem keamanan pada oracle database 10g antara lain : 1. Authentikasi
- Password Authenticated Users, database akan memverifikasi nama user dan password dengan yang tersimpan di database.
- Externally Authenticated Users, bagi pihak luar validasi password tidak tersimpan dalam database, tetapi menunjuk ke account OP$.
Perintah yang digunakan :
CREATE USER ops$oracle IDENTIFIED EXTERNALLY; 2. Pengaturan hak akses :
- Grant Security (system privilege dan object privilege) System Privilege, memberikan hak akses kepada user
untuk mengatur dan mengelola sistem database oracle. Contoh :
sql> grant create any cluster to customer_role; sql> grant select any table to fred;
sql> grant create tablespace to dba_role;
Object Privilege, merupakan hak akses yang diberikan user untuk melakukan beberapa operasi pada beberapa objek database, seperti tabel, view, sequence atau procedure.
Contoh :
sql> grant select, insert on customer to fred, mary, joe; sql> grant insert on order_table to update_role;
sql> grant all on customer to fred;
sql> grant select on customer_view to mary;
- Role-based grant security, kumpulan dari beberapa privilege yang dikumpulkan menjadi satu. Ini merupakan salah satu cara untuk memudahkan dalam pemberian hak akses kepada user
Contoh :
sql> create role system_admin;
sql> grant select, update on customer to system_admin; sql> grant select on item_table to system_admin; sql> grant system_admin to user 1, user 2, user 3; - Grant Execute Security
Kemampuan untuk membuat hak akses dengan menciptakan suatu program tertentu melalui stored procedure dan bahasa PL/SQL
Roles adalah kumpulan dari privilege pada database untuk memudahkan manajemen dan memonitor user dan roles dapat digunakan setelah user melewati seluruh pemeriksaan keamanan.
Perintah yang digunakan :
CREATE ROLE role_name IDENTIFIED USING packagename;
3. Pengaturan akses (access control) dengan view restrictions.
Pembatasan akses bagi user dalam melihat database. View adalah logikal tabel yang berisi bukan data sebenarnya tetapi hanya menampilkan kolom sesuai dengan akses yang telah diberikan. 4. Virtual Private Database (VPD)
Virtual Private Database (VPD) atau row level security (RLS) atau biasa disebut juga fine-grained access control (FGAC) merupakan teknologi yang dapat membatasi akses terhadap baris-baris (row) data dari beberapa objek database yaitu tabel dan view secara run-time. Virtual Private Database memfasilitasi database untuk memodifikasi query berdasarkan security policy yang terdapat pada paket policy. Sebuah security policy sangat berkaitan dengan tabel atau view yang dituju. Ketika user secara langsung atau tidak memasuki tabel atau view yang berkaitan dengan VPD security policy, server secara dinamis memodifikasi SQL statement user. Modifikasi ini berdasarkan pada suatu kondisi yang diberikan oleh suatu fungsi yang mengimplementasikan security policy. Setiap
user diberikan security policy yang berbeda terhadap tabel dan view yang di-query.
Terdapat 3 penambahan komponen penting VPD oracle 10g Column-Level Privacy
Penambahan performance dengan membatasi jumlah query yang dapat ditulis ulang database. Penulisan ulang hanya dapat terjadi jika referensi statemen yang relevan terhadap kolom melalui parameter sec_relevant_cols dalam prosedur DBMS_RLS.ADD_POLICY. Fitur ini juga yang meningkatkan privacy menjadi lebih baik.
Customization
Memperkenalkan 4 tipe policy, kita dapat memodifikasi VPD menggunakan predicate yang sama dengan policy tetap atau menggunakan predicate VPD yang dapat berubah secara dinamis dengan policy tidak tetap.
Shared Policies
Kita dapat menggunakan sebuah VPD policy untuk memperbanyak objek, oleh karenanya dapat menghemat biaya.
5. Auditing
- Statement Auditing
Mencatat audit entry, setiap spesifik SQL statemen atau statemen apapun yang dilakukan oleh user dan juga setiap usaha untuk terkoneksi dengan database baik sukses atau
gagal. Ini adalah salah satu cara menemukan percobaan hacking pada database.
- Fine-Grained Auditing
Audit yang dapat dilakukan dengan detail yang sangat spesifik dari objek. Hal ini dapat membatasi audit records berdasarkan kolom yang diakses dan nilai dari kolom tersebut. Memungkinkan untuk data diaudit oleh user yang tidak memiliki latar belakang apapun dalam bidang IT. - Audit Trails
Oracle dapat mengaudit kedalam tabel tertentu apakah data dictionary atau file sistem operasi.
6. Enterprise Security dengan lightweight directory access protocol (LDAP)
Manajemen database user dan pengaturan autorisasi secara tersentralisasi.
7. Keamanan pada jaringan dengan proxy authentication.
Memudahkan level tengah (middle tier) atau aplikasi klien untuk di authentikasi lalu ke proxy hingga ke account yang lain pada database tanpa harus authentikasi ulang.
8. Database Encryption
Melindungi data penting dengan menyediakan lapisan (layer) tambahan perlindungan untuk data pada media penyimpanan.
2.5 Arsitektur Oracle
Pada oracle terdapat dua komponen penting yaitu database dan instance. - Database adalah kumpulan file (physical file) untuk menyimpan
data yang saling berelasi.
Untuk mengecek nama database menggunakan command : select VALUE from v$parameter where NAME=’db_name’
- Instance adalah proses yang mengatur jalannya database (engine), instance mengatur penggunaan memory dan background process yang digunakan untuk mengakses data dari physical database files. Value dari ORACLE_SID adalah nama dari instance juga.
Salah satu alasan dipisahkannya konsep antara database dan instance adalah database dapat digunakan secara bersama-sama (shared) oleh dua atau lebih oracle instance sebagai bagian dari konfigurasi untuk meningkatkan kinerja dari oracle server.
Gambar 2.2. Arsitektur Oracle
2.6 Struktur Database Oracle
Oracle memiliki dua buah struktur yang merupakan bagian dari arsitektur oracle, yaitu:
a. Struktur logikal, komponen yang digunakan untuk mengalokasikan space pada disk (tablespace).
b. Struktur physical, komponen yang digunakan untuk mengatur fisik dari database file.
2.6.1. Struktur Logikal
- Table space digunakan untuk menyatukan objek database menjadi satu kesatuan, umumnya untuk fasilitasi keamanan, performance atau ketersediaan objek database seperti tabel dan index.
Pada database oracle minimum memiliki dua table space yaitu SYSTEM table space dan SYSAUX table space. - Segment adalah kumpulan dari extents untuk tipe objek
tertentu seperti tabel.
- Extents adalah blok data yang saling berdekatan - Database Blocks adalah bagian terkecil dari storage
- Schemas adalah nama grup dari objek yang berasosiasi dengan user account tertentu.
Gambar 2.3. Struktur Logikal Oracle Database
[Referensi:Oracle 10g Database Foundations,2004]
2.6.2. Struktur Physical
- Datafile, digunakan untuk menyimpan data dari object database (mis : table, index, dll)
- Redo log files, digunakan untuk menyimpan semua perubahan data yang dibutuhkan pada proses recovery (memperbaiki perubahan yang belum ditulis pada datafile). - Control file, berisi informasi berupa konfigurasi, lokasi data
Gambar 2.4 Struktur Physical Oracle Database
[Referensi:Oracle 10g Database Foundations,2004]
2.7 Struktur Instance
Oracle Instance terdiri dari Memory dan Background process.
2.7.1. Memory
Oracle menggunakan shared memory untuk pengoprasian database server, yang dibagi dalam struktur memory yang disebut sebagai SGA (System Global Area/Shared Global Area) dan PGA (Program Global Area/Private Global Area).
- SGA (System Global Area/Shared Global Area)
Area berupa shared memory yang digunakan untuk untuk menyimpan data atau konfigurasi yang mengendalikan system. Bila sebuah oracle instance di-startup, maka system melakukan alokasi
memory untuk SGA dan dikelola sampai instance tersebut tidak dibutuhkan lagi.
(Dalam keadaan shutdown), SGA terdiri dari :
a. Database Buffer Cache, memori yang dialokasikan menyimpan data sementara dari databases blocks yang belum dituliskan pada database datafiles.
Database Buffer Cache memiliki 3 tipe :
- Dirty buffers, buffer yang berisi data dari database block yang akan ditulis pada disk.
- Free buffers, buffer yang kosong dan tidak ada block data didalamnya Ketika oracle membaca data dari disk(datafile) maka free buffer akan menyimpan data tersebut sehingga akan berubah menjadi dirty buffer - Pinned buffers : Block data yang ada dalam buffers
sedang mengalami proses perubahan.
b. Shared Pool, menyimpan informasi seperti data dictionary, sql structure, library. Informasi yang disimpan antara lain: - User information seperti privilege (hak/ijin akses) - Integrity constraints
- Nama table, view, tipe data
- Informasi tentang alokasi memory yang digunakan untuk schema object
c. Redo Log Buffer, berisi informasi yang mencatat semua perubahan yang terjadi pada database secara otomatis dan
cepat. Data ini di catat ke redo log secepat mungkin, karena akan digunakan untuk tujuan recovery.
d. Library cache, terdiri dari shared SQL areas, privates SQL areas, PL/SQL procedures, package dan control structures seperti locks dan library cache handles.
e. Shared SQL areas, berisi informasi untuk mengeksekusi instruksi SQL dan instruksi ini disimpan, dan bila terjadi query yang sama maka sistem mengalokasikan request tersebut ke lokasi memory yang sama.
f. Data Dictonary Cache, berisi koleksi struktur table, view, dan referensi ke database yang dapat diakses bersama. g. Large Pool adalah memori yang digunakan untuk
menyediakan alokasi memori yang besar untuk spesifik operasi database seperti backup dan restore.
h. Java Pool adalah memori yang dialokasikan untuk proses yang berbasis java.
- PGA (Program Global Area/Private Global Area)
Area pada memori yang berisi data untuk setiap proses yang terjadi pada database dan area ini tidak dipakai bersama (non-share).
Terdiri dari:
a. Stack Space, memori yg dialokasikan untuk menyimpan data dari variable dan arrays
b. Session Information, memori yg dialokasikan untuk menyimpan data tentang session yang terjadi pada database seperti user koneksi.
c. Sort Area, memori yg dialokasikan untuk menyimpan data dari proses sorting. Perintah SQL yang termasuk proses sort adalah : CREATE INDEX, DISTINCT, ORDER BY, GROUP BY, UNION, INTERSACT, dan MINUS
- SCA (Software Code Area)
Area pada memori yang dialokasikan untuk menyimpan perintah atau code yang sedang dijalankan. Memori ini biasanya digunakan oleh oracle tools dan utilities seperti: SQL*Forms, SQL*Plus, etc.
2.7.2. Proses Background
Eksekusi program komputer pada memori yang melakukan tugas tertentu.
a. PMON (Process Monitor)
- Melakukan rollback untuk transaksi yang dibatalkan. - Membersihkan proses yang berakhir tidak normal. - Mengaktifkan kembali shared_server dan dispatcher
(Proses yang mengatur penjadwalan eksekusi proses oracle) bila mengalami error.
- Membebaskan resource SGA yang dialokasikan pada process yang gagal.
b. SMON (System Monitor) berfungsi menjalankan instance recovery secara otomatis, mengatur memori segmen dan menggabungkan free area memori yang berdekatan (garbage collector)
c. LGWR (Log Writer) berfungsi menulis semua data block pada buffer ke log file pada saat:
- Terjadi proses commit. - Terjadi Checkpoin.t - Setiap 3 detik. - Log buffer penuh.
d. CKPT (Check Point) berfungsi menjaga konsistensi data dengan membuat check point, sehingga bila terjadi crash, maka kondisi database dapat di kembalikan ke kondisi pada saat check point terakhir di buat. Proses checkpoint adalah menulis semua perubahan (updating) yang terjadi antara begin transaction dan commit.
e. DBWR (Database Writer) berfungsi menulis semua data block pada buffer cache ke datafile pada saat terjadi commit.
Gambar 2.5 Background Process
[Referensi: Oracle 10g Database Foundations,2004]
2.8 Database Vault
Oracle database vault adalah sistem keamanan tambahan pada oracle database 10g yang dapat digunakan untuk :
- Membatasi akses data aplikasi dari database administrator (DBA) atau user lain yang memiliki privileges.
- Mencegah DBA memanipulasi database atau mengakses aplikasi-aplikasi yang lain.
- Menyediakan pengaturan yang lebih baik tentang siapa, kapan dan dimana suatu aplikasi bisa diakses.
- Meningkatkan proteksi dari struktur database dari perubahan-perubahan yang ilegal.
- Merupakan tool untuk implementasi sistem keamanan yang lebih dinamis dan fleksibel.
- Merupakan salah satu pengendali internal, yaitu mekanisme yang digunakan untuk bisnis yang umumnya berjalan sesuai dengan peraturan yang ada seperti US Sarbanes-Oxley (SOX), US Healthcare Insurance Portability and Accountability Act (HIPAA), Japan Privacy Law, EU Privacy Directive, and the US California Senate Bill 1386.
- Built-in reports, tersedianya laporan yang berhubungan dengan sistem keamanan termasuk intervensi pada realm.
2.8.1 Komponen Database Vault
- Oracle Database Vault Access Control Components
Membuat komponen-komponen untuk mengatur keamanan database instance
- Oracle Database Vault Administrator (DVA)
Aplikasi java yang dibangun diatas Oracle Database Vault PL/SQL aplikasi (APIs), aplikasi ini dibuat sebagai tampak muka pengaturan dan konfigurasi hak akses bagi manajer keamanan yang tidak bisa PL/ SQL.
- Oracle Database Vault Configuration Assistant (DVCA) Pemeliharaan dari Oracle Database Vault
- Oracle Database Vault DVSYS and DVF Schemas
DVSYS adalah schema untuk penyimpanan database objek yang diperlukan untuk memproses oracle data, schema ini berisi roles, views, accounts, fungsi, dll.
DVF adalah schema yang berisi fungsi publik untuk mencari (pada saat proses berjalan) factor values pada Oracle Database Vault access control configuration
- Oracle Database Vault PL/SQL Interfaces and Packages Ketersediaan antar muka koleksi PL/SQL dan paket yang member ijin pada security manager atau aplikasi developer untuk mengkonfigurasi kebijaksanaan pemberian hak akses - Oracle Database Vault and Oracle Label Security PL/SQL
APIs
Pengaturan akses yang dapat terintegrasi dengan Oracle Lable Security
- Oracle Database Vault Reporting and Monitoring Tools Pembuatan laporan dari berbagai aktivitas yang telah dimonitor, memonitor perubahan kebijakan, percobaan perusakan atau pembobolan, konfigurasi database dan perubahan struktur.
Komponen Oracle Database Vault Access Control - Database Vault Factor
Factor adalah nama variabel atau attribute, seperti lokasi user, alamat IP database atau session user. Faktor dapat digunakan untuk aktivitas seperti autorisasi account untuk koneksi ke database, membuat filter logikal untuk membatasi visibility dan manageability data, selain itu faktor-faktor yang telah terintegrasi yang dapat digunakan sebagai kombinasi
dengan rules untuk mengatur akses ke database, aplikasi realm dan perintah-perintah di database dan merupakan blok bangunan dasar dari mandatory access control.
Berikut adalah daftar faktor yang terdapat pada database vault.
Tabel 2.4 Database Vault Factor
Authentication Method Language Enterprise Identity Identification Type Session User Network Protocol Proxy Enterprise Identity Database IP Database Instance
Database Domain Domain Machine
Database Hostname Database Name Client IP
- Database Vault Rule Sets
Mesin rule untuk sistem keamanan database, yang di awasi melalui Data Vault MAC Admininistrator GUI atau PL/SQL APIs, dapat di audit dan memberikan respon.
Kumpulan dari rule (single conditions) untuk mengontrol: 1. Faktor penugasan.
2. Autorisasi realm.
3. Kemampuan untuk menjalankan perintah-perintah database. 4. Kemampuan sebagai secure application role.
- Database Vault Command Rules
Command rules adalah rule yang dibuat untuk memproteksi pernyataan SELECT, ALTER SYSTEM, DDL, DML yang mempengaruhi database objek.
Kategori command rules:
- Memiliki system-wide scope : hanya dapat membuat satu command rule untuk tiap database instance
Contoh: command rule untuk ALTER SYSTEM dan CONNECT
- Memiliki schema tertentu, contoh: command rule untuk DROP TABLE
- Memiliki object tertentu, contoh: command rule untuk DROP TABLE dengan tabel tertentu.
Rules dan factor dapat berasosiasi dengan banyak perintah di database. Rules memiliki internal control yang lebih kuat dan dapat di buat sesuai dengan kebijaksanaan operasional. Sebagai contoh , sebuah rule dapat didefinisikan sebagai limit eksekusi dari perintah alter sistem untuk alamat IP dan hostname tertentu.
Berikut adalah contoh perintah database dimana rules dapat berasosiasi melalui database vault administrative interface.
Tabel 2.5 Database Vault Command Rules
Alter Database Alter View Noaudit
Alter Function Audit Alter Tablespace Alter Package Body Alter Procedure Alter Profile Alter Session Alter System Alter Synonym Alter Table Alter Trigger Alter User Password Change Password Truncate Table
Rename Connect Comment
Create Function Create Index Create Package Create Database Link Create Procedure Create Role Create Package Body Create User Create View
Create Table Grant Drop User
Create Profile Revoke Drop Profile Create Tablespace Create Trigger Connect
Update Insert Delete
- Perintah Otorisasi (Command Authorizations)
Pembatasan dari penggunaan perintah DDL (create user, alter user), objek tertentu atau seluruhnya, berdasar pada kondisi rule set akan dievaluasi setelah data vault realms, dapat diimplementasikan pada prosedur bisnis.
- Realm adalah kumpulan dari schema dan roles yang telah diproteksi, layer tambahan dari manajemen hak akses dalam database, wadah yang merupakan zona proteksi . Database vault administrator dapat membuat realm dan mendefinisikan isi didalamnya. Realm dapat berupa database objek seperti sebuah tabel, banyak tabel atau sebuah aplikasi atau banyak aplikasi. Berikut adalah gambaran umum realms
Gambar 2.6 Realms
[Referensi: Oracle Database Vault Administrator Guide, 2008] Keuntungan realms :
1. Membatasi DBA sistem dari query dan manipulasi data bisnis yang sensitive.
2. Implementasi aplikasi DBA dan konsep sub-databases 3. Blok untuk konsolidasi yang aman.