Linux Audit Framework: Kapsamlı Sistem Denetim Logları ve Güvenlik İzleme
Linux sistemlerde güvenlik ve operasyonel uygunluk, her IT ortamının temel direkleridir. Bu bağlamda, sistem üzerindeki kritik aktiviteleri izlemek, denetlemek ve raporlamak vazgeçilmez bir ihtiyaçtır. Linux Audit Framework, çekirdek tabanlı, düşük seviyeli bir denetim sistemi sunarak, dosya erişimlerinden sistem çağrılarına, yetki yükseltme girişimlerinden ağ bağlantılarına kadar geniş bir yelpazedeki olayları kayıt altına almayı mümkün kılar. Bu yapı, hem adli bilişim (forensics) senaryolarında delil toplama hem de gerçek zamanlı güvenlik izleme için güçlü bir temel oluşturur.
Linux Audit Framework'ün Temelleri
Linux Audit Framework, sistem çekirdeği tarafından üretilen olayları yakalar ve bunları yapılandırılmış log kayıtları (audit records) halinde saklar. Bu sistem, SELinux veya AppArmor gibi zorunlu erişim kontrol mekanizmalarından bağımsız olarak çalışır ve sistemin güvenliğini doğrudan etkileyen her türlü aktiviteyi izleme yeteneğine sahiptir. Temel amacı, bir olayın kim tarafından, ne zaman, nerede ve nasıl gerçekleştiğini net bir şekilde belirlemektir. Bu detaylı kayıtlar, potansiyel güvenlik ihlallerini tespit etmek, yapılandırma değişikliklerini izlemek ve mevzuat uyumluluğunu sağlamak için kritik öneme sahiptir.
Çekirdek Bileşenler ve İşlevleri
Audit Framework, birkaç ana bileşenle etkileşim içindedir:
auditd: Denetim Daemon'u
auditd, Linux Audit Framework'ün ana kullanıcı alanı daemon'udur. Çekirdekten gelen denetim olaylarını dinler ve bunları /var/log/audit/audit.log (veya yapılandırılan başka bir konuma) yazar. Bu daemon'un düzgün çalışması, denetim sisteminin bütünlüğü için elzemdir.
sudo systemctl status auditdYukarıdaki komut, auditd servisinin durumunu kontrol etmenizi sağlar. Eğer çalışmıyorsa, sudo systemctl start auditd ile başlatmanız gerekir.
auditctl: Kuralları Yönetme
auditctl, denetim kurallarını çekirdeğe yüklemek, kaldırmak veya listelemek için kullanılan bir komut satırı aracıdır. Bu kurallar, hangi olayların izleneceğini ve nasıl kaydedileceğini tanımlar. auditctl ile eklenen kurallar geçicidir ve sistem yeniden başlatıldığında kaybolur. Kalıcı kurallar /etc/audit/audit.rules dosyasında tanımlanır.
sudo auditctl -lBu komut, aktif olarak yüklenmiş tüm denetim kurallarını listeler.
ausearch: Logları Sorgulama
ausearch, audit.log dosyalarını sorgulamak ve belirli kriterlere uyan olayları bulmak için kullanılır. Karmaşık log dosyalarında bilgi aramak için çok güçlü bir araçtır.
sudo ausearch -k "ssh" -sv noBu örnek, "ssh" anahtar kelimesiyle ilişkilendirilen ve başarılı olmayan (sv no) tüm denetim kayıtlarını arar. Genellikle yetkisiz erişim girişimlerini tespit etmek için kullanılır.
aureport: Raporlama
aureport, audit.log dosyalarından özet raporlar oluşturmak için tasarlanmıştır. Belirli bir zaman aralığındaki veya olay türüne göre raporlar oluşturarak sistem aktivitelerine genel bir bakış sağlar.
sudo aureport --start yesterday --end today -au -iBu komut, dünden bugüne kadar tüm kullanıcı aktivitelerini özetler (-au) ve olay kimliklerini (UID/GID) kullanıcı isimlerine çevirir (-i).
Denetim Kurallarını Yapılandırma: /etc/audit/audit.rules
Denetim kuralları, sistemin hangi aktiviteleri izlemesi gerektiğini belirleyen talimatlardır. Bu kurallar /etc/audit/audit.rules (veya bazı dağıtımlarda /etc/audit/rules.d/audit.rules) dosyasında tanımlanır. Bu dosyayı düzenledikten sonra auditd servisini yeniden başlatmak veya augenrules --load komutunu çalıştırmak gerekir.
# Dosya erişimini izle: /etc/passwd dosyasındaki yazma (w) veya öznitelik değişikliği (a) olaylarını kaydet. `passwd_degisiklik` anahtar kelimesi ile kolayca aranabilir. Audit Framework, sadece okuma (r) izlemeyi desteklemez; genellikle dosya açma veya yazma eylemleri izlenir. `p wa` (permissions write, attribute change) kullanılır.-w /etc/passwd -p wa -k passwd_degisiklik# Sistem çağrılarını izle: 64-bit mimaride (arch=b64) `chmod` sistem çağrısı yapıldığında bir kayıt oluştur. `sistem_cagrisi_chmod` anahtar kelimesi ile etiketlenir.-a always,exit -F arch=b64 -S chmod -k sistem_cagrisi_chmod# Belirli bir kullanıcının aktivitelerini izle: UID'si 1000 olan kullanıcının dosya açma, oluşturma, kısaltma, yeniden adlandırma gibi sistem çağrılarını kaydet.-a always,exit -F arch=b64 -F euid=1000 -S open,creat,trunc,ftruncate,rename -k user_activity_user1000
Her kural, bir eylem (-a), tetikleyici koşullar (-F) ve bir anahtar kelime (-k) içerir. -a always,exit, bir sistem çağrısının her başarılı veya başarısız çıkışında kayıt oluşturulmasını sağlar. -w direkt olarak dosya veya dizin izlemesi için kullanılır.
Gerçek Dünya Senaryoları ve Üretim Ortamı Uygulamaları
1. Kritik Dosya Bütünlüğü İzleme (FIM)
Üretim sistemlerinde, kritik yapılandırma dosyalarının yetkisiz veya istenmeyen değişikliklere karşı korunması esastır. Linux Audit Framework, bu tür değişiklikleri gerçek zamanlı olarak tespit etmede güçlü bir araçtır.
# /etc/fstab dosyasına yapılan yazma veya öznitelik değişikliklerini izle.-w /etc/fstab -p wa -k critical_file_fstab# /etc/shadow dosyasına yapılan yazma veya öznitelik değişikliklerini izle.-w /etc/shadow -p wa -k critical_file_shadow# GRUB yapılandırma dosyasına yapılan yazma veya öznitelik değişikliklerini izle.-w /boot/grub/grub.cfg -p wa -k critical_file_grub
Bu kurallar, belirtilen kritik dosyalarda herhangi bir yazma veya izin değişikliği olduğunda bir denetim kaydı oluşturur. Bu kayıtlar daha sonra bir SIEM (Security Information and Event Management) sistemine gönderilerek otomatik alarmlar tetiklenebilir veya detaylı analizler yapılabilir.
2. Yönetici (Root) Aktivite Takibi
Root kullanıcısının sistem üzerindeki her eylemi, güvenlik açısından yüksek öneme sahiptir. Audit Framework, root'un hangi komutları çalıştırdığını ve hangi dosyalara eriştiğini detaylı bir şekilde kaydedebilir.
# Root (euid=0) tarafından yapılan tüm execve sistem çağrılarını izle. Bu, root'un çalıştırdığı her komutun kaydını tutar.-a always,exit -F arch=b64 -F euid=0 -S execve -k root_exec_activity
Bu kural, root kullanıcısının (UID 0) çalıştırdığı her programı kaydeder. Böylece, bir saldırgan root erişimi elde ettiğinde bile, hangi adımları attığı izlenebilir.
3. Başarısız Oturum Açma Girişimleri ve Yetkisiz Erişim Denemeleri
Brute-force saldırıları veya yetkisiz erişim girişimleri, denetim loglarında belirgin izler bırakır. Audit Framework, bu tür olayları yakalamak için kullanılabilir.
# Başarısız oturum açma loglarının (faillog) yazılmasını izle.-w /var/log/faillog -p wa -k faillog_monitor# Son oturum açma loglarının (lastlog) yazılmasını izle.-w /var/log/lastlog -p wa -k lastlog_monitor# Belirli bir dizine (örn. /var/www/html) yetkisiz erişim denemelerini (exit=-EACCES) izle.-a always,exit -F arch=b64 -S openat -F exit=-EACCES -F dir=/var/www/html -k web_dir_unauthorized_access
Bu kurallar, sistemdeki başarısız oturum açma girişimlerini ve web sunucusu gibi hassas dizinlere yönelik yetkisiz erişim denemelerini yakalar. Bu tür olaylar için otomatik uyarılar yapılandırılması, güvenlik ekiplerinin hızlı müdahalesini sağlar.
Performans Optimizasyonu ve Log Yönetimi
Linux Audit Framework, çok sayıda olay üretebilir. Özellikle yüksek trafikli sunucularda veya kapsamlı kurallar tanımlandığında, log boyutu hızla artabilir ve sistem performansı üzerinde etkili olabilir. Bu nedenle, sadece gerçekten kritik olan olayları izlemek, wildcard kullanmaktan kaçınmak ve logları düzenli olarak arşivlemek veya sıkıştırmak önemlidir. auditd.conf dosyasındaki max_log_file, rotate ve action_mail_acct gibi parametreler, log yönetimi için yapılandırılmalıdır.
Uzaktan Log Toplama ve SIEM Entegrasyonu
Üretim ortamlarında, denetim loglarının merkezi bir SIEM sistemine aktarılması yaygın bir uygulamadır. Bu, birden fazla sunucudan gelen logların tek bir noktadan analiz edilmesini, korelasyonunu ve güvenlik olaylarına daha hızlı yanıt verilmesini sağlar. rsyslog veya nxlog gibi araçlar, auditd tarafından üretilen logları alıp merkezi bir log sunucusuna veya SIEM platformuna (Splunk, ELK Stack, QRadar vb.) iletmek için yapılandırılabilir. Bu entegrasyon, güvenlik ekiplerine olaylara bütünsel bir bakış açısı sunar ve karmaşık saldırı vektörlerinin tespitini kolaylaştırır.
Sonuç
Linux Audit Framework, modern IT altyapılarında güvenlik ve uygunluk gereksinimlerini karşılamak için vazgeçilmez bir araçtır. Detaylı ve yapılandırılmış denetim logları sağlayarak, sistem yöneticilerine ve güvenlik uzmanlarına sistem aktiviteleri üzerinde eşsiz bir görünürlük sunar. Doğru yapılandırıldığında ve etkin bir şekilde izlendiğinde, olası tehditleri erkenden tespit etmek, adli incelemeleri kolaylaştırmak ve kritik sistemlerin bütünlüğünü korumak için hayati bir rol oynar. Her üretim ortamında, Audit Framework'ün potansiyelini tam olarak kullanmak için dikkatli bir planlama ve sürekli optimizasyon şarttır.