Difference between revisions of "Aspek keamanan: kerahasiaan, integritas, ketersediaan"
Onnowpurbo (talk | contribs)  (Created page with "Berikut adalah **Modul 8: Keamanan Basis Data**, dengan fokus pada tiga aspek utama yaitu **kerahasiaan (confidentiality)**, **integritas (integrity)**, dan **ketersediaan (av...")  | 
				Onnowpurbo (talk | contribs)   | 
				||
| Line 1: | Line 1: | ||
| − | + | ==Tujuan Pembelajaran==  | |
| + | Setelah mempelajari modul ini, mahasiswa diharapkan mampu:  | ||
| + | * Menjelaskan aspek utama keamanan basis data (CIA: Confidentiality, Integrity, Availability).  | ||
| + | * Menerapkan konfigurasi dan praktik keamanan pada MySQL.  | ||
| + | * Memahami pengelolaan hak akses, enkripsi, dan backup data untuk menjaga keamanan basis data.  | ||
| − | |||
| − | |||
| − | + | ==Tiga Pilar Keamanan Basis Data (CIA)==  | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | ---  | + | {| class="wikitable"  | 
| + | ! Aspek          !! Definisi  | ||
| + | |-  | ||
| + | | '''Kerahasiaan''' || Menjaga agar data hanya dapat diakses oleh pihak yang berwenang.  | ||
| + | |-  | ||
| + | | '''Integritas'''  || Menjamin bahwa data akurat, konsisten, dan tidak dimodifikasi tanpa izin.  | ||
| + | |-  | ||
| + | | '''Ketersediaan'''|| Menjamin data dan layanan database tersedia saat dibutuhkan.  | ||
| + | |}  | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | ==Kerahasiaan (Confidentiality)==  | |
| − | + | '''Tujuan:'''  | |
| − | |||
Melindungi data dari akses tidak sah.  | Melindungi data dari akses tidak sah.  | ||
| − | + | '''Contoh di MySQL:'''  | |
| − | |||
| − | + | 1. '''Membuat pengguna dan memberi hak akses minimum'''  | |
| − | |||
| − | |||
| − | -- Hanya izinkan SELECT pada tabel mahasiswa  | + |  -* Buat user baru  | 
| − | GRANT SELECT ON universitas.mahasiswa TO 'editor'@'localhost';  | + |  CREATE USER 'editor'@'localhost' IDENTIFIED BY 'password123';  | 
| − | + | ||
| + |  -* Hanya izinkan SELECT pada tabel mahasiswa  | ||
| + |  GRANT SELECT ON universitas.mahasiswa TO 'editor'@'localhost';  | ||
| − | + | 2. '''Menghapus hak akses'''  | |
| − | + |  REVOKE SELECT ON universitas.mahasiswa FROM 'editor'@'localhost';  | |
| − | REVOKE SELECT ON universitas.mahasiswa FROM 'editor'@'localhost';  | ||
| − | |||
| − | + | 3. '''Mengaktifkan autentikasi enkripsi SSL (opsional)'''  | |
Aktifkan SSL di file config:  | Aktifkan SSL di file config:  | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | ---  | + |  [mysqld]  | 
| + |  ssl-ca=/etc/mysql/certs/ca.pem  | ||
| + |  ssl-cert=/etc/mysql/certs/server-cert.pem  | ||
| + |  ssl-key=/etc/mysql/certs/server-key.pem  | ||
| + | |||
| + | |||
| + | ==Integritas (Integrity)==  | ||
| − | + | '''Tujuan:'''  | |
| − | |||
Melindungi data agar tidak diubah/dihapus secara tidak sah atau tidak sengaja.  | Melindungi data agar tidak diubah/dihapus secara tidak sah atau tidak sengaja.  | ||
| − | + | '''Contoh di MySQL:'''  | |
| − | + | 1. '''Gunakan constraint seperti PRIMARY KEY, FOREIGN KEY, dan CHECK'''  | |
| − | + |  CREATE TABLE mahasiswa (  | |
| − | CREATE TABLE mahasiswa (  | + |      nim VARCHAR(10) PRIMARY KEY,  | 
| − | + |      nama VARCHAR(100) NOT NULL,  | |
| − | + |      ipk DECIMAL(3,2) CHECK (ipk BETWEEN 0.00 AND 4.00)  | |
| − | + |  );  | |
| − | );  | ||
| − | |||
| − | + | 2. '''Gunakan TRIGGER untuk validasi otomatis'''  | |
| − | + |  DELIMITER //  | |
| − | DELIMITER //  | + |  CREATE TRIGGER before_insert_mahasiswa  | 
| − | CREATE TRIGGER before_insert_mahasiswa  | + |  BEFORE INSERT ON mahasiswa  | 
| − | BEFORE INSERT ON mahasiswa  | + |  FOR EACH ROW  | 
| − | FOR EACH ROW  | + |  BEGIN  | 
| − | BEGIN  | + |      IF NEW.ipk > 4.00 THEN  | 
| − | + |          SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'IPK tidak valid';  | |
| − | + |      END IF;  | |
| − | + |  END;  | |
| − | END;  | + |  //  | 
| − | //  | + |  DELIMITER ;  | 
| − | DELIMITER ;  | ||
| − | |||
| − | + | ==Ketersediaan (Availability)==  | |
| − | + | '''Tujuan:'''  | |
| − | |||
Memastikan database tetap bisa diakses saat dibutuhkan, meski ada gangguan.  | Memastikan database tetap bisa diakses saat dibutuhkan, meski ada gangguan.  | ||
| − | + | '''Strategi:'''  | |
| − | + | 1. '''Backup Berkala'''  | |
| − | + |  mysqldump -u root -p universitas > backup_universitas.sql  | |
| − | mysqldump -u root -p universitas > backup_universitas.sql  | ||
| − | |||
| − | |||
| − | + | 2. '''Restore Data'''  | |
| − | |||
| − | |||
| − | + |  mysql -u root -p universitas < backup_universitas.sql  | |
| + | |||
| + | 3. '''Monitoring dan Restart Otomatis'''  | ||
Gunakan `systemd` agar MySQL selalu otomatis restart jika gagal:  | Gunakan `systemd` agar MySQL selalu otomatis restart jika gagal:  | ||
| − | + |  sudo systemctl enable mysql  | |
| − | sudo systemctl enable mysql  | + |  sudo systemctl start mysql  | 
| − | sudo systemctl start mysql  | ||
| − | |||
| − | + | 4. '''Monitoring Kesehatan Server'''  | |
Install dan jalankan MySQLTuner:  | Install dan jalankan MySQLTuner:  | ||
| − | + |  sudo apt install mysqltuner  | |
| − | sudo apt install mysqltuner  | + |  sudo mysqltuner  | 
| − | sudo mysqltuner  | + | |
| − | + | ==Kesimpulan==  | |
| − | ---  | + | {| class="wikitable"  | 
| + | ! Aspek          !! Implementasi MySQL Ubuntu 24.04  | ||
| + | |-  | ||
| + | | '''Kerahasiaan''' || Buat user terbatas, grant/revoke, gunakan SSL  | ||
| + | |-  | ||
| + | | '''Integritas'''  || Gunakan constraint, trigger, validasi data  | ||
| + | |-  | ||
| + | | '''Ketersediaan'''|| Backup, monitoring, pemulihan otomatis, konfigurasi systemd  | ||
| + | |}  | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | ==Pranala Menarik==  | |
| − | + | * [[Database: Kuliah]]  | |
Latest revision as of 07:00, 21 April 2025
Tujuan Pembelajaran
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:
- Menjelaskan aspek utama keamanan basis data (CIA: Confidentiality, Integrity, Availability).
 - Menerapkan konfigurasi dan praktik keamanan pada MySQL.
 - Memahami pengelolaan hak akses, enkripsi, dan backup data untuk menjaga keamanan basis data.
 
Tiga Pilar Keamanan Basis Data (CIA)
| Aspek | Definisi | 
|---|---|
| Kerahasiaan | Menjaga agar data hanya dapat diakses oleh pihak yang berwenang. | 
| Integritas | Menjamin bahwa data akurat, konsisten, dan tidak dimodifikasi tanpa izin. | 
| Ketersediaan | Menjamin data dan layanan database tersedia saat dibutuhkan. | 
Kerahasiaan (Confidentiality)
Tujuan:
Melindungi data dari akses tidak sah.
Contoh di MySQL:
1. Membuat pengguna dan memberi hak akses minimum
-* Buat user baru CREATE USER 'editor'@'localhost' IDENTIFIED BY 'password123'; -* Hanya izinkan SELECT pada tabel mahasiswa GRANT SELECT ON universitas.mahasiswa TO 'editor'@'localhost';
2. Menghapus hak akses
REVOKE SELECT ON universitas.mahasiswa FROM 'editor'@'localhost';
3. Mengaktifkan autentikasi enkripsi SSL (opsional)
Aktifkan SSL di file config:
[mysqld] ssl-ca=/etc/mysql/certs/ca.pem ssl-cert=/etc/mysql/certs/server-cert.pem ssl-key=/etc/mysql/certs/server-key.pem
Integritas (Integrity)
Tujuan:
Melindungi data agar tidak diubah/dihapus secara tidak sah atau tidak sengaja.
Contoh di MySQL:
1. Gunakan constraint seperti PRIMARY KEY, FOREIGN KEY, dan CHECK
CREATE TABLE mahasiswa (
    nim VARCHAR(10) PRIMARY KEY,
    nama VARCHAR(100) NOT NULL,
    ipk DECIMAL(3,2) CHECK (ipk BETWEEN 0.00 AND 4.00)
);
2. Gunakan TRIGGER untuk validasi otomatis
DELIMITER //
CREATE TRIGGER before_insert_mahasiswa
BEFORE INSERT ON mahasiswa
FOR EACH ROW
BEGIN
    IF NEW.ipk > 4.00 THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'IPK tidak valid';
    END IF;
END;
//
DELIMITER ;
Ketersediaan (Availability)
Tujuan:
Memastikan database tetap bisa diakses saat dibutuhkan, meski ada gangguan.
Strategi:
1. Backup Berkala
mysqldump -u root -p universitas > backup_universitas.sql
2. Restore Data
mysql -u root -p universitas < backup_universitas.sql
3. Monitoring dan Restart Otomatis
Gunakan `systemd` agar MySQL selalu otomatis restart jika gagal:
sudo systemctl enable mysql sudo systemctl start mysql
4. Monitoring Kesehatan Server
Install dan jalankan MySQLTuner:
sudo apt install mysqltuner sudo mysqltuner
Kesimpulan
| Aspek | Implementasi MySQL Ubuntu 24.04 | 
|---|---|
| Kerahasiaan | Buat user terbatas, grant/revoke, gunakan SSL | 
| Integritas | Gunakan constraint, trigger, validasi data | 
| Ketersediaan | Backup, monitoring, pemulihan otomatis, konfigurasi systemd |