Belajar Pengauditan Sistem Linux dengan Alat Auditd di CentOS/RHEL

Belajar Pengauditan Sistem Linux dengan Alat Auditd di CentOS/RHEL

Pengauditan sistem hanya merujuk kepada analisis mendalam mengenai sistem sasaran tertentu: audit terdiri daripada pemeriksaan pelbagai bahagian yang terdiri daripada sistem itu, dengan penilaian kritikal (dan ujian jika diperlukan) dalam bidang yang berbeza.

Baca juga: Lynis - Alat Pengauditan dan Pengimbasan Keselamatan untuk Sistem Linux

Salah satu subsistem kritikal mengenai RHEL/CENTOS Sistem audit linux yang biasa dikenali sebagai auditd. Ia melaksanakan cara untuk menjejaki maklumat yang berkaitan.

Ia boleh merakam maklumat seperti tarikh dan masa, jenis, dan hasil peristiwa; Pengguna yang menyebabkan acara itu, sebarang pengubahsuaian yang dibuat kepada fail/pangkalan data; penggunaan mekanisme pengesahan sistem, seperti PAM, LDAP, SSH, dan lain -lain.

Auditd Juga mendaftarkan apa-apa perubahan yang dibuat kepada fail konfigurasi audit atau sebarang percubaan untuk mengakses fail log audit, dan sebarang usaha untuk mengimport atau mengeksport maklumat ke dalam atau dari sistem serta banyak maklumat berkaitan keselamatan lain.

Mengapa sistem audit linux penting?

  1. Ia tidak memerlukan program luaran atau proses untuk dijalankan pada sistem yang menjadikannya berdikari.
  2. Oleh itu, sangat boleh dikonfigurasikan membolehkan anda melihat operasi sistem yang anda mahukan.
  3. Ia membantu dalam mengesan atau menganalisis potensi kompromi sistem.
  4. Ia mampu bekerja sebagai sistem pengesanan bebas.
  5. Ia boleh berfungsi dengan sistem pengesanan pencerobohan untuk membolehkan pengesanan pencerobohan.
  6. Ini adalah alat penting untuk mengaudit siasatan forensik.

Komponen Sistem Audit Linux

Sistem audit mempunyai dua komponen teras, iaitu:

  • aplikasi ruang dan utiliti/alat pengguna, dan
  • Pemprosesan Panggilan Sistem Kernel-Ini menerima panggilan sistem dari aplikasi ruang pengguna dan meluluskannya melalui tiga jenis penapis, iaitu: pengguna, tugas, keluar, atau tidak termasuk.

Bahagian yang paling penting ialah ruang pengguna Daemon Audit (auditd) yang mengumpulkan maklumat berdasarkan peraturan pra-konfigurasi, dari kernel dan menghasilkan entri dalam fail log: log lalai adalah /var/log/audit/audit.log.

Di samping itu, Audispd (Daemon Dispatcher Audit) adalah multiplexor acara yang berinteraksi dengan auditd dan menghantar acara ke program lain yang ingin melakukan pemprosesan acara masa nyata.

Terdapat sebilangan ruang pengguna Alat untuk menguruskan dan mendapatkan maklumat dari sistem audit:

  • auditctl - utiliti untuk mengawal sistem audit kernel.
  • ausearch - utiliti untuk mencari fail log audit untuk acara tertentu.
  • aureport - utiliti untuk membuat laporan peristiwa yang direkodkan.

Cara Memasang dan Mengkonfigurasi Alat Audit di RHEL/Centos/Fedora

Mula -mula pastikan untuk mengesahkan bahawa alat audit dipasang pada sistem anda menggunakan perintah rpm dan utiliti grep seperti berikut:

# rpm -qa | Audit Grep 
Semak alat Auditd

Sekiranya anda tidak memasang pakej di atas, jalankan arahan ini sebagai pengguna root untuk memasangnya.

# yum memasang audit 

Seterusnya, periksa jika auditd diaktifkan dan berjalan, mengeluarkan arahan SystemCTL di bawah di terminal.

--------------- Pada centos/rhel 7 --------------- # Systemctl IS-enabled Auditd # SystemCtl Status Auditd # SystemCtl Mula Auditd [Start] # SystemCtl Enable Auditd [Enable] --------------- Pada centos/rhel 6 --------------- # Perkhidmatan Auditd Status # Service Auditd Start [Start] # ChkConfig Auditd On [Enable] 
Semak status alat auditd

Sekarang kita akan melihat cara mengkonfigurasi auditd Menggunakan fail konfigurasi utama /etc/audit/auditd.Conf. Parameter di sini membolehkan anda mengawal bagaimana perkhidmatan berjalan, seperti menentukan lokasi fail log, bilangan maksimum fail log, format log, cara menangani cakera penuh, putaran log dan banyak lagi pilihan.

# vi/etc/audit/auditd.Conf 

Dari output sampel di bawah, parameter adalah jelas.

Fail konfigurasi auditd

Memahami peraturan audit

Seperti yang telah disebutkan sebelumnya, auditd Menggunakan peraturan untuk mengumpulkan maklumat khusus dari kernel. Peraturan ini pada dasarnya adalah auditctl pilihan (lihat halaman Man) yang anda boleh membuat peraturan pra-konfigurasi di /etc/audit/peraturan.D/Audit.peraturan fail (pada centos 6, gunakan /etc/audit/audit.peraturan fail), supaya mereka dimuatkan pada permulaan.

