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
- Linux Audit alt sistemi nedir, syslog'dan farkı
- Kurulum ve servis yönetimi
- Dosya izleme (watch) ve syscall kuralları
- auditctl, ausearch ve aureport referansı
- Uygulamalı: hassas dosya ve komut denetimi
- Kalıcı kurallar ve ileri ipuçları
- 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
sudo apt update
sudo apt install auditd audispd-plugins
sudo systemctl enable --now auditd
sudo systemctl status auditdsudo auditctl -s # durum (enabled, backlog vb.)
sudo auditctl -l # yüklü kurallar3. 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ı:
sudo auditctl -w /etc/passwd -p wa -k passwd_degisiklikSyscall kuralı (-a): mimari (-F arch), çağrı (-S) ve koşullarla:
sudo auditctl -a always,exit -F arch=b64 -S execve -k komut_calistirmaBelirli kullanıcıyı hedefleme (-F auid):
sudo auditctl -a always,exit -F arch=b64 -S execve -F auid=1000 -k kullanici1000_komut4. auditctl, ausearch ve aureport Referansı
auditctl - kuralları canlı yönetir (yeniden başlatınca kaybolur, kalıcı için bkz. 6. bölüm):
sudo auditctl -l # listele
sudo auditctl -D # tüm kuralları silausearch - denetim kayıtlarında arama (anahtara, kullanıcıya, zamana göre):
sudo ausearch -k passwd_degisiklik
sudo ausearch -ui 1000 --start today
sudo ausearch -m EXECVE --start recentaureport - özet raporlar:
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:
sudo auditctl -w /etc/shadow -p wa -k shadow_izlemeAdım 2 - Dosyaya dokunarak olay üretin (lab):
sudo touch /etc/shadowAdım 3 - İlgili kaydı arayın:
sudo ausearch -k shadow_izleme --start recenttype=SYSCALL ... syscall=... success=yes ... comm="touch" exe="/usr/bin/touch" ... auid=1000 ... key="shadow_izleme"Adım 4 - Komut çalıştırma denetimi ve özet rapor:
sudo auditctl -a always,exit -F arch=b64 -S execve -k tum_komutlar
# birkaç komut çalıştırdıktan sonra
sudo aureport -x --summary6. 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:
# /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_calistirmasudo 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
- Linux Audit Projesi (resmi) - https://github.com/linux-audit/audit-documentation
- auditctl(8) Man Sayfası - https://man7.org/linux/man-pages/man8/auditctl.8.html
- ausearch(8) ve aureport(8) man sayfaları - https://man7.org/linux/man-pages/man8/ausearch.8.html
- Red Hat: Linux Audit Sistemi - https://access.redhat.com/documentation
- CIS Benchmarks - https://www.cisecurity.org/cis-benchmarks
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).