210 likes | 387 Views
KATMANLI GÜVENLİK ANLAYIŞINA UYGULAMALI BİR BAKIŞ. Tahsin TÜRKÖZ turkoz@uekae.tubitak.gov.tr. İçerik. Giriş - Katmanlı güvenliğin tanımı Test ortamı tanıtımı Bir PHP açıklığı Saldırılar ve önlemler Sonuç. Tanım. Katmanlı güvenlik (Defence in depth, elastic defence)
E N D
KATMANLI GÜVENLİK ANLAYIŞINA UYGULAMALI BİR BAKIŞ Tahsin TÜRKÖZ turkoz@uekae.tubitak.gov.tr
İçerik • Giriş - Katmanlı güvenliğin tanımı • Test ortamı tanıtımı • Bir PHP açıklığı • Saldırılar ve önlemler • Sonuç
Tanım • Katmanlı güvenlik (Defence in depth, elastic defence) • Amerikan savunma bakanlığı kaynaklı • Peşpeşe güvenlik mekanizmalarının uygulanması • Saldırıyı engeleme yerine etkilerini azaltma ya da zayıflatma stratejisi • Ana fikir: Bir savunma mekanizması devre dışı kaldığında sistemi savunmasız bırakmama • Yöntem: Her katman ile saldırganın hareket alanını daha da kısıtlama • Örnekler: Fiziksel güvenlik, güvenlik duvarı, saldırı tespit sistemi, şifreleme
Web sunucu Linux Apache + PHP Test Ortamı Tanıtımı Saldırgan Yönetici
PHP Açıklığı • Uzaktan Kod Çalıştırma (RFI) • Problem: • Uzaktan dosya indirmeye ve çalıştırmaya izin veren web uygulama çatıları • Girdi denetimi zayıf uygulamalar • Etkilenen platformlar: • PHP (4.0.4 sonrası ve 5.x) • Diğer uygulama çatıları (Java, .NET gibi)
Uzaktan Kod Çalıştırma (RFI) Örnek index.php /index.php?lang=tr <?php $language = $_REQUEST[‘lang’]; include($language.”php”); … … ... ?> sonuç tr.php <?php … … ?> INTERNET SUNUCU TARAFI
Uzaktan Kod Çalıştırma (RFI) Örnek index.php /index.php?lang=http://abc.com/tr.php? <?php $language = $_REQUEST[‘lang’]; include($language.”php”); … … ?> <?php … … ?> http://abc.com/tr.php sonuç INTERNET SUNUCU TARAFI
Karşı Önlem Çıkarılacak Dersler Saldırı – Önlem Döngü Yapısı Saldırı
Döngü #1 • Saldırganın bakış açısı • PHPShell yeterli mi? • Saldırganın ihtiyaçları • Kompleks işlemlerin yürütülebileceği bir bağlantı arabirimi • Sunucunun arkasındaki sistemlere erişim • Yetki seviyesi yüksek bir kullanıcı hesabı • Kayıt dosyalarının temizlenmesi • Bağlantıları ele verebilecek komutların değiştirilme • Çözüm: Rootkit / Trojan enjeksiyonu
Rootkit / Trojan • /root/.bashrc • /etc/bash_login • /root/.bash_logout • /etc/bash_logout • /etc/tunnel • /etc/bashrc • /etc/bash_logout • /etc/tunnel • netstat • last • B planı: chmod
/etc/bash_logout • Kayıt dosyalarının yedeğini alır. • Sistem yönetici yetkilerine sahip enjoy kullanıcısını oluşturur. • SSH anahtarlarını root kullanıcısının ev dizinine kopyalar. • Saldırganın bilgisayarına doğru SSH tünelini açar. • Kayıt dosyalarını geri kopyalar.
/etc/bash_login • Kayıt dosyalarının yedeğini alır. enjoy kullanıcının ve saldırgan bilgisayarı ile ilgili kayıtları siler. • SSH tünelini ve varsa saldırgana ait aktif bağlantıları koparır. • enjoy kullanıcısını siler. • root kullanıcısının ev dizinindeki SSH anahtarlarını siler. • Kayıt dosyalarını geri kopyalar.
Döngü #1 • Karşı Önlem • Yetkisiz kullanıcı (nobody) ile koşan apache • Çıkarılacak Ders • Minimum hak prensibi • Dışa doğru açık olan bağlantı haklarının kısıtlanması
Döngü #2 • Saldırı • B planı olarak düşünülen SUID biti aktife edilmiş chmod komutunun kullanılması • Karşı Önlem • Sistemi tümüyle yeniden kurma • Chroot ile hapishane yapısına geçme • Çıkarılacak Ders • Başarılı bir şekilde kırılmış bir sistem yeniden kurulmalıdır. • Minimum hak prensibi için tek katman yetersiz kalabilir.
Döngü #3 • Saldırı • RFI açıklığı ile web tabanlı kabuk (shell) açarak; • Web sayfası tahrifatı (defacement) • Karşı Önlem • Aktif bütünlük kontrolcüsü kullanımı - Tripwire • Çıkarılacak Ders • Tüm yönüyle sunucu sıkılaştırması (hardening) • Minimum hak prensibi için iki katman yetersiz kalabilir.
Döngü #4 • Saldırı • RFI açıklığı ile web tabanlı kabuk (shell) açarak; • Syscall kullanılarak Hizmet Dışı Bırakma saldırısı • Kaynak kodu ifşası • Karşı Önlem • PHP kodunu düzeltme • Çıkarılacak Ders • Açıklığın kaynağını bulup, önlem alınması • Katmanlı güvenlik anlayışının önemi
Sonuç • Kurumsal bilgi sistemlerinde bütün açıklıkların farkında olmak ve zamanında gerekli önlemleri almak çok zordur. • Katmanlı güvenlik ile farklı güvenlik mekanizmaları uygulayarak saldırıların etkileri azaltılabilir.
Faydalı Linkler & Sorular • chroot • http://www.unixwiz.net/techtips/chroot-practices.html • http://www.cgisecurity.com/webservers/apache/chrootapache2-howto.html • apache güvenliği • http://www.securityfocus.com/infocus/1694 • http://www.securityfocus.com/infocus/1786 • http://www.apachesecurity.net/ • modsecurity • http://modsecurity.org/ • PHP güvenliği • http://www.php-security.org/ • www.owasp.org
Faydalı Linkler • Unix/rootkit/trojan • http://vil.nai.com/vil/Content/v_100721.htm • http://www.rootkit.com/ • http://www.antirootkit.com • SSH ile tünel • http://www.securityfocus.com/infocus/1816 • http://www.rzg.mpg.de/networking/tunnelling.html • http://www.ccs.neu.edu/howto/howto-sshtunnel.html • Unix güvenliği • http://www.cisecurity.org • http://www.princeton.edu/~psg/unix/security.html • http://www.auscert.org.au/7284