Pardus Sistemlerinde Güvenlik Denetimi (Audit) ve Olay Kayıtlarının Yönetimi
Linux tabanlı sistemlerde güvenliği sağlamak ve sistem üzerinde gerçekleşen olayları izlemek, sistem yöneticilerinin ve siber güvenlik uzmanlarının (Blue Team) en kritik görevlerinden biridir. Pardus sistemlerinde çekirdek düzeyinde olay izleme ve loglama sağlayan Audit Framework (auditd) yapısını inceleyeceğiz.
Bir sistem yöneticisi veya siber güvenlik uzmanı için en önemli sorulardan biri şudur:
"Sunucuda tam olarak ne oldu?"
Bir dosyayı kim sildi?
Kim root oldu?
Kim sudo kullandı?
Hangi kullanıcı kritik dosyayı değiştirdi?
Hangi program çalıştırıldı?
İşte bu soruların cevabını veren altyapı Linux Audit Framework (auditd) sistemidir.
Pardus, Debian tabanlı olduğu için Linux çekirdeğinin sunduğu Audit Framework'ü tam olarak destekler. Audit sistemi çekirdek seviyesinde olayları izler ve ayrıntılı kayıtlar oluşturur. auditd çekirdekten gelen olayları alır, disk üzerine kaydeder; kurallar auditctl veya augenrules ile yönetilir ve kayıtlar ausearch ile aranıp aureport ile raporlanabilir. (Linux Audit)
Audit Sistemi Nedir?
Linux Audit;
Kullanıcı aktivitelerini
Dosya değişikliklerini
Sistem çağrılarını (System Calls)
Yetki yükseltmelerini
Oturum açma işlemlerini
Program çalıştırmalarını
çekirdek seviyesinde kayıt altına alan güvenlik altyapısıdır. Audit, tek başına sistemi korumaz; olayların ayrıntılı olarak izlenmesini ve sonradan analiz edilmesini sağlar.
Audit Ne İşe Yarar?
Kurumsal ortamlarda aşağıdaki olaylar kolayca takip edilir.
✓ Kim sudo kullandı?
✓ Kim passwd dosyasını değiştirdi?
✓ Kim USB taktı?
✓ Kim yeni kullanıcı oluşturdu?
✓ Kim dosya sildi?
✓ Kim root oldu?
✓ Hangi servis çalıştırıldı?
✓ Hangi komut çalıştırıldı?
✓ Başarısız giriş denemeleri
✓ Yetki yükseltme girişimleri
Audit Framework Mimarisi
Linux Kernel│Audit Subsystem│auditd Servisi│/var/log/audit/audit.log│ausearch / aureport
Audit Paketlerinin Kurulması
Pardus üzerinde:
sudo apt updatesudo apt install auditd audispd-plugins
Kurulumdan sonra:
auditd -v
Servisi Başlatma
sudo systemctl enable auditdsudo systemctl start auditd
Durumu kontrol edelim:
systemctl status auditd
Audit Servisinin Çalışıp Çalışmadığını Kontrol Etme
auditctl -s
Örnek:
enabled 1failure 1pid 845rate_limit 0backlog_limit 8192
Audit Yapılandırma Dosyaları
En önemli dizinler
/etc/audit//etc/audit/auditd.conf/etc/audit/audit.rules/etc/audit/rules.d/
Audit günlükleri
/var/log/audit/audit.log
ve döndürülmüş günlükler:
/var/log/audit/audit.log.*
auditd.conf Dosyası
sudo nano /etc/audit/auditd.conf
Önemli parametreler
log_filemax_log_filenum_logsflushpriority_boostspace_leftadmin_space_leftdisk_full_actiondisk_error_action
Örnek
max_log_file = 50num_logs = 20flush = INCREMENTAL_ASYNC
Audit Kuralları
Audit sistemi kurallarla çalışır.
Örneğin;
"/etc/passwd dosyasını izle"
veya
"sudo komutunu izle"
gibi.
Geçici Kural Tanımlama
auditctl
Örnek
sudo auditctl -w /etc/passwd -p wa
Anlamı
-wWatch-pPermissionswwriteaattribute change
Kuralı Görüntüleme
auditctl -l
Kalıcı Kural Yazma
sudo nano /etc/audit/rules.d/passwd.rules
İçerik
-w /etc/passwd -p wa -k passwd_changes
Sonra
augenrules --load
veya
systemctl restart auditd
Örnek Kurallar
Shadow Dosyası
-w /etc/shadow -p wa -k shadow_changes
Sudo Kullanımı
-w /usr/bin/sudo -p x -k sudo_usage
SSH
-w /etc/ssh/sshd_config -p wa -k ssh_config
Cron
-w /etc/crontab -p wa -k cron_change
Sistem Saati
-a always,exit -F arch=b64 -S adjtimex -k time_change
Modül Yükleme
-w /sbin/insmod -p x -k kernel_module
Kullanıcı Oluşturma
-w /usr/sbin/useradd -p x -k user_management
Audit Loglarını Arama
ausearch
Örneğin
ausearch -k passwd_changes
Son bir saat
ausearch -ts recent
Bugün
ausearch -ts today
Belirli kullanıcı
ausearch -ua 1000
Belirli dosya
ausearch -f /etc/passwd
Başarısız giriş
ausearch -m USER_LOGIN
aureport Kullanımı
Rapor üretir.
aureport
Başarısız girişler
aureport -au
Kim giriş yaptı
aureport -l
Çalıştırılan programlar
aureport -x
Sistem çağrıları
aureport -s
Dosya olayları
aureport -f
Örnek Senaryo
passwd Dosyası Değiştiriliyor
Kural
auditctl -w /etc/passwd -p wa -k passwd
Dosya değiştirilir.
sudo nano /etc/passwd
Arama
ausearch -k passwd
Log
type=SYSCALLtype=PATHtype=PROCTITLE
Buradan
kullanıcı
PID
zaman
komut
işlem
terminal
öğrenilebilir.
Başarısız SSH Girişleri
ausearch -m USER_LOGIN
veya
aureport -au
Root Yetkisi Takibi
ausearch -ua 0
Silinen Dosyaları İzleme
auditctl -w /home -p wa
Komut Çalıştırmalarını İzleme
auditctl -a exit,always -F arch=b64 -S execve
Bu oldukça fazla log üretir.
Performans
Audit yanlış yapılandırılırsa
disk dolar
CPU artar
log büyür
Bu nedenle yalnızca kritik dosya ve işlemler izlenmelidir. (Linux Audit)
Siber Güvenlik Açısından En Faydalı Kurallar
| İzlenecek Alan | Amaç |
|---|---|
| /etc/passwd | Kullanıcı değişiklikleri |
| /etc/shadow | Parola değişiklikleri |
| sudo | Yetki yükseltme |
| sshd_config | SSH değişiklikleri |
| crontab | Zararlı zamanlanmış görevler |
| insmod | Kernel modülü yükleme |
| modprobe | Rootkit tespiti |
| useradd | Yeni kullanıcı |
| userdel | Kullanıcı silme |
| passwd | Parola değiştirme |
SIEM Entegrasyonu
Kurumsal ortamlarda audit günlükleri tek başına bırakılmaz. Genellikle aşağıdaki platformlara yönlendirilir:
Wazuh
Elastic Stack
Graylog
Splunk Enterprise
Bu sayede merkezi log toplama, korelasyon ve gerçek zamanlı alarm üretimi yapılabilir.
Audit'in Avantajları
Çekirdek seviyesinde kayıt toplar.
Kullanıcı işlemlerini ayrıntılı izler.
Adli bilişim süreçlerinde güçlü kanıt sağlar.
Mevzuat ve standart uyumluluğuna katkı sunar (ISO 27001, PCI-DSS vb.).
Yetki yükseltme ve kritik dosya değişikliklerini kolayca izlemeyi sağlar.
En İyi Uygulamalar
Sadece kritik dosya ve sistem çağrılarını izleyin.
Günlük rotasyonunu doğru yapılandırın.
Audit kayıtlarını merkezi bir log sunucusuna aktarın.
Düzenli olarak
aureportraporlarını inceleyin.Audit kurallarını
/etc/audit/rules.d/altında modüler şekilde yönetin veaugenrulesile yükleyin.Audit'i; bütünlük denetimi için AIDE, saldırı engelleme için Fail2Ban ve sistem sertleştirme araçlarıyla birlikte kullanın. (CB.VU)
auditctl -e 2), CIS Benchmark uyumlu kural setleri, gerçek zamanlı olay iletimi (audispd) ve SIEM entegrasyonlarıyla kurumsal ölçekte güçlü bir denetim altyapısı oluşturulabilir.Özellikle sunucuların güvenliğini sağlamak, MITRE ATT&CK çerçevesindeki taktikleri (örneğin; Credential Access, Execution) tespit edebilmek için auditd vazgeçilmez bir araçtır.
1. Audit Framework Nedir?
Audit Framework, Linux çekirdeği ile entegre çalışan, sistemdeki olayları detaylı bir şekilde kaydeden bir denetim sistemidir. Standart loglama mekanizmalarından (syslog vb.) farklı olarak doğrudan sistem çağrılarını (system calls) ve dosya erişimlerini çekirdek (kernel) seviyesinde dinler.
Temel Bileşenler:
auditd: Arka planda çalışan ana denetim servisidir.auditctl: Kuralları anlık olarak yönetmek ve yapılandırmak için kullanılan komut satırı aracıdır.ausearch: Oluşturulan loglar içinde spesifik olayları aramak için kullanılır.aureport: Log verilerini özetleyerek okunabilir raporlar sunar.
2. Pardus Üzerinde Kurulum ve Servis Yönetimi
Pardus, Debian tabanlı bir dağıtım olduğu için kurulum süreci oldukça basittir. Terminali açarak aşağıdaki komutları çalıştırın:
sudo apt install auditd audispd-plugins
Kurulum tamamlandıktan sonra servisin durumunu kontrol etmek ve başlangıçta otomatik çalışmasını sağlamak için:
sudo systemctl start auditdsudo systemctl status auditd(Not: auditd servisi durdurulmak istendiğinde standart systemctl stop auditd komutu güvenlik gereği çalışmayabilir, bunun yerine service auditd stop kullanılması gerekebilir.)
3. auditctl ile Kuralların Oluşturulması
Kurallar geçici olarak auditctl komutu ile veya kalıcı olarak /etc/audit/audit.rules (ya da /etc/audit/rules.d/ altındaki dosyalar) üzerinden tanımlanabilir.
A. Dosya ve Dizin İzleme (Watch Rules)
Kritik sistem dosyalarındaki değişiklikleri veya yetkisiz erişimleri izlemek için kullanılır.
Örnek 1: Şifre Dosyalarını İzleme
/etc/shadow dosyasına kimin eriştiğini veya değiştirdiğini izlemek için:
sudo auditctl -w /etc/shadow -p wa -k shadow_degisikligi
-w: İzlenecek dosya veya dizin (watch).-p wa: İzinler (permissions). w (write - yazma), a (attribute change - özellik değiştirme). Diğer seçenekler r (read) ve x (execute).-k: Kurala verilen özel etiket (key). Logları ararken bu etiket büyük kolaylık sağlar.
Örnek 2: Laboratuvar Ortamında Belirli Bir Dizini İzleme
Öğrencilerin proje dosyalarının bulunduğu /home/ogrenci/projeler dizinindeki silme işlemlerini loglamak için:
B. Sistem Çağrılarını İzleme (System Call Rules)
Sistemde çalıştırılan komutları ve süreçleri (process) izlemek, zararlı yazılım tespiti veya yetki yükseltme denemelerini yakalamak için kritiktir.
Örnek 3: Bütün execve (Komut Çalıştırma) Çağrılarını İzleme
Sistemde root yetkisiyle çalıştırılan komutları tespit etmek için (MITRE ATT&CK: Privilege Escalation tespiti):
-a always,exit: Kuralın ne zaman tetikleneceği.-F arch=b64: 64-bit mimari.-S execve: İzlenecek sistem çağrısı.-F euid=0: Sadece Effective User ID'si 0 (root) olanları filtrele.
4. Logların Analizi ve Raporlama
Oluşturulan kurallar neticesinde auditd, olayları /var/log/audit/audit.log dosyasına yazar. Ancak bu dosyayı doğrudan okumak karmaşıktır. Bunun yerine özel araçlar kullanılır.
ausearch ile Log Arama
Belirlediğimiz etiketlere (-k) göre arama yapmak çok pratiktir. Örneğin /etc/shadow kuralımız tetiklenmiş mi diye bakmak için:
Belirli bir kullanıcının (örneğin UID 1000) yaptığı işlemleri aramak için:
aureport ile Özet Raporlar Alma
Sistemdeki genel güvenlik durumu hakkında özet bilgi almak için:
Başarısız giriş denemelerini (Login Fails) listelemek için:
5. Kuralları Kalıcı Hale Getirme
auditctl ile yazılan kurallar sistem yeniden başlatıldığında silinir. ETAP cihazlarında veya sunucularda kalıcılık sağlamak için kurallarınızı /etc/audit/rules.d/audit.rules dosyasına eklemelisiniz.
Dosyayı yetkili bir metin editörü ile açın ve komutları (başındaki auditctl kısmını atarak) dosyaya ekleyin:
# /etc/audit/rules.d/audit.rules içeriği-w /etc/shadow -p wa -k shadow_degisikligi-w /etc/passwd -p wa -k passwd_degisikligi-a always,exit -F arch=b64 -S execve -F euid=0 -k root_komutlariDeğişiklikleri uyguladıktan sonra servisi yeniden başlatın (veya kuralları yeniden yükleyin):
Sonuç
Pardus sistemlerinde auditd kullanımı, hem savunma odaklı (Blue Team) eğitimlerin temel bir parçası hem de sistem yönetiminin vazgeçilmez bir unsurudur. Sınıf içi etkileşimli tahtalarda (Cinnamon masaüstü ortamında) veya uzak sunucularda çalışan servislerde, arka planda ne olup bittiğini bilmek, olası siber güvenlik vakalarına hızlı müdahale etmenizi sağlar.
Öneri: Bu kuralları yapılandırırken, sistem performansını etkilememesi adına sadece gerçekten kritik olan dizinleri ve sistem çağrılarını izlemeye özen gösterin. Gereksiz loglama, disk alanını hızla tüketebilir.
Yorumlar