Ancaman keamanan dan mitigasinya

From OnnoWiki
Jump to navigation Jump to search

Berikut adalah lanjutan **Modul 8: Keamanan Basis Data**, dengan fokus pada **Ancaman Keamanan** dan **strategi mitigasinya**, disertai **contoh nyata di MySQL Ubuntu 24.04**.

---

    1. 🛡️ **Modul 8 (Lanjutan): Keamanan Basis Data**
      1. 🧨 Topik: Ancaman Keamanan dan Mitigasinya

---

      1. 🎯 **Tujuan Pembelajaran**

Setelah mempelajari modul ini, mahasiswa mampu: - Mengidentifikasi berbagai ancaman keamanan terhadap sistem basis data. - Menerapkan langkah mitigasi di MySQL Ubuntu 24.04. - Menyusun strategi pencegahan dan pemulihan terhadap serangan.

---

    1. ⚠️ **8.12 Jenis Ancaman Keamanan Basis Data**

| Ancaman | Deskripsi | |----------------------------------|---------------------------------------------------------------------------| | **1. SQL Injection** | Penyusupan perintah SQL melalui input pengguna. | | **2. Akses tidak sah** | Pengguna yang tidak memiliki izin mengakses atau mengubah data. | | **3. Eksposur data sensitif** | Data penting (password, email, IPK) terbuka ke publik. | | **4. Malware / backdoor** | Penyisipan skrip atau layanan tersembunyi untuk mencuri atau merusak. | | **5. Kehilangan data (data loss)**| Karena human error, kerusakan sistem, atau serangan. | | **6. Serangan DoS pada MySQL** | Membanjiri server dengan koneksi atau query berat. |

---

    1. 🛡️ **8.13 Strategi Mitigasi di MySQL Ubuntu 24.04**

---

      1. 💥 1. **SQL Injection**
    • Mitigasi:**

- Gunakan **prepared statement** dalam aplikasi. - Batasi hak akses user MySQL hanya untuk operasi yang diperlukan. - Validasi input di sisi aplikasi.

    • Contoh buruk:**

```sql SELECT * FROM mahasiswa WHERE nama = '$input_user'; ```

    • Contoh mitigasi dengan hak akses:**

```sql GRANT SELECT ON universitas.mahasiswa TO 'webuser'@'localhost'; ```

---

      1. 🔐 2. **Akses Tidak Sah**
    • Mitigasi:**

- Gunakan `GRANT`/`REVOKE` untuk mengatur hak akses secara spesifik. - Gunakan autentikasi yang kuat dan log akses.

    • Contoh:**

```sql CREATE USER 'limited_user'@'localhost' IDENTIFIED BY 'securePass123!'; GRANT SELECT ON universitas.mahasiswa TO 'limited_user'@'localhost'; ```

---

      1. 🧾 3. **Eksposur Data Sensitif**
    • Mitigasi:**

- Jangan tampilkan data sensitif langsung ke front-end. - Enkripsi data penting (misalnya password) sebelum disimpan.

    • Contoh Hash Password (di aplikasi, bukan SQL):**

```php $password_hash = password_hash($password_input, PASSWORD_BCRYPT); ```

---

      1. 🐛 4. **Backdoor dan Malware**
    • Mitigasi:**

- Periksa file konfigurasi, query tak wajar, atau user asing. - Nonaktifkan fitur **LOAD DATA LOCAL INFILE** jika tidak diperlukan.

    • Contoh disable di MySQL:**

```bash sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ```

Tambahkan: ```ini [mysqld] local-infile=0 ```

---

      1. 🧯 5. **Kehilangan Data**
    • Mitigasi:**

- Backup rutin menggunakan `mysqldump`. - Simpan salinan backup di lokasi aman.

    • Contoh backup:**

```bash mysqldump -u root -p universitas > backup_universitas.sql ```

---

      1. 🌊 6. **Serangan DoS (Denial of Service)**
    • Mitigasi:**

- Batasi jumlah koneksi simultan: ```sql SET GLOBAL max_connections = 100; ``` - Gunakan **firewall** dan batasi IP tertentu jika diperlukan. - Monitor query lambat (`slow_query_log`).

---

    1. 🛠️ **8.14 Praktik Audit dan Logging**

Aktifkan log MySQL untuk melacak aktivitas mencurigakan:

```ini [mysqld] general_log = 1 general_log_file = /var/log/mysql/mysql.log ```

Lalu restart MySQL:

```bash sudo systemctl restart mysql ```

---

    1. 📌 **8.15 Kesimpulan**

| Ancaman | Mitigasi | |----------------------|---------------------------------------------------------------------------| | SQL Injection | Validasi input, prepared statement, batasi hak akses | | Akses tidak sah | Autentikasi kuat, `GRANT`/`REVOKE`, audit log | | Eksposur data | Enkripsi data penting, minimalisasi akses dan tampilan | | Malware / backdoor | Matikan `LOAD DATA`, audit konfigurasi dan file | | Kehilangan data | Backup berkala, recovery plan | | Serangan DoS | Batas koneksi, firewall, monitoring query lambat |

---

Kalau kamu mau lanjut ke **Modul 9: Backup, Recovery, dan Replikasi**, atau mau saya bantu buat skrip audit dan deteksi user mencurigakan, tinggal bilang saja!