Terdapat tiga jenis peraturan audit yang boleh anda tentukan:

  • Peraturan kawalan - Ini membolehkan pengubahsuaian tingkah laku sistem audit dan beberapa konfigurasi.
  • Peraturan sistem fail (juga disebut sebagai jam tangan fail) - Dayakan pengauditan akses ke fail tertentu atau direktori.
  • Peraturan panggilan sistem - membenarkan pembalakan panggilan sistem yang dibuat oleh mana -mana program.

Sekarang buka fail konfigurasi utama untuk mengedit:

# vi/etc/audit/peraturan.D/Audit.peraturan 

Perhatikan bahawa bahagian pertama fail ini mesti mengandungi peraturan kawalan. Kemudian tambahkan peraturan audit anda (jam tangan fail dan peraturan panggilan sistem) di bahagian tengah, dan akhirnya bahagian terakhir mengandungi tetapan imutabiliti yang juga mengawal peraturan.

Contoh peraturan kawalan auditd

-D #Removes Semua Peraturan Sebelumnya -B 3074 #Define Buffer Size -F 4 #Panic on Failure -R 120 #Create Paling 120 Mesej Audit Sesektif 

Contoh peraturan sistem fail auditd

Anda boleh menentukan jam tangan fail menggunakan sintaks ini:

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

Di mana pilihannya:

  • w - digunakan untuk menentukan fail atau direktori untuk mengawasi.
  • p - keizinan yang akan dilog masuk, r - untuk akses membaca, w - untuk akses menulis, x - untuk melaksanakan akses dan a - untuk menukar atribut fail atau pengarah.
  • -k - membolehkan anda menetapkan rentetan pilihan untuk mengenal pasti peraturan mana (atau satu set peraturan) membuat entri log tertentu.

Peraturan ini membolehkan pengauditan menonton acara membuat perubahan pada fail sistem kritikal 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 peraturan panggilan sistem auditd

Anda boleh menetapkan peraturan panggilan sistem menggunakan borang di bawah:

-tindakan, penapis -s System_Call -f medan = nilai -k key_name 

Di mana:

  • tindakan - mempunyai dua nilai yang mungkin: selalu atau tidak pernah.
  • penapis - Menentukan penapis pemadanan peraturan kernel (tugas, keluar, pengguna dan tidak termasuk) digunakan untuk acara tersebut.
  • panggilan sistem - nama panggilan sistem.
  • medan - Menentukan pilihan tambahan seperti seni bina, PID, GID dan lain -lain untuk mengubah suai peraturan.

Berikut adalah beberapa peraturan yang boleh anda tentukan.

-A Always, Exit -F Arch = B64 -S Adjtimex -S SetTimeOfday -K Time_change -a Always, Exit -S Sethostname -S SetDomainName -K System_locale 

Kemudian akhirnya tambahkan tetapan tidak berubah pada akhir fail, contohnya:

-e 1 #Enable Auditing -E 2 #Make Konfigurasi Tidak Tak -Reboot diperlukan untuk menukar peraturan audit 
Contoh fail konfigurasi peraturan auditd
Fail Konfigurasi Peraturan Auditd

Cara menetapkan peraturan auditd menggunakan utiliti auditctl

Sebagai alternatif, hantar pilihan ke auditd Semasa berjalan, menggunakan auditctl Seperti dalam contoh berikut. Perintah ini dapat mengatasi peraturan dalam fail konfigurasi.

Untuk menyenaraikan semua peraturan audit yang dimuatkan sekarang, lulus -L bendera:

# auditctl -l 

Seterusnya, cuba tambahkan beberapa peraturan:

# 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 -l 
Tambahkan peraturan auditd menggunakan auditctl

Memahami fail log auditd

Semua mesej audit direkodkan dalam /var/log/audit/audit.log fail secara lalai. Untuk memahami format kemasukan log, kami akan memuatkan peraturan dan periksa entri log yang dihasilkan selepas peristiwa yang sepadan dengan peraturan.

Dengan mengandaikan kami mempunyai direktori sandaran rahsia, peraturan audit ini akan log sebarang percubaan untuk mengakses atau mengubah suai direktori ini:

# auditctl -w/sandaran/rahsia/-p rwa -k rahsia 

Sekarang, menggunakan akaun sistem lain, cuba masuk ke direktori di atas dan jalankan arahan LS:

$ cd/sandaran/rahsia/$ ls 

Entri log akan kelihatan seperti itu.

Periksa log audit untuk perubahan

Acara di atas terdiri daripada tiga jenis rekod audit. Yang pertama adalah jenis = syscall:

jenis = syscall msg = audit (1505784331.849: 444): Arch = C000003E syscall = 257 kejayaan = ya keluar = 3 a0 = ffffffffffffff9c a1 = 8ad5c0 a2 = 90800 a3 = 0 item = 1 ppid = 2191 pid = 2680 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:.C1023 KEY = "Secret_Backup" 

Yang kedua ialah jenis = cwd.

jenis = cwd msg = audit (1505784331.849: 444): cwd = "/sandaran/rahsia" 

Dan yang terakhir adalah jenis = jalan:

jenis = laluan msg = audit (1505784331.849: 444): Item = 0 Nama = "."inode = 261635 dev = 08: 01 mod = 040755 OUID = 0 OGID = 0 RDEV = 00: 00 OBJ = unconfined_u: object_r: default_t: s0 objtype = normal 

Anda boleh menemui senarai lengkap semua bidang acara (seperti MSG, Arch, SES dll ...) dan makna mereka dalam Rujukan Sistem Audit.

Itu sahaja buat masa ini. Dalam artikel seterusnya, kami akan melihat cara menggunakan AUSearch untuk memohon fail log audit: kami akan menerangkan cara mencari maklumat khusus dari log audit. Sekiranya anda mempunyai sebarang pertanyaan, sila hubungi kami melalui bahagian komen di bawah.