ISYS6698
Introduction to Data and Information Management
Week ke - 5
LO1 : Mahasiswa diharapkan mampu menjelaskan database sebagai inti dari sistem
informasi untuk bisnis atau organisasi
OUTLINE MATERI :
1. Threats
2. Countermeasures
3. Granting
4. DBMS and Web Security
5. Classification Failures
6. Recovery Concept
7. Shadow Paging
A. Threats
Threat dapat disebabkan oleh situasi atau peristiwa yang melibatkan
seseorang, tindakan, atau keadaan yang mungkin dapat membahayakan organisasi.
Kerugian tersebut mungkin berwujud, seperti hilangnya perangkat keras, perangkat
lunak, atau data, atau tidak berwujud, seperti hilangnya kredibilitas atau kepercayaan
klien. Masalah yang dihadapi organisasi mana pun adalah mengidentifikasi semua
kemungkinan ancaman. Oleh karena itu, minimal, sebuah organisasi harus
menginvestasikan waktu dan upaya dalam mengidentifikasi ancaman yang paling
serius.
Setiap threat harus dilihat sebagai potensi pelanggaran keamanan yang, jika
berhasil, akan memiliki dampak tertentu. Tabel 5.1 menyajikan contoh berbagai jenis
threat, yang terdaftar di bawah area di mana ancaman tersebut mungkin berdampak.
Misalnya, “melihat dan mengungkapkan data yang tidak sah” sebagai threat dapat
mengakibatkan pencurian dan penipuan, hilangnya kerahasiaan, dan hilangnya privasi
bagi organisasi.
Tabel 5.1. Contoh threat
Threat Pencurian Kehilangan Kehilangan Kehilangan Kehilangan
dan kerahasiaan privasi integritas availibility
penipuan
Menggunakan
sarana akses Y Y Y
orang lain
Amandemen
atau penyalinan
Y Y
data yang tidak
sah
Perubahan
Y Y Y
program
Kebijakan dan
prosedur yang
tidak memadai
yang
Y Y Y
memungkinkan
campuran
output rahasia
dan normal
Penyadapan Y Y Y
Entri ilegal oleh
Y Y Y
peretas
Pemerasan Y Y Y
Gambar 5.1. Ringkasan potensi threat terhadap sistem komputer. Connoly (2015)
B. Countermeasures
Jenis penanggulangan ancaman pada sistem komputer berkisar dari kontrol
fisik hingga prosedur administratif. Terlepas dari berbagai kontrol berbasis komputer
yang tersedia, perlu dicatat bahwa secara umum, keamanan DBMS hanya sebaik
sistem operasi, karena keterkaitannya yang erat. Representasi dari lingkungan
komputer multi-pengguna yang khas ditunjukkan pada Gambar 5.2.
Di bagian ini kami berfokus pada kontrol keamanan berbasis komputer berikut untuk
lingkungan multi-pengguna (beberapa di antaranya mungkin tidak tersedia di
lingkungan PC):
1. Authorization
Authorization adalah pemberian hak atau privilege yang memungkinkan subjek
memiliki akses yang sah ke sistem atau objek sistem. Kontrol otorisasi dapat
dibangun ke dalam perangkat lunak dan mengatur tidak hanya sistem atau objek
apa yang dapat diakses oleh pengguna tertentu, tetapi juga apa yang dapat
dilakukan pengguna dengannya. Proses otorisasi melibatkan otentikasi subjek
(otentifikasi/authentification = Mekanisme yang menentukan apakah pengguna
adalah siapa yang dia klaim) yang meminta akses ke objek, di mana "subjek"
mewakili pengguna atau program dan "objek" mewakili tabel database, tampilan,
prosedur, pemicu, atau objek lain apa pun yang dapat dibuat dalam sistem.
2. Access Controls
Cara khas untuk menyediakan kontrol akses untuk sistem database didasarkan
pada pemberian dan pencabutan privilege. Privilege memungkinkan pengguna
untuk membuat atau mengakses (yaitu membaca, menulis, atau memodifikasi)
beberapa objek database (seperti relasi, tampilan, atau indeks) atau untuk
menjalankan utilitas DBMS tertentu. Privilege diberikan kepada pengguna untuk
menyelesaikan tugas yang diperlukan untuk pekerjaan mereka. Sebagai
pemberian berlebihan yang tidak perlu, privilege dapat membahayakan
keamanan: privilege harus diberikan kepada pengguna hanya jika pengguna
3. Views
Mekanisme view menyediakan mekanisme keamanan yang kuat dan fleksibel
dengan menyembunyikan bagian database dari pengguna tertentu. Pengguna
tidak mengetahui keberadaan atribut atau baris apa pun yang hilang dari view.
View dapat didefinisikan pada beberapa relasi dengan pengguna yang diberikan
hak istimewa yang sesuai untuk menggunakannya, tetapi tidak untuk
5. Integrity
Integrity constraint juga berkontribusi untuk memelihara sistem basis data yang
aman dengan mencegah data menjadi tidak valid, dan karenanya memberikan
hasil yang menyesatkan atau salah.
6. Encryption
Jika sistem basis data menyimpan data yang sangat sensitif, mungkin dianggap
perlu untuk menyandikannya sebagai tindakan pencegahan terhadap
kemungkinan ancaman eksternal atau upaya untuk mengaksesnya. Beberapa
DBMS menyediakan fasilitas enkripsi untuk tujuan ini. DBMS dapat mengakses
data (setelah decoding), meskipun ada penurunan kinerja karena waktu yang
dibutuhkan untuk decode itu. Enkripsi juga melindungi data yang dikirimkan
melalui jalur komunikasi. Ada sejumlah teknik untuk mengkodekan data untuk
menyembunyikan informasi; beberapa disebut "ireversibel" dan yang lain
"reversibel." Teknik ireversibel, seperti namanya, tidak mengizinkan data asli
diketahui. Namun, data tersebut dapat digunakan untuk memperoleh informasi
statistik yang valid. Teknik reversibel lebih umum digunakan. Untuk
Salah satu teknik, yang disebut enkripsi simetris, menggunakan kunci yang sama
untuk enkripsi dan dekripsi dan bergantung pada jalur komunikasi yang aman
untuk bertukar kunci contoh Data Encription Standard (DES).
Jenis kriptosistem lain menggunakan kunci yang berbeda untuk enkripsi dan
dekripsi, dan disebut sebagai enkripsi asimetris, contoh public key
cryptosystems, RSA.
C. Granting
Seorang pengguna dapat memberikan hak aksesnya (otorisasi) kepada
pengguna lain hanya ketika DBA memberikan granting right kepada pengguna
tersebut. Seorang pengguna memiliki otorisasi jika ada jalur dari root (DBA) ke node,
yang mewakili pengguna.
Pertimbangkan contoh otorisasi penghapusan.
Gambar 5.4. Hapus otorisasi untuk pengguna 5 setelah DBA mencabut delete authority dari
pengguna 1. Satinder (2017)
2. Firewalls
Saran keamanan standar adalah untuk memastikan bahwa server Web tidak
terhubung ke jaringan internal dan secara teratur dicadangkan untuk memulihkan
dari serangan yang tak terelakkan. Ketika server Web harus terhubung ke teknologi
firewall jaringan internal dapat membantu untuk mencegah akses yang tidak sah,
asalkan telah dipasang dan dipelihara dengan benar.
Firewall adalah sistem yang dirancang untuk mencegah akses tidak sah ke atau dari
jaringan pribadi. Firewall dapat diimplementasikan baik sebagai perangkat keras
dan perangkat lunak atau kombinasi keduanya. Mereka sering digunakan untuk
mencegah pengguna Internet yang tidak sah mengakses jaringan pribadi yang
terhubung ke Internet, terutama intranet. Ada beberapa jenis teknik firewall:
a. Packet filter, yang melihat setiap paket yang memasuki atau meninggalkan
jaringan dan menerima atau menolaknya berdasarkan aturan yang ditentukan
pengguna. Pemfilteran paket adalah mekanisme yang cukup efektif dan
transparan bagi pengguna, tetapi bisa sulit dikonfigurasi
b. Application gateway, yang menerapkan mekanisme keamanan untuk aplikasi
tertentu, seperti server FTP dan Telnet. Ini adalah mekanisme yang sangat
efektif, tetapi dapat menurunkan kinerja.
c. Circuit-level gateway, yang menerapkan mekanisme keamanan ketika koneksi
TCP atau UDP (User Datagram Protocol) dibuat. Setelah koneksi dibuat, paket
dapat mengalir di antara host tanpa pemeriksaan lebih lanjut.
d. Proxy server, yang memotong semua pesan yang masuk dan keluar dari
jaringan. Server proxy yang berlaku menyembunyikan alamat jaringan yang
sebenarnya.
Dalam praktiknya, banyak firewall menyediakan lebih dari satu teknik ini.
Meskipun Microsoft dan Visa International adalah peserta utama dalam spesifikasi
SET, mereka saat ini menyediakan protokol Secure Transaction Technology
(STT), yang telah dirancang untuk menangani pembayaran bank yang aman
melalui Internet. STT menggunakan enkripsi informasi DES, enkripsi RSA
informasi kartu kredit, dan otentikasi yang kuat dari semua pihak yang terlibat
dalam transaksi.
8. Java Security
Keselamatan dan keamanan merupakan bagian integral dari desain Java, dengan
"sandbox" memastikan bahwa aplikasi yang tidak dipercaya dan mungkin
berbahaya tidak dapat memperoleh akses ke sumber daya sistem. Untuk
menerapkan “sand box” ini, tiga komponen digunakan:
E. Classification Failures
Kegagalan mengacu pada keadaan ketika sistem tidak dapat lagi melanjutkan
eksekusi normalnya dan yang mengakibatkan hilangnya informasi. Berbagai jenis
kegagalan adalah sebagai berikut:
1. Sistem crash: Kegagalan ini terjadi karena bug dalam perangkat lunak atau
kegagalan perangkat keras dll.
F. Recovery Concept
Pemulihan dari keadaan gagal mengacu pada metode di mana sistem
mengembalikan keadaan konsisten terbaru tepat sebelum waktu kegagalan. Ada
beberapa metode yang dengannya Anda dapat memulihkan database dari keadaan
gagal. Ini didefinisikan sebagai berikut:
Pemulihan Berbasis Log/Log Based Recovery
Dalam sistem pemulihan berbasis log, log dipertahankan, di mana semua modifikasi
database disimpan. Sebuah log terdiri dari catatan log. Untuk setiap aktivitas database,
catatan log terpisah dibuat. Catatan log dipelihara secara serial di mana aktivitas yang
berbeda terjadi. Ada berbagai catatan log. Typical update log record harus berisi
bidang berikut:
1. Pengidentifikasi transaksi/ Transaction identifier: Nomor unik yang diberikan
untuk setiap transaksi.
2. Pengidentifikasi item data/Data-item identifier: Nomor unik yang diberikan pada
item data yang ditulis.
3. Tanggal dan waktu pembaruan.
4. Nilai lama/old value: Nilai item data sebelum ditulis/write.
5. Nilai baru/new value: Nilai item data setelah ditulis/write.
Log harus ditulis pada penyimpanan non-volatile (stabil). Dalam pemulihan berbasis
log, dua operasi berikut untuk recovery/pemulihan diperlukan:
1. Redo: Artinya, pekerjaan transaksi yang berhasil diselesaikan sebelum crash harus
dilakukan lagi.
2. Undo: Artinya, semua pekerjaan yang dilakukan oleh transaksi yang tidak selesai
karena crash harus dibatalkan.
Operasi redo dan undo harus idempoten. Operasi idempoten adalah operasi yang
memberikan hasil yang sama, ketika dijalankan satu kali atau lebih.
Untuk setiap transaksi Ti, berbagai catatan log adalah:
[Ti start] : Ini merekam ke log ketika Ti memulai eksekusi.
[Ti, Aj ] : Ini merekam ke log ketika Ti membaca item data Aj.
[Ti, Aj, V1, V2] : Ini mencatat ke log ketika Ti memperbarui item data Aj, di mana
V1 mengacu pada nilai lama dan V2 mengacu pada nilai baru Aj.
[Ti Commit] : Ini mencatat ke log ketika Ti berhasil melakukan.
[Ti aborts] : Ini mencatat ke log jika Ti dibatalkan.
Misalkan, nilai awal Akun A, B dan C berturut-turut adalah `500, `1.000 dan `600,
Berbagai catatan log untuk T1 dan T2 seperti yang ditunjukkan pada Gambar 5.9.
Gambar 5.9. Log record untuk transaksi T1 dan T2. Satinder (2017)
Gambar 5.10. Log transaksi T1 dan T2 jika terjadi crash. Satinder (2017)
Crash akan terjadi setiap saat pada pelaksanaan transaksi. Misalkan kecelakaan
terjadi :
a. Setelah write (A) dari T1: Pada saat itu log record di log ditunjukkan pada
Gambar 5.10(a). Tidak perlu mengulang operasi karena tidak ada record
commit yang muncul di log. Record log T1 dapat dihapus/di delete.
b. Setelah menulis (C) dari T2 : Pada saat itu catatan log di log ditunjukkan pada
Gambar 5.10(b). Dalam situasi ini, Anda harus mengulang T1 karena [T1 start]
dan [T1 commit] muncul di log. Setelah operasi redo, nilai A dan B berturut-
turut adalah 300 dan 1200. Nilai tetap sama karena redo adalah idempoten.
c. Selama recovery: Jika sistem crash pada saat recovery, cukup mulai recovery
lagi.
2. Recovery Based on Immediate Database Modification
Dalam teknik modifikasi database langsung, database dimodifikasi oleh setiap
transaksi T1 selama status aktifnya. Artinya, basis data sebenarnya dimodifikasi
setelah operasi write tetapi setelah catatan log ditulis ke penyimpanan yang stabil.
Ini karena catatan log digunakan selama recovery. Gunakan operasi Undo dan Redo
dalam metode ini. Field old value juga diperlukan (untuk operasi Undo). Perhatikan
kembali transaksi perbankan pada Gambar 5.8. Catatan log yang sesuai setelah
berhasil menyelesaikan T1 dan T2 ditunjukkan pada Gambar 5.11.
Crash akan terjadi setiap saat pelaksanaan transaksi. Misalkan crash terjadi.
a. Setelah write (A) dari T1 : Pada saat itu catatan log di log ditunjukkan pada
Gambar 5.12(a). Di sini hanya ada [T1 start] jadi undo transaksi T1. Akibatnya,
Akun A mengembalikan nilai lamanya 500.
b. Setelah write (C) dari T2 : Pada saat itu log record di log ditunjukkan pada
Gambar 5.12(b). Selama record back-up [T2 start] muncul tetapi tidak ada [T2
commit], maka batalkan transaksi T2 . Akibatnya, Akun C mengembalikan
nilai lama 600. Ketika Anda menemukan record [T1 start] dan [ T1 commit] di
log, redo transaksi T1 dan akun A dan B keduanya mempertahankan nilai
barunya.
c. Selama recovery: Jika sistem crash pada saat recovery, cukup mulai recovery
lagi.
Checkpoint
Kedua teknik yang dibahas sebelumnya memastikan pemulihan dari failure state,
tetapi mereka memiliki beberapa kelemahan seperti:
1. Mereka memakan waktu karena transaksi yang berhasil diselesaikan harus
diulang.
2. Prosedur pencarian juga memakan waktu karena seluruh log harus dicari.
Jadi, gunakan checkpoint untuk mengurangi overhead. Salah satu teknik
pemulihan sebelumnya dapat digunakan dengan checkpoint. Semua transaksi
berhasil diselesaikan atau memiliki record [Ti commit] sebelum record
[checkpoint] tidak perlu dilakukan ulang.
Selama waktu kegagalan, cari checkpoint terbaru. Semua transaksi berhasil
diselesaikan setelah checkpoint perlu dilakukan ulang. Setelah mencari
checkpoint, cari transaksi terbaru Ti yang memulai eksekusi sebelum checkpoint
G. Shadow Paging
1. Threat dapat disebabkan oleh situasi atau peristiwa yang melibatkan seseorang,
tindakan, atau keadaan yang mungkin dapat membahayakan organisasi.