Audit Trail & Mengaktifkan Audit Plugin di Mariadb
Audit Trail
Istilah ini mungkin tidak terdengar asing buat teman-teman yang sudah pernah melakukan sertifikasi seperti ISO, PCI DSS terutama bagi teman-teman yang bekerja di bidang teknologi terutama yang berhubungan dengan transaksi. Tapi apa sih audit trail itu sendiri?
Audit Trail / jejak audit, dilihat dari definisi, ada 2 sudut pandang cara melihatnya:
1. Dalam bidang akunting, audit trail adalah sebuah sistem yang melacak secara detail transaksi yang berelasi dengan semua jenis catatan di dalam data akunting.
2. Dalam bidang komputer, audit trail adalah sebuah catatan dari perubahan-perubahan yang terjadi atau pernah dibuat ke dalam basis data (database) atau ke sebuah file.
Lalu kenapa kita perlu sekali sih si audit audit ini? Sesuai dengan pembuka, biasanya audit trail ini adalah salah satu keharusan yang diwajibkan ketika kita mengikuti audit TI, ataupun standar dari sertifikasi keamanan di dunia teknologi, contoh umumnya PCI-DSS. Peng-auditan adalah sebuah perintah yang berguna untuk memantau environment database.
Pada pembahasan kali ini, saya akan membahas bagaimana mengaktifkan dan menggunakan audit trail pada database sehingga kita bisa tahu apa saja yang terjadi di dalam database ketika sebuah data di masukan atau pun di ubah, baik di sengaja maupun tidak disengaja. Contoh lainnya, bayang kalau banyak pengguna yang mengakses ke database dan melakukan berbagai macam query sekaligus, kalau tidak dicatat, kita tidak akan tahu siapa melakukan request query apa. Salah satu cara melacak request tersebut adalah dengan mengaktifkan log audit mariaDB. Selain itu, informasi dari audit ini bisa membantu untuk pengecekan performa atau masalah dari aplikasi database, dan kita bisa melihat secara detail query SQL apa yang sedang berjalan.
“The purpose of the MariaDB Audit Plugin is to log the server’s activity. Records about who connected to the server, what queries ran and what tables were touched can be stored to the rotating log file or sent to the local syslogd.” – MariaDB.
Plugin mariaDB sendiri bisa dipakai di mariaDB, MySQL dan Server Percona.
Yuk kita mulai saja cara mengaktifkan audit log MariaDB ini:
1. Saya menganggap bahwa teman-teman sudah mempunyai database server, dan memakai OS Ubuntu dan database mariaDB karena pembahasan kita memakai mariaDB. Versi mariaDB yang dipakai: 10.4.13-MariaDB-1:10.4.13+maria~bionic
2. Setelah server mariaDB terinstall, masuk ke dalam mysql dengan user root, dan ketikkan command sql: SHOW GLOBAL VARIABLES LIKE 'plugin_dir'; - sehingga akan keluar perintah seperti di gambar berikut:
** Kalau hasil command kosong atau tidak ada file plugin di dalam direktori plugin tersebut, teman-teman bisa mengunduh file plugin nya dan meletakkan di direktori plugin diatas secara manual. Cuma, harap pastikan kalau server MariaDB bisa membaca file tersebut dengan memberikan akses 755 ke file dan alihkan hak kepemilikan file di linux untuk pengguna root.
3. Dari hasil command tersebut, kita mendapatkan bahwa direktori plugin mysql ada di /usr/lib/mysql/plugin. Masuk ke direktori tersebut dan cek apakah kita mempunyai file bernama server_audit.so? Seharusnya file tersebut sudah menjadi file bawaan dari MariaDB versi terbaru, tapi kalau teman-teman menggunakan versi yang lama, atau MySQL Server / Percona Server, dan file itu tidak ada, maka teman-teman harus meng-install sendiri plugin server_audit tersebut.
4. Selanjutnya teman-teman bisa mengecek, apakah plugin server_audit sudah aktif dengan cara melakukan query command:
SHOW plugins; command ini untuk menampilkan semua plugin yang ada dan status aktif plugin tersebut. untuk mencari yang kita butuhkan, teman-teman bisa melakukan query secara spesifik seperti berikut: SELECT * FROM information_schema.plugins WHERE plugin_name=’server_audit’; Kalau hasil query tersebut menampilkan empty set, berarti plugin server_audit belum ada dan belum aktif, jadi kita harus memasang terlebih dahulu pluginnya dengan perintah command: INSTALL PLUGIN server_audit SONAME 'server_audit';
Jangan lupa untuk mengecek kembali apakah plugin sudah aktif dengan command diatas. Kalau plugin berhasil dipasang, akan muncul seperti gambar berikut
pakai command select * from ....;
pakai command show plugin;
5. Ok, plugin ok, dan sudah aktif. Tapi kita belum selesai loh. Secara bawaan, fitur logging audit ini statusnya adalah tidak aktif atau off, jadi harus kita aktifkan dulu fitur nya. MariaDB sendiri punya beberapa variable lain yang bisa diatur sedemikian rupa untuk audit ini, teman-teman bisa query : show global variables like "server_audit%"; dan hasilnya seperti gambar dibawah: 6. Dari gambar diatas, kita bisa melihat bahwa status fitur server_audit_logging isinya adalah OFF, yaitu tidak menyala. Jadi harus kita aktifkan. untuk mengaktifkan / nonaktif plugin ini, teman-teman bisa menggunakan command: SET GLOBAL server_audit_logging=OFF/ON; atau langsung di file config mysql nya (di /etc/my.cnf.d/server.cnf untuk OS CentOS). Hasil log audit ini akan di simpan di sebuah file log, biasanya log audit nya ada di /var/lib/mysql/server_audit.lo.
* Berikut variable-variable server audit yang penting beserta kegunaannya
server_audit_logging– mengaktifkan pencatatan audit / audit logging. Kalau nilai dari variable ini tidak diisi 'ON', maka event audit dari plugin ini tidak akan melakukan apapun dan tidak mencatat apapun.server_audit_events– Menentukan event-event apa saja yang mau dicatat di dalam log file. Secara bawaan, isi dari variable ini adalah kosong, yaitu semua event akan dicatat. Opsi event yang tersedia adalahCONNECTION(status user tersambung dan terputus),QUERY(seluruh query sql dan result dari query), danTABLE(table apa saja yang terpengaruh dari query yang dijalankan).server_audit_excl_users,server_audit_incl_users– variable-variable ini menentukan aktivitas user seperti apa yang tidak perlu disertakan ataupun harus disertakan di dalam log audit.server_audit_incl_usersbiasanya lebih diprioritaskan. Tapi pada umumnya, semua aktivitas pengguna akan dicatat.server_audit_output_type– Secara bawaan, keluaran dari sistem audit ini akan dikirim dan di catat ke sebuah file. Tapi kita bisa mengubahnya dengan mengganti isian opsi menjadi syslog, yang mana semua isi log akan pergi ke fasilitas syslog / system log.server_audit_syslog_facility,server_audit_syslog_priority– Menentukan fasilitas dan prioritas dari event yang akan dikirim ke syslog.
Tips & Trick
- Untuk menghindari pembukaan file yang berat di mesin server, kita bisa untuk menghindari pengecekan user tertentu dengan parameter server_audit_excl_users=<nama_user>, misalnya root, admin atau pun user testing.
- Harap hati-hati dengan pemakaian audit log, karena perubahan password dengan fungssi password() atau old_password() di perintah DML statements akan tetap di catat dala log sebagai text biasa di dalam query.
- Pemakaian fungsi encrypt dan string key nya juga akan dicatat di dalam log, seperti fungsi encode() dan AES_ENCRYPT() .
- perintah DDL and DML juga bisa jadi diaudit.
resource:




Comments
Post a Comment