Linux Sistemlerde SUID, SGID ve Sticky Bit Kavramı


Bu yazımda sizlere dosya ve dizinlerin izin işlemlerinde kullanılan bazı özel kavramlardan bahsetmek istiyorum.

SUID Biti

SUID (Set owner User ID) bitine sahip olan bir programın, herhangi bir kullanıcı tarafından o programın sahibinin yetkilerinde çalıştırılmasını sağlamaktadır. Buradaki güvenlik zafiyeti ise şu şekilde ortaya çıkar: Eğer sisteme sızan bir kişi SUID veya SGID bitine sahip bir dosyayı bulur ve bu dosyayı kendi istediği gibi düzenlerse yani kendine shell verecek zararlı kod parçaları koyup çalıştırırsa sistemde o kullanıcının haklarına sahip olabilir. Eğer bu kullanıcı “root” kullanıcı ise sisteme tamamen sızabilir.

Burada verilen en genel örnek “etc/shadow” dosyasıdır. Bu dosyada parolalar ve geçerlilik süreleri tutulur. Normal kullanıcılar “etc/shadow” dosyasına erişme hakkına sahip değillerdir. Bu dosyaya sadece root kullanıcı erişebilir. Ama eğer kişi kendi şifresini günceller ise ne olacak? Yani sonuçta kişinin güncellenmiş şifresinin bilgileri “etc/shadow” dosyasına kaydedilmesi gerekmektedir. İşte burada SUID biti devreye giriyor. Bu sayede kullanıcılar kendisine ait olmayan “etc/shadow” dosyasına erişim sağlayabiliyor.

Eğer bir dosyanın SUID bitini aktifleştirmek istersek 2 şekilde yapabiliriz.

chmod u+s <dosya ismi>

veya

chmod 4755 <dosya ismi>

Eğer bir dosyanın SUID bitini devre dışı bırakmak istersek şu şekilde yapabiliriz.

chmod u-s <dosya ismi>

Sistemde SUID biti aktif olan tüm dosyaları bulmak istersek şu komutu çalıştırmamız yeterlidir.

find / ( -perm -u+s -or -perm -g+s ) -type f -exec ls -l {} \;

SGID Biti

SGID (Set owner Group ID) biti ise SUID biti ile aynı mantıkta çalışıyor. Bu sefer izin gruba veriliyor. Bir dosyayı aynı gruba dahil kullanıcılar çalıştırıp düzenleyebiliyor.

SGID bitini aktif etmek istersek 2 şekilde yapabiliriz.

chmod g+s <dosya ismi>

veya

chmod 2777 <dosya ismi>

SGID bitini devre dışı bırakmak istersek şu şekilde yapabiliriz.

chmod g-s <dosya ismi>

Sistemde SGID biti aktif olan tüm dosyaları bulmak istersek şu komutu çalıştırmamız yeterlidir.

find / ( -perm -u+s -or -perm -g+s ) -type f -exec ls -l {} \;

Sticky Biti

Sticky biti, ortak kullanım alanlarında kullanılan bir özelliktir. Siz bir dosyanın Sticky bit değerini aktif edersiniz o dosyayı tüm kullanıcılar erişebilir. İsterlerse yeni dosyalar oluşturabilir veya diğer kullanıcıların oluşturduğu dosyaları okuyabilir. Ama asla bir başka kullanıcının dosyasını silemez. Tüm dosyaları silme yetkisi root kullanıcısına aittir. Bu özellik sticky bit ile sağlanır. Burada verilen örnek dosya ise “/tmp” dosyasıdır. Bu dosyayı tüm kullanıcılar ortak kullanır, yeni dosyalar oluşturur ama asla başkasının dosyasını silemez.

Sticky biti aktif etmek istersek şu şekilde yapabiliriz.

chmod o+t <dosya ismi>

veya

chmod 1777 <dosya ismi>

Sticky biti devre dışı bırakmak için de şu şekilde yapabiliriz.

chmod o-t <dosya ismi>

veya

chmod 777 <dosya ismi>

SUID, SGID ve STICKY bitleri sürekli olarak kontrol edilmelidir. Gereksiz yere verilen bu izinler sistemlerde tehlike oluşturmaktadır. Hedef sistem üzerinde erişim sağlandıktan sonra SUID biti aktif dosya ve uygulamalar kullanılarak daha yetkili bir kullanıcının haklarına erişim sağlanabilmektedir. Belirli periyotlar ile sisteminizde bulunan uygulama ve dosyaların taraması yapılması ve gereksiz SUID bitlerinin kaldırılması, sisteminizi daha güvenli hale getirecektir.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

WordPress.com'da Blog Oluşturun.

Yukarı ↑

%d blogcu bunu beğendi: