Aldığım karar neticesinde hakkında Türkçe kaynak sıkıntısı olan konular üzerine özgün ve seçkin içerik oluşturmayı planlıyorum.Burada hedeflediğim plan tamamen daha sonradan bu alanda gelecekler için bir soluk olmak.Bu yazı ve daha sonrasında ki tüm yazıları istediğiniz platformda paylaşabilir,düzenleyebilir ve alıntılamalar yapabilirsiniz.Tek istirhamım kaynak gösterirseniz sevinirim,çünkü siteye gelecek kullanıcıların daha fazla seçkin içerikle karşılaşmasını istiyorum.
İlk yazımda bilgisayar bilimi zaafiyetler literatüründe "Privilege Escalation" diye tabir edilen ve işletim sistemleri ile bilgisayar yazılımlarının korkulu rüyası olan ayrıcalık yükseltme işlem ve girişimlerini detaylıca irdelemeye çalışacağım.Bu yazıda olayı teknik olarak detaylı inceleyip sadece Linux sistemlerdeki metodlara yoğunlaşacağım.Daha sonraki yazılarımda Windows yada MacOS yönünden de incelemeyi düşünüyorum. Bu terimle ilk kez karşılaşan insanlar içlerinden neden ayrıcalık yükseltmek isteyelim diye söylenmeye başlamıştır bile.Bilindiği üzere Von Neumann Mimarisi'yle beraber zamanla işletim sistemlerinin ataları olan tek kullanıcılı(single user tasking) işletim sistemleri yerini çok kullanıcılı(multi user tasking) işletim sistemlerine bıraktı.Bu değişimin temel nedeni ise zaman içinde bilgisayarların kullanım ve işlev farklılıkları oluştukça tek kullanıcılı sistemlerin bu ihtiyaçlara cevap verecek niteliğe sahip olmamasıydı.Çok kullanıcılı sistemler kaynak paylaşımı,bilgi gizliliği gibi bilgi güvenliği açısından temel ve hayati kavramların çıkış noktası olmuştur.Sunucu yönetimi gibi kavramlarda bu değişimle ortaya çıkmış ve küçük bir kast organizasyonuyla temel yönetim hiyerarşisi kabuklaşmaya başlamıştır.Akabinde kullanıcılara yönelik sistemlerde de sistemi daha kolay yönetebilmek adına thread(iş) parçacıkları çeşitli korumalı sistem kullanıcıları üzerinden gerçekleştirilmeye başlanmıştır.Günümüzde ise gerek açık kaynak sistemler de gerek ücretli sistemlerde bu çok kullanıcı hiyerarşisi yaygınlaşmış sistemlerden ayrı düşünülemez hale gelmiştir. Modern dünyadaki saldırganlar ise sistemlere ve uygulama yazılımlarına çeşitli yöntemlerle sızdıktan sonra bulundukları statü ve yetkiyle sınırlı kalmak istemezler.Bunu gerçek dünyada şuna benzetebiliriz;Dahilerin katılabildiği ve yardım için düzenlenen bir televizyon programına katıldınız diyelim.Bu programda herkes bir toplumsal sorunun çözümü hakkında çözüm üretip bu çözümün akılcılığına göre para kazanıp bu parayı da yardım için bağışlayacaktır.Ben çoğu insanın en yüksek yardımı yapmak için en akılcı çözümleri bulmak için uğraşacağını düşünüyorum.En yüksek yardım için de tek yol yarışmada en fazla paraya sahip olmaktır.Bu örneklemeden yola çıkacak olursak ;
- Dahiler > Saldırganlar
- Üretilen Akılcıl Yöntemler > Privilege Escalation Yöntemleri
- Para > Ayrıcalık Elde Etme
- En Çok Bağışı Yapan Kişi > Tüm Gücü ve Statüyü Elinde Bulunduran Kök Kullanıcı
- Dikey Yönde Ayrıcalık Yükseltme Girişimleri (Vertical Privilege Escalation)
- Yatay Yönde Ayrıcalık Yükseltme Girişimleri.(Horizontal Privilege Escalation)
Temel Olarak Açık Kaynak ve Ücretli Sistemler Benzer Hiyerarşiyi Kullanmaktadır.[/caption] Dikey yönde olan ayrıcalık yükseltme girişimleri genellikle yukarı doğru yetki almak isteyen saldırganın çeşitli yöntemler kullanarak (Exploits,File Permissions,Permissive SUDO,Path issues,Race Condition vb. ) üçgenin tepe noktasına doğru sistemi komple ele geçirmeye yönelik dikey eğilime girme mandalitesidir. Yatay yönde yapılan girişimler ise adından anlaşılacağı gibi aynı seviyede yapılan girişimlerdir.Genellikle web uygulamalarında karşımıza çıkmaktadır.Bir mail clientinde A kullanıcısı iken B kullanıcısına erişim almayı bu girişimlere örnek olarak verebiliriz.(Session fixation,Keystroke Logging,Simple Password,Theft or Hijacking of Session Cookies,XSS)
1-) Dikey Yönde Ayrıcalık Yükseltme Girişimleri (Risk Seviyesi)
Linux Sistemlerde Uygulanabilecek Girişimler:-
Exploitler (Very High)
İşlem adımları:
- İşletim Sistemi ve Linux Çekirdeği(Kernel) Hakkında Bilgi Edinilmesi.
Linux Gentoo 4.x.x-Gentoo 1 SMP PREEMPT Tue Aug 4 09:34:36 UTC 2015 x86_64 Intel(R) xxxxxx @ xxx.GHz GenuineIntel GNU/Linux Linux dev-machine 2.6.18-371.1.2.el5 1 SMP Tue Oct 22 12:57:43 EDT 2015 i686 i686 i386 GNU/Linux # cat /etc/lsb-release DISTRIB_ID="Gentoo" DISTRIB_RELEASE="4.02" DISTRIB_CODENAME="Legendary" DISTRIB_DESCRIPTION="Gentoo 4.2.8"
- Exploiti Sistem Gereksinimlerine Uygun Derleme ve Çalıştırmada Kullanılacak Araçların Hedef Uyumluluğunun Belirlenmesi(python,perl,gcc versiyon vs.)
Using built-in specs. COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.4/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.8.4/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-4.8.4/work/gcc-4.8.4/configure --host=x86_64-pc-linux-gnu --build=x86_64 pkgversion='Gentoo Hardened 4.x.x p1.6 '... Thread model: posix gcc version 4.8.4 (Gentoo Hardened 4.x.x p0.6, pie-0.0.x) #python -V Python 2.7.9
- Exploiti Sisteme Uyarlı Hale Getirme(Derleme,Debug vs.)
- Exploiti Hedefe Aktarma
- Exploit Exec
- Bingo r00t !!! (Exploit Ekran Görüntüsü RedHat Distrosuna Aittir.)
Savunma Önerisi: Patchleri Sürekli Güncel Tutmak ve GRSecurity Gibi Güvenlik Yamalarını Kurmak.
-
File Permissions (High)
- 777 İznine Sahip Dizinler:
- Default Dosya Yoluna Sahip Script Yönetim Panelleri,Configleri,Kaynak Kodları
- SETUID ve SETGID Yanlış Yapılandırılmasından Kaynaklanan Sunucu Uygulamalarında Fuzzing,Overflow Flags Arama,Race C. Girişimleri,Komut Enjeksiyonu Girişimleri
#ls -al
/bin/ln -rwxr-xr-x 1 root root 59480 Jul 21 09:12 /bin/ln
-
SUDO İzin İstismarı (High)
#nano /etc/sudoers
// Tehlikeli Yetkilendirme Örneği Çeşitli Kullanıcılara Root Yetkisi Verilmiş!!!!!
## User privilege specification ## root ALL=(ALL) ALL Ali ALL=(ALL) ALL Ghost ALL=(ALL) ALL ## Uncomment to allow members of group wheel to execute any command # %wheel ALL=(ALL) ALL ## Same thing without a password %wheel ALL=(ALL) NOPASSWD: ALL ## Uncomment to allow members of group sudo to execute any command # %sudo ALL=(ALL) ALL
Öneri: Linux Sistemlerde Sudoers Yapılandırılması
-
PATH Okuma İstismarı(Issues) (Very High)
- Sistemde kurulu uygulamalar hakkında bilgi alınabilir ve çalışma dizinleri değiştirilen uygulamaların çalışma dizinleri öğrenilebilir.(versiyonu,bağımlılıkları vs.Exploitlemede kullanılan toolslar ıcın olmazsa olmaz bır gereksınımdır.).
MANPATH=/etc/java-config-2/current-system-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.4/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.24/man:/etc/java-config-2/current-system-vm/man/:/usr/lib64/php5.6/man/:/usr/share/postgresql/man/:/usr/share/postgresql-9.4/man/ SSH_AGENT_PID=3018 GLADE_PIXMAP_PATH=: ANDROID_HOME=/opt/android-sdk-update-manager GPG_AGENT_INFO=/tmp/gpg-JINALA/S.gpg-agent:3020:1 TERM=xterm SHELL=/bin/bash XDG_MENU_PREFIX=xfce- ANDROID_SWT=/usr/share/swt-3.7/lib #which gcc /usr/bin/.secretdir/gcc
Öneri: Linux Path Confugration
-
Bonus - Mobil Cihaz ve Tabletlerde Ayrıcalık Yükseltme
Kingoroot gibi çeşitli uygulamalarla yada recovery modda sdcarddan çalıştırılan uygulamalarla cihazlarda root yetkisi elde edilmektedir.Androidin de bir linux distrosu olduğunu düşünürsek root yetkisi almadaki amaçlar temelde benzerdir.Sistemi zorlayan ve özel yetki isteyen işlemler,root olunarak kullanıcısının istediğini yapabilme özgürlüğüne kavuşmuş olacaktır.Ayrıca cihaz kullanıcıya bağlı olarak sistem yazılımları olarak %98 oranında özelleştirilebilmektedir(Android mobil cihaz ve tabletlerde rom atma işlemleriyle).Bu ayrıcalıklar kullanıcının isteği dışında malware yazılımlarcada alınabilmektedir.Benzer olarak iOS işletim sistemine sahip iPhone cihazlarda bu metodlara benzer metodlarla (jailbreak) ayrıcalık yükseltme işlemlerine tabi tutulmaktadır.
Genel Linux Ayrıcalık Yükseltme Ataklarına Karşı İzlenebilecek Yollar:
- No-eXecute(NX a.k.a Data Execution Prevention)
Ram üzerinde çalışan uygulamaların bulundukları hafıza adreslerini sabit adres aralıklarında değilde,belirli periyotlarda farklı hafıza adres bloklarında bulunmasını sağlayan mekanizmalardır.Amaç sistemi olası overflow saldırılarından korumak olsada daha sofistike koruma yöntemleri olan(abisi) DEP gibi metodlarda hackerler tarafından bypass edilmiştir.Bypass edilmesi ciddi sonuçlar doğurabilir.
Tasklistte çalışan uygulamalara belli kullanıcı çalıştırma yetkisi verme kısıtlama ve kontrol altında tutma güdümüdür.Windows'ta bu UAC(SID)'la sağlanırken linuxta ise verilebilecek PID id yetkilendirmeleriyle sağlanabilir.ps aux komutu ile detaylı linux görev yöneticisi bilgisi ve uygulama PID'leri öğrenilebilir.
Linux ve Mac sistemleride malwareler tehdit etmektedir.Toplumda ki linux sisteme virus bulaşmaz kanısı yanlıştır.İyi bir anti virus & loggerle beraber iyi bir firewall edinilmelidir.Bu yazılımların sistem saatiyle senkronize çalıştığına azami özen gösterilmelidir.
Linux’ da zorunlu erişim denetimi (MAC) mekanizmasına gerçekleşmesini sağlayan bir projedir.Bu mekanizmanın kullanılması önemli oranda bir güvenlik sağlayacaktır.Hiyerarşiye uymayan girişim ve uygulama hareketleri sistem tarafından değer görmeyecektir.3 Mod üzerinden çalışmaktadır.
- Çeşitli Uygulama ve Sistem Bileşenlerini(Stratejik) Kriptolomak
- Derleyici Tasarımlarında Çeşitli Overflow Notasyonlarına Uygun Hiyerarşi İzlenmesi.
Hiç yorum yok:
Yorum Gönder