Konuyu Okuyanlar: 1 Ziyaretçi

auditd ile Linux Olay Denetimi: Kural Yazımı ve Log İnceleme

auditd ile Linux Olay Denetimi: Kural Yazımı ve Log İnceleme
Merhaba TurkTeam,

Bir Linux sistemde "kim, ne zaman, hangi dosyaya dokundu veya hangi komutu çalıştırdı?" sorusunun kesin cevabını veren bileşen auditd'dir. Linux Audit alt sistemi, çekirdek düzeyinde olayları yakalayıp standart bir denetim kaydına yazar; bu da hem güvenlik izleme (mavi takım) hem de uyumluluk (PCI-DSS, CIS) için paha biçilmezdir. Bu rehberde auditd'yi kurulumdan kural yazımına ve log incelemeye kadar uygulamalı ele alıyoruz.

Konuda Anlatılacaklar
  1. Linux Audit alt sistemi nedir, syslog'dan farkı
  2. Kurulum ve servis yönetimi
  3. Dosya izleme (watch) ve syscall kuralları
  4. auditctl, ausearch ve aureport referansı
  5. Uygulamalı: hassas dosya ve komut denetimi
  6. Kalıcı kurallar ve ileri ipuçları
  7. Sonuç, kaynakça ve yasal uyarı

1. Linux Audit Alt Sistemi Nedir?
Linux Audit, çekirdekteki olayları (dosya erişimleri, sistem çağrıları, kullanıcı oturumları, yetki değişiklikleri) yakalayan bir denetim çerçevesidir. Kullanıcı uzayındaki auditd servisi bu olayları toplayıp genelde /var/log/audit/audit.log dosyasına yazar. Sıradan syslog'dan farkı, çekirdek düzeyinde ve değiştirilmesi zor, ince ayarlı bir denetim izi sunmasıdır: Örneğin "bu dosya her değiştirildiğinde kaydet" veya "her execve sistem çağrısını kaydet" gibi kurallar yazabilirsiniz. Bu, bir olay sonrası adli incelemenin ve gerçek zamanlı tespitin temelini oluşturur.

2. Kurulum ve Servis Yönetimi
Kod:
sudo apt update sudo apt install auditd audispd-plugins sudo systemctl enable --now auditd sudo systemctl status auditd
Çalışan kuralları ve durumu görmek için:
Kod:
sudo auditctl -s # durum (enabled, backlog vb.) sudo auditctl -l # yüklü kurallar

3. Dosya İzleme ve Syscall Kuralları
auditd iki temel kural türü kullanır: watch (dosya/dizin izleme) ve syscall (sistem çağrısı izleme).

Dosya izleme (-w): -p ile izin türleri (r okuma, w yazma, x çalıştırma, a öznitelik), -k ile arama anahtarı:
Kod:
sudo auditctl -w /etc/passwd -p wa -k passwd_degisiklik
Bu kural, /etc/passwd her yazıldığında veya özniteliği değiştiğinde bir kayıt üretir ve "passwd_degisiklik" anahtarıyla etiketler.

Syscall kuralı (-a): mimari (-F arch), çağrı (-S) ve koşullarla:
Kod:
sudo auditctl -a always,exit -F arch=b64 -S execve -k komut_calistirma
Bu kural, 64-bit sistemde çalıştırılan her komutu (execve) kaydeder. "always,exit" çağrı tamamlandığında her zaman kaydet anlamına gelir.

Belirli kullanıcıyı hedefleme (-F auid):
Kod:
sudo auditctl -a always,exit -F arch=b64 -S execve -F auid=1000 -k kullanici1000_komut

4. auditctl, ausearch ve aureport Referansı
auditctl - kuralları canlı yönetir (yeniden başlatınca kaybolur, kalıcı için bkz. 6. bölüm):
Kod:
sudo auditctl -l # listele sudo auditctl -D # tüm kuralları sil

ausearch - denetim kayıtlarında arama (anahtara, kullanıcıya, zamana göre):
Kod:
sudo ausearch -k passwd_degisiklik sudo ausearch -ui 1000 --start today sudo ausearch -m EXECVE --start recent

aureport - özet raporlar:
Kod:
sudo aureport --summary sudo aureport -au # kimlik doğrulama olayları sudo aureport -f # dosya olayları

5. Uygulamalı: Hassas Dosya ve Komut Denetimi
Adım 1 - /etc/shadow izleme kuralı ekleyin:
Kod:
sudo auditctl -w /etc/shadow -p wa -k shadow_izleme

Adım 2 - Dosyaya dokunarak olay üretin (lab):
Kod:
sudo touch /etc/shadow

Adım 3 - İlgili kaydı arayın:
Kod:
sudo ausearch -k shadow_izleme --start recent
Dönen kayıt şuna benzer alanlar içerir; type=SYSCALL satırında syscall, başarı durumu (success=yes), komut (comm="touch"), çalıştıran kullanıcı (auid) ve anahtar (key="shadow_izleme") yer alır:
Kod:
type=SYSCALL ... syscall=... success=yes ... comm="touch" exe="/usr/bin/touch" ... auid=1000 ... key="shadow_izleme"
Bu çıktı, hangi kullanıcının hangi komutla dosyaya dokunduğunu net biçimde gösterir.
[Resim: attachment.php?aid=146]

Adım 4 - Komut çalıştırma denetimi ve özet rapor:
Kod:
sudo auditctl -a always,exit -F arch=b64 -S execve -k tum_komutlar # birkaç komut çalıştırdıktan sonra sudo aureport -x --summary
aureport -x çalıştırılabilir dosya (executable) bazında özet verir; anormal bir ikili (örn. beklenmedik bir yoldan çalışan kabuk) hemen göze çarpar.



6. Kalıcı Kurallar ve İleri İpuçları
auditctl ile eklenen kurallar yeniden başlatmada kaybolur. Kalıcılık için kuralları /etc/audit/rules.d/ altında bir .rules dosyasına yazın:
Kod:
# /etc/audit/rules.d/ozel.rules -w /etc/passwd -p wa -k passwd_degisiklik -w /etc/shadow -p wa -k shadow_izleme -a always,exit -F arch=b64 -S execve -k komut_calistirma
Ardından kuralları derleyip yükleyin:
Kod:
sudo augenrules --load sudo auditctl -l
  • Hazır kural setleri: CIS ve STIG uyumlu örnek kurallar için topluluk kural dosyalarını (ör. Neo23x0/auditd) başlangıç olarak inceleyebilirsiniz.
  • Değişmezlik: rules dosyasının sonuna "-e 2" eklemek, kural setini sonraki yeniden başlatmaya kadar kilitler; saldırganın denetimi kapatmasını zorlaştırır.
  • Performans: Her execve'yi kaydetmek yoğun sistemlerde çok log üretir; kapsamı anahtar dosyalar ve kritik çağrılarla sınırlayın.
  • Merkezileştirme: audispd eklentileriyle kayıtları bir SIEM'e iletebilirsiniz; yerelde kalan log, saldırgan tarafından silinebilir.

6.1. auditd ve Olay İzlemeyi Birlikte Düşünmek
auditd tek başına bir "tespit" aracı değildir; o, güvenilir bir ham kayıt üretir. Asıl değer, bu kayıtların düzenli olarak incelenmesi ve bir uyarı mekanizmasına bağlanmasıyla ortaya çıkar. Pratikte çoğu kurum auditd kayıtlarını audispd eklentileri aracılığıyla merkezi bir toplama noktasına (SIEM) iletir; çünkü yerelde kalan bir log, makineyi ele geçiren bir saldırgan tarafından silinebilir veya değiştirilebilir. Kayıtları ulaşıldığı anda ağ üzerinden dışarı taşımak, delil bütünlüğünü korumanın en sağlam yoludur.

Kural tasarlarken "her şeyi kaydet" tuzağına düşmeyin. Çekirdek düzeyinde her sistem çağrısını yakalamak teknik olarak mümkündür, ama yoğun bir sunucuda bu, dakikalar içinde gigabaytlarca log ve ciddi bir performans maliyeti anlamına gelir. Bunun yerine tehdit modelinize odaklanın: hassas yapılandırma dosyaları (/etc/passwd, /etc/shadow, /etc/sudoers), yetki yükseltme ile ilişkili ikililer, kimlik doğrulama olayları ve kritik dizinlerdeki değişiklikler. Az ama anlamlı kurallar, çok ama gürültülü kurallardan her zaman daha kullanışlıdır.

Son olarak, auditd kayıtlarını okumayı öğrenmek bir beceridir. type=SYSCALL, type=PATH ve type=EXECVE gibi farklı kayıt tipleri aynı olayın farklı yönlerini anlatır; ausearch bunları olay kimliğiyle gruplar. Bir kaydı incelerken auid (asıl oturum açan kullanıcı) ile uid (etkin kullanıcı) ayrımına özellikle dikkat edin: bir saldırgan sudo ile yetki yükseltse bile auid, gerçekte kimin oturum açtığını ele verir. Bu küçük detay, adli incelemede failin kim olduğunu belirlemenin anahtarıdır.

Sonuç
auditd, Linux'ta denetim izinin altın standardıdır: ince ayarlı kurallarla kimin neyi ne zaman yaptığını güvenilir biçimde kaydeder. watch ve syscall kurallarını, ausearch/aureport ile inceleme alışkanlığını ve kalıcı kural yönetimini oturttuğunuzda, hem tespit hem de adli inceleme kapasiteniz ciddi biçimde artar. Kuralları kritik varlıklara odaklayın ve mümkünse kayıtları merkezi bir sisteme iletin.

Kaynakça
Yasal Uyarı
Alıntı:Denetim yapılandırması yalnızca kendi sistemlerinizde veya yönetim yetkiniz olan sistemlerde uygulanmalıdır. Başkasının sistemine izinsiz müdahale Türk Ceza Kanunu 243-245. maddeleri kapsamında suçtur.

Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).


Ek DosyalarEkran Görüntüleri
   
Cevapla



Hızlı Menü: