Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Keamanan Database Oracle By: Arif Basofii Topik • • • • 11-2 Menerapkan keutamaan tentang hak akses Mengatur user yang ada Menerapkan fungsi keamanan standard password Mengaudit aktivitas database Kebutuhan Keamanan Industri Industri Keamanan Oracle menerapkan sistem: • Legal: (dukungan lembaga luar) – – – – • 11-3 Sarbanes-Oxley Act (SOX) : Senator Paul Sarbanes (Maryland) yg memprakarsai undang2 dlm hal audit sistem keamanan pd korporasi besar. Health Information Portability and Accountability Act (HIPAA) California Breach Law UK Data Protection Act Auditing Menerapkan auditing dengan membedakan antara user biasa dan admin. (mana yg berhak/mana yg tidak) Pemisahan Tanggung-Jawab • User dengan privilege DBA harus benar-benar terpercaya – – • • • • 11-4 Tidak boleh adanya penyalahgunaan kepercayaan Adanya audit trails untuk mengecek hasil auditnya Tanggung jawab DBA harus di share (tidak terpusat pd 1 orang, tp beberapa DBA) Accounts tidak pernah di share. DBA dan system administrator harus orang yang berbeda. Memisahkan antara tanggung jawab operator dan DBA. Keamanan Database • • Sistem yang aman pasti akan memastikan kerahasiaan data didalamnya. Ada 3 hal aspek keamanan yang dibahas, yaitu: 1) Membatasi akses ke data dan servis 2) Otentikasi users 3) Monitoring aktivitas yang mencurigakan 11-5 (1) Membatasi akses ke data dan servis: Menerapkan Prinsip dari Privilege yang Paling Minim • Untuk membatasi akses ke data dan servis, dengan penerapan prinsip • dari pemberian privilege yang paling minim. Artinya: setiap orang jangan diberikan privilege yg berlebihan, tapi secukupnya atau sesuai kebutuhan/kepentingannya. Prinsip-prinsip: • Install software yang dibutuhkan saja • Aktifkan servis-servis yg dibutuhkan saja • Berikan akses database dan OS pada orang-orang yg berhak • Batasi akses ke account root (di Linux) atau administrator (di Windows) • Batasi akses untuk penggunaan account SYSDBA dan SYSOPER • Batasi akses user ke database objek tertentu yg berhubungan dgn pekerjaanya, jd jangan biarkan user dpt mengakses pada seluruh objek. 11-6 (1) Membatasi akses ke data dan servis: Menggunakan Prinsip dari Privilege yang Paling Minim • Melindungi data dictionary dengan memastikan parameter inisialisasi berikut di set FALSE : O7_DICTIONARY_ACCESSIBILITY=FALSE – – – • • • Bentuk data dictionary bisa: table &view Yg bisa lihat table data dictonary: SYS (krn SYS yg punya) Bagaimana jika sys memberikan hak agar dpt di men-select org lain? (Misal. diberikan privilege : select any table) Maka, perlu di-proteksi melalui parameter diatas. Konfigurasi ini mencegah user dengan ANY TABLE system privilege mengakses tabel dasar dari data dictionary. Nilai FALSE konfigurasi juga mencegah user SYS dari logging selain SYSDBA. Nilai default dari parameter ini adalah FALSE. Jika nilai parameter ini di set TRUE, maka harus ada alasan yang benar-benar sesuai. 11-7 (1) Membatasi akses ke data dan servis: Menggunakan Prinsip dari Privilege yang Paling Minim... Menolak Hak Akses dari Luar yang Tidak Diperlukan • Mencabut privileges yg tidak diperlukan dari PUBLIC: REVOKE EXECUTE ON UTL_SMTP, UTL_TCP, UTL_HTTP, UTL_FILE FROM PUBLIC; • Membatasi akses direktori oleh users. – 11-8 Jika memiliki objek direktori, jangan sembarang memberikan grant read/write. (1) Membatasi akses ke data dan servis: Menggunakan Prinsip dari Privilege yang Paling Minim... • • Membatasi user dgn privilege administrative (admin). Membatasi remote database authentication: – – – Otentifikasi ada 3: password, external, global Yang harus dipikir: external Agar user tidak bisa login by external, maka parameter diset (False? or True?). pernah keluar di ujian sertifikasi REMOTE_OS_AUTHENT=FALSE If TRUE, Berarti tanpa password, Mengapa? Karena diwakili saat login di OS. 11-9 (2) Otentikasi Users Memonitor Aktivitas yang Mencurigakan • Otentikasi user jka menggunakan global bagus jika menggunakan • external spt set parameter diatas, tp jika pakai password maka akan berhubungan pd profile. Untuk Monitoring atau Auditing aktivitas yang mencurigakan dengan menggunakan: – Mandatory Auditing – Audit paling ringan / jarang digunakan – Standard Database Auditing – Audit yg dilakukan pada level database – Value-Based Auditing – Menggunakan trigger PL/SQL – Fine-Grained Auditing (FGA) – Menggunakan package – DBA Auditing – Bagaimana kita mengaudit DBA, terutama sysdba dan sysoper, yg bisa bekerja saat sistemnya/instancenya shutdown. 11-10 Standard Database Auditing (kadang disebut juga Standar Auditing) 11-11 Standard Database Auditing (kadang disebut juga Standar Auditing)… • Untuk mengaktifkan standar database auditing, sudah disediakan oleh sistem Oracle, tinggal diaktifkan saja. Untuk mengeset: 1 • Cara mengaktifkan cuman 1, yaitu dengan men-set parameter: audit_trail. • Di versi 1, audit trail ada 3 demand: none, OS, DB • Di versi 2, audit trail ada tambahan: XML, dsb. • Audit_trail saat diaktifkan bukan non (disable) lagi, tp sudah aktif. Hanya dia disimpan dimana? : OS, DB atau XML, dll. • Apa itu audit_trail? – – 11-12 Yaitu tempat penyimpanan hasil audit. Penyimpanannya dimana? (di OS-kah, didalam db sendiri-kah?, atau di file XML) itulah tujuannya udit_trail. Standard Database Auditing (kadang disebut juga Standar Auditing)… 2 • • • Kedua, setelah audit nyala, apa yang harus dilakukan, apa yang harus diaudit? Maka harus di set audit optionnya, lalu akan melacak dalam server process. (ingat! saat user terkoneksi, user dibuatkan server process) Jadi, saat ada user yg melakukan aktivitas mencurigakan, maka langsung di audit, dan hasilnya pasti disimpan dalam audit_trail. Hanya disimpan dimana? (OS, XML, DB) Tabel aslinya (punya SYS): AUD$ 3 • 4 • Di dalam Data Dictionary : DBA_AUDIT_TRAIL – Jadi, siapa saja yg menghapus data didalam AUD$, akan selalu diaudit. Sehingga jika dihapus, namanya akan selalu muncul . Sehingga nanti DBA tinggal melihat hasil informasi auditnya. Dan terakhir maintenance audit trail. 11-13 Enabling Auditing ALTER SYSTEM SET audit_trail=“XML” SCOPE=SPFILE; • Untuk meng-enable masuk user: sys, pass: oracle, koneksi: sysdba • Pilih di Initialization Parameters – set di tab parameter file (SPFile) • Cari audit_trail dan set nilainya. (kebanyakan di set DB, krn lebih cepat, • sedang di level OS jk SYSDB atau SYSOPER) Restart database setelah modifikasi static initialization parameter. 11-14 Uniform Audit Trails Gunakan AUDIT_TRAIL untuk meng-enable database auditing: • • • • • • • Dari jenis-jenis audit sebelumnya: Mandatory, Standard database,Value-based, Fine-grained (FGA) & DBA. Yang bisa disimpan pd standar auditing adalah hak-hak (privilege), jd user yg tdk punya hak akan diaudit. Sedang FGA, yg paling kompleks: dpt menyimpan entry id, nomor instance, bahkan text perintah SQL-nya. Pada standar auditing bisa menyimpan yg sama spt FGA, maka bisa gunakan AUDIT_TRAIL=DB,EXTENDED, tp tetap tdk se-kompleks FGA. Lalu untuk melihat audit trail-nya melalui DBA_AUDIT_TRAIL (table asli: aud$). Sedang yg FGA, dilihat melalui DBA_FGA_AUDIT_TRAIL. Bisa juga melihat pada DBA_COMMON_AUDIT_TRAIL. 11-15 Enterprise Manager Audit Page • • Setelah meng-enable (mengaktifkan) auditing melalui parameter Selanjutnya audit option dibuat (apa yg harus diaudit) Yg di audit per-statement, misal audit utk statement delete or alter, dsb. Yg di audit hak-hak Yg di audit pd object2 aud$ 11-16 Specifying Audit Options Di audit selama 1 session, sampai logout diaudit lagi • SQL statement auditing: AUDIT table; • System-privilege auditing (nonfocused and focused): AUDIT select any table, create any trigger; AUDIT select any table BY hr BY SESSION; • Object-privilege auditing (nonfocused and focused): AUDIT ALL on hr.employees; AUDIT UPDATE,DELETE on hr.employees BY ACCESS; ALL: insert, update, delete, alter, dll 11-17 Siapapun & kapanpun Tiap saat mengakses selalu diaudit Using and Maintaining Audit Information Disable audit options if you are not using them. 11-18 Value-Based Auditing • • • • Menggunakan trigger. Kelebihan dari trigger, bisa mendapatkan data sebelum berubah dan data sesudah berubah. Sehingga dapat mengambil data lama dan data yg baru, ingat dlm trigger tedapat qualifier :old (sbg data lama/originalnya) & :new (sbg data updatenya) Kemudian data ini disimpan dlm audit_trail, hanya bukan db audit_trail lg tapi dibuat sendiri tabelnya, dan data yg dimasukkan tergantung programmernya. 11-19 Fine-Grained Auditing (FGA) • • • • • • Digunakan utk memonitor akses data (DML) Mencakup audits: SELECT,INSERT,UPDATE,DELETE, dan MERGE. Bisa untuk audit table, view, atau per-masing-masing kolom Bisa menjalankan procedure Untuk menjalankannya menggunakan package DBMS_FGA Disini menggunakan policy sbg nama auditnya. 11-20 FGA Policy • Defines: – – • Audit criteria Audit action Is created with DBMS_FGA.ADD_POLICY a b • • • • Handler_schema & handler_module: menyatakan lokasi dari procedure. Procedurenya adalah LOG_EMPS_SALARY yg terletak dlm skema SECURE. Point b pasti di-audit krn memenuhi, bagaimana dgn point a di-audit atau tidak? Mengapa? Bagaimana dgn query dibawah, mana yg diaudit…? • SELECT name, salary FROM employees WHERE department_id = 20; • SELECT * FROM employees; 11-21 Audited DML Statement: Considerations • • • 11-22 Record2 baris akan di-audit jika FGA sesuai dgn kondisi dan kolom. Statement DELETE diaudit tidak berdasarkan kolom. Statement MERGE diaudit menurut statemen INSERT atau UPDATE yg di-generate FGA Guidelines • • • • • • 11-23 Untuk meng-audit semua statemen, gunakan kondisi null. Nama Policy harus unik. Tabel atau view yg diaudit table harus tersedia ketika create policy. If the audit condition syntax is invalid, an ORA-28112 error is raised when the audited object is accessed. If the audited column does not exist in the table, no rows are audited. If the event handler does not exist, no error is returned and the audit record is still created. DBA Auditing Users with the SYSDBA or SYSOPER privileges can connect when the database is closed. • Audit trail must be stored outside the database (minimal XML atau OS) • Connections as SYSDBA or SYSOPER are always audited. • You can enable additional auditing of SYSDBA or SYSOPER actions with audit_sys_operations (set menjadi TRUE dlm parameter tsb). • You can control the audit trail with audit_file_dest (sebagai hasil audit yg disimpan dlm OS) 11-24 Maintaining the Audit Trail The audit trail should be maintained. Follow these best practice guidelines: • Review and store old records. • Prevent storage problems. • Avoid loss of records. 11-25 Security Updates • • 11-26 Oracle posts security alerts on the Oracle Technology Network Web site at: http://www.oracle.com/technology/deploy/security/alert s.htm Oracle database administrators and developers can also subscribe to be notified about critical security alerts via e-mail by clicking the “Subscribe to Security Alerts Here” link. Applying Security Patches • • • 11-27 Use the Critical Patch Update process. Apply all security patches and workarounds. Contact the Oracle security products team. Summary In this lesson, you should have learned how to: • Describe your DBA responsibilities for security • Apply the principle of least privilege • Enable standard database auditing • Specify audit options • Review audit information • Maintain the audit trail 11-28 Latihan 1 Tugas : • Mencegah penggunaan password yang sederhana • Kemampuan account untuk mengunci dalam waktu 10 menit ketika terjadi kesalahan login • Membebaskan aplikasi login server dari perubahan password • Kegagalan audit untuk koneksi ke database 11-29 Latihan 2 Tugas : • Audit SELECT pada kolom SALARY pada tabel EMPLOYEES • Audit perubahan pada kolom SALARY dari tabel EMPLOYEES: – – – – 11-30 Nilai lama Nilai baru User yang membuat perubahan Lokasi mana yang telah diubah dari yang dibuat