GNU/Linux >> Belajar Linux >  >> Linux

Cara menggunakan Sistem Audit di Linux – Konfigurasi, Log Audit, dan Hasilkan Laporan

Sebelum kita mulai membahas tentang sistem Audit, saya ingin mengajukan beberapa pertanyaan. Bagaimana Anda memantau perintah yang dijalankan oleh pengguna? Bagaimana Anda memantau apakah file atau direktori diakses? Bagaimana Anda merekam berbagai peristiwa terkait keamanan? Bagaimana Anda memantau panggilan sistem, akses jaringan, dll...dan akhirnya bagaimana Anda membuat laporan darinya? Nah, sistem Audit Linux adalah jawaban untuk semua pertanyaan di atas.

Sistem Audit Linux memungkinkan administrator untuk mengonfigurasi aturan audit untuk memantau panggilan sistem, akses jaringan, file, dll...dan menghasilkan laporan ringkasan – yang kemudian dapat dianalisis dan diselidiki untuk aktivitas yang mencurigakan. Mulai dari versi 2.6, kernel Linux hadir dengan auditd daemon dan ketika dimulai, ia membaca aturan yang telah dikonfigurasi sebelumnya dari /etc/audit/audit.rules . Administrator dapat menggunakan auditctl perintah untuk mengontrol sistem audit, membuat aturan, dll… Dua perintah penting lainnya adalah:

  • penelitian – perintah yang memungkinkan Anda untuk menanyakan log audit berdasarkan kriteria yang diberikan.
  • laporan – perintah yang digunakan untuk membuat laporan.

File konfigurasi audit terletak di /etc/audit dan log di /var/log/audit.

  • /etc/audit/audit.rules – file tempat aturan permanen dibuat dan dimuat saat diaudit daemon dimulai.
  • /etc/audit/audit.conf – mengaudit file konfigurasi
  • /etc/audit/rules.d/ – folder yang berisi file aturan khusus.

Di bawah ini adalah daftar informasi yang akan direkam oleh audit:

  • Stempel waktu, jenis, dan hasil acara
  • UID, GID yang memicu acara
  • Label sensitivitas subjek dan objek
  • Akses ke semua sistem otentikasi seperti SSH, Kerberos dll…
  • Pemeriksaan integritas file
  • Impor dan ekspor informasi.
  • Sertakan atau kecualikan peristiwa berdasarkan identitas pengguna, subjek, dan atribut lainnya.
  • Mencoba mengubah file dan log konfigurasi audit.

Bagaimana cara mengkonfigurasi auditd di CentOS dan Ubuntu?

Di CentOS:

# yum install audit

Di Ubuntu:

# apt-get install auditd
::::::::::
Setting up auditd (1:2.4.5-1ubuntu2) ...
update-rc.d: warning: start and stop actions are no longer supported; falling ba ck to defaults
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for systemd (229-4ubuntu6) ...
Processing triggers for ureadahead (0.100.0-19) ...

Setelah paket diinstal, auditd daemon akan dimulai secara otomatis. Jika tidak, Anda dapat memulainya menggunakan perintah di bawah ini:

# /etc/init.d/auditd start

Mencantumkan aturan audit aktif:

# auditctl -l
 No rules

Bagaimana cara membuat aturan audit?

Mari kita buat aturan untuk memonitor file /etc/passwd

# auditctl -w /etc/passwd -p war -k audit-passwd

Perintah di atas membuat jam tangan di file /etc/passwd .

  • dengan /etc/passwd – membuat jam untuk file /etc/passwd
  • -perang – menyetel filter izin – w untuk menulis, r untuk membaca, a untuk perubahan atribut dan e untuk mengeksekusi.
  • k audit-passwd – di sini audit-passwd adalah kunci untuk mengidentifikasi aturan secara unik dari log.

Pada dasarnya, perintah di atas melacak /etc/passwd bagi siapa saja yang mencoba menulis, membaca, atau mengubah atribut file.

Sekarang aturan sudah dibuat, mari kita login sebagai pengguna unprivileged dan coba akses /etc/passwd berkas.

$ grep "someinformation" /etc/passwd
$ vim /etc/passwd

Dua perintah di atas dilakukan oleh pengguna lokal yang disebut 'ubuntu' dan peristiwa tersebut diharapkan untuk login /var/log/audit/audit.log berkas.

Bagaimana menemukan siapa yang mengubah atau mengakses /etc/passwd?

Kami akan menggunakan ausearch perintah:

# ausearch -f /etc/passwd -i
type=PROCTITLE msg=audit(08/05/2016 11:56:10.088:72) : proctitle=grep --color=auto henry /etc/passwd
 type=PATH msg=audit(08/05/2016 11:56:10.088:72) : item=0 name=/etc/passwd inode=56913 dev=fd:01 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL
 type=CWD msg=audit(08/05/2016 11:56:10.088:72) : cwd=/home/ubuntu
 type=SYSCALL msg=audit(08/05/2016 11:56:10.088:72) : arch=x86_64 syscall=openat success=yes exit=3 a0=0xffffffffffffff9c a1=0x7ffebf6cb887 a2=O_RDONLY|O_NOCT
 TY a3=0x0 items=1 ppid=14098 pid=14992 auid=ubuntu uid=ubuntu gid=ubuntu euid=ubuntu suid=ubuntu fsuid=ubuntu egid=ubuntu sgid=ubuntu fsgid=ubuntu tty=pts0 s
 es=1302 comm=grep exe=/bin/grep key=audit-passwd
 ----
 type=PROCTITLE msg=audit(08/05/2016 11:56:12.028:74) : proctitle=vim /etc/passwd
 type=PATH msg=audit(08/05/2016 11:56:12.028:74) : item=0 name=/etc/passwd inode=56913 dev=fd:01 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL
 type=CWD msg=audit(08/05/2016 11:56:12.028:74) : cwd=/home/ubuntu
 type=SYSCALL msg=audit(08/05/2016 11:56:12.028:74) : arch=x86_64 syscall=open success=yes exit=3 a0=0x556072132500 a1=O_RDONLY a2=0x0 a3=0x556072347f50 items
 =1 ppid=14098 pid=14993 auid=ubuntu uid=ubuntu gid=ubuntu euid=ubuntu suid=ubuntu fsuid=ubuntu egid=ubuntu sgid=ubuntu fsgid=ubuntu tty=pts0 ses=1302 comm=vi
 m exe=/usr/bin/vim.basic key=audit-passwd

Keluaran log di atas menunjukkan bahwa pengguna bernama ubuntu telah mengakses file /etc/passwd menggunakan perintah grep dan vim . Secara default, output log akan menggunakan UID dan GID, tetapi opsi ‘-i ' akan memetakan uid dan gid ke nama yang sesuai (nama pengguna dan nama grup yang dapat dibaca manusia).

Bagaimana cara membuat jam tangan untuk memantau perubahan oleh pengguna tertentu?

#auditctl -w /usr/local/test -p wa -F uid=1001 -k audit-temp

Cari log untuk acara:

#ausearch -ua 1001 -i

Perintah di atas akan mencantumkan semua peristiwa yang dipicu oleh id pengguna 1001 .

Membuat aturan permanen

Catatan :Aturan yang dibuat menggunakan auditctl perintah bersifat sementara dan akan aktif sampai auditd daemon dimulai ulang. Perintah di bawah ini menjelaskan skenario ini.

# auditctl -l
 -w /etc/passwd -p rwa -k audit-passwd
 -a always,exit -S all -F dir=/etc -F perm=wa -F uid=1001 -F key=audit-temp
 -a always,exit -S all -F dir=/usr/local/test -F perm=wa -F uid=1001 -F key=audit

Perintah di atas mencetak daftar aturan aktif. Sekarang mari kita coba memulai kembali auditd daemon.

# /etc/init.d/auditd restart
 [ ok ] Restarting auditd (via systemctl): auditd.service.

Periksa kembali aturan aktif.

# auditctl -l
 No rules

Setelah diaudit daemon dimulai ulang, semua aturan yang dibuat menggunakan auditctl perintah akan dihapus (karena bersifat sementara). Jika Anda telah bereksperimen menggunakan auditctl perintah dan ingin membuat aturan tersebut secara permanen, Anda dapat mengedit /etc/audit/audit.rules file atau buat file aturan baru di bawah /etc/audit/rules.d/ folder.

# echo "-D" > /etc/audit/rules.d/new.rules
# auditctl -l >> /etc/audit/rules.d/new.rules

Perintah pertama menambahkan tindakan aturan hapus sebelum menambahkan kumpulan aturan baru.

Bagaimana cara membuat laporan audit?

Ringkasan laporan:

# aureport
Summary Report
======================
Range of time in logs: 08/05/2016 11:45:39.464 - 08/08/2016 06:14:14.328
Selected time for report: 08/05/2016 11:45:39 - 08/08/2016 06:14:14.328
Number of changes in configuration: 7
Number of changes to accounts, groups, or roles: 5
Number of logins: 1
Number of failed logins: 6
Number of authentications: 8
Number of failed authentications: 6
Number of users: 3
Number of terminals: 8
Number of host names: 2
Number of executables: 37
Number of commands: 39
Number of files: 13
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 12
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of integrity events: 0
Number of virt events: 0
Number of keys: 2
Number of process IDs: 214
Number of events: 1337

Perintah di atas akan mencetak laporan ringkasan dari semua peristiwa yang direkam.

Cetak laporan ringkasan dari semua upaya login yang gagal

# aureport --login --summary -i
Login Summary Report
============================
total auid
============================
6 henry
1 ubuntu

Buat laporan ringkasan peristiwa file yang dapat dieksekusi:

# aureport -x --summary

Buat laporan semua file audit yang dikueri dan rentang waktu peristiwa yang disertakan

# aureport -t
Log Time Range Report
=====================
/var/log/audit/audit.log: 08/05/2016 11:45:39.464 - 08/08/2016 06:17:01.068

Buat laporan semua peristiwa yang direkam dalam rentang tanggal:

# aureport --start 08/05/2016 00:00:00 --end 08/07/2016 00:00:00

Buat laporan dari ausearch keluaran

# ausearch -k audit-temp | aureport -f -i

Bagaimana cara menghapus semua aturan audit?

# auditctl -D

Catatan :Perintah di atas akan menghapus semua aturan yang aktif dalam menjalankan auditd daemon. Namun, aturan permanen dalam file /etc/audit/audit.rules akan dimuat setiap kali auditd dimulai.

Apakah itu semua diaudit bisa? Tidak! Sistem audit Linux mampu melakukan lebih banyak dan apa yang tercantum di sini hanyalah sebagian kecil dari sistem yang kuat ini. Lihat halaman manual auditd , auditctl , ausearch dan laporan untuk informasi lebih lanjut.


Linux
  1. CentOS / RHEL :Cara Memulihkan dari file /etc/passwd yang dihapus

  2. Cara memasang dan memasang sistem file di Linux

  3. Di file /etc/hosts/ saya di Linux/OSX, bagaimana cara melakukan subdomain wildcard?

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Bagaimana cara memonitor file /etc/shadow dan /etc/passwd untuk perubahan dengan Auditd?

  3. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  1. Perintah File Linux:Apa Fungsinya dan Bagaimana Cara Menggunakannya

  2. File Host Linux:Bagaimana Mengedit dan Menggunakannya?

  3. Cara yang Benar Untuk Mengedit File /etc/passwd Dan /etc/group Di Linux