sXid suid/sgid Dosya Gözlem Programı

Server Güvenliği ve Optimizasyonu

sXid suid/sgid Dosya Gözlem Programı

İleti Curtis 02.11.2005, 22:13

SUID, SGID ve Sticky Bits leri açıklayarak makaleye başlıyalım

Sticky Bit
Sticky bit in ayarlanması uygulama çalıştırıldıktan sonra hafızada kalacağını belirtir.Linux/unix in çok kullanıcının aynı anda çalışmasına olanak sağlayan işletim sistemleri olduğunu unutmayınız.Böylece hafızada olan bir uygulamayı başka bir kullanıcı istediğinde bunun çalışır vaziyete gelebilmesi çok kısa bir zaman almaktadır.Eski unix sistemlerinde cpu gücünün ve ram in az olduğu sistemelrde gerekli olabilicek bir yöntemken şu anda gelişen teknoloji ile fazla gereksinim duyulmamaktadır.

SUID (Set User ID) Bit

Eğer bir uygulama suid olarak ayarlandı ise çalışırken sizin kullanıcı id niz yerine dosya sahibinin kullanıı id si ile çalışır.Bir örnek verelim bir uygulamamız var ve bu uygulamanın sahibi root ve bu uygulama suid olarak ayarlanmış biz sistemdeki normal bir kullanıcı olarak ne zaman bu uygulamayı çalıştırsak uygulama root olarak sistemde çalışıcaktır .Bu uygulamadaki suid biti uygulamanın çalıştırıldığında kesinlikle root olarak çalıştırılması gerektiğini söylemektedir.Bir uygulamanın sistemdeki normal bir kullanıcı tarafından root hakkı ile çalıştırılabilmesi güvenlik açıklarınına sebep olabilir.

bir uygulamaya suid biti' nin verilmesi aslında bize işlem kolaylığı sağlayacaktır.Bunu basitçe bir örnekle size anlatayım.
Sistemimizde iki işletim sistemi var windows ve linux; linux altında çalışırken bir kaç dosyada değişiklik yaptık ve bilgisayarı kapatmadan bu dosyaları mount ettiğim windows bölümüne aktarmak istiyorum.Normal bir kullanıcı olarak windows bölümüne yazma hakkım bulunmamaktadır.Bu işlemi gerçekleştirebilmek için super user yani sistemdeki en yetkili kişi olmalıyım.Linux bölümündeki dosyaları windoes bölümüne aktaran basit bir shell scripti yazıyorum.Bu scriptin sahibi root ve suid olarak ayarlanmış.Bu scripti sistemdeki bütün kullanıcılar çalıştırabiliyor.Böylece windows bölümüne ne zaman bir doosya kopyalayacak olsam bu scripti çalıştırıyorum.ayarlanan suid biti benim normal bir kullanıcı hakları ile windows bölümüne yazmama olanak sağlamaktadır.SUID biti ayarlanmamış olmasaydı benim su komutu ile geçici olarak en yetkili kişi olup bu bölüte yazmalıydım.Başka bir örneği ele alalım bir program yardımı ile sistemdeki tüm kullanıcıların önemli olan bilgilerin yedeklerini almalarını sağlayabilirsiniz.Bu yolla kullanıcılar root şifresini bilmedikleri halde yedekleme işlemini yapabilmektedirler.

Bir uygulamaya SUID bitii vermeden önce çok iyi düşünmelisiniz bu yugulamanın hangi parametrelere ulaşabileceğini ve kullanıcılar tarafından değiştirilip değiştirilemiyeceği.

SGID (Set Group ID) bit:
SUID gibi SGID olarak ayarlanana bir dosya topluluğunuçalıştırırken sizin grup id niz yerine dosya topluluğunun sahibinin grup id si ile çalışır.SGID olarak ayarlanan dosyalar çok kullanıcılı sistemlerde işinize yarayabilir. Kullanıcılar birbirlerinin ev klasörlerine ulaşabiliyorlarsa.Belirttiğimiz gibi SGID içinde mantık SUID ile aynıdır.

SUID yada SGID uygulamalarını güvenliğini tamamen sağlamak çok zor hatta imkansızdır.Aşağıda anlatıcaklarım ile kontrolu elinizde bulundurabilirsiniz

öncelikle sistemdeki SUID ve SGID dosyaları bulalım konsolda yazacağımız komut
Kod: Tümünü seç
find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \;

buradan SUID ve SGID bitine sahip olan dosyaların listesi karşınıza çıkıcaktır.Kullanılmayacağını düşündüğünüz uygulamalardan
Resim

bu biti kolayca alabilrisiniz
Resim
Kod: Tümünü seç
chmod -s uygulama adı

örnek:
Kod: Tümünü seç
chmod -s /usr/bin/wall


Suid/Guid Gözlemleme Programı
Bu program cronjob dan çalışan suid/sgid dosya gözlem programıdır.S[ug]id dosya ve dizinlerini kontrol eder.Ne zaman bir kullanıcı yeni bir paket yükleyip bu paketteki dosyalar suid yada sgid olarak ayarlandığında sizi basit bir şekilde komut yolundan yada e-posta göndererek uyarır.

Kurulum İşlemleri
1.)Sisteme root olarak giriş yaptık root dizinine geçtik. dosyayı wget binary si ile sistemimize çekiyoruz
Kod: Tümünü seç
wget http://freshmeat.net/redir/sxid/10146/url_tgz/sxid_4.0.4.tar.gz

2.)Sıkıştırılmış arşiv dosyasını açıyoruz.
Kod: Tümünü seç
tar zxvf sxid_4.0.4.tar.gz

Resim
3.)Dizine geçiyoruz.
Kod: Tümünü seç
cd sxid-4.0.4/

4.)Kurulum işlemine başlıyoruz
Kod: Tümünü seç
./configure --sysconfdir=/etc

Resim
5.)Hata almadıysanız komut satırına aşağıdakileri yazıp devam ediyoruz
Kod: Tümünü seç
make
make install

Resim
6.)Ayar dosyamızı açarak gerekli düzenlemeleri yapacağız. sxid.conf
Kod: Tümünü seç
pico -w  sxid.conf

Resim
7.)Konfigurasyon dosyasındaki değerleri sırasıyla açıklayalım
SEARCH="/":Arama işlemine nereden başlanacağını belirtir.
EXCLUDE="/proc /mnt /cdrom /floppy":Arama işlemi yapılmayacak sürücüleri ve dizinleri gösteriri.Aranmasını istemediğiniz dizinleri buraya yazın.
EMAIL="root": Email adresinizi buraya yazın
ALWAYS_NOTIFY="no": Herzaman suid ve sgid dosyalar hakkında bilgilendirilmek istiyorsanız burayı yes olarak değiştirin.
FORBIDDEN="/home /tmp": Buraya +s dosyaların kesinlikle bulunamayacağı dizinleri yazın
ENFORCE="no": Bu seçeneği yes olarak işaretlerseniz izin verilmeyen dizinlerde suid/sgid dosyalar bulunursa program tarafından otomatik olarak silinecektir.
EXTRA_LIST="/etc/sxid.extra.list": Buraya ek olarak programın gözlemlemesini istediğiniz dosyaları yazın sshd, xinetd, pppd, tcpd. gibi

MAIL_PROG="/usr/bin/mail": Standart mail sunucusunu sildiyseniz buraya onun yolunu yazın yoksa değiştirmeyin

Programın crontab a eklenmesi
Kod: Tümünü seç
crontab -e

yazarak crontab a giriyoruz bu şekilde giremezseniz
Kod: Tümünü seç
pico -w /etc/crontab
yazarak girip aşağıdaki satırı açılan sayfanın en altına yapıştırın
Kod: Tümünü seç
30 5 * * * root /usr/local/bin/sxid

saat 5:30 da kontrol olacak şekiilde ayarladık istiyorsanız bunun zamanını değiştirebilrisiniz
Resim

Döküman Yazarı:droppy23
Kullanıcı avatarı
Curtis
Üye
Üye
 
İleti: 686
Kayıt: 06.10.2005, 06:22
Konum: İstanbul

Server Güvenliği ve Optimizasyonu



Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir

cron