- Katılım
- 12 Ağu 2011
- Konular
- 1,810
- Mesajlar
- 15,949
- Çözüm
- 11
- Online süresi
- 1mo 25d
- Reaksiyon Skoru
- 5,439
- Altın Konu
- 1
- Başarım Puanı
- 421
- MmoLira
- 28,994
- DevLira
- 34
HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Linux tabanlı işletim sistemleri ve Linux Audit
Audit Nedir?
Sözlük manası incelemek, denetlemek olan audit kelimesi işletim sistemlerinde kullanıcı ve sistem aktivitelerinin kayıt altına tutulup ileriye dönük inceleme yapılabilmesine olanak sağlayan bir altyapıdır. Her işletim sisteminin kendine ait bir audit alt yapısı mevcuttur.
Audit loglaması ve Syslog loglaması arası fark nedir?
Syslog sistem tarafında log atmak ve almak için kullanılan bir bileşendir. Fakat syslog`a nelerin, hangi işlemlerin log atılacağı tamamen uygulamanın yazarının tercihidir. Bu şekilde olan bir sürecte tam bir kayıt altına alma işlemi gerçekleşmeyecektir. Onun yerine uygulamanın veya kullanıcıların yaptığı her işlemin çekirdek tarafında loglanabileceği bir arabirim olan audit mekanızması gerçellenmiştir. Ayrıca syslog olayın olduğunu loglarken , audit biro lay olmadan ÖNCESİNİ ve SONRASINI da kayıt altına alabilmektedir.
Linux Audit Nedir?
Linux çekirdeğinin ve dolayısıyla çekirdek içinde bulunan system call adı verilen sistem çağrılarının kayıt altına alınıp ileriye dönük analiz yapılabilmesini sağlar. Yanlız unutulmamalıdır ki her audit işlemi , işletim sistemi çekirdeğini az veya çok meşgul edecektir. Bu yüzden audit yapılacak bileşenlerin dikkatli seçilmesi gerekmektedir.
Linux audit sistemi aşağıdaki 4 bileşenden oluşur.
1. Sistemlerde oluşan çekirdek olaylarının (syscall) toplanması ve de audit altyapısını kullanan kullanıcı programların loglaması için bir altyapı
2. Audit sisteminin yapılandırma dosyaları (/etc/audit/auditd.conf ve /etc/audit/auditd.rules)
3. Her bir audit olayının sistemde okunabilir halde durduğu dosya ( /var/log/audit/audit.log)
4. Binary olan audit loglarını incelemek için yardımcı programlar.
audispd(8), ausearch(8), aureport(8), auditctl(8).
Linux audit Red Hat firması tarafından geliştirilmesine başlanmış ve Linux çekirdeğine girmiş bir çekirdek (kernel) bileşenidir.
Linux Audit Büyük Resim
Linux Audit sisteminin daha iyi anlaşılabilmesi için aşağıdaki resimden faydalanabilirsiniz.
Linux Audit Çekirdek Bileşeni
Red Hat Enterprise Linux 5 ile gelen çekirdek içine audit bileşeni otomatik olarak gömülmüştür. (Kernel module olarak değil, çekirdek dosyasının içinde yer almaktadır) /boot/vmlinuz-2.6.18-92.el5 gibi bir dosya olan çekirdek dosyası içinde gömülü geldiği için audit sistemini başlangıçta kapatılması istenirse /boot/grub/grub.conf dosyası içinde ilgili kernel stanza`sı sonuna audit=0 eklenmelidir. Örnek vermek gerekirse:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ audit=0
initrd /initrd-2.6.18-92.el5.img
Bu işlemden sonra işletim sistemi tarafında da auditd servisi kapatılmalıdır. (chkconfig auditd off && service auditd stop) ve daha sonra işletim sistemi reboot edilmelidir. Eğer reboot edilmeden auditd servisi geçici olarak kapatılmak istenirse
# audictl –e 0
komutu ile audit sisteminin kernel tarafı kapatılır. Ayrıca ek olarak uditd servisi kapatılmalıdır. (chkconfig auditd off && service auditd stop). Eğer auditctl –e 0 verilmek yerine sadece chkconfig auditd off && service auditd stop komutu verilirse çekirdek tarafından gönderilen audit logları auditd`ye değil syslog`a gönderilecek ve bu sefer bu loglar /var/log/audit/audit.log dosyası yerine /var/log/messages dosyasına akmaya başlayacaktır.
Audit sistemini enable etmek için Red Hat Enterprise Linux 5`te herhangi birşey yapılmasına gerek yoktur. Zaten öntanımlı olarak açık gelmektedir. Fakat kurmak, servisi enable etmek ve başlatmak için aşağıdaki komutlar verilir.
# yum –y install audit
# chkconfig auditd on
# service auditd start
Linux Audit yapılandırma dosyaları
Red Hat Enterprise Linux işletim sisteminde iki adet yapılandırma dosyası mevcuttur.
/etc/audit/auditd.conf
Bu dosya auditd servis yazılımının (daemon) yapılandırma dosyasıdır.Bu servis nelerin audit edileceğini değil sadece bu mesajları işleyen auditd servisinin aldığı audit mesajlarını ne yapacağını ve sistem diski dolması durumunda ne yapılacağı gibi işlerden sorumlu bir bileşendir. Aşağıda RHEL ile gelen öntanımlı auditd.conf gösterilmektedir.
#
# This file controls the configuration of the audit daemon
#
log_file = /var/log/audit/audit.log
log_format = RAW
log_group = root
priority_boost = 4
flush = INCREMENTAL
freq = 20
num_logs = 4
disp_qos = lossy
dispatcher = /sbin/audispd
name_format = NONE
##name = mydomain
max_log_file = 5
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND
##tcp_listen_port =
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
enable_krb5 = no
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
log_file
auditd tarafından alınan logların düz okunabilir metin olarak nereye kayıt edileceği bu direktif ile belirtilir.
log_format
Log dosyasının hangi formatta olacağı burada belirtilir. RAW veya NOLOG kullanılabilir. RAW ise mesajın kernel`ın gönderdiği şekilde ama düz metin olarak kayıt eder.
log_group
/var/log/audit/ dizini altındaki log dosyalarının hangi gruba ait olacağını belirtir. Eğer root dışında başka bir grup belirtilirse dosyanın sahibi root, grubu ise belirtilen grup olur.
log_group=root
-rw------- 1 root root 390129 Oct 31 16:16 audit.log
-r-------- 1 root root 5243040 Oct 31 12:12 audit.log.1
-r-------- 1 root root 5243064 Oct 29 06:24 audit.log.2
-r-------- 1 root root 5243057 Oct 26 23:38 audit.log.3
log_group=baskagrup
-rw-r----- 1 root baskagrup 389166 Oct 31 16:16 audit.log
-r-------- 1 root root 5243040 Oct 31 12:12 audit.log.1
-r-------- 1 root root 5243064 Oct 29 06:24 audit.log.2
-r-------- 1 root root 5243057 Oct 26 23:38 audit.log.3
priority_boost
auditd sürecinin başlanğıçta hangi priorty`de başlayacağını belirtir. Buradaki 4 değeri öntanımlı değerdir.
flush ve freq
none, incremental, data ve sync değerlerini alan flush, logların ne kadar sürede bir diske yazılacağını belirtir. İncremental değerini almış ise bir sonraki satır olan freq değeri diske flush etmeden önce ne kadar kadar kayıtı diske yazacağını belirtir.
num_logs
log dosyalarının kaç adet tutulacağını belirtir. Değeri 4 log dosyaları en fazla 3 kere döndürülür.
num_logs=4
-rw------- 1 rootroot 390129 Oct 31 16:16 audit.log
-r-------- 1 root root 5243040 Oct 31 12:12 audit.log.1
-r-------- 1 root root 5243064 Oct 29 06:24 audit.log.2
-r-------- 1 root root 5243057 Oct 26 23:38 audit.log.3
disp_qos
auditd`nin dispatcher adı verilen program ile nasıl haberleşeceğini belirtir. blocking/lossless veya non-blocking/lossy değerlerini alır. Bu iki program arasında 128k ‘lık bir tampon değeri vardır.
Dispatcher
auditd tarafından başlatılan ve de auditd`ye gelen dosyaların bir kopyasınında burada belirtile n programa gönderilmesini sağlayan bir opsiyondur.
name_format , name
auditd log satırlarında makinaların adlarının nasıl gösterileceğini belirtir. Default değeri none`dır. Bu değer fqd değerini alırsa
node=server.endersys.com type=CONFIG_CHANGE msg=audit(1320072332.262:549010): audit_enabled=1 old=1 by auid=4294967295 res=1
numeric olursa
node=10.123.18.10 type=CONFIG_CHANGE msg=audit(1320072332.262:549010): audit_enabled=1 old=1 by auid=4294967295 res=1
NONE olursa
type=CONFIG_CHANGE msg=audit(1320072376.797:549022): audit_enabled=1 old=1 by auid=4294967295 res=1
name_format= user yapılıp , name = TEST yapılırsa
node=TEST type=CONFIG_CHANGE msg=audit(1320072421.562:549026): audit_enabled=1 old=1 by auid=4294967295 res=1
max_log_file
auditd.log dosyalarının en fazla kac MB olabileceğini belirtir.
max_log_file_action
max_log_file boyutuna ulaşıldıktan sonra ne yapılacağını beliritir. Red Hat`te default olara rotate seçilmiştir. Yani 5 MB a ulaşınca dosyalar rotate edilir num_logs adedi kadar
space_left
/var/log/audit ‘in olduğu disk bölmesi yüzde kaç dolunca mesaj atmaya başlanacağını belirtir.
space_left_action
Disk belirli bir seviyede dolunca uyarı mesajının ı hangi metodla belirtileceğini ifade eder. Olası değerler ignore, syslog, email, exec, suspend, single ve halt ‘tır. RHEL 5 syslog değerini kullanır.
admin_space_left , admin_ space_left_action
space_left değerinden daha küçük olma durumunda olan bu değer admin userını ne zaman uyarılacağını belirtir.
disk_full_action
ignore, syslog, exec, suspend, single ve halt değerlerini alan ve Red Hat`in suspend aksiyonunu kullandığı bu değer disk dolunca hangi işlem yapılacağını belirtir. Suspend ile auditd hala çalışmaya devam eder fakat diske yazma işlemi yapılmaz.
disk_error_action
Red Hat`te default aksiyonu SUSPEND olan bu değer diskte hata durumu olması durumunda ne yapılacağını beliritir. Alabileceği değerler ignore, syslog, exec, suspend, single ve halt tır.
tcp_listen_port , tcp_listen_queue , tcp_max_per_addr, tcp_client_ports, tcp_client_max_idle
auditd ‘nin başka hostların audit loglarını alması için bir tcp portunu dinlemesi için kullanılan parametrelerdir.
enable_krb5, krb5_principal, krb5_key_file
Uzak bir makinadan audit mesajları geliyorsa bu gelen mesajların önce authenticate olunmasını sonra şifreli bir şekilde alınmasını sağlar.
Auditd yapılandırması ile alakalı daha fazla bilgi için man auditd.conf komutu vererek man sayfasına bakabilirsiniz.
/etc/audit/audit.rules
Bu dosya çekirdeğe yüklenen ve çekirdeğin hangi sistem çağrılarını veya hangi durumları audit log`u olarak üreteceğinin yapılandırıldığı yapılandırma dosyasıdır. Bu dosya audit servisi başlangıç dosyası (/etc/init.d/auditd) içinde auditctl komutuna parametre olarak yüklenip çekirdeğe auditctl tarafından gönderilir. Aşağıda RHEL 5 ile gelen ön tanımlı audit.rules dosyası gösterilmektedir. Aslında buradaki her bir satır auditctl komutuna verilen bir parametredir. (Ör: -D satırı aslında , auditctl –D şeklinde çalıştırılır)
# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# First rule - delete all
-D
# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320
# Feel free to add below this line. See auditctl man page
Audit kurallarının yazıldığı dosyadır. Genelde auditctl komutları 3 ana başlıktan oluşur. Bu ana parametreler
1) Control : Kontrol komutları. Neyin dinleneceğini belirtmek yerine kural ekleme , silme gibi işlemler için kullanılır.
2) File System: Watches olarak ta adlanrılabilen bu tip komutlar istenilen dosya veya dizin ile alakalı audit loglarının oluşturulmas için kullanılır.
3) System Call: Çekirdekte çalışan sistem çağrılarını n loglanması için kullanılır.
den oluşmaktadır.
Bu üç ana parametrelerin nelerden oluştuğuna girmeden önce Red Hat Enterprise Linux ile gelen ön tanımlı yapılandırmadaki –D ve –b 320 satırlarını açıklayalım. –D, kernela yüklenen bütün audit kuralların silinmesini sağlar. –b 320 ise 320 adet buffer tanımlaması yapmaktadır. Eğer bu buffer dolarsa audit eventleri kayıp olur. Bu değer tamamen ne kadar çok audit logunun istenildiğine göre ayarlanabilir. Yoğun bir sistem için başlangıç olarak -b 8192 kullanılabilir.
Kontrol Kuralları
-D Kernela yüklenen bütün audit kuralların silinmesini sağlar. Genelde audit.rules dosyasındaki ilk satır budur.
-b backlog tampon boyutunu belirler. Dosya sisteminin yazma hızına ve sistemin yoğunluğu ve istenilen audit eventlerin çokluğuna göre bu değer uygun bir boyuta ayarlanmalıdır.
-f Çekirdeğin kritik durumlarda ne yapacağını belirtir. Alacağı değerler 0,1,2 dir. 0=silent 1=printk 2=panic masına gelmektedir. Bu kritik durumlar
- auditd servisine iletim hataları
- backlog limitinin aşılması
- sistem hafızasının bitimesi
- anlık oran limitinin aşılması (rate limit exceed)
-e enable flag. Bu audit sisteminin kernelda kapatılması, açılması ve kalıcı olarak ve değiştirilmeyecek şekilde açılmasıdır. –e 0 , e 1 veya –e 2 şeklinde değerler alır. 0 audit sistemini kapatır, 1 açar ve 2 de kalıcı olarak açılmasını sağlar ( 2 değeri verildikten sonra audit kurallarında bir değişiklik yapılması için reboot gerekmetedir.)
-l audit kurallarının listelenmesini sağlar.
Dosya Sistemi Kuralları
Sistem üzerindeki dosyalar (UNIX`te dosya sistemi üzerindeki herşeyin bir dosya olduğunu belirtelim) üzerinde yapılan işlemlerin kuralları aşağıdaki gibi tanımlanır.
-w <dosya veya dizin> -p <izinler> -k <anahtar kelime>
-w ‘ye parametre olarak dosya veya dizin verilir.
-p ‘ye parametre olarak verilen izinler aşağıdaki anahtar kelimelerden biri veya birden fazlası birleştirilerek kullanılabilir.
r - dosyanın okuması
w - dosyaya yazma
x – dosyanın çalıştırılması
a – dosya tanımlarının değiştirilmesi (izin veya özellik)
-k benzer kural setlerini gruplamak için kullanılan bir anahtar kelimedir. Tamamen istenilen 31 karakteri aşmayacak şekilde bir değeri olabilir. –D veya –l ‘ye parametre olarak verilerek sadece istenilen keyword`e sahip kuralların silinmesi veya listelenmesi sağlanabilir.
Sistem Çağrıları Kuralları
-a aksiyon,list -S syscall -F alan=değer -k <anahtar kelime>
-a iki değer alır. Aksiyon ve list.
Aksiyon always veya never değerini alır ilgili kural için bir event oluşturulup oluşturulmayacağını içerir.
List (bazı durumlarda filtre olarak ta tanımlanabiliyor) olarak alabileceği değerler entry , exit, user , task ve exclude ‘tur . Linux çekirdeği bu 5 filtreden birini kullanmaktadır.
Entry , sistem çağrılarının başında exit ise sistem çağrılarının sonunda kullanılmaktadır. Daha çok tercih edilen exit filtresidir zaten ileriki Linux çekirdeği sürümlerinde entry filtresinin kaldırılması düşünülmektedir.
User filtresi userland programlarda oluşacak durumların loglanması için kullanılır ve alabileceği filtre alanları ise uid, auid, gid ve pid ‘tir.
Task çok nadir kullanılmakta ve sadece fork ve clone sistem çağrıları için kullanılır.
Exclude filtresi bazı eventleri loglama dışı bırakmak için kullanılır.
En çok kullanılan aksiyon ve list çifti always,exit ‘dir. Zaten internet üzerinde bulunabilecek çoğu örnekte de bu çift kullanılmaktadır.
-S ile kural yazılacak ve loglanması istenen sistem çağrıları belirtilir.
-F alan=değer Burada istenilen filtreler belirtilir. Mesela -F auid>=500 -F auid!=1002 ile user id`si 500 den büyük ve 1002 olmayan kullanıcılar için bir filtre yazılır. Birden fazla –F satırı varsa and`lenerek ilgili filtre oluşturulur.
-k benzer kural setlerini gruplamak için kullanılan bir anahtar kelimedir. Tamamen istenilen 31 karakteri aşmayacak şekilde bir değeri olabilir. –D veya –l ‘ye parametre olarak verilerek sadece istenilen keyword`e sahip kuralların silinmesi veya listelenmesi sağlanabilir.
Örnek audit.rules kuralları
Yukarıda anlatılan audit.rules kural satırlarını birkaç örnekle açıklayalım.
-w /etc/passwd -p wa -k identity
/etc/passwd dosyasına yazılma veya attribute değişikliği yapıldığında identity ifadesi ile taglenerek audit logu oluşturulur.
-w /etc/shadow -p ra -k identity
/etc/shadow dosyası okunduğunda veya attribute değişikliği yapıldığında identity ifadesi ile taglenerek audit logu oluşturulur.
-a always,exit -F arch=ARCH -S adjtimex -S settimeofday -S stime -k time-change
Üssteki örnekte ARCH yerine 32 bit veya 64 bit olmasına göre b32 veya b64 değeri kullanılabilir. Adjtimex , settimeofdayve stime sistem çağrılarının çıkışında time-change anahtar kelimesi ile etiketlenerek loglanılması sağlanır.
-a always,exit -F arch=ARCH -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=500 -F auid!=4294967295 -k access
-a always,exit -F arch=ARCH -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=500 -F auid!=4294967295 -k access
Yukarıdaki iki örnek sistemde uid`si 500`den büyük olan normal kullanıcıların izin verilmeyen (EPERM ve EACCESS`i başarısız olan) dosyaları okumaya çalıştığında log oluşmasını sağlar ve acesss anahtar kelimesi ile etiketler.
Daha fazla örnek için Audit sisteminin yazarının tavsiye yazdığı örnek audit rules dosyası incelenebilir. /usr/share/doc/audit-*/stig.rules dosyasında daha fazla ayrıntı bulabilirsiniz.
Linux Audit log dosyası - /var/log/audit/audit.log
Çekirdek tarafından auditd ‘ye gönderilen audit logları ön tanımlı olarak (/etc/audit/auditd.conf ‘taki log_file = /var/log/audit/audit.log satırı ile) /var/log/audit/audit.log dosyasına yazılır okunabilir dosya olarak.
Linux Audit raporlama komutları
Ausearch
ausearch komutu auditd tarafından loglanan audit olaylarında belirli kriterlere göre arama yapılması için kullanılır. Her eklenen yeni kriter bir önceki ile “and“ lenerek istenen kritere uyan audit logları gösterilir. Bu arama /var/log/audit altındaki dosyalar içinden yapılmaktadır. En çok ullanılan parametreleri
-l, --line-buffered : Line buffered olarak bütün kayıtları ekrana basar
-r, --raw : Event`leri formatlamadan, olduğu gibi ekrana basar. –l ve –r birbirinin karşıt parametreleridir.
-a, --event Eventid numarasına göre arama yapılır.
-e, --exit: exit code veya error no`ya göre arama yapar.
-f, --file : audit eventlerinde geçen ve auditlenen dosyalara göre arama yapılmasını sağlar.
-k, --key: audit.rules veya auditctl ile girilen anahtar kelimeye göre (keyword) arama yapılmasını sağlar.
-p, --pid: Süreç numarasına göre (PID) filtreleme yapılmasını sağlar.
-ts , --start: Audit loglarında başlangıç tarihi verilerek bu başlangıç tarihiden sonraki eventlerde filtreleme sağlar.
-te , --end: Loglarda en son hangi tarihe göre arama yapılacağını belirtir.
-tm, --terminal: Terminal adına göre arama yapılması sağlanır. Cron ve atd gibi uygulamalar terminal olarak kendi binary adlarını yazar (terminal=cron gibi)
-ui, --uid : Userid ye göre filtreleme yapılması için kullanılır.
-gi, --gid Group id`ye göre filtreleme yapılması için kullanılır.
-x, --executable verilen paramtre olarak bir komut alan bu arguman bu komutlara uyan eventleri arar.
Daha fazla ausearch parametresi için ausearch klavuz sayfasına man ausearch komutu ile bakabilirsiniz.
Ausearh Örnek Komutlar
# ausearch --key access --file /etc/fstab –raw
Access keywordu kullanılarak tanımlanmış kurallardan /etc/fstab dosyasının erişildiği logları raw olarak göster.
type=SYSCALL msg=audit(1320176312.990:564657): arch=c000003e syscall=2 success=yes exit=3 a0=7fffed6eac22 a1=0 a2=7fffed6ea130 a3=3 items=1 ppid=11365 pid=12569 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
type=CWD msg=audit(1320176312.990:564657): cwd="/root"
type=PATH msg=audit(1320176312.990:564657): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
type=SYSCALL msg=audit(1320176330.103:564658): arch=c000003e syscall=2 success=yes exit=3 a0=7fffbfcf0c22 a1=0 a2=7fffbfcf0740 a3=3 items=1 ppid=11365 pid=12574 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
type=CWD msg=audit(1320176330.103:564658): cwd="/root"
type=PATH msg=audit(1320176330.103:564658): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
type=SYSCALL msg=audit(1320332207.622:591961): arch=c000003e syscall=2 success=yes exit=3 a0=7fffe39c9c22 a1=0 a2=7fffe39c9410 a3=3 items=1 ppid=310 pid=1984 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
type=CWD msg=audit(1320332207.622:591961): cwd="/root"
type=PATH msg=audit(1320332207.622:591961): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
# ausearch -ts today -k Password
Keyword olarak password verilmiş kurallarda bügün içinde şu ana kadar oluşan audit loglarını gösterir.
# ausearch -ts today -k password-file -x rm
# ausearch -ts 3/11/11 -k password-file -x rm
rm komutu ile bugün içinde kimin şifre dosyalarına eriştiğini gösterir. ( -ts today veya –ts direkt tarih)
#ausearch –x cat
Cat komutu kullanımı sonucu oluşan eventleri gösterir.
----
time->Tue Nov 1 21:38:32 2011
type=PATH msg=audit(1320176312.990:564657): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1320176312.990:564657): cwd="/root"
type=SYSCALL msg=audit(1320176312.990:564657): arch=c000003e syscall=2 success=yes exit=3 a0=7fffed6eac22 a1=0 a2=7fffed6ea130 a3=3 items=1 ppid=11365 pid=12569 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
----
time->Tue Nov 1 21:38:50 2011
type=PATH msg=audit(1320176330.103:564658): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1320176330.103:564658): cwd="/root"
type=SYSCALL msg=audit(1320176330.103:564658): arch=c000003e syscall=2 success=yes exit=3 a0=7fffbfcf0c22 a1=0 a2=7fffbfcf0740 a3=3 items=1 ppid=11365 pid=12574 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
----
time->Tue Nov 1 22:59:05 2011
type=PATH msg=audit(1320181145.366:565387): item=0 name="/etc/shadow" inode=131817 dev=08:02 mode=0100400 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1320181145.366:565387): cwd="/root"
type=SYSCALL msg=audit(1320181145.366:565387): arch=c000003e syscall=2 success=yes exit=3 a0=7fffc51afc21 a1=0 a2=7fffc51aebf0 a3=3 items=1 ppid=11365 pid=14236 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="identity"
----
time->Thu Nov 3 16:56:47 2011
type=PATH msg=audit(1320332207.622:591961): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1320332207.622:591961): cwd="/root"
type=SYSCALL msg=audit(1320332207.622:591961): arch=c000003e syscall=2 success=yes exit=3 a0=7fffe39c9c22 a1=0 a2=7fffe39c9410 a3=3 items=1 ppid=310 pid=1984 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
Aureport
Audit loglarından arama yapmanın dışında (ausearch komutu ile yapılır) , bu loglardan özet bilgi çıkarmak için aureport komutu kullanılır. Kullanılan parametreleri ise
-au, --auth: Authentication (Kimlik doğrulama) işlemleri hakkında özet bilgi alınmasını sağlar.
-a, --avc : SELinux AVC (Access Vector Cache) mesajları hakkında özet bilgi verir.
-e, --event: Event tipleri hakkında özet bilgi verir.
-f, --file: Dosya işlemleri ile alakalı özet bilgi verir.
-k, --key: Anahtar kelimelere göre özet bilgi verir.
-l, --login : Sistem girişleri hakkında özet bilgi verir.
-p, --pid : PID (Süreç numarası) na göre özet bilgi verir.
-s, --syscall: Sistem çağrılarına göre özet bilgi verir.
--summary: Tekrar eden event`leri sadece rakkamsal olarak kaç defa geçtiğine göre ekrana bilgi verir.
-tm, --terminal: Ayrıt edici özelliğin terminal tipi olmasına gore özet bilgi verir.
-ts, --start Ayrıt edici özelliğin başlangıç tarihi olmasına gore özet bilgi verir. (tek başına verilirse bu tarihten şimdiki vakite kadar.)
-te, --end Ayrıt edici özelliğin bitiş tarihi olmasına gore özet bilgi verir. (tek başına verilirse en baştan bu belirtilen tarihe kadar)
-u, --user Ayırt edici özelliği user yaparak özet bilgi verir.
-x, --executable Ayırt edici çalıştırılabilir dosyalar olan eventlerde özet bilgi verir.
aureport Örnek Komutlar
# aureport -l -i -ts yesterday -te today
Login Report
============================================
# date time auid host term exe success event
============================================
1. 11/03/2011 14:29:16 root ? tty1 /bin/login no 3368
2. 11/03/2011 14:29:21 root ? tty2 /bin/login no 3370
3. 11/03/2011 14:29:27 root ? tty1 /bin/login no 3372
4. 11/03/2011 14:29:31 root ? tty2 /bin/login no 3374
5. 11/03/2011 14:30:00 ofsen ? tty4 /bin/login no 3376
6. 11/03/2011 14:30:11 ofsen ? tty4 /bin/login no 3378
7. 11/03/2011 14:30:19 ofsen ? tty4 /bin/login no 3380
8. 11/03/2011 14:30:25 root ? tty2 /bin/login no 3382
Son bir gün içinde sisteme kimlerin girdiğini (login olduğunu) öğrenmek için kullanılır.
# aureport --key –summary
Key Summary Report
===========================
total key
===========================
4440 identity
4 access
# aureport –anomaly
Sistem üzerinde oluşan, sistemin normal çalışması dışında anormal aktiviteleri görmek için
Anomaly Report
=========================================
# date time type exe term host auid event
=========================================
1. 04/27/2011 16:35:47 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 816
2. 04/27/2011 16:35:53 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 817
3. 04/27/2011 16:35:57 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 818
4. 04/27/2011 16:36:00 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 819
5. 04/27/2011 16:36:07 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 820
6. 04/27/2011 16:36:27 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 821
7. 04/27/2011 16:36:36 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 822
8. 04/27/2011 16:36:36 ANOM_PROMISCUOUS ? ? ? -1 823
9. 04/27/2011 16:36:57 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 824
10. 04/27/2011 16:37:17 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 825
11. 04/29/2011 04:03:41 ANOM_ABEND httpd ? ? -1 1180
12. 05/15/2011 04:02:13 ANOM_ABEND httpd ? ? -1 3599
13. 05/15/2011 04:02:13 ANOM_ABEND httpd ? ? -1 3600
14. 07/17/2011 04:02:24 ANOM_ABEND httpd ? ? -1 3819
15. 07/17/2011 04:02:24 ANOM_ABEND httpd ? ? -1 3820
16. 07/26/2011 17:03:49 ANOM_ABEND yum-updatesd-he ? ? -1 6071
17. 07/26/2011 18:05:29 ANOM_ABEND yum-updatesd-he ? ? -1 6084
18. 07/26/2011 19:06:46 ANOM_ABEND yum-updatesd-he ? ? -1 6091
19. 07/26/2011 20:08:49 ANOM_ABEND yum-updatesd-he ? ? -1 6104
20. 07/26/2011 21:10:37 ANOM_ABEND yum-updatesd-he ? ? -1 6111
21. 07/26/2011 22:13:26 ANOM_ABEND yum-updatesd-he ? ? -1 6124
22. 07/26/2011 23:17:25 ANOM_ABEND yum-updatesd-he ? ? -1 6131
23. 07/27/2011 00:21:33 ANOM_ABEND yum-updatesd-he ? ? -1 6144
24. 07/27/2011 01:23:36 ANOM_ABEND yum-updatesd-he ? ? -1 6157
25. 07/27/2011 02:25:21 ANOM_ABEND yum-updatesd-he ? ? -1 6170
27. 10/24/2011 17:55:37 ANOM_PROMISCUOUS ? ? ? -1 1034
28. 10/24/2011 17:55:44 ANOM_PROMISCUOUS ? ? ? -1 1036
31. 10/24/2011 17:55:50 ANOM_PROMISCUOUS ? ? ? -1 1038
32. 11/03/2011 15:12:51 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 3389
33. 11/03/2011 15:12:51 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 3390
34. 11/03/2011 15:12:54 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 3391
35. 11/03/2011 15:44:39 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 3392
# aureport –success
Başarılı olan eventlerin özet raporu
Success Summary Report
======================
Range of time in logs: 08/22/2010 12:01:01.383 - 11/03/2011 23:01:01.338
Selected time for report: 08/22/2010 12:01:01 - 11/03/2011 23:01:01.338
Number of changes in configuration: 70
Number of changes to accounts, groups, or roles: 67
Number of logins: 4
Number of failed logins: 0
Number of authentications: 221
Number of failed authentications: 0
Number of users: 1
Number of terminals: 11
Number of host names: 2
Number of executables: 9
Number of files: 0
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 0
Number of anomaly events: 16
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of keys: 0
Number of process IDs: 12914
Number of events: 99661
# ausearch –x cat | aureport –summary
ausearch cat komutunun geçtiği audit eventlerinin özet raporunun çıkartılması sağlanır.
Summary Report
======================
Range of time in logs: 05/22/1512804 10:59:45.8968 - 11/03/2011 16:56:47.622
Selected time for report: 05/22/1512804 10:59:45 - 11/03/2011 16:56:47.622
Number of changes in configuration: 0
Number of changes to accounts, groups, or roles: 0
Number of logins: 0
Number of failed logins: 0
Number of authentications: 0
Number of failed authentications: 0
Number of users: 0
Number of terminals: 1
Number of host names: 0
Number of executables: 1
Number of files: 2
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 0
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of keys: 2
Number of process IDs: 4
Number of events: 12
Audispd
Auditd tarafından alınan event`lerin kendi içindeki plugin sistemine aktarıp (Syslog ve AF_UNIX plugin gibi) logların başka yöntemlerle gerçek zamanlı olarak incelenmesini sağlayan bir programdır. Audispd servisi auditd tarafından başlatılır ve sonlandırılır. Auditd.conf dosyası içinden yapılan (dispatcher = /sbin/audispd satırı ile) bu ayar sayesinde auditd dispatcher programını yönetmektedir.
/etc/audisp/audispd.conf ana yapılandırma dosyası ve pluginler için /etc/audisp/plugins.d/*.conf dosyasını okuyan dispatcher programı belirtilen plugin yöntemlerine göre auditd`den aldığı logları bu pluginlere gönderir. Şu ana kadar fazla gelişmemiş olan bu özellik sayesinde audit eventlerinin real-time olarak farklı programlara yönlendirilmesi amaçlanmaktadır.
Audit Nedir?
Sözlük manası incelemek, denetlemek olan audit kelimesi işletim sistemlerinde kullanıcı ve sistem aktivitelerinin kayıt altına tutulup ileriye dönük inceleme yapılabilmesine olanak sağlayan bir altyapıdır. Her işletim sisteminin kendine ait bir audit alt yapısı mevcuttur.
Audit loglaması ve Syslog loglaması arası fark nedir?
Syslog sistem tarafında log atmak ve almak için kullanılan bir bileşendir. Fakat syslog`a nelerin, hangi işlemlerin log atılacağı tamamen uygulamanın yazarının tercihidir. Bu şekilde olan bir sürecte tam bir kayıt altına alma işlemi gerçekleşmeyecektir. Onun yerine uygulamanın veya kullanıcıların yaptığı her işlemin çekirdek tarafında loglanabileceği bir arabirim olan audit mekanızması gerçellenmiştir. Ayrıca syslog olayın olduğunu loglarken , audit biro lay olmadan ÖNCESİNİ ve SONRASINI da kayıt altına alabilmektedir.
Linux Audit Nedir?
Linux çekirdeğinin ve dolayısıyla çekirdek içinde bulunan system call adı verilen sistem çağrılarının kayıt altına alınıp ileriye dönük analiz yapılabilmesini sağlar. Yanlız unutulmamalıdır ki her audit işlemi , işletim sistemi çekirdeğini az veya çok meşgul edecektir. Bu yüzden audit yapılacak bileşenlerin dikkatli seçilmesi gerekmektedir.
Linux audit sistemi aşağıdaki 4 bileşenden oluşur.
1. Sistemlerde oluşan çekirdek olaylarının (syscall) toplanması ve de audit altyapısını kullanan kullanıcı programların loglaması için bir altyapı
2. Audit sisteminin yapılandırma dosyaları (/etc/audit/auditd.conf ve /etc/audit/auditd.rules)
3. Her bir audit olayının sistemde okunabilir halde durduğu dosya ( /var/log/audit/audit.log)
4. Binary olan audit loglarını incelemek için yardımcı programlar.
audispd(8), ausearch(8), aureport(8), auditctl(8).
Linux audit Red Hat firması tarafından geliştirilmesine başlanmış ve Linux çekirdeğine girmiş bir çekirdek (kernel) bileşenidir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
adresinden geliştirilmesi takip edilebilen Linux audit sistemi sadece Red Hat tarafından değil diğer bütün Linux dağıtımları tarafından da desteklenmektedir.Linux Audit Büyük Resim
Linux Audit sisteminin daha iyi anlaşılabilmesi için aşağıdaki resimden faydalanabilirsiniz.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linux Audit Çekirdek Bileşeni
Red Hat Enterprise Linux 5 ile gelen çekirdek içine audit bileşeni otomatik olarak gömülmüştür. (Kernel module olarak değil, çekirdek dosyasının içinde yer almaktadır) /boot/vmlinuz-2.6.18-92.el5 gibi bir dosya olan çekirdek dosyası içinde gömülü geldiği için audit sistemini başlangıçta kapatılması istenirse /boot/grub/grub.conf dosyası içinde ilgili kernel stanza`sı sonuna audit=0 eklenmelidir. Örnek vermek gerekirse:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ audit=0
initrd /initrd-2.6.18-92.el5.img
Bu işlemden sonra işletim sistemi tarafında da auditd servisi kapatılmalıdır. (chkconfig auditd off && service auditd stop) ve daha sonra işletim sistemi reboot edilmelidir. Eğer reboot edilmeden auditd servisi geçici olarak kapatılmak istenirse
# audictl –e 0
komutu ile audit sisteminin kernel tarafı kapatılır. Ayrıca ek olarak uditd servisi kapatılmalıdır. (chkconfig auditd off && service auditd stop). Eğer auditctl –e 0 verilmek yerine sadece chkconfig auditd off && service auditd stop komutu verilirse çekirdek tarafından gönderilen audit logları auditd`ye değil syslog`a gönderilecek ve bu sefer bu loglar /var/log/audit/audit.log dosyası yerine /var/log/messages dosyasına akmaya başlayacaktır.
Audit sistemini enable etmek için Red Hat Enterprise Linux 5`te herhangi birşey yapılmasına gerek yoktur. Zaten öntanımlı olarak açık gelmektedir. Fakat kurmak, servisi enable etmek ve başlatmak için aşağıdaki komutlar verilir.
# yum –y install audit
# chkconfig auditd on
# service auditd start
Linux Audit yapılandırma dosyaları
Red Hat Enterprise Linux işletim sisteminde iki adet yapılandırma dosyası mevcuttur.
/etc/audit/auditd.conf
Bu dosya auditd servis yazılımının (daemon) yapılandırma dosyasıdır.Bu servis nelerin audit edileceğini değil sadece bu mesajları işleyen auditd servisinin aldığı audit mesajlarını ne yapacağını ve sistem diski dolması durumunda ne yapılacağı gibi işlerden sorumlu bir bileşendir. Aşağıda RHEL ile gelen öntanımlı auditd.conf gösterilmektedir.
#
# This file controls the configuration of the audit daemon
#
log_file = /var/log/audit/audit.log
log_format = RAW
log_group = root
priority_boost = 4
flush = INCREMENTAL
freq = 20
num_logs = 4
disp_qos = lossy
dispatcher = /sbin/audispd
name_format = NONE
##name = mydomain
max_log_file = 5
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND
##tcp_listen_port =
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
enable_krb5 = no
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
log_file
auditd tarafından alınan logların düz okunabilir metin olarak nereye kayıt edileceği bu direktif ile belirtilir.
log_format
Log dosyasının hangi formatta olacağı burada belirtilir. RAW veya NOLOG kullanılabilir. RAW ise mesajın kernel`ın gönderdiği şekilde ama düz metin olarak kayıt eder.
log_group
/var/log/audit/ dizini altındaki log dosyalarının hangi gruba ait olacağını belirtir. Eğer root dışında başka bir grup belirtilirse dosyanın sahibi root, grubu ise belirtilen grup olur.
log_group=root
-rw------- 1 root root 390129 Oct 31 16:16 audit.log
-r-------- 1 root root 5243040 Oct 31 12:12 audit.log.1
-r-------- 1 root root 5243064 Oct 29 06:24 audit.log.2
-r-------- 1 root root 5243057 Oct 26 23:38 audit.log.3
log_group=baskagrup
-rw-r----- 1 root baskagrup 389166 Oct 31 16:16 audit.log
-r-------- 1 root root 5243040 Oct 31 12:12 audit.log.1
-r-------- 1 root root 5243064 Oct 29 06:24 audit.log.2
-r-------- 1 root root 5243057 Oct 26 23:38 audit.log.3
priority_boost
auditd sürecinin başlanğıçta hangi priorty`de başlayacağını belirtir. Buradaki 4 değeri öntanımlı değerdir.
flush ve freq
none, incremental, data ve sync değerlerini alan flush, logların ne kadar sürede bir diske yazılacağını belirtir. İncremental değerini almış ise bir sonraki satır olan freq değeri diske flush etmeden önce ne kadar kadar kayıtı diske yazacağını belirtir.
num_logs
log dosyalarının kaç adet tutulacağını belirtir. Değeri 4 log dosyaları en fazla 3 kere döndürülür.
num_logs=4
-rw------- 1 rootroot 390129 Oct 31 16:16 audit.log
-r-------- 1 root root 5243040 Oct 31 12:12 audit.log.1
-r-------- 1 root root 5243064 Oct 29 06:24 audit.log.2
-r-------- 1 root root 5243057 Oct 26 23:38 audit.log.3
disp_qos
auditd`nin dispatcher adı verilen program ile nasıl haberleşeceğini belirtir. blocking/lossless veya non-blocking/lossy değerlerini alır. Bu iki program arasında 128k ‘lık bir tampon değeri vardır.
Dispatcher
auditd tarafından başlatılan ve de auditd`ye gelen dosyaların bir kopyasınında burada belirtile n programa gönderilmesini sağlayan bir opsiyondur.
name_format , name
auditd log satırlarında makinaların adlarının nasıl gösterileceğini belirtir. Default değeri none`dır. Bu değer fqd değerini alırsa
node=server.endersys.com type=CONFIG_CHANGE msg=audit(1320072332.262:549010): audit_enabled=1 old=1 by auid=4294967295 res=1
numeric olursa
node=10.123.18.10 type=CONFIG_CHANGE msg=audit(1320072332.262:549010): audit_enabled=1 old=1 by auid=4294967295 res=1
NONE olursa
type=CONFIG_CHANGE msg=audit(1320072376.797:549022): audit_enabled=1 old=1 by auid=4294967295 res=1
name_format= user yapılıp , name = TEST yapılırsa
node=TEST type=CONFIG_CHANGE msg=audit(1320072421.562:549026): audit_enabled=1 old=1 by auid=4294967295 res=1
max_log_file
auditd.log dosyalarının en fazla kac MB olabileceğini belirtir.
max_log_file_action
max_log_file boyutuna ulaşıldıktan sonra ne yapılacağını beliritir. Red Hat`te default olara rotate seçilmiştir. Yani 5 MB a ulaşınca dosyalar rotate edilir num_logs adedi kadar
space_left
/var/log/audit ‘in olduğu disk bölmesi yüzde kaç dolunca mesaj atmaya başlanacağını belirtir.
space_left_action
Disk belirli bir seviyede dolunca uyarı mesajının ı hangi metodla belirtileceğini ifade eder. Olası değerler ignore, syslog, email, exec, suspend, single ve halt ‘tır. RHEL 5 syslog değerini kullanır.
admin_space_left , admin_ space_left_action
space_left değerinden daha küçük olma durumunda olan bu değer admin userını ne zaman uyarılacağını belirtir.
disk_full_action
ignore, syslog, exec, suspend, single ve halt değerlerini alan ve Red Hat`in suspend aksiyonunu kullandığı bu değer disk dolunca hangi işlem yapılacağını belirtir. Suspend ile auditd hala çalışmaya devam eder fakat diske yazma işlemi yapılmaz.
disk_error_action
Red Hat`te default aksiyonu SUSPEND olan bu değer diskte hata durumu olması durumunda ne yapılacağını beliritir. Alabileceği değerler ignore, syslog, exec, suspend, single ve halt tır.
tcp_listen_port , tcp_listen_queue , tcp_max_per_addr, tcp_client_ports, tcp_client_max_idle
auditd ‘nin başka hostların audit loglarını alması için bir tcp portunu dinlemesi için kullanılan parametrelerdir.
enable_krb5, krb5_principal, krb5_key_file
Uzak bir makinadan audit mesajları geliyorsa bu gelen mesajların önce authenticate olunmasını sonra şifreli bir şekilde alınmasını sağlar.
Auditd yapılandırması ile alakalı daha fazla bilgi için man auditd.conf komutu vererek man sayfasına bakabilirsiniz.
/etc/audit/audit.rules
Bu dosya çekirdeğe yüklenen ve çekirdeğin hangi sistem çağrılarını veya hangi durumları audit log`u olarak üreteceğinin yapılandırıldığı yapılandırma dosyasıdır. Bu dosya audit servisi başlangıç dosyası (/etc/init.d/auditd) içinde auditctl komutuna parametre olarak yüklenip çekirdeğe auditctl tarafından gönderilir. Aşağıda RHEL 5 ile gelen ön tanımlı audit.rules dosyası gösterilmektedir. Aslında buradaki her bir satır auditctl komutuna verilen bir parametredir. (Ör: -D satırı aslında , auditctl –D şeklinde çalıştırılır)
# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# First rule - delete all
-D
# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320
# Feel free to add below this line. See auditctl man page
Audit kurallarının yazıldığı dosyadır. Genelde auditctl komutları 3 ana başlıktan oluşur. Bu ana parametreler
1) Control : Kontrol komutları. Neyin dinleneceğini belirtmek yerine kural ekleme , silme gibi işlemler için kullanılır.
2) File System: Watches olarak ta adlanrılabilen bu tip komutlar istenilen dosya veya dizin ile alakalı audit loglarının oluşturulmas için kullanılır.
3) System Call: Çekirdekte çalışan sistem çağrılarını n loglanması için kullanılır.
den oluşmaktadır.
Bu üç ana parametrelerin nelerden oluştuğuna girmeden önce Red Hat Enterprise Linux ile gelen ön tanımlı yapılandırmadaki –D ve –b 320 satırlarını açıklayalım. –D, kernela yüklenen bütün audit kuralların silinmesini sağlar. –b 320 ise 320 adet buffer tanımlaması yapmaktadır. Eğer bu buffer dolarsa audit eventleri kayıp olur. Bu değer tamamen ne kadar çok audit logunun istenildiğine göre ayarlanabilir. Yoğun bir sistem için başlangıç olarak -b 8192 kullanılabilir.
Kontrol Kuralları
-D Kernela yüklenen bütün audit kuralların silinmesini sağlar. Genelde audit.rules dosyasındaki ilk satır budur.
-b backlog tampon boyutunu belirler. Dosya sisteminin yazma hızına ve sistemin yoğunluğu ve istenilen audit eventlerin çokluğuna göre bu değer uygun bir boyuta ayarlanmalıdır.
-f Çekirdeğin kritik durumlarda ne yapacağını belirtir. Alacağı değerler 0,1,2 dir. 0=silent 1=printk 2=panic masına gelmektedir. Bu kritik durumlar
- auditd servisine iletim hataları
- backlog limitinin aşılması
- sistem hafızasının bitimesi
- anlık oran limitinin aşılması (rate limit exceed)
-e enable flag. Bu audit sisteminin kernelda kapatılması, açılması ve kalıcı olarak ve değiştirilmeyecek şekilde açılmasıdır. –e 0 , e 1 veya –e 2 şeklinde değerler alır. 0 audit sistemini kapatır, 1 açar ve 2 de kalıcı olarak açılmasını sağlar ( 2 değeri verildikten sonra audit kurallarında bir değişiklik yapılması için reboot gerekmetedir.)
-l audit kurallarının listelenmesini sağlar.
Dosya Sistemi Kuralları
Sistem üzerindeki dosyalar (UNIX`te dosya sistemi üzerindeki herşeyin bir dosya olduğunu belirtelim) üzerinde yapılan işlemlerin kuralları aşağıdaki gibi tanımlanır.
-w <dosya veya dizin> -p <izinler> -k <anahtar kelime>
-w ‘ye parametre olarak dosya veya dizin verilir.
-p ‘ye parametre olarak verilen izinler aşağıdaki anahtar kelimelerden biri veya birden fazlası birleştirilerek kullanılabilir.
r - dosyanın okuması
w - dosyaya yazma
x – dosyanın çalıştırılması
a – dosya tanımlarının değiştirilmesi (izin veya özellik)
-k benzer kural setlerini gruplamak için kullanılan bir anahtar kelimedir. Tamamen istenilen 31 karakteri aşmayacak şekilde bir değeri olabilir. –D veya –l ‘ye parametre olarak verilerek sadece istenilen keyword`e sahip kuralların silinmesi veya listelenmesi sağlanabilir.
Sistem Çağrıları Kuralları
-a aksiyon,list -S syscall -F alan=değer -k <anahtar kelime>
-a iki değer alır. Aksiyon ve list.
Aksiyon always veya never değerini alır ilgili kural için bir event oluşturulup oluşturulmayacağını içerir.
List (bazı durumlarda filtre olarak ta tanımlanabiliyor) olarak alabileceği değerler entry , exit, user , task ve exclude ‘tur . Linux çekirdeği bu 5 filtreden birini kullanmaktadır.
Entry , sistem çağrılarının başında exit ise sistem çağrılarının sonunda kullanılmaktadır. Daha çok tercih edilen exit filtresidir zaten ileriki Linux çekirdeği sürümlerinde entry filtresinin kaldırılması düşünülmektedir.
User filtresi userland programlarda oluşacak durumların loglanması için kullanılır ve alabileceği filtre alanları ise uid, auid, gid ve pid ‘tir.
Task çok nadir kullanılmakta ve sadece fork ve clone sistem çağrıları için kullanılır.
Exclude filtresi bazı eventleri loglama dışı bırakmak için kullanılır.
En çok kullanılan aksiyon ve list çifti always,exit ‘dir. Zaten internet üzerinde bulunabilecek çoğu örnekte de bu çift kullanılmaktadır.
-S ile kural yazılacak ve loglanması istenen sistem çağrıları belirtilir.
-F alan=değer Burada istenilen filtreler belirtilir. Mesela -F auid>=500 -F auid!=1002 ile user id`si 500 den büyük ve 1002 olmayan kullanıcılar için bir filtre yazılır. Birden fazla –F satırı varsa and`lenerek ilgili filtre oluşturulur.
-k benzer kural setlerini gruplamak için kullanılan bir anahtar kelimedir. Tamamen istenilen 31 karakteri aşmayacak şekilde bir değeri olabilir. –D veya –l ‘ye parametre olarak verilerek sadece istenilen keyword`e sahip kuralların silinmesi veya listelenmesi sağlanabilir.
Örnek audit.rules kuralları
Yukarıda anlatılan audit.rules kural satırlarını birkaç örnekle açıklayalım.
-w /etc/passwd -p wa -k identity
/etc/passwd dosyasına yazılma veya attribute değişikliği yapıldığında identity ifadesi ile taglenerek audit logu oluşturulur.
-w /etc/shadow -p ra -k identity
/etc/shadow dosyası okunduğunda veya attribute değişikliği yapıldığında identity ifadesi ile taglenerek audit logu oluşturulur.
-a always,exit -F arch=ARCH -S adjtimex -S settimeofday -S stime -k time-change
Üssteki örnekte ARCH yerine 32 bit veya 64 bit olmasına göre b32 veya b64 değeri kullanılabilir. Adjtimex , settimeofdayve stime sistem çağrılarının çıkışında time-change anahtar kelimesi ile etiketlenerek loglanılması sağlanır.
-a always,exit -F arch=ARCH -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=500 -F auid!=4294967295 -k access
-a always,exit -F arch=ARCH -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=500 -F auid!=4294967295 -k access
Yukarıdaki iki örnek sistemde uid`si 500`den büyük olan normal kullanıcıların izin verilmeyen (EPERM ve EACCESS`i başarısız olan) dosyaları okumaya çalıştığında log oluşmasını sağlar ve acesss anahtar kelimesi ile etiketler.
Daha fazla örnek için Audit sisteminin yazarının tavsiye yazdığı örnek audit rules dosyası incelenebilir. /usr/share/doc/audit-*/stig.rules dosyasında daha fazla ayrıntı bulabilirsiniz.
Linux Audit log dosyası - /var/log/audit/audit.log
Çekirdek tarafından auditd ‘ye gönderilen audit logları ön tanımlı olarak (/etc/audit/auditd.conf ‘taki log_file = /var/log/audit/audit.log satırı ile) /var/log/audit/audit.log dosyasına yazılır okunabilir dosya olarak.
Linux Audit raporlama komutları
Ausearch
ausearch komutu auditd tarafından loglanan audit olaylarında belirli kriterlere göre arama yapılması için kullanılır. Her eklenen yeni kriter bir önceki ile “and“ lenerek istenen kritere uyan audit logları gösterilir. Bu arama /var/log/audit altındaki dosyalar içinden yapılmaktadır. En çok ullanılan parametreleri
-l, --line-buffered : Line buffered olarak bütün kayıtları ekrana basar
-r, --raw : Event`leri formatlamadan, olduğu gibi ekrana basar. –l ve –r birbirinin karşıt parametreleridir.
-a, --event Eventid numarasına göre arama yapılır.
-e, --exit: exit code veya error no`ya göre arama yapar.
-f, --file : audit eventlerinde geçen ve auditlenen dosyalara göre arama yapılmasını sağlar.
-k, --key: audit.rules veya auditctl ile girilen anahtar kelimeye göre (keyword) arama yapılmasını sağlar.
-p, --pid: Süreç numarasına göre (PID) filtreleme yapılmasını sağlar.
-ts , --start: Audit loglarında başlangıç tarihi verilerek bu başlangıç tarihiden sonraki eventlerde filtreleme sağlar.
-te , --end: Loglarda en son hangi tarihe göre arama yapılacağını belirtir.
-tm, --terminal: Terminal adına göre arama yapılması sağlanır. Cron ve atd gibi uygulamalar terminal olarak kendi binary adlarını yazar (terminal=cron gibi)
-ui, --uid : Userid ye göre filtreleme yapılması için kullanılır.
-gi, --gid Group id`ye göre filtreleme yapılması için kullanılır.
-x, --executable verilen paramtre olarak bir komut alan bu arguman bu komutlara uyan eventleri arar.
Daha fazla ausearch parametresi için ausearch klavuz sayfasına man ausearch komutu ile bakabilirsiniz.
Ausearh Örnek Komutlar
# ausearch --key access --file /etc/fstab –raw
Access keywordu kullanılarak tanımlanmış kurallardan /etc/fstab dosyasının erişildiği logları raw olarak göster.
type=SYSCALL msg=audit(1320176312.990:564657): arch=c000003e syscall=2 success=yes exit=3 a0=7fffed6eac22 a1=0 a2=7fffed6ea130 a3=3 items=1 ppid=11365 pid=12569 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
type=CWD msg=audit(1320176312.990:564657): cwd="/root"
type=PATH msg=audit(1320176312.990:564657): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
type=SYSCALL msg=audit(1320176330.103:564658): arch=c000003e syscall=2 success=yes exit=3 a0=7fffbfcf0c22 a1=0 a2=7fffbfcf0740 a3=3 items=1 ppid=11365 pid=12574 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
type=CWD msg=audit(1320176330.103:564658): cwd="/root"
type=PATH msg=audit(1320176330.103:564658): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
type=SYSCALL msg=audit(1320332207.622:591961): arch=c000003e syscall=2 success=yes exit=3 a0=7fffe39c9c22 a1=0 a2=7fffe39c9410 a3=3 items=1 ppid=310 pid=1984 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
type=CWD msg=audit(1320332207.622:591961): cwd="/root"
type=PATH msg=audit(1320332207.622:591961): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
# ausearch -ts today -k Password
Keyword olarak password verilmiş kurallarda bügün içinde şu ana kadar oluşan audit loglarını gösterir.
# ausearch -ts today -k password-file -x rm
# ausearch -ts 3/11/11 -k password-file -x rm
rm komutu ile bugün içinde kimin şifre dosyalarına eriştiğini gösterir. ( -ts today veya –ts direkt tarih)
#ausearch –x cat
Cat komutu kullanımı sonucu oluşan eventleri gösterir.
----
time->Tue Nov 1 21:38:32 2011
type=PATH msg=audit(1320176312.990:564657): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1320176312.990:564657): cwd="/root"
type=SYSCALL msg=audit(1320176312.990:564657): arch=c000003e syscall=2 success=yes exit=3 a0=7fffed6eac22 a1=0 a2=7fffed6ea130 a3=3 items=1 ppid=11365 pid=12569 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
----
time->Tue Nov 1 21:38:50 2011
type=PATH msg=audit(1320176330.103:564658): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1320176330.103:564658): cwd="/root"
type=SYSCALL msg=audit(1320176330.103:564658): arch=c000003e syscall=2 success=yes exit=3 a0=7fffbfcf0c22 a1=0 a2=7fffbfcf0740 a3=3 items=1 ppid=11365 pid=12574 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
----
time->Tue Nov 1 22:59:05 2011
type=PATH msg=audit(1320181145.366:565387): item=0 name="/etc/shadow" inode=131817 dev=08:02 mode=0100400 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1320181145.366:565387): cwd="/root"
type=SYSCALL msg=audit(1320181145.366:565387): arch=c000003e syscall=2 success=yes exit=3 a0=7fffc51afc21 a1=0 a2=7fffc51aebf0 a3=3 items=1 ppid=11365 pid=14236 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="identity"
----
time->Thu Nov 3 16:56:47 2011
type=PATH msg=audit(1320332207.622:591961): item=0 name="/etc/fstab" inode=133136 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1320332207.622:591961): cwd="/root"
type=SYSCALL msg=audit(1320332207.622:591961): arch=c000003e syscall=2 success=yes exit=3 a0=7fffe39c9c22 a1=0 a2=7fffe39c9410 a3=3 items=1 ppid=310 pid=1984 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="cat" exe="/bin/cat" key="access"
Aureport
Audit loglarından arama yapmanın dışında (ausearch komutu ile yapılır) , bu loglardan özet bilgi çıkarmak için aureport komutu kullanılır. Kullanılan parametreleri ise
-au, --auth: Authentication (Kimlik doğrulama) işlemleri hakkında özet bilgi alınmasını sağlar.
-a, --avc : SELinux AVC (Access Vector Cache) mesajları hakkında özet bilgi verir.
-e, --event: Event tipleri hakkında özet bilgi verir.
-f, --file: Dosya işlemleri ile alakalı özet bilgi verir.
-k, --key: Anahtar kelimelere göre özet bilgi verir.
-l, --login : Sistem girişleri hakkında özet bilgi verir.
-p, --pid : PID (Süreç numarası) na göre özet bilgi verir.
-s, --syscall: Sistem çağrılarına göre özet bilgi verir.
--summary: Tekrar eden event`leri sadece rakkamsal olarak kaç defa geçtiğine göre ekrana bilgi verir.
-tm, --terminal: Ayrıt edici özelliğin terminal tipi olmasına gore özet bilgi verir.
-ts, --start Ayrıt edici özelliğin başlangıç tarihi olmasına gore özet bilgi verir. (tek başına verilirse bu tarihten şimdiki vakite kadar.)
-te, --end Ayrıt edici özelliğin bitiş tarihi olmasına gore özet bilgi verir. (tek başına verilirse en baştan bu belirtilen tarihe kadar)
-u, --user Ayırt edici özelliği user yaparak özet bilgi verir.
-x, --executable Ayırt edici çalıştırılabilir dosyalar olan eventlerde özet bilgi verir.
aureport Örnek Komutlar
# aureport -l -i -ts yesterday -te today
Login Report
============================================
# date time auid host term exe success event
============================================
1. 11/03/2011 14:29:16 root ? tty1 /bin/login no 3368
2. 11/03/2011 14:29:21 root ? tty2 /bin/login no 3370
3. 11/03/2011 14:29:27 root ? tty1 /bin/login no 3372
4. 11/03/2011 14:29:31 root ? tty2 /bin/login no 3374
5. 11/03/2011 14:30:00 ofsen ? tty4 /bin/login no 3376
6. 11/03/2011 14:30:11 ofsen ? tty4 /bin/login no 3378
7. 11/03/2011 14:30:19 ofsen ? tty4 /bin/login no 3380
8. 11/03/2011 14:30:25 root ? tty2 /bin/login no 3382
Son bir gün içinde sisteme kimlerin girdiğini (login olduğunu) öğrenmek için kullanılır.
# aureport --key –summary
Key Summary Report
===========================
total key
===========================
4440 identity
4 access
# aureport –anomaly
Sistem üzerinde oluşan, sistemin normal çalışması dışında anormal aktiviteleri görmek için
Anomaly Report
=========================================
# date time type exe term host auid event
=========================================
1. 04/27/2011 16:35:47 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 816
2. 04/27/2011 16:35:53 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 817
3. 04/27/2011 16:35:57 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 818
4. 04/27/2011 16:36:00 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 819
5. 04/27/2011 16:36:07 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 820
6. 04/27/2011 16:36:27 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 821
7. 04/27/2011 16:36:36 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 822
8. 04/27/2011 16:36:36 ANOM_PROMISCUOUS ? ? ? -1 823
9. 04/27/2011 16:36:57 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 824
10. 04/27/2011 16:37:17 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 825
11. 04/29/2011 04:03:41 ANOM_ABEND httpd ? ? -1 1180
12. 05/15/2011 04:02:13 ANOM_ABEND httpd ? ? -1 3599
13. 05/15/2011 04:02:13 ANOM_ABEND httpd ? ? -1 3600
14. 07/17/2011 04:02:24 ANOM_ABEND httpd ? ? -1 3819
15. 07/17/2011 04:02:24 ANOM_ABEND httpd ? ? -1 3820
16. 07/26/2011 17:03:49 ANOM_ABEND yum-updatesd-he ? ? -1 6071
17. 07/26/2011 18:05:29 ANOM_ABEND yum-updatesd-he ? ? -1 6084
18. 07/26/2011 19:06:46 ANOM_ABEND yum-updatesd-he ? ? -1 6091
19. 07/26/2011 20:08:49 ANOM_ABEND yum-updatesd-he ? ? -1 6104
20. 07/26/2011 21:10:37 ANOM_ABEND yum-updatesd-he ? ? -1 6111
21. 07/26/2011 22:13:26 ANOM_ABEND yum-updatesd-he ? ? -1 6124
22. 07/26/2011 23:17:25 ANOM_ABEND yum-updatesd-he ? ? -1 6131
23. 07/27/2011 00:21:33 ANOM_ABEND yum-updatesd-he ? ? -1 6144
24. 07/27/2011 01:23:36 ANOM_ABEND yum-updatesd-he ? ? -1 6157
25. 07/27/2011 02:25:21 ANOM_ABEND yum-updatesd-he ? ? -1 6170
27. 10/24/2011 17:55:37 ANOM_PROMISCUOUS ? ? ? -1 1034
28. 10/24/2011 17:55:44 ANOM_PROMISCUOUS ? ? ? -1 1036
31. 10/24/2011 17:55:50 ANOM_PROMISCUOUS ? ? ? -1 1038
32. 11/03/2011 15:12:51 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 3389
33. 11/03/2011 15:12:51 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 3390
34. 11/03/2011 15:12:54 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 3391
35. 11/03/2011 15:44:39 ANOM_PROMISCUOUS /usr/sbin/tcpdump pts0 ? -1 3392
# aureport –success
Başarılı olan eventlerin özet raporu
Success Summary Report
======================
Range of time in logs: 08/22/2010 12:01:01.383 - 11/03/2011 23:01:01.338
Selected time for report: 08/22/2010 12:01:01 - 11/03/2011 23:01:01.338
Number of changes in configuration: 70
Number of changes to accounts, groups, or roles: 67
Number of logins: 4
Number of failed logins: 0
Number of authentications: 221
Number of failed authentications: 0
Number of users: 1
Number of terminals: 11
Number of host names: 2
Number of executables: 9
Number of files: 0
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 0
Number of anomaly events: 16
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of keys: 0
Number of process IDs: 12914
Number of events: 99661
# ausearch –x cat | aureport –summary
ausearch cat komutunun geçtiği audit eventlerinin özet raporunun çıkartılması sağlanır.
Summary Report
======================
Range of time in logs: 05/22/1512804 10:59:45.8968 - 11/03/2011 16:56:47.622
Selected time for report: 05/22/1512804 10:59:45 - 11/03/2011 16:56:47.622
Number of changes in configuration: 0
Number of changes to accounts, groups, or roles: 0
Number of logins: 0
Number of failed logins: 0
Number of authentications: 0
Number of failed authentications: 0
Number of users: 0
Number of terminals: 1
Number of host names: 0
Number of executables: 1
Number of files: 2
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 0
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of keys: 2
Number of process IDs: 4
Number of events: 12
Audispd
Auditd tarafından alınan event`lerin kendi içindeki plugin sistemine aktarıp (Syslog ve AF_UNIX plugin gibi) logların başka yöntemlerle gerçek zamanlı olarak incelenmesini sağlayan bir programdır. Audispd servisi auditd tarafından başlatılır ve sonlandırılır. Auditd.conf dosyası içinden yapılan (dispatcher = /sbin/audispd satırı ile) bu ayar sayesinde auditd dispatcher programını yönetmektedir.
/etc/audisp/audispd.conf ana yapılandırma dosyası ve pluginler için /etc/audisp/plugins.d/*.conf dosyasını okuyan dispatcher programı belirtilen plugin yöntemlerine göre auditd`den aldığı logları bu pluginlere gönderir. Şu ana kadar fazla gelişmemiş olan bu özellik sayesinde audit eventlerinin real-time olarak farklı programlara yönlendirilmesi amaçlanmaktadır.