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 )