Yazılara geri dön
Yazı

auditd ile /etc/passwd ve /etc/shadow Yazma Girişlerini Anlık Algılama ve Engelleme

auditd ile /etc/passwd ve /etc/shadow Yazma Girişlerini Anlık Algılama ve Engelleme

Siber GüvenlikauditdLinux hardening/etc/shadow/etc/passwdkernel auditing

Benim ortamımda, /etc/passwd ve /etc/shadow dosyalarına yetkisiz değişiklikleri tespit etmek Linux sunucu sertleştirmesi için müzakere edilemez. auditd, bu kritik dosyalara dokunulduğunda anlık olarak tetiklenen çekirdek seviyesinde denetim sağlar; böylece gerçek zamanlı görünürlük ve yanıt yeteneği elde ederim. Kimlik bilgilerini manipülasyon girişlerini, ayrıcalık yükseltmesi veya hesap ele geçirmesi yoluna çıkmadan önce yakalamak için auditd'a güveniyorum.

İlk adım olarak, auditd'nin kurulu ve çalıştığından emin ol. Çoğu modern dağıtımda zaten mevcuttur, fakat doğrulamak gerekir:

sudo systemctl status auditd

Pasifse, başlat ve etkinleştir:

sudo systemctl start auditd
sudo systemctl enable auditd

Sonra, her iki dosyaya da yazma, öznitelik değişikliği ve yazma için açma işlemlerini izlemek üzere denetim kuralları tanımlamalıyım. Ben -w (izleme) bayrağını p=wa ile kullanarak yazma ve öznitelik değişikliklerini yakalarım:

sudo auditctl -w /etc/passwd -p wa -k passwd_watch
sudo auditctl -w /etc/shadow -p wa -k shadow_watch

-k bayrağı, daha sonra günlükleri aramayı kolaylaştıran bir filtre anahtarı belirler. Bu kurallar yeniden başlata kadar geçerli kalır; kalıcı hale getirmek için /etc/audit/rules.d/audit.rules dosyasına eklemeliyim:

# /etc/passwd ve /etc/shadow yazma izleme
-w /etc/passwd -p wa -k passwd_watch
-w /etc/shadow -p wa -k shadow_watch

Daha sonra kuralları yeniden yüklemeliyim:

sudo augenrules --load

Test etmek için, /etc/passwd dosyasını güvenli bir şekilde düzenlemek için vipw ile deneme yapabilirim:

sudo vipw

Zararsız bir değişiklik yap, kaydedip çık. Daha sonra denetim günlüğünü kontrol et:

sudo ausearch -k passwd_watch -i

Aşağıdaki gibi bir giriş görünecektir:

type=SYSCALL msg=audit(1717000000.123:456): arch=c000003e syscall=2 success=yes exit=3 a0=7fffd1234567 a1=800 a2=0 a3=0 items=1 ppid=1234 pid=5678 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="exe" exe="/usr/sbin/vipw" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="passwd_watch"

Bu, kuralın tetiklendiğini doğrular. Gerçek zamanlı uyarı için, auditd günlüklerini bir izleme sistemine boru hatasıyla bağlayabilir veya auditd’nin yerleşik yürütme yeteneğini kullanabilirim. Örneğin, shadow dosyasına yazma yapıldığında bir betik çalıştırmak için:

sudo auditctl -w /etc/shadow -p wa -k shadow_watch -a always,exit -F arch=b64 -S openat -F a2&0xO_WRONLY -F a2&0xO_RDWR -k shadow_write_exec

Daha sonra /etc/audit/auditd.conf dosyasında admin_space_left_action üzerinden bir eylem tanımlayabilir veya systemd tetikleyicileriyle auditd kullanabilirim. Daha basit bir yaklaşım: journalctl -f ile günlükleri izleyip, systemd path birimleri veya hafif bir izleyici betiğiyle uyarıları tetikleyebilirim.

auditd'yi fail2ban benzeri otomasyonla birleştirmek, gücünü artırır buldum. Örneğin, aynı IP adresinden 60 saniye içinde /etc/shadow dosyasına üç yazma denemesi yapılırsa, iptables veya nftables ile kullanıcıyı geçici olarak engelleyebilirim. Bu, daha önce syslog ve LLM üzerinden şüpheli sudo kullanımını tespit ettiğim yazımda bahsettiğime benzer; fakat burada çekirdek denetim katmanında çalışıyoruz — daha güvenilir ve bypass edilmesi daha zor.

Bir uyarı: aşırı denetleme gürültü oluşturabilir. Okuma izleme gerekmiyorsa -p rwx yerine -p wa (yazma ve öznitelik) odaklanmalıyım. Ayrıca, yedekleme ajanları veya PAM modülleri gibi bilinen meşru süreçleri yanlış pozitif tetiklediği için hariç tutmalıyım. ausearch ve aureport ile ayarlama yapabilirim:

sudo aureport -f -k passwd_watch

Son olarak, auditd tespit eder ve uyarı verir — varsayılan olarak engellemez. Gerçek zamanlı yanıtla birleştirilmelidir: ofensif süreci öldüren, kullanıcı hesabını devre dışı bırakan veya SIEM uyarısı tetikleyen bir betik. Güvenli zonlarda, auditd kancalarını usermod -L üzerinden otomatik hesap kilitleme veya anlık erişim iptaliyle entegre eden timler gördüm.

Kritik kimlik doğrulama verilerini koruyan Linux sistemleri için, auditd opsiyonel değil — sessiz kimlik bilgisi hırsızlığına karşı ilk savunma hattıdır.


Kapak görseli: West Virginia National Guard · PDM (Openverse / kamu malı) · https://www.flickr.com/photos/163885612@N02/55234262023