Pelajari Audit Sistem Linux dengan Alat Auditd di CentOS/RHEL


Audit sistem secara sederhana mengacu pada analisis mendalam terhadap sistem yang ditargetkan secara spesifik: audit terdiri dari pemeriksaan berbagai bagian yang membentuk sistem tersebut, dengan penilaian kritis (dan pengujian jika diperlukan) di berbagai bidang kepentingan.

Baca Juga: Lynis – Alat Audit dan Pemindaian Keamanan untuk Sistem Linux

Salah satu subsistem penting di RHEL/CentOS sistem audit Linux yang umumnya dikenal sebagai auditd. Ini mengimplementasikan cara untuk melacak informasi yang relevan dengan keamanan pada suatu sistem: ia menggunakan aturan yang telah dikonfigurasi sebelumnya untuk mengumpulkan sejumlah besar informasi tentang peristiwa yang terjadi pada sistem, dan mencatatnya dalam file log, sehingga menciptakan uji coba audit.

Itu dapat mencatat informasi seperti tanggal dan waktu, jenis, dan hasil suatu peristiwa; pengguna yang menyebabkan kejadian tersebut, modifikasi apa pun yang dilakukan pada file/database; penggunaan mekanisme otentikasi sistem, seperti PAM, LDAP, SSH, dan lain-lain.

Auditd juga mencatat perubahan apa pun yang dilakukan pada file konfigurasi audit atau upaya apa pun untuk mengakses file log audit, dan segala upaya untuk mengimpor atau mengekspor informasi ke dalam atau dari sistem ditambah banyak informasi terkait keamanan lainnya.

Mengapa Sistem Audit Linux Penting?

  1. Itu tidak memerlukan program atau proses eksternal apa pun untuk dijalankan pada sistem sehingga menjadikannya mandiri.
  2. Oleh karena itu, ini sangat dapat dikonfigurasi sehingga memungkinkan Anda melihat operasi sistem apa pun yang Anda inginkan.
  3. Ini membantu dalam mendeteksi atau menganalisis potensi kompromi pada suatu sistem.
  4. Ia mampu bekerja sebagai sistem deteksi independen.
  5. Ia dapat bekerja dengan Sistem Deteksi Intrusi untuk mengaktifkan deteksi intrusi.
  6. Ini adalah alat penting untuk mengaudit investigasi forensik.

Komponen Sistem Audit Linux

Sistem audit mempunyai dua komponen inti, yaitu:

  • aplikasi ruang pengguna dan utilitas/alat, dan
  • pemrosesan panggilan sistem sisi kernel – ini menerima panggilan sistem dari aplikasi ruang pengguna dan meneruskannya melalui tiga jenis filter, yaitu: pengguna, tugas, keluar<, atau kecualikan.

Bagian terpenting adalah daemon audit ruang pengguna (auditd) yang mengumpulkan informasi berdasarkan aturan yang telah dikonfigurasi sebelumnya, dari kernel dan menghasilkan entri dalam file log: log defaultnya adalah /var/log/audit/audit.log.

Selain itu, audispd (daemon operator audit) adalah multipleksor peristiwa yang berinteraksi dengan auditd dan mengirimkan peristiwa ke program lain yang ingin dijalankan secara real-time pemrosesan acara.

Ada sejumlah alat ruang pengguna untuk mengelola dan mengambil informasi dari sistem audit:

  • auditctl – utilitas untuk mengendalikan sistem audit kernel.
  • ausearch – utilitas untuk mencari file log audit untuk peristiwa tertentu.
  • aureport – utilitas untuk membuat laporan rekaman peristiwa.

Cara Memasang dan Mengonfigurasi Alat Audit di RHEL/CentOS/Fedora

Pertama pastikan untuk memverifikasi bahwa alat audit diinstal pada sistem Anda menggunakan perintah rpm dan utilitas grep sebagai berikut:

rpm -qa | grep audit

Jika Anda belum menginstal paket di atas, jalankan perintah ini sebagai pengguna root untuk menginstalnya.

yum install audit

Selanjutnya, periksa apakah auditd diaktifkan dan berjalan, jalankan perintah systemctl di bawah ini pada terminal.

--------------- On CentOS/RHEL 7 --------------- 
systemctl is-enabled auditd
systemctl status auditd
systemctl start auditd   [Start]
systemctl enable auditd  [Enable]

--------------- On CentOS/RHEL 6 --------------- 
service auditd status
service auditd start     [Start]
chkconfig auditd on      [Enable]

Sekarang kita akan melihat cara mengkonfigurasi auditd menggunakan file konfigurasi utama /etc/audit/auditd.conf. Parameter di sini memungkinkan Anda mengontrol cara layanan berjalan, seperti menentukan lokasi file log, jumlah maksimum file log, format log, cara menangani disk penuh, rotasi log, dan banyak lagi opsi lainnya.

vi /etc/audit/auditd.conf

Dari contoh keluaran di bawah, parameternya sudah cukup jelas.

Memahami Aturan Audit

Seperti yang kami sebutkan sebelumnya, auditd menggunakan aturan untuk mengumpulkan informasi spesifik dari kernel. Aturan-aturan ini pada dasarnya adalah opsi auditctl (lihat halaman manual) yang dapat Anda konfigurasikan sebelumnya aturannya di file /etc/audit/rules.d/audit.rules (Pada CentOS 6, gunakan file /etc/audit/audit.rules), sehingga dimuat saat startup.

Ada tiga jenis aturan audit yang dapat Anda tentukan:

  • Aturan kontrol – aturan ini memungkinkan modifikasi perilaku sistem audit dan beberapa konfigurasinya.
  • Aturan sistem file (juga disebut sebagai pengawasan file) – memungkinkan audit akses ke file atau direktori tertentu.
  • Aturan panggilan sistem – mengizinkan pencatatan panggilan sistem yang dilakukan oleh program apa pun.

Sekarang buka file konfigurasi utama untuk diedit:

vi /etc/audit/rules.d/audit.rules

Perhatikan bahwa bagian pertama file ini harus berisi aturan kontrol. Kemudian tambahkan aturan audit Anda (file jam tangan dan aturan panggilan sistem) di bagian tengah, dan terakhir bagian terakhir berisi pengaturan kekekalan yang juga merupakan aturan kontrol.

Contoh Aturan Pengendalian Auditd

-D		#removes all previous rules
-b  3074	#define buffer size
-f 4		#panic on failure 
-r 120		#create at most 120 audit messages per second

Contoh Aturan Sistem File Auditd

Anda dapat menentukan jam tangan file menggunakan sintaks ini:

-w /path/to/file/or/directory -p permissions -k key_name

Dimana pilihannya:

  • w – digunakan untuk menentukan file atau direktori yang akan diawasi.
  • p – izin untuk dicatat, r – untuk akses baca, w – untuk akses tulis, x – untuk jalankan akses dan a – untuk mengubah atribut file atau direktur.
  • -k – memungkinkan Anda menyetel string opsional untuk mengidentifikasi aturan mana (atau serangkaian aturan) yang membuat entri log tertentu.

Aturan ini memungkinkan audit untuk memantau peristiwa yang membuat perubahan pada file sistem penting ini.

-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/sudoers -p wa -k sudoers_changes

Contoh Aturan Panggilan Sistem Auditd

Anda dapat menetapkan aturan panggilan sistem menggunakan formulir di bawah ini:

-a action,filter -S system_call -F field=value -k key_name

Di mana :

  • tindakan – memiliki dua kemungkinan nilai: selalu atau tidak pernah.
  • filter – menentukan filter pencocokan aturan kernel (tugas, keluar, pengguna, dan kecualikan) yang diterapkan pada acara.
  • panggilan sistem – nama panggilan sistem.
  • bidang – menentukan opsi tambahan seperti arsitektur, PID, GID, dll untuk mengubah aturan.

Berikut beberapa aturan yang dapat Anda tetapkan.

-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
-a always,exit -S sethostname -S setdomainname -k system_locale

Lalu terakhir tambahkan pengaturan kekekalan di akhir file, misalnya:

-e 1	#enable auditing
-e 2	#make the configuration immutable -- reboot is required to change audit rules
Contoh File Konfigurasi Aturan Auditd

Cara Menetapkan Aturan Auditd Menggunakan Utilitas auditctl

Alternatifnya, kirimkan opsi ke auditd saat sedang berjalan, menggunakan auditctl seperti pada contoh berikut. Perintah-perintah ini dapat mengesampingkan aturan dalam file konfigurasi.

Untuk mencantumkan semua aturan audit yang saat ini dimuat, teruskan tanda -l:

auditctl -l

Selanjutnya, coba tambahkan beberapa aturan:

auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/group -p wa -k group_changes
auditctl -w /etc/sudoers -p wa -k sudoers_changes
auditctl -l

Memahami File Log Auditd

Semua pesan audit dicatat dalam file /var/log/audit/audit.log secara default. Untuk memahami format entri log, kami akan memuat aturan dan memeriksa entri log yang dihasilkan setelah peristiwa yang cocok dengan aturan tersebut.

Dengan asumsi kita memiliki direktori cadangan rahasia, aturan audit ini akan mencatat setiap upaya untuk mengakses atau mengubah direktori ini:

auditctl -w /backups/secret_files/ -p rwa -k secret_backup

Sekarang, dengan menggunakan akun sistem lain, coba pindah ke direktori di atas dan jalankan perintah ls:

cd /backups/secret_files/
ls

Entri log akan terlihat seperti ini.

Peristiwa di atas terdiri dari tiga jenis catatan audit. Yang pertama adalah type=SYSCALL:

type=SYSCALL msg=audit(1505784331.849:444): arch=c000003e syscall=257 success=yes exit=3 a0=ffffffffffffff9c a1=8ad5c0 a2=90800 a3=0 items=1 ppid=2191 pid=2680 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts1 ses=3 comm="ls" exe="/usr/bin/ls" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="secret_backup"

Yang kedua adalah type=CWD.

type=CWD msg=audit(1505784331.849:444):  cwd="/backups/secret_files"

Dan yang terakhir adalah type=PATH:

type=PATH msg=audit(1505784331.849:444): item=0 name="." inode=261635 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:default_t:s0 objtype=NORMAL

Anda dapat menemukan daftar lengkap semua bidang acara (seperti pesan, arch, ses, dll.) dan artinya di Referensi Sistem Audit.

Itu saja untuk saat ini. Pada artikel berikutnya, kita akan melihat cara menggunakan ausearch untuk menanyakan file log audit: kami akan menjelaskan cara mencari informasi spesifik dari log audit. Jika Anda memiliki pertanyaan, silakan hubungi kami melalui bagian komentar di bawah.