TUGAS BASIS DATA PROTEKSI DATA Oleh : Hafizh Fitrianna ( 06022009 ) PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS AHMAD DAHLAN YOGYAKARTA 2009 Mengelola Keamanan Data ¾ Tujuan keamanan database : melindungi data dari ancaman yang disengaja atau tidak disengaja tehadap akses dan integritas ¾ Ancaman bertambah karena adanya akses melalui Internet atau teknologi bergerak Sistem Basis Data ( DBMS / Database Management System ) DBMS merupakan perantara antara user dengan basis data yang tersimpan dalam disk. Cara berkomunikasi keduanya diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu disebut Bahasa Basis Data. Contoh; SQL, dBase, QUEL. Data Definition Language (DDL) Data Manipulation Language (DML) – Prosedural – Non Prosedural •DBMS (Database Management System):kumpulan program yang digunakan user untuk me-management database (create, maintain) •DBMS mencakup proses: Defining: database mendefiniskan tipe data, struktur dan batasan (constraint) dari data yang disimpan dalam database. Manipulating: database mencakup berbagai fungsi dan query untuk mendapatkan data yang dicari, termasuk operasi insert, update dan delete serta dalam generate report data. Sharing: database dapat diatur untuk dapat sharing multiple user dan program untuk mengakses database secara bersama-sama. Fungsi yang lebih penting dari DBMS adalah proteksi dan maintain database dalam jangka panjang. Proteksi: mengandung system protectionyang menangani kondisi malfunction (crash) baik pada hardware ataupun software, juga mengandung security protectionyang menangani pengaksesan oleh user terlarang. Maintain: mengandung sistem maintaining yang selalu meningkatkan kebutuhan perubahan tiap waktu. Jadi,Sistem Database: database dan sistem manajemen database-nya (DBMS) Controlling Redundancy Redundancy: duplikasi data, penyimpanan data secara berulang. Redudancy salah satu syarat larangan dalam database relasional, karena akan menimbulkan inconsistensi data. Dengan controlling redundancy, selain akan meningkatkan performance query juga menjaga konsistensi data. Restricting Unauthorized Access Memberikan pengaturan hak akses / batasan akses user database Providing Persistent Storage for Program Objects Menyediakan ruang penyimpanan khusus untuk obyek-obyek program (ex. Object-Oriented Database system yang menyimpan obyek-obyek pemrograman berbasis obyek). Providing Storage Structures for Efficient Query Processing Menyediakan struktur penyimpanan yang bagus untuk efisiensi proses query. •Providing Backup and Recovery •Providing Multiple User Interface •Representing Complex Relationship among Data •Enforcing Integrity Constraints •Permitting Inferencing and Actions using Rules Ancaman terhadap keamanan data ¾ Kehilangan yang tidak disengaja z Bisa diakibatkan oleh • Kesalahan manusia • Kesalahan sotware • Kegagalan hardware ¾ Penyusupan z Pengaksesan dilakukan oleh orang yang tidak berhak z Bisa mengubah atau tidak mengubah data ¾ Kehilangan Privasi atau Kerahasiaan z Kehilangan privasi berarti kehilangan proteksi yang dirasakan oleh seseorang z Kehilangan kerahasiaan berarti kebocoran data yang bersifat penting bagi perusahaan ¾ Kehilangan Integritas Data z Bila integritas dilanggar, data menjadi tidak valid atau bahkan rusak z Bisa menimbulkan kesalahan dalam pengambilan keputusan ¾ Kehilangan Ketersediaan z Bisa disebabkan sabotase pada H/W, jaringan, dan aplikasi z Penetrasi virus yang dimaksud merusak data ¾ Mencakup z Prosedur dan kebijakan administratif z Proteksi fisik z Proteksi perangkat lunak manajemen data Prinsip Dasar Sekuriti z Sistem sebaiknya bersifat publik z Nilai default tidak boleh diakses z Pengecekan otoritas z Memberikan setiap proses kemamapuan akses sesedikit mungkin z Mekanisme proteksi sederhana, uniform dan buil in ke lapis terbawah z Skema pengamanan harus dapat diterima secara psikologis Aspek Dari Security • Confidentiality • Integrity • Availability • Ketiga di atas sering disingkat menjadi CIA • Ada tambahkan lain – Non-repudiation – Authentication – Access Control – Accountability Confidentiality / Privacy • • Kerahasiaan data. Data hanya boleh diakses oleh orang yang berwenang – Data-data pribadi – Data-data bisnis; daftar gaji, data nasabah – Sangat sensitif dalam e-commerce dan healthcare Serangan : penyadapan (teknis dengan sniffer / logger, man in the middle attack; non-teknis dengan social engineering) • Proteksi: enkripsi Integrity • Informasi tidak boleh berubah (tampered, altered, modified) oleh pihak yang tidak berhak • • Serangan – Pengubahan data oleh orang yang tidak berhak, spoofing – Virus yang mengubah berkas Proteksi: – Message Authentication Code (MAC), digital signature / certificate, hash functions, logging Availability • Informasi harus tersedia ketika dibutuhkan • Serangan – Meniadakan layanan (Denial of Service / DoS attack) atau menghambat layanan (server dibuat lambat) • Proteksi – Backup, redundancy, DRC, BCP, firewall Non-repudiation • Tidak dapat menyangkal (telah melakukan transaksi) – Menggunakan digital signature – Logging Authentication • Meyakinkan keaslian data, sumber data, orang yang mengakses data, server yang digunakan • – what you have (identity card) – what you know (password, PIN) – what you are (biometric identity) Serangan: identitas palsu, terminal palsu, situs gadungan Access Control • Mekanisme untuk mengatur siapa boleh melakukan apa – Membutuhkan adanya klasifikasi data: public, private, confidential, (top) secret – Role-based access Accountability • Dapat dipertanggung-jawabkan • Melalui mekanisme logging dan audit • Adanya kebijakan dan prosedur (policy & procedures) Teori Jenis Serangan Intruder (1/ 5) Kategori Umum 1. Iseng-iseng, biasanya pada yang bisa diakses semua user 2. Snooping, seseorang masuk ke dalam sistem jaringan dan berusaha menebus pengamanan 3. Berusaha mencari keuntungan dengan motivasi uang 4. Spionase/militer Intruder (2/ 5) z Interupsi z Sumberdaya sistem komputer dihancurkan atau menjadi tak tersedia z Penghancuran harddisk z Pemotongan kabel komunikasi z Sistem file management menjadi tidak tersedia Intruder (3/ 5) z Intersepsi z Pihak tak diotorisasi dapat mengakses sumberdaya z Ancaman terhadap kerahasiaan data z Penyadapan terhadap data di jaringan z Mengkopi file tanpa diotorisasi Intruder (4/ 5) z Modification z Mengubah nilai-nilai file data z Mengubah program sehingga bertindak secara beda z Memodifikasi pesan-pesan yang ditransmisikan pada jaringan Intruder (5/ 5) z Fabrication z Pihak tak diotorisasi menyisipkan objek palsu ke sistem z Memasukkan pesan-pesan palsu ke jaringan z Penambahan record ke file Topologi Lubang Keamanan Aspek Keamanan Sistem z Kerahasiaan (Secrecy) z Integritas (Integrity) z Ketersediaan (Availability) Proteksi S/W Manajemen Data ¾ View atau subskema ¾ Domain, cek, dan kontrol integritas yang lain ¾ Aturan otorisasi ¾ User-defined procedure ¾ Prosedur enkripsi ¾ Skema otentikasi ¾ Backup, journaling, dan checkpointing (memfasilitasi prosedur recovery) Aturan Otorisasi ¾ Aturan otorisasi : kontrol yang melekat dalam sistem manajemen data yang membatasi akses thd data dan tindakan-tindakan yang dapat dilakukan oleh orang. Contoh, orang yang berhak mengakes data bisa membaca seluruh database tetapi tidak bisa mengubah data Contoh Aturan Otorisasi Subjek Objek Tindakan Kekangan Bagian Data Pelanggan Menambah Limit kredit <= 5.000.000 Pemasaran Bagian Data Pemesanan Menghapus Tak ada Data Pemesanan Membaca Tak ada Akuntansi Bagian Pemenuhan Mengubah Pesanan Menghapus Implementasi Aturan Otorisasi ¾ Perintah SQL GRANT dipakai untuk menentukan otorisasi akses data ¾ Perintah SQL REVOKE dipakai untuk mencabut otorisasi Contoh Skenario Hak Akses pemakai arif novi adit Hak akses bebas: semua tabel dalam database pegawai Hak akses SELECT: semua tabel dalam database pegawai Hak akses SELECT dan INSERT: khusus tabel bagian dalam database pegawai • terra • • Hak akses SELECT: tabel infoprib dan bagian dalam database pegawai Hak akses SELECT: tabel pekerjaan dalam database pegawai khusus kolom nip dan kode_bag Hak akses INSERT: tabel pekerjaan dalam database pegawai khusus kolom nip dan kode_bag Contoh Skenario Hak Akses ¾ Contoh menciptakan user: CREATE USER arif IDENTIFIED BY '007arif'; ¾ Contoh memberikan hak akses ke arif: GRANT ALL ON pegawai.* TO arif; Hak Akses pada MySQL Hak akses Keterangan SELECT Hak akses ini memungkinkan pemakai melakukan operasi SELECT. Beberapa sistem menggunakan hak akses READ yang identik dengan hak akses SELECT. INSERT Hak akses ini memungkinkan pemakai melakukan operasi INSERT UPDATE Hak akses ini memungkinkan pemakai melakukan operasi UPDATE DELETE Hak akses ini memungkinkan pemakai melakukan operasi DELETE INDEX Hak akses ini memungkinkan pemakai menciptakan indeks dan menghapus indeks DROP Hak akses ini memungkinkan pemakai menghapus tabel EXECUTE Hak akses yang menjalankan ’stored memungkinkan pemakai procedure’ (prosedur tersimpan) FILE Hak akses yang memungkinkan pemakai menjalankan SELECT ... INTO OUTFILE and LOAD DATA INFILE ALTER Hak akses yang memungkinkan pemakai melaksanakan pernyataan ALTER TABLE untuk mengubah tabel LOCK TABLES Hak akses yang memungkinkan pemakai mengunci tabel ALL Memberikan seluruh hak akses kecuali GRANT OPTION GRANT OPTION Memungkinkan hak akses bisa diwariskan Hak Akses ¾ Memberikan hak akses SELECT saja: GRANT SELECT ON pegawai.* TO novi; Membatasi Hak Akses pada Kolom Tertentu GRANT SELECT ON pegawai.infoprib TO terra; GRANT SELECT ON pegawai.bagian TO terra; GRANT SELECT (nip, kode_bag), UPDATE (nip, kode_bag) ON pegawai.pekerjaan TO terra; Enkripsi ¾ Enkripsi: Suatu pengodean atau pengacakan data dengan tujuan orang tidak bisa membacanya ¾ Implementasi enkripsi: z Satu kunci (Contoh DES-Data Encryption Standard) z Dua kunci (Contoh SSL –Secure Socket Layer) Skema Otentikasi ¾ Skema otentikasi digunakan untuk menentukan seseorang apakah orang yang berhak atau tidak untuk mengakses sistem ¾ Perwujudan yang biasa dilakukan: z Melalui identifikasi yang diketahui oleh dirinya sendiri berupa password atau PIN z Menggunakan alat seperti smartcard z Menggunakan sesuatu yang bersifat unik, seperti sidik jari Autentikasi Pemakai z Suatu yang diketahui pemakai : z passsword z kombinasi kunci z nama kecil ibu, dsb z Sesuatu yang dimiliki pemakai : z badge z kartu identitas z kunci, dsb z Sesuatu mengenai (merupakan ciri) pemakai : z sidik jari z sidik suara z foto z tanda tangan, dsb Contoh Autentikasi (1/ 3) z Password LOGIN : ken LOGIN : carol PASSWORD : FooBar INVALID LOGIN NAME SUCCESSFUL LOGIN LOGIN : (a) (b) LOGIN : carol PASSWORD : Idunno INVALID LOGIN LOGIN : (c) (a) Login berhasil (b) Login ditolak setelah nama dimasukkan (c) Login ditolak setelah nama dan password dimasukkan Contoh Autentikasi (2/3 ) z Menggunakan Objek Fisik Magnetic cards z magnetic stripe cards z chip cards: stored value cards, smart cards Contoh Autentikasi (3/ 3) z Menggunakan Biometric Backup dan Recovery ¾ Database backup: adalah mekanisme untuk melakukan penyalinan database ke suatu media eksternal ¾ Database recovery: Mekanisme untuk memulihkan database dengan cepat dan akurat setelah mengalami kerusakan Fasilitas Recovery Dasar ¾ Fasilitas backup, menyediakan mekanisme untuk menyalin keseluruhan/sebagian database ¾ Fasilitas penjurnalan, menjaga audit trail thd transaksi dan perubahan database ¾ Fasilitas checkpoint, menunda semua pemrosesan dan melakukan sinkronisasi terhadap file-file dan jurnal untuk membentuk titik pemulihan ¾ Manajer recovery, memungkinkan pengembalian database ke kondisi yang benar dab memulai pemrosesan transaksi Fasilitas Penjurnalan ¾ Menyediakan audit trail terhadap transaksi dan perubahan database ¾ Pada saat kegagalan pada sistem terjadi, keadaan database yang konsisten dapat dikembalikan lagi dengan menggunakan informasi jurnal dan data backup ¾ Catatan transaksi (transaction log) berisi: z Identitas transaksi z Data transaksi z Tipe transaksi (misalnya: Insert) z Waktu transaksi z Identitas terminal atau pemakai z Nilai data yang dimasukkan z Tabel dan record yang diakses z Record-record yang terubah z Nilai lama dan nilai baru ¾ Catatan perubahan database (database change log) berisi: z Salinan record sebelum dan sesudah transaksi ¾ Before-image: salinan sebuah record sebelum dimodifikasi ¾ After-image: salinan sebuah record sesudah dimodifikasi Prosedur Recovery dan Restart ¾ Disk mirroring (RAID 1) ¾ Restore/Rerun z Suatu teknik untuk memproses kembali transaksi harian sampai titik kegagalan berdasarkan salinan backup database z Pertama-tama, database dihentikan z Kemudian, backup terbaru dihubungkan ke database dan seluruh transaksi setelah penyalinan dijalankan kembali ¾ Menjaga integritas transaksi z Menggunakan model transaksi z Transaksi diawali dengan START TRANSACTION dan diakhiri dengan COMMIT/ROLLBACK Restore/Rerun Keuntungan ¾ Sederhana ¾ Tidak perlu menciptakan jurnal perubahan ¾ Tidak perlu prosedur restart Kelemahan ¾ Waktu untuk memproses transaksi mungkin lama ¾ Transaksi baru perlu ditunda ¾ Ada kemungkinan hasil transaksi menjadi berbeda dengan aslinya Disaster Recovery ¾ Setiap organisasi harus memiliki mekanisme disaster recovery ¾ Untuk mengantisipasi kehancuran pada pusat data ¾ Bisa diakibatkan bencana alam atau manusia (perang, sabotase) ¾ DBA mempunyai peran dalam membuat rencana recovery Mengontrol Akses Bersama ¾ DBMS memiliki kontrol konkurensi ¾ Kontrol konkurensi : proses pengelolaan terhadap akses yang dilakukan oleh sejumlah orang dengan tujuan agar integritas data dapat terjaga dengan baik ¾ Penanganan yg biasa dilakukan: Locking ¾ Penguncian bisa pada level database, tabel, atau record ¾ Jenis locking: z Shared lock z Exclusive lock ¾ Problem penguncian: deadlock ¾ Deadlock: Keadaan yang membuat dua buah transaki saling menunggu karena masing-masing mengunci data yang diperlukan transaksi pasangannya Menangani Deadlock ¾ Ada dua cara: z Deadlock prevention • Program harus mengunci semua record yang diperlukan di awal transaksi • Jika record telah terkunci, pemakai lain haru menunggu sampai penguncian dilepaskan z Deadlock resolution • Menyerahkan sepenuhnya penanganan deadlock kepada DBMS Mengelola Kualitas Data ¾ Data berkualitas tinggi: z Akurat z Konsisten z Tersedia pada waktu yang tepat ¾ Fakta yang menunjukkan bahwa menjaga data yang berkualitas tinggi itu sulit: z 2% record dalam data pelanggan kedaluarsa dalam satu bulan karena halhal seperti: • Pelanggan meninggal • Pelanggan berpindah lokasi • Pelangan bercerai dsb Problem Kualitas Data ¾ Sumber data eksternal z Data yang berasal dari pihak luar mungkin tidak akurat, alah, atau tidak lengkap ¾ Penyimpanan data yang redundan z Data tersebar dalam berbagai bentuk (spreadsheet, database, dokumen) dan ada kemungkinan tidak konsisten dan tidak kompatibel ¾ Kekurangan Komitmen Organisasi z Pemakai internal tidak patuh terhadap aturan-aturan yang telah ditetapkan dan organisasi membiarkannya Usaha untuk Menjaga Kualitas Data ¾ Membentuk komite yang menjamin bahwa kualitas data terjaga dengan baik ¾ Menerapkan prinsip TQM untuk selalu meningkatkan kualitas data ¾ Mengatasi hambatan-hambatan dalam organisasi Mengatur Kinerja Database ¾ Ada 5 hal yang perlu diperhatikan agar kinerja database terjaga dengan baik: 1. Pemasangan DBMS 2. Pemakaian memori 3. Penggunaan I/O 4. Penggunaan CPU 5. Tuning aplikasi Pemasangan DBMS ¾ Instalasi DBMS harus benar-benar sesuai dengan lingkungan ¾ Biasanya tertera dalam file README ¾ Penggunaan nilai default untuk parameter tertentu seringkali membuat kinerja yang tidak optimal ¾ Sebelum melakukan instalasi DBMS, DBA harus memastikan ketersediaan ruang hard disk Pemakaian Memori ¾ Supaya efisien, penggunaan memori oleh DBMS perlu juga diperhatikan ¾ Sebagai contoh, sistem Oracle menggunakan memori untuk menaruh data dictionary. ¾ Bila memori tidak cukup, sistem akan sering membaca struktur tabel dari disk. Hal ini mempengaruhi kinerja sistem Penggunaan I/O ¾ Aplikasi database berpengaruh besar terhadap I/O ¾ Walapun kecepatan CPU tinggi, I/O tidak bersifat proporsional ¾ Suatu objek yang sering diakses secara bersamaan dapat dibagi ke dalam beberapa disk Penggunaan CPU ¾ Hampir semua operasi database memerlukan aktivitas CPU ¾ Penggunaan CPU perlu dimonitor ketika melakukan tuning database ¾ Pemakaian lebih dari CPU merupakan alternatif untuk memperbaiki kinerja sistem ¾ Pemantauan perlu dilakukan pada saat beban puncak ataupun saat beban rendah Tuning Aplikasi ¾ Selain penyetelan DBMS, aplikasi pun perlu diatur ¾ Memperhatikan dan memodifikasi SQL dalam aplikasi kadang perlu dilakukan ¾ Perubahan SQL dalam aplikasi acapkali dapat meningkatkan kinerja sistem ¾ Kadangkala penyelesaian dari masalah ini adalah dengan menggunakan denormalisasi ¾ Kadangkala DBA perlu melakukan tindakaan seperti reindexing, mengubah ukuran blok data, mengalokasikan file-file pada peranti penyimpan. ¾ DBA juga mempunyai peran dalam mengarahkan pemrogram dengan memberikan teknik yang paling efektif dalam berinteraksi dengan database DAFTAR PUSTAKA 1. Basis Data, Kartika Firdausy, Universitas Ahmad Dahlan 2. Tim Teaching Grant Mata Kuliah Sistem Operasi ( google.com ) 3. Ramakrishnan ( google.com ) 4. Umi Salamah ( google.com ) 5. “Pengantar Database”, faried Irmansyah, IlmuKomputer.com 6. Budi Rahardjo, http://budi.insan.co.id 7. Abdul Kadir ( google.com )