BarbarHack
Would you like to react to this message? Create an account in a few clicks or log in to continue.

BarbarHack

BarbarHack Web Sitesine Hosqeldiniz....!
 
AnasayfaLatest imagesAramaKayıt OlGiriş yap

 

 Linux Security 2

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin


Mesaj Sayısı : 127
Kayıt tarihi : 20/03/08

Linux Security 2 Empty
MesajKonu: Linux Security 2   Linux Security 2 Icon_minitimeC.tesi Mart 22, 2008 4:02 pm

Şöyle bir göz atılması gereken sonraki konu, yerel kullanıcılardan gelen saldırılara karşı sistem güvenliğiniz konusu. Kullanıcıların yerel olduğunu söyledik mi?
Evet!
Sistem saldırganlarının root hesabına giden yollarındaki ilk şeylerden bir tanesi yerel bir kullanıcı hesabına erişim elde etmektir. Bu saldırganlar, gevşek bir yerel güvenlik ile, kötü ayarlı bir yerel servis veya çeşitli böceklerden yararlanarak, normal kullanıcı erişimlerini root erişimine terfi ettirir. Eğer yerel güvenliğinizin sıkı olduğundan emin olursanız, saldırganın üzerinden atlaması gereken başka bir çit daha oluşturmuş olursunuz.
(Ç.N.: İngilizce bug (böcek) kelimesi, bilgisayar dünyasında, yazılımların, yazarları tarafından önceden tahmin edemedikleri, çalışma zamanında, yani çalışırken ortaya çıkan hataları kastetmek için kullanılır. Bununla ilgili anlatılan bir hikaye, bilgisayarların henüz bir oda büyüklüğünde olduğu zamanlarda, bir böceğin bilgisayarın içine girerek kısa devreye sebep olduğu, böylelikle o anda çalışmakta olan yazılımın görevini yerine getirememesine yol açtığı şeklindedir. Bu olay, ilk yazılım böceği olarak anılır. Genelde böcek kelimesi, yazılımların çalışırken, çoğunlukla beklemedikleri veya kontrol etmedikleri bir girdi karşısında ne yapacaklarını bilememeleri, yahut da kendilerine işletim sistemi tarafından yasaklanmış olan bazı şeyler yapmaya kalkmaları yüzünden göçmesi ile sonuçlanan yazılım hataları için kullanılır. Bu yazılım hataları, önemli bir oranda denetimin yazılım dışına çıkmasına ve işletim sistemine devredilmesine yol açar. Bunu bilen bir saldırganın, yazılımın bıraktığı yerde, işletim sistemi henüz devreye girmemişken, denetimi devralarak kendi yararına olan yazılım kodu parçacıklarını sistem üzerinde çalıştırmasına olanak sağlar. Bu yüzden daha önce bahsedilen, yazılım sürümlerinin güncel tutulması özellikle önem kazanmaktadır. Çünkü bir yazılımın bulunmuş böcekleri, bir sonraki sürüm çıkmadan önce temizlenir. Hatta bazı güncellemeler, yazılımın sadece böceklerden temizlenmiş olması için yayımlanan güncellemelerdir.)
Yerel kullanıcılar, gerçekten söyledikleri kişi oldukları durumda bile sistem üzerinde fazlaca kargaşa yaratabilir (Ç.N.: Bizzat hesabın meşru sahibi tarafından zarar verilmek istenebilir). Tanımadığınız insanlara, veya iletişim bilgilerine sahip olmadığınız birine hesap açmak, gerçekten çok kötü bir fikirdir.

4.1 Yeni Hesap Açma
Kullanıcı hesaplarının, kullanıcıların yapması zorunlu işler için asgari gereklerini karşılayacak şekilde açıldığından emin olmalısınız. Eğer (10 yaşındaki) oğlunuza bir hesap açarsanız, erişiminin bir kelime işlemci ya da çizim programıyla sınırlı olmasını, ve kendisinin olmayan veriyi silme yetkisinin olmamasını isteyebilirsiniz.
Diğer kullanıcıların Linux makinenize meşru bir erişim sağlamasına izin verirken esas olarak alınabilecek bazı kurallar:

Onlara, gereksinim duydukları en az yetkiyi verin.
Ne zaman ve nereden sisteme giriş yaptıklarına, ya da yapmaları gerektiğine dikkat edin.
Kullanılmayan hesapların kapandığından emin olun.
Bütün bilgisayar ve ağlarda aynı kullanıcı isminin kullanılması, hesabın bakımını kolaylaştırması, ve günlük verisinin daha kolay çözümlenmesi açısından tavsiye edilir.
Grup kullanıcı kimliklerinin yaratılması mutlak surette yasaklanmalıdır. Kullanıcı hesapları sorumluluk mekanizması da sağlar, ve bu birden fazla kişinin kullandığı grup hesaplarıyla mümkün değildir.
Güvenlik ihlallerinde kullanılan bir çok yerel kullanıcı hesabı, aylardır hata yıllardır kullanılmayanlardır. Kimse onları kullanmadığı için, ideal bir saldırı aracıdırlar.

4.2 Root Güvenliği
Makinenizdeki, peşinden en fazla koşulan hesap root (üstün kullanıcı) hesabıdır. Bu hesap bütün makine üzerinde yetki sağlamasının yanı sıra, ağdaki diğer makineler üzerinde de yetki sağlıyor durumda olması mümkündür. Unutmayın ki root hesabını, sadece özel işler için ve çok kısa süreliğine kullanmalısınız, geri kalan zamanlarda normal kullanıcı olarak işlerinizi yürütmelisiniz. Root kullanıcısı olarak sisteme giriş yaptığınızda, yaptığınız küçük hatalar dahi sorunlara yol açabilir. Root hesabıyla ne kadar az zaman harcarsanız, o kadar güvende olursunuz.
Makinenizi root olarak karıştırmaktan uzak durmanızı sağlayacak bir kaç numara:

Karmaşık bir komut kullanırken, komutu ilk önce yıkıcı olmayan başka bir şekilde kullanmayı deneyin... Özellikle komutun geniş çaplı kullanımında... Örneğin rm foo*.bak yapmak istiyorsanız, önce ls foo*.bak komutunu kullanarak, silmek üzere olduğunuz dosyaların, silmeyi düşündüğünüz dosyalar olduğundan emin olun. Bu tür tehlikeli komutların kullanımında, komutlar yerine echo kullanmak da zaman zaman işe yarayabilir.
Kullanıcılarınıza, rm komutunun, dosyaları silmeden önce onay almasını sağlayacak, varsayılan bir takma ismini olusturun. (Ç.N.: Bir çok Linux sistemde bunu alias rm=rm -i komutuyla, örneğin sistem genelindeki başlangıç dosyalarının (/etc/profile gibi) içinde gerçekleştirebilirsiniz.)
Sadece belirli, tek bir işi yapmanız gerektiği zamanlarda root olun. Eğer kendinizi bir şeyin nasıl yapıldığını tahmin etmeye çalışırken bulursanız, normal kullanıcı hesabınıza geri dönüp, root tarafından neyin yapılacağından emin olmadan önce root kullanıcısına dönmeyin.
Root için komut yolu tanımı çok önemli. Komut yolu (yani PATH çevre değişkeni), girdiğiniz herhangi bir komut ya da programın hangi dizinlerde aranacağını belirtir. Root kullanıcısı için komut yolunu olabildiğince sınırlandırmaya çalışın, ve asla . dizinini eklemeyin (geçerli dizin anlamına gelir, Ç.N.: tek bir nokta olan geçerli dizin, o anda içinde bulunduğunuz dizindir). Ek olarak, komut yolunuzda, yazılabilen dizinler bulundurmayın, çünkü bu saldırganların bu dizinler içine, bir sonraki sefer kullandığınızda root erişim izniyle çalışacak olan yeni çalıştırılabilir dosyalar koyabilmesi anlamına gelir.
Asla rlogin/rsh/rexec araçlarını (r-araçları olarak adlandırılırlar) root olarak kullanmayın. Çünkü bunlar, çok çeşitli saldırılara açık komutlardır, dolayısıyla root olarak çalıştırıldıklarında çok daha tehlikeli hale gelirler. Asla root için .rhosts dosyası yaratmayın. (Ç.N.: Bu dosya başka bilgisayarlardan çoğunlukla parolasız bağlantı için kullanılır. Sadece yaratmamamakla kalmayıp, özellikle root için böyle bir dosyanın olmadığından emin olun. Bir çok saldırı, root´un ev dizinine, içinde + + satırı bulunan bir .rhosts dosyası kullanılması ile sonuçlanır ki, bu makinenize her hangi bir bilgisayardan herhangi bir kullanıcının parola girmeden root olarak bağlanabileceği anlamına gelir).
/etc/securetty dosyası, root olarak giriş yapılabilecek terminalleri belirtir. Bu dosyanın varsayılan ayarları (Red Hat Linux´ta) yerel sanal konsollardır (Ç.N.: /dev/tty1´den /dev/tty6´ya kadar). Bu dosyaya herhangi bir şey eklerken çok tedbirli olun. Root olmanız gerektiğinde uzaktan normal bir kullanıcı hesabına (ssh veya diğer şifrelenmiş bir yolla) giriş yapıp su komutuyla olabilirsiniz. Dolayısıyla doğrudan root olarak giriş yapabilmeye gereksiniminiz yoktur.
Root´u kullanırken daima yavaş ve temkinli davranın. Davranışlarınız bir çok şeyi etkileyebilir. Tuşlara dokunmadan önce düşünün!
Eğer birine (umarız güvenli biridir), mutlak surette root hesabını kullanması için izin vermeniz gerekiyorsa, yardımcı olabilecek bir kaç araç var. sudo, kullanıcıların, parolalarını kullanarak sınırlı sayıda komutu root olarak çalıştırmalarına izin verir. Bu, örneğin, bir kullanıcının, ayrılabilir medyanın (Ç.N.: Örneğin CDROM) bağlanması veya çıkarılması işini, için root´un diğer yetkilerini kullanamadan yapabilmesi anlamına gelebilir. sudo aynı zamanda, başarılı ve başarısız sudo denemelerinin bir günlüğünü tutar, bu şekilde kimin ne yapmak için bu komutu kullandığını izlemeniz mümkün hale gelir. Bu sebeple sudo, birden fazla kişinin root erişimi olduğu yerlerde bile iyi bir iş yapar, çünkü değişikliklerin takip edilmesinde yardım etmiş olur.
sudo belirli kullanıcılara belirli yetkiler vermekte yararlı olmasına rağmen, bazı eksiklikleri vardır. Sadece sınırlı bir takım işlerde kullanılmak zorundadır, örneğin bir sunucuyu yeniden başlatmak, veya yeni kullanıcılar eklemek gibi. sudo ile çalıştırılan, ve kabuğa çıkmaya izin veren her program, sisteme root erişimi sağlamış olur. Buna örnek olarak bir çok editör gösterilebilir. Ayrıca, /bin/cat kadar zararsız bir program bile, dosyaların üzerine yazmakta, ve root erişimi sağlamakta kullanılabilir. sudo programını, yapılan işten kimin sorumlu olduğunun izlenilmesi için kullanılan bir programmış gibi düşünün, ve hem root kullanıcısının yerine geçmesini hem de güvenli olmasını beklemeyin
5. Dosyalar ve Dosyasistemi Güvenliği
Sistemlerinizi ağa bağlı hale getirmeden önce yapılacak bir kaç dakikalık hazırlık ve planlama, sistemlerinizin ve üzerlerinde saklanan verinin korunmasında yardımcı olabilir.

Kullanıcıların, SUID/SGID programları ev dizinlerinden çalıştırmalarına izin vermek için herhangi bir sebep olmamalıdır. /etc/fstab dosyasında, root´tan başkalarının da yazma izninin olduğu disk bölümleri için nosuid seçeneğini kullanın. Ayrıca, kullanıcıların ev dizinlerinin bulunduğu bölümlerde, ve /var dizininde, program çalıştırılmasını ve karakter veya blok cihazların yaratılmasını engellemek için (ne de olsa hiçbir zaman böyle bir şey gerekmeyecektir) nodev ve noexec seçeneklerini kullanabilirsiniz.
NFS kullanarak dosyasistemlerini dışarı açıyorsanız, /etc/exports dosyasında en fazla sınırlandırma sağlayan seçenekleri kullandığınızdan emin olun. Bu, genel karakter kullanılmaması, root kullanıcısına yazma izninin verilmemesi, ve mümkün olduğu yerlerde salt-okunur şekilde dışa açılması anlamına geliyor.
Kullanıcılarınızın dosya yaratma umask´ini mümkün olduğu kadar sınırlı tutun. Bkz. umask ayarları.
Eğer, NFS gibi bir ağ dosyasistemini kullanarak dosyasistemlerini bağlıyorsanız, /etc/exports dosyasında uygun sınırlama ayarlarının yaptığınızdan emin olun. Tipik olarak, nodev, nosuid, ve belki de noexec gerekli olanlardır.
Dosyasistemlerinin sınırları belirleyin, varsayılan unlimited (Ç.N.: sınırsız) ayarına izin vermeyin. Kullanıcı bazındaki sınırları, kaynak-limitleri PAM modülünü kullanarak, ve /etc/pam.d/limits.conf dosyasındaki ayarlar aracılığı ile yapabilirsiniz. Örneğin, users grubu için sınırlar şu şekilde olabilir:
@users hard core 0
@users hard nproc 50
@users hard rss 5000
Burda söylenen, core dosyalarının yasaklanması, işlem sayısının 50 ile sınırlanması, ve bellek kullanımının 5M ile sınırlandırılmasıdır.

/var/log/wtmp ve /var/run/utmp dosyaları sisteminizdeki tüm kullanıcıların sisteme giriş bilgilerini içerir. Bu dosyaların bütünlükleri korunmalıdır, çünkü bir kullanıcının (ya da bir saldırganın) ne zaman ve nereden giriş yaptığını belirlemede kullanılabilirler. Bu dosyaların erişim izinleri, normal işlevlerini gerçekleştirmelerine engel olmayan 644 olmalıdır.
Korunması gereken bir dosyanın kazara silinmesi veya üzerine yazılmasını önlemek için değişmez biti kullanılabilir. Bu ayrıca, dosyaya bir simgesel bağ yaratılmasını da engelleyecektir (bu tür simgesel bağlar, /etc/passwd veya /etc/shadow dosyaların silinmesi gibi saldırılarda temel oluşturmuştur). Değişmez biti ile ilgili daha fazla bilgi için chattr (1) man sayfasına bakın.
Sisteminizdeki SUID ve SGID dosyaları, potansiyel bir güvenlik riski oluşturur ve yakından izlenmelidir. Bu programlar, onları çalıştıran kullanıcıya özel yetkiler verdiği için, güvensiz programların kurulu olmadığından emin olmak gereklidir. Korsanların gözde bir numarası da SUID-root programlarından yararlanarak, bir sonraki girişlerinde arkakapı olarak kullanmak üzere bir SUID programı yerleştirmektir. Bu şekilde asıl delik kapatılsa bile yeni arkakapı sayesinde sisteme giriş yapabilirler.
Sisteminizdeki bütün SUID/SGID programları bularak ne olduklarını izleyin. Böylelikle, bir değişiklik olduğunda, ki bu değişiklikler potansiyel bir saldırganın göstergesi olabilir, haberiniz olmuş olur. Sisteminizdeki bütün SUID/SGID programları bulmak için aşağıdaki komutu kullanabilirsiniz:

root# find / -type f \( -perm -04000 -o -perm -02000 \)
Debian dağıtımı, hangi SUID programlarının bulunduğunu belirlemek için her gece bir iş çalıştırır. Daha sonra bunu bir önceki gece ile karşılaştırır. Bu günlük için /var/log/setuid* dosyalarına bakabilirsiniz.
Şüpheli bir programdaki SUID ve SGID erişim izinlerini chmod ile kaldırabilir, daha sonra mutlak şekilde gerektiğini hissederseniz tekrar yerine koyabilirsiniz.
Sayfa başına dön Aşağa gitmek
http://tarsus33.forumv.biz
 
Linux Security 2
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» A'dan Z'ye Linux
» Linux Nedir?
» Linux'da Program Kurma %100 Kendi Anlatimimdir!
» Virüsler Neden Linux'da Tehlikeli Degildir?

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
BarbarHack :: Security :: Linux Security-
Buraya geçin: