Mövzunu Açan #1
grep ile dosya izinlerini denetleme

Günlük sunucu bakımında sık karşılaşılan görevlerden biri, dosya ve dizinlerin doğru izinlerle korunup korunmadığını hızlıca kontrol etmek. Özellikle Linux tabanlı sistemlerde, izinler hem güvenlik hem de uygulama davranışı için kritik. Bu yazıda, grep komutunu kullanarak dosya izinlerini nasıl tarayabileceğini ve olası güvenlik açıklarını hızlıca tespit edebileceğini adım adım ele alıyorum.

1) Temel fikir: ls –l çıktısını filtrelemek
Bir dizinde bulunan tüm dosya ve klasörlerin izinlerini görmek için ls -l komutu kullanılır. Ancak çıktı içinden sadece izinleri ve sahibini hızlıca görmek için grep ile odaklanabiliriz. Örneğin:
  • ls -l | grep -E '^-..-.....|^d.....'

Bu, dosya ve dizinlerin ilk karakterine göre temel tür bilgisini filtre eder. Ancak daha güvenli bir yaklaşım, izinlerin kendisini hedef almak.

2) İzin kalıplarını doğrudan yakalamak
Dosya izinleri genellikle rwxr-xr-- gibi formatta görünür. Belirli bir kullanıcı veya grup için izinleri denetlemek adına şu yaklaşım kullanılabilir:
  • ls -lR /hedef/kök | grep -E '^-.{9}.*kullanici_adi'
  • ls -lR /hedef/kök | grep -E '^-..r[wx-]...|^d..r[wx-]..'

Bir dosyanın dünya yazma (world-writen) iznine sahip olup olmadığını bulmak için:
  • ls -lR /hedef/kök | grep -E '^-..-..w..|^d.....w..'


3) Sahiplik ve grupları odaklayan tarama
İzinlerle birlikte kullanıcı ve grup sahibini kontrol etmek güvenlik için önemli:
  • ls -lR /var/www | grep -E '^-..rw-r--r--|^d rwx'
  • ls -lR /home | grep -E '^-..rwxr-x---|^d rwxr-x---'

İstenmeyen dünya yazma iznini tespit etmek için:
  • ls -lR / | grep -E '^-..-..[^x].[^x].[^x]$'


4) Karmaşık aramalar için awk ile eşleşme güçlendirme
grep ile yalnızca izinleri değil, aynı zamanda hangi kullanıcı/grup altında yazıldığını görmek için awk ile birleştirmek daha net sonuç verir:
KOD
1ls -lR /var/www | awk '{print $1, $3, $4, $9}' | grep 'root root'

Çok daha net bir hedef için belirli bir izin setini arayalım:
KOD
1ls -lR /home | awk '{print $1, $3, $4, $9}' | grep '^drwxr-x---'


5) Güvenlik odaklı pratik ipuçları
  • -R ile recursive tarama yaparken gereksiz dizinleri hariç tutmak için find ile birleştirmek daha performanslı olabilir.
  • Belirli bir izin kümesini ararken regex’i dikkatli yaz: rwxr-x--- gibi kısa formlar da gelir.
  • Çıktıyı günlük dosyasına yönlendirip zaman içinde değişiklikleri karşılaştırmak için diff veya GNU diffutils kullanın.


Bu tekniklerden hangisini sizin mevcut altyapı ve güvenlik politikalarınıza uyarlayabilirsiniz? Özellikle hangi dizinlerde otomatik tarama kurulumları veya hangi güvenlik kontrolleri için grep tabanlı çözümler sizin için daha uygulanabilir görünüyor? Deneyimlerinizi ve karşılaştığınız pratik sorunları paylaşırsanız, daha hedefli tarama şablonları oluşturabiliriz.

Cavab vermək üçün daxil olmalısınız.

Bu mövzunu görüntüləyən istifadəçilər (Cəmi: 3, Üzvlər: 3, Qonaqlar: 0)
Cəmi: 3 (üzvlər: 3, qonaqlar: 0)
0 sitat seçildi