Ana Sayfa Çözümler Neden Netsmart? Kariyer Keşif Kurumsal Materyal İletişim

Netsmart Bilişim Sistemleri A.Ş.

Esentepe Mh. Ecza Sk. No: 6 K: 1, 34394,
Şişli-İstanbul, Türkiye

+90212-274-31-61

info@netsmart.com.tr

Analiz

NFS Servisi İstismarı ve doğru yapılandırması

Network File System’in baş harflerinden oluşan, Unix/Linux işletim sistemlerinin ortak bir dosya sistemine, yerel diskleri kadar kolay ulaşmasını sağlayan, RPC temelli dağıtık dosya sistemi yapısıdır.

NFS Servisi İstismarı ve doğru yapılandırması

NFS sayesinde bir makinede yer alan belirli bir disk bölümü, başka makineler tarafından okunabilir ve yazılabilir. NFS, istemci-sunucu mantığı ile çalışmaktadır. Birden fazla kullanıcıyla eş zamanlı olarak dosyalar üzerinde çalışılabilmektedir.

Nasıl Çalışır?

NFS dosya sistemi, 4 protokolün birleşmesiyle meydana gelir. RPC temellidir. Sunucu çalışmaya başladığında, Portmap’e (Protokolü port numaralarına çeviren sunucu), hangi kapının kullanılacağını söyler ve yönetilen RPC program numarasını verir. Paylaşılan dizin, sanki yerel makinenin bir diziniymiş gibi davranır. Kendi disk alanını paylaştıran makineye NFS sunucusu, bu diske erişim yapan makinelere ise NFS istemcisi (client) adı verilir. ArcSight sunucularında da kullanılan bu dosya sisteminin avantajları ve dezavantajları bulunmaktadır. Bazı avantajları şu şekildedir;

  • Kurulumu kolay ve düşük maliyetli bir çözümdür. Tek tek kullanıcı sistemlerinde ek yazılım ve disk alanı ihtiyacını azaltarak merkezi yönetime izin verilir.
  • Tüm kullanıcılar, tek bilgisayar üzerindeki aynı disk alanını paylaşabilirler. Bu diskleri, kendi dosya sistemlerine bindirebilirler.
  • NFS’in sağladığı paylaşım sayesinde, büyük depolama alanı isteyen programlar, tek bir sunucuda toplanabilirler. Bu sayede önemli miktarda diskten tasarruf sağlanabilir.
  • Bir makine üzerinde yapılan değişiklik, her makine de yapılmış gibi olur. Böylece hız ve performans anlamında da NFS oldukça avantajlıdır.
  • Kurumlarda bulunan NAS gibi sistemler için oldukça kullanışlıdır.
  • Eski sürümlerinin güvensiz olmasının yanında, yeni sürümlerinde kerberos ile kimlik doğrulama dahil birçok güvenlik katmanı eklenmiştir.

NFS sisteminin avantajlarından söz ettik. Bir de dezavantajlarına bakalım;

  • Yoğun ağ trafiği esnasında NFS’in bazı durumlarda yavaşladığı tespit edilmiştir.
  • Linux cihazlar arasında dosya paylaşımını desteklemektedir. Bazı third party uygulamalar ile Windows ile de paylaşım desteklenebilir. Fakat bu güvenlik açısından çok mantıklı bir uygulama değildir.
  • Güvenli bir şekilde NFS sistemi yapılandırılmadığı takdirde yetkisiz erişim sağlanabilir.

NFS Kurulumu ve Arcsight ile Kullanımı

NFS, server-client mantığı ile çalışmaktadır. Kurulumu gerçekleştirmek için de hem server tarafına hem de client tarafına bazı paketlerin kurulumu yapılması gerekmektedir. Arcsight için de bazı durumlarda NFS mount sistemi kullanılmaktadır. Basit bir örnek verecek olursak, logger configuration backup dosyasının lokal sunucu içerisine alındığını fakat diski doldurmaması adına başka bir Linux sunucusunda tutmamız istenmektedir. Bu durumda NFS mount işlemi uygulayarak, yerel ağda bulunan bir başka Linux sunucusu içerisine configuration backup dosyalarımızı tutabiliriz. Öncelikle client ve server cihazlarına gerekli paketlerin kurulumu yapılmalıdır.

NFS Sunucu: Üzerinde dosya sisteminin tamamını veya bir bölümünü yerel ağ üzerindeki diğer makinelerin paylaşımına açar.

NFS İstemci: Bulunduğu yerel ağda bir NFS sunucusunun dosya sistemine ulaşır.

Hem istemci hem de sunucu cihazımızda NFS işlemleri için “nfs-utils” paketinin yüklü olması gerekmektedir. Centos sistemlerde “yum install nfs-utils” komutu ile paketi yükleyebilirsiniz. Paketin, sisteminizde yüklü olup olmadığını “rpm -qa nfs-utils” komutu ile kontrol edebilirsiniz.

Sunucu bilgisayarda, paylaştırılacak dosya sistemleri bilgisinin bulunduğu dosyayı, yukarıdaki path içerisine yazmamız gerekmektedir. Dosyanın bulunduğu yer sunucu olmalıdır. Aksi takdirde, dosya paylaşımında mount etme sorunları ile karşılaşılabilmektedir.

Kritik noktalardan biriside “exports” dosyasının içerisine yazılacak dosya bilgileridir. Burada, paylaşılacak dosya “/…/…” istemci ip” şeklinde yazılmalıdır. Parantez içerisinde yazılan seçenekleri de açıklamak gerekirse;

  • Rw: İstemciler paylaşıma yazabilir, paylaşımdan okuyabilir.
  • Ro: Salt okunur paylaşım.
  • Async: İstemcinin ağ üzerinden yazma işlemi biter bitmez sunucu diskine yazılır. Performansı düşürür ama veri kaybını en aza indirger.
  • Root_squash: Paylaşıma root olarak erişildiğinde, sunucu bunu ‘nobody’ kullanıcısına çevirir. İstismar da tam olarak buradaki nobody kullanıcıları ve diğer tanımlanan kullanıcılar kullanılarak gerçekleşmektedir.
  • No_root_squash: Bağlantı kuracak istemci üzerinden paylaşılan dizinlerde “rw” yetkisi etkinleştirilmişse, root kullanıcısının izni ile dosya oluşturulabilmesine sebep olur. Güvenilir olmayan bir seçenektir.
  • All_squash: Bağlantı kuracak istemci üzerinden, paylaşılan dizinlerde, hangi kullanıcı ile bağlanılırsa bağlanılsın, ilgili kullanıcının izni ile dosya oluşturulamaması sağlanır. Yani istemciden bağlanan tüm kullanıcılar sunucu tarafında anonim kullanıcı olarak değerlendirilir.

Paylaşılacak dosyaların bilgileri “exports” dosyasına yazıldıktan sonra, bilgiler kaydedilp çıkış gerçekleştirilir.

Bilgiler başarılı bir şekilde kaydedildikten sonra, sırası ile yukarıdaki komutlar çalıştırılmalıdır. “enable” komutu sistem her yeniden başladığında nfs servisini başlatmak için kullanılmaktadır. “showmount -e” komutu ile export edilen dosyaları ve RPC servisinin çalıştığını görüntüleyebilirsiniz.

Sunucu tarafında istenilen dosyayı paylaşma işlemlerinin ardından istemci tarafında gerekli konfigürasyonların yapılması gerekmektedir.

10.61.61.62 sunucusundaki paylaşımdaki dosyayı mount edebilmek için “mkdir” komutu ile bağlamayı gerçekleştireceğimiz path oluşturulmalıdır. İstemci tarafında da “systemctl enable nfs-server” ve “systemctl start nfs-server” komutları çalıştırılmalıdır. NFS servisi aktif hale getirilmelidir. Paylaşımdaki dosyayı kalıcı olarak mount edebilmek için /etc dizini altındaki fstab dosyasına yazılmalıdır.

Paylaşımdaki dosyayı istemciye mount etmek için 2 yöntem bulunmaktadır. Birinci yöntem fstab içerisine yukarıdaki satır (Sunucu IP adresi:/paylaşımdakidosya /bağlanacakklasör) eklenmelidir. Fstab içerisine yazılarak mount etme işlemine kalıcı mount işlemi denir ve sistem reboot edilse bile mount kopmadan paylaşıma devam edilir. Mountun gerçekleşmesi için komut satırından “mount -a” komutu yazılmalıdır.

İkinci yöntem ise komut satırından geçici mount etme işlemidir. Bu işlem;

  • mount -t nfs <sunucu adresi>:/<paylasim> <bağlanacak_klasör>

komutu ile gerçekleştirilir. Sistemden herhangi bir log out ya da reboot işlemi sonrasında mount kopmaktadır.

İstemci içerisinde disk durumunu kontrol etmek için “df -kh” komutu girildiğinde son satırda mountu görüntüleyebiliriz.  Sunucudan paylaşımı gerçekleşen dosyanın bağlandığı klasörü görüntülediğimizde ise configuration backup dosyalarının, başarılı bir şekilde alındığı görülmektedir. Bu şekilde NFS sisteminin ArcSight ile kullanımıyla ilgili basit bir örneğini incelemiş olduk.

NFS İstismarı

NFS servisi, çoğu firmalarda dosya paylaşımında kullanılmaktadır. Yukarıda göstermiş olduğumuz ArcSight örneği üzerinden düşündüğümüzde, bu servis istismar edildiğinde ya da sızma testi yapıldığında buradan birçok veri elde edilir. NFS servisi istismarı yapılırken, birçok yöntem denenebilir. Zafiyetlerin ortaya çıkmasının temel sebebi, doğru bir şekilde yapılandırılmamış olan NFS servisidir. Örneğin, exports dosyası içerisine, “no_root_squash” bilgisi eklendiğinde bu paylaşım güvensiz bir paylaşım olmaktadır ve herkesin erişebilmesine sebebiyet verir.

Uygulama esnasında 2 sömürme yönteminden söz edilecektir. İlk yöntemde, paylaşım yapılacak dosyanın tüm ağ ile paylaşılma senaryosu üzerinden dosyalara erişmeye çalışacağız.

Paylaşım yapılacak sunucu içerisinde “/” dizini altındaki tüm dosyalar exports dizini içerisinden yukarıdaki gibi paylaşıma açılmıştır. Burada kötü niyetli kişi olduğumuzu düşünüp, bu ağa bir şekilde sızmış olduğumuzu varsayalım. Ayrıca bu paylaşımla ilgili bir bilgimizin olmadığını da düşünebiliriz.

Açığı sömüreceğimiz makineden ağ ile ilgili bir nmap taraması başlatalım. Yukarıdaki nmap taramasını kullanarak, “10.61.0.0” ağındaki NFS servisi tespit edilebilir. Bu tarama spesifik olarak bir IP adresini hedef almadığı için tüm ağı taraması biraz uzun sürebilir. “G” tuşu ile nmap search ün hangi aşamada olduğunu görüntüleyebilirsiniz.

Nmap taraması tamamlandığında, görüldüğü gibi 10.61.61.62 ağında, 111 portunda RPC servisi çalıştığı ve bu paylaşımda “/ *” dizinin tüm ağa paylaşıldığı tespit edilmiştir. Paylaşıma erişim sağlamak için mount ile dizini kendi makinemize bağlayabiliriz.

Paylaşımda olan dizini, makinemize mount edebilmek için “kurbandizini” adında bir dosya oluşturulur. Kalıcı mount etme işlemi yerine, geçici mount yöntemi kullanılarak paylaşımdaki dosya “kurbandizinine” mount edilmiştir. Sistem bilgileri “df –kh” ile görüntülendiğinde mount işleminin başarılı bir şekilde gerçekleştiği görülmektedir.

Makinemizde bulunan “kurbandizini” ne “ls” çekildiğinde 10.61.61.62 makinesinde “/” dizini altında bulunan tüm dosyaların listelendiği görülmektedir. Bu şekilde yanlış yapılandırılmış olan NFS paylaşımı, eline geçmesini istemediğimiz kişilerce istismar edilebilmektedir.

Böyle bir senaryo, herkesin başına gelebilir. Örneğin Nas paylaşımları da bu şekilde gerçekleşmektedir ve gerekli yetkilendirilmeler sağlanmazsa, bu şekilde zafiyetler ortaya çıkabilmektedir.

2.Senaryo

Bu senaryo da ise SUID biti ile NFS yapılandırması üzerinden hak yükseltme denenecektir. SUID biti, herhangi bir programın, herhangi bir kullanıcı tarafından o programının sahibinin yetkilerinde çalıştırılmasını sağlamaktadır. Bu sayede erişim yetkimizin bulunmadığı bir dosya üzerinde değişiklik yapabilir hale gelebiliriz. Hak yükseltmek için kernel, yapılandırma ve kullanım zafiyetleri gibi çeşitli yöntemler istismar edilebilir.

Varsayılan olarak “/etc/exports” dosyasının sahibi root ve yetkilendirmesi de 644 şeklindedir. 644 izni, standart kullanıcılar tarafından bu dosyanın içeriği okunabilir ancak değiştiremez anlamına gelmektedir. Senaryoda kısıtlı yetkilere sahip arcsight kullanıcısına “root” kullanıcısı gibi değiştirme yetkisi verilmiştir. Bu kısıtlı kullanıcı ile bir dosya ağ üzerinde NFS servisi ile paylaşılmaktadır.

Daha net anlaşılabilmesi için, kısıtlı yetkilere sahip arcsight kullanıcı /etc/exports dizinini değiştirme yetkisine sahiptir. Bu şekilde “/paylasilacak” dosyası ağda “no_root_squash” izinleriyle paylaşılmıştır.

Zafiyeti sömüreceğimiz makine üzerine /paylasilacak dizini geçici olarak mount edilir. Sistem bilgileri kontrol edildiğinde mount işleminin başarılı bir şekilde gerçekleştiği görülmektedir.

Mount edilen “kurbandizini” dosyası içerisine SUID biti oluşturulur. Herhangi bir dosyanın SUID bitini aktifleştirmek için iznini “4777” yapabilir ya da “chmod u+s” komutunu kullanarak aktifleştirebilirsiniz. Burada aktifleştirilen SUID biti “/bin/bash” kabuğudur. Hedef sistemde çalıştırıldığında standart kullanıcıdan root kullanıcısına yükseltmeyi hedeflemektedir. Dosyayı 4777 iznine çevirmemizin sebebi, “4” SUID bitinin aktifleştirildiğini, “7” dosya sahibine tüm yetkilerin verildiğini, “7” grup için okuma ve çalıştırabilme yetkilerinin verildiğini, “7” ise diğer kullanıcılara tüm yetkilerin verildiğini belirtmektedir.

Kısıtlı yetkilere sahip arcsight kullanıcısıyla paylaşımı yapılan klasör görüntülendiğinde “suid” bitine erişebilmekteyiz. Bu biti “./” komutu ile çalıştırdığımız zaman görüldüğü gibi arcsight kullanıcısından, root kullanıcına yükselmiştir. “Whoami” sorgusu çekildiğinde “root” yetkilerine başarılı bir şekilde yükseldiğimiz görüntülenmektedir. Bu şekilde kısıtlı kullanıcıdan kurtulup, root yetkilerine erişerek sistemde root’un yapabileceği her hareketi gerçekleştirebiliriz.

2 farklı senaryoyu, uygulamalı bir şekilde gerçekleştirdik. Bu yöntemlerden haricinde de NFS ile ilgili birçok sömürü yöntemi bulunmaktadır. Bu yöntemlerden bazıları;

  • SSH servisi ile home dizinine erişim sağlayarak komut satırına ulaşma,
  • UserID bilgilerini elde edebilmek için Brute-Force saldırısı,
  • Hedef kullanıcının ID’sini tespit edebilmek için “nfspy” aracı kullanma,
  • Yine id tespiti için “stat” aracının kullanılması,
  • “Nobody” kullanıcısı oluşturularak, nobody kullanıcı ile exports içeri değiştirme,

Gibi birçok yöntem bulunmaktadır.

Ne Tür Önlemler Alınmalıdır?

NFS, birçok alanda kullanılması gereken, kullanıldığında ise oldukça faydalı olan bir servistir. Uygulamada da görüldüğü gibi, doğru yapılandırılmadığı zaman sistem içerisinde birçok açık barındırabilir ve yetkisiz erişim sağlanabilir. Eski sürümlerinin güvensiz olması nedeniyle yeni sürümlerinde kerberos ile kimlik doğrulama dahil birçok güvenlik katmanı eklenmesine rağmen, kullanıcı bazlı hatalar bu tür güvenlik katmanlarının önüne geçmektedir. Sistem içerisinde NFS servisi kullanılıyorsa, aşağıdaki önlemleri uygulayabiliriz.

  • Mümkünse public bir ortamda kullanmak istediğiniz sunucu için salt okunur erişim izni verilmelidir.(read only)
  • Kök klasörü (/) ya da /etc dizini ağ ile paylaşılmamalıdır.
  • Herhangi bir dosyayı dışa aktarmak istemiyorsanız NFS devre dışı bırakılmalıdır.
  • NFS, public olarak yayınlanacaksa, bu paylaşım belirtilen ana bilgisayarlarla sınırlandırılmalıdır.
  • SUID bitlerinin yürütülmesini önlemek için –nosuid seçeneği kullanılmalıdır.
  • Aygıt dosyalarının paylaşılmasını önlemek ve klasörleri mount etmek için –nodev seçeneği kullanılmalıdır.
  • NFS sunucusu public bir ortamda kullanılacaksa eğer, “no_root_squash” parametresi kullanılmamalıdır. Bunun sebebi de nfs clientlar, export edilen dizinlere bu yapılandırma ile root yetkisi ile erişebilmektedir. Güvenilir yapılandırma için bu parametre kullanılmamalıdır.
9 Adımda Veri Keşfi Neden Önemli

9 Adımda Veri Keşfi neden önemli ve Veri Keşfi ürünlerinde nelere dikkat edilmeli

Analiz

Veri keşfi konusu 7 Nisan 2016 tarihinde yürürlüğe giren 6698 sayılı Kişisel Verilerin Korunması Kanunu (KVKK) ile hayatımıza girdi. Bu kanunla beraber bu zamana kadar dağınık olan verilerimizin nerede tutulduğunun ve ne derece kritik olduğunun önemi giderek artmaktadır.

Daha fazla
ArcSight ESM MISP entegrasyonu nasıl yapılır?

ArcSight ESM MISP entegrasyonu nasıl yapılır?

Entegrasyon

SIEM ürünlerinin en önemli özelliği korelasyon yapabilmesidir. ESM de correlation engine sayesinde verileri işler ve korelasyon yapabilme yeteneği kazanır.

Daha fazla
Türkiye'nin En Mutlu İş Yeri ve Mükemmel Çalışan Deneyimi

“Türkiye’nin En Mutlu İş Yeri” ve 3 yıldız ile “Mükemmel Çalışan Deneyimi” ödüllerini büyük bir gurur ve heyecan ile aldık

Ofis

Happy Place to Work tarafından gerçekleştirilen uluslararası standartlara uygun değerlendirme sonrası sektöründe “En Mutlu İşyeri” seçilmiş olmamız başarımızı taçlandıran bir ödül oldu. Ofisimizde düzenlediğimiz bir etkinlik ile ödülümüzü alırken, değerlendirmeye katılan ve bizi bu ödüle layık gören ekip arkadaşlarımızla kutlama yaptık.

Daha fazla
ReFS ve NFTS Hakkında Karşılaştırma

ReFS vs. NTFS

Versus

Full Stabil yapılardan söz etmek mümkün mü? Dosya içeriği değişmiyor belki ama dosya sistemi, formatı ihtiyaçlarla paralel olarak değişebiliyor. Neden bu konuya girdim peki? Çünkü alışkın olduğumuz FAT32 ya da NTFS dosya sistemlerinin yanında artık sıklıkla duyulmaya başlanan ReFS dosya sistemi de yerini almaya başladı.

Daha fazla