Download Keamanan Database Oracle

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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