System Auditing Nedir?

Linux Denetim sistemi, sisteminizdeki güvenlikle ilgili bilgileri izlemenin bir yolunu sağlar. Denetim, önceden yapılandırılmış kurallara dayalı olarak, sisteminizde meydana gelen olaylar hakkında mümkün olduğunca fazla bilgi kaydetmek için günlük girişleri oluşturur. Bu bilgi, görev açısından kritik ortamların güvenlik ilkesini ihlal edenleri ve gerçekleştirdiği eylemleri belirlemesi açısından çok önemlidir. Denetim, sisteminize ek güvenlik sağlamaz; bunun yerine, sisteminizde kullanılan güvenlik ilkelerinin ihlallerini keşfetmek için kullanılabilir. Bu ihlaller, SELinux gibi ek güvenlik önlemleri ile daha da önlenebilir.
Aşağıdaki liste, Audit'in günlük dosyalarına kaydedebildiği bazı bilgileri özetlemektedir:
- Bir olayın tarihi ve saati, türü ve sonucu.
- Öznelerin ve nesnelerin duyarlılık etiketleri.
- Bir olayın, olayı tetikleyen kullanıcının kimliğiyle ilişkilendirilmesi.
- Denetim yapılandırmasındaki tüm değişiklikler ve Denetim günlük dosyalarına erişme girişimleri.
- SSH, Kerberos ve diğerleri gibi kimlik doğrulama mekanizmalarının tüm kullanımları.
- /etc/passwd gibi herhangi bir güvenilir veritabanında yapılan değişiklikler.
- Sisteme veya sistemden bilgi alma veya verme girişimleri.
- Kullanıcı kimliğine, konu ve nesne etiketlerine ve diğer niteliklere göre olayları dahil edin veya hariç tutun.
Kullanım Durumları
Dosya erişimini izleme :Denetim, bir dosyaya veya dizine erişildiğini, değiştirildiğini, yürütüldüğünü veya dosyanın özniteliklerinin değiştirilip değiştirilmediğini izleyebilir. Bu, örneğin önemli dosyalara erişimi tespit etmek ve bu dosyalardan birinin bozulması durumunda bir Denetim izine sahip olmak için kullanışlıdır.
Sistem çağrılarını izleme :Denetim, belirli bir sistem çağrısı her kullanıldığında bir günlük girişi oluşturacak şekilde yapılandırılabilir. Bu, örneğin, diğer zamanla ilgili sistem çağrılarını izleyerek sistem zamanındaki değişiklikleri izlemek için settimeofday ve clock_adjtine kullanılabilir.
Bir kullanıcı tarafından çalıştırılan kayıt komutları :Denetim, bir dosyanın yürütülüp yürütülmediğini izleyebilir, böylece belirli bir komutun her yürütmesini kaydetmek için kurallar tanımlanabilir. Örneğin, /bin izindeki her yürütülebilir dosya için bir kural tanımlanabilir. Ortaya çıkan günlük girişleri daha sonra kullanıcı başına yürütülen komutların bir denetim izini oluşturmak için kullanıcı kimliğine göre aranabilir.
Sistem yol adlarının yürütülmesini kaydetme :Kural çağırma sırasında bir yolu bir düğüme çeviren dosya erişimini izlemenin yanı sıra, Denetim artık bir yolun yürütülmesini, kural çağırma sırasında mevcut olmasa bile veya kural çağrıldıktan sonra dosya değiştirilse bile izleyebilir. Bu, yürütülebilir bir programı yükselttikten sonra veya yüklenmeden önce kuralların çalışmaya devam etmesine izin verir.
Güvenlik olaylarını kaydetme :Kimlik doğrulama modülü , pam_faillock başarısız oturum açma girişimlerini kaydedebilir. Denetim, başarısız oturum açma girişimlerini de kaydedecek şekilde ayarlanabilir ve oturum açmaya çalışan kullanıcı hakkında ek bilgi sağlar.
Olayları arama :Denetim, günlük girişlerini filtrelemek ve bir dizi koşula dayalı olarak eksiksiz bir denetim izi sağlamak için kullanılabilen ausearch yardımcı programını sağlar.
Özet raporları çalıştırma :Aureport yardımcı programı, diğer şeylerin yanı sıra, kaydedilen olayların günlük raporlarını oluşturmak için kullanılabilir. Bir sistem yöneticisi daha sonra bu raporları analiz edebilir ve şüpheli etkinliği daha fazla araştırabilir.
Ağ erişimini izleme :iptables ve ebtables yardımcı programları , Denetim olaylarını tetikleyecek şekilde yapılandırılabilir ve sistem yöneticilerinin ağ erişimini izlemesine olanak tanır.
Not :Denetim tarafından toplanan bilgi miktarına bağlı olarak sistem performansı etkilenebilir.
Denetim sistemi iki ana bölümden oluşur: kullanıcı alanı uygulamaları ve yardımcı programları ve çekirdek tarafı sistem çağrı işleme. Çekirdek bileşeni, kullanıcı alanı uygulamalarından sistem çağrılarını alır ve bunları şu filtrelerden biri aracılığıyla filtreler: user , task , fstype veya exit .
Bir sistem çağrısı, hariç tutma filtresini geçtikten sonra, Denetim kuralı yapılandırmasına dayalı olarak, daha fazla işlem için Denetim arka plan programına gönderen yukarıda belirtilen filtrelerden biri aracılığıyla gönderilir.
Kullanıcı alanı Denetim arka plan programı, bilgileri çekirdekten toplar ve bir günlük dosyasında girişler oluşturur. Diğer Denetim kullanıcı alanı yardımcı programları, Denetim arka plan programı, çekirdek Denetim bileşeni veya Denetim günlük dosyaları ile etkileşime girer:
audisp — Denetim gönderici arka plan programı, Denetim arka plan programı ile etkileşime girer ve olayları daha sonraki işlemler için diğer uygulamalara gönderir. Bu arka plan programının amacı, gerçek zamanlı analitik programların Denetim olaylarıyla etkileşime girebilmesi için bir eklenti mekanizması sağlamaktır.
Auditctl — Denetim denetimi yardımcı programı, kuralları yönetmek ve olay oluşturma sürecinin bir dizi ayarını ve parametresini denetlemek için çekirdek Denetim bileşeniyle etkileşime girer.
Kalan Denetim yardımcı programları, Denetim günlük dosyalarının içeriğini girdi olarak alır ve kullanıcının gereksinimlerine göre çıktı oluşturur. Örneğin, aureport yardımcı programı, kaydedilen tüm olayların bir raporunu oluşturur.
Daha fazla bilgi için bakınız:
Audit Paketinin Yüklenmesi
Denetim sistemini kullanabilmek için sisteminizde denetim paketlerinin kurulu olması gerekir. Denetim paketleri varsayılan olarak RHEL 7'de yüklü gelir. Bu paketler kurulu değilse, Denetim'i ve bağımlılıkları kurmak için kök kullanıcı olarak aşağıdaki komutu yürütün.
RHEL Türü Dağıtımlar
sudo yum -y install audit audit-libs
DEBIAN Türü Dağıtımlar
sudo apt -y install auditd audispd-plugins

Audit Servisi Yapılandırma
Denetim arka plan programı /etc/audit/auditd.conf dosyasından yapılandırılabilir . Bu dosya, Denetim arka plan programının davranışını değiştiren yapılandırma parametrelerinden oluşur. Bir kare işaretinin (#) ardından gelen boş satırlar ve metin yok sayılır.
Varsayılan auditd yapılandırma çoğu ortam için uygun olmalıdır. Ancak ortamınızın katı güvenlik ilkelerini karşılaması gerekiyorsa, /etc/audit/auditd.conf dosyadaki Audit arka plan programı yapılandırması için aşağıdaki ayarlar önerilir.
- log_file :Denetim günlük dosyalarını tutan dizin /var/log/audit ayrı bir bağlama noktasında bulunmalıdır. Bu, diğer işlemlerin bu dizinde yer tüketmesini önler ve Audit daemon için kalan alanın doğru bir şekilde algılanmasını sağlar.
- max_log_file :Tek bir Denetim günlüğü dosyasının maksimum boyutunu belirtir, Denetim günlük dosyalarının bulunduğu bölümdeki kullanılabilir alanı tam olarak kullanacak şekilde ayarlanmalıdır.
- max_log_file_action : max_log_file belirlenen sınıra ulaşıldığında hangi eylemin gerçekleştirileceğine karar verir. keep_logs, denetim günlük dosyalarının üzerine yazılmasını önlemek için ayarlanmalıdır.
- space_left :space_left_action parametrede ayarlanan bir eylemin tetiklenmesi için diskte kalan boş alan miktarını belirtir . Yöneticiye yanıt vermesi ve disk alanını boşaltması için yeterli zaman veren bir sayıya ayarlanmalıdır. Değer space_left, denetim günlüğü dosyalarının oluşturulma hızına bağlıdır.
- space_left_action :space_left_action parametrenin uygun bir bildirim yöntemi olarak, email veya exec yöntemle ayarlanması önerilir.
- admin_space_left : Parametrede ayarlanan bir eylemin admin_space_left_action tetiklendiği mutlak minimum boş alan miktarını, yönetici tarafından gerçekleştirilen eylemleri günlüğe kaydetmek için yeterli alan bırakacak bir değere ayarlanması gerektiğini belirtir.
- admin_space_left_action :single sistemi tek kullanıcı moduna geçirecek ve yöneticinin bir miktar disk alanı boşaltmasına izin verecek şekilde ayarlanmalıdır.
- disk_full_action :Denetim günlük dosyalarını tutan bölümde boş alan olmadığında tetiklenecek bir eylemi belirtir, halt veya single olarak ayarlanmalıdır. Bu, Audit artık olayları günlüğe kaydedemediğinde sistemin kapatılmasını veya tek kullanıcı modunda çalışmasını sağlar.
- disk_error_action :Donanım arızalarının ele alınmasıyla ilgili yerel güvenlik ilkelerinize bağlı olarak ,syslog denetim günlük dosyalarını tutan bölümde bir hata algılanması durumunda tetiklenecek bir eylemi belirtir .
- flush :incremental_async olarak ayarlanmalıdır. freq sabit sürücü ile bir sabit senkronizasyonu zorlamadan önce diske kaç kayıt gönderilebileceğini belirleyen parametre ile birlikte çalışır . Parametre freq 100 olarak ayarlanmalıdır. Bu parametreler, Denetim olay verilerinin diskteki günlük dosyalarıyla senkronize edilmesini sağlarken, etkinlik patlamaları için iyi bir performans sağlar.
Kalan yapılandırma seçenekleri, yerel güvenlik politikanıza göre ayarlanmalıdır.
Audit Servisinin Yönetimi
Gerekli ayarları yapılandırıldıktan sonra, auditd denetim bilgilerini toplamak ve günlük dosyalarında saklamak için hizmeti başlatmanız gerekir. Başlatmak için kök kullanıcı olarak aşağıdaki komutu kullanın.
sudo service auditd start
service komutu, auditd arka plan programı ile doğru bir şekilde etkileşim kurmanın tek yoludur. Auid değerinin düzgün bir şekilde kaydedilmesi için service komutunu kullanmanız gerekir. systemctl komutunu yalnızca iki eylem için kullanabilirsiniz: enable ve status
auditd servisini, önyükleme zamanında başlayacak şekilde yapılandırmak için:
sudo systemctl enable auditd
service denetimi eylemi komutu kullanılarak denetim üzerinde bir dizi başka eylem gerçekleştirilebilir; burada eylem aşağıdakilerden biri olabilir.
auditd denetimi durdurur.
sudo service auditd stop
Auditd'yi yeniden başlatır.
sudo service auditd restart
/etc/audit/auditd.conf dosyasından auditd yapılandırmasını yeniden yükler.
sudo service auditd reload
sudo service auditd force-reload
/var/log/audit/ dizinindeki günlük dosyalarını döndürür.
sudo service auditd rotate
Daha önce askıya alındıktan sonra, örneğin, Denetim günlüğü dosyalarını tutan disk bölümünde yeterli boş alan olmadığında, Denetim olaylarının günlüğe kaydedilmesine devam eder.
sudo service auditd resume
Auditd'yi yalnızca zaten çalışıyorsa yeniden başlatır.
sudo service auditd try-restart
Auditd'nin çalışma durumunu görüntüler.
sudo service auditd status
Denetim Kural Çeşitleri
Denetim sistemi, günlük dosyalarında neyin yakalanacağını tanımlayan bir dizi kural üzerinde çalışır. Aşağıdaki Denetim kuralları türleri belirtilebilir
Kontrol kuralları :Denetim sisteminin davranışının ve yapılandırmasının bir kısmının değiştirilmesine izin verin.
Dosya sistemi kuralları :Dosya izleme olarak da bilinir, belirli bir dosyaya veya dizine erişimin denetlenmesine izin verir.
Sistem çağrısı kuralları :Belirtilen herhangi bir programın yaptığı sistem çağrılarının günlüğe kaydedilmesine izin verin.
- auditctl yardımcı programını kullanarak komut satırında . Bu kuralların yeniden başlatmalar arasında kalıcı olmadığını unutmayın.
- /etc/audit/audit.rules dosyasından kalıcı olarak ayarlayabilirsiniz.
Auditctl ile Denetim Kurallarını Tanımlamak
auditctl komutu, Denetim sisteminin temel işlevlerini denetlemenize ve hangi Denetim olaylarının günlüğe kaydedileceğine karar veren kuralları tanımlamanıza olanak tanır .
Denetim hizmeti ve Denetim günlük dosyalarıyla etkileşime giren tüm komutlar, kök ayrıcalıkları gerektirir. Bu komutları kök kullanıcı olarak uyguladığınızdan emin olun. Ayrıca, denetim hizmetlerini ayarlamak için CAP_AUDIT_CONTROL ve kullanıcı mesajlarını günlüğe kaydetmek için CAP_AUDIT_WRITE gereklidir.
Kontrol Kurallarını Tanımlama
Denetim sisteminin davranışını değiştirmenize izin veren bazı kontrol kuralları aşağıda verilmiştir. Çekirdekteki mevcut Denetim arabelleklerinin maksimum miktarını ayarlar, örneğin:
sudo auditctl -b 8192
Kritik bir hata algılandığında gerçekleştirilen eylemi ayarlar, örneğin:
sudo auditctl -f 2
Yukarıdaki yapılandırma, kritik bir hata durumunda bir çekirdek paniği tetikler. Denetim sistemini etkinleştirir ve devre dışı bırakır veya yapılandırmasını kilitler, örneğin:
sudo auditctl -e 2
Yukarıdaki komut Denetim yapılandırmasını kilitler. Saniyede oluşturulan iletilerin hızını ayarlar, örneğin:
sudo auditctl -r 0
Yukarıdaki yapılandırma, oluşturulan iletilerde hız sınırı belirlemez. Denetim sisteminin durumunu bildirir, örneğin:
sudo auditctl -s
Şu anda yüklü olan tüm Denetim kurallarını listeler, örneğin:
sudo auditctl -l
Şu anda yüklü olan tüm Denetim kurallarını siler, örneğin:
sudo auditctl -D
Dosya Sistemi Kurallarını Tanımlama
Bir dosya sistemi kuralı tanımlamak için aşağıdaki sözdizimini kullanın.
auditctl -w path_to_file -p izinleri -k key_name
path_to_file , denetlenen dosya veya dizindir.
izinler , günlüğe kaydedilen izinlerdir:
- r - bir dosyaya veya dizine okuma erişimi.
- w - bir dosyaya veya dizine yazma erişimi.
- x - bir dosyaya veya dizine erişimi yürütmek.
- a - dosyanın veya dizinin özniteliğinde değişiklik.
key_name , belirli bir günlük girdisini hangi kuralın veya bir dizi kuralın oluşturduğunu belirlemenize yardımcı olan isteğe bağlı bir dizedir.
Dosyaya tüm yazma erişimini ve dosyadaki her öznitelik değişikliğini günlüğe kaydeden bir kural tanımlamak için aşağıdaki komutu yürütün.
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
Dizindeki tüm dosyalara tüm yazma erişimini ve her öznitelik değişikliğini günlüğe kaydeden bir kural tanımlamak için aşağıdaki komutu yürütün.
sudo auditctl -w /etc/selinux/ -p wa -k selinux_changes
Linux çekirdeğine bir modül ekleyen komutun yürütülmesini kaydeden bir kural tanımlamak için aşağıdaki komutu yürütün.
sudo auditctl -w /sbin/insmod -p x -k module_insertion
- k Seçeneği izleyen dizenin isteğe bağlı olduğunu unutmayın.
Sistem Çağrı Kurallarını Tanımlama
Bir sistem çağrısı kuralı tanımlamak için aşağıdaki sözdizimini kullanın:
sudo auditctl -a action,filter -S system_call -F field=value -k key_name
adjtimex veya settimeofday sistem çağrıları bir program tarafından her kullanıldığında ve sistem 64 bit mimariyi kullandığında bir günlük girişi oluşturan bir kural tanımlamak için aşağıdaki komutu yürütün.
sudo auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
Yürütülebilir Dosya Kurallarını Tanımlama
Yürütülebilir bir dosya kuralı tanımlamak için aşağıdaki sözdizimini kullanın:
sudo auditctl -a action,filter [ -F arch=cpu -S system_call] -F exe=path_to_executable_file -k key_name
Programın tüm yürütmesini günlüğe kaydeden bir kural tanımlamak /bin/id için aşağıdaki komutu yürütün:
sudo auditctl -a always,exit -F exe=/bin/id -F arch=b64 -S execve -k execution_bin_id
Denetim Kurallarının Uygulanması
Denetim sistemi, günlük dosyalarında neyin yakalanacağını tanımlayan bir dizi kural üzerinde çalışır. Aşağıdaki Denetim kuralları türleri belirtilebilir.
Kontrol kuralları :Denetim sisteminin davranışının ve yapılandırmasının bir kısmının değiştirilmesine izin verin.
Dosya sistemi kuralları :Dosya izleme olarak da bilinir, belirli bir dosyaya veya dizine erişimin denetlenmesine izin verir.
Sistem çağrısı kuralları :Belirtilen herhangi bir programın yaptığı sistem çağrılarının günlüğe kaydedilmesine izin verin.
Hangi olayların kayıt edileceğini belirlemek için kullanılır. Bu dosyaya manuel olarak kural girilebileceği gibi auditctl aracıda kullanılabilir. Kullanılabilecek komutlar aşağıda anlatılmıştır.
Denetim hizmeti ve Denetim günlük dosyalarıyla etkileşime giren tüm komutlar, kök ayrıcalıkları gerektirir. Bu komutları kök kullanıcı olarak uyguladığınızdan emin olun. Ayrıca, denetim hizmetlerini ayarlamak için CAP_AUDIT_CONTROL ve kullanıcı mesajlarını günlüğe kaydetmek için CAP_AUDIT_WRITE gereklidir.
Özel yapılandırma dosyası için /etc/audit/rules.d/audit.rules yolunu kullanmanız gerekmektedir. Dosyayı bir editör yardımı ile açalım.
sudo vi /etc/audit/rules.d/audit.rules
Dosyanın altına istediğiniz kuralları ekleyin. Aşağıda ki link üzerinden daha fazla kural bulabilirsiniz.
https://gist.github.com/Neo23x0/9fe88c0c5979e017a389b90fd19ddfee
Not :Denetim tarafından toplanan bilgi miktarına bağlı olarak sistem performansı etkilenebilir.
-w /etc/sudoers -p wa -k actions
-w /usr/bin/passwd -p x -k passwd_modification
-w /usr/sbin/groupadd -p x -k group_modification
-w /usr/sbin/groupmod -p x -k group_modification
-w /usr/sbin/addgroup -p x -k group_modification
-w /usr/sbin/useradd -p x -k user_modification
-w /usr/sbin/usermod -p x -k user_modification
-w /usr/sbin/adduser -p x -k user_modification
-w /etc/group -p wa -k etcgroup
-w /etc/passwd -p wa -k etcpasswd
-w /etc/gshadow -k etcgroup
-w /etc/shadow -k etcpasswd
-w /etc/security/opasswd -k opasswd
-w /etc/ssh/sshd_config -k sshd
-w /etc/hostname -p r -k recon
-w /usr/bin/curl -p x -k susp_activity
-w /usr/bin/base64 -p x -k susp_activity
-w /bin/nc -p x -k susp_activity
-w /bin/netcat -p x -k susp_activity
-w /usr/bin/ncat -p x -k susp_activity
-w /usr/bin/ssh -p x -k susp_activity
-w /usr/bin/wireshark -p x -k susp_activity
-w /usr/bin/nmap -p x -k susp_activity
-w /etc/hosts -p wa -k network_modifications
Kuralların geçerli olması için, servisi yeniden başlatalım.
sudo service auditd restart
Artık eklediğiniz tüm kurallar geçerli olacaktır. Örneğin, /etc/passwd dosyası üzerinde yapılan tüm işlemler /var/log/audit/audit.log dosyasına yazılır. Ayrıca, ausearch logları takip etmek için auditd daemonu yanında gelen bir araçtır ve -k parametresi ile belirtilen dosya hakkındaki loglar kolaylıkla aratılabilir.
Şimdi uygulamalı olarak bir test yapalım. passwd dosyasında herhangi bir değişiklik yapıp gözlemleyelim. Olayları kısa yoldan görmek için belirttiğim takma adı yazıyorum.
sudo ausearch -k etcpasswd

Yukarıdaki oluşan loglara baktığımız zaman, yerel bir terminal üzerinden, vim editörü ile /etc/passwd dosyası üzerimde işlem yapıldığını görebiliyoruz.
Yukarıdaki github listesini eklerseniz, auidit.log dosyası yıllık ortalama 50GB sunucuda yer kaplayacağını unutmayın.
Denetim Günlük Dosyalarını Anlama
Varsayılan olarak, denetim sistemi girişlerini /var/log/audit/audit.log dosyada saklar; döndürme etkinleştirilirse, döndürülen audit.log dosyalar aynı dizinde depolanır.
Aşağıdaki denetim kuralı, /etc/ssh/shd_config dosyası okuma veya değiştirmeye yönelik ona yönelik günlüğe kayıtlar:
-w /etc/ssh/sshd_config -p warx -k sshd_config
Örneğin, auditd arka plan programı çalışıyorsa, aşağıdaki komutun kullanılması, Denetim günlük dosyasında yeni bir olay oluşturur.
cat /etc/ssh/sshd_config
Audit.log dosyasındaki bu olay aşağıdaki gibi görünür:
type=SYSCALL msg=audit(1364481363.243:24287): arch=c000003e syscall=2 success=no exit=-13 a0=7fffd19c5592 a1=0 a2=7fffd19c4b50 a3=a items=1 ppid=2686 pid=3538 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=1 comm="cat" exe="/bin/cat" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="sshd_config"
type=CWD msg=audit(1364481363.243:24287): cwd="/home/shadowman"
type=PATH msg=audit(1364481363.243:24287): item=0 name="/etc/ssh/sshd_config" inode=409248 dev=fd:00 mode=0100600 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=NORMAL cap_fp=none cap_fi=none cap_fe=0 cap_fver=0
type=PROCTITLE msg=audit(1364481363.243:24287) : proctitle=636174002F6574632F7373682F737368645F636F6E666967
Yukarıdaki olay, aynı zaman damgasını ve seri numarasını paylaşan dört kayıttan oluşur. Kayıtlar her zaman type= anahtar sözcüğüyle başlar. Her kayıt, bir boşluk veya virgülle ayrılmış birkaç isim=değer çiftinden oluşur. Yukarıdaki olayın ayrıntılı bir analizi aşağıdaki gibidir.
TYPE 1
type=SYSCALL :Tür alanı, kaydın türünü içerir. Bu örnekte, SYSCALL değeri, bu kaydın çekirdeğe yapılan bir sistem çağrısı tarafından tetiklendiğini belirtir.
msg=audit(1364481363.243:24287): msg alanı şunları kaydeder: audit(time_stamp:ID) biçimindeki kaydın bir zaman damgası ve benzersiz bir kimliği. Aynı Denetim olayının parçası olarak oluşturulmuşlarsa, birden çok kayıt aynı zaman damgasını ve kimliği paylaşabilir. Zaman damgası Unix zaman biçimini kullanıyor - 1 Ocak 1970'te 00:00:00 UTC'den bu yana saniyeler. Çekirdek veya kullanıcı alanı uygulamaları tarafından sağlanan çeşitli olaya özgü name=value çiftleri.
arch=c000003e :Arch alanı, sistemin CPU mimarisi hakkında bilgi içerir. c000003e değeri, onaltılık gösterimde kodlanmıştır. Denetim kayıtlarını ausearch komutuyla ararken, onaltılık değerleri otomatik olarak insan tarafından okunabilir eşdeğerlerine dönüştürmek için -i veya --interpret seçeneğini kullanın. c000003e değeri, x86_64 olarak yorumlanır.
syscall=2 :Sistem çağrısı alanı, çekirdeğe gönderilen sistem çağrısının türünü kaydeder. 2 değeri, /usr/include/asm/unistd_64.h dosyasındaki insan tarafından okunabilir eşdeğeriyle eşleştirilebilir. Bu durumda 2 açık sistem çağrısıdır. ausyscall yardımcı programının sistem çağrı numaralarını insan tarafından okunabilir eşdeğerlerine dönüştürmenize izin verdiğini unutmayın. ausyscall --dump komutunu kullanarak tüm sistem çağrılarının bir listesini numaralarıyla birlikte görüntüleyin.
success=no : Başarı alanı, söz konusu olayda kaydedilen sistem çağrısının başarılı olup olmadığını kaydeder. Bu durumda, arama başarılı olmadı.
exit=-13 :Çıkış alanı, sistem çağrısı tarafından döndürülen çıkış kodunu belirten bir değer içerir. Bu değer, farklı sistem çağrısı için değişir. Değeri, aşağıdaki komutla insan tarafından okunabilir eşdeğerine yorumlayabilirsiniz:
TYPE 2
type=CWD : ikinci kayıtta, tür alanı değeri CWD'dir — geçerli çalışma dizini. Bu tür, ilk kayıtta belirtilen sistem çağrısını başlatan işlemin yürütüldüğü çalışma dizinini kaydetmek için kullanılır. Bu kaydın amacı, ilgili PATH kaydında ilgili bir yolun yakalanması durumunda mevcut işlemin konumunu kaydetmektir. Bu şekilde mutlak yol yeniden oluşturulabilir.
msg=audit(1364481363.243:24287) : Mesaj alanı, ilk kayıttaki değerle aynı zaman damgasını ve kimlik değerini tutar. Zaman damgası Unix zaman biçimini kullanıyor - 1 Ocak 1970'te 00:00:00 UTC'den bu yana saniyeler.
cwd="/home/user_name" : cwd alanı, sistem çağrısının çağrıldığı dizine giden yolu içerir.
TYPE 3
type=PATH :Üçüncü kayıtta, tür alanı değeri PATH'dir. Bir Audit olayı, sistem çağrısına bağımsız değişken olarak iletilen her yol için PATH tipi bir kayıt içerir. Bu Audit olayında, bağımsız değişken olarak yalnızca bir yol (/etc/ssh/sshd_config) kullanıldı.
msg=audit(1364481363.243:24287): Mesaj alanı, birinci ve ikinci kayıttaki değerle aynı zaman damgasını ve kimlik değerini tutar.
item=0 :Öğe alanı, SYSCALL türü kaydında başvurulan toplam öğe sayısından hangi öğenin geçerli kayıt olduğunu gösterir. Bu sayı sıfır tabanlıdır; 0 değeri, ilk öğe olduğu anlamına gelir.
name="/etc/ssh/sshd_config" : Ad alanı, sistem çağrısına argüman olarak iletilen dosya veya dizinin yolunu kaydeder. Bu durumda, /etc/ssh/sshd_config dosyasıydı.
inode=409248 :İnode alanı, bu olayda kaydedilen dosya veya dizinle ilişkili inode numarasını içerir. Aşağıdaki komut, 409248 düğüm numarasıyla ilişkili dosya veya dizini görüntüler.
TYPE 4
type=PROCTITLE : Tür alanı, kaydın türünü içerir. Bu örnekte, PROCTITLE değeri, bu kaydın, çekirdeğe yapılan bir sistem çağrısı tarafından tetiklenen bu Audit olayını tetikleyen tam komut satırını verdiğini belirtir.
proctitle=636174002F6574632F7373682F737368645F636F6E666967 :Proctitle alanı, analiz edilen işlemi başlatmak için kullanılan komutun tam komut satırını kaydeder. Alan, kullanıcının Denetim günlüğü ayrıştırıcısını etkilemesine izin vermemek için onaltılık gösterimde kodlanmıştır. Metin, bu Audit olayını tetikleyen komutun kodunu çözer. Denetim kayıtlarını ausearch komutuyla ararken, onaltılık değerleri otomatik olarak okunabilir eşdeğerlerine dönüştürmek için -i veya --interpret seçeneğini kullanın. 636174002F6574632F7373682F737368645F636F6E666967 değeri cat /etc/ssh/sshd_config olarak yorumlanır. Yukarıda analiz edilen Denetim olayı, bir olayın içerebileceği tüm olası alanların yalnızca bir alt kümesini içerir.
Denetim Günlüğü Dosyalarını Arama
ausearch yardımcı programı, belirli olaylar için Denetim günlüğü dosyalarında arama yapmanızı sağlar. Varsayılan olarak, ausearch /var/log/audit/audit.log dosyasını arar. ausearch options -if dosya_adı komutunu kullanarak farklı bir dosya belirtebilirsiniz. Bir ausearch komutunda birden çok seçeneğin sağlanması, alan türleri arasında VE operatörünün ve aynı alan türünün birden çok örneği arasında VEYA operatörünün kullanılmasına eşdeğerdir.
/var/log/audit/audit.log dosyasında başarısız oturum açma denemelerini aramak için aşağıdaki komutu kullanın:
sudo ausearch --message USER_LOGIN --success no --interpret
Tüm hesap, grup ve rol değişikliklerini aramak için aşağıdaki komutu kullanın:
sudo ausearch -m ADD_USER -m DEL_USER -m ADD_GROUP -m USER_CHAUTHTOK -m DEL_GROUP -m CHGRP_ID -m ROLE_ASSIGN -m ROLE_REMOVE -i
Kullanıcının oturum açma kimliğini (auid) kullanarak belirli bir kullanıcı tarafından gerçekleştirilen tüm günlüğe kaydedilen eylemleri aramak için aşağıdaki komutu kullanın:
sudo ausearch -ua 1000 -i
Dünden bugüne tüm başarısız sistem çağrılarını aramak için aşağıdaki komutu kullanın:
sudo ausearch --start yesterday --end now -m SYSCALL -sv no -i
Denetim Raporları Oluşturma
aureport yardımcı programı, Denetim günlük dosyalarında kaydedilen olaylar hakkında özet ve sütunlu raporlar oluşturmanıza olanak tanır. Varsayılan olarak, raporu oluşturmak için /var/log/audit/ dizinindeki tüm audit.log dosyaları sorgulanır. aureport options -if dosya_adı komutunu kullanarak raporu çalıştırmak için farklı bir dosya belirtebilirsiniz.
Geçerli örnek gün hariç son üç gündeki günlüğe kaydedilen olaylar için bir rapor oluşturmak için aşağıdaki komutu kullanın:
sudo aureport --start 04/08/2013 00:00:00 --end 04/11/2013 00:00:00
Tüm yürütülebilir dosya olaylarının bir raporunu oluşturmak için aşağıdaki komutu kullanın:
sudo aureport -x
Yukarıdaki yürütülebilir dosya olay raporunun bir özetini oluşturmak için aşağıdaki komutu kullanın:
sudo aureport -x --summary
Tüm kullanıcılar için başarısız olayların özet raporunu oluşturmak için aşağıdaki komutu kullanın:
sudo aureport -u --failed --summary -i
Her sistem kullanıcısı için tüm başarısız oturum açma girişimlerinin özet raporunu oluşturmak için aşağıdaki komutu kullanın:
sudo aureport --login --summary -i
Kullanıcı kimliği 1000 için tüm dosya erişim olaylarını arayan bir arama sorgusundan bir rapor oluşturmak için aşağıdaki komutu kullanın:
sudo ausearch --start today --loginuid 1000 --raw | aureport -f --summary
Sorgulanan tüm Denetim dosyalarının ve içerdikleri olayların zaman aralığının bir raporunu oluşturmak için aşağıdaki komutu kullanın:
sudo aureport -t
Bu kılavuzda, Linux sistem denetimi detaylı bir şekilde incelemeye çalıştık.