Sistem Olay Denetimi: İzleme ve Güvenlik Analizi¶
Bu makalede
Linux sisteminin güvenliğini ve istikrarını sağlamak, tehditleri önlemekten daha fazlasını gerektirir—olayları tespit etmek ve araştırmak esastır. Sistem denetimi saldırıları engellemez, ancak ihlali kaydetmenizi, kaynağını ve kapsamını belirlemenizi ve analiz için kanıt toplamanızı sağlar. Çoğu dağıtımda ana denetim aracı *****auditd****** deamon'dur. Çekirdek çağrılarını (sistem çağrıları) izler, kullanıcı ve süreç eylemlerini günlüğe kaydeder ve olayları yapılandırılmış günlüklerde saklar.
auditd Nasıl Çalışır¶
Denetim sistemi, sistem çağrısına girerken (entry) veya çıkarken (exit) tetiklenen tetikleyiciler aracılığıyla çekirdeğe bağlanır. Kurallar, hangi çağrıların, dosyaların, kullanıcıların veya süreçlerin izleneceğini belirler. Tüm yakalanan olaylar /var/log/audit/audit.log dosyasına yazılır.
auditd ile şunları izleyebilirsiniz: - Sistem ve hizmet başlatma/durdurma
- /etc/passwd, /etc/shadow, SSH yapılandırmaları vb. gibi kritik dosyalar üzerindeki işlemler
- Dosya izinleri, sahipliği veya özniteliklerdeki değişiklikler
- Dosyaların, dizinlerin ve bağlantıların oluşturulması/silmesi
- Dosya sistemi bağlama
- Ağ bağlantıları ve yapılandırma değişiklikleri
- Belirli kullanıcıların veya süreçlerin eylemleri
Kurulum ve Bileşenler¶
CentOS/RHEL'de audit paketi varsayılan olarak kurulur.
Debian/Ubuntu'da kurmak için:
Ana yardımcı programlar:
| Araç | Amaç |
|---|---|
auditctl | Denetim kurallarını ve durumunu yönet (dinamik yapılandırma) |
ausearch | Çeşitli kriterlere göre (kullanıcı, dosya, sistem çağrısı vb.) günlükleri ara |
aureport | Özet raporlar oluştur (dosya, kullanıcı, zaman vb.) |
autrace | Bir sürecin sistem çağrılarını izle (strace'e benzer, ancak denetimle entegre) |
Arka plan yapılandırması /etc/audit/auditd.conf dosyasında bulunur (tamponlar, taşma davranışı, günlük döndürme vb.). Varsayılan ayarlar genellikle çoğu senaryoya uygundur.
Denetim Kuralları Yapılandırma¶
Kurallar dinamik olarak auditctl ile veya statik olarak /etc/audit/audit.rules içinde ayarlanabilir.
Temel Sözdizimi:¶
- Olay listeleri:
task— süreç oluşturma
entry/exit— syscall giriş/çıkış (en yaygın)
user— kullanıcı alanı olayları
exclude— hariç tutmalar - Eylemler:
always— olayı günlüğe kaydet
never— yok say - Örnekler:
# /etc'de yazma veya öznitelik değişiklikleriyle dosya açılışlarını izle
sudo auditctl -a task,always -S open -F dir=/etc -F auid>=1000 -F perm=wa
# Aynı, ancak dosya/dizinler için daha basit ve etkili
sudo auditctl -a task,always -S open -F dir=/etc -F perm=wa
# Belirli dosya
sudo auditctl -a task,always -F path=/etc/passwd -F perm=wa
Not
-p wa filtresi write ve attribute değişikliklerini ifade eder.
Kalıcı Kurallar — /etc/audit/audit.rules içinde¶
Format, auditctl komutlarıyla aynı, ancak komut kendisi olmadan:
# Örnek girişler (satır başına bir)
-a task,always -S open -F dir=/etc -F perm=wa
-a task,always -S open -F path=/etc/passwd -F perm=wa
Dosyayı düzenledikten sonra değişiklikleri uygula:
Log Analizi¶
Günlükler /var/log/audit/ içinde saklanır. Ana araçlar aureport ve ausearch'dir.
aureport — Özetler ve Raporlar¶
# Dosya erişim raporu
sudo aureport -f
# Sadece son 10 dakika (insan‑okunur adlar)
sudo aureport -f -i --start recent
# Dosya bazında özet (her birinin kaç kez erişildiği)
sudo aureport -f --summary
# Belirli bir dönem için rapor
sudo aureport --start 08/20/2025 12:00 --end 08/20/2025 13:00 -f
# Kolay zaman işaretleri: bugün, dün, bu hafta, yakın, şimdi
sudo aureport -f --start today --summary
Şüpheli erişim için arama örneği:
ausearch — Detaylı Olay Analizi¶
# Olay Kimliği (aureport) ile
sudo ausearch -a 123456
# Kullanıcı (UID) ile
sudo ausearch -ui 1001 -i
# Çalıştırılabilir Dosya ile
sudo ausearch -x /usr/bin/sudo -i
# Sistem Çağrısı ile
sudo ausearch -sc openat -i
# Hizmet (örneğin, cron) ile
sudo ausearch -tm cron -i
# Zaman Sınırıyla
sudo ausearch --start 08/20/2025 12:00 --end 08/20/2025 13:00 -f /etc/passwd
Not
The -i (or --interpret) bayrağı UIDs/GIDs ve syscall kodlarını insan‑okunur adlarla değiştirir